:root{--ivory:#fbfaf6;--white:#fffefa;--stone:#f0eee8;--line:#ddd8cf;--ink:#181817;--muted:#5d5b56;--taupe:#9c806e;--mineral:#286b69;--mineral-dark:#205958;--gold:#b58b48}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:Inter,Arial,sans-serif;overflow-x:hidden}a{color:inherit}.sr{position:absolute;left:-9999px}header{height:82px;padding:0 max(5vw,28px);display:flex;align-items:center;border-bottom:1px solid var(--line);background:var(--ivory)}.wordmark,footer strong{font:600 36px/1 Fraunces,serif;text-decoration:none}.hero{background:linear-gradient(180deg,#fbfaf6 0%,#f6f3ec 100%)}.hero-inner{min-height:570px;padding:54px max(5vw,28px);display:flex;align-items:center}.hero-text{max-width:670px}.hero h1,.idea-world h2,.experience h2,.closing h2,.agency,.lead,.principles h3,.experience h3{font-family:Fraunces,serif}.hero h1{font-size:clamp(54px,5.6vw,82px);line-height:.97;letter-spacing:-.04em;margin:0 0 25px}.hero h1 em,.closing em{font-style:normal;color:var(--taupe)}.hero-text>p{font-size:17px;line-height:1.42;margin:0 0 8px}.agency{font-size:25px!important;font-weight:600}.signup{display:flex;gap:10px;margin-top:23px}.signup input{flex:1;min-width:0;border:1px solid #d3cdc3;border-radius:999px;padding:15px 19px;font:15px Inter;background:rgba(255,255,255,.96)}.signup button,.bottom-cta{border:0;border-radius:999px;background:var(--mineral);color:#fff;padding:15px 21px;font:600 15px Inter;text-decoration:none;white-space:nowrap;cursor:pointer}.signup button:hover,.bottom-cta:hover{background:var(--mineral-dark)}.signup-notes{max-width:570px;margin-top:13px}.signup-notes p{font-size:13px;line-height:1.4;margin:0 0 5px}.signup-notes small{display:block;font-size:11px;line-height:1.4;color:#6e6b65}.eyebrow{letter-spacing:.2em;color:#7f6b5f;font-weight:600;font-size:12px}
.idea-world{position:relative;isolation:isolate;min-height:760px;overflow:hidden;border-bottom:1px solid var(--line);background:#d8d2c5}.landscape{position:absolute;z-index:-2;inset:0;background:url('assets/worthand-hills.png') 50% 50%/cover no-repeat;filter:saturate(.72) contrast(.96) brightness(1.03);transform:scale(1.008)}.idea-world:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(251,250,246,.98) 0%,rgba(251,250,246,.91) 38%,rgba(251,250,246,.48) 61%,rgba(251,250,246,.12) 100%)}.why-copy{padding:72px max(5vw,28px) 42px;max-width:760px}.idea-world h2,.experience h2{font-size:clamp(40px,4.3vw,60px);line-height:1.03;margin:12px 0 23px}.lead{font-size:clamp(24px,2.25vw,32px);line-height:1.27;margin:0 0 16px;max-width:690px}.bridge{font-size:16px;line-height:1.55;color:var(--muted);max-width:650px}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:28px max(5vw,28px) 72px;max-width:1120px}.principles article{padding:22px 23px;border:1px solid rgba(208,201,190,.8);border-radius:20px;background:rgba(255,254,250,.84);backdrop-filter:blur(8px);box-shadow:0 12px 32px rgba(47,42,35,.05)}.principles h3{font-size:21px;margin:0 0 8px}.principles p{font-size:13px;line-height:1.48;color:var(--muted);margin:0}
.experience{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.85fr);align-items:center;min-height:720px;background:linear-gradient(135deg,#fbfaf6 0%,#f3f0e9 100%);border-bottom:1px solid var(--line);overflow:hidden}.experience-copy{padding:72px 4vw 72px max(5vw,28px);max-width:780px}.experience h2{margin-bottom:21px}.experience h3{font-size:26px;line-height:1.2;margin:0 0 11px}.experience-copy>p:not(.eyebrow){font-size:16px;line-height:1.5;margin:0}.facts{display:flex;gap:8px;flex-wrap:wrap;margin:19px 0}.facts span{border:1px solid #d8d2c8;border-radius:99px;padding:8px 13px;font-size:12px;background:#fff}.testing{border-top:1px solid var(--line);padding-top:18px;display:flex;align-items:center;gap:16px}.testing b{border:1px solid #c9a962;border-radius:99px;padding:9px 14px;color:#72571d;background:#fffdf7;white-space:nowrap}.testing p{margin:0;font-size:14px}.phone-stage{position:relative;align-self:stretch;min-height:720px;display:grid;place-items:center;background:radial-gradient(circle at 52% 47%,rgba(181,139,72,.15),rgba(181,139,72,0) 36%)}.phone-stage:before{content:"";position:absolute;width:74%;height:62%;border-radius:50%;background:#e9e5dc;filter:blur(2px);transform:rotate(-8deg)}.gold-orbit{position:absolute;width:440px;height:440px;border:1px solid rgba(181,139,72,.42);border-radius:50%;transform:translate(6%,-2%)}.phone-asset{position:relative;z-index:2;width:min(390px,73%);height:auto;filter:drop-shadow(0 28px 35px rgba(28,27,25,.18));transform:rotate(1deg)}
.closing{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(145deg,#ebe8e1 0%,#f7f5f0 56%,#eef2ef 100%);border-bottom:1px solid var(--line)}.closing:before{content:"";position:absolute;z-index:-2;inset:0;background:url('assets/worthand-hills.png') 72% 48%/cover no-repeat;filter:saturate(.58) contrast(.92) brightness(1.08);opacity:.16}.closing:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(247,245,240,.99) 0%,rgba(247,245,240,.96) 48%,rgba(247,245,240,.78) 100%)}.closing-copy{padding:82px max(5vw,28px) 88px;max-width:930px}.closing h2{font-size:clamp(42px,4.7vw,64px);line-height:1.05;margin:14px 0 18px}.closing h2 em{color:#8f705f}.closing-copy>p:not(.eyebrow){color:#494844;margin:0 0 24px}.bottom-signup{max-width:620px;margin-top:18px;padding-top:2px}.bottom-signup .signup{margin-top:0}footer{padding:28px max(5vw,28px);display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;background:#f4f2ed}footer nav{display:flex;gap:25px}footer span{grid-column:1/-1;color:#716e68;font-size:13px}.hero-enter,.reveal{opacity:1;transform:none}.motion .hero-enter{animation:heroIn 1.05s cubic-bezier(.2,.75,.2,1) both}.motion .reveal{transition:opacity .8s ease,transform .8s cubic-bezier(.2,.72,.2,1)}.motion .reveal.pending{opacity:.68;transform:translateY(12px)}@keyframes heroIn{from{opacity:.55;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:800px){header{height:78px;padding:0 24px}.wordmark{font-size:34px}.hero-inner{min-height:0;padding:50px 24px 44px;display:block}.hero h1{font-size:44px;line-height:1;letter-spacing:-.035em;margin-bottom:23px}.hero-text>p{font-size:15px}.agency{font-size:21px!important}.signup{margin-top:20px}.signup input{padding:13px 15px}.signup button{padding:13px 15px;font-size:14px}.signup-notes{text-align:center}.idea-world{min-height:0}.landscape{background-position:52% 50%;background-size:auto 100%}.idea-world:after{background:linear-gradient(180deg,rgba(251,250,246,.98) 0%,rgba(251,250,246,.9) 48%,rgba(251,250,246,.48) 72%,rgba(251,250,246,.20) 100%)}.why-copy{padding:46px 24px 34px}.idea-world h2,.experience h2{font-size:36px;margin:11px 0 20px}.lead{font-size:23px}.bridge{font-size:15px}.principles{grid-template-columns:1fr;padding:0 24px 46px;gap:10px}.principles article{padding:18px 19px;background:rgba(255,254,250,.88)}.principles h3{font-size:20px}.experience{display:block;min-height:0}.experience-copy{padding:46px 24px 22px}.experience h3{font-size:22px}.experience-copy>p:not(.eyebrow){font-size:15px}.testing{align-items:flex-start;gap:10px}.testing b{font-size:12px;padding:8px 11px}.testing p{font-size:12px;line-height:1.4}.phone-stage{min-height:530px;padding-bottom:30px}.phone-stage:before{width:82%;height:62%}.gold-orbit{width:330px;height:330px}.phone-asset{width:min(310px,70%)}.closing:before{background-position:72% 50%;background-size:auto 100%;opacity:.13}.closing:after{background:linear-gradient(180deg,rgba(247,245,240,.97) 0%,rgba(247,245,240,.92) 58%,rgba(247,245,240,.82) 100%)}.closing-copy{padding:64px 24px 70px}.closing h2{font-size:36px}footer{padding:26px 24px}footer strong{font-size:30px}}
@media(max-width:390px){.hero h1{font-size:41px}.signup{flex-wrap:wrap}.signup input,.signup button{width:100%;flex-basis:100%}.idea-world h2,.experience h2{font-size:34px}.lead{font-size:22px}.phone-stage{min-height:480px;padding-bottom:28px}.phone-asset{width:72%}.gold-orbit{width:290px;height:290px}.closing h2{font-size:34px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.motion .hero-enter{animation:none!important}.motion .reveal,.motion .reveal.pending{transition:none!important;opacity:1!important;transform:none!important}}

/* V16 refinement pass */
:root{--mineral:#244f4d;--mineral-dark:#193d3b}

/* Normalize the vertical rhythm without flattening the hierarchy. */
.why-copy{padding-top:76px;padding-bottom:36px}
.bridge{margin:0}
.principles{padding-top:32px;padding-bottom:76px}
.experience-copy{padding-top:76px;padding-bottom:76px}
.closing-copy{padding-top:86px;padding-bottom:92px}

/* Keep the approved image and favor the open landscape/trees over furniture. */
.landscape{background-position:58% 45%}

/* Make the closing callback perceptible while keeping the copy dominant. */
.closing:before{background-position:68% 43%;filter:saturate(.60) contrast(.94) brightness(1.05);opacity:.28}
.closing:after{background:linear-gradient(90deg,rgba(247,245,240,.99) 0%,rgba(247,245,240,.95) 44%,rgba(247,245,240,.68) 72%,rgba(247,245,240,.46) 100%)}

/* The expanded bottom CTA contains only the input and action. */
.bottom-signup{max-width:620px;margin-top:18px;padding-top:0}

@media(max-width:800px){
 .why-copy{padding:50px 24px 30px}
 .principles{padding:0 24px 50px;gap:12px}
 .experience-copy{padding:50px 24px 24px}
 /* Preserve the V15 phone breathing room that tested well. */
 .phone-stage{min-height:530px;padding-bottom:34px}
 .landscape{background-position:59% 47%;background-size:auto 100%}
 .closing:before{background-position:66% 46%;background-size:auto 100%;opacity:.24}
 .closing:after{background:linear-gradient(180deg,rgba(247,245,240,.96) 0%,rgba(247,245,240,.90) 55%,rgba(247,245,240,.70) 100%)}
 .closing-copy{padding:68px 24px 74px}
}


/* V17 approved correction pass */
/* Keep the experience status stable while scrolling. */
.motion .experience-copy.reveal,
.motion .experience-copy.reveal.pending{opacity:1;transform:none;transition:none}

/* Let the locked landscape read as a photograph rather than a faint texture. */
.idea-world:after{background:linear-gradient(90deg,rgba(251,250,246,.90) 0%,rgba(251,250,246,.78) 38%,rgba(251,250,246,.34) 61%,rgba(251,250,246,.08) 100%)}

/* Strengthen the closing photographic callback while protecting copy contrast. */
.closing:before{opacity:.46;filter:saturate(.64) contrast(.96) brightness(1.02)}
.closing:after{background:linear-gradient(90deg,rgba(247,245,240,.91) 0%,rgba(247,245,240,.84) 44%,rgba(247,245,240,.53) 72%,rgba(247,245,240,.30) 100%)}

@media(max-width:800px){
 /* More visible trees/outdoors, with a soft readability veil behind the copy. */
 .idea-world:after{background:linear-gradient(180deg,rgba(251,250,246,.89) 0%,rgba(251,250,246,.76) 48%,rgba(251,250,246,.34) 72%,rgba(251,250,246,.10) 100%)}
 .closing:before{opacity:.43}
 .closing:after{background:linear-gradient(180deg,rgba(247,245,240,.86) 0%,rgba(247,245,240,.76) 55%,rgba(247,245,240,.48) 100%)}
 /* Match this major transition more closely to the established section rhythm. */
 .phone-stage{padding-bottom:20px}
 .closing-copy{padding-top:46px}
}

/* V18 — locked main WorthAnd image visibility; closing callback uses the same
   photographic strength with a deliberately tighter alternate crop. */
.closing:before{
  background-position:42% 54%;
  background-size:145% auto;
  opacity:1;
  filter:saturate(.72) contrast(.96) brightness(1.03);
}
.closing:after{
  background:linear-gradient(90deg,rgba(251,250,246,.90) 0%,rgba(251,250,246,.78) 38%,rgba(251,250,246,.34) 61%,rgba(251,250,246,.08) 100%);
}
.bottom-signup .signup-notes{margin-top:12px;max-width:570px}
.bottom-signup .signup-notes small{font-size:11px;line-height:1.4;color:#6e6b65}
@media(max-width:800px){
  .closing:before{background-position:38% 52%;background-size:auto 125%;opacity:1}
  .closing:after{background:linear-gradient(180deg,rgba(251,250,246,.89) 0%,rgba(251,250,246,.76) 48%,rgba(251,250,246,.34) 72%,rgba(251,250,246,.10) 100%)}
  .bottom-signup .signup-notes{text-align:left}
}

/* V19 — static text rendering on page load/refresh and stronger signup disclosure contrast. */
.motion .hero-enter,
.motion .reveal,
.motion .reveal.pending{
  animation:none!important;
  transition:none!important;
  opacity:1!important;
  transform:none!important;
}
.bottom-signup .signup-notes small{color:#494844}

/* V20 — WCAG 2.2 AA hardening + restrained scroll motion without first-paint animation. */
.skip-link{position:fixed;left:16px;top:12px;z-index:1000;padding:10px 14px;border-radius:8px;background:var(--ink);color:#fff;transform:translateY(-160%);transition:transform .15s ease;text-decoration:none}
.skip-link:focus{transform:translateY(0)}
.sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #2f6f9f;outline-offset:3px}
.signup input:focus-visible{border-color:#2f6f9f}
.signup input[aria-invalid="true"]{border-color:#8b2f2f}
.form-status{min-height:1.4em;margin:7px 0 0;font-size:12px;line-height:1.4;color:#494844}
.bottom-signup .form-status{margin-left:2px}

/* Override V19's blanket motion suppression. Initial state is always fully rendered;
   JS applies .pending only to selected elements below the current viewport. */
.motion .why-copy.reveal,
.motion .principles.reveal,
.motion .phone-stage.reveal,
.motion .closing.reveal{
  transition:opacity .65s ease,transform .65s cubic-bezier(.2,.72,.2,1)!important;
  opacity:1!important;
  transform:none!important;
}
.motion .why-copy.reveal.pending,
.motion .principles.reveal.pending,
.motion .phone-stage.reveal.pending,
.motion .closing.reveal.pending{
  opacity:.86!important;
  transform:translateY(10px)!important;
}
/* Functional/status content remains static. */
.motion .experience-copy.reveal,
.motion .experience-copy.reveal.pending{opacity:1!important;transform:none!important;transition:none!important}

@media(prefers-reduced-motion:reduce){
  .skip-link{transition:none}
  .motion .why-copy.reveal,.motion .principles.reveal,.motion .phone-stage.reveal,.motion .closing.reveal,
  .motion .why-copy.reveal.pending,.motion .principles.reveal.pending,.motion .phone-stage.reveal.pending,.motion .closing.reveal.pending{
    transition:none!important;opacity:1!important;transform:none!important
  }
}

/* V21 — stable first paint + decorative-only scroll motion. */
/* Text/content never receives an initial opacity or transform state. */
.motion .why-copy.reveal,.motion .principles.reveal,.motion .phone-stage.reveal,.motion .closing.reveal,
.motion .why-copy.reveal.pending,.motion .principles.reveal.pending,.motion .phone-stage.reveal.pending,.motion .closing.reveal.pending{
  opacity:1!important;transform:none!important;transition:none!important;
}
/* Decorative movement is driven by --wa-scroll-shift only after genuine scrolling. */
.landscape{transform:scale(1.008) translate3d(0,var(--wa-scroll-shift,0px),0);transition:transform .12s linear;will-change:transform}
.gold-orbit{translate:0 var(--wa-orbit-shift,0px);transition:translate .12s linear;will-change:translate}
/* Anchor the closing image independently of the expanding content height. */
@media(max-width:800px){
  .closing:before{background-position:38% top;background-size:auto 760px}
}
@media(prefers-reduced-motion:reduce){
  .landscape{transform:scale(1.008)!important;transition:none!important}
  .gold-orbit{translate:none!important;transition:none!important}
}

/* V22 — final mobile polish: fixed closing composition + perceptible decorative motion. */
/* The closing canvas is stable in both CTA states. Its photograph uses fixed pixel
   geometry on mobile, so expanding the form cannot change crop, scale, or focal point. */
@media(max-width:800px){
  .closing{min-height:780px}
  .closing:before{
    inset:0;
    background-position:38% -85px;
    background-size:auto 844px;
    background-repeat:no-repeat;
    transform:translate3d(0,var(--wa-closing-shift,0px),0);
    transform-origin:center top;
    transition:transform .10s linear;
    will-change:transform;
  }
  .closing-copy{position:relative;z-index:1}
}
/* Scroll motion is decorative only; text and controls remain stationary. */
.landscape{transform:scale(1.018) translate3d(0,var(--wa-scroll-shift,0px),0);transition:transform .10s linear}
.gold-orbit{translate:0 var(--wa-orbit-shift,0px);transition:translate .10s linear}
@media(prefers-reduced-motion:reduce){
  .landscape{transform:scale(1.018)!important;transition:none!important}
  .gold-orbit{translate:none!important;transition:none!important}
  .closing:before{transform:none!important;transition:none!important}
}

/* V23 — final mobile correction: compact closing, seam-free image layer, visible scroll depth. */
@media(max-width:800px){
  .experience{border-bottom:0}
  .closing{
    min-height:0;
    border-bottom:0;
  }
  .closing:before{
    /* Overscan prevents the decorative scroll shift from exposing section edges. */
    inset:-34px 0;
    background-position:38% -51px;
    background-size:auto 844px;
    background-repeat:no-repeat;
  }
  .closing-copy{
    padding-top:46px;
    padding-bottom:48px;
  }
  .bottom-signup{margin-bottom:0}
}


/* V24 — final closing-state geometry and focal-point correction. */
@media(max-width:800px){
  /* Reserve the expanded signup footprint in both states. This keeps the section
     geometry identical without imposing a brittle fixed pixel height. */
  .closing-copy{position:relative;padding-top:46px;padding-bottom:42px}
  .bottom-signup{display:block;min-height:116px;margin-top:18px}
  .bottom-signup.is-collapsed{visibility:hidden;pointer-events:none}
  .bottom-cta{position:absolute;left:24px;bottom:calc(42px + 116px - 54px);z-index:2}

  /* Keep V23 motion/opacity, but shift the locked crop so the glass reads clearly
     as a glass on the table rather than an unidentified edge at the section boundary. */
  .closing:before{
    background-position:34% -86px;
    background-size:auto 844px;
  }
}
@media(max-width:390px){
  .bottom-signup{min-height:142px}
  .bottom-cta{bottom:calc(42px + 142px - 54px)}
}

/* V25 — final mobile closing crop: zoom out and center the composition on the
   table + drink + trees. Preserve V23 motion, V24 opacity, and fixed signup geometry. */
@media(max-width:800px){
  .closing:before{
    background-size:auto 760px;
    background-position:31% -34px;
  }
}
@media(max-width:390px){
  .closing:before{
    background-size:auto 744px;
    background-position:31% -26px;
  }
}

/* V26 — FINAL MOBILE CROP.
   Slightly wider closing composition so the complete drink, tabletop and trees
   read together. Geometry, opacity and approved V23 motion remain unchanged. */
@media(max-width:800px){
  .closing:before{
    background-size:auto 690px;
    background-position:27% -6px;
  }
}
@media(max-width:390px){
  .closing:before{
    background-size:auto 676px;
    background-position:27% 0;
  }
}

/* V27 — final crop correction: preserve V26 zoom/horizontal framing while
   lifting the photo so the full bases of both vessels and tabletop are visible. */
@media (max-width:800px){
  .closing:before{
    background-size:auto 690px;
    background-position:27% -58px;
  }
}
@media (max-width:390px){
  .closing:before{
    background-size:auto 676px;
    background-position:27% -48px;
  }
}

/* V28 — desktop/tablet responsive composition. Mobile <=800px remains V27. */
@media(min-width:801px){
  header{height:92px;padding-inline:clamp(36px,6vw,96px)}
  .wordmark{font-size:40px}

  .hero-inner{min-height:650px;padding:76px clamp(36px,7vw,112px);position:relative}
  .hero-inner:after{content:"";position:absolute;right:clamp(28px,5vw,88px);top:50%;width:min(35vw,510px);aspect-ratio:1;border:1px solid rgba(181,139,72,.28);border-radius:50%;transform:translateY(-50%);box-shadow:inset 0 0 0 42px rgba(255,254,250,.28);pointer-events:none}
  .hero-text{position:relative;z-index:1;max-width:760px}
  .hero h1{font-size:clamp(62px,6.1vw,94px);max-width:850px}
  .hero-text>p{font-size:18px}.agency{font-size:27px!important}
  .hero .signup{max-width:650px}.hero .signup-notes{max-width:620px}

  .idea-world{min-height:820px;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(430px,.98fr);grid-template-rows:auto 1fr;align-items:start}
  .landscape{background-position:61% 47%;background-size:cover}
  .idea-world:after{background:linear-gradient(90deg,rgba(251,250,246,.94) 0%,rgba(251,250,246,.84) 36%,rgba(251,250,246,.36) 64%,rgba(251,250,246,.08) 100%)}
  .why-copy{grid-column:1;padding:92px 36px 28px clamp(36px,7vw,112px);max-width:820px}
  .idea-world h2{font-size:clamp(48px,4.5vw,68px)}
  .lead{font-size:clamp(26px,2.4vw,36px)}
  .bridge{font-size:17px;max-width:690px}
  .principles{grid-column:1;grid-template-columns:1fr;padding:10px 36px 92px clamp(36px,7vw,112px);max-width:820px;gap:13px}
  .principles article{padding:22px 26px;background:rgba(255,254,250,.88)}
  .principles h3{font-size:23px}.principles p{font-size:14px}

  .experience{grid-template-columns:minmax(0,1fr) minmax(460px,.92fr);min-height:780px}
  .experience-copy{padding:92px 5vw 92px clamp(36px,7vw,112px);max-width:830px}
  .experience h2{font-size:clamp(48px,4.4vw,66px)}
  .experience h3{font-size:29px;max-width:620px}
  .experience-copy>p:not(.eyebrow){font-size:17px;max-width:640px}
  .facts{margin:24px 0}.facts span{font-size:13px;padding:9px 15px}
  .testing{max-width:660px}.testing p{font-size:14px}
  .phone-stage{min-height:780px}.phone-stage:before{width:72%;height:64%}
  .gold-orbit{width:min(36vw,520px);height:min(36vw,520px)}
  .phone-asset{width:min(430px,70%)}

  .closing{min-height:610px;display:flex;align-items:center}
  .closing:before{inset:-40px 0;background-size:cover;background-position:58% 54%;transform:translate3d(0,var(--wa-closing-shift,0px),0);transition:transform .10s linear;will-change:transform}
  .closing:after{background:linear-gradient(90deg,rgba(251,250,246,.91) 0%,rgba(251,250,246,.78) 42%,rgba(251,250,246,.30) 72%,rgba(251,250,246,.10) 100%)}
  .closing-copy{width:min(920px,66vw);padding:90px 36px 90px clamp(36px,7vw,112px)}
  .closing h2{font-size:clamp(50px,4.8vw,72px);max-width:860px}
  .bottom-signup{max-width:680px}
  .bottom-signup .signup{max-width:680px}

  footer{padding:34px clamp(36px,7vw,112px);grid-template-columns:1fr auto;column-gap:42px}
  footer strong{font-size:38px}footer nav{gap:32px;font-size:16px}
}

@media(min-width:801px) and (max-width:1100px){
  .hero-inner{min-height:610px;padding-inline:56px}.hero-inner:after{right:28px;width:38vw}
  .idea-world{grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr)}
  .why-copy,.principles,.experience-copy,.closing-copy{padding-left:56px}
  .principles{padding-right:28px}
  .experience{grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr)}
  .phone-asset{width:min(390px,74%)}
  .closing-copy{width:72vw}
  footer{padding-inline:56px}
}

/* V28 responsive correction — signup state is behavioral, never breakpoint-driven. */
.bottom-signup.is-collapsed{visibility:hidden;pointer-events:none}

/* Phone landscape correction. iPhone/Android landscape widths can exceed the
   800px mobile breakpoint; preserve phone behavior without flattening tablet/desktop. */
@media (hover:none) and (pointer:coarse) and (max-height:500px){
  /* Do not introduce the desktop decorative hero circle on a phone. */
  .hero-inner:after{content:none!important;display:none!important}

  /* A collapsed form remains collapsed after rotation. */
  .bottom-signup.is-collapsed{visibility:hidden!important;pointer-events:none!important}

  /* Keep the closing callback centered on the table/vessels rather than chair. */
  .closing{min-height:560px;display:block}
  .closing:before{
    inset:0;
    background-size:auto 690px;
    background-position:27% -58px;
  }
  .closing-copy{width:min(760px,76vw);padding:58px 32px 48px}
  .closing h2{font-size:clamp(38px,6.2vw,56px)}
}

/* V28 final desktop/tablet polish — remove nonessential hero ornament and
   make the closing use the same source photo as an intentionally different callback. */
@media (min-width:801px){
  .hero-inner:after{content:none;display:none}
  .closing:before{
    background-size:auto max(720px,58vw);
    background-position:20% 48%;
  }
}
@media (min-width:801px) and (max-width:1100px){
  .closing:before{
    background-size:auto max(680px,76vw);
    background-position:23% 48%;
  }
}

/* Production first-access integration — preserve V28 visual system while Kit handles submission. */
.signup.formkit-form{max-width:none;padding:0;background:transparent}
.signup .formkit-alert{flex-basis:100%;width:100%;margin:0 0 8px;padding:0;list-style:none;font-size:12px;line-height:1.4;color:#8b2f2f}
.signup .formkit-alert:empty{display:none}
.signup .formkit-submit{margin:0}
.signup .formkit-submit>span{display:block}
.signup .formkit-submit[data-active]{opacity:.72;cursor:wait}
.signup .formkit-alert-success{flex-basis:100%;margin:0;font-size:12px;line-height:1.4;color:#205958}

/* Functional post-signup state; preserves the approved V28 visual design. */
.signup[hidden], .signup-notes[hidden] {display:none!important}
.wa-signup-success {font-size:15px;line-height:1.5;color:#205958;font-weight:500;margin-top:20px;max-width:570px}

/* Final closing-image replacement: preserve V28 movement/overlay behavior and opacity. */
.closing:before{background-image:url('assets/hillside-closing.jpg')}
@media (max-width:800px){
  .closing:before{background-position:58% top}
}
@media (hover:none) and (pointer:coarse) and (max-height:500px){
  .closing:before{background-size:cover;background-position:62% 50%}
}
@media (min-width:801px){
  .closing:before{background-size:cover;background-position:58% 50%}
}

/* WorthAnd-styled global confirmation state. */
.wa-signup-success{margin-top:20px;max-width:590px;color:var(--ink)}
.wa-signup-success strong{display:block;font:600 clamp(28px,3vw,38px)/1.05 Fraunces,serif;letter-spacing:-.02em;margin-bottom:8px;color:var(--ink)}
.wa-signup-success span{display:block;font:400 15px/1.5 Inter,Arial,sans-serif;color:var(--ink)}
.wa-subscribed .signup-notes{display:none!important}
.wa-subscribed #bottom-cta{display:none!important}
.wa-subscribed #bottom-signup{visibility:visible!important;pointer-events:auto;min-height:0}
.wa-subscribed #bottom-signup .signup-notes{display:none!important}

/* V28 final correction — restore the approved closing-photo depth treatment exactly.
   The hillside replaces only the image asset; V28 scroll motion, filter and veil remain. */
.closing:before{
  background-image:url('assets/hillside-closing.jpg');
  opacity:1;
  filter:saturate(.72) contrast(.96) brightness(1.03);
  transform:translate3d(0,var(--wa-closing-shift,0px),0)!important;
  transition:transform .10s linear!important;
  will-change:transform;
}
.closing:after{
  background:linear-gradient(90deg,rgba(251,250,246,.90) 0%,rgba(251,250,246,.78) 38%,rgba(251,250,246,.34) 61%,rgba(251,250,246,.08) 100%);
}
@media(max-width:800px){
  .closing:before{
    inset:-34px 0;
    background-size:cover;
    background-position:58% 50%;
    opacity:1;
    transform:translate3d(0,var(--wa-closing-shift,0px),0)!important;
  }
  .closing:after{
    background:linear-gradient(180deg,rgba(251,250,246,.89) 0%,rgba(251,250,246,.76) 48%,rgba(251,250,246,.34) 72%,rgba(251,250,246,.10) 100%);
  }
}
@media (hover:none) and (pointer:coarse) and (max-height:500px){
  .closing:before{inset:-34px 0;background-size:cover;background-position:62% 50%}
}
@media(min-width:801px){
  .closing:before{inset:-40px 0;background-size:cover;background-position:58% 50%}
}
@media(prefers-reduced-motion:reduce){
  .closing:before{transform:none!important;transition:none!important}
}


/* Final QA correction — the phone stands on its own; remove legacy orbit decoration. */
.gold-orbit{display:none!important}

/* Signup errors should be clearly readable but remain secondary to the CTA. */
.signup .formkit-alert{font-size:14px;line-height:1.45;font-weight:500;color:#7b2d2d}

/* Production-candidate phone treatment — no decorative backdrop, perfectly upright. */
.phone-stage:before{display:none!important}
.gold-orbit{display:none!important}
.phone-asset{transform:none!important}
