:root{
  --color-bg:#ffffff;--color-bg-alt:#f5f1e8;--color-text:#2d2d2d;--color-muted:#5c5c5c;
  --color-brand:#2e5e8a;--color-brand-hover:#1f4364;--color-brand-ink:#ffffff;
  --rule:rgba(45,45,45,0.16);--rule-ink:rgba(255,255,255,0.32);
  --font-sans:"Segoe UI",system-ui,-apple-system,Arial,sans-serif;
  --space-1:0.25rem;--space-2:0.5rem;--space-3:1rem;--space-4:1.5rem;--space-5:2.5rem;--space-6:4rem;
  --maxw:1200px;--gutter:clamp(1.25rem,5vw,4rem);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:1.0625rem;line-height:1.55;text-wrap:pretty}
a{color:var(--color-brand);text-decoration:none}
a:hover{color:var(--color-brand-hover)}
a:focus-visible{outline:2px solid var(--color-brand);outline-offset:3px}
h1,h2,h3{margin:0;font-weight:700;text-wrap:balance}
p{margin:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:-999px}
.skip:focus{left:var(--space-3);top:var(--space-3);background:var(--color-bg);padding:var(--space-2) var(--space-3);z-index:10}

/* nav */
.nav{border-bottom:2px solid var(--color-text)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-top:1.4rem;padding-bottom:1.4rem;flex-wrap:wrap}
.logo{font-weight:700;font-size:1.75rem;letter-spacing:-0.02em;color:var(--color-text);line-height:1}
.logo:hover{color:var(--color-text)}
.logo span{color:var(--color-brand)}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:clamp(1rem,3vw,2.25rem);align-items:center;font-size:0.95rem;font-weight:600;flex-wrap:wrap}
.nav ul a{color:var(--color-text)}
.nav ul a:hover,.nav ul a[aria-current="page"]{color:var(--color-brand)}
.nav ul a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--color-brand)}
.btn{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--color-brand);color:var(--color-brand-ink);font-weight:600;padding:0.7rem 1.15rem;line-height:1.2}
.btn:hover{background:var(--color-brand-hover);color:var(--color-brand-ink)}
.nav ul a.btn{color:var(--color-brand-ink)}
.btn-lg{font-size:1.15rem;padding:1rem 1.4rem}
.btn-ghost{background:transparent;color:var(--color-text);box-shadow:inset 0 0 0 2px var(--color-text)}
.btn-ghost:hover{background:var(--color-text);color:var(--color-bg)}

/* type */
.eyebrow{font-size:0.8rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--color-brand)}
.eyebrow.muted{color:var(--color-muted)}
.display{font-size:clamp(2.6rem,6.6vw,5.75rem);line-height:0.98;letter-spacing:-0.04em;max-width:13ch}
.h2{font-size:clamp(1.75rem,3.4vw,2.5rem);line-height:1.08;letter-spacing:-0.025em}
.lede{font-size:clamp(1.1rem,1.6vw,1.25rem);color:var(--color-muted);max-width:40rem}
.muted{color:var(--color-muted)}

/* hero */
.hero{padding:clamp(3rem,8vw,5.5rem) 0 clamp(2.5rem,5vw,4rem)}
.hero .wrap{display:flex;flex-direction:column;gap:1.75rem}
.hero .actions{display:flex;gap:var(--space-3);flex-wrap:wrap}
.home-top{display:flex;flex-direction:column;min-height:calc(100svh - 5rem)}
.home-top .hero{flex:1;display:flex;align-items:flex-end}
.home-top .hero .wrap{width:100%;display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:1.75rem clamp(2rem,5vw,4rem);align-items:end}
.home-top .eyebrow{grid-column:1/-1}
.home-top .aside-col{display:flex;flex-direction:column;gap:var(--space-4);padding-bottom:0.6rem}
.home-top .lede{font-size:1.15rem}

