/* ============================================================
   W Life — site v2 "Annotated Atlas"
   Brand triad (2026-08-31, Noah): cream / teal #A1B2A4 / bronze — ink
   type + dark photo scrims; forest + fern retired from every surface
   Instrument Sans · Roboto Mono · Doto — all self-hosted
   ============================================================ */

/* ---------- fonts ---------- */
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/instrument-sans-v4-latin-regular.woff2') format('woff2')}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/instrument-sans-v4-latin-500.woff2') format('woff2')}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/instrument-sans-v4-latin-600.woff2') format('woff2')}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/roboto-mono-v31-latin-regular.woff2') format('woff2')}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/roboto-mono-v31-latin-500.woff2') format('woff2')}
@font-face{font-family:'Doto';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/doto-700-rond.woff2') format('woff2')}

/* ---------- tokens ---------- */
:root{
  --cream:#FFF7E3;
  --teal:#A1B2A4;   /* the kit "Teal" — every brand surface (was --sage) */
  --bronze:#C99213;
  --bronze-deep:#A87A0D;
  --ink:#132103;    /* near-black olive — type + scrims/shadows only, not a surface */
  --ink-soft:rgba(19,33,3,.72);
  --hair:rgba(19,33,3,.16);
  --hair-d:rgba(19,33,3,.22);          /* hairline on teal panels (was cream-on-forest) */
  --cream-soft:rgba(255,247,227,.78);  /* light voice on PHOTOS only now */
  --sans:'Instrument Sans',system-ui,-apple-system,sans-serif;
  --mono:'Roboto Mono',ui-monospace,'SF Mono',monospace;
  --doto:'Doto',var(--mono);
  --r:14px; --r2:9px; --r3:5px;
  --rail:clamp(10px,1.1vw,16px);
  --inset:clamp(20px,4.4vw,56px);
  --ease:cubic-bezier(.16,1,.3,1);
  --header-h:74px;
  --ov:calc((100vw - var(--rail)*2)/1.7768);
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px)}
body{
  background:var(--cream);
  color:var(--ink);
  font-family:var(--sans);
  font-size:18px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
ul{list-style:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:rgba(201,146,19,.28)}

h1,h2,h3{font-weight:500;line-height:1.06;letter-spacing:-0.015em}
.display{font-size:clamp(3.1rem,7.2vw,6.4rem);font-weight:500}
h2{font-size:clamp(1.9rem,3.5vw,2.9rem)}
h3{font-size:clamp(1.15rem,1.6vw,1.35rem);line-height:1.25}
p{max-width:66ch}
.lede{font-size:clamp(1.1rem,1.5vw,1.3rem);line-height:1.55;color:var(--ink-soft)}

.mono{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}
.num{font-family:var(--doto);font-weight:700;font-variant-numeric:tabular-nums}

.skip{position:absolute;left:-9999px;top:0;background:var(--teal);color:var(--ink);padding:10px 18px;border-radius:0 0 var(--r2) 0;z-index:99}
.skip:focus{left:0}
:focus-visible{outline:2px solid var(--bronze-deep);outline-offset:3px;border-radius:3px}

.wrap{max-width:1240px;margin-inline:auto;padding-inline:var(--inset)}
section{padding-block:clamp(60px,8.5vw,116px)}

/* chapters = full-bleed colour plates inside the cream rails
   (.forest class name kept in HTML — it paints TEAL since 08-31) */
.chapter{margin-inline:var(--rail);border-radius:var(--r)}
.chapter.forest{background:var(--teal);color:var(--ink)}
.chapter.forest p{color:var(--ink-soft)}
.chapter .mono{color:var(--ink-soft)}

/* ---------- buttons + chips ---------- */
.btn,.btn2{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;
  font-weight:600;font-size:.99rem;line-height:1;text-decoration:none;
  transition:background .18s var(--ease),color .18s var(--ease),transform .12s var(--ease)}
.btn{background:var(--bronze);color:var(--ink);padding:16px 28px;border-radius:999px}
@media(hover:hover){.btn:hover{background:var(--bronze-deep);color:var(--cream)}}
.btn:active{transform:scale(.97)}
.btn2{padding:16px 6px;color:inherit;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
@media(hover:hover){.btn2:hover{text-decoration-thickness:2px}}
.btn2:active{transform:scale(.97)}
.cta-row{display:flex;align-items:center;gap:22px;flex-wrap:wrap}

.chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--hair);border-radius:var(--r3);
  padding:7px 12px;font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}
.forest .chip,.fern .chip{border-color:var(--hair-d);color:var(--ink-soft)}
.chip .num{font-size:.92rem;letter-spacing:0}

/* ---------- header ---------- */
.site-head{position:sticky;top:0;z-index:60;background:var(--cream);border-bottom:1px solid var(--hair)}
.site-head .bar{display:flex;align-items:center;gap:26px;height:var(--header-h);max-width:1400px;margin-inline:auto;padding-inline:var(--inset)}
.brand{margin-right:auto;display:flex;align-items:center}
.brand img{height:30px;width:auto}
.site-nav{display:flex;align-items:center;gap:26px}
.site-nav a{font-size:.95rem;font-weight:500;text-decoration:none;color:var(--ink-soft);padding:6px 0}
@media(hover:hover){.site-nav a:hover{color:var(--ink)}}
.site-nav a[aria-current="page"]{color:var(--ink);font-weight:600;box-shadow:inset 0 -2px 0 var(--bronze)}
.head-cta{display:flex;align-items:center;gap:18px}
.head-cta .btn{padding:12px 22px;font-size:.92rem}
.head-cta .btn2{padding:12px 2px;font-size:.92rem}
.burger{display:none;width:44px;height:44px;position:relative;border-radius:var(--r2)}
.burger span,.burger span::before,.burger span::after{content:"";position:absolute;left:11px;width:22px;height:2px;background:var(--ink);transition:transform .22s var(--ease),top .22s var(--ease),opacity .18s}
.burger span{top:21px}
.burger span::before{top:-7px;left:0}
.burger span::after{top:7px;left:0}
.sheet-open .burger span{background:transparent}
.sheet-open .burger span::before{top:0;transform:rotate(45deg)}
.sheet-open .burger span::after{top:0;transform:rotate(-45deg)}

.sheet{display:none}
@media(max-width:880px){
  .site-nav,.head-cta .btn2{display:none}
  .burger{display:block}
  .sheet{display:block;position:fixed;inset:var(--header-h) 0 0 0;background:var(--cream);z-index:55;
    padding:34px var(--inset);transform:translateY(-8px);opacity:0;pointer-events:none;transition:opacity .24s var(--ease),transform .24s var(--ease)}
  .sheet-open .sheet{opacity:1;transform:none;pointer-events:auto}
  .sheet nav{display:grid;gap:4px}
  .sheet nav a{font-size:1.5rem;font-weight:500;text-decoration:none;padding:12px 0;border-bottom:1px solid var(--hair)}
  .sheet nav a[aria-current="page"]{color:var(--bronze-deep)}
  .sheet .cta-row{margin-top:28px}
}

/* ---------- footer: v3 block lives at the end of this file ---------- */

/* ---------- shared blocks ---------- */
.kicker-line{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:clamp(28px,4vw,52px)}
.kicker-line .side{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.forest .kicker-line .side,.fern .kicker-line .side{color:var(--ink-soft)}

.plate{border-radius:var(--r);overflow:hidden}
.plate img{width:100%;height:100%;object-fit:cover}


/* ---------- HOME ---------- */
.hero{padding-block:clamp(28px,3.5vw,48px) clamp(40px,5vw,64px)}
.hero .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,44px);align-items:stretch;max-width:1400px;margin-inline:auto;padding-inline:var(--inset)}
.hero .say{display:flex;flex-direction:column;justify-content:center;gap:28px;padding-block:clamp(30px,4vw,64px)}
.hero h1{font-size:clamp(3.6rem,9.4vw,8.4rem);font-weight:500;letter-spacing:-0.02em}
.hero .lede{max-width:34ch}
.hero .plate{min-height:clamp(460px,76vh,780px)}
.hero .plate img{height:100%;object-position:50% 30%}
.hero .plate img{object-position:38% 62%}

.proof{padding-block:0 clamp(48px,6vw,84px)}
.proof .row{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--hair)}
.proof .cell{padding:clamp(18px,2.4vw,30px) 10px;text-align:center;border-left:1px solid var(--hair)}
.proof .cell:first-child{border-left:0}
.proof .num{display:block;font-size:clamp(1.7rem,3vw,2.5rem);color:var(--ink)}
.proof .mono{color:var(--ink-soft);margin-top:6px;display:block}

.doctor .inner{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(36px,5vw,72px);align-items:center;padding:clamp(56px,7vw,96px) var(--inset);max-width:1240px;margin-inline:auto}
.print{width:min(400px,100%);margin-inline:auto;background:var(--cream);padding:10px 10px 14px;border-radius:10px;box-shadow:0 18px 44px rgba(0,0,0,.32)}
.print img{border-radius:6px}
.print .cap{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);opacity:.7;padding-top:10px;text-align:center}
.doctor .chips{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0 26px}
.doctor blockquote{font-size:clamp(1.25rem,2vw,1.6rem);line-height:1.4;font-weight:500;color:var(--cream);max-width:24ch;margin-block:26px}
.doctor blockquote footer{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cream-soft);margin-top:14px}

.method .grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(36px,5vw,72px);align-items:center}
.method .tri{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,34px);margin-top:clamp(30px,4vw,48px)}
.method .tri .num{font-size:clamp(2.2rem,4vw,3.4rem);color:var(--bronze-deep)}
.method .tri h3{margin:10px 0 8px}
.method .tri p{font-size:.98rem;color:var(--ink-soft)}
.method .ai-note{margin-top:clamp(30px,4vw,44px);padding-top:22px;border-top:1px solid var(--hair);font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;color:var(--ink-soft);max-width:58ch;text-transform:none}
.method .plate{aspect-ratio:4/5}

.measure .head{max-width:1240px;margin-inline:auto;padding:0 var(--inset)}
.erail-shell{position:relative;margin-top:clamp(30px,4vw,48px)}
.erail{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(300px,31vw,440px);gap:clamp(14px,1.6vw,22px);
  overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--inset);padding:6px var(--inset) 26px;scrollbar-width:none}
.erail::-webkit-scrollbar{display:none}
/* cards = archival plates: caption above, artwork fills the tile (kit p20) */
.ecard{scroll-snap-align:start;display:flex;flex-direction:column;gap:12px}
.ecard .tile{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:3/2;background:var(--cream)}
.ecard h3{position:absolute;left:10px;right:10px;bottom:10px;z-index:2;background:var(--cream);border:1px solid rgba(19,33,3,.16);border-radius:9px;padding:12px 14px;font-family:var(--mono);font-size:clamp(.8rem,.95vw,.95rem);font-weight:600;letter-spacing:.06em;text-transform:uppercase;line-height:1.4;color:var(--ink)}
.ecard .tile img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
@media(hover:hover){.ecard:hover .tile img{transform:scale(1.035)}}
.ecard p{font-size:.88rem;line-height:1.5;color:var(--ink-soft)}
.erail-nav{display:flex;gap:10px;justify-content:flex-end;max-width:1240px;margin:6px auto 0;padding-inline:var(--inset)}
.erail-nav button{width:46px;height:46px;border:1px solid var(--hair-d);border-radius:999px;color:var(--ink);font-size:1.1rem;transition:background .18s}
@media(hover:hover){.erail-nav button:hover{background:rgba(19,33,3,.06)}}
.erail-nav button:active{transform:scale(.94)}

/* .path retired 2026-08-27 (Noah) — "Your path" section deleted from Home */

