/* Home only: the hero and cabin walkthrough (§7). Sections below it use sections.css. */

.walk{position:relative;background:var(--ink);color:var(--white)}
.stage{position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden;background:var(--ink)}
.walk-live .walk{height:calc(610vh + 100vh);height:calc(610svh + 100lvh)}
.walk-live .stage{position:sticky;top:0;min-height:0;height:100vh;height:100lvh}
.still,.vid,.hold{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--focal,50% 50%)}
.hold{opacity:0;transition:opacity .3s;pointer-events:none}
.hold.on{opacity:1}
.vid{opacity:0;transition:opacity .45s}
.vid.ready{opacity:1}
.stage::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(var(--scrim),.55) 0%,rgba(var(--scrim),0) 34%,rgba(var(--scrim),0) 58%,rgba(var(--scrim),.62) 100%);pointer-events:none}
.stage::before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(90% 60% at 0% 100%,rgba(var(--scrim),.62),rgba(var(--scrim),0) 65%);opacity:0;transition:opacity .4s;pointer-events:none}
.stage.cap::before{opacity:1}

.hero-copy{position:absolute;z-index:2;inset:0;display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center;padding:calc(var(--hdr-h) + clamp(20px,5vh,64px)) var(--gutter) clamp(72px,10vh,112px)}
.hero-copy h1{font-size:clamp(2.75rem,7vw,6.25rem);text-shadow:0 1px 30px rgba(var(--scrim),.25)}
.hero-copy h1 span{display:block}
.hero-act{display:flex;flex-direction:column;align-items:center}
.hero-copy .sub{color:rgba(254,254,254,.95);max-width:52ch;margin:0 auto var(--space-4)}
.hero-copy .cta-pair{justify-content:center}

.caption,.finale{display:none}
.walk-live .caption{display:block;position:absolute;z-index:2;left:var(--gutter);right:var(--gutter);max-width:var(--page-max);margin:0 auto;bottom:clamp(56px,11vh,120px);opacity:0;transform:translateY(14px);transition:opacity .4s,transform .4s;pointer-events:none}
.caption.on{opacity:1;transform:none}
.managed{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:var(--space-5)}
.managed p{text-wrap:balance;max-width:24ch;font-size:clamp(1.15rem,1.9vw,1.6rem);font-weight:700;letter-spacing:.005em;text-shadow:0 2px 24px rgba(var(--scrim),.45)}
.managed img{width:clamp(180px,17vw,250px);height:auto}
.caption p span{display:block;margin-top:12px;max-width:none;font-size:clamp(1.05rem,1.7vw,1.4rem);font-weight:600;letter-spacing:0;line-height:1.3}
.caption p{font-size:var(--text-heading);font-weight:700;letter-spacing:var(--tracking-heading);line-height:1.02;max-width:14ch;text-wrap:balance;text-shadow:0 2px 40px rgba(var(--scrim),.35)}

.walk-live .finale{display:flex;position:absolute;z-index:3;inset:0;flex-direction:column;align-items:center;text-align:center;padding:calc(var(--hdr-h) + clamp(24px,6vh,72px)) var(--gutter) 0;opacity:0;visibility:hidden;transition:opacity .35s,visibility 0s .35s}
.walk-live .finale.on{opacity:1;visibility:visible;transition:opacity .35s}
.finale::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 62% 58% at 50% 34%,rgba(var(--scrim),.5),rgba(var(--scrim),0) 72%)}
.stars{display:flex;justify-content:center;gap:clamp(6px,1.2vw,14px)}
.stars svg{width:clamp(38px,5.4vw,72px);height:auto;fill:var(--white)}
.walk-live .finale .stars svg{opacity:0;transform:translateY(-16px) scale(.9);transition:opacity .35s,transform .5s cubic-bezier(.2,.8,.2,1)}
.walk-live .finale.on .stars svg{opacity:1;transform:none}
.finale.on .stars svg:nth-child(2){transition-delay:.09s}
.finale.on .stars svg:nth-child(3){transition-delay:.18s}
.finale.on .stars svg:nth-child(4){transition-delay:.27s}
.finale.on .stars svg:nth-child(5){transition-delay:.36s}
.proof{font-size:var(--text-heading);font-weight:700;letter-spacing:var(--tracking-heading);line-height:1.08;margin-top:var(--space-4);text-shadow:0 2px 30px rgba(var(--scrim),.35);text-wrap:balance}
.fin-cta{position:absolute;right:var(--gutter);bottom:clamp(56px,11vh,120px);opacity:0;transform:translateY(10px);transition:opacity .4s .5s,transform .4s .5s}
.finale.on .fin-cta{opacity:1;transform:none}