/* stage strip */
.strip{display:grid;grid-template-columns:1.6fr 1fr 1fr}
.strip>a{display:flex;flex-direction:column;gap:var(--space-2);padding:1.75rem 2rem 2rem;color:var(--color-text);background:var(--color-bg-alt)}
.strip>a+a{border-left:1px solid var(--rule)}
.strip>a:first-child{background:var(--color-brand);color:var(--color-brand-ink);padding-left:max(var(--gutter),calc((100vw - var(--maxw))/2 + var(--gutter)))}
.strip>a:last-child{padding-right:max(var(--gutter),calc((100vw - var(--maxw))/2 + var(--gutter)))}
.strip>a:hover{background:#ebe5d7}
.strip>a:first-child:hover{background:var(--color-brand-hover)}
.strip .t{display:flex;gap:0.85rem;align-items:baseline}
.num{font-weight:700;line-height:0.85;letter-spacing:-0.04em;color:rgba(45,45,45,0.26)}
.on-brand .num,.strip>a:first-child .num{color:rgba(255,255,255,0.42)}
.strip .num{font-size:2rem}
.strip>a:first-child .num{font-size:2.5rem}
.strip .name{font-size:1.25rem;font-weight:700}
.strip>a:first-child .name{font-size:1.5rem}
.strip p{font-size:0.95rem;color:var(--color-muted)}
.strip>a:first-child p{color:rgba(255,255,255,0.88)}

/* sections */
.section{padding:clamp(3rem,7vw,5rem) 0}
.section.alt{background:var(--color-bg-alt)}
.section-head{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3rem);align-items:end;margin-bottom:var(--space-5)}
.section.ruled{border-top:2px solid var(--color-text)}
.section-head .h2{max-width:20ch}

/* split: sticky heading left, content right */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.75fr);gap:clamp(1.5rem,5vw,4rem);align-items:start}
.split>header{position:sticky;top:2rem;display:flex;flex-direction:column;gap:var(--space-3)}
.recog{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--rule)}
.recog li{border-top:1px solid var(--rule);padding:1.1rem 0;font-size:clamp(1.3rem,2.4vw,1.85rem);font-weight:600;line-height:1.2;letter-spacing:-0.015em}
.recog li:first-child{border-top:2px solid var(--color-text)}
.recog-foot{margin-top:var(--space-4);font-size:1.15rem;max-width:36rem}
.recog-foot strong{color:var(--color-brand)}

/* outcomes */
.outcomes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,2.5rem)}
.outcome{display:flex;flex-direction:column;gap:var(--space-3);border-top:2px solid var(--color-text);padding-top:var(--space-4)}
.outcome h3{font-size:clamp(1.35rem,2vw,1.6rem);letter-spacing:-0.02em;line-height:1.1}
.outcome ul{list-style:none;margin:var(--space-2) 0 0;padding:0;flex:1}
.outcome li{border-top:1px solid var(--rule);padding:0.6rem 0;font-size:0.97rem}
.outcome .tag{font-size:0.75rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--color-brand)}
.outcome .upkeep{display:flex;justify-content:space-between;gap:var(--space-3);align-items:center;border-top:2px solid var(--color-text);padding-top:0.75rem;font-size:0.9rem;font-weight:600}
.outcome .upkeep span:first-child{font-size:0.72rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--color-muted)}
.meter{display:inline-flex;gap:3px}
.meter i{display:block;width:18px;height:8px;background:rgba(45,45,45,0.16)}
.meter i.on{background:var(--color-brand)}

/* honesty */
.honest ol{list-style:none;margin:0;padding:0;counter-reset:h}
.honest li{counter-increment:h;display:grid;grid-template-columns:3rem minmax(0,1fr);border-top:1px solid var(--rule);padding:1.25rem 0;font-size:clamp(1.2rem,2vw,1.5rem);font-weight:600;line-height:1.3;letter-spacing:-0.01em;color:var(--color-brand)}
.honest li::before{content:counter(h,decimal-leading-zero);font-size:0.8rem;font-weight:700;letter-spacing:0.1em;color:var(--color-muted);padding-top:0.45em}
.honest li:first-child{border-top:2px solid var(--color-text)}

