/* Approved header: Open Panorama, first visual in header-ideas/round-2. */
[data-theme=landscape] .site-header {
  background:#19382e;
  color:#f7f5e9;
  border:0;
}
[data-theme=landscape] .nav-shell {
  width:calc(100% - 128px);
  max-width:1664px;
  height:108px;
}
[data-theme=landscape] .site-header .brand { font-size:40px; gap:10px; }
[data-theme=landscape] .site-header .brand-heart { width:36px; height:36px; }
[data-theme=landscape] .site-header nav { gap:40px; font-size:18px; }
[data-theme=landscape] .nav-stores { margin-left:166px; gap:14px; }
[data-theme=landscape] .site-header .store-button,
[data-theme=landscape] .panorama-hero .store-button {
  background:#f7f5e9;
  border-color:#f7f5e9;
  color:#19382e;
  font-weight:600;
  white-space:nowrap;
}
[data-theme=landscape] .nav-stores .store-button {
  min-width:158px;
  min-height:55px;
  font-size:18px;
  padding:13px 24px;
  gap:16px;
}
[data-theme=landscape] .site-header .store-button:hover,
[data-theme=landscape] .panorama-hero .store-button:hover {
  background:#d9e2c5;
  border-color:#d9e2c5;
}
[data-theme=landscape] :is(.site-header,.panorama-hero) :focus-visible {
  outline-color:#adc08b;
}
.panorama-hero { background:#19382e; color:#f7f5e9; padding-bottom:38px; }
.panorama-grid {
  display:grid;
  grid-template-columns:minmax(0,2.18fr) minmax(0,1fr);
  gap:72px;
  width:calc(100% - 128px);
  max-width:1664px;
  margin:auto;
  padding:15px 0 26px;
}
.panorama-identity { min-width:0; }
.panorama-hero .identity {
  font-size:clamp(84px,10.3vw,170px);
  line-height:1.35;
  font-weight:700;
  letter-spacing:-.045em;
  gap:24px;
  min-height:0;
  margin:0;
  align-items:center;
}
.panorama-hero .identity-brand {
  font:inherit;
  letter-spacing:inherit;
  color:#f7f5e9;
  flex-shrink:0;
}
.panorama-hero .identity-person {
  font:inherit;
  letter-spacing:inherit;
  min-width:0;
  max-width:none;
  gap:10px;
  /* Reserve room for every script, including the empty typing frame. */
  height:1.35em;
  flex-shrink:0;
  overflow:visible;
}
.panorama-hero .identity [data-typed-name] { color:#adc08b; line-height:1.35; flex-shrink:0; }
.panorama-hero .identity .cursor { width:3px; height:.84em; margin:0; background:#adc08b; }
.panorama-hero .hero-actions { margin:15px 0 0; }
.panorama-hero .store-button { min-width:198px; min-height:61px; padding:14px 28px; font-size:20px; }
.panorama-hero .store-buttons { gap:24px; }
.panorama-promise { margin-top:12px; font-size:19px; line-height:1.5; }
.panorama-promise__emphasis { text-decoration-line:underline; text-decoration-color:#c5d5a0; text-decoration-thickness:2px; text-underline-offset:4px; }
.panorama-story { padding-top:25px; }
.panorama-story .hero-title {
  color:#f7f5e9;
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(40px,4.1vw,66px);
  font-weight:400;
  line-height:1.04;
  letter-spacing:-.035em;
  margin:0 0 10px;
}
.panorama-story p { font-size:19px; line-height:1.5; }
.panorama-story .panorama-promise { margin:14px 0 0; font-size:17px; font-weight:600; line-height:1.5; }
.panorama-story .panorama-clarification { color:#c9d5b4; margin:12px 0 0; font-size:12px; line-height:1.45; }
[data-theme=landscape][data-motion=paused] .identity .cursor { opacity:1; animation:none; }
.panorama-scene { width:calc(100% - 76px); max-width:1720px; margin:auto; }
.panorama-scene img {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:2149 / 732;
  object-fit:contain;
  border-radius:20px;
}
[data-theme=landscape] .steps .step-meta { min-height:88px; align-items:center; margin-bottom:25px; }
[data-theme=landscape] .steps .step-art {
  width:92px;
  height:92px;
  object-fit:contain;
  margin-left:auto;
  /* 30% smaller than the approved 0.91 scale; keep the text layout unchanged. */
  transform:scale(.637);
}
@media(max-width:1300px) {
  [data-theme=landscape] .nav-shell,.panorama-grid { width:calc(100% - 80px); }
  [data-theme=landscape] .site-header .brand { font-size:33px; }
  [data-theme=landscape] .site-header nav { gap:26px; font-size:15px; }
  [data-theme=landscape] .nav-stores { margin-left:20px; gap:10px; }
  [data-theme=landscape] .nav-stores .store-button { min-width:128px; min-height:46px; padding:11px 18px; font-size:15px; }
  .panorama-grid { gap:48px; }
  .panorama-hero .identity { font-size:9.1vw; gap:18px; }
  .panorama-hero .store-button { min-width:170px; font-size:18px; min-height:56px; padding:13px 22px; }
  .panorama-story p { font-size:17px; }
  .panorama-promise { font-size:17px; }
}
@media(max-width:1000px) {
  [data-theme=landscape] .nav-shell { height:88px; width:calc(100% - 48px); }
  [data-theme=landscape] .site-header .brand { font-size:29px; }
  [data-theme=landscape] .site-header .brand-heart { width:29px; height:29px; }
  [data-theme=landscape] .site-header nav { gap:18px; font-size:13px; }
  [data-theme=landscape] .nav-stores { margin-left:0; gap:8px; }
  [data-theme=landscape] .nav-stores .store-button { min-width:102px; min-height:44px; padding:10px 12px; font-size:13px; gap:8px; }
  .panorama-grid { width:calc(100% - 64px); gap:36px; grid-template-columns:minmax(0,1.8fr) minmax(0,1fr); padding-top:24px; }
  .panorama-hero .identity { font-size:8.4vw; gap:14px; }
  .panorama-story .hero-title { font-size:38px; }
  .panorama-story p { font-size:16px; }
  .panorama-hero .store-buttons { gap:12px; }
  .panorama-hero .store-button { min-width:148px; font-size:16px; padding:12px 18px; }
  .panorama-scene { width:calc(100% - 48px); }
  [data-theme=landscape] .steps .step-art { width:80px; height:80px; }
}
@media(max-width:760px) {
  [data-theme=landscape] .nav-shell { width:calc(100% - 40px); height:72px; }
  [data-theme=landscape] .menu-button { color:#f7f5e9; font-size:14px; }
  [data-theme=landscape] .site-header nav { top:72px; background:#19382e; color:#f7f5e9; border-color:#52705b; padding:20px; font-size:16px; }
  [data-theme=landscape] .nav-stores { margin-top:6px; }
  [data-theme=landscape] .nav-stores .store-button { min-height:48px; font-size:14px; }
  .panorama-hero { padding-bottom:20px; }
  .panorama-grid { width:calc(100% - 40px); grid-template-columns:1fr; gap:26px; padding:28px 0; }
  .panorama-identity { display:contents; }
  .panorama-hero .identity { grid-row:1; flex-direction:column; align-items:flex-start; gap:0; font-size:clamp(70px,17vw,112px); line-height:1.02; }
  .panorama-hero .identity-person { min-height:1.35em; line-height:1.35; gap:7px; }
  .panorama-hero .identity .cursor { width:2px; }
  .panorama-story { grid-row:2; padding-top:0; }
  .panorama-story .hero-title { font-size:clamp(29px,7.8vw,40px); line-height:1.15; margin-bottom:20px; }
  .panorama-story .hero-title br { display:none; }
  .panorama-story .hero-title br::after { content:' '; }
  .panorama-story p { font-size:16px; line-height:1.55; }
  .panorama-story .panorama-promise { font-size:15px; }
  .panorama-hero .hero-actions { grid-row:3; margin:0; display:block; }
  .panorama-hero .store-buttons { gap:10px; }
  .panorama-hero .store-button { min-width:0; flex:1; min-height:54px; font-size:16px; padding:13px 17px; gap:12px; }

  .panorama-scene { display:none; }
  .panorama-scene img { border-radius:14px; }
  [data-theme=landscape] .steps .step-meta { min-height:78px; margin-bottom:18px; }
  [data-theme=landscape] .steps .step-art { width:82px; height:82px; }
}
@media(max-width:370px) {
  .panorama-hero .identity { font-size:62px; }
  .panorama-story .hero-title { font-size:27px; }
  .panorama-hero .store-button { font-size:14px; gap:8px; padding:12px; }
}

/* Desktop frame is 600px high; mobile keeps a shorter responsive image frame. */
[data-theme=landscape] .meet-art>img { height:600px; aspect-ratio:auto; }
@media(max-width:760px) {
  [data-theme=landscape] .meet-art>img { height:auto; aspect-ratio:1.571429; }
  [data-theme=landscape] .meet-art { order:0; }
}

/* Mobile-only sticky download bar: LifeOf signature above the two store actions. */
.mobile-download-dock { display:none; }
@media(max-width:760px) {
  body { padding-bottom:calc(102px + env(safe-area-inset-bottom, 0px)); }
  nav.mobile-download-dock {
    position:fixed; top:auto; left:0; right:0; bottom:0; z-index:1000;
    width:auto; height:auto; min-height:0; max-height:none; overflow:visible; transform:none;
    display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-rows:auto 48px; gap:8px 10px;
    padding:10px max(16px, env(safe-area-inset-left, 0px)) calc(10px + env(safe-area-inset-bottom, 0px));
    background:rgba(247,244,232,.96); color:#19382e;
    border-top:1px solid rgba(25,56,46,.14); box-shadow:0 -8px 28px rgba(19,40,32,.12);
    -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px);
  }
  .mobile-dock-brand {
    grid-column:1 / -1; min-width:0; min-height:22px;
    display:flex; align-items:center; justify-content:center; gap:7px;
    color:#19382e; text-decoration:none; white-space:nowrap;
    -webkit-tap-highlight-color:transparent;
  }
  .mobile-dock-heart { width:20px; height:20px; flex:0 0 auto; object-fit:contain; }
  .mobile-dock-name { font:700 15px/1 Outfit,Arial,sans-serif; letter-spacing:-.03em; }
  .mobile-dock-divider { width:1px; height:16px; margin:0 3px; background:currentColor; opacity:.28; }
  .mobile-dock-tagline { font:500 12px/1 Outfit,Arial,sans-serif; letter-spacing:-.01em; }
  .mobile-download-link {
    min-width:0; min-height:48px; padding:12px 15px; border-radius:999px;
    display:flex; align-items:center; justify-content:space-between; gap:8px;
    background:#19382e; color:#f7f4e8; font:600 14px/1.1 Outfit,Arial,sans-serif;
    text-decoration:none; -webkit-tap-highlight-color:transparent;
  }
  nav.mobile-download-dock > a.mobile-download-link { padding:12px 15px; }
  nav.mobile-download-dock[hidden] { display:none !important; }
  .mobile-download-link svg { width:14px; height:14px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
  .mobile-download-link:focus-visible { outline:3px solid #e45f35; outline-offset:2px; }
  .mobile-download-dock a:hover { text-decoration:none; }
}