.partners{padding-block:clamp(40px,5vw,64px);background:var(--teal);color:var(--ink)}
.partners .row{display:flex;align-items:center;justify-content:space-between;gap:clamp(20px,3.5vw,48px);flex-wrap:wrap}
.partners .mono{color:var(--cream)}
.partners .logos{display:flex;align-items:center;gap:clamp(24px,4vw,54px);flex-wrap:wrap}
.partners .logos img{height:21px;width:auto;filter:grayscale(1) brightness(.35);opacity:.75;mix-blend-mode:multiply}

/* .locpoint retired 2026-08-27 (Noah) — Locations has its own page */

/* ---------- ASSESSMENT ---------- */
.alead{padding-top:clamp(28px,3.5vw,48px)}
.alead .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,3.5vw,56px);align-items:stretch}
.alead .say{align-content:center}
.alead .plate{min-height:clamp(420px,66vh,640px)}
.alead .plate img{height:100%}
.alead h1{font-size:clamp(3rem,6.4vw,5.6rem)}
.alead .say{display:grid;gap:24px}

.tblwrap{overflow-x:auto;margin-top:clamp(28px,4vw,48px);border-top:1px solid var(--hair)}
.itable{width:100%;min-width:860px;border-collapse:collapse}
.itable th{font-family:var(--mono);font-size:.68rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);text-align:left;padding:14px 16px 12px;border-bottom:1px solid var(--hair)}
.itable td{padding:20px 16px;border-bottom:1px solid var(--hair);vertical-align:top;font-size:.96rem;line-height:1.5}
.itable td.cat{display:flex;align-items:center;gap:14px;font-weight:600;font-size:1rem;min-width:230px}
.itable td.cat img{width:58px;height:62px;object-fit:contain;flex:none}
.itable td.count{white-space:nowrap}
.itable td.count .num{font-size:1.35rem;color:var(--bronze)}
.itable td.count span.u{font-family:var(--mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-top:2px}
.itable td.why{color:var(--ink-soft);font-size:.92rem}
.tbl-note{font-family:var(--mono);font-size:.7rem;letter-spacing:.05em;color:var(--ink-soft);margin-top:16px;max-width:none}

/* add-ons: 2×3 card grid flanked by a specimen plate on each side */
.addons .abody{display:grid;grid-template-columns:minmax(130px,200px) 1fr minmax(130px,200px);gap:clamp(20px,3.4vw,52px);align-items:center;margin-top:clamp(26px,3.5vw,42px)}
.addons .aside{margin:0}
.addons .aside img{width:100%;border-radius:9px;box-shadow:0 12px 30px rgba(0,0,0,.3)}
.addons .list{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(14px,1.8vw,22px)}
.addons .add{border:1px solid var(--hair-d);border-radius:12px;padding:20px 22px;display:grid;gap:8px;align-content:start}
.addons .add h3{font-size:1rem;color:var(--cream)}
.addons .add p{font-size:.88rem;line-height:1.5}
.addons .foot-line{margin-top:26px;font-family:var(--mono);font-size:.72rem;letter-spacing:.05em;color:var(--cream-soft)}
@media(max-width:1020px){
  .addons .abody{grid-template-columns:1fr 1fr;gap:20px}
  .addons .list{order:1;grid-column:1/-1;grid-template-columns:1fr}
  .addons .aside{width:min(62%,170px)}
  .addons .aside:first-child{order:2;justify-self:end}
  .addons .aside:last-child{order:3;justify-self:start}
}

.vs .tblwrap{border-top:0}
.vtable{width:100%;min-width:640px;border-collapse:collapse}
.vtable th{font-family:var(--mono);font-size:.68rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;text-align:left;padding:14px 16px;border-bottom:1px solid var(--hair);color:var(--ink-soft)}
.vtable th.wl,.vtable td.wl{background:rgba(201,146,19,.09)}
.vtable td{padding:15px 16px;border-bottom:1px solid var(--hair);font-size:.95rem}
.vtable td.gp{color:var(--ink-soft)}
/* ticks-and-crosses cells (Jack, 1 Sep: "make the list more simple") */
.vtable td.gp,.vtable td.wl{text-align:center;font-size:1.05rem}
.vtable .yes{font-weight:600}
.vtable .no{opacity:.45}

.journey{overflow:clip}
.jtrack{height:calc(100vh + 230svh);position:relative}
.jpin{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.jhead{max-width:1240px;width:100%;margin-inline:auto;padding-inline:var(--inset);display:flex;justify-content:space-between;align-items:baseline;gap:20px}
.jcount{font-family:var(--doto);font-weight:700;font-size:1.15rem;color:var(--bronze)}
.jview{position:relative;margin-top:clamp(26px,4vh,48px);height:min(52svh,460px)}
.jstep{position:absolute;inset:0;display:grid;align-content:center;gap:16px;max-width:1240px;margin-inline:auto;padding-inline:var(--inset);will-change:transform;padding-right:clamp(20px,10vw,140px)}
.jstep .num{font-size:clamp(2.6rem,5vh,3.6rem);color:var(--bronze)}
.jstep h3{font-size:clamp(1.6rem,3.4vh,2.3rem);color:var(--cream)}
.jstep p{font-size:clamp(1rem,2vh,1.15rem);max-width:46ch}
.jstep img.mk{height:clamp(54px,9vh,84px);width:auto;opacity:.85;margin-top:8px}
html.static .jtrack,body.prm .jtrack{height:auto}
html.static .jpin,body.prm .jpin{position:static;height:auto;padding-block:clamp(40px,6vw,64px)}
html.static .jview,body.prm .jview{height:auto;display:grid;gap:34px}
html.static .jstep,body.prm .jstep{position:static;transform:none!important;padding-right:var(--inset)}

/* the report — photographed (Noah's render, 27 Aug); the HTML cover mock is retired */
.rphoto{border-radius:var(--r);overflow:hidden;aspect-ratio:1672/941;box-shadow:0 24px 60px rgba(19,33,3,.16)}
.rphoto img{width:100%;height:100%;object-fit:cover}
/* the old HTML cover mock (kit p23 layout) — retired 2026-08-27, markup removed from index */
.report .grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,4.5vw,72px);align-items:center}
.cover{aspect-ratio:210/280;background:var(--cream);border:1px solid var(--hair);border-radius:10px;box-shadow:0 24px 60px rgba(19,33,3,.14);padding:clamp(22px,2.6vw,34px);display:flex;flex-direction:column;max-width:420px}
.cover .yr{font-family:var(--doto);font-weight:700;font-size:1.35rem;letter-spacing:.14em;color:var(--teal);align-self:flex-end}
.cover h3{font-size:clamp(1.5rem,2.2vw,2rem);margin-top:clamp(20px,3vw,36px);font-weight:500;max-width:9ch;line-height:1.12}
.cover .who{font-size:.95rem;color:var(--teal);margin-top:12px}
.cover .rule{margin-top:auto;display:grid;gap:0;justify-items:start}
.cover .rule span{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);padding:5px 0;border-top:1px solid var(--hair);min-width:62%}
.cover img{width:72%;height:auto;margin-top:clamp(18px,2.6vw,30px);align-self:flex-start}
.report ul.inside{display:grid;gap:18px;margin-top:26px}
.report ul.inside li{padding-left:22px;position:relative;color:var(--ink-soft);max-width:56ch}
.report ul.inside li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:2px;background:var(--bronze)}
.report ul.inside li strong{color:var(--ink);font-weight:600}

.price .inner{display:grid;grid-template-columns:1fr .9fr;gap:clamp(40px,6vw,90px);align-items:start;padding:clamp(56px,7vw,96px) var(--inset);max-width:1240px;margin-inline:auto}
.price .fig .num{font-size:clamp(4rem,8vw,7rem);color:var(--cream);display:block;line-height:1}
.price .fig .mono{display:block;margin-top:14px}
.price .stack{margin-top:30px;display:grid}
.price .stack li{padding:15px 0;border-top:1px solid var(--hair-d);font-size:.99rem;color:var(--cream-soft)}
.price .stack li strong{color:var(--cream);font-weight:500}
.price .fine{margin-top:22px;font-family:var(--mono);font-size:.7rem;letter-spacing:.05em;color:var(--cream-soft);max-width:52ch}
.price .act{display:grid;gap:18px;align-content:start}
.price .act .cta-row{margin-top:6px}
.derisk{border:1px solid var(--hair-d);border-radius:12px;padding:24px 26px;display:grid;gap:10px;margin-top:14px}
.derisk h3{font-size:1.05rem;color:var(--cream)}
.derisk p{font-size:.93rem}
.derisk .btn2{justify-self:start;padding-block:6px}

.faq .qs{margin-top:clamp(26px,3.5vw,44px);border-top:1px solid var(--hair)}
.faq details{border-bottom:1px solid var(--hair)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 2px;font-weight:500;font-size:1.08rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ind{flex:none;width:26px;height:26px;position:relative;opacity:.6}
.faq summary .ind::before,.faq summary .ind::after{content:"";position:absolute;background:var(--ink);left:6px;right:6px;top:12px;height:2px;transition:transform .22s var(--ease)}
.faq summary .ind::after{transform:rotate(90deg)}
.faq details[open] summary .ind::after{transform:rotate(0)}
.faq details .a{padding:0 2px 24px;color:var(--ink-soft);max-width:62ch}
.faq details .a p+p{margin-top:12px}

/* ---------- ABOUT ---------- */
.alead2 h1{font-size:clamp(2.6rem,5.6vw,4.6rem);max-width:18ch}
.alead2 .lede{margin-top:24px;max-width:52ch}
.walker .inner{display:grid;grid-template-columns:.85fr 1.15fr;grid-template-rows:auto auto;gap:clamp(24px,3vw,40px) clamp(36px,5vw,72px);align-items:center;padding:clamp(36px,4.6vw,60px) var(--inset);max-width:1240px;margin-inline:auto}
@media(min-width:881px){.walker .bio{grid-column:2;grid-row:1/3}.walker .mplate{grid-column:1}}
.walker .mplate{display:flex;justify-content:center;position:relative}
.mplate .m1{top:24%;left:0}
.mplate .m2{bottom:9%;right:5%}
.walker .mplate img{width:min(96%,560px);height:auto;display:block;box-shadow:0 22px 54px rgba(0,0,0,.42)}
.walker .bio{display:grid;gap:18px}
.walker .bio h2{font-size:clamp(1.8rem,2.45vw,2.5rem)} /* one clean line for "The foundation: Dr Ross Walker." (Noah 31 Aug) */
.walker .bio p{color:var(--ink-soft)}
.walker .bio p strong{color:var(--ink);font-weight:500}
.walker .chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.walker .ind-note{margin-top:16px;padding-top:18px;border-top:1px solid var(--hair-d);font-family:var(--mono);font-size:.74rem;letter-spacing:.04em;color:var(--ink-soft);text-transform:none;max-width:56ch}
.mdeep .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,3vw,44px);margin-top:clamp(28px,4vw,48px)}
/* Doto optical kerning (branding consultant, 2 Sep): the pairs start uneven —
   8–0 is naturally snug, 1–0 naturally airy — so each number gets its own
   tracking rather than one uniform value; trailing pad cancels the last-glyph
   tracking. Bench: brandkit/kern.png (uniform −.10em over-tightened the 80). */