/* cta band */
.cta{background:var(--color-brand);color:var(--color-brand-ink)}
.cta .wrap{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-5);padding-top:clamp(3rem,6vw,4.5rem);padding-bottom:clamp(3rem,6vw,4.5rem);flex-wrap:wrap}
.cta .h2{max-width:18ch}
.cta .mail{color:var(--color-brand-ink)}
.cta .mail:hover{color:var(--color-bg-alt)}
.cta-stack{flex-direction:column;align-items:flex-start!important}
.cta p{color:rgba(255,255,255,0.88);margin-top:var(--space-3);max-width:34rem}
.cta .btn{background:var(--color-brand-ink);color:var(--color-brand)}
.cta .btn:hover{background:var(--color-bg-alt);color:var(--color-brand-hover)}

/* stage blocks (how we work) */
.stage-lead{background:var(--color-brand);color:var(--color-brand-ink);padding:clamp(1.75rem,4vw,2.75rem);display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:clamp(1.5rem,4vw,3rem)}
.stage-lead .num{font-size:clamp(3.5rem,7vw,4.75rem)}
.stage-lead h3{font-size:1.9rem;letter-spacing:-0.02em;margin-top:var(--space-2)}
.stage-lead .side{font-size:0.95rem;color:rgba(255,255,255,0.8);margin-top:var(--space-2)}
.stage-lead .say{font-size:1.2rem;font-weight:600;line-height:1.4;margin-bottom:var(--space-3)}
.rows{display:flex;flex-direction:column}
.row{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:var(--space-3);padding:0.65rem 0;border-top:1px solid var(--rule)}
.row:last-child{border-bottom:1px solid var(--rule)}
.row .k{font-size:0.75rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--color-brand);padding-top:0.2rem}
.on-brand .row{border-color:var(--rule-ink)}
.on-brand .row .k{color:rgba(255,255,255,0.75)}
.stage-lead .note{margin-top:var(--space-3);font-size:0.97rem;color:rgba(255,255,255,0.88)}
.stage-lead .note strong{color:var(--color-brand-ink)}
.stage-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,3vw,2.5rem);margin-top:var(--space-5)}
.stage-pair>div{border-top:2px solid var(--color-text);padding-top:var(--space-3)}
.stage-pair .t{display:flex;gap:0.75rem;align-items:baseline;margin-bottom:var(--space-3)}
.stage-pair .num{font-size:2.5rem}
.stage-pair h3{font-size:1.5rem;letter-spacing:-0.015em}
.aside{background:var(--color-bg-alt);padding:1rem 1.25rem;margin-top:var(--space-5);color:var(--color-muted)}
.aside strong{color:var(--color-text)}

/* levels */
.levels{display:flex;flex-direction:column;gap:var(--space-4)}
.level{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:clamp(1.5rem,4vw,3rem);padding:clamp(1.5rem,3vw,2.25rem)}
.level.l1{background:var(--color-brand);color:var(--color-brand-ink)}
.level.l2{background:var(--color-bg-alt)}
.level.l3{box-shadow:inset 0 0 0 2px var(--color-text)}
.level .rows .row:first-child{border-top:0;padding-top:0.2rem}
.level .rows .row:last-child{border-bottom:0}
.level .num{font-size:3rem}
.level h3{font-size:1.6rem;letter-spacing:-0.02em;margin-top:var(--space-2)}
.level .side{font-size:0.95rem;color:var(--color-muted);margin-top:var(--space-2)}
.level.l1 .side{color:rgba(255,255,255,0.8)}
.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,4vw,3rem);margin-top:var(--space-5);border-top:1px solid var(--rule);padding-top:var(--space-4)}
.pair p{font-size:1.2rem;font-weight:600;line-height:1.35;color:var(--color-brand)}
.sizes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,2.5rem)}
.sizes>div{border-top:1px solid var(--rule);padding-top:var(--space-3)}
.sizes .k{font-size:0.75rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--color-brand)}
.sizes p{margin-top:var(--space-2);color:var(--color-muted)}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3rem)}

