/* ============================================================
   BANDS, the Cakesmash site design system v3. Kyle picked it Sep 7 2026
   ("let's go with B bands"). Reference render: ../design-lab/runs/09b-bands.html
   Scoped to body.v3 so pages migrate one at a time. Loads AFTER site.css.
   Rules: Gloock display, DM Sans text. No black boxes, no white sections.
   Every ground is a brand gradient (ADR-0002 hero family + the navy family),
   crossfading in document order. Glass cards. Coral accent on dark. Pill buttons.
   ============================================================ */
body.v3{--v3-coral:#ee5a73;--v3-red:#e3405b;--v3-glass:rgba(255,255,255,.06);--v3-line:rgba(255,255,255,.14);--v3-text:rgba(232,237,244,.84);color:#fff}

/* type */
body.v3 h1,body.v3 h2,body.v3 h3{font-family:var(--font-display);font-weight:400;color:#fff}
body.v3 h2{font-size:clamp(34px,4.2vw,54px);line-height:1.05;letter-spacing:-.025em}
body.v3 .eyebrow{color:var(--v3-coral)!important;opacity:1!important;letter-spacing:.22em;font-size:.78rem}
body.v3 .divider{background:var(--v3-line)!important;height:1px;width:80px}
body.v3 .lead,body.v3 p{color:var(--v3-text)}
body.v3 p.lead{font-weight:300}

/* buttons: one shape everywhere */
body.v3 .btn{border-radius:999px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:16px 26px;border:1.5px solid transparent}
body.v3 .btn-outline-white{background:var(--v3-red);border-color:var(--v3-red);color:#fff}
body.v3 .btn-outline-white:hover{background:var(--v3-coral);border-color:var(--v3-coral);color:#fff}
body.v3 .btn-ghost{border-color:#fff;color:#fff;background:transparent}
body.v3 .btn-ghost:hover{background:rgba(255,255,255,.1)}

/* hero: the smoke is the one atmospheric moment; no breath animation, no defocus blur */
body.v3 .hero h1{animation:none;transform:none;font-size:clamp(54px,7.2vw,96px);line-height:.95;letter-spacing:-.025em;text-shadow:0 2px 40px rgba(0,0,0,.35)}
body.v3 .h1-defocus{filter:none;opacity:1;display:inline}
body.v3 .hero h1 i.rf{font-style:italic;color:var(--v3-coral)}
body.v3 .hero--home p.lead{font-size:1.28rem;max-width:34em}
body.v3 .hero .micro{color:rgba(232,237,244,.7)}

/* the band chain, in document order */
body.v3 .gb-reel{background:linear-gradient(180deg,#07070f 0%,#1c0616 24%,#3B001A 50%,#4A2A7A 100%)} /* Sep 8: opens in the hero's dark so the hero-to-reel edge dissolves */
body.v3 .wound-stage{background:linear-gradient(180deg,#4A2A7A 0%,#2A2060 100%)}
body.v3 .wound-stage::before,body.v3 .wound-stage::after{display:none}
body.v3 .gb-stagnate{background:transparent}
body.v3 .gb-pulse{background:linear-gradient(180deg,#2A2060 0%,#0e4382 100%)}
body.v3 .gb-proof{background:linear-gradient(180deg,#0e4382 0%,#1d5cc8 100%);color:#fff}
body.v3 .gb-ai-bridge{background:linear-gradient(180deg,#1d5cc8 0%,#1A2D5E 55%,#141f45 100%)} /* Sep 8 pass 3: the AI stance goes quiet and navy so Six Practices carries the CTA weight */
body.v3 .gb-cta{background:linear-gradient(180deg,#141f45 0%,#2A3F7E 40%,#4A2A7A 100%)}
body.v3 #brief{background:linear-gradient(180deg,#4A2A7A 0%,#2A2060 100%)!important}
body.v3 .gb-footer{background:#0A0F1E}

/* cards: glass, one accent bar, white type; the old cyan is gone */
body.v3 .diagnosis-card{background:var(--v3-glass);border:1px solid var(--v3-line);border-radius:6px;padding:26px 26px 24px;position:relative;backdrop-filter:blur(6px)}
body.v3 .diagnosis-card::before{content:"";position:absolute;top:-1px;left:26px;width:44px;height:3px;background:var(--v3-coral)}
body.v3 .diagnosis-card h3{color:#fff;font-size:1.45rem;letter-spacing:-.015em}
body.v3 .diagnosis-card .label{color:var(--v3-coral);opacity:1}
body.v3 .diagnosis-card p{color:var(--v3-text)}
body.v3 .diagnosis-card .fix{border-top:1px solid var(--v3-line);color:var(--v3-text)}
body.v3 .diagnosis-card .fix strong{color:var(--v3-coral)}
body.v3 .gb-stagnate p[style*="22dde0"]{color:var(--v3-coral)!important}
body.v3 .gb-proof .diagnosis-card .label{color:var(--v3-coral);opacity:1}
body.v3 .gb-proof .diagnosis-card h3,body.v3 .gb-proof .diagnosis-card p[style*="font:800"]{font-family:var(--font-display)!important;font-weight:400!important;font-size:3.2rem!important;letter-spacing:-.03em!important;color:#fff}
body.v3 .gb-proof .diagnosis-card:first-child h3{color:var(--v3-coral)}
body.v3 .gb-proof a{color:#fff}

/* the four rungs and the six refusals */
body.v3 .pulse-rung{background:var(--v3-glass);border:1px solid var(--v3-line);border-radius:6px;padding:22px 24px}
body.v3 .pulse-rung-letter{color:var(--v3-coral);font-family:var(--font-body);font-weight:700;letter-spacing:.14em;font-size:12px}
body.v3 .pulse-rung h3{color:#fff}
body.v3 .refusal-image-stage{background:var(--v3-glass);border:1px solid var(--v3-line);border-radius:6px}
body.v3 .refusal-image-stage::before,body.v3 .refusal-image-stage::after{display:none}
body.v3 .values-row{border-bottom:1px solid var(--v3-line);padding:18px 0}
body.v3 .values-row h3{font-size:1.35rem;color:#fff}
body.v3 .director-close{border-top:1px solid var(--v3-line)}
body.v3 .director-close-line{font-family:var(--font-display);font-size:1.5rem;color:#fff}

/* AI stance, close, brief */
body.v3 .gb-ai-bridge .statement{color:#fff;font-family:var(--font-display);font-weight:400;font-size:clamp(26px,2.6vw,34px);line-height:1.25}
body.v3 .gb-ai-bridge a{color:var(--v3-coral)!important;border-bottom-color:var(--v3-coral)!important}
body.v3 .gb-cta .divider{background:var(--v3-line)!important}
body.v3 #brief h2{color:#fff!important}
body.v3 #brief p{color:var(--v3-text)!important}
body.v3 #brief select,body.v3 #brief input{background:var(--v3-glass)!important;border:1px solid var(--v3-line)!important;color:#fff!important;border-radius:6px!important}
body.v3 #brief select option{color:#1A1A1A}
body.v3 #brief button{background:var(--v3-red)!important;border-radius:999px!important;box-shadow:none!important;letter-spacing:.06em;text-transform:uppercase;font-size:13px!important;font-weight:700!important}
body.v3 #brief #nlNote{color:rgba(232,237,244,.6)!important}

/* footer */
body.v3 .site-footer{color:var(--v3-text)}
body.v3 .footer-tagline{color:#fff;font-family:var(--font-display);font-size:1.4rem}
body.v3 .footer-subline,body.v3 .footer-location{color:rgba(232,237,244,.6)}
body.v3 .footer-nav a{color:var(--v3-text)}

/* refusals: a two-column numbered grid, not a left column (Sep 7, after the first full render) */
body.v3 .refusal-image-stage{padding:44px 40px 40px}
body.v3 .refusal-image-stage .text-center{margin-bottom:8px}
body.v3 .values-list{max-width:none!important;margin:26px 0 0!important;display:grid;grid-template-columns:1fr 1fr;gap:6px 44px;perspective:none;counter-reset:rf}
body.v3 .values-row{padding:16px 0;border-bottom:1px solid var(--v3-line)!important;display:flex;gap:16px;align-items:baseline;counter-increment:rf;opacity:1!important;transform:none!important}
body.v3 .values-row::before{content:counter(rf,decimal-leading-zero);font:700 12px var(--font-body);letter-spacing:.14em;color:var(--v3-coral);flex:0 0 auto}
body.v3 .gb-pulse .values-row h3{border-bottom:0!important;padding-bottom:0!important;width:auto!important;font-size:1.25rem;line-height:1.3;margin:0}
@media (max-width:820px){body.v3 .values-list{grid-template-columns:1fr}}

/* ============ FOOTER v3: Giant Wordmark, contact strip (Kyle picked G1, Sep 7). No phone number, ever. ============ */
body.v3 .site-footer.f3v{background:#0A0F1E;color:var(--v3-text);padding:80px 0 0;overflow:hidden;position:relative}
body.v3 .f3v .container{max-width:1168px;padding:0 24px}
body.v3 .f3v .f-top{display:grid;grid-template-columns:1.2fr 1fr .9fr;gap:48px;align-items:start}
@media (max-width:820px){body.v3 .f3v .f-top{grid-template-columns:1fr;gap:34px}}
body.v3 .f3v .f-tag{font:400 26px/1.25 var(--font-display);color:#fff;max-width:22ch;margin:22px 0 0}
body.v3 .f3v .f-h4{font:700 11px/1 var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:rgba(232,237,244,.5);margin:0 0 14px}
body.v3 .f3v .f-contact a,body.v3 .f3v .f-contact span{display:block;color:#fff;text-decoration:none;font:400 16px/1.9 var(--font-body)}
body.v3 .f3v .f-contact a.mail{font-weight:700;border-bottom:1.5px solid var(--v3-coral);display:inline-block;line-height:1.4;margin-bottom:10px}
body.v3 .f3v .f-contact a.book{color:var(--v3-coral);font-weight:700}
body.v3 .f3v .f-contact span{color:rgba(232,237,244,.5)}
body.v3 .f3v .f-links a{display:block;color:var(--v3-text);text-decoration:none;font:400 15px/2.1 var(--font-body)}
body.v3 .f3v .f-links a:hover{color:#fff}
body.v3 .f3v .footer-logo{height:40px;width:auto;display:block;margin:0}
body.v3 .f3v .f-big{font:400 13.4vw/0.86 var(--font-display);letter-spacing:-.04em;color:#fff;white-space:nowrap;opacity:.96;margin:60px 0 26px}
body.v3 .f3v .f-big i{font-style:normal;color:var(--v3-coral)}
body.v3 .f3v .f-legal{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 0 30px;border-top:1px solid var(--v3-line);font:400 12px/1.6 var(--font-body);color:rgba(232,237,244,.5)}
body.v3 .f3v .f-legal a{color:rgba(232,237,244,.5);text-decoration:none;margin-left:22px}
body.v3 .gb-footer.f3v::before{height:2px}

/* ============================================================
   STANDALONE PAGES, Sep 7 2026. The nine pages that carry their own <style> block and never
   loaded site.css: /recut, /proof, /ai-sprint, /apply, /resources (index only), /ai-concierge,
   /call-confirmed, /sprint-booked, /who-runs-this. migrate_v3.py skipped them (no site.css link,
   own footer markup). Each is scoped to body.v3.page-<name>, so nothing here can reach the
   homepage or the shared-stylesheet pages. Shared base first (the two font tokens site.css would
   have supplied, plus footer hygiene against each page's leftover footer{} rules), then one block
   per page. Band chain is the homepage's, in document order. Appended only.
   ============================================================ */
body.v3.page-recut,body.v3.page-proof,body.v3.page-ai-sprint,body.v3.page-apply,body.v3.page-resources,body.v3.page-ai-concierge,body.v3.page-call-confirmed,body.v3.page-sprint-booked,body.v3.page-who-runs-this{--font-display:'Gloock','Cormorant Garamond',Georgia,serif;--font-body:'DM Sans','Helvetica Neue',Arial,sans-serif;--cs-warmgray:#B0AAA8;font-family:var(--font-body)}
/* the G1 footer on a page whose own stylesheet still says footer{...} and footer a{display:block} */
body.v3.page-recut .site-footer.f3v,body.v3.page-proof .site-footer.f3v,body.v3.page-ai-sprint .site-footer.f3v,body.v3.page-apply .site-footer.f3v,body.v3.page-resources .site-footer.f3v,body.v3.page-ai-concierge .site-footer.f3v,body.v3.page-call-confirmed .site-footer.f3v,body.v3.page-sprint-booked .site-footer.f3v,body.v3.page-who-runs-this .site-footer.f3v{border-top:0;font-size:16px;font-weight:400;letter-spacing:normal;text-transform:none;text-align:left;line-height:1.6;margin-top:0}
body.v3.page-recut .f3v .container,body.v3.page-proof .f3v .container,body.v3.page-ai-sprint .f3v .container,body.v3.page-apply .f3v .container,body.v3.page-resources .f3v .container,body.v3.page-ai-concierge .f3v .container,body.v3.page-call-confirmed .f3v .container,body.v3.page-sprint-booked .f3v .container,body.v3.page-who-runs-this .f3v .container{margin:0 auto;width:100%;box-sizing:border-box}
body.v3.page-recut .f3v .f-legal a,body.v3.page-proof .f3v .f-legal a,body.v3.page-ai-sprint .f3v .f-legal a,body.v3.page-apply .f3v .f-legal a,body.v3.page-resources .f3v .f-legal a,body.v3.page-ai-concierge .f3v .f-legal a,body.v3.page-call-confirmed .f3v .f-legal a,body.v3.page-sprint-booked .f3v .f-legal a,body.v3.page-who-runs-this .f3v .f-legal a{display:inline;margin-top:0;padding:0;font-size:12px}
body.v3.page-recut .f3v .f-legal span,body.v3.page-proof .f3v .f-legal span,body.v3.page-ai-sprint .f3v .f-legal span,body.v3.page-apply .f3v .f-legal span,body.v3.page-resources .f3v .f-legal span,body.v3.page-ai-concierge .f3v .f-legal span,body.v3.page-call-confirmed .f3v .f-legal span,body.v3.page-sprint-booked .f3v .f-legal span,body.v3.page-who-runs-this .f3v .f-legal span{display:inline;color:rgba(232,237,244,.5);font-size:12px}
body.v3.page-recut .f3v p,body.v3.page-proof .f3v p,body.v3.page-ai-sprint .f3v p,body.v3.page-apply .f3v p,body.v3.page-resources .f3v p,body.v3.page-ai-concierge .f3v p,body.v3.page-call-confirmed .f3v p,body.v3.page-sprint-booked .f3v p,body.v3.page-who-runs-this .f3v p{margin-bottom:0}
body.v3.page-recut .f3v .footer-logo,body.v3.page-proof .f3v .footer-logo,body.v3.page-ai-sprint .f3v .footer-logo,body.v3.page-apply .f3v .footer-logo,body.v3.page-resources .f3v .footer-logo,body.v3.page-ai-concierge .f3v .footer-logo,body.v3.page-call-confirmed .f3v .footer-logo,body.v3.page-sprint-booked .f3v .footer-logo,body.v3.page-who-runs-this .f3v .footer-logo{opacity:1;filter:none;border-radius:0}
/* h1 on these pages is a page title, not the homepage's 96px smoke moment; h2 sits in a 760-820px reading column */
body.v3.page-proof .hero h1,body.v3.page-ai-concierge .hero h1,body.v3.page-call-confirmed .hero h1,body.v3.page-who-runs-this .hero h1{font-size:clamp(38px,5vw,60px);line-height:1.05;letter-spacing:-.02em;text-shadow:none}
body.v3.page-recut h2,body.v3.page-proof h2,body.v3.page-ai-sprint h2,body.v3.page-ai-concierge h2,body.v3.page-call-confirmed h2,body.v3.page-sprint-booked h2,body.v3.page-who-runs-this h2{font-size:clamp(30px,3.4vw,44px);line-height:1.1;letter-spacing:-.02em}

/* ---- /recut ---- Midnight hero (the photo bleeds into it, like the homepage smoke), then the chain. */
body.v3.page-recut{background:#0A0F1E}
body.v3.page-recut .mark,body.v3.page-recut .price,body.v3.page-recut .tier .amt,body.v3.page-recut ol.q li::before{font-family:var(--font-display)}
body.v3.page-recut ol.q li::before{color:var(--v3-coral)}
body.v3.page-recut .splitL{background:radial-gradient(120% 90% at 8% 0%,rgba(14,67,130,.55) 0%,rgba(10,15,30,0) 62%),#0A0F1E}
body.v3.page-recut .splitR{background-color:#0A0F1E}
body.v3.page-recut .site-nav-real .links a,body.v3.page-recut .sitelinks a{color:var(--v3-text)}
body.v3.page-recut .site-nav-real .loc,body.v3.page-recut .lab,body.v3.page-recut .creds,body.v3.page-recut table td:first-child{color:rgba(232,237,244,.6)}
body.v3.page-recut .lab.a{color:var(--v3-coral)}
body.v3.page-recut section{border-top:0}
body.v3.page-recut section:nth-of-type(1){background:linear-gradient(180deg,#0A0F1E 0%,#3B001A 14%,#4A2A7A 100%)}
body.v3.page-recut section:nth-of-type(2){background:linear-gradient(180deg,#4A2A7A 0%,#2A2060 100%)}
body.v3.page-recut section:nth-of-type(3){background:linear-gradient(180deg,#2A2060 0%,#0e4382 100%)}
body.v3.page-recut section:nth-of-type(4){background:linear-gradient(180deg,#0e4382 0%,#1d5cc8 100%)}
body.v3.page-recut section:nth-of-type(5){background:linear-gradient(180deg,#1d5cc8 0%,#2A3F7E 100%)}
body.v3.page-recut section:nth-of-type(6){background:linear-gradient(180deg,#2A3F7E 0%,#4A2A7A 100%)}
body.v3.page-recut section:nth-of-type(7){background:linear-gradient(180deg,#4A2A7A 0%,#2A2060 100%)}
body.v3.page-recut .offer,body.v3.page-recut .tier,body.v3.page-recut .fits{background:var(--v3-glass);border:1px solid var(--v3-line);border-radius:6px;backdrop-filter:blur(6px)}
body.v3.page-recut .offer::before{background:var(--v3-coral)}
body.v3.page-recut table td,body.v3.page-recut .notlist{border-color:var(--v3-line)}
body.v3.page-recut .underline-note{border-left-color:var(--v3-coral)}
body.v3.page-recut .btn.ghost{background:transparent;border-color:#fff;color:#fff}
body.v3.page-recut .btn.ghost:hover{background:rgba(255,255,255,.1);border-color:#fff}
body.v3.page-recut .tier .amt span{color:rgba(232,237,244,.6)!important}

/* ---- /proof ---- the page's own tokens are remapped, so every panel and rule follows without touching markup. */
body.v3.page-proof{background:#0A0F1E;font-weight:300;--bg:#0A0F1E;--panel:rgba(255,255,255,.06);--edge:rgba(255,255,255,.14);--faint:rgba(232,237,244,.62);--dim:rgba(232,237,244,.84);--line:rgba(255,255,255,.3)}
body.v3.page-proof .brand,body.v3.page-proof .serif,body.v3.page-proof .stat .n,body.v3.page-proof #offer table td.rate span{font-family:var(--font-display)}
body.v3.page-proof nav{background:#3B001A;border-bottom:1px solid rgba(255,255,255,.1)}
body.v3.page-proof nav a{color:#fff}
body.v3.page-proof .hero{background:linear-gradient(180deg,#3B001A 0%,#4A2A7A 100%)}
body.v3.page-proof section{border-top:0}
body.v3.page-proof section:nth-of-type(1){background:linear-gradient(180deg,#4A2A7A 0%,#2A2060 100%)}
body.v3.page-proof section:nth-of-type(2){background:linear-gradient(180deg,#2A2060 0%,#0e4382 100%)}
body.v3.page-proof section:nth-of-type(3){background:linear-gradient(180deg,#0e4382 0%,#1d5cc8 100%)}
body.v3.page-proof section:nth-of-type(4){background:linear-gradient(180deg,#1d5cc8 0%,#2A3F7E 100%)}
body.v3.page-proof section:nth-of-type(5){background:linear-gradient(180deg,#2A3F7E 0%,#4A2A7A 100%)}
body.v3.page-proof section:nth-of-type(6){background:linear-gradient(180deg,#4A2A7A 0%,#2A2060 100%)}
body.v3.page-proof section:nth-of-type(7){background:linear-gradient(180deg,#2A2060 0%,#0e4382 100%)}
body.v3.page-proof .stat,body.v3.page-proof .verify,body.v3.page-proof .slots{backdrop-filter:blur(6px)}
body.v3.page-proof .kicker{color:var(--v3-coral)}

/* ---- /ai-sprint ---- no site nav on this page (a wordmark only); left as found. Photo sections keep their image, the veil is the band. */
body.v3.page-ai-sprint{background:#0A0F1E;font-weight:300;--panel:rgba(255,255,255,.06);--panel2:rgba(255,255,255,.06)}
body.v3.page-ai-sprint .felt li,body.v3.page-ai-sprint .row .num,body.v3.page-ai-sprint .math .q,body.v3.page-ai-sprint .pg h4,body.v3.page-ai-sprint .pull,body.v3.page-ai-sprint .qa h4,body.v3.page-ai-sprint .price,body.v3.page-ai-sprint .noshill .big{font-family:var(--font-display)}
body.v3.page-ai-sprint .kicker,body.v3.page-ai-sprint .fld input,body.v3.page-ai-sprint .opt span{font-family:var(--font-body)}
body.v3.page-ai-sprint section:nth-of-type(1){background:linear-gradient(180deg,#3B001A 0%,#4A2A7A 100%)}
body.v3.page-ai-sprint section:nth-of-type(1)::after{background:linear-gradient(180deg,rgba(59,0,26,.93),rgba(74,42,122,.93))}
body.v3.page-ai-sprint section:nth-of-type(2){background:linear-gradient(180deg,#4A2A7A 0%,#2A2060 100%)}
body.v3.page-ai-sprint section:nth-of-type(3){background:linear-gradient(180deg,#2A2060 0%,#0e4382 100%)}
body.v3.page-ai-sprint section:nth-of-type(4){background:linear-gradient(180deg,#0e4382 0%,#1d5cc8 100%)}
body.v3.page-ai-sprint section:nth-of-type(4)::after{background:linear-gradient(180deg,rgba(14,67,130,.93),rgba(29,92,200,.93))}
body.v3.page-ai-sprint section:nth-of-type(5){background:linear-gradient(180deg,#1d5cc8 0%,#2A3F7E 100%)}
body.v3.page-ai-sprint section:nth-of-type(6){background:linear-gradient(180deg,#2A3F7E 0%,#4A2A7A 100%)}
body.v3.page-ai-sprint section:nth-of-type(7){background:linear-gradient(180deg,#4A2A7A 0%,#2A2060 100%)}
body.v3.page-ai-sprint section:nth-of-type(8){background:linear-gradient(180deg,#2A2060 0%,#0e4382 100%)}
body.v3.page-ai-sprint .faq{background:var(--v3-glass);border:1px solid var(--v3-line);border-radius:6px;box-shadow:none;backdrop-filter:blur(6px)}
body.v3.page-ai-sprint .faq:after{display:none}
body.v3.page-ai-sprint .faq:before{border-radius:6px 6px 0 0}
body.v3.page-ai-sprint .fwrap{border-radius:6px;border-color:var(--v3-line);backdrop-filter:blur(6px)}
body.v3.page-ai-sprint .lab,body.v3.page-ai-sprint .credit,body.v3.page-ai-sprint .fine,body.v3.page-ai-sprint .note{color:rgba(232,237,244,.6)}
body.v3.page-ai-sprint .lab.a{color:var(--v3-coral)}
body.v3.page-ai-sprint .no li{color:rgba(232,237,244,.5)}

/* ---- /apply ---- one-screen ladder: the whole page is one fixed band. No nav on this page (wordmark only); left as found. */
body.v3.page-apply{background:linear-gradient(165deg,#3B001A 0%,#4A2A7A 30%,#2A2060 62%,#0e4382 100%);background-attachment:fixed}
body.v3.page-apply input,body.v3.page-apply .opt,body.v3.page-apply .cta,body.v3.page-apply .back{font-family:var(--font-body)}
body.v3.page-apply .cta{background:var(--v3-red);border:1.5px solid var(--v3-red);border-radius:999px;box-shadow:none;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:16px 26px}
body.v3.page-apply .cta:hover:not(:disabled){background:var(--v3-coral);border-color:var(--v3-coral)}
body.v3.page-apply .opt{border-radius:6px;background:var(--v3-glass);border-color:var(--v3-line)}
body.v3.page-apply .eyebrow{color:#fff!important;letter-spacing:.2em;font-size:12.5px}
body.v3.page-apply .capture{border-radius:6px}
body.v3.page-apply .topbar .help{color:rgba(232,237,244,.6)}

/* ---- /resources (index only; the 99 article pages are untouched) ---- */
body.v3.page-resources{color:#fff;background:linear-gradient(180deg,#1d5cc8 0,#1d5cc8 640px,#2A3F7E 2200px,#4A2A7A 4800px,#2A2060 100%)}
body.v3.page-resources > div:first-child a{font-family:var(--font-body)!important}
body.v3.page-resources .resources-hero{background:linear-gradient(180deg,#0e4382 0%,#1d5cc8 100%)}
body.v3.page-resources .resources-hero h1{font-weight:400;letter-spacing:-.025em}
body.v3.page-resources .resources-hero .stat,body.v3.page-resources .card__rt{font-family:var(--font-body);letter-spacing:.02em}
body.v3.page-resources .filter-bar{background:rgba(10,15,30,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--v3-line)}
body.v3.page-resources .filter__label{color:rgba(232,237,244,.55)}
body.v3.page-resources .chip{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35);font-family:var(--font-body)}
body.v3.page-resources .chip:hover{border-color:#fff}
body.v3.page-resources .chip--active{background:var(--v3-red);border-color:var(--v3-red);color:#fff}
body.v3.page-resources .section-heading{font-size:38px;color:#fff;letter-spacing:-.02em}
body.v3.page-resources .section-sub{color:rgba(232,237,244,.7)}
body.v3.page-resources .card{background:var(--v3-glass);border:1px solid var(--v3-line);border-radius:6px;backdrop-filter:blur(6px)}
body.v3.page-resources .card:hover{border-color:rgba(255,255,255,.4);box-shadow:none}
body.v3.page-resources .card--featured{background:rgba(255,255,255,.09);border:1px solid var(--v3-coral)}
body.v3.page-resources .card__title{font-size:22px;line-height:1.2;letter-spacing:-.01em}
body.v3.page-resources .card--featured .card__title{font-size:26px}
body.v3.page-resources .card__title a{color:#fff}
body.v3.page-resources .card__title a:hover{color:var(--v3-coral)}
body.v3.page-resources .card__teaser{color:var(--v3-text)}
body.v3.page-resources .card__foot{border-top:1px solid var(--v3-line);color:rgba(232,237,244,.55)}
body.v3.page-resources .card__meta{color:var(--v3-coral)}
body.v3.page-resources .card__rt{color:rgba(232,237,244,.55)}
body.v3.page-resources .badge--pending{background:rgba(255,255,255,.1);color:rgba(232,237,244,.7)}
body.v3.page-resources .empty,body.v3.page-resources #noresults{color:rgba(232,237,244,.6)}

/* ---- /ai-concierge ---- the page's amber is remapped to the system coral (ADR-0002 has no gold). No site nav (wordmark only); left as found. */
body.v3.page-ai-concierge{background:#0A0F1E;font-weight:300;--amber:#ee5a73;--field:#0A0F1E;--panel:rgba(255,255,255,.06);--panel2:rgba(255,255,255,.06)}
body.v3.page-ai-concierge .hstat b,body.v3.page-ai-concierge .row .num,body.v3.page-ai-concierge .cell h4,body.v3.page-ai-concierge td.p,body.v3.page-ai-concierge .qa h4{font-family:var(--font-display)}
body.v3.page-ai-concierge .hero{background:linear-gradient(180deg,#3B001A 0%,#4A2A7A 100%)}
body.v3.page-ai-concierge section:nth-of-type(1){background:linear-gradient(180deg,#4A2A7A 0%,#2A2060 100%)}
body.v3.page-ai-concierge section:nth-of-type(2){background:linear-gradient(180deg,#2A2060 0%,#0e4382 100%)}
body.v3.page-ai-concierge section:nth-of-type(3){background:linear-gradient(180deg,#0e4382 0%,#1d5cc8 100%)}
body.v3.page-ai-concierge section:nth-of-type(4){background:linear-gradient(180deg,#1d5cc8 0%,#2A3F7E 100%)}
body.v3.page-ai-concierge section:nth-of-type(5){background:linear-gradient(180deg,#2A3F7E 0%,#4A2A7A 100%)}
body.v3.page-ai-concierge section:nth-of-type(6){background:linear-gradient(180deg,#4A2A7A 0%,#2A2060 100%)}
body.v3.page-ai-concierge section:nth-of-type(7){background:linear-gradient(180deg,#2A2060 0%,#0e4382 100%)}
body.v3.page-ai-concierge section:nth-of-type(8){background:linear-gradient(180deg,#0e4382 0%,#1d5cc8 100%)}
body.v3.page-ai-concierge .box{background:var(--v3-glass);border-radius:0 6px 6px 0}
body.v3.page-ai-concierge tr.now td{background:rgba(238,90,115,.08)}
body.v3.page-ai-concierge .cta a.alt{border-bottom-color:rgba(238,90,115,.5)}
body.v3.page-ai-concierge .lab,body.v3.page-ai-concierge .hstat span,body.v3.page-ai-concierge .fine,body.v3.page-ai-concierge th{color:rgba(232,237,244,.6)}
body.v3.page-ai-concierge .lab.a{color:var(--v3-coral)}

/* ---- /call-confirmed ---- was an off-white page; the three sections have no wrapper, so the body carries the chain. */
html:has(body.v3.page-call-confirmed){background:#0A0F1E}
body.v3.page-call-confirmed{min-height:100vh;color:#fff;background:linear-gradient(180deg,#3B001A 0%,#4A2A7A 32%,#2A2060 64%,#0e4382 100%)}
body.v3.page-call-confirmed .hero{background:transparent}
body.v3.page-call-confirmed .step-card{background:var(--v3-glass);border:1px solid var(--v3-line);border-radius:6px;box-shadow:none;backdrop-filter:blur(6px)}
body.v3.page-call-confirmed .step-n{background:var(--v3-red)}
body.v3.page-call-confirmed .check-row{color:#fff}
body.v3.page-call-confirmed .vsl-eyebrow,body.v3.page-call-confirmed .steps-eyebrow{color:var(--v3-coral)}
body.v3.page-call-confirmed .hero h1{font-weight:400}
body.v3.page-call-confirmed .why-section{padding-bottom:88px}

/* ---- /sprint-booked ---- short page, no wrappers around the sections either: the body carries the chain. No site nav (wordmark only); left as found. The white calendar frame stays white because the booking widget inside it is white. */
body.v3.page-sprint-booked{min-height:100vh;font-weight:300;background:linear-gradient(180deg,#3B001A 0%,#4A2A7A 24%,#2A2060 58%,#0e4382 100%)}
body.v3.page-sprint-booked .r .n{font-family:var(--font-display)}
body.v3.page-sprint-booked .top{border-bottom:0}
body.v3.page-sprint-booked .after{border-top:0}
body.v3.page-sprint-booked .frame{border-radius:6px}
body.v3.page-sprint-booked .lab{color:var(--v3-coral)}
body.v3.page-sprint-booked .help{color:rgba(232,237,244,.6)}

/* ---- /who-runs-this ---- No site nav (wordmark only); left as found. */
body.v3.page-who-runs-this{background:#0A0F1E;font-weight:300;--panel:rgba(255,255,255,.06)}
body.v3.page-who-runs-this .top{background:#3B001A}
body.v3.page-who-runs-this .hero{background:linear-gradient(180deg,#3B001A 0%,#4A2A7A 100%);border-bottom:0}
body.v3.page-who-runs-this section{border-bottom:0}
body.v3.page-who-runs-this section:nth-of-type(1){background:linear-gradient(180deg,#4A2A7A 0%,#2A2060 100%)}
body.v3.page-who-runs-this section:nth-of-type(2){background:linear-gradient(180deg,#2A2060 0%,#0e4382 100%)}
body.v3.page-who-runs-this section:nth-of-type(3){background:linear-gradient(180deg,#0e4382 0%,#1d5cc8 100%)}
body.v3.page-who-runs-this section:nth-of-type(4){background:linear-gradient(180deg,#1d5cc8 0%,#2A3F7E 100%)}
body.v3.page-who-runs-this section:nth-of-type(5){background:linear-gradient(180deg,#2A3F7E 0%,#4A2A7A 100%)}
body.v3.page-who-runs-this section:nth-of-type(6){background:linear-gradient(180deg,#4A2A7A 0%,#2A2060 100%)}
body.v3.page-who-runs-this .card{border-radius:6px;border-color:var(--v3-line);backdrop-filter:blur(6px)}
body.v3.page-who-runs-this .row .k,body.v3.page-who-runs-this .lab{color:rgba(232,237,244,.6)}
body.v3.page-who-runs-this .lab.a{color:var(--v3-coral)}

/* ---- standalone pages, after the first full render (Sep 7): three fixes ---- */
/* /ai-sprint: its own .book{padding:20px 0 132px} (the booking section) landed on the footer's "Book a call" link, which shares the class name */
body.v3.page-ai-sprint .f3v .f-contact a.book{padding:0}
/* /apply: a fixed-attachment gradient paints one viewport only; scroll attachment covers the whole body, footer included */
body.v3.page-apply{background-attachment:scroll}
/* /ai-concierge: the "Read what the Sprint is" link sits outside .cta, had no colour rule, and rendered browser-default blue */
body.v3.page-ai-concierge a.alt{color:var(--v3-coral);text-decoration:none;border-bottom:1px solid rgba(238,90,115,.5)}

/* ============ Sep 7 12:5x, About page fixes (Kyle's three notes) ============ */
/* 1. the seam: the floating header was a hard-edged solid bar. Fade it instead. */
body.v3 .site-header.solid,body.v3 .site-header.is-floating{background:linear-gradient(180deg,rgba(10,15,30,.94) 0%,rgba(10,15,30,.72) 60%,rgba(10,15,30,0) 100%);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:none;border-bottom:0}
/* 2. the five disciplines: title on its own line, large, description below; one column */
body.v3 .gb-about-values .values-list{grid-template-columns:1fr!important;max-width:860px;margin-left:auto;margin-right:auto;perspective:none}
body.v3 .gb-about-values .values-row{display:block;padding:30px 0 28px;border-bottom:1px solid var(--v3-line);position:relative;opacity:1!important;transform:none!important}
body.v3 .gb-about-values .values-row h3{display:block;font:400 clamp(30px,3.4vw,46px)/1.05 var(--font-display);letter-spacing:-.025em;color:#fff;margin:0 0 12px;padding-left:0}
body.v3 .gb-about-values .values-row h3::before{content:counter(v3d,decimal-leading-zero) "  ";counter-increment:v3d;font:700 12px/1 var(--font-body);letter-spacing:.16em;color:var(--v3-coral);vertical-align:.7em;margin-right:6px}
body.v3 .gb-about-values .values-list{counter-reset:v3d}
body.v3 .gb-about-values .values-row p{font:300 17.5px/1.6 var(--font-body);color:var(--v3-text);max-width:62ch;margin:0}
/* the page's own about-values rules are more specific; win them outright */
body.v3 .gb-about-values .values-row{display:block!important;grid-template-columns:none!important;gap:0!important;padding:30px 0 28px!important}
body.v3 .gb-about-values .values-row h3{color:#fff!important;font-size:clamp(30px,3.4vw,46px)!important;line-height:1.05!important;margin:0 0 12px!important;width:auto!important;border:0!important;padding:0!important}
body.v3 .gb-about-values .values-row p{color:var(--v3-text)!important;font-size:17.5px!important;max-width:62ch!important;margin:0!important}
body.v3 .gb-about-values .values-row::before,body.v3 .gb-about-values .values-row .num{display:none!important}

/* Sep 7 2026: ADR-0002 has no teal or cyan. Under Bands the two site.css accent variables that carried them
   (--cs-teal #4AB8A0, --cs-text-highlight #22dde0) resolve to the coral accent, so every remaining eyebrow,
   highlight and callout strong on the permanent pages lands on palette without per-instance edits. */
body.v3{--cs-teal:#ee5a73;--cs-text-highlight:#ee5a73}
body.v3 .callout-teal strong{color:#ee5a73}
body.v3 .director-close::before,body.v3 .hero p.hero-callout::before{background:#ee5a73}
body.v3 .hero p.hero-callout{color:#ee5a73}
body.v3.page-recut .tier .amt .permo{font-family:var(--font-body);font-size:.95rem;font-weight:500;letter-spacing:.02em;color:rgba(232,237,244,.6)}
/* Sep 7 2026: the hero photo's top-left corner is a reflector moire (the brightest object on the page at 1440).
   Zoomed right crop keeps the RED, the monitor and the treatment-bed bokeh and pushes the corner out of frame. */
body.v3.page-recut .splitR{background-size:auto 125%;background-position:100% 45%}


/* Sep 8 2026: the reel slot, filled again. Glass frame on the rose-to-plum band; coral focus ring (site.css had cyan). */
body.v3 .gb-reel .reel-stage{border-radius:18px;border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 80px rgba(0,0,0,.45)}
body.v3 .gb-reel .reel-stage:focus-visible{box-shadow:0 0 0 3px rgba(238,90,115,.6)}
body.v3 .gb-reel .reel-play-icon{border-color:rgba(255,255,255,.92)}
body.v3 .gb-reel .eyebrow{color:var(--v3-coral)}


/* ============ HOMEPAGE PASS, Sep 8 2026. Kyle's notes on the live page, one by one. ============ */
/* 0. hairlines: one weight, one colour, everywhere on the page (Kyle: "different weights, different colours... all fucking weird") */
body.v3.page-home .divider{width:72px;height:1px;background:rgba(255,255,255,.3)!important}
body.v3 .director-close{border-top:0!important}
body.v3 .director-close::before{height:1px!important;background:rgba(255,255,255,.3)!important}
body.v3 .gb-ai-bridge a{border-bottom:0!important}
body.v3.page-home .site-footer.f3v::before{height:1px!important;background:rgba(255,255,255,.14)!important}
body.v3.page-home .section,body.v3.page-home .wound-stage,body.v3.page-home .site-footer{position:relative}
body.v3.page-home .section>*:not(.seam):not(.brief-bg):not(.glow),body.v3.page-home .site-footer>*:not(.seam){position:relative;z-index:1}

/* 1. entrance: fade, lift, focus-pull; staggered with --d; off under reduced motion */
body.v3 .reveal{opacity:0;transform:translateY(26px);filter:blur(8px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1),filter 1s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s);will-change:opacity,transform}
body.v3 .reveal.is-visible{opacity:1;transform:none;filter:none}
@media (prefers-reduced-motion:reduce){body.v3 .reveal{opacity:1;transform:none;filter:none;transition:none}}

/* 2. the plate behind the diagnosis, back on and moving at a sixth of scroll speed */
body.v3 .wound-stage{position:relative;overflow:hidden}
body.v3 .stage-bg{position:absolute;left:0;right:0;top:-16%;height:132%;background:url('../assets/Spotlight.jpeg?v=1') center 32%/cover no-repeat;opacity:.34;pointer-events:none;z-index:0;will-change:transform;-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 18%,#000 80%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0%,#000 18%,#000 80%,transparent 100%)}
body.v3 .wound-stage>section{position:relative;z-index:1}

/* 3. the diagnosis, three layouts. A editorial columns (no boxes). B staggered tiles. C one ledger. */
body.v3 .gb-stagnate .diagnosis-grid{counter-reset:dg}
body.v3 .gb-stagnate .diagnosis-card{counter-increment:dg}
body.v3 .diag-a .diagnosis-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;max-width:1180px;margin:0 auto}
body.v3 .diag-a .diagnosis-card{background:none;border:0;border-left:1px solid rgba(255,255,255,.14);border-radius:0;padding:6px 40px 0;backdrop-filter:none}
body.v3 .diag-a .diagnosis-card:first-child{border-left:0;padding-left:0}
body.v3 .diag-a .diagnosis-card:last-child{padding-right:0}
body.v3 .diag-a .diagnosis-card::before{content:counter(dg,decimal-leading-zero);position:static;display:block;width:auto;height:auto;background:none;font:400 3.6rem/1 var(--font-display);color:var(--v3-coral);letter-spacing:-.03em;margin:0 0 20px}
body.v3 .diag-a .diagnosis-card .label{display:block;margin-bottom:10px}
body.v3 .diag-a .diagnosis-card h3{font-size:1.8rem;line-height:1.08;margin:0 0 16px}
body.v3 .diag-a .diagnosis-card .fix{border-top:1px solid rgba(255,255,255,.14);margin-top:24px;padding-top:18px}
body.v3 .diag-a .diagnosis-card .fix strong{display:block;margin-bottom:6px}
@media (max-width:900px){body.v3 .diag-a .diagnosis-grid{grid-template-columns:1fr}body.v3 .diag-a .diagnosis-card{border-left:0;border-top:1px solid rgba(255,255,255,.14);padding:34px 0 8px}body.v3 .diag-a .diagnosis-card:first-child{border-top:0;padding-top:0}}
body.v3 .diag-b .diagnosis-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;align-items:start;max-width:1180px;margin:0 auto}
body.v3 .diag-b .diagnosis-card{border-radius:22px;padding:40px 34px 32px;background:linear-gradient(160deg,rgba(255,255,255,.11),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.16);box-shadow:0 30px 60px -30px rgba(0,0,0,.6);transition:transform .5s cubic-bezier(.2,.7,.2,1),opacity 1s,filter 1s}
body.v3 .diag-b .diagnosis-card:nth-child(2){margin-top:64px}
body.v3 .diag-b .diagnosis-card:nth-child(3){margin-top:24px}
body.v3 .diag-b .diagnosis-card.is-visible:hover{transform:translateY(-6px)}
body.v3 .diag-b .diagnosis-card::before{content:counter(dg,decimal-leading-zero);position:absolute;top:24px;right:28px;left:auto;width:auto;height:auto;background:none;font:400 1.15rem var(--font-display);color:rgba(255,255,255,.4)}
body.v3 .diag-b .diagnosis-card h3{font-size:1.6rem;margin:8px 0 14px}
@media (max-width:900px){body.v3 .diag-b .diagnosis-grid{grid-template-columns:1fr}body.v3 .diag-b .diagnosis-card:nth-child(n){margin-top:0}}
body.v3 .diag-c .diagnosis-grid{display:block;max-width:1100px;margin:0 auto;border-top:1px solid rgba(255,255,255,.14)}
body.v3 .diag-c .diagnosis-card{display:grid;grid-template-columns:90px 1.15fr 1fr;gap:0 48px;align-items:start;background:none;border:0;border-bottom:1px solid rgba(255,255,255,.14);border-radius:0;padding:38px 0;backdrop-filter:none}
body.v3 .diag-c .diagnosis-card::before{content:counter(dg,decimal-leading-zero);position:static;width:auto;height:auto;background:none;font:400 3rem/1 var(--font-display);color:var(--v3-coral);letter-spacing:-.03em;grid-column:1;grid-row:1/span 3}
body.v3 .diag-c .diagnosis-card .label{grid-column:2;display:block;margin-bottom:8px}
body.v3 .diag-c .diagnosis-card h3{grid-column:2;font-size:1.6rem;line-height:1.12;margin:0 0 12px}
body.v3 .diag-c .diagnosis-card p{grid-column:2;margin:0}
body.v3 .diag-c .diagnosis-card .fix{grid-column:3;grid-row:1/span 3;border:0;border-left:1px solid rgba(255,255,255,.14);margin:0;padding:4px 0 0 36px;align-self:stretch}
body.v3 .diag-c .diagnosis-card .fix strong{display:block;margin-bottom:8px}
@media (max-width:900px){body.v3 .diag-c .diagnosis-card{grid-template-columns:60px 1fr}body.v3 .diag-c .diagnosis-card .fix{grid-column:2;grid-row:auto;border-left:0;border-top:1px solid rgba(255,255,255,.14);padding:16px 0 0;margin-top:18px}}

/* 4. the four rungs: no boxes, a numeral rail, coral titles with air under them */
body.v3 .rungs-lede{display:flex;align-items:center;gap:18px;max-width:960px;margin:0 auto 6px}
body.v3 .rungs-lede .eyebrow{margin:0}
body.v3 .rungs-lede::after{content:"";flex:1;height:1px;background:rgba(255,255,255,.14)}
body.v3 .pulse-rungs{max-width:960px;margin-top:0}
body.v3 .pulse-rung{background:none;border:0;border-bottom:1px solid rgba(255,255,255,.14);border-radius:0;padding:40px 0;margin-bottom:0!important;grid-template-columns:140px 1fr;gap:36px;align-items:start}
body.v3 .pulse-rung-letter{font:400 4.6rem/0.9 var(--font-display);color:rgba(255,255,255,.22);letter-spacing:-.04em;text-align:left;padding-top:4px}
body.v3 .pulse-rung h3{font-size:2rem;line-height:1.05;color:var(--v3-coral);margin:0 0 14px;letter-spacing:-.02em}
body.v3 .pulse-rung p{margin:0;max-width:62ch}
@media (max-width:880px){body.v3 .pulse-rung{grid-template-columns:70px 1fr;gap:20px;padding:30px 0}body.v3 .pulse-rung-letter{font-size:3rem}body.v3 .pulse-rung h3{font-size:1.6rem}}

/* 5. the refusals: out of the box, a real title, a quieter coral sub-line, room at the edges */
body.v3 .refusal-image-stage{background:none;border:0;border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14);border-radius:0;padding:64px 56px 56px;margin-top:88px!important}
body.v3 .refusal-image-stage .text-center{margin-bottom:26px}
body.v3 .refusal-image-stage .text-center h3{font-size:clamp(30px,3.2vw,44px);line-height:1.05;letter-spacing:-.02em;margin-bottom:14px}
body.v3 .refusal-image-stage .text-center p.lead{color:var(--v3-coral);font-size:1rem;font-weight:500;letter-spacing:.02em}
body.v3 .values-list{gap:6px 64px}
body.v3 .values-row{padding:18px 0}
@media (max-width:820px){body.v3 .refusal-image-stage{padding:44px 20px 36px}}

/* 6. the AI stance reads as a CTA: bigger statement, a real button, a soft coral spotlight */
body.v3 .gb-ai-bridge{padding:120px 0;overflow:hidden}
body.v3 .gb-ai-bridge .glow{position:absolute;left:50%;top:50%;width:900px;height:520px;transform:translate(-50%,-50%);background:radial-gradient(50% 50% at 50% 50%,rgba(238,90,115,.22),transparent 70%);pointer-events:none;z-index:0!important}
body.v3 .gb-ai-bridge .statement{font-size:clamp(30px,3.4vw,46px);line-height:1.15;letter-spacing:-.02em;max-width:22ch;margin:0 auto}
body.v3 .gb-ai-bridge .btn{margin-top:36px}

/* 7. the brief, with a picture beside the form */
body.v3 #brief{padding:110px 24px!important}
body.v3 .brief-split{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center;max-width:1120px;margin:0 auto}
body.v3 .brief-copy h2{text-align:left;font-size:clamp(34px,3.8vw,50px)}
body.v3 .brief-copy p{margin-left:0!important;text-align:left;max-width:34em!important}
body.v3 .brief-copy form{margin-left:0!important}
body.v3 .brief-pic{position:relative;aspect-ratio:4/5;border-radius:22px;overflow:hidden;border:1px solid rgba(255,255,255,.14);box-shadow:0 40px 90px -40px rgba(0,0,0,.7)}
body.v3 .brief-pic img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.9)}
body.v3 .brief-pic::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(74,42,122,0) 45%,rgba(42,32,96,.7) 100%)}
@media (max-width:900px){body.v3 .brief-split{grid-template-columns:1fr;gap:34px}body.v3 .brief-pic{aspect-ratio:16/10}}

/* 8. seams: the edge between bands stops being a ruler line. Chosen on <body>: seam-a feather + grain, seam-b diagonal, seam-c wave. */
body.v3 .seam{display:none}
body.v3.seam-a .seam,body.v3.seam-b .seam,body.v3.seam-c .seam{display:block;position:absolute;left:0;right:0;top:-1px;pointer-events:none;z-index:0}
body.v3.seam-a .seam{height:240px;background:linear-gradient(180deg,var(--prev) 0%,transparent 100%);opacity:.85}
body.v3.seam-a::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9990;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .9 0'/></filter><rect width='240' height='240' filter='url(%23n)'/></svg>")}
body.v3.seam-b .seam{height:6vw;background:var(--prev);clip-path:polygon(0 0,100% 0,100% 100%,0 0)}
body.v3.seam-b .seam.alt{clip-path:polygon(0 0,100% 0,0 100%)}
body.v3.seam-c .seam{height:96px;background:var(--prev);-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 96' preserveAspectRatio='none'><path d='M0,0 H1440 V30 C1180,92 980,16 760,46 C560,74 300,98 0,44 Z'/></svg>") center top/100% 100% no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 96' preserveAspectRatio='none'><path d='M0,0 H1440 V30 C1180,92 980,16 760,46 C560,74 300,98 0,44 Z'/></svg>") center top/100% 100% no-repeat}
body.v3.seam-c .seam.alt{transform:scaleX(-1)}
/* the diagnosis intro needs air above the columns (seen in the Sep 8 render) */
body.v3 .gb-stagnate>.container>.text-center{margin-bottom:64px}
body.v3 .gb-stagnate .diag-a .diagnosis-grid,body.v3 .diag-a .diagnosis-grid{margin-top:0}


/* ============ PASS 2, Sep 8 afternoon (Kyle on the live page: hero seam, brief imagery, more life) ============ */
/* the brief: centred block over a faded plate of a practice interior; the plate moves at .12 of scroll */
body.v3 #brief{overflow:hidden}
body.v3 .brief-bg{position:absolute;left:0;right:0;top:-14%;height:128%;background:url('../assets/brief-bg.jpg') center 42%/cover no-repeat;opacity:.2;filter:saturate(.55) blur(1px);pointer-events:none;z-index:0!important;will-change:transform;-webkit-mask-image:radial-gradient(ellipse 72% 78% at 50% 50%,#000 30%,transparent 100%);mask-image:radial-gradient(ellipse 72% 78% at 50% 50%,#000 30%,transparent 100%)}
body.v3 #brief .brief-copy h2{text-align:center}
body.v3 #brief .brief-copy p{text-align:center;margin-left:auto!important;margin-right:auto!important}
/* flip-in for cards (the /solutions ladder and tiers, the proof cards) */
body.v3 .reveal.reveal-flip{transform:perspective(1200px) rotateX(-14deg) translateY(34px);transform-origin:50% 0%;filter:blur(4px)}
body.v3 .reveal.reveal-flip.is-visible{transform:none;filter:none}
body.v3 .rung-grid,body.v3 .tier-grid,body.v3 .diagnosis-grid{perspective:1200px}
@media (prefers-reduced-motion:reduce){body.v3 .reveal.reveal-flip{transform:none;filter:none}}
/* the footer wordmark rises in slower */
body.v3.page-home .f3v .f-big.reveal{transition-duration:1.4s;transform:translateY(40px)}
body.v3 .f3v .f-big.reveal.is-visible{transform:none}

/* the hero dissolves into the reel band instead of ending on a ruler line (Kyle, Sep 8: "this transition is atrocious") */
body.v3 .hero--home{position:relative}
body.v3 .hero--home::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:300px;background:linear-gradient(180deg,rgba(7,7,15,0) 0%,rgba(7,7,15,.6) 55%,#07070f 100%);pointer-events:none;z-index:2}
body.v3 .hero--home .hero-content{position:relative;z-index:3}
body.v3 .brief-bg{opacity:.22}
/* the hairline under each heading draws in after the heading lands (site.js already flags .section h2 with .is-visible) */
body.v3.page-home .section h2+.divider{transform:scaleX(0);transform-origin:50% 50%;transition:transform 1.1s cubic-bezier(.2,.7,.2,1) .45s}
body.v3.page-home .section h2.is-visible+.divider{transform:none}
@media (prefers-reduced-motion:reduce){body.v3.page-home .section h2+.divider{transform:none;transition:none}}


/* ============ PASS 3, Sep 8 ~13:20 PT (Kyle: AI band quieter and smaller, Six Practices is THE CTA, the cut pill becomes a choice, refusal lines out, hero shorter) ============ */
body.v3 .gb-ai-bridge{padding:96px 0}
body.v3 .ai-plate{position:absolute;left:0;right:0;top:-12%;height:124%;background:url('../assets/hero-smoke-s3.webp') center 40%/cover no-repeat;opacity:.16;filter:saturate(.6);pointer-events:none;z-index:0!important;will-change:transform;-webkit-mask-image:radial-gradient(ellipse 70% 80% at 50% 50%,#000 20%,transparent 100%);mask-image:radial-gradient(ellipse 70% 80% at 50% 50%,#000 20%,transparent 100%)}
body.v3.page-home .section>*:not(.seam):not(.brief-bg):not(.glow):not(.ai-plate){position:relative;z-index:1}
body.v3 .gb-ai-bridge .statement{font-size:clamp(22px,2.2vw,30px);line-height:1.3;letter-spacing:-.01em;max-width:34ch;opacity:.96}
body.v3 .gb-ai-bridge .cutwrap{margin-top:30px}
/* the cut pill: bottom trimmed flat, a hairline where the cut is (Kyle liked the accident; this is the on-purpose version) */
body.v3 .cutwrap{display:inline-block;position:relative;line-height:0}
body.v3 .cutwrap .btn-cut{clip-path:inset(0 0 7px 0)}
body.v3 .cutwrap::after{content:"";position:absolute;left:10%;right:10%;bottom:7px;height:1px;background:rgba(255,255,255,.42)}
/* Six practices at a time: the page's one big call */
body.v3 .gb-cta{padding:160px 0 150px}
body.v3 .gb-cta h2{font-size:clamp(48px,6.2vw,84px);line-height:.98;letter-spacing:-.03em}
body.v3 .gb-cta .divider{margin:26px auto}
body.v3 .gb-cta .lead{font-size:1.2rem;max-width:40ch;margin-left:auto;margin-right:auto}
body.v3 .gb-cta .btn{padding:20px 36px;font-size:14px;margin-top:38px}
/* the refusals lose their long top and bottom rules (Kyle: competing with a million other lines); the rung rows go lighter */
body.v3 .refusal-image-stage{border-top:0;border-bottom:0;padding-top:24px}
body.v3 .pulse-rung{border-bottom-color:rgba(255,255,255,.09)}
body.v3 .pulse-rung:last-child{border-bottom:0}
body.v3 .pulse-rungs{border-top:0}
/* the hero was a full screen of smoke with the bottom third empty; shorter, and the reel rises into its fade */
body.v3 .hero--home{min-height:78vh;padding-bottom:140px}
body.v3 .gb-reel{margin-top:-120px;padding-top:0!important}
body.v3 .gb-reel .container{position:relative;z-index:3}
/* air between the hero buttons and the reel's eyebrow; the frame still rises into the smoke */
body.v3 .hero--home{padding-bottom:200px}
body.v3 .gb-reel{margin-top:-150px}
body.v3 .gb-reel .text-center{margin-bottom:22px}
/* REVERT of the pass-3 overlap (Kyle: "you broke the beautiful treatment"). The reel band no longer rides up over the hero;
   the hero fades to #07070f and the band opens in #07070f, so the edge is the same colour on both sides. Air above the eyebrow restored. */
body.v3 .gb-reel{margin-top:0;padding-top:72px!important}
body.v3 .gb-reel .text-center{margin-bottom:26px}
body.v3 .hero--home{padding-bottom:150px}

/* ============ SEP 8: the 99 articles on Bands + the About disciplines plate (saved Sep 7, shipped on Kyle's word Sep 8) ============ */
/* Sep 7 2026, PREVIEW ONLY: the 99 resource articles on Bands. Scoped to body.v3.resource-page so nothing else moves.
   Hero already takes the Bands nav and type; below it the article sits on the plum-to-Royal band, light text,
   every light panel becomes a glass card, related links on the blue band, then the G1 footer. */
body.v3.resource-page .article-body{background:linear-gradient(180deg,#4A2A7A 0%,#2A2060 50%,#0e4382 100%);color:var(--v3-text)}
body.v3.resource-page .article-layout{background:transparent;color:var(--v3-text)}
body.v3.resource-page .da-mini,body.v3.resource-page .da-mini p,body.v3.resource-page .article-body .quick-answer{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);color:var(--v3-text)}
body.v3.resource-page .da-mini strong{color:#fff}
body.v3.resource-page .article-body p.lead,body.v3.resource-page .article-body h3{color:#fff}
body.v3.resource-page .listicle-item::before{background:var(--v3-coral)}
body.v3.resource-page .methodology-disclosure{background:rgba(255,255,255,.06);border-left-color:var(--v3-coral);color:var(--v3-text)}
body.v3.resource-page .faq-item{border-bottom-color:rgba(255,255,255,.14)}
body.v3.resource-page .listicle-item .quick-answer{color:rgba(232,237,244,.7)}
body.v3.resource-page .listicle-item .stat-callout cite{color:rgba(232,237,244,.6)}
body.v3.resource-page .comparison-table tbody tr:nth-child(even){background:rgba(255,255,255,.03)}
body.v3.resource-page .comparison-table th,body.v3.resource-page .comparison-table td{border-bottom-color:rgba(255,255,255,.12)}
body.v3.resource-page .article-hero .article-attribution .auth-chip{background:rgba(238,90,115,.16);border-color:rgba(238,90,115,.5);color:#ff9fb0}

body.v3.resource-page .article-body h2,body.v3.resource-page .article-body h3,body.v3.resource-page .faq-block h2,body.v3.resource-page .faq-question,body.v3.resource-page .listicle-item h3,body.v3.resource-page .methodology-disclosure h3,body.v3.resource-page .related-links h2{color:#fff}
body.v3.resource-page .article-body p,body.v3.resource-page .article-body ul,body.v3.resource-page .article-body ol,body.v3.resource-page .article-body li,body.v3.resource-page .faq-answer,body.v3.resource-page .listicle-item .stat-callout,body.v3.resource-page .comparison-methodology,body.v3.resource-page .comparison-table td{color:var(--v3-text)}
body.v3.resource-page .article-body a,body.v3.resource-page .related-card a,body.v3.resource-page .toc-label,body.v3.resource-page .toc-list a:hover,body.v3.resource-page .toc-mobile-toggle{color:var(--v3-coral)}
body.v3.resource-page .article-body strong{color:#fff}
body.v3.resource-page .direct-answer-block,body.v3.resource-page .key-takeaways-block,body.v3.resource-page .listicle-item,body.v3.resource-page .comparison-wrap,body.v3.resource-page .related-card,body.v3.resource-page .listicle-item .stat-callout,body.v3.resource-page .comparison-table th[scope="row"],body.v3.resource-page .comparison-methodology{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);color:var(--v3-text);box-shadow:none}
body.v3.resource-page .direct-answer-block strong,body.v3.resource-page .key-takeaways-block strong,body.v3.resource-page .key-takeaways-block li,body.v3.resource-page .direct-answer-block p{color:var(--v3-text)}
body.v3.resource-page .comparison-table th{color:#fff;background:rgba(255,255,255,.08)}
body.v3.resource-page .related-links{background:linear-gradient(180deg,#0e4382 0%,#1d5cc8 100%)}
body.v3.resource-page .related-card p,body.v3.resource-page .related-snippet{color:var(--v3-text)}
body.v3.resource-page .toc-nav{border-color:rgba(255,255,255,.14)}
body.v3.resource-page .toc-list a{color:rgba(232,237,244,.72)}
body.v3.resource-page .toc-list a.active,body.v3.resource-page .toc-list a[aria-current]{color:var(--v3-coral)}
body.v3.resource-page .article-cta{background:linear-gradient(180deg,#1d5cc8 0%,#2A3F7E 100%)}
body.v3.resource-page .article-body blockquote,body.v3.resource-page .article-body table{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14);color:var(--v3-text)}

/* Sep 7 2026 PREVIEW: Kyle's generated plate behind the disciplines section (camera pointed at the chair).
   Right-weighted with a left scrim so the text column stays clear; replaces the Stats Full dashboard render. */
body.v3 .gb-about-values::before{background:url('../assets/about-disciplines-camera.jpg') right 60% / auto 84% no-repeat;opacity:.3;filter:blur(1px) saturate(.75);-webkit-mask-image:radial-gradient(ellipse 62% 74% at 84% 56%,#000 28%,rgba(0,0,0,.55) 52%,rgba(0,0,0,0) 76%);mask-image:radial-gradient(ellipse 62% 74% at 84% 56%,#000 28%,rgba(0,0,0,.55) 52%,rgba(0,0,0,0) 76%)}


/* ============================================================
   .lite  |  LIGHT-GROUND ESCAPE HATCH.  Staged 2026-09-10, NOT DEPLOYED.
   Row SITE-LIGHT-SECTION-CONTRAST-SEP09.

   WHY: Bands assumes every ground is a dark brand gradient, so L12 and L17
   paint headings #fff and body copy --v3-text (rgba(232,237,244,.84))
   DIRECTLY ON THE ELEMENTS. On any section that sets a light background
   those two rules make the text invisible. A section-level `color:` cannot
   win, because the bands rules target h1/h2/h3/p themselves.

   Broken in production 2026-09-09, confirmed by rendered screenshot of the
   live URL: /facts (8 light sections), /privacy, /accessibility,
   /not-a-fit-right-now.

   THIS BLOCK IS INERT until a section opts in with class="lite".
   It adds no selector that matches any existing markup, so the other 116
   body.v3 pages cannot change. That is the property the staged render diff
   is there to prove.
   ============================================================ */
body.v3 .lite h1,body.v3 .lite h2,body.v3 .lite h3,
body.v3 .lite h4,body.v3 .lite h5,body.v3 .lite h6{color:var(--cs-nearblack)}
body.v3 .lite,body.v3 .lite p,body.v3 .lite .lead,body.v3 .lite li,
body.v3 .lite dt,body.v3 .lite dd,body.v3 .lite td,body.v3 .lite th,
body.v3 .lite figcaption,body.v3 .lite blockquote{color:var(--cs-nearblack)}
body.v3 .lite .micro,body.v3 .lite small,body.v3 .lite .meta{color:#5b5b5b}

/* the accent colours were picked to sit on dark and both fail on cream */
body.v3 .lite .eyebrow{color:var(--cs-royal)!important}
body.v3 .lite .divider{background:rgba(26,26,26,.18)!important}

/* links: coral #ee5a73 on #F0EDE8 is too light to read as body-copy link */
body.v3 .lite a:not(.btn){color:var(--cs-royal)}
body.v3 .lite a:not(.btn):hover{color:var(--v3-red)}

/* .btn-ghost is white-on-transparent, i.e. invisible on a light ground.
   Filled .btn-outline-white already carries its own red background and is
   left alone. */
body.v3 .lite .btn-ghost{border-color:var(--cs-nearblack);color:var(--cs-nearblack)}
body.v3 .lite .btn-ghost:hover{background:rgba(26,26,26,.08)}

/* glass cards are white-on-white films built for dark grounds */
body.v3 .lite .card,body.v3 .lite .glass{background:#fff;border-color:rgba(26,26,26,.12)}

/* ============================================================
   FOOTER, Sep 11 2026. Kyle's ruling off design-lab/COMPARE-footer-depth-sep11.html:
   ground "C, Ember" with the glow split between the first pass and the punched one
   ("way too punchy... split the difference"); the Cakesmash logo HOLDS at its original
   40px; the agency line drops 10 percent (26 to 23.5px); everything in the two right
   columns and the legal line steps down to the smaller, lighter set.
   Supersedes the Sep 9 "footer breathes" block, which was written into the PREVIEW copy
   of this file and never merged into the tree, which is why nothing changed on live.
   ============================================================ */
body.v3 .site-footer.f3v{background:linear-gradient(180deg,#191C42 0%,#10142C 32%,#090C1C 66%,#05060E 100%)}
body.v3 .site-footer.f3v::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(36% 22% at 50% 90%,rgba(238,90,115,.07) 0%,rgba(238,90,115,0) 76%),
             radial-gradient(70% 41% at 50% 88%,rgba(227,64,91,.17) 0%,rgba(150,54,110,.14) 38%,rgba(74,42,122,.12) 60%,rgba(74,42,122,0) 82%)}
body.v3 .site-footer.f3v>.container{position:relative;z-index:2}
@media (min-width:821px){
  body.v3 .site-footer.f3v{padding-top:128px}
  body.v3 .f3v .f-top{gap:76px}
  body.v3 .f3v .f-big{margin:118px 0 40px}
}
body.v3 .f3v .footer-logo{height:40px}
body.v3 .f3v .f-tag{font:400 23.5px/1.3 var(--font-display);color:rgba(255,255,255,.94);max-width:22ch;margin:24px 0 0;letter-spacing:.002em}
body.v3 .f3v .f-h4{font:500 10px/1 var(--font-body);letter-spacing:.3em;color:rgba(232,237,244,.38);margin:0 0 20px}
body.v3 .f3v .f-contact a,body.v3 .f3v .f-contact span{font:400 14px/2.25 var(--font-body);color:rgba(255,255,255,.8)}
body.v3 .f3v .f-contact a.mail{font-weight:500;color:#fff;border-bottom:1px solid rgba(238,90,115,.5);line-height:1.5;padding-bottom:3px;margin-bottom:18px;letter-spacing:.008em}
body.v3 .f3v .f-contact a.book{font-weight:500;color:var(--v3-coral)}
body.v3 .f3v .f-contact span{color:rgba(232,237,244,.4)}
body.v3 .f3v .f-links a{font:400 14px/2.35 var(--font-body);color:rgba(232,237,244,.7);letter-spacing:.008em}
body.v3 .f3v .f-links a:hover{color:#fff}
body.v3 .f3v .f-legal{padding:24px 0 40px;font:400 11px/1.6 var(--font-body);letter-spacing:.04em;color:rgba(232,237,244,.38);border-top:1px solid rgba(255,255,255,.09)}
body.v3 .f3v .f-legal a{color:rgba(232,237,244,.38);margin-left:26px}


/* ============ SEP 14 2026, 10:45 PT: SIX REFUSALS ON THE WATER FRAME (Kyle's picks on COMPARE-refusals-image-sep14: C water, full bleed, edge to edge, scrim .59, top blend 300px, top pad 96px, numbers 20px bold, subline Homemade Apple 20px coral light). The image fades IN from the band above; the bottom stays a hard line into Proof. ============ */
body.v3 .gb-pulse{padding-bottom:0}
body.v3 .refusal-image-stage{position:relative;isolation:isolate;overflow:hidden;width:100vw;margin-left:calc(50% - 50vw);margin-top:56px!important;padding:96px 24px 84px!important;border:0!important;border-radius:0}
body.v3 .refusal-image-stage::before{content:"";display:block;position:absolute;inset:0;z-index:-2;background:url(../assets/refusals-water.jpg?v=0914) 50% 45%/cover no-repeat;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 300px);mask-image:linear-gradient(to bottom,transparent 0,#000 300px)}
body.v3 .refusal-image-stage::after{content:"";display:block;position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(30,47,110,.59) 0%,rgba(14,67,130,.59) 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 300px);mask-image:linear-gradient(to bottom,transparent 0,#000 300px)}
body.v3 .refusal-image-stage>*{position:relative;z-index:1}
body.v3 .refusal-image-stage .values-list{max-width:1120px!important;margin:26px auto 0!important}
body.v3 .refusal-image-stage .values-row::before{font-size:20px;font-weight:800;letter-spacing:.1em;line-height:1;position:relative;top:-.05em}
body.v3 .refusal-image-stage .text-center p.lead{font-family:'Homemade Apple',cursive;font-size:20px;line-height:1.2;color:#ff8aa0;letter-spacing:0;font-weight:400;transform:rotate(-1.5deg)}
body.v3 .refusal-image-stage .cta-in{margin-top:56px}
@media (max-width:820px){body.v3 .refusal-image-stage{padding:72px 20px 64px!important}}

/* No cut pills (Kyle, Sep 9 evening: "It looks like a broken graphic."). Ruled then, edited in a preview stylesheet only, shipped today. */
body.v3 .cutwrap .btn-cut{clip-path:none}
body.v3 .cutwrap::after{display:none}
body.v3 .cutwrap{line-height:normal}
body.v3 .gb-ai-bridge .btn{border:1.5px solid #fff!important;border-bottom:1.5px solid #fff!important;color:#fff!important}

/* ============ SEP 14 2026, 11:00 PT: THE AI BAND PLAYS THE "YOU + THE MACHINES" CLIP (Kyle's picks on COMPARE-ai-band-video-sep14: height 224, opacity .30, saturation 1.3 (Kyle 11:02), top and bottom fade, white eyebrow, wording W1). Kyle: "Keep the clip of you with the data panels... drop the opacity to 30." ============ */
body.v3 .gb-ai-bridge{padding:224px 0;position:relative;isolation:isolate;overflow:hidden}
body.v3.page-home .section.gb-ai-bridge > .ai-vid{position:absolute!important;inset:0;z-index:0!important;overflow:hidden}
body.v3 .gb-ai-bridge .ai-vid video{position:absolute;left:50%;top:50%;width:106%;height:106%;transform:translate(-50%,-50%);object-fit:cover;object-position:50% 35%;opacity:.30;filter:saturate(1.3)}
body.v3.page-home .section.gb-ai-bridge > .ai-scrim{display:none}
/* 11:20 PT, Kyle: "you've lost all the bleed... I don't like hard lines." The clip fades in from nothing over the top 280px and out to nothing over the bottom 240px; the band's own gradient carries both edges, no scrim colour to mismatch. */
body.v3.page-home .section.gb-ai-bridge > .ai-vid{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 280px,#000 calc(100% - 240px),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 280px,#000 calc(100% - 240px),transparent 100%)}
body.v3 .gb-ai-bridge .container-narrow{position:relative;z-index:2}
body.v3 .gb-ai-bridge .container-narrow .eyebrow{color:#fff!important}
@media (max-width:820px){body.v3 .gb-ai-bridge{padding:140px 0}}


/* ============ SEP 14 2026, 22:10 PT: ENTRY MOTION, SITEWIDE (Kyle: "all sublines need to fade in AFTER the headline. in every section. we're VERY light on entry effects"). ============ */
/* A headline gets .is-visible from site.js when it enters. Everything after it in the same header block follows in order: hairline, lead, second paragraph, button. Sections whose headline already blurs in late (the /solutions gb-sol-* bands) wait for it. Hidden state only exists when the headline exists, so nothing can be stranded invisible. */
body.v3 .section h2 ~ .lead,body.v3 .section h2 ~ p,body.v3 .section h2 ~ .btn,body.v3 .section h2 ~ .cutwrap,body.v3 .section h2 ~ .statement,body.v3 .section .text-center > h3 ~ .lead,body.v3 .section .text-center > h3 ~ p{opacity:0;transform:translateY(14px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
body.v3 .section h2.is-visible ~ .lead,body.v3 .section h2.is-visible ~ p,body.v3 .section .text-center > h3.is-visible ~ .lead,body.v3 .section .text-center > h3.is-visible ~ p{opacity:1;transform:none;transition-delay:.7s}
body.v3 .section h2.is-visible ~ p + p,body.v3 .section h2.is-visible ~ .lead + p{transition-delay:.95s}
body.v3 .section h2.is-visible ~ .btn,body.v3 .section h2.is-visible ~ .cutwrap,body.v3 .section h2.is-visible ~ .statement{opacity:1;transform:none;transition-delay:1.15s}
body.v3 .section h2.is-visible ~ p ~ .btn,body.v3 .section h2.is-visible ~ p ~ .cutwrap{transition-delay:1.35s}
/* the /solutions bands whose h2 blurs in on a 1s delay over 1.3s */
body.v3 .section.gb-sol-p h2.is-visible ~ .lead,body.v3 .section.gb-sol-u h2.is-visible ~ .lead,body.v3 .section.gb-sol-u h2.is-visible ~ p,body.v3 .section.gb-sol-l h2.is-visible ~ .lead,body.v3 .section.gb-sol-s h2.is-visible ~ .lead,body.v3 .section.gb-sol-e h2.is-visible ~ .lead{transition-delay:1.9s}
body.v3 .section.gb-sol-u h2.is-visible ~ p + p{transition-delay:2.2s}
body.v3 .section.gb-sol-s h2.is-visible ~ .btn,body.v3 .section.gb-sol-p h2.is-visible ~ .btn{transition-delay:2.4s}
/* heroes: the h1 already defocuses in; eyebrow, lead and button follow it */
@keyframes cs-fade-up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
body.v3 .hero-content > .eyebrow{animation:cs-fade-up 1s cubic-bezier(.2,.7,.2,1) .25s both}
body.v3 .hero-content > .lead,body.v3 .hero-content > p{animation:cs-fade-up 1.1s cubic-bezier(.2,.7,.2,1) 1.1s both}
body.v3 .hero-content > .btn,body.v3 .hero-content > .cta-row,body.v3 .hero-content > .hero-actions{animation:cs-fade-up 1.1s cubic-bezier(.2,.7,.2,1) 1.5s both}
@media (prefers-reduced-motion:reduce){body.v3 .section h2 ~ .lead,body.v3 .section h2 ~ p,body.v3 .section h2 ~ .btn,body.v3 .section h2 ~ .cutwrap,body.v3 .section h2 ~ .statement,body.v3 .section .text-center > h3 ~ .lead,body.v3 .section .text-center > h3 ~ p{opacity:1;transform:none;transition:none}body.v3 .hero-content > *{animation:none}}
/* parallax layers are oversized so they never show an edge while they move. The fade MASK stays on a static wrapper, so the blend into the neighbouring band never moves with the image (first attempt put the mask on the moving layer and the fades slid out of the section). */
body.v3 .refusal-bg-wrap{position:absolute;inset:0;z-index:-2;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 300px);mask-image:linear-gradient(to bottom,transparent 0,#000 300px)}
body.v3 .refusal-bg{position:absolute;left:0;right:0;top:-14%;height:128%;background:url(../assets/refusals-water.jpg?v=0914) 50% 45%/cover no-repeat;transform:translate3d(0,var(--plx,0px),0);will-change:transform}
body.v3 .refusal-image-stage::before{display:none}
body.v3 .gb-ai-bridge .ai-vid video{height:126%;transform:translate(-50%,-50%) translate3d(0,var(--plx,0px),0)}
body.v3 .hero .hero-video[data-plx]{will-change:transform}

/* Sep 14 22:20 (Kyle): a coral pill vanishes on the coral peak bands. White pill, royal type, on /solutions "one day a month" and the /facts "Way In" band; hover inverts. */
body.v3 .gb-sol-s .btn,body.v3 .fx-peak .btn{background:#fff;border-color:#fff;color:#0e4382;box-shadow:0 14px 34px -14px rgba(20,10,40,.55)}
body.v3 .gb-sol-s .btn:hover,body.v3 .fx-peak .btn:hover{background:#0e4382;border-color:#0e4382;color:#fff}

/* Sep 14 22:48 (Kyle: "alignment here" on the brief form): select, email and button share one width, one 54px height and one pill radius */
body.v3 #brief select,body.v3 #brief input{border-radius:999px!important;padding:0 22px!important;height:54px!important;box-sizing:border-box!important}
body.v3 #brief select{padding-right:44px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23ffffff' stroke-width='1.6'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 20px center!important}

/* Sep 14 23:50 PT, Kyle: beach hero (Indie Beauty Media Group frame) full-height, text below her face; refined gradient on the filled pill sitewide ("a bright red button is super cheesy") */
body.v3 .hero--home{min-height:100vh;padding-top:clamp(300px,36vh,420px);padding-bottom:170px}
body.v3 .hero--home .hero-content h1{text-shadow:0 2px 40px rgba(6,9,18,.45)}
body.v3 .btn-outline-white{background:linear-gradient(135deg,#f27189 0%,#e3405b 48%,#b12b44 100%);border-color:transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -1px 0 rgba(0,0,0,.12),0 12px 28px -12px rgba(227,64,91,.6);color:#fff}
body.v3 .btn-outline-white:hover{background:linear-gradient(135deg,#f88ea1 0%,#ea4c66 48%,#c0314c 100%);border-color:transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.26),inset 0 -1px 0 rgba(0,0,0,.12),0 16px 34px -12px rgba(227,64,91,.7)}