.mdeep .cols .num{font-size:clamp(2.4rem,4.4vw,3.8rem);color:var(--bronze-deep);letter-spacing:-0.03em;padding-right:0.03em}
.mdeep .cols div:nth-child(2) .num,.mdeep .cols div:nth-child(3) .num{letter-spacing:-0.145em;padding-right:0.145em}
.mdeep .cols h3{margin:12px 0 8px}
.mdeep .cols p{font-size:.96rem;color:var(--ink-soft)}
.network .rows{margin-top:clamp(26px,3.5vw,44px);border-top:1px solid var(--hair)}
.network .row{display:grid;grid-template-columns:220px 1fr;gap:clamp(18px,3vw,44px);padding:22px 0;border-bottom:1px solid var(--hair);align-items:center}
.network .row img{height:24px;width:auto;justify-self:start;filter:grayscale(1) brightness(.35);opacity:.8;mix-blend-mode:multiply}
.network .row p{font-size:.97rem;color:var(--ink-soft)}

/* ---------- LOCATIONS ---------- */
.lochead h1{font-size:clamp(2.6rem,5.6vw,4.6rem)}
.loccard{margin:0 var(--rail) clamp(18px,2vw,26px);border-radius:var(--r);overflow:hidden;background:var(--teal);color:var(--ink)}
.loccard .grid{display:grid;grid-template-columns:1.05fr .95fr;min-height:min(560px,72vh)}
.loccard.flip .grid{grid-template-columns:.95fr 1.05fr}
.loccard .media{position:relative}
.loccard .media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.loccard .body{padding:clamp(36px,4.5vw,64px);display:grid;gap:18px;align-content:center}
.loccard .body h2{color:var(--ink)}
.loccard .status{justify-self:start}
.loccard ul.facts{display:grid;gap:0;margin-top:6px}
.loccard ul.facts li{padding:13px 0;border-top:1px solid var(--hair-d);font-size:.96rem;color:var(--ink-soft)}
.loccard .cta-row{margin-top:14px}
.loccard .body .mono.note{text-transform:none;letter-spacing:.03em;font-size:.72rem;max-width:52ch}
.loccard[data-state="off"] .when-on{display:none}
.loccard[data-state="on"] .when-off{display:none}
.locfuture{padding-block:clamp(30px,4vw,48px)}
.locfuture p{font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;color:var(--ink-soft);text-transform:uppercase}

/* ---------- CONTACT ---------- */
.contact .grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,4.5vw,72px);align-items:start}
form.enq{display:grid;gap:18px}
.field{display:grid;gap:8px}
.field label{font-family:var(--mono);font-size:.68rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft)}
.field input,.field select,.field textarea{font:inherit;font-size:1rem;color:var(--ink);background:rgba(19,33,3,.035);
  border:1px solid var(--hair);border-radius:var(--r2);padding:14px 16px;width:100%}
.field textarea{min-height:150px;resize:vertical}
.field :is(input,select,textarea):focus-visible{outline:2px solid var(--bronze-deep);outline-offset:0;background:var(--cream)}
form.enq .btn{justify-self:start;margin-top:6px}
.form-ok{border:1px solid var(--hair);border-radius:var(--r);padding:26px;display:none}
.form-ok.show{display:block}
.sidecard{border:1px solid var(--hair);border-radius:var(--r);padding:clamp(26px,3vw,38px);display:grid;gap:14px;background:rgba(161,178,164,.14)}
.sidecard h2{font-size:1.5rem}
.sidecard p{font-size:.97rem;color:var(--ink-soft)}
.sidecard .btn{justify-self:start}
.sidecard .mono{color:var(--ink-soft)}

/* ---------- DOC PAGES ---------- */
.docpage{max-width:760px;margin-inline:auto;padding:clamp(48px,6vw,80px) var(--inset) clamp(64px,8vw,110px)}
.docpage h1{font-size:clamp(2rem,4vw,3rem);margin-bottom:10px}
.docpage .meta{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:36px}
.docpage h2{font-size:1.3rem;margin:36px 0 12px}
.docpage p,.docpage li{font-size:1rem;color:var(--ink-soft);max-width:68ch}
.docpage ul{list-style:disc;padding-left:22px;display:grid;gap:8px}

.network .row img.ph{filter:grayscale(1);opacity:.85}

/* ---------- image bands + palette grade ---------- */
section.band{padding:0;margin-inline:var(--rail);border-radius:var(--r);overflow:hidden;height:min(76vh,700px)}
section.band img{width:100%;height:100%;object-fit:cover}
section.band.short{height:min(56vh,520px)}
.graded img{filter:sepia(.20) saturate(.82) hue-rotate(-8deg) contrast(.97) brightness(1.03)}

/* ---------- full-bleed framed hero ---------- */
.heroX{padding:calc(var(--rail)*1.4) calc(var(--rail)*1.4) 0}
.heroX .hplate{position:relative;height:min(86svh,840px);border-radius:var(--r);overflow:hidden}
@media(min-width:881px){.heroX .hplate{height:auto;aspect-ratio:1672/941;max-height:none}}
.hstats{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:clamp(48px,5vw,72px) clamp(18px,2.6vw,40px) clamp(16px,2vw,26px)}
.hstats .cell{text-align:center}
.hstats .num{display:block;font-size:clamp(1.3rem,1.9vw,1.9rem);color:var(--ink)}
.hstats .mono{display:block;margin-top:4px;font-size:.62rem;color:rgba(19,33,3,.7)}
@media(max-width:880px){
  .hstats{position:static;grid-template-columns:1fr 1fr;gap:14px 10px;padding:20px 14px 22px}
  .hstats .num{font-size:1.05rem}
  .hstats .mono{font-size:.5rem;letter-spacing:.05em}
}
.heroX .hplate>picture img{width:100%;height:100%;object-fit:cover;object-position:26% 42%}
.heroX .say{position:absolute;top:50%;right:clamp(24px,6vw,100px);transform:translateY(-50%);max-width:min(520px,44%);display:grid;gap:22px;justify-items:start}
.heroX .say.sayL{right:auto;left:clamp(24px,6vw,100px)}
.heroX .say.wide{max-width:min(640px,52%)}
.heroX .say img.wm{height:clamp(34px,4.2vw,52px);width:auto}
.heroX .say h1{font-size:clamp(3rem,6.8vw,6.2rem);color:var(--ink)}
@media(min-width:881px){.heroX .say h1.oneline{white-space:nowrap}}
@media(max-width:880px){.heroX .say h1.oneline{font-size:clamp(2rem,9.6vw,2.4rem)}}
.heroX .say .lede{color:rgba(19,33,3,.78)}
@media(max-width:880px){
  .heroX .hplate{height:auto;display:flex;flex-direction:column}
  .heroX .hplate>picture{height:min(76svh,640px);flex:none}
  .heroX .hplate>picture img{object-position:30% 26%}
  .heroX .say{top:12px;right:12px;left:12px;transform:none;max-width:none;background:rgba(255,247,227,.88);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:12px;padding:16px 16px 18px;gap:12px}
  .heroX .say h1{font-size:clamp(2.7rem,12vw,3.6rem)}
  .heroX .say .lede{font-size:1.02rem;max-width:30ch}
}
.methodology .mgrid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(28px,4vw,64px);align-items:center}
.methodology .mgrid .plate{aspect-ratio:16/12;border-radius:var(--r2)}
@media(max-width:880px){.methodology .mgrid{grid-template-columns:1fr;gap:30px}}

/* v3.7 colour law (2026-08-31, Noah): grounds = cream + TEAL #A1B2A4 only;
   ink does all type (teal never carries text); bronze = commerce + accents
   (absorbed fern's chip duty). Forest and fern are retired site-wide. */
/* teal panels: secondary ink steps up .72→.78 (4.28:1 → 4.9:1 on teal) */
.chapter.forest,.loccard,.rpanel,.plates2{--ink-soft:rgba(19,33,3,.78)}
/* footer voice = WHITE on the teal (Noah, 31 Aug — aesthetic call; cream on
   teal measures ~1.5:1, accepted for the footer surface only) */
.wfoot{--hair-d:rgba(255,247,227,.32)}
.pdetail .prow{display:grid;grid-template-columns:clamp(64px,7vw,110px) 1fr;gap:clamp(16px,3vw,44px);padding:clamp(24px,3.4vw,40px) 0;border-top:1px solid var(--hair)}
.pdetail .prow .num{font-size:clamp(1.9rem,3.4vw,2.8rem);color:var(--bronze-deep)}
.pdetail .prow h3{margin-bottom:8px}
.pdetail .prow p{color:var(--ink-soft);max-width:62ch}
.pdetail .prow .mono{display:block;margin-top:12px;color:var(--bronze-deep)}
@media(max-width:640px){.pdetail .prow{grid-template-columns:1fr;gap:8px}}

/* ---------- connected vertical journey ---------- */
section.journey2{padding-block:clamp(44px,5.5vw,76px)}
.journey2 .jline{position:relative;margin-top:clamp(30px,4vw,52px)}
/* the spine lives on .jrows so it STOPS above the welcome-box card (31 Aug) */
.journey2 .jrows{position:relative;--jprog:1}
.journey2 .jrows::before{content:"";position:absolute;left:50%;top:6px;bottom:0;width:1.5px;background:var(--hair-d);transform:translateX(-50%)}
/* bronze fill rides the spine as you read (JS drives --jprog; full for static/prm/no-JS) */
.journey2 .jrows::after{content:"";position:absolute;left:50%;top:6px;width:2.5px;height:calc((100% - 6px)*var(--jprog,1));background:var(--ink);transform:translateX(-50%)}
/* terminal square where the spine ends, above the card */
.journey2 .jend{position:relative}
.journey2 .jend::before{content:"";position:absolute;left:50%;top:-7px;width:13px;height:13px;background:var(--ink);transform:translateX(-50%)}
.journey2 .jrow{position:relative;display:grid;grid-template-columns:1fr 1fr;padding:clamp(2px,.3vw,4px) 0}
.journey2 .jrow::after{content:"";position:absolute;left:50%;top:clamp(12px,1.6vw,20px);width:13px;height:13px;border-radius:50%;background:var(--ink);transform:translateX(-50%)}
.journey2 .jbody{grid-column:1;padding-right:clamp(26px,4vw,60px);display:grid;gap:3px;justify-items:end;text-align:right}
.journey2 .jrow:nth-child(even) .jbody{grid-column:2;padding-right:0;padding-left:clamp(30px,5vw,76px);justify-items:start;text-align:left}
.journey2 .jbody .num{font-size:clamp(2.6rem,3.6vw,3.4rem);line-height:1;color:var(--ink)} /* dark green with the icons — the whole burnt-on-teal set goes (consultant + Noah, 2 Sep) */
.journey2 .jbody h3{color:var(--ink);font-size:clamp(1.45rem,2.1vw,1.8rem)}
.journey2 .jbody p{font-size:clamp(1rem,1.15vw,1.1rem);line-height:1.5;max-width:42ch}
.journey2 .jbody .mono{font-size:.8rem}
.journey2 .jbody .mk{width:44px;height:44px;color:var(--ink);opacity:1;margin-top:8px}
/* drawn line icons in INK (Jack, 1 Sep: the bronze brand marks were hard to make out) */
.journey2 .jend{position:relative;display:flex;justify-content:center;padding-top:clamp(26px,3.4vw,44px)}
.journey2 .jcard{position:relative;border-radius:var(--r);overflow:hidden;max-width:640px;width:100%;padding:0;box-shadow:0 24px 60px rgba(0,0,0,.4)}
.journey2 .jcard>picture img{width:100%;height:auto;display:block}
.journey2 .jcard .cta-row{position:absolute;left:0;right:0;bottom:clamp(14px,2vw,24px);justify-content:center;margin:0}
.journey2 .bc-top{display:flex;justify-content:space-between;gap:26px;align-items:flex-start}
.journey2 .bc-welcome{font-size:clamp(1.5rem,2.2vw,1.9rem);font-weight:400}
.journey2 .bc-right{display:grid;gap:10px;max-width:250px}
.journey2 .bc-line{font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.3;color:var(--cream);font-weight:500} /* on the jcard photo — stays cream */
.journey2 .bc-rows{display:grid}
.journey2 .bc-rows span{font-family:var(--mono);font-size:.62rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--cream-soft);padding:6px 0;border-bottom:1px solid var(--hair-d)}
.journey2 .jcard img.bc-wm{width:78%;height:auto;margin:clamp(26px,3.4vw,44px) 0 0}
.journey2 .jcard .cta-row{margin-top:clamp(20px,2.4vw,28px)}
@media(max-width:880px){
  .journey2 .jrows::before{left:11px;transform:none}
  .journey2 .jrows::after{left:11px;transform:none}
  .journey2 .jend::before{left:11px;transform:none}
  .journey2 .jrow{grid-template-columns:1fr;padding:8px 0}
  .journey2 .jrow::after{left:11px;transform:none;top:26px}
  .journey2 .jbody,.journey2 .jrow:nth-child(even) .jbody{grid-column:1;padding:0 0 0 38px;justify-items:start;text-align:left}
}