/* contact */
.mail{font-size:clamp(1.6rem,4.5vw,3.25rem);font-weight:700;letter-spacing:-0.03em;line-height:1.1;border-bottom:3px solid currentColor;padding-bottom:0.15em;overflow-wrap:anywhere}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,2.5rem)}
.steps li{border-top:2px solid var(--color-text);padding-top:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}
.steps .num{font-size:2.25rem}
.steps h3{font-size:1.25rem}
.steps p{color:var(--color-muted)}

/* footer */
.foot{border-top:2px solid var(--color-text)}
.cta+.foot,main:has(>.cta:last-child)+.foot{border-top:0}
.foot .wrap{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-4);padding-top:var(--space-4);padding-bottom:var(--space-5);flex-wrap:wrap}
.foot .logo{font-size:1.25rem}
.foot small{display:block;font-size:0.9rem;color:var(--color-muted);margin-top:var(--space-1)}
.foot nav{display:flex;gap:var(--space-4);font-size:0.95rem;font-weight:600;flex-wrap:wrap}
.foot nav a{color:var(--color-text)}
.foot nav a:hover{color:var(--color-brand)}

@media (max-width:860px){
  .home-top{min-height:0}
  .home-top .hero .wrap{grid-template-columns:minmax(0,1fr)}
  .split>header{position:static}
  .strip,.split,.outcomes,.sizes,.steps,.stage-pair,.pair,.two,.honest,.section-head,.stage-lead,.level{grid-template-columns:minmax(0,1fr)}
  .strip>a+a{border-left:0;border-top:1px solid var(--rule)}
  .strip>a{padding-left:var(--gutter)!important;padding-right:var(--gutter)!important}
  .section-head{align-items:start}
  .row{grid-template-columns:6.5rem minmax(0,1fr)}
}
@media (max-width:560px){
  .nav ul li:not(:last-child){display:none}
  .nav .wrap{flex-wrap:nowrap}
}

/* ---------- motion ---------- */
:root{--ease:cubic-bezier(.2,.7,.2,1)}
.nav{position:sticky;top:0;z-index:20;background:rgba(255,255,255,0.92);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);transition:box-shadow .3s var(--ease)}
.nav .wrap{transition:padding .3s var(--ease)}
.nav.scrolled .wrap{padding-top:0.85rem;padding-bottom:0.85rem}
.home-top{min-height:calc(100svh - 5.25rem)}

/* links: drawn underline */
.nav ul a:not(.btn),.foot nav a{background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat;transition:background-size .35s var(--ease),color .2s}
.nav ul a:not(.btn):hover,.foot nav a:hover{background-size:100% 2px}
.nav ul a[aria-current="page"]{box-shadow:none;background-size:100% 2px}
.mail{border-bottom:0;background:linear-gradient(currentColor,currentColor) 0 100%/100% 3px no-repeat;transition:background-size .45s var(--ease),color .2s}
.mail:hover{background-size:0 3px;background-position:100% 100%}

/* buttons: arrow nudge + press */
.btn{transition:background-color .2s,color .2s,transform .15s var(--ease)}
.btn:active{transform:translateY(1px)}
.btn[href$=".html"]::after,.btn[href^="mailto"]:not(.nav .btn)::after{content:"\2192";display:inline-block;transition:transform .3s var(--ease)}
.btn:hover::after{transform:translateX(4px)}

