
@font-face{font-family:Urbanist;src:url(/assets/fonts/Urbanist-Variable-latin.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Geist Mono";src:url(/assets/fonts/GeistMono-Variable-latin.woff2) format("woff2");font-weight:100 900;font-display:swap}

:root{--h:285;--bg:oklch(.205 .06 var(--h));--ink:oklch(.975 .02 290);--text:oklch(.9 .05 290);--muted:oklch(.8 .1 292);--faint:oklch(.7 .1 290);
--line:oklch(.62 .1 var(--h)/.3);--line-strong:oklch(.72 .12 var(--h)/.5);--card:oklch(.26 .07 var(--h)/.55);--card-hi:oklch(.3 .08 var(--h)/.62);
--mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--sans:Urbanist,system-ui,-apple-system,"Segoe UI",sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{color-scheme:dark;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font:400 1.0625rem/1.7 var(--sans);overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;
background:radial-gradient(60rem 38rem at 10% -6%,color-mix(in oklch,var(--acc) 34%,transparent),transparent 62%),
radial-gradient(52rem 38rem at 98% 6%,color-mix(in oklch,var(--acc2) 42%,transparent),transparent 62%),
radial-gradient(70rem 46rem at 45% 108%,color-mix(in oklch,var(--acc2) 34%,transparent),transparent 66%),
radial-gradient(40rem 30rem at 0% 70%,color-mix(in oklch,var(--acc) 20%,transparent),transparent 70%)}
body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
background-image:radial-gradient(oklch(.85 .1 290/.09) 1px,transparent 1px);background-size:24px 24px;
-webkit-mask-image:linear-gradient(180deg,#000,transparent 70%);mask-image:linear-gradient(180deg,#000,transparent 70%)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:1rem;top:-4rem;z-index:50;background:var(--acc);color:oklch(.2 .06 var(--h));padding:.6rem 1rem;border-radius:10px;font-weight:700}
.skip:focus{top:1rem}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:6px}
a{color:var(--acc);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--ink)}
.wrap{width:min(100% - 2.4rem,68rem);margin-inline:auto}
.top{position:sticky;top:0;z-index:30;backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);
background:oklch(.2 .06 var(--h)/.72);border-bottom:1px solid var(--line);box-shadow:0 1px 0 oklch(1 0 0/.04) inset}
.top .wrap{display:flex;align-items:center;gap:1.4rem;min-height:3.8rem;flex-wrap:wrap;padding-block:.4rem}
.brand{display:inline-flex;align-items:center;gap:.6rem;color:var(--ink);text-decoration:none;font-weight:700;letter-spacing:-.01em;font-size:1.1rem}
.brand .mark{color:var(--acc);filter:drop-shadow(0 0 8px color-mix(in oklch,var(--acc) 55%,transparent))}
.brand small{font:500 .72rem var(--mono);color:var(--faint);letter-spacing:.04em;border:1px solid var(--line);border-radius:999px;padding:.12rem .5rem}
nav ul{display:flex;gap:.15rem;margin:0;padding:0;list-style:none;overflow-x:auto;scrollbar-width:none}
nav a{display:block;padding:.45rem .8rem;border-radius:10px;color:var(--muted);text-decoration:none;font-weight:600;font-size:.97rem;white-space:nowrap}
nav a:hover{color:var(--ink);background:oklch(1 0 0/.05)}
nav a[aria-current=page]{color:var(--ink);background:color-mix(in oklch,var(--acc) 16%,transparent);box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--acc) 38%,transparent)}
@media(min-width:48rem){nav{margin-left:auto}}
@media(max-width:47.99rem){nav{width:100%}}
main{padding-bottom:4rem}
.hero{padding:clamp(2.6rem,7vw,5.2rem) 0 1.6rem}
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;font:500 .76rem var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--acc);margin:0 0 1rem}
.eyebrow::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--acc);box-shadow:0 0 12px var(--acc)}
h1,h2,h3{color:var(--ink);line-height:1.12;letter-spacing:-.02em;margin:0}
h1{font-size:clamp(2.3rem,5.4vw,3.9rem);font-weight:700;max-width:22ch;text-wrap:balance}
.nb{white-space:nowrap}
h2{font-size:clamp(1.55rem,3vw,2.05rem);font-weight:700;margin:3.2rem 0 .9rem;scroll-margin-top:5rem}
h3{font-size:1.2rem;font-weight:700;margin:1.8rem 0 .5rem;scroll-margin-top:5rem}
.lead{font-size:clamp(1.12rem,1.8vw,1.3rem);line-height:1.6;color:var(--text);max-width:42rem;margin:1.2rem 0 0}
p{margin:.8rem 0}
.prose{max-width:46rem}
.prose ul,.prose ol{padding-left:1.3rem}
.prose li{margin:.35rem 0}
.prose li::marker{color:var(--acc)}
.num,td.n,th.n,.stat b{font-family:var(--mono);font-variant-numeric:tabular-nums}
.code{font:600 .85em var(--sans);letter-spacing:.04em;color:var(--muted)}
.meta{font:500 .8rem var(--mono);color:var(--faint);letter-spacing:.02em;margin:.4rem 0 0}
.cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));margin:1.6rem 0}
.card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.3rem 1.4rem;
box-shadow:inset 0 1px 0 oklch(1 0 0/.09),0 24px 40px -28px oklch(.08 .05 var(--h)/.9);backdrop-filter:blur(6px)}
.card::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;border-radius:18px 18px 0 0;background:linear-gradient(90deg,transparent,color-mix(in oklch,var(--acc) 60%,transparent),transparent);opacity:.7}
.card h2,.card h3{margin:0 0 .5rem;font-size:1.18rem}
.card p{margin:.4rem 0;color:var(--text)}
a.stat{text-decoration:none;color:inherit;transition:border-color .18s,background .18s}
a.stat:hover{border-color:var(--line-strong);background:var(--card-hi)}
a.card{display:block;text-decoration:none;color:var(--text);transition:border-color .18s,transform .18s,background .18s}
a.card:hover{border-color:var(--line-strong);background:var(--card-hi);transform:translateY(-2px);color:var(--text)}
a.card .more{display:inline-block;margin-top:.5rem;color:var(--acc);font-weight:700}
.callout{position:relative;margin:1.6rem 0;padding:1.3rem 1.5rem 1.3rem 1.7rem;border-radius:18px;border:1px solid color-mix(in oklch,var(--acc) 40%,transparent);
background:linear-gradient(135deg,color-mix(in oklch,var(--acc) 15%,transparent),color-mix(in oklch,var(--acc2) 9%,transparent));box-shadow:inset 0 1px 0 oklch(1 0 0/.1),0 0 40px -18px var(--acc)}
.callout::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:3px;background:var(--acc);box-shadow:0 0 14px var(--acc)}
.callout h2,.callout h3{margin:0 0 .4rem;font-size:1.15rem}
.callout p{margin:.3rem 0}
.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.6rem 0}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.25rem;border-radius:13px;font-weight:700;text-decoration:none;color:oklch(.19 .06 var(--h));
background:linear-gradient(180deg,color-mix(in oklch,var(--acc) 82%,white),var(--acc));box-shadow:inset 0 1px 0 oklch(1 0 0/.45),0 10px 28px -10px var(--acc);transition:transform .15s,box-shadow .15s}
.btn:hover{color:oklch(.19 .06 var(--h));transform:translateY(-1px);box-shadow:inset 0 1px 0 oklch(1 0 0/.5),0 14px 34px -10px var(--acc)}
.btn.ghost{background:oklch(1 0 0/.04);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-strong)}
.btn.ghost:hover{background:oklch(1 0 0/.08);color:var(--ink)}
.stats{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));margin:1.8rem 0 0}
.stat{padding:.9rem 1.1rem;border:1px solid var(--line);border-radius:14px;background:oklch(.22 .06 var(--h)/.5);box-shadow:inset 0 1px 0 oklch(1 0 0/.06)}
.stat b{display:block;font-size:1.7rem;font-weight:600;color:var(--ink);line-height:1.1}
.stat span{display:block;margin-top:.3rem;font-size:.84rem;color:var(--muted);line-height:1.35}
.tablewrap{overflow-x:auto;margin:1.2rem 0;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:inset 0 1px 0 oklch(1 0 0/.07);-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;font-size:.95rem}
th,td{padding:.62rem .95rem;text-align:left;white-space:nowrap}
thead th{font:500 .72rem var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line-strong);background:oklch(.22 .07 var(--h)/.5)}
tbody th{font-weight:600;color:var(--ink)}
tbody tr+tr th,tbody tr+tr td{border-top:1px solid oklch(.62 .1 var(--h)/.14)}
tbody tr:nth-child(even){background:oklch(1 0 0/.025)}
tbody tr:hover{background:color-mix(in oklch,var(--acc) 8%,transparent)}
td.n,th.n{text-align:right}
td.dim{color:var(--faint)}
.tablewrap:focus-visible{outline-offset:2px}
.chart{margin:1.4rem 0;padding:1.1rem 1.2rem .7rem;border:1px solid var(--line);border-radius:16px;background:oklch(.21 .06 var(--h)/.5);box-shadow:inset 0 1px 0 oklch(1 0 0/.06)}
.brow{display:grid;grid-template-columns:minmax(6.2rem,11rem) 1fr 3.1rem;gap:.8rem;align-items:center;padding:.18rem 0;--rh:var(--ah)}
.bl{font-size:.88rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bv{font:500 .82rem var(--mono);color:var(--ink);text-align:right}
.track{position:relative;display:block;height:.62rem;border-radius:999px;background:oklch(1 0 0/.06);box-shadow:inset 0 1px 2px oklch(0 0 0/.35);
background-image:linear-gradient(90deg,oklch(1 0 0/.1) 1px,transparent 1px);background-size:10% 100%}
.fill{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,color-mix(in oklch,var(--acc) 55%,transparent),var(--acc));box-shadow:0 0 14px -2px color-mix(in oklch,var(--acc) 70%,transparent)}
.brow[style*="--rh"] .fill{background:linear-gradient(90deg,oklch(.62 .15 var(--rh)/.55),oklch(.8 .15 var(--rh)))}
.ci{position:absolute;top:50%;height:2px;margin-top:-1px;background:var(--ink);opacity:.85}
.ci::before,.ci::after{content:"";position:absolute;top:-4px;width:2px;height:10px;background:var(--ink)}
.ci::before{left:0}.ci::after{right:0}
.rline{position:absolute;top:50%;height:2px;margin-top:-1px;background:color-mix(in oklch,var(--acc) 60%,transparent)}
.rbox{position:absolute;top:0;bottom:0;border-radius:4px;background:color-mix(in oklch,var(--acc) 50%,transparent);box-shadow:inset 0 0 0 1px var(--acc)}
.rmed{position:absolute;top:-3px;bottom:-3px;width:3px;margin-left:-1.5px;border-radius:2px;background:var(--ink);box-shadow:0 0 8px var(--ink)}
.brow[style*="--rh"] .rline{background:oklch(.7 .15 var(--rh)/.6)}
.brow[style*="--rh"] .rbox{background:oklch(.7 .15 var(--rh)/.5);box-shadow:inset 0 0 0 1px oklch(.82 .15 var(--rh))}
.axis .track{background:none;box-shadow:none;height:1.1rem}
.axis .track span{position:absolute;top:0;transform:translateX(-50%);font:500 .7rem var(--mono);color:var(--faint)}
.legend-only{margin-top:-.7rem!important}
.chart .legend{display:flex;gap:1.2rem;flex-wrap:wrap;font-size:.8rem;color:var(--muted);margin:.5rem 0 .1rem 0}
.legend i{display:inline-block;vertical-align:middle;margin-right:.4rem}
.legend .l-line{width:1.4rem;height:2px;background:color-mix(in oklch,var(--acc) 60%,transparent)}
.legend .l-box{width:1.1rem;height:.7rem;border-radius:3px;background:color-mix(in oklch,var(--acc) 50%,transparent);box-shadow:inset 0 0 0 1px var(--acc)}
.legend .l-med{width:3px;height:.9rem;border-radius:2px;background:var(--ink)}
.legend .l-ci{width:1.4rem;height:2px;background:var(--ink)}
.dl{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}
.dl a{display:inline-flex;gap:.55rem;align-items:center;padding:.55rem .9rem;border-radius:11px;border:1px solid var(--line-strong);background:oklch(1 0 0/.04);text-decoration:none;font:500 .85rem var(--mono);color:var(--ink)}
.dl a:hover{background:color-mix(in oklch,var(--acc) 14%,transparent);border-color:var(--acc)}
.dl a small{color:var(--faint);font-size:.75rem}
.chip{display:inline-block;font:500 .72rem var(--mono);letter-spacing:.04em;padding:.12rem .5rem;border-radius:7px;border:1px solid oklch(.75 .14 var(--ch,290)/.5);background:oklch(.7 .15 var(--ch,290)/.16);color:oklch(.92 .08 var(--ch,290));vertical-align:middle}
.rev{font:500 .66rem var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:.05rem .4rem;margin-left:.5rem;white-space:nowrap}
.sources{margin-top:3rem;padding-top:1.2rem;border-top:1px solid var(--line);font-size:.92rem;color:var(--muted)}
.sources h2{font-size:1rem;margin:0 0 .6rem;font-family:var(--mono);font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.sources ul{margin:0;padding-left:1.1rem}.sources li{margin:.35rem 0}
.crumbs{font:500 .78rem var(--mono);color:var(--faint);padding-top:1.4rem}
.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--ink)}
.crumbs span{margin:0 .4rem;opacity:.6}
pre{background:oklch(.2 .06 var(--h)/.7);border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem;overflow-x:auto;white-space:pre-wrap;overflow-wrap:anywhere;font:400 .86rem/1.55 var(--mono);color:var(--ink);box-shadow:inset 0 1px 0 oklch(1 0 0/.06)}
code{font-family:var(--mono);font-size:.9em;color:var(--ink)}
details{border:1px solid var(--line);border-radius:14px;background:var(--card);margin:.7rem 0;box-shadow:inset 0 1px 0 oklch(1 0 0/.06)}
summary{cursor:pointer;padding:.95rem 1.2rem;font-weight:700;color:var(--ink);list-style:none;display:flex;justify-content:space-between;gap:1rem}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font:500 1.2rem var(--mono);color:var(--acc);line-height:1}
details[open] summary::after{content:"\2212"}
details[open] summary{border-bottom:1px solid var(--line)}
details .ans{padding:.2rem 1.2rem 1rem}
footer{border-top:1px solid var(--line);background:oklch(.18 .06 var(--h)/.7);padding:2.2rem 0 2.6rem;font-size:.92rem;color:var(--muted)}
footer .cols{display:grid;gap:1.2rem 2.4rem;grid-template-columns:1fr}
@media(min-width:48rem){footer .cols{grid-template-columns:1.1fr 1.6fr}}
footer p{margin:.3rem 0}
footer a{color:var(--text)}footer a:hover{color:var(--acc)}
footer .legal{font-size:.84rem;color:var(--faint)}
@media(max-width:40rem){.brow{grid-template-columns:minmax(5.2rem,8.8rem) 1fr 2.6rem;gap:.5rem}.bl{font-size:.8rem}th,td{padding:.55rem .7rem}.wrap{width:min(100% - 1.6rem,68rem)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
:root{--h:292;--ah:305;--acc:oklch(.79 .17 305);--acc2:oklch(.6 .19 262)}
.hero{display:grid;gap:2rem;grid-template-columns:1fr}
@media(min-width:56rem){.hero{grid-template-columns:1.25fr .75fr;align-items:center}}
.radar{width:100%;max-width:21rem;justify-self:center;overflow:visible}
.radar .rlab text{font:600 11px var(--sans);fill:var(--muted)}
.hero h1{max-width:16ch}
.domain-card{border-top:3px solid oklch(.72 .15 var(--ch));}
.facet{padding:1.2rem 1.35rem;border:1px solid var(--line);border-radius:18px;background:var(--card);margin:1rem 0;box-shadow:inset 0 1px 0 oklch(1 0 0/.08);scroll-margin-top:5rem}
.facet header{display:flex;flex-wrap:wrap;gap:.5rem .8rem;align-items:center}
.facet h3{margin:0;font-size:1.3rem}
.facet .def{margin:.5rem 0 .7rem}
.facet ol{margin:.2rem 0 0;padding-left:1.4rem}.facet li{margin:.25rem 0}.facet li::marker{font-family:var(--mono);color:var(--faint);font-size:.85em}
.azbar{display:flex;flex-wrap:wrap;gap:.35rem;margin:1.2rem 0}
.azbar a{min-width:2.2rem;text-align:center;padding:.3rem .55rem;border-radius:9px;border:1px solid var(--line);font:600 .88rem var(--mono);text-decoration:none;background:oklch(1 0 0/.03)}
.azbar a:hover{border-color:var(--acc);background:color-mix(in oklch,var(--acc) 14%,transparent)}
.letter{font:600 2.2rem var(--mono);color:var(--acc);margin:2.4rem 0 .2rem;letter-spacing:-.02em;text-shadow:0 0 24px color-mix(in oklch,var(--acc) 60%,transparent)}
.pull{font-size:clamp(1.25rem,2.4vw,1.6rem);line-height:1.45;color:var(--ink);font-weight:500;letter-spacing:-.01em;max-width:34rem;margin:1.8rem 0;padding-left:1.2rem;border-left:3px solid var(--acc)}
.steps{counter-reset:s;list-style:none;padding:0}
.steps>li{counter-increment:s;position:relative;padding:.2rem 0 .2rem 3.2rem;margin:1.2rem 0}
.steps>li::before{content:counter(s);position:absolute;left:0;top:.1rem;width:2.2rem;height:2.2rem;border-radius:50%;display:grid;place-items:center;font:600 .95rem var(--mono);color:var(--ink);background:color-mix(in oklch,var(--acc) 18%,transparent);box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--acc) 50%,transparent)}
.steps>li strong{color:var(--ink)}