/* ---------- annotated engraving plate (kit social-tile register) ---------- */
.aplate{position:relative;display:flex;align-items:center;justify-content:center;align-self:center}
.aplate .pl{display:block;width:min(96%,560px)}
.aplate .pl img{width:100%;height:auto;border-radius:var(--r2);box-shadow:0 22px 54px rgba(0,0,0,.42)}
.aplate .chip,.mplate .chip{position:absolute;background:var(--fglass);backdrop-filter:blur(3px);border-color:var(--fglass-line);color:var(--ink)}
.aplate .c1{top:7%;left:0}
.aplate .c2{top:30%;right:0}
.aplate .c3{bottom:22%;left:2%}
.aplate .c4{bottom:5%;right:6%}
.aplate .mark{position:absolute;top:7%;right:5%;height:34px;width:auto;opacity:.95}
@media(max-width:880px){.aplate .pl{width:min(84%,360px)}.aplate .mark{right:6%;height:28px}}

/* ---------- How we are different (About, 8 Sep round) ---------- */
.differ .dgrid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,5vw,80px);align-items:start}
.differ .dsay{margin-top:14px;font-size:clamp(1.05rem,1.5vw,1.3rem);line-height:1.5;color:var(--ink-soft);max-width:34ch}
.differ .dclose{margin-top:clamp(22px,3vw,40px);font-size:clamp(1.25rem,1.9vw,1.75rem);font-weight:600;line-height:1.35;color:var(--ink);max-width:24ch}
.differ .drows{list-style:none;margin:0;padding:0}
.differ .drows li{display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:10px 24px;padding:clamp(14px,1.8vw,20px) 0;border-top:1px solid var(--hair-d)}
.differ .drows li:last-child{border-bottom:1px solid var(--hair-d)}
.differ .drows h3{font-size:clamp(1rem,1.3vw,1.15rem);font-weight:600}
.differ .drows p{font-size:.96rem;line-height:1.5;color:var(--ink-soft);max-width:none}

@media (max-width:880px){
  .differ .dgrid{grid-template-columns:1fr;gap:26px}
  .differ .dsay{max-width:none}
  .differ .dclose{max-width:none;font-size:1.2rem}
  .differ .drows li{grid-template-columns:1fr;gap:4px;padding:14px 0}
}

/* ---------- the Walker Methodology chapter ---------- */
.methodology .wrap{padding-block:clamp(56px,7vw,96px)}
.methodology .lede{color:var(--cream-soft)}
.methodology .tri{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,34px);margin-top:clamp(30px,4vw,48px)}
.methodology .tri .num{font-size:clamp(2.2rem,4vw,3.4rem);color:var(--bronze)}
.methodology .tri h3{margin:10px 0 8px;color:var(--cream)}
.methodology .tri p{font-size:.98rem}
.methodology .ai-note{margin-top:clamp(26px,3.4vw,38px);font-size:.95rem;color:var(--cream-soft);max-width:58ch}
.founder{display:grid;grid-template-columns:1fr;gap:14px;margin-top:clamp(30px,4vw,44px);padding-top:clamp(24px,3vw,34px);border-top:1px solid var(--hair-d)}
.founder .fprint{width:96px;background:var(--cream);padding:4px 4px 6px;border-radius:8px}
.founder .fprint img{border-radius:5px}
.founder p{font-size:.95rem;color:var(--cream-soft);max-width:56ch}
.founder p strong{color:var(--cream);font-weight:500}
.founder .btn2{padding:6px 2px;font-size:.92rem;color:var(--cream)}
@media(max-width:880px){
  .methodology .tri{grid-template-columns:1fr;gap:22px}
  section.band{height:min(48vh,420px)}
  section.band.short{height:min(40vh,360px)}
}

/* ---------- motion ---------- */
html.js .rise{opacity:0;transform:translateY(6px)}
html.js .rise.vis{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}
html.static .rise,body.prm .rise{opacity:1!important;transform:none!important;transition:none!important}

/* ---------- responsive ---------- */
@media(max-width:1020px){
  .price .inner{grid-template-columns:1fr;gap:40px}
  .report .grid{grid-template-columns:1fr;gap:40px}
  .network .row{grid-template-columns:160px 1fr}
}
@media(max-width:880px){
  :root{--header-h:62px}
  .brand img{height:26px}
  .hero .grid{grid-template-columns:1fr;gap:18px}
  .hero .say{padding-block:20px 6px}
  .hero .plate{min-height:0;aspect-ratio:4/4.6}
  .proof .row{grid-template-columns:1fr 1fr}
  .proof .cell:nth-child(3){border-left:0}
  .proof .cell:nth-child(n+3){border-top:1px solid var(--hair)}
  .doctor .inner,.walker .inner{grid-template-columns:1fr;gap:36px}
  .print{width:min(340px,88%)}
  .method .grid{grid-template-columns:1fr;gap:34px}
  .method .tri{grid-template-columns:1fr;gap:22px}
  .method .plate{aspect-ratio:4/4.4;order:-1}
  .alead .grid{grid-template-columns:1fr}
  .alead .plate{aspect-ratio:4/4.2;order:-1;min-height:0}
  .addons .list{grid-template-columns:1fr}
  .mdeep .cols{grid-template-columns:1fr}
  .contact .grid{grid-template-columns:1fr}
  .loccard .grid,.loccard.flip .grid{grid-template-columns:1fr;min-height:0}
  .loccard .media{aspect-ratio:16/9;position:relative}
}
@media(max-width:560px){
  body{font-size:17px}
  .cta-row{gap:14px}
  .btn{padding:15px 24px}
  .itable td.cat{min-width:200px}
  .addons .art img{width:88px}
}

/* ============================================================
   v2.5 — one continuous experience (Everlab register)
   plate rhythm · hero baseboard · annotation chips on imagery ·
   partner marquee · parallax windows · Lenis smoothing
   ============================================================ */

/* consistent breath between colour plates — the cream ground reads through */
.chapter,section.band{margin-block:calc(var(--rail)*1.35)}
.heroX+.proof{padding-top:clamp(16px,2.4vw,28px)}

/* proofbar + mobile proof section retired 2026-08-27 — stats overlay the hero image (.hstats) */

/* annotation chips pinned on imagery (kit poster register) */
section.band{position:relative}
section.band .chip.onimg{position:absolute;background:var(--fglass);backdrop-filter:blur(4px);border-color:var(--fglass-line);color:var(--ink);z-index:2}
section.band .chip.c1{left:clamp(18px,4vw,54px);top:clamp(18px,4vw,50px)}
section.band .chip.c2{right:clamp(18px,4vw,54px);bottom:clamp(18px,4vw,50px)}
@media(max-width:560px){section.band .chip.c2{display:none}}

/* partner marquee — slow, quiet, Everlab credential register */
.partners .marq{overflow:hidden;flex:1;min-width:220px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.partners .mtrack{display:flex;width:max-content}
.partners .mhalf{display:flex;align-items:center;gap:clamp(44px,6vw,88px);padding-right:clamp(44px,6vw,88px)}
html.js .partners .mtrack{animation:marq 52s linear infinite}
@keyframes marq{to{transform:translateX(-50%)}}
html.static .partners .mtrack{animation:none}
html.static .partners .marq,html:not(.js) .partners .marq{-webkit-mask-image:none;mask-image:none}
@media (prefers-reduced-motion: reduce){.partners .mtrack{animation:none!important}.partners .marq{-webkit-mask-image:none;mask-image:none}}
.partners .marq img{height:30px;width:auto;filter:grayscale(1) invert(1) brightness(1.7);opacity:.85;mix-blend-mode:screen;flex:none}
.partners .marq img.ph{height:38px;filter:grayscale(1) invert(1) brightness(1.5);opacity:.9}

/* thin-serif partner marks need more height to stay legible */
.network .row img.ph{height:31px}

/* curtain 2 (31 Aug, Noah): generic slide-over — wrap the pinned block in
   .cwrap2>.cstick2 and mark the climbing section .covers2. JS bottom-aligns
   blocks taller than the viewport; without JS the pieces stack clean. */
.cwrap2{position:relative}
.cwrap2::after{content:"";display:block;height:var(--covh)}
.cwrap2 .cstick2{position:sticky;top:calc(var(--header-h) + var(--rail))}
.covers2{position:relative;z-index:2;margin-top:calc(var(--covh)*-1);background:var(--cream)}
:root{--covh:calc(100svh - var(--header-h) - 24px)}

/* reveal-behind (31 Aug, Noah): the PREVIOUS section lifts away to unveil
   this one, pinned beneath as if it had been sitting there all along.
   .lifts = the opaque sheet above; .rback>.rback-pin = the pinned card;
   .panchor = where #price lands (the fully-revealed scroll position). */
.lifts{position:relative;z-index:2;background:var(--cream)}
.rback{position:relative;z-index:1;margin-top:calc(var(--covh)*-1)}
.rback::after{content:"";display:block;height:var(--covh)}
.rback .rback-pin{position:sticky;top:calc(var(--header-h) + var(--rail))}
.rback .panchor{position:absolute;top:var(--covh);left:0;width:1px;height:1px}

/* static mode + no-JS: both curtain patterns stack plainly (fullpage
   renders stay truthful; sticky overlap never hides content) */
html:not(.js) .cwrap2::after,html.static .cwrap2::after,
html:not(.js) .rback::after,html.static .rback::after{display:none}
html:not(.js) .cwrap2 .cstick2,html.static .cwrap2 .cstick2,
html:not(.js) .rback .rback-pin,html.static .rback .rback-pin{position:static}
html:not(.js) .covers2,html.static .covers2{margin-top:0}
html:not(.js) .rback,html.static .rback{margin-top:0}

/* curtain reveal: full-aspect band pins, the next section climbs a quarter over it */
.cwrap{position:relative;margin-block:calc(var(--rail)*1.35)}
.cwrap::after{content:"";display:block;height:var(--ov)}
.cwrap .cstick{position:sticky;top:calc(var(--header-h) + var(--rail))}
.cwrap section.band{margin-block:0}
section.band.full{height:auto}
section.band.full picture img{width:100%;height:auto}
.covers{position:relative;z-index:2;margin-top:calc(var(--ov)*-1);background:var(--cream);border-radius:var(--r) var(--r) 0 0}
@media(max-width:880px){.cwrap .cstick{top:calc(var(--header-h) + 10px)}}

/* big ink W riding an image band (kit poster register) */
section.band .bandw{position:absolute;right:clamp(28px,9vw,130px);top:0;bottom:0;margin-block:auto;height:min(56%,270px);width:auto;filter:brightness(0);opacity:.94;z-index:2}
@media(max-width:880px){section.band .bandw{height:min(26%,96px);top:auto;bottom:clamp(14px,5vw,30px);margin-block:0;right:clamp(16px,6vw,44px)}}

/* parallax windows — img gets headroom, JS drives translateY */
[data-plx]{overflow:hidden}
[data-plx] picture img,[data-plx]>img{will-change:transform}
html.static [data-plx] picture img,html.static [data-plx]>img,body.prm [data-plx] picture img,body.prm [data-plx]>img{transform:none!important}

.cta-row.seam{margin-top:clamp(28px,4vw,46px)}

/* the float band step timeline (kit register: pills, hairline, W) */
section.band.steps{height:auto;min-height:min(72vh,660px);display:flex}
section.band.steps>picture{position:absolute;inset:0}
section.band.steps>picture img{width:100%;height:100%;object-fit:cover}
section.band.steps::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,13,10,.38),rgba(15,13,10,.08) 62%,rgba(15,13,10,0));z-index:1}
.bsteps{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2.6vw,40px);align-content:start;width:100%;padding:clamp(26px,4.5vw,58px) clamp(22px,4vw,56px)}
.bsteps li{position:relative;padding-top:26px;display:flex;flex-direction:column;align-items:flex-start;gap:9px}
.bsteps li::before{content:"";position:absolute;top:0;left:0;right:calc(clamp(16px,2.6vw,40px)*-1);height:1.5px;background:rgba(255,247,227,.55)}
.bsteps li:last-child::before{right:0}
.bsteps li::after{content:"";position:absolute;top:-4px;left:0;width:10px;height:10px;border-radius:50%;background:var(--cream)}
.bsteps .spill{background:var(--bronze);color:var(--ink);font-weight:600;font-size:.82rem;padding:6px 14px;border-radius:999px}
.bsteps h3{color:var(--cream);font-size:clamp(.95rem,1.2vw,1.08rem)}
.bsteps p{color:rgba(255,247,227,.82);font-size:.85rem;line-height:1.5;max-width:26ch}
.bsteps .wm4{height:clamp(40px,4.6vw,56px);width:auto;margin-top:6px}
@media(max-width:880px){
  section.band.steps{min-height:0}
  .bsteps{grid-template-columns:1fr 1fr;gap:20px 16px;padding:22px 18px 26px}
  .bsteps p{font-size:.76rem}
  .bsteps .spill{font-size:.72rem;padding:5px 11px}
  .bsteps .wm4{height:34px}
}