/* stage strip */
.strip>a{position:relative;overflow:hidden;transition:background-color .3s var(--ease)}
.strip>a::after{content:"\2192";position:absolute;right:2rem;top:1.75rem;font-size:1.25rem;font-weight:700;opacity:0;transform:translateX(-8px);transition:opacity .3s var(--ease),transform .3s var(--ease)}
.strip>a:last-child::after{right:max(var(--gutter),calc((100vw - var(--maxw))/2 + var(--gutter)))}
.strip>a:hover::after{opacity:1;transform:none}
.strip .num{transition:color .3s var(--ease),transform .4s var(--ease);display:inline-block}
.strip>a:hover .num{color:var(--color-brand);transform:translateY(-2px)}
.strip>a:first-child:hover .num{color:#ffffff}

/* hero entrance (CSS only, runs once) */
.motion .hero .eyebrow,.motion .hero .display,.motion .hero .lede,.motion .hero .aside-col,.motion .hero .mail{animation:rise .9s var(--ease) both}
.motion .hero .display{animation-delay:.08s}
.motion .hero .lede,.motion .hero .aside-col{animation-delay:.22s}
.motion .hero .mail{animation-delay:.32s}
.motion .home-top .strip>a{animation:rise .8s var(--ease) both;animation-delay:calc(.35s + var(--s,0) * .08s)}
.motion .home-top .strip>a:nth-child(2){--s:1}
.motion .home-top .strip>a:nth-child(3){--s:2}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* scroll reveal */
.motion .rv{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:calc(var(--i,0) * 70ms)}
.motion .rv.in{opacity:1;transform:none}

/* rules draw in */
.motion .recog li.rv,.motion .honest li.rv,.motion .outcome.rv{border-top-color:transparent;position:relative}
.motion .recog li.rv::after,.motion .outcome.rv::after{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:var(--rule);transform:scaleX(0);transform-origin:left;transition:transform .9s var(--ease);transition-delay:calc(var(--i,0) * 70ms)}
.motion .recog li.rv:first-child::after,.motion .outcome.rv::after{height:2px;top:-2px;background:var(--color-text)}
.motion .recog li.rv.in::after,.motion .outcome.rv.in::after{transform:scaleX(1)}
.motion .honest li.rv{border-top-color:var(--rule)}
.motion .honest li.rv:first-child{border-top-color:var(--color-text)}

/* reading focus on the honesty lines */
.motion .honest li{transition:color .4s var(--ease),opacity .7s var(--ease),transform .7s var(--ease)}
.motion .honest li.in:not(.focus){color:rgba(46,94,138,0.38)}
.honest li.focus{color:var(--color-brand)}

/* upkeep meter fills */
.motion .meter i.on{background:rgba(45,45,45,0.16);transition:background-color .35s var(--ease)}
.motion .meter.in i.on{background:var(--color-brand)}
.motion .meter.in i.on:nth-child(1){transition-delay:.25s}
.motion .meter.in i.on:nth-child(2){transition-delay:.45s}
.motion .meter.in i.on:nth-child(3){transition-delay:.65s}

/* outcomes + levels: quiet lift */
.outcome li,.row{transition:color .2s}
.outcome li:hover{color:var(--color-brand)}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* even line breaks */
.recog li,.outcome li,.outcome h3,.strip p,.honest li,.pair p,.sizes p,.steps p,.lede,.outcome p,.cta p,.row>span:last-child,.side,.note,.aside{text-wrap:balance}

/* policy */
.policy{display:flex;flex-direction:column}
.policy>section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--space-2) clamp(1.5rem,5vw,4rem);padding:var(--space-4) 0;border-top:1px solid var(--rule)}
.policy>section:first-child{border-top:0;padding-top:0}
.policy h2{font-size:1.2rem;letter-spacing:-0.01em;line-height:1.25}
.policy>section>div{display:flex;flex-direction:column;gap:var(--space-3);max-width:40rem}
.policy a{text-decoration:underline;text-underline-offset:3px}
.foot nav a[aria-current="page"]{color:var(--color-brand)}
@media (max-width:860px){.policy>section{grid-template-columns:minmax(0,1fr)}}