/* static fallback: reduced motion, no JS, Save-Data, video error */
.walk-fallback{padding:var(--space-7) 0}
.walk-live .walk-fallback{display:none}
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);list-style:none;margin:0;padding:0}
.strip img{border-radius:var(--radius-img);aspect-ratio:4/5;object-fit:cover;width:100%}
.strip figcaption{margin-top:var(--space-3);font-size:1.35rem;font-weight:700;letter-spacing:-.02em;line-height:1.2}
.guest{position:relative;margin-top:var(--space-7);border-radius:var(--radius-img);overflow:hidden}
.guest img{width:100%;aspect-ratio:16/9;object-fit:cover}
.guest::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(var(--scrim),.5),rgba(var(--scrim),0) 55%)}
.guest-copy{position:absolute;z-index:1;inset:0;padding:clamp(24px,5vw,64px) var(--gutter) 0;text-align:center}

@media (max-aspect-ratio: 3/4){
  .stage .still,.stage .vid,.stage .hold{object-position:50% 50%}
}
@media (max-width: 960px){
  .strip{grid-template-columns:1fr 1fr}
}
@media (max-width: 760px){
  .hero-copy{padding-top:calc(var(--hdr-h) + 28px);padding-bottom:calc(28px + env(safe-area-inset-bottom))}
  .walk-live .hero-copy{padding-bottom:calc(28px + env(safe-area-inset-bottom) + 100lvh - 100svh)}
  .hero-copy h1{font-size:min(2.75rem,9.4vw)}
  .hero-copy .sub{font-size:1rem}
  .walk-live .fin-cta{display:none}
  .hero-act{width:100%}
  .hero-copy .cta-pair{flex-direction:column;align-items:stretch;width:100%;max-width:360px}
  .still{object-position:var(--focal,32% 50%)}
  .walk-live .caption{bottom:calc(128px + env(safe-area-inset-bottom) + 100lvh - 100svh)}
  .caption p{max-width:11ch;letter-spacing:-0.03em}
  .proof{font-size:1.5rem}
  .stars svg{width:32px}
  .fin-cta{left:var(--gutter);right:var(--gutter);bottom:calc(24px + env(safe-area-inset-bottom))}
  .fin-cta .btn{width:100%}
  .strip{grid-template-columns:1fr}
  .strip img{aspect-ratio:3/2}
  .guest img{aspect-ratio:3/4;object-position:52% 50%}
}

/* Right now at our homes */
.now{background:var(--ink);color:var(--white);padding:var(--space-6) 0}
.now[hidden],.now [hidden]{display:none}
.now-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.now-head img{width:34px;height:auto}
.now-head h2{font-size:clamp(1.6rem,3vw,2.4rem);font-weight:700;letter-spacing:-.02em;color:var(--white)}
.now-head .live{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-size:.875rem;font-weight:600;color:rgba(254,254,254,.85)}
.now-head .live::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--aqua);box-shadow:0 0 0 0 rgba(107,196,202,.7);animation:now-pulse 2s infinite}
@keyframes now-pulse{70%{box-shadow:0 0 0 10px rgba(107,196,202,0)}100%{box-shadow:0 0 0 0 rgba(107,196,202,0)}}
.now-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;margin-top:var(--space-5);background:rgba(254,254,254,.14);border-radius:16px;overflow:hidden}
.now-cell{background:var(--ink);padding:var(--space-4) var(--space-3)}
.now-cell .k{font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:rgba(254,254,254,.75)}
.now-cell .v{margin-top:10px;white-space:nowrap;font-size:clamp(1.9rem,3.2vw,2.6rem);font-weight:700;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums;color:var(--aqua)}
.now-cell .v small{font-size:.42em;font-weight:600;letter-spacing:.02em;margin-left:4px}
.now-cell .s{margin-top:8px;font-size:.9rem;color:rgba(254,254,254,.88)}
@media (prefers-reduced-motion: reduce){ .now-head .live::before{animation:none} }
@media (max-width: 1100px){ .now-grid{grid-template-columns:repeat(3,1fr)} }
@media (max-width: 560px){
  .now-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:46%;overflow-x:auto;scroll-snap-type:x mandatory;background:none;gap:10px;border-radius:0;padding-bottom:4px}
  .now-cell{border:1px solid rgba(254,254,254,.18);border-radius:14px;scroll-snap-align:start}
  .now-head .live{margin-left:0;width:100%}
}