/* ---------- the price reveal (v2.6 — sketch: two panels, trust spine, flip add-ons) ---------- */
.reveal{padding-block:clamp(44px,5.5vw,80px)}
.reveal .wrap{max-width:1400px}
.rgrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,28px);align-items:stretch} /* identical cards, identical size (Noah, 8 Sep — supersedes the 1 Sep 1.06/.94 lean) */
.rpanel{background:var(--teal);color:var(--ink);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.rhead{position:relative;overflow:hidden}
.rhead picture{display:block;position:relative;aspect-ratio:3.6/1} /* ratio on the picture — intrinsic img height was oversizing the headers */
.rhead img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 55%}
.rtag{position:absolute;left:clamp(18px,2.4vw,30px);top:50%;transform:translateY(-50%);font-size:clamp(2.3rem,3.6vw,3.6rem);font-weight:600;letter-spacing:-.02em;color:var(--bronze)}
.rtag2{color:var(--cream)}
/* .rmark retired 1 Sep — the prime card now carries an "Included" .rtag2 (Jack) */
.rbody{padding:clamp(16px,2vw,24px);display:flex;flex-direction:column;gap:12px;flex:1}

/* price lockup (31 Aug, Noah): price + CTA side by side on a cream plate;
   bronze-deep numeral (3.3:1 on cream), gilded halo on THIS button only */
.rpanel.prime{box-shadow:inset 0 0 0 1px rgba(201,146,19,.5)}
.pricebar{display:flex;align-items:center;justify-content:space-between;gap:14px 22px;flex-wrap:wrap;
  background:var(--cream);padding:16px 20px}
.pricebar .pnum{display:grid;gap:5px}
.pricebar .num{font-size:clamp(2.8rem,3.6vw,3.6rem);line-height:1;color:var(--bronze-deep);
  text-shadow:0 0 16px rgba(201,146,19,.5),0 0 40px rgba(201,146,19,.28)} /* bigger + gilded glow (Noah, 1 Sep) */
.pricebar .mono{color:var(--ink)}
.pricebar .btn{padding:17px 30px;font-size:1.02rem}
.rbody h2{font-size:clamp(1.4rem,2vw,1.8rem)}
.ticks{flex:1;display:grid;align-content:space-evenly}
.ticks li{position:relative;display:flex;gap:14px;align-items:flex-start;padding:7px 0;border-top:1px solid var(--hair-d)} /* right icons removed (Jack, 4 Sep: cleaner) */
.ticks .tk{flex:none;width:30px;height:30px;padding:7px;color:var(--cream);margin-top:-1px;
  background:var(--bronze);border-radius:50%!important; /* circle exception to the sharp-edge rule — kit monogram language */
  box-shadow:0 0 10px rgba(201,146,19,.5),0 0 22px rgba(201,146,19,.28)} /* cream on a glowing gold disc — RESTORED by Noah 8 Sep (the 2 Sep "same as below" read was ambiguous); one word from Jack flips it */
.ticks p{font-size:.92rem;line-height:1.45;color:var(--ink);max-width:none} /* full ink, no grey (Noah, 1 Sep) */
.ticks p strong{color:var(--ink);font-weight:500}
.rbody .fine{margin-top:auto;font-family:var(--mono);font-size:.68rem;letter-spacing:.05em;color:var(--ink-soft);max-width:none;text-transform:none}
/* .rspine retired 2026-08-27 (Noah: crammed) — panels sit closer, brand icons carry the rows */
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fcard{position:relative;perspective:900px;min-height:140px}
.finner{position:absolute;inset:0;transition:transform .5s var(--ease);transform-style:preserve-3d}
.fcard.on .finner{transform:rotateY(180deg)}
.fface{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:12px;padding:13px 15px;display:flex;flex-direction:column;align-items:flex-start;gap:7px;text-align:left}
.ffront{border:1px solid var(--hair-d);color:var(--ink);cursor:pointer}
@media(hover:hover){.ffront:hover{background:rgba(19,33,3,.04)}}
.ffront h3{font-size:.98rem;color:var(--ink);line-height:1.3}
.ffront p{font-size:.84rem;line-height:1.45;color:var(--ink-soft)}
.ffront .more{margin-top:auto;font-family:var(--mono);font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid rgba(201,146,19,.5);padding-bottom:2px}
.fback{background:var(--cream);color:var(--ink);transform:rotateY(180deg);justify-content:space-between}
.fback p{font-size:.83rem;line-height:1.5;color:var(--ink);max-width:none}
.fback .mono{font-size:.6rem;color:var(--ink-soft)}
.rfoot{display:flex;justify-content:space-between;align-items:center;gap:clamp(24px,4vw,60px);margin-top:clamp(18px,2.2vw,30px);flex-wrap:wrap}
.rfoot p{max-width:62ch;font-size:.95rem;color:var(--ink-soft)}
.rfoot p strong{color:var(--ink);font-weight:600}
@media(max-width:1020px){
  .rgrid{grid-template-columns:1fr}
  .fcard{min-height:170px}
  .fgrid{grid-template-columns:1fr}
}
html.static .fcard .finner,body.prm .fcard .finner{transition:none}

/* Lenis compat */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}

/* reduced motion */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}

/* ============================================================
   footer v3 (2026-08-27) — the last plate
   forest photo band on top · big cream wordmark · partners + socials
   under it · two columns of four · legal line with Privacy/Terms
   ============================================================ */
.wfoot{margin:calc(var(--rail)*2) var(--rail) var(--rail);background:var(--teal);color:var(--ink);border-radius:var(--r);overflow:hidden}
.wfoot .fimg{position:relative;aspect-ratio:3/1;overflow:hidden;background:var(--teal)}
.wfoot .fimg img{width:100%;height:100%;object-fit:cover;object-position:50% 38%}
.wfoot .ftop{position:relative}
.wfoot .fsay{position:absolute;inset:0;display:flex;align-items:center;z-index:2}
.wfoot .fsay .inner{width:100%;padding-block:0}
.wfoot .fsay h2{font-size:clamp(2.2rem,4.6vw,3.9rem);max-width:17ch;color:var(--ink)}
.wfoot .fsay .btn2{color:var(--ink)}
.wfoot .fsay .cta-row{margin-top:clamp(22px,2.6vw,34px)}
.wfoot .btn2{color:var(--cream)}
.wfoot .inner{max-width:1240px;margin-inline:auto;padding:clamp(36px,4.6vw,60px) var(--inset) 26px}
.wfoot .fgrid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px clamp(40px,6vw,96px);align-items:start}
.wfoot .fbrand>a{display:inline-block;border-radius:6px}
.wfoot .mark{display:block;width:clamp(200px,24vw,340px);height:auto}
.wfoot .fpartners{display:flex;align-items:center;flex-wrap:wrap;gap:16px clamp(20px,2.4vw,32px);margin-top:clamp(28px,3.2vw,44px)}
.wfoot .fpartners img{height:18px;width:auto;filter:grayscale(1) invert(1) brightness(1.6);opacity:.6;mix-blend-mode:screen;flex:none}
.wfoot .fpartners img:last-child{opacity:.78}
.wfoot .fpartners img.ph{height:22px}
.wfoot .fsocial{display:flex;gap:4px;margin:clamp(16px,2vw,24px) 0 0 -11px}
.wfoot .fsocial a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;color:rgba(255,247,227,.85);transition:color .2s var(--ease),transform .2s var(--ease)}
.wfoot .fsocial svg{width:22px;height:22px;display:block}
@media(hover:hover){.wfoot .fsocial a:hover{color:var(--cream)}}
.wfoot .fsocial a:active{transform:scale(.94)}
.wfoot .fnav{display:grid;grid-template-columns:repeat(2,max-content);gap:12px clamp(44px,6vw,96px);padding-top:10px}
.wfoot .fnav div{display:grid;gap:11px;align-content:start}
.wfoot .fnav a{font-size:1rem;line-height:1.35;color:var(--cream);text-decoration:none;transition:color .2s var(--ease)}
@media(hover:hover){.wfoot .fnav a:hover{color:#fff}}
.wfoot .flegal{display:flex;justify-content:space-between;align-items:baseline;gap:14px 28px;flex-wrap:wrap;margin-top:clamp(40px,5vw,64px);padding-top:20px;border-top:1px solid var(--hair-d)}
.wfoot .flegal p,.wfoot .flegal a{font-family:var(--mono);font-size:.68rem;letter-spacing:.05em;color:rgba(255,247,227,.85);max-width:none}
.wfoot .flegal .fine{display:flex;gap:22px;flex-wrap:wrap}
.wfoot .flegal .fine a{text-decoration:none}
.wfoot .flegal .fine a.credit{opacity:.7}
@media(hover:hover){.wfoot .flegal .fine a:hover{color:var(--cream)}}
@media(max-width:880px){
  .wfoot .fimg{aspect-ratio:4/3}
  .wfoot .fimg img{object-position:82% 50%}
  .wfoot .fsay{position:static;display:block}
  .wfoot .fsay .inner{padding:30px var(--inset) 0}
  .wfoot .fsay h2,.wfoot .fsay .btn2{color:var(--ink)}
  .wfoot .fsay h2{max-width:14ch}
  .wfoot .fsay .cta-row .btn2{padding-block:8px}
  .wfoot .fsay .cta-row{padding-bottom:34px;border-bottom:1px solid var(--hair-d)}
  .wfoot .fgrid{grid-template-columns:1fr;gap:34px}
  .wfoot .mark{width:min(64vw,260px)}
  .wfoot .fpartners{gap:14px 22px}
  .wfoot .fpartners img{height:16px}
  .wfoot .fpartners img.ph{height:20px}
  .wfoot .fnav{grid-template-columns:1fr 1fr;gap:12px 20px;padding-top:0}
  .wfoot .flegal{flex-direction:column;align-items:flex-start;gap:12px}
}

/* ============================================================
   v3 "FIELD NOTES" (2026-08-28) → v3.7 triad (2026-08-31, Noah)
   · grounds: cream + teal #A1B2A4 only — ink does all type;
     bronze = commerce + accents (chips, nodes); no forest/fern
   · only sharp edges, site-wide
   · fixed liquid-glass header
   · Home = full-bleed image screens, annotated
   ============================================================ */

/* -- sharp everything ------------------------------------------------ */
*,*::before,*::after{border-radius:0!important}
:root{--r:0px;--r2:0px;--r3:0px;--fglass:var(--bronze);--fglass-line:rgba(19,33,3,.28)}

/* -- fixed glass header --------------------------------------------- */
.site-head{position:fixed;left:0;right:0;top:0;background:rgba(255,247,227,.55);
  backdrop-filter:blur(16px) saturate(1.25);-webkit-backdrop-filter:blur(16px) saturate(1.25);
  border-bottom:1px solid rgba(19,33,3,.14)}
main{padding-top:var(--header-h)}
body.imm main{padding-top:0}
@media(max-width:880px){
  .sheet{background:rgba(255,247,227,.88);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2)}
  }

/* -- accent law (v3.7, 31 Aug): BRONZE tints every chip surface (fern's
   old job) with ink text; on teal panels numerals/nodes/ticks go INK
   (bronze-on-teal ≈1.25:1); bronze keeps CTAs, nodes-on-photos, counts
   and washes on cream. -- */
.bsteps li::after{background:var(--bronze)}

/* -- the annotation kit: sage square · hairline leader · glass tag --- */
.anno{position:absolute;z-index:3;display:flex;flex-direction:column;align-items:flex-start;pointer-events:none}
.anno .nd{width:9px;height:9px;background:var(--bronze);flex:none}
.anno .ln{width:1px;flex:none;background:rgba(255,247,227,.62);margin-left:4px}
.anno .tag{display:inline-flex;align-items:baseline;gap:10px;background:var(--fglass);
  backdrop-filter:blur(10px) saturate(1.1);-webkit-backdrop-filter:blur(10px) saturate(1.1);
  border:1px solid var(--fglass-line);padding:10px 13px;
  font-family:var(--mono);font-size:.64rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;
  line-height:1.45;color:var(--ink);text-align:left}
.anno .tag b{font-family:var(--doto);font-weight:700;font-size:1.02rem;color:var(--ink);letter-spacing:0}
.anno.dn{align-items:flex-start}
.anno.up{flex-direction:column-reverse}

/* -- full-bleed home screens ----------------------------------------- */
.screen{position:relative;min-height:100svh;margin:0;padding:0;overflow:hidden;display:flex;background:var(--ink)} /* dark fallback under hero photos — deliberate */
.screen>picture{position:absolute;inset:0}
.screen>picture img{width:100%;height:100%;object-fit:cover}
.scon{position:relative;z-index:2;width:100%;display:flex;flex-direction:column;justify-content:space-between;
  padding:calc(var(--header-h) + clamp(22px,3.5vh,44px)) clamp(22px,3.6vw,56px) clamp(22px,3.5vh,40px)}

/* screen 1 — hero: legacy .say/.bigw lockup removed 2026-08-30 (all five
   heroes now run the W HERO SYSTEM at the end of this file) */
.hstats{position:absolute;left:0;right:0;bottom:0;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);
  gap:10px;padding:0 clamp(14px,1.8vw,24px) clamp(14px,1.8vw,22px);background:none}
