/* Shared styles for /work pages. Tokens and components mirror the homepage. */
@font-face{font-family:"Geist";font-weight:100 900;font-display:swap;src:url("/assets/fonts/geist.woff2") format("woff2");}
@font-face{font-family:"Geist Mono";font-weight:100 900;font-display:swap;src:url("/assets/fonts/geist-mono.woff2") format("woff2");}

:root{
  --ink:#0B0B0C; --ink-2:#141517; --paper:#FBFAF8; --surface:#FFFFFF; --surface-2:#F3F1EC;
  --muted:#5C6067; --faint:#8A9098; --line:#E7E4DE; --line-dk:#26282B;
  --lime:#C8FA3C; --lime-edge:#8FB800; --lime-ink:#141600; --amber:#F2B33D;
  --maxw:1120px;
  --sans:"Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono:"Geist Mono", ui-monospace, "SF Mono", Consolas, monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:17px; line-height:1.6; letter-spacing:-0.011em; -webkit-font-smoothing:antialiased;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 26px;}
h1,h2,h3,h4{margin:0; font-weight:520; letter-spacing:-0.032em; text-wrap:balance;}
p{margin:0;} a{color:inherit; text-decoration:none;}
.eyebrow{font-family:var(--mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.16em; color:var(--muted);}
::selection{background:var(--lime); color:var(--lime-ink);}
:focus-visible{outline:2px solid var(--lime-edge); outline-offset:3px; border-radius:4px;}
.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}

/* wordmark + buttons */
.wm{font-weight:560; letter-spacing:-0.04em; font-size:1.28rem; display:inline-flex; align-items:center;}
.wm .pivot{position:relative;}
.wm .pivot::after{content:""; position:absolute; left:0; right:0; bottom:0.06em; height:2px; background:var(--lime); border-radius:2px;}
.btn{display:inline-flex; align-items:center; gap:9px; font:inherit; font-weight:500; font-size:.95rem; padding:12px 20px; border-radius:100px; border:1px solid transparent; cursor:pointer; transition:transform .35s cubic-bezier(.2,.7,.2,1), background .15s ease, border-color .15s ease, color .15s ease;}
.btn-primary{background:var(--lime); color:var(--lime-ink);} .btn-primary:hover{background:#d6ff55;}
.btn-ghost{border-color:var(--line-dk); color:var(--paper); background:transparent;} .btn-ghost:hover{border-color:var(--paper);}
.btn-dark{background:var(--ink); color:var(--paper);} .btn-dark:hover{background:#000;}
.btn-line{border-color:var(--ink); color:var(--ink); background:transparent;} .btn-line:hover{background:var(--ink); color:var(--paper);}
.arrow{font-family:var(--mono); font-size:1rem; transform:translateY(-1px);}

/* header */
header.site{position:sticky; top:0; z-index:50; background:rgba(11,11,12,.86); -webkit-backdrop-filter:saturate(140%) blur(12px); backdrop-filter:saturate(140%) blur(12px); border-bottom:1px solid var(--line-dk); color:var(--paper);}
header.site::after{content:""; position:absolute; left:0; bottom:-1px; height:2px; width:100%; background:var(--lime); transform-origin:left; transform:scaleX(var(--sp,0));}
.nav{display:flex; align-items:center; justify-content:space-between; height:66px;}
.nav .wm{color:var(--paper);}
.nav nav{display:flex; gap:28px;}
.nav nav a{font-size:.92rem; color:rgba(255,255,255,.72); position:relative; transition:color .18s ease;}
.nav nav a:hover,.nav nav a.active{color:#fff;}
.nav nav a.active::after{content:""; position:absolute; left:0; right:0; bottom:-7px; height:2px; background:var(--lime); border-radius:2px;}
@media (max-width:860px){ .nav nav{display:none;} }

/* draft notice (removed before publishing) */
.draft{background:var(--amber); color:#2a1b00; font-size:.86rem; font-weight:500; text-align:center; padding:8px 16px;}

/* status + chips */
.status{display:inline-flex; align-items:center; gap:7px; font-family:var(--mono); font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; padding:4px 10px; border-radius:100px; border:1px solid var(--line); background:var(--surface); color:var(--ink); white-space:nowrap;}
.status::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--faint);}
.status.live::before{background:var(--lime-edge); box-shadow:0 0 0 3px rgba(143,184,0,.18);}
.status.building::before{background:var(--amber);}
.status.blueprint::before{background:#7C8CF8;}
.status.rd::before{background:var(--ink);}
.chips{display:flex; flex-wrap:wrap; gap:8px;}
.chip{font-size:.8rem; padding:5px 12px; border-radius:100px; border:1px solid var(--line); background:var(--surface); color:var(--ink); transition:border-color .2s, background .2s;}
a.chip:hover{border-color:var(--ink);}
.tag{font-family:var(--mono); font-size:.72rem; padding:4px 9px; border-radius:6px; background:var(--surface-2); border:1px solid var(--line); color:var(--muted);}

/* hero (dark) */
.hero{background:var(--ink); color:var(--paper); position:relative; overflow:hidden; border-bottom:1px solid var(--line-dk);}
.hero .wrap{padding-top:clamp(64px,10vw,124px); padding-bottom:clamp(56px,8vw,100px); position:relative; z-index:2;}
.hero .eyebrow{color:rgba(255,255,255,.6);}
.hero h1{font-size:clamp(2.4rem,7vw,5rem); line-height:.98; letter-spacing:-0.045em; font-weight:540; max-width:17ch; margin-top:22px;}
.hero h1 .g{color:var(--faint);}
.hero .lede{margin-top:26px; max-width:58ch; font-size:clamp(1.05rem,1.8vw,1.25rem); color:rgba(255,255,255,.72); line-height:1.55;}
.hero-glow{position:absolute; right:-10%; top:-30%; width:min(70vw,780px); height:min(70vw,780px); border-radius:50%; background:radial-gradient(circle, rgba(200,250,60,.14), transparent 62%); z-index:1; pointer-events:none;}
.hstats{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-dk); border:1px solid var(--line-dk); border-radius:16px; overflow:hidden; margin-top:52px;}
.hstats div{background:var(--ink-2); padding:20px 22px;}
.hstats b{display:block; font-family:var(--mono); font-size:clamp(1.8rem,4vw,2.6rem); font-weight:500; letter-spacing:-0.04em; color:var(--lime); line-height:1.05;}
.hstats span{display:block; margin-top:6px; font-size:.86rem; color:rgba(255,255,255,.6);}
@media (max-width:760px){ .hstats{grid-template-columns:1fr 1fr;} }

/* sections */
section.blk{padding:clamp(60px,8vw,108px) 0;}
.sechead{max-width:62ch; margin-bottom:40px;}
.sechead h2{font-size:clamp(1.8rem,4vw,2.7rem); line-height:1.12; letter-spacing:-0.035em; margin-top:12px;}
.sechead p{margin-top:14px; color:var(--muted); font-size:1.06rem;}

/* filter bar */
.filters{position:sticky; top:66px; z-index:20; background:rgba(251,250,248,.92); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.filters .wrap{display:flex; flex-wrap:wrap; gap:8px; padding-top:12px; padding-bottom:12px;}
@media (max-width:760px){ .filters .wrap{flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none;} }
.filters .wrap::-webkit-scrollbar{display:none;}
.fbtn{flex:none; font:inherit; font-size:.86rem; font-weight:500; padding:8px 14px; border-radius:100px; border:1px solid var(--line); background:var(--surface); color:var(--ink); cursor:pointer; transition:background .2s, color .2s, border-color .2s;}
.fbtn:hover{border-color:var(--ink);}
.fbtn[aria-pressed=true]{background:var(--ink); color:var(--paper); border-color:var(--ink);}
.fbtn .ct{font-family:var(--mono); font-size:.72rem; opacity:.6; margin-left:6px;}

/* case cards */
.grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
@media (max-width:820px){ .grid{grid-template-columns:1fr;} }
.card{position:relative; display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:clamp(22px,3vw,30px); overflow:hidden; transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s, border-color .3s, opacity .35s;}
.card::before{content:""; position:absolute; inset:0; background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%), rgba(200,250,60,.16), transparent 62%); opacity:0; transition:opacity .3s; pointer-events:none;}
.card:hover{transform:translateY(-4px); box-shadow:0 24px 48px -28px rgba(11,11,12,.35); border-color:#d7d3cb;}
.card:hover::before{opacity:1;}
.card.hide{display:none;}
.card-top{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap;}
.card .sector{font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted);}
.card h3{font-size:clamp(1.25rem,2.2vw,1.55rem); line-height:1.2; margin-top:18px;}
.card p.sum{color:var(--muted); margin-top:10px; font-size:.97rem;}
.card .kstats{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:22px; padding-top:20px; border-top:1px solid var(--line);}
.card .kstats b{display:block; font-family:var(--mono); font-size:1.5rem; font-weight:500; letter-spacing:-0.04em;}
.card .kstats span{display:block; font-size:.8rem; color:var(--muted); line-height:1.35; margin-top:2px;}
.card .foot{display:flex; justify-content:space-between; align-items:flex-end; gap:12px; margin-top:auto; padding-top:22px;}
.card .more{font-weight:500; font-size:.92rem; white-space:nowrap;}
@media (max-width:560px){ .card .foot{flex-direction:column; align-items:flex-start; gap:16px;} }
.card .more .arrow{display:inline-block; transition:transform .3s;}
.card:hover .more .arrow{transform:translateX(4px);}
.card.dark{background:var(--ink); color:var(--paper); border-color:var(--ink);}
.card.dark .sector,.card.dark p.sum,.card.dark .kstats span{color:rgba(255,255,255,.6);}
.card.dark .kstats{border-top-color:var(--line-dk);}
.card.dark .kstats b{color:var(--lime);}
.card.dark .chip{background:transparent; color:rgba(255,255,255,.8); border-color:var(--line-dk);}
.empty-note{display:none; color:var(--muted); padding:20px 0;}

/* breadth bars */
.bars{display:grid; gap:12px;}
.bar{display:grid; grid-template-columns:170px 1fr 36px; gap:14px; align-items:center; font-size:.92rem;}
.bar .track{height:10px; background:var(--surface-2); border:1px solid var(--line); border-radius:10px; overflow:hidden;}
.bar .track i{display:block; height:100%; width:0; background:var(--ink); border-radius:10px; transition:width 1s cubic-bezier(.2,.7,.2,1);}
.bar b{font-family:var(--mono); font-weight:500; text-align:right;}
.bars.in .track i{width:var(--w);}
@media (max-width:560px){ .bar{grid-template-columns:1fr 30px;} .bar span{grid-column:1/-1; margin-bottom:-6px;} }

/* case page */
.crumbs{font-size:.86rem; color:rgba(255,255,255,.55);}
.crumbs a:hover{color:#fff;}
.case-hero .meta{display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:22px;}
.case-hero .status{background:transparent; color:rgba(255,255,255,.85); border-color:var(--line-dk);}
.case-hero .chip{background:transparent; color:rgba(255,255,255,.8); border-color:var(--line-dk);}
.case-hero a.chip:hover{border-color:var(--paper);}
.case-hero h1{font-size:clamp(2.1rem,5.6vw,4.1rem); max-width:20ch;}
.story{display:grid; grid-template-columns:minmax(0,4fr) minmax(0,7fr); gap:clamp(28px,6vw,90px); align-items:start;}
.story .start{position:sticky; top:96px;}
.story .start h2,.story h2{font-size:clamp(1.4rem,2.6vw,1.9rem); letter-spacing:-0.03em;}
.story .start p{margin-top:14px; color:var(--muted);}
ol.did{list-style:none; counter-reset:d; margin:20px 0 0; padding:0; border-top:1px solid var(--line);}
ol.did li{counter-increment:d; position:relative; padding:18px 0 18px 54px; border-bottom:1px solid var(--line);}
ol.did li::before{content:counter(d,decimal-leading-zero); position:absolute; left:0; top:18px; font-family:var(--mono); font-size:.78rem; color:var(--faint); letter-spacing:.04em;}
ol.did li:hover::before{color:var(--lime-edge);}
@media (max-width:860px){ .story{grid-template-columns:1fr;} .story .start{position:static;} }
.results{background:var(--ink); color:var(--paper); border-radius:22px; padding:clamp(24px,4vw,44px); display:grid; grid-template-columns:minmax(0,4fr) minmax(0,7fr); gap:clamp(20px,5vw,70px);}
.results .eyebrow{color:var(--lime);}
.results h2{font-size:clamp(1.5rem,3vw,2.1rem); margin-top:10px; letter-spacing:-0.03em;}
.results ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px;}
.results li{padding-left:28px; position:relative; color:rgba(255,255,255,.85);}
.results li::before{content:"✓"; position:absolute; left:0; color:var(--lime); font-family:var(--mono);}
@media (max-width:760px){ .results{grid-template-columns:1fr;} }
.stack{display:flex; flex-wrap:wrap; gap:8px; margin-top:18px;}
.next{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
@media (max-width:820px){ .next{grid-template-columns:1fr;} }

/* labs */
.labs{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media (max-width:980px){ .labs{grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .labs{grid-template-columns:1fr;} }
.lab{background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:24px; display:flex; flex-direction:column; transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s;}
.lab:hover{transform:translateY(-3px); box-shadow:0 20px 40px -28px rgba(11,11,12,.35);}
.lab .no{font-family:var(--mono); font-size:.72rem; color:var(--faint);}
.lab h3{font-size:1.18rem; line-height:1.25; margin-top:12px;}
.lab p{color:var(--muted); font-size:.94rem; margin-top:10px;}
.lab .stack{margin-top:auto; padding-top:18px;}

/* CTA band */
.cta{background:var(--ink); color:var(--paper); text-align:center;}
.cta .wrap{padding:clamp(60px,8vw,104px) 26px;}
.cta h2{font-size:clamp(1.9rem,4.6vw,3.2rem); letter-spacing:-0.04em; max-width:20ch; margin:0 auto;}
.cta p{margin:18px auto 0; max-width:52ch; color:rgba(255,255,255,.66);}
.cta .row{display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:32px;}
.private{margin-top:18px; font-size:.84rem; color:var(--faint);}

/* footer */
footer{background:var(--ink); color:rgba(255,255,255,.55); border-top:1px solid var(--line-dk); font-size:.84rem;}
footer .wrap{display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:26px;}
footer a:hover{color:#fff;}

/* motion */
.reveal{opacity:0; transform:translateY(16px); transition:opacity .7s cubic-bezier(.2,.6,.2,1), transform .7s cubic-bezier(.2,.6,.2,1);}
.reveal.in{opacity:1; transform:none;}
.hero h1 .w{display:inline-block; opacity:0; transform:translateY(.36em); filter:blur(8px); animation:wIn 1s cubic-bezier(.2,.7,.2,1) forwards; animation-delay:calc(var(--i) * 70ms + 100ms);}
@keyframes wIn{to{opacity:1; transform:none; filter:none;}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1; transform:none; transition:none;}
  .hero h1 .w{opacity:1; transform:none; filter:none; animation:none;}
  .card,.lab,.bar .track i{transition:none;}
}