.hstats .cell{text-align:left;background:rgba(255,247,227,.55);backdrop-filter:blur(12px) saturate(1.25);
  -webkit-backdrop-filter:blur(12px) saturate(1.25);border:1px solid rgba(19,33,3,.12);
  padding:14px 16px 13px;position:relative}
.hstats .cell::before{content:"";position:absolute;top:0;left:0;width:9px;height:9px;background:var(--bronze)}
.hstats .num{color:var(--ink);font-size:clamp(1.2rem,1.7vw,1.7rem)}
.hstats .mono{color:rgba(19,33,3,.72);font-size:.6rem}

/* screen 3 — the four steps on the float image */
.screen.s-steps{min-height:100svh}
.screen.s-steps::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(15,13,10,.44),rgba(15,13,10,.1) 58%,rgba(15,13,10,0))}
.bsteps{align-content:flex-start;padding-top:calc(var(--header-h) + clamp(20px,3vh,40px))}
.bsteps .chipn{display:inline-flex;align-items:baseline;gap:10px;background:var(--fglass);
  backdrop-filter:blur(10px) saturate(1.1);-webkit-backdrop-filter:blur(10px) saturate(1.1);
  border:1px solid var(--fglass-line);padding:9px 13px;
  font-family:var(--mono);font-size:.68rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--ink)}
.bsteps .chipn b{font-family:var(--doto);font-weight:700;font-size:1.35rem;line-height:1;color:var(--cream)} /* Doto dots need light voice + scale to knit on bronze */
.bsteps p{text-shadow:0 1px 8px rgba(15,13,10,.35)}

/* screen 4 — the report, annotated */
.s-report>picture img{object-position:50% 46%}
.s-report .top{display:grid;gap:14px;max-width:520px}
.s-report h2{color:var(--cream);font-size:clamp(2rem,3.8vw,3.2rem)}
.s-report .lede{color:var(--cream-soft);font-size:clamp(1rem,1.25vw,1.15rem);max-width:40ch}
.s-report::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(100deg,rgba(15,13,10,.55),rgba(15,13,10,.16) 38%,rgba(15,13,10,0) 58%),linear-gradient(180deg,rgba(15,13,10,.44),rgba(15,13,10,.1) 40%,rgba(15,13,10,0) 62%)}
.s-report .foot{display:flex;justify-content:flex-start}
.s-report .foot .btn2{color:var(--cream)}
/* mobile fallback rows for the three annotations */
.s-report .rrows{display:none}

/* partners strip — quiet, sharp, sage-marked */
.partners .row .mono{position:relative;padding-left:19px}
.partners .row .mono::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:9px;height:9px;background:var(--bronze)}

/* footer joins the full-bleed rhythm */
.wfoot{margin:0}
.wfoot .fimg{aspect-ratio:2172/724}

/* -- home mobile choreography ---------------------------------------- */
@media(max-width:880px){
  .hstats{grid-template-columns:1fr 1fr;gap:8px;padding:0 10px 10px}
  .hstats .cell{padding:11px 12px 10px}
  .hstats .num{font-size:1rem}
  .hstats .mono{font-size:.48rem;letter-spacing:.05em}
  .screen .anno{display:none}
  .s-report .rrows{display:grid;gap:7px;width:100%}
  .s-report .rrows li{display:flex;align-items:baseline;gap:12px;background:var(--fglass);
    backdrop-filter:blur(10px) saturate(1.1);-webkit-backdrop-filter:blur(10px) saturate(1.1);
    border:1px solid var(--fglass-line);padding:11px 13px;
    font-family:var(--mono);font-size:.62rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);line-height:1.45}
  .s-report .rrows b{font-family:var(--doto);font-weight:700;font-size:.95rem;color:var(--ink)}
  .bsteps .chipn{font-size:.6rem;padding:7px 10px}
  .bsteps .chipn b{font-size:1.05rem}
}

/* -- the archival plates return (28 Aug): full-bleed forest rail ------ */
.plates2{background:var(--teal);color:var(--ink);padding-block:clamp(44px,5.5vw,76px) clamp(36px,4.6vw,60px);
  margin-inline:var(--rail);margin-block:calc(var(--rail)*1.35)}
.plates2 .head2{max-width:1240px;margin-inline:auto;padding:0 var(--inset) clamp(26px,3.2vw,44px);display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.plates2 h2{color:var(--ink)}
.plates2 .head2 .lede{color:var(--ink-soft);max-width:50ch;margin-top:12px}
.plates2 .side2{font-family:var(--mono);font-size:.66rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:var(--bronze);padding:10px 13px}
.plates2 .erail-shell{margin-top:0}
.plates2 .btn2{color:var(--ink)}
.plates2 .ctas{max-width:1240px;margin-inline:auto;padding:14px var(--inset) 0}

/* ============================================================
   v3.3 (2026-08-28) — full-screen heroes everywhere · fold steps
   screen · thin texture footer band · stats chips retired
   ============================================================ */

/* steps on the light fold image: ink voice, no scrim, W baked into the photo */
.s-steps.lightimg::before{content:none}
section.band .bandw.fern{filter:none;opacity:1}
.band.full .bsteps{position:absolute;top:0;left:0;right:0;padding:clamp(14px,2.4vw,30px) clamp(22px,4vw,56px) 0}
.lightimg .bsteps p{color:var(--ink);text-shadow:none}
.lightimg .bsteps li::before{background:rgba(19,33,3,.3)}
/* readable step cards over the busy light photo (Noah, 31 Aug): each step
   rides a cream veil — hstats glass recipe — so ink copy always has ground */
.lightimg .bsteps li{background:rgba(255,247,227,.78);backdrop-filter:blur(12px) saturate(1.15);
  -webkit-backdrop-filter:blur(12px) saturate(1.15);border:1px solid rgba(19,33,3,.10);
  padding:24px 18px 20px}
@media(max-width:880px){.band.full .bsteps{display:none}}

/* locations hero video (28 Aug — replaces the Sydney/Abu Dhabi crossfade) */
.s-hero video.hvid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* footer: thin fern-dark texture band, one line + one CTA */
.wfoot .fimg{aspect-ratio:auto;height:clamp(120px,18vh,190px);background:var(--teal)}
.wfoot .fimg img{object-position:50% 50%}
.wfoot .fsay .inner{display:flex;align-items:center;justify-content:space-between;gap:14px 28px;flex-wrap:wrap;padding-block:0}
.wfoot .fsay h2{font-size:clamp(1rem,1.5vw,1.35rem);max-width:none;color:var(--cream);font-weight:500;letter-spacing:0}
.wfoot .fsay .cta-row{margin-top:0}
.wfoot .fsay .btn{padding:13px 24px;font-size:.93rem}
@media(max-width:880px){
  .wfoot .fimg{aspect-ratio:auto;height:auto;min-height:120px}
  .wfoot .fimg img{object-position:50% 50%}
  .wfoot .fsay{position:absolute;inset:0;display:flex;align-items:center}
  .wfoot .fsay .inner{padding:14px var(--inset)}
  .wfoot .fsay h2{font-size:.92rem;max-width:24ch;color:var(--cream)}
  .wfoot .fsay .cta-row{padding:0;border:0;margin:0}
}

/* -- report split (28 Aug): annotated plate left · cream feature grid right;
   plate + annotations stepped down (Noah, 28 Aug arvo) -- */
.report2{padding-block:clamp(60px,8.5vw,116px)}
.report2 .grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(32px,4vw,64px);align-items:center}
.report2 .plate2{position:relative;max-width:min(1100px,100%);margin-inline:auto}
.report2 .plate2 img{width:100%;height:auto;display:block}
.report2 .plate2 .anno .tag{white-space:nowrap}
/* annotation layer (10 Sep): the four tags distribute across the plate at any
   width. Percentage tops + fixed tag heights left a dead band under 04 as the
   plate grew (worst in the =<1020 single-column state, where it runs full-width).
   Padding is asymmetric on purpose: the block starts on a 7px node and ends on a
   solid tag, so the optical margins only match if the bottom gets more room. */
.report2 .plate2 .annos{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;justify-content:space-between;padding:12px 0 42px;pointer-events:none}
.report2 .plate2 .anno{position:relative;left:auto;top:auto}
.report2 .anno .tag{padding:7px 11px;font-size:.56rem;gap:8px}
.report2 .anno .tag b{font-size:.82rem}
.report2 .anno .nd{width:7px;height:7px}
.report2 .feats{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(24px,3vw,44px);margin-top:clamp(24px,3vw,40px)}
.report2 .feats .f{padding:16px 0 18px;border-top:1px solid var(--hair)}
.report2 .feats h3{font-size:1.02rem;margin-bottom:6px;display:flex;align-items:baseline;gap:10px}
/* numerals tie the adjacent copy to the plate markers (Paul, 9 Sep) */
.report2 .feats h3 b{font-family:var(--doto);font-weight:700;font-size:1.24rem;line-height:1;color:var(--bronze);letter-spacing:0;flex:none;position:relative;top:1px}
.report2 .feats p{font-size:.92rem;line-height:1.5;color:var(--ink-soft)}
.report2 .cta-row{margin-top:clamp(26px,3.2vw,40px)}
@media(max-width:1020px){.report2 .grid{grid-template-columns:1fr;gap:34px}}
@media(max-width:880px){.report2 .feats{grid-template-columns:1fr}.report2 .anno{display:none}}

/* -- footer v4 (28 Aug): fern-fabric texture under the wordmark block,
   rotating partner bar in every footer (thin), static row retired -- */
/* footer partner band (28 Aug): cream ground, black logos, every page */
.wfoot .partners.thin{background:var(--cream);padding-block:clamp(15px,1.8vw,22px)}
.wfoot .partners.thin .mono{color:var(--ink)}
.wfoot .partners.thin .marq img{filter:none;opacity:.88;mix-blend-mode:multiply}
.wfoot .partners.thin .marq img.l-ph,.wfoot .partners.thin .marq img.l-dna{height:27px}
.wfoot .partners.thin .marq img.l-asp{height:42px}
/* fabric card retired (28 Aug) — the wordmark sits straight on the forest */
.wfoot .fbrand a.fabcard{display:inline-block}
/* header: barely-there at the top of the page, glass once scrolled */
.site-head{transition:background .35s var(--ease),border-color .35s var(--ease)}
.site-head.attop{background:rgba(255,247,227,.14);
  backdrop-filter:blur(7px) saturate(1.1);-webkit-backdrop-filter:blur(7px) saturate(1.1);
  border-bottom-color:transparent}
body.sheet-open .site-head.attop{background:rgba(255,247,227,.88);border-bottom-color:rgba(19,33,3,.14)}

/* -- measure rows (28 Aug): two counter-drifting card rows replace the arrow rail -- */
.prows{margin-top:clamp(26px,3.4vw,44px);display:grid;gap:clamp(16px,2vw,26px);overflow:hidden}
.prow{overflow:hidden}
.ptrack{display:flex;width:max-content}
html.js .prow .ptrack{animation:pdrift 130s linear infinite}
html.js .prow.rev .ptrack{animation-duration:104s;animation-direction:reverse}
@keyframes pdrift{to{transform:translateX(-50%)}}
html.static .ptrack,body.prm .ptrack{animation:none!important}
@media (prefers-reduced-motion: reduce){.ptrack{animation:none!important}}
@media(hover:hover){.prow:hover .ptrack{animation-play-state:paused}}
.phalf{display:flex;gap:clamp(14px,1.6vw,22px);padding-right:clamp(14px,1.6vw,22px);flex:none}
.prows .ecard{width:clamp(280px,26vw,370px);flex:none}

/* measure-card count stat — all-bronze, riding the tile itself (28 Aug) */
.ecard .tile .cstat{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:2;display:flex;align-items:baseline;gap:10px;background:var(--cream);border:1px solid rgba(19,33,3,.16);padding:8px 13px 7px;font-family:var(--mono);font-size:.8rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--bronze);white-space:nowrap}
.ecard .tile .cstat b{font-family:var(--doto);font-weight:700;font-size:1.55rem;color:var(--bronze);line-height:1}

/* ===== W HERO SYSTEM (2026-08-30) =====
   Full-viewport photo · big cream drawn-on W · short cream line + CTAs
   over the darkened bottom. Shared by all five heroes.
   Per-page knobs (inline style on .s-hero.wh): --pos-d / --pos-m
   (photo object-position), --wx / --wy (desktop W nudge), --scrim
   (bottom darkening, max .45). --wsize is GLOBAL — never per-page.
   Mobile W spot + size are hard-coded and identical on every page. */
.wh{
  /* W-vs-lockup clearance guard (3 Sep, Jack: the W ran over the Locations h1 on a laptop):
     the lockup is bottom-anchored and vw-typed, the W was centred at a fixed 43% — on
     short-wide viewports (1440×780 MacBook, 1536×864, 1366×768) the two collided. --lock-h
     mirrors .say2's real stack (bottom offset + 48px cta row + gap + h1 lines + any extra);
     per-page knobs: --h1-lines (2 on Locations), --lock-extra (index's subline). */
  --lock-h:calc(clamp(36px,7vh,80px) + 48px + clamp(18px,2.6vh,26px) + var(--h1-lines,1) * 1.02 * clamp(3rem,5.8vw,5.4rem) + var(--lock-extra,0px));
  --w-top-min:calc(var(--header-h) + 16px); /* glyph top never nearer the header than this */
  --w-avail:calc(100svh - var(--lock-h) - 20px - var(--w-top-min)); /* free band for the glyph */
  --wsize:clamp(200px,min(27vw,52svh,var(--w-avail) / .931),425px); /* glyph = .931 × box (aspect 1932.7/1799.6) */
  background:var(--teal)} /* pre-decode ground = brand teal, not ink (Noah, 1 Sep) */ /* stepped down from 30vw (Noah, 30 Aug); 52svh guard = the W can never clip the hero top on short viewports (Jack, 1 Sep) */
.wh .hbg img{object-position:var(--pos-d,50% 40%)}
.wh .hcut{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:var(--pos-d,50% 40%);z-index:3;pointer-events:none;
  /* hand the cutout back to the scrimmed photo as EARLY as each page's
     tuck allows (--cuta/--cutb inline knobs) — the unscrimmed subject over
     the darkened base read as an obvious overlay (Noah, 31 Aug). Keep the
     W's tuck zone above --cuta or it ghosts. */
  -webkit-mask-image:linear-gradient(180deg,#000 var(--cuta,48%),transparent var(--cutb,80%));
  mask-image:linear-gradient(180deg,#000 var(--cuta,48%),transparent var(--cutb,80%))}
.wh .wsc{position:absolute;left:0;right:0;bottom:0;height:54%;z-index:1;pointer-events:none;
  /* neutral shadow, NOT ink — the olive cast read as a weird grade on light skies (Noah, 31 Aug) */
  background:linear-gradient(180deg,rgba(15,13,10,0),rgba(15,13,10,calc(var(--scrim,.32)*.6)) 38%,rgba(15,13,10,var(--scrim,.32)) 64%)}
.wh .wdraw{position:absolute;left:calc(50% + var(--wx,0px));
  /* centre at 43% (+nudge) unless that would touch the header band or the lockup; then pin */
  top:clamp(calc(var(--w-top-min) + var(--wsize) * .4655),calc(43% + var(--wy,0vh)),calc(100svh - var(--lock-h) - 20px - var(--wsize) * .4655));
  translate:-50% -50%;width:var(--wsize);aspect-ratio:1932.7/1799.6;z-index:2;pointer-events:none}
.wh .wdraw svg{display:block;width:100%;height:100%}
.wh .say2{position:absolute;left:0;right:0;bottom:clamp(36px,7vh,80px);z-index:4;
  display:flex;flex-direction:column;align-items:center;gap:clamp(18px,2.6vh,26px);
  padding-inline:var(--inset);text-align:center}
.wh .say2 h1{color:var(--cream);font-size:clamp(3rem,5.8vw,5.4rem);font-weight:500;
  line-height:1.02;letter-spacing:-0.01em}
.wh .say2 .cta-row{justify-content:center;gap:22px}
.wh .say2 .btn2{color:var(--cream)}

/* load choreography — CSS-only, transform+opacity, 'both' fill; base
   styles ARE the settled state so animation:none = fully visible */
@keyframes whero-bg{from{transform:scale(1.035)}} /* scale-only (Noah, 1 Sep): the opacity fade showed the dark ink ground as a green flash on every page switch — the photo is now visible from frame one */
@keyframes whero-fade{from{opacity:0}}
@keyframes whero-rise{from{opacity:0;transform:translateY(14px)}}
@keyframes whero-trace{to{stroke-dashoffset:0}}
.wh .hbg,.wh .hcut{animation:whero-bg .85s var(--ease) both}
.wh .wsc{animation:whero-fade .85s var(--ease) both}
.wh .wdraw .wtrace{animation:whero-trace 1.15s cubic-bezier(.65,.05,.25,1) .35s both}
.wh .say2 h1{animation:whero-rise .55s var(--ease) .9s both}
.wh .say2 .cta-row{animation:whero-rise .55s var(--ease) 1.05s both}
body:has(.s-hero.wh) .site-head{animation:whero-fade .4s var(--ease) both}

/* settled states: screenshot mode, reduced motion (explicit — the global
   prm rule zeroes durations but not delays), and no-JS is inherently fine
   because everything above is CSS-only */
html.static :is(.wh .hbg,.wh .hcut,.wh .wsc,.wh .say2 h1,.wh .say2 .cta-row,.site-head),
body.prm :is(.wh .hbg,.wh .hcut,.wh .wsc,.wh .say2 h1,.wh .say2 .cta-row),
body.prm .site-head{animation:none}
html.static .wh .wtrace,body.prm .wh .wtrace{animation:none;stroke-dashoffset:0}
@media (prefers-reduced-motion: reduce){
  .wh .hbg,.wh .hcut,.wh .wsc,.wh .say2 h1,.wh .say2 .cta-row,.site-head{animation:none}
  .wh .wtrace{animation:none;stroke-dashoffset:0}
}

/* mobile: art-directed 9:16 image, W in the open sky — same spot and
   size on every page (cleared against all four m-crops 30 Aug) */
@media(max-width:880px){
  .wh .hbg img{object-position:var(--pos-m,50% 50%)}
  .wh .hcut{display:none}
  .wh.whm .hcut{display:block;object-position:var(--pos-m,50% 50%)} /* about: mobile cutout exists — W tucks behind her on the phone too (Noah, 8 Sep) */
  .wh .wdraw{left:50%;top:calc(var(--header-h) + 9.5svh);translate:-50% 0;width:min(54vw,224px)}
  .wh.whc .wdraw{left:30%;width:min(46vw,190px)} /* contact: subject holds the right band, W keeps to the open sky (8 Sep) */
  .wh .say2{bottom:clamp(24px,5svh,44px);gap:16px;padding-inline:18px}
  .wh .say2 h1{font-size:clamp(2.4rem,10.5vw,3.1rem)}
  .wh .say2 .cta-row{flex-direction:column;gap:6px}
}

/* ---------- reserve questionnaire: shared fields, modal shell (8 Sep) ---------- */
.qz{display:grid;gap:16px}
.qz .qrow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.qz .btn{justify-self:start;margin-top:4px}
.qz .qfine,.enq .qfine{font-family:var(--mono);font-size:.68rem;letter-spacing:.05em;color:var(--ink-soft)}
.pills{display:flex;gap:8px;flex-wrap:wrap}
.pills label{position:relative;cursor:pointer}
.pills input{position:absolute;inset:0;opacity:0;cursor:pointer}
.pills span{display:inline-flex;padding:9px 16px;font-size:.9rem;border:1px solid rgba(19,33,3,.35);color:var(--ink)}
.pills input:checked + span{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.pills input:focus-visible + span{outline:2px solid var(--bronze-deep);outline-offset:1px}
.qmodal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px;background:rgba(15,13,10,.55);opacity:0;pointer-events:none;transition:opacity .22s var(--ease)}
.qmodal.open{opacity:1;pointer-events:auto}
.qpanel{width:min(500px,100%);max-height:min(88svh,780px);overflow:auto;background:var(--teal);--ink-soft:rgba(19,33,3,.78);padding:clamp(26px,3vw,38px);position:relative;transform:translateY(10px);transition:transform .24s var(--ease)}
.qpanel .field :is(input,select,textarea){background:var(--cream);border-color:rgba(19,33,3,.32)}
.qpanel .pills span{border-color:rgba(19,33,3,.45)}
.qmodal.open .qpanel{transform:none}
.qband{position:relative;margin:calc(clamp(26px,3vw,38px) * -1) calc(clamp(26px,3vw,38px) * -1) 22px}
.qband picture img{display:block;width:100%;height:150px;object-fit:cover;object-position:50% 42%}
.qband::after{content:"";position:absolute;inset:0;background:rgba(19,33,3,.14)} /* light wash so the mark reads */
.qband .qmark{position:absolute;inset:0;margin:auto;width:68%;height:auto;max-height:74%;z-index:1}
.qmodal.open .qmark{ /* the wordmark draws in W-to-e, kin to the hero W's trace */
  -webkit-mask-image:linear-gradient(100deg,#000 45%,transparent 58%);mask-image:linear-gradient(100deg,#000 45%,transparent 58%);
  -webkit-mask-size:300% 100%;mask-size:300% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  animation:qmark-draw 1.6s cubic-bezier(.45,.05,.2,1) .28s both}
@keyframes qmark-draw{
  from{-webkit-mask-position:96% 0;mask-position:96% 0;opacity:.25}
  to{-webkit-mask-position:0% 0;mask-position:0% 0;opacity:1}}
html.static .qmodal.open .qmark,body.prm .qmodal.open .qmark{animation:none;-webkit-mask-image:none;mask-image:none}
.qfine a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.qpanel h2{font-size:clamp(1.4rem,2vw,1.7rem);margin-bottom:6px}
.qpanel .qsub{color:var(--ink-soft);font-size:.95rem;margin-bottom:18px;max-width:none}
.qx{position:absolute;top:12px;right:12px;width:40px;height:40px;display:grid;place-items:center;background:none;border:0;cursor:pointer;color:var(--ink)}
@media(hover:hover){.qx:hover{color:var(--bronze-deep)}}
.qx svg{width:16px;height:16px;display:block}
body.qopen{overflow:hidden}
html.static .qmodal,body.prm :is(.qmodal,.qpanel){transition:none}
.sidecard form.enq{margin-top:6px}
@media(max-width:880px){
  .qmodal{padding:0;align-items:end}
  .qpanel{width:100%;max-height:92svh;padding:26px 18px 34px}
  .qband{display:none}
  .qz .qrow{grid-template-columns:1fr}
}

/* ===== MOBILE CONDENSATIONS (2026-09-01, pre-Jack pass) =====
   Info was hiding behind horizontal motion at phone widths: the Home
   measure marquee, both data tables and the partner marquee. Below 880px
   each becomes a static, scannable layout; desktop is untouched. */
@media(max-width:880px){
  /* Home #measure: two drifting rows → one static 2-col gallery of the 7 plates.
     Ground flips teal→cream here (Noah, 1 Sep: the static gallery read as one
     flat green slab) — the plates' own baked wash carries the green instead. */
  .plates2{background:var(--cream);--ink-soft:rgba(19,33,3,.72)}
  .report2.covers2{box-shadow:0 -16px 36px rgba(15,13,10,.1)} /* keep the curtain edge legible now both layers are cream */
  .prows .ecard .tile picture{border:1px solid rgba(19,33,3,.14)}
  .prows{overflow:visible;gap:0}
  .prows .prow.rev{display:none}
  .prows .ptrack{animation:none!important;width:100%;display:block}
  .prows .phalf[aria-hidden="true"]{display:none}
  .prows .phalf{display:grid;grid-template-columns:1fr 1fr;gap:24px 14px;padding-right:0}
  .prows .ecard{width:100%;gap:0}
  .prows .ecard .tile{aspect-ratio:auto;overflow:visible;background:none;border-radius:0}
  .prows .ecard .tile picture{display:block;border-radius:9px;overflow:hidden;aspect-ratio:3/2}
  .prows .ecard .tile picture img{width:100%;height:100%;object-fit:cover;display:block}
  .prows .ecard h3{position:static;margin:10px 0 4px;padding:0;border:none;background:none;font-size:.72rem;line-height:1.45}
  .prows .ecard p{font-size:.8rem;line-height:1.5}
  .prows .ecard:last-child{grid-column:1/-1} /* DNA tree closes full-width */

  /* Assessment "What's included": 4-col table → stacked category cards */
  .tblwrap{overflow-x:visible}
  .itable{min-width:0}
  .itable thead{display:none}
  .itable tbody{display:block}
  .itable tr{display:grid;grid-template-columns:1fr auto;gap:6px 14px;padding:18px 0;border-bottom:1px solid var(--hair)}
  .itable td{display:block;border:none;padding:0}
  .itable td.cat{grid-column:1;grid-row:1;display:flex;align-items:center;gap:12px;min-width:0;font-size:.98rem}
  .itable td.cat img{width:44px;height:48px}
  .itable td.count{grid-column:2;grid-row:1;align-self:center;text-align:right}
  .itable td:nth-child(2){grid-column:1/-1;grid-row:2;font-size:.9rem;line-height:1.5;color:var(--ink-soft)}
  .itable td.why{grid-column:1/-1;grid-row:3;font-size:.86rem}

  /* About compare: 3-col table → item + two labelled mini-cells */
  .vtable{min-width:0}
  .vtable thead{display:none}
  .vtable tbody{display:block}
  .vtable tr{display:grid;grid-template-columns:1fr 1fr;padding:14px 0 0;border-bottom:1px solid var(--hair)}
  .vtable td{display:block;border:none}
  .vtable td:first-child{grid-column:1/-1;padding:0 0 10px;font-weight:600;font-size:.95rem}
  .vtable td.gp,.vtable td.wl{padding:10px 12px 12px;font-size:.9rem}
  .vtable td.gp::before,.vtable td.wl::before{display:block;font-family:var(--mono);font-size:.6rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:4px}
  .vtable td.gp::before{content:"Standard check-up"}
  .vtable td.wl::before{content:"W Life"}

  /* Partner strip: marquee → quiet wrapped row, all five at rest */
  .partners .marq{mask-image:none;-webkit-mask-image:none}
  .partners .mtrack{animation:none!important;width:auto}
  .partners .mhalf[aria-hidden="true"]{display:none}
  .partners .mhalf{flex-wrap:wrap;gap:16px 28px;padding-right:0}
  .partners .marq img{height:22px}
  .wfoot .partners.thin .marq img.l-ph,.wfoot .partners.thin .marq img.l-dna{height:20px}
  .wfoot .partners.thin .marq img.l-asp{height:31px}
}

/* ===== BRAND KIT FINAL + CLIENT ROUND 1 (2026-09-01) =====
   New separated wordmark + manifesto intro + waitlist launch model,
   from the founders' 1 Sep feedback (W Life website group + Jack's kit). */

/* home hero subline (Paul: "A longer life, with more of you in it.") */
.wh .say2 .sub{color:var(--cream);font-size:clamp(1.05rem,1.5vw,1.3rem);font-weight:400;
  letter-spacing:.005em;margin-top:-8px;text-shadow:0 1px 18px rgba(15,13,10,.5);
  animation:whero-rise .55s var(--ease) .97s both}
html.static .wh .say2 .sub,body.prm .wh .say2 .sub{animation:none}
@media (prefers-reduced-motion:reduce){.wh .say2 .sub{animation:none}}

/* homepage intro — the manifesto beat between the hero and the measure rail
   (Jack: "an introduction to W Life"; Paul: manifesto elements on the front page) */
.intro{background:var(--cream);padding-block:clamp(56px,7vw,104px)}
.intro .wrap{max-width:1240px;margin-inline:auto;padding-inline:var(--inset)}
.intro .igrid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(28px,4.5vw,72px);align-items:start}
.intro h2{font-size:clamp(1.9rem,3vw,3rem);line-height:1.08;letter-spacing:-.015em;max-width:16ch}
.intro .itext{display:grid;gap:16px}
.intro .itext p{font-size:clamp(1.02rem,1.25vw,1.18rem);line-height:1.6;max-width:56ch}
.stay{margin-top:clamp(40px,5vw,72px);border-top:1px solid var(--hair);padding-top:clamp(28px,3.4vw,44px)}
.stay .stay-lead{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft)}
.stay ul{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:0}
.stay li{font-size:clamp(1.25rem,2vw,1.9rem);line-height:1.3;padding:clamp(12px,1.6vw,18px) 0;border-bottom:1px solid var(--hair)}
.stay li strong{font-weight:600}
.stay .stay-close{margin-top:clamp(18px,2.4vw,28px);font-size:clamp(1.25rem,2vw,1.9rem);font-weight:600}
@media(max-width:880px){
  .intro .igrid{grid-template-columns:1fr;gap:18px}
  .intro h2{max-width:none}
  .stay li{font-size:1.12rem}
  .stay .stay-close{font-size:1.12rem}
}

/* THE COVERING LAYER (10 Sep, Jack's laptop bug — the section after the curtain
   was hidden on scroll). The curtain reserves a spacer of --covh (~100svh) but
   .covers2 (#report) is a fixed ~875px. Once the viewport is taller than ~975px
   the spacer OUTLASTS the section that is supposed to be covering, so the
   still-pinned .cstick2 block is painted over whatever comes next — which is
   static and therefore below every positioned element. Anything following the
   curtain must be in the same layer, not just #report. Since 14 Sep the footer
   IS what follows the curtain (the quotes section was removed — s133), so this
   rule is the whole fix. Do not remove without re-testing at 1440x1080. */
.wfoot{position:relative;z-index:2}

/* footer origin tagline (Paul, 1 Sep) */
.wfoot .ftag{font-family:var(--mono);font-size:.7rem;letter-spacing:.07em;color:rgba(255,247,227,.85);margin-top:16px;max-width:none}

/* contact: register-interest lead-in above the shared form */
.reghead{display:grid;gap:10px;margin-bottom:22px}
.reghead h2{font-size:clamp(1.5rem,2.2vw,2rem)}
.reghead p{color:var(--ink-soft);max-width:52ch}

/* 80/10/10 closing line (Paul, 1 Sep) */
.mdeep .mclose{margin-top:clamp(28px,3.6vw,48px);font-size:clamp(1.25rem,1.9vw,1.75rem);font-weight:600;max-width:none}

/* narrow-desktop header band (2 Sep): "Register your interest" is longer than
   the old CTA, so 881–1080px wrapped the bar. The secondary CTA yields (it
   still lives in the sheet, footer and contact page) and gaps tighten. */
@media(min-width:881px) and (max-width:1080px){
  .site-head .bar{gap:18px}
  .site-nav{gap:16px}
  .head-cta{gap:12px}
  .head-cta .btn2{display:none}
  .head-cta .btn{padding:11px 16px}
}
