:root{
--bg:#faf9f7;
--bg-alt:#f2f0ec;
--card:#fff;
--sunk:#f4f2ef;
--ink:#17191c;
--mid:#4d525c;
--mute:#666c79;
--line:#e3e0da;
--line-strong:#d2cec6;
--accent:#2E516F;
--accent-ink:#1d3f56;
--accent-soft:#e9f0f5;
--accent-2:#A56944;
--accent-2-ink:#965F3E;
--accent-2-soft:#f6ece5;
--ok:#2f6b48; --ok-bg:#e7f1ea;
--warn:#8a5a26;
--stop:#9a3d34; --stop-bg:#f8eae7;
--t-hero:clamp(2.9rem,7.2vw,6rem);
--t-display:clamp(2.5rem,5vw,3.75rem);
--t-xl:clamp(1.4rem,2.3vw,1.75rem);
--t-lg:1.2rem;
--t-md:1.0625rem;
--t-sm:.9375rem;
--t-xs:.8125rem;
--t-2xs:.6875rem;
--w-display:540;
--w-semi:560;
--w-body:400;
--r:10px;
--r-sm:6px;
--measure:64ch;
color-scheme:light;
}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){
--bg:#0f1113; --bg-alt:#14171a; --card:#181b1f; --sunk:#131619;
--ink:#e9eaed; --mid:#a9aeb8; --mute:#828892;
--line:#252a30; --line-strong:#333a42;
--accent:#8ab4d0; --accent-ink:#a9cbe2; --accent-soft:#17242d;
--accent-2:#d2915f; --accent-2-ink:#d2915f; --accent-2-soft:#2b1e17;
--ok:#74b78e; --ok-bg:#16241c;
--warn:#c79a63;
--stop:#d4837a; --stop-bg:#2a1a18;
color-scheme:dark;
}}
:root[data-theme=dark]{
--bg:#0f1113; --bg-alt:#14171a; --card:#181b1f; --sunk:#131619;
--ink:#e9eaed; --mid:#a9aeb8; --mute:#828892;
--line:#252a30; --line-strong:#333a42;
--accent:#8ab4d0; --accent-ink:#a9cbe2; --accent-soft:#17242d;
--accent-2:#d2915f; --accent-2-ink:#d2915f; --accent-2-soft:#2b1e17;
--ok:#74b78e; --ok-bg:#16241c;
--warn:#c79a63;
--stop:#d4837a; --stop-bg:#2a1a18;
color-scheme:dark;
}
*{box-sizing:border-box}
h1,h2,h3,[id]{scroll-margin-top:5rem}
html{touch-action:manipulation;-webkit-tap-highlight-color:rgba(42,88,117,.18)}
.herowrap,.pwinwrap,footer{
padding-left:max(0px,env(safe-area-inset-left));
padding-right:max(0px,env(safe-area-inset-right))}
.palwrap,.pal .res,.ctxmenu,.side{overscroll-behavior:contain}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--accent);
color:var(--bg);padding:10px 16px;border-radius:0 0 var(--r-sm) 0;
font-size:var(--t-sm);text-decoration:none}
.skip:focus{left:0}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);
font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;
font-size:var(--t-md);line-height:1.65;-webkit-font-smoothing:antialiased;
text-rendering:optimizeLegibility}
a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--accent-ink)}
img{max-width:100%;height:auto}
h1,h2,h3{font-family:Bitter,Georgia,serif;margin:0;text-wrap:balance;
letter-spacing:-.022em;line-height:1.12}
h1{font-size:var(--t-display);font-weight:var(--w-display);
line-height:1;letter-spacing:-.03em}
h2{font-size:var(--t-xl);font-weight:var(--w-semi);line-height:1.1}
h3{font-size:var(--t-md);font-weight:var(--w-semi)}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
.mono,code,pre{font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,monospace}
code{font-size:.86em;background:var(--sunk);padding:.12em .38em;
border-radius:4px;border:1px solid var(--line)}
pre code{background:none;border:none;padding:0}
.eyebrow{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:var(--t-2xs);
letter-spacing:.17em;text-transform:uppercase;color:var(--mute);
display:block;margin-bottom:.7rem}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px 96px}
.narrow{max-width:440px}
.measure{max-width:var(--measure)}
nav{display:flex;align-items:center;gap:22px;padding:16px 24px;
border-bottom:1px solid var(--line);background:var(--bg);
position:sticky;top:0;z-index:20;backdrop-filter:saturate(1.4) blur(6px)}
.brandlock{display:inline-flex;align-items:center;gap:9px;text-decoration:none;
color:var(--ink);overflow:visible}
.brandlock .vmark,.brandlock .vword{display:block;overflow:visible}
.brandlock .vword{flex:none}
.brandlock em{font-style:normal;font-family:"JetBrains Mono",ui-monospace,monospace;
font-size:var(--t-2xs);letter-spacing:.14em;text-transform:uppercase;
color:var(--mute);border:1px solid var(--line-strong);border-radius:3px;
padding:1px 5px;align-self:center}
nav .brandlock{margin-right:4px}
nav a{font-size:var(--t-sm);text-decoration:none;color:var(--mid);
position:relative}
main > nav a::after{content:"";position:absolute;inset:-13px -6px;
border-radius:var(--r-sm)}
nav a:hover,nav a[aria-current]{color:var(--ink)}
nav .right{margin-left:auto;display:flex;gap:18px;align-items:center;
font-size:var(--t-sm);color:var(--mute)}
.herowrap{position:relative;overflow:hidden;isolation:isolate;
min-height:88vh;display:flex;align-items:center;padding-bottom:11rem;
--hero-ink:#f4f2ee; --hero-mid:#a7b0bb; --hero-ground:#0b0d10;
background:var(--hero-ground);color:var(--hero-ink);
border-bottom:1px solid #1b1f24}
.herowrap .wrap{position:relative;z-index:2;width:100%}
.heroglow{position:absolute;inset:-25% -12% -35%;z-index:0;pointer-events:none;
background:
radial-gradient(44% 40% at 24% 26%, rgba(138,180,208,.34) 0%, rgba(138,180,208,.10) 45%, transparent 72%),
radial-gradient(40% 36% at 78% 72%, rgba(210,145,95,.30) 0%, rgba(210,145,95,.09) 46%, transparent 74%),
radial-gradient(70% 60% at 50% 120%, rgba(11,13,16,.9) 0%, transparent 70%);
filter:blur(26px)}
.herobg{position:absolute;left:0;right:0;top:0;height:100%;z-index:1;
color:var(--hero-ink);pointer-events:none}
.strataband{display:block;width:100%;height:100%}
.sb-rows{opacity:.16}
.sb-mark{opacity:.9;filter:drop-shadow(0 0 6px rgba(210,145,95,.55))}
.herocv{position:absolute;inset:0;display:block;width:100%;height:100%;
opacity:0;transition:opacity .3s ease}
.herobg.cv-live .herocv{opacity:1}
.herobg.cv-live .strataband{visibility:hidden}
.hero{padding:0;max-width:none}
.hero .eyebrow{color:var(--hero-mid);margin-bottom:1.4rem}
.hero h1{font-size:var(--t-hero);max-width:15ch;
color:var(--hero-ink);margin-bottom:0}
.hero p.lede{font-size:var(--t-lg);color:var(--hero-mid);
max-width:52ch;margin:26px 0 0}
.hero .cta{margin-top:38px}
.hero .btn{padding:14px 26px;font-size:var(--t-md)}
.hero .btn.ghost{color:var(--hero-ink);border-color:#39414a}
.hero .btn.ghost:hover{color:var(--hero-ink);border-color:var(--hero-ink)}
.hero .ways{color:var(--hero-mid);font-size:var(--t-sm);margin:18px 0 0}
.hero .ways code{color:var(--hero-ink);background:#131619;border-color:#252a30}
.hero .disq{color:#8a9099;font-size:var(--t-xs);max-width:52ch;margin:22px 0 0}
@media(max-width:760px){
.herowrap{min-height:auto;padding:76px 0 5rem}
.hero h1{max-width:none}
}
.pwin{position:relative;z-index:2;margin:0 auto;max-width:min(1280px,94vw);
border:1px solid var(--line-strong);border-radius:14px;overflow:hidden;
background:var(--card);
box-shadow:0 2px 4px rgba(8,10,14,.06),0 24px 48px -12px rgba(8,10,14,.22),
0 48px 96px -24px rgba(8,10,14,.24)}
:root[data-theme=dark] .pwin,
:root:not([data-theme=light]) .pwin{
box-shadow:0 0 0 1px rgba(255,255,255,.07),
0 32px 64px -16px rgba(0,0,0,.75),
0 2px 0 0 rgba(255,255,255,.05) inset}
@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .pwin{
box-shadow:0 2px 4px rgba(8,10,14,.06),0 24px 48px -12px rgba(8,10,14,.22),
0 48px 96px -24px rgba(8,10,14,.24)}}
.pwin-bar{display:flex;align-items:center;gap:8px;padding:11px 14px;
background:var(--bg-alt);border-bottom:1px solid var(--line)}
.pwin-bar i{width:10px;height:10px;border-radius:50%;background:var(--line-strong);
display:block;flex:0 0 auto}
.pwin-url{margin:0 auto;font-family:"JetBrains Mono",ui-monospace,monospace;
font-size:var(--t-2xs);color:var(--mute);letter-spacing:.02em;
background:var(--card);border:1px solid var(--line);border-radius:6px;
padding:4px 14px;max-width:70%;overflow:hidden;text-overflow:ellipsis;
white-space:nowrap}
.pwin-body{display:grid;grid-template-columns:184px minmax(0,1fr);min-height:340px}
.pwin-rail{border-right:1px solid var(--line);background:var(--bg-alt);padding:14px 10px}
.pwin-rail .grp{font-size:var(--t-2xs);letter-spacing:.15em;text-transform:uppercase;
color:var(--mute);padding:12px 10px 5px;
font-family:"JetBrains Mono",ui-monospace,monospace}
.pwin-rail a{display:flex;align-items:center;gap:9px;padding:6px 10px;
border-radius:var(--r-sm);color:var(--mid);text-decoration:none;
font-size:var(--t-sm)}
.pwin-rail a[aria-current]{background:var(--accent-soft);color:var(--accent-ink);
font-weight:var(--w-semi)}
.pwin-rail .ico{opacity:.7}
.pwin-main{padding:18px 20px;min-width:0}
.pwin-head{display:flex;align-items:baseline;gap:10px;margin-bottom:14px;
flex-wrap:wrap}
.pwin-head b{font-family:Bitter,Georgia,serif;font-size:var(--t-lg);
font-weight:var(--w-semi)}
@media(max-width:760px){
.pwin-body{grid-template-columns:1fr}
.pwin-rail{display:none}
}
.hero-vid{position:relative;z-index:2;margin:0 auto;max-width:min(1280px,94vw);
border:1px solid var(--line-strong);border-radius:14px;overflow:hidden;
background:var(--card);
box-shadow:0 2px 4px rgba(8,10,14,.06),0 24px 48px -12px rgba(8,10,14,.22),
0 48px 96px -24px rgba(8,10,14,.24)}
:root[data-theme=dark] .hero-vid,
:root:not([data-theme=light]) .hero-vid{
box-shadow:0 0 0 1px rgba(255,255,255,.07),
0 32px 64px -16px rgba(0,0,0,.75)}
@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .hero-vid{
box-shadow:0 2px 4px rgba(8,10,14,.06),0 24px 48px -12px rgba(8,10,14,.22),
0 48px 96px -24px rgba(8,10,14,.24)}}
.hero-vid video{display:block;width:100%;height:auto;aspect-ratio:1200/760;
background-size:cover;background-position:top center;
background-repeat:no-repeat}
.hero-vid .hv-dark{display:none}
@media(prefers-color-scheme:dark){
:root:not([data-theme=light]) .hero-vid .hv-light{display:none}
:root:not([data-theme=light]) .hero-vid .hv-dark{display:block}
}
:root[data-theme=dark] .hero-vid .hv-light{display:none}
:root[data-theme=dark] .hero-vid .hv-dark{display:block}
:root[data-theme=light] .hero-vid .hv-light{display:block}
:root[data-theme=light] .hero-vid .hv-dark{display:none}
.vplay{position:absolute;right:12px;bottom:12px;width:42px;height:42px;
border-radius:50%;border:1px solid rgba(255,255,255,.28);
background:rgba(20,22,26,.62);color:#fff;cursor:pointer;
display:flex;align-items:center;justify-content:center;
backdrop-filter:blur(4px);transition:background .15s;z-index:3}
.vplay:hover{background:rgba(20,22,26,.85)}
.vplay svg{width:15px;height:15px;display:block}
.vplay .pse{display:none}
.vplay.playing .ply{display:none}
.vplay.playing .pse{display:block}
.pwinwrap{margin-top:-9rem;position:relative;z-index:3;padding-bottom:1rem}
.pwinwrap>.wrap{max-width:min(1330px,96vw)}
.pwin-cap{max-width:62ch;margin:20px auto 0;text-align:center;
color:var(--mute);font-size:var(--t-sm)}
@media(max-width:760px){.pwinwrap{margin-top:-3rem}}
@keyframes rowIn{
from{opacity:0;transform:translateY(10px)}
to{opacity:1;transform:none}
}
@keyframes retire{
0%,28%   {opacity:1;transform:none;filter:none}
46%,100% {opacity:.55;transform:translateY(4px)}
}
@keyframes strike{
0%,30%  {text-decoration-color:transparent}
44%,100%{text-decoration-color:var(--accent-2)}
}
@keyframes arrive{
0%,34%  {opacity:0;transform:translateY(-12px)}
52%,100%{opacity:1;transform:none}
}
@keyframes sheen{
0%,72% {transform:translateX(-120%)}
100%   {transform:translateX(220%)}
}
.pwin{--beat:13s}
.pwin .ev{animation:rowIn .55s cubic-bezier(.2,.7,.3,1) both;
animation-delay:calc(var(--i,0) * .13s + .25s)}
.pwin .ev.retiring{animation:rowIn .55s cubic-bezier(.2,.7,.3,1) both,
retire var(--beat) linear infinite;
animation-delay:calc(var(--i,0) * .13s + .25s), 0s}
.pwin .ev.arriving{animation:arrive var(--beat) cubic-bezier(.2,.7,.3,1) infinite}
.pwin .ev.retiring .said{text-decoration:line-through;
text-decoration-thickness:1.5px;text-decoration-color:var(--accent-2);
animation:strike var(--beat) linear infinite}
.pwin-sheen{position:absolute;inset:0;pointer-events:none;overflow:hidden;
border-radius:14px;z-index:4}
.pwin-sheen::before{content:"";position:absolute;top:0;bottom:0;width:35%;
background:linear-gradient(100deg,transparent,rgba(255,255,255,.07),transparent);
animation:sheen 9s ease-in-out infinite}
:root[data-theme=dark] .pwin-sheen::before,
:root:not([data-theme=light]) .pwin-sheen::before{
background:linear-gradient(100deg,transparent,rgba(255,255,255,.045),transparent)}
@keyframes blink{0%,45%{opacity:1}50%,95%{opacity:.25}100%{opacity:1}}
.pwin-rail a[aria-current] .ico{animation:blink 3.2s ease-in-out infinite}
@supports (animation-timeline: view()) {
@keyframes settle{
from{opacity:0;transform:translateY(14px)}
to{opacity:1;transform:none}
}
.sec > .hd, .panel, .steps, .grid, .ba, .content-feed{
animation:settle .6s cubic-bezier(.2,.7,.3,1) both;
animation-timeline:view();
animation-range:entry 0% cover 30%;
}
}
@supports not (animation-timeline: view()) {
.sec > .hd, .panel, .steps, .grid, .ba, .content-feed{opacity:1;transform:none}
}
html{scroll-behavior:smooth}
.corewrap{position:fixed;left:0;top:0;bottom:0;width:56px;z-index:5;
pointer-events:none;display:none;
padding-left:max(0px,env(safe-area-inset-left))}
@media(min-width:1180px){.corewrap{display:block}}
.corerail{position:absolute;left:14px;top:0;width:33px;height:100%;
color:var(--ink);opacity:.16}
:root[data-theme=dark] .corerail,
:root:not([data-theme=light]) .corerail{opacity:.24}
@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .corerail{opacity:.16}}
@keyframes coreDrift{from{transform:translateY(0)}to{transform:translateY(-7%)}}
.cr-rows{animation:coreDrift 240s linear infinite alternate}
@keyframes descend{from{top:6%}to{top:94%}}
.coremark{position:absolute;left:8px;width:45px;height:2px;
background:var(--accent-2);border-radius:1px;top:6%;
box-shadow:0 0 10px 1px color-mix(in oklab,var(--accent-2) 55%,transparent);
animation:descend linear both;animation-timeline:scroll(root block)}
.coremark::after{content:"";position:absolute;right:-1px;top:-3px;
width:8px;height:8px;border-radius:50%;background:var(--accent-2);
box-shadow:0 0 10px 2px color-mix(in oklab,var(--accent-2) 45%,transparent)}
.coredepth{position:absolute;left:14px;bottom:20px;width:33px;
font-family:"JetBrains Mono",ui-monospace,monospace;font-size:var(--t-2xs);
color:var(--mute);writing-mode:vertical-rl;letter-spacing:.16em;
text-transform:uppercase;white-space:nowrap}
@media(min-width:1180px){
.wrap,.herowrap .wrap,.baband-head,.baband-foot{padding-left:56px}
}
@keyframes glowBreathe{
0%,100%{opacity:.85;transform:scale(1)}
50%    {opacity:1;transform:scale(1.045)}
}
.heroglow{animation:glowBreathe 15s ease-in-out infinite}
.sec > .hd{position:relative;overflow:visible}
.sec > .hd::after{content:"";position:absolute;left:0;right:0;bottom:-1px;
height:1.5px;background:var(--accent);transform:scaleX(0);
transform-origin:left center;
animation:ruleIn .8s cubic-bezier(.2,.7,.3,1) both;
animation-timeline:view();animation-range:entry 15% cover 38%}
@keyframes ruleIn{to{transform:scaleX(1)}}
.figwrap .strata{transform-origin:top center;
animation:accumulate 1.4s cubic-bezier(.16,.8,.3,1) both;
animation-timeline:view();animation-range:entry 5% cover 45%}
@keyframes accumulate{
from{transform:scaleY(.04);opacity:.15}
to{transform:scaleY(1);opacity:1}
}
.steps .step{animation:stepIn .7s cubic-bezier(.2,.7,.3,1) both;
animation-timeline:view();animation-range:entry 8% cover 40%}
.steps .step:nth-child(2){animation-range:entry 14% cover 46%}
.steps .step:nth-child(3){animation-range:entry 20% cover 52%}
@keyframes stepIn{
from{opacity:0;transform:translateY(26px) scale(.985)}
to{opacity:1;transform:none}
}
.steps .step .when{animation:whenIn .5s ease-out both;
animation-timeline:view();animation-range:entry 18% cover 50%}
@keyframes whenIn{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
.ba-then,.ba .side.then{animation:fromLeft .8s cubic-bezier(.2,.7,.3,1) both;
animation-timeline:view();animation-range:entry 10% cover 40%}
.ba-now,.ba .side.now{animation:fromRight .8s cubic-bezier(.2,.7,.3,1) both;
animation-timeline:view();animation-range:entry 10% cover 40%}
@keyframes fromLeft{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}
@keyframes fromRight{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
.grid .stat{animation:statIn .6s cubic-bezier(.2,.7,.3,1) both;
animation-timeline:view();animation-range:entry 6% cover 34%}
.grid .stat:nth-child(2){animation-delay:0s;animation-range:entry 9% cover 37%}
.grid .stat:nth-child(3){animation-range:entry 12% cover 40%}
.grid .stat:nth-child(4){animation-range:entry 15% cover 43%}
.grid .stat:nth-child(5){animation-range:entry 18% cover 46%}
.grid .stat:nth-child(6){animation-range:entry 21% cover 49%}
@keyframes statIn{
from{opacity:0;transform:translateY(20px)}
to{opacity:1;transform:none}
}
.stat .v{display:block;animation:valueIn .7s cubic-bezier(.16,.8,.3,1) both;
animation-timeline:view();animation-range:entry 10% cover 42%}
@keyframes valueIn{from{opacity:0;transform:translateY(70%)}to{opacity:1;transform:none}}
.panel pre.term{position:relative;overflow-x:auto;overflow-y:hidden}
.panel pre.term::after{content:"";position:absolute;top:0;bottom:0;width:40%;
pointer-events:none;
background:linear-gradient(100deg,transparent,
color-mix(in oklab,var(--accent) 22%,transparent),transparent);
transform:translateX(-150%);
animation:codeSweep 1.6s cubic-bezier(.3,.6,.3,1) both;
animation-timeline:view();animation-range:entry 12% cover 55%}
@keyframes codeSweep{to{transform:translateX(320%)}}
.panel{animation:panelIn .75s cubic-bezier(.2,.7,.3,1) both;
animation-timeline:view();animation-range:entry 4% cover 32%}
@keyframes panelIn{
from{opacity:0;transform:translateY(30px) scale(.99)}
to{opacity:1;transform:none}
}
.btn,button{transition:transform .16s cubic-bezier(.2,.7,.3,1),
box-shadow .16s ease,opacity .12s ease}
.btn:hover,button:hover{transform:translateY(-1px)}
.btn:active,button:active{transform:translateY(0)}
.panel,.stat,.card{transition:transform .2s cubic-bezier(.2,.7,.3,1),
box-shadow .2s ease}
.stat:hover{transform:translateY(-2px)}
.sec{margin-top:76px;display:flex;flex-direction:column;gap:18px}
.sec>.hd{display:flex;align-items:baseline;gap:12px;
border-bottom:1px solid var(--line);padding-bottom:11px}
.sec>.hd .muted{margin-left:auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
padding:22px 24px}
.card.pad{padding:30px 32px}
.stack{display:flex;flex-direction:column;gap:16px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:14px}
.feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(248px,100%),1fr));
gap:26px;margin-top:34px}
.feat h3{margin-bottom:6px}
.feat p{margin:0;font-size:var(--t-sm);color:var(--mid)}
.panel{background:var(--card);border:1px solid var(--line-strong);
border-radius:var(--r);overflow:hidden}
.fig{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:var(--t-2xs);
letter-spacing:.14em;text-transform:uppercase;color:var(--mute);
padding:9px 14px;border-bottom:1px solid var(--line);background:var(--sunk);
display:flex;gap:10px;align-items:center}
.fig b{color:var(--mid);font-weight:500}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
@media(max-width:760px){.steps{grid-template-columns:1fr}}
.step{padding:24px;border-right:1px solid var(--line)}
.step:last-child{border-right:none}
.step .when{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:var(--t-2xs);
letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}
.step .said{font-family:Bitter,Georgia,serif;font-size:var(--t-lg);line-height:1.4;
margin:10px 0 12px;color:var(--ink)}
.step .note{font-size:var(--t-sm);color:var(--mid);margin:0;border-left:none;
padding-left:0}
@media(max-width:640px){.step{border-right:none;border-bottom:1px solid var(--line)}
.step:last-child{border-bottom:none}}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
padding:16px 18px}
.stat .k{font-size:var(--t-2xs);letter-spacing:.13em;text-transform:uppercase;
color:var(--mute);font-family:"JetBrains Mono",ui-monospace,monospace}
.stat .v{font-size:var(--t-xl);font-weight:var(--w-semi);margin-top:4px;
font-variant-numeric:tabular-nums;font-family:Bitter,Georgia,serif;
letter-spacing:-.02em}
table{width:100%;border-collapse:collapse;font-size:var(--t-sm)}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line)}
th{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:var(--t-2xs);
letter-spacing:.13em;text-transform:uppercase;color:var(--mute);
font-weight:500}
tr:last-child td{border-bottom:none}
td.n{font-variant-numeric:tabular-nums;white-space:nowrap}
.card:has(> table){overflow-x:auto}
.tblwrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);
background:var(--card)}
label{display:block;font-size:var(--t-xs);color:var(--mute);margin-bottom:5px;
font-family:"JetBrains Mono",ui-monospace,monospace;letter-spacing:.06em;
text-transform:uppercase}
input,select,textarea{width:100%;padding:11px 13px;border:1px solid var(--line-strong);
border-radius:var(--r-sm);background:var(--card);color:var(--ink);font:inherit;
font-size:var(--t-sm)}
input:focus-visible,select:focus-visible,textarea:focus-visible,
button:focus-visible,a:focus-visible,[tabindex]:focus-visible{
outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
input:focus,select:focus,textarea:focus{border-color:var(--accent)}
input[type=range]{padding:0;border:none;background:none}
button,.btn{padding:11px 20px;border:1px solid var(--accent);border-radius:var(--r-sm);
background:var(--accent);color:var(--bg);font:inherit;font-size:var(--t-sm);
font-weight:var(--w-semi);cursor:pointer;text-decoration:none;display:inline-block;
transition:opacity .12s ease}
button:hover,.btn:hover{opacity:.88;color:var(--bg)}
button.ghost,.btn.ghost{background:transparent;color:var(--ink);
border-color:var(--line-strong);font-weight:400}
button.ghost:hover,.btn.ghost:hover{color:var(--ink);border-color:var(--ink)}
button.danger{background:var(--stop);border-color:var(--stop);color:#fff}
.row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.row>div{flex:1;min-width:158px}
.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:var(--t-2xs);
font-family:"JetBrains Mono",ui-monospace,monospace;letter-spacing:.08em;
text-transform:uppercase;border:1px solid transparent}
.p-ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}
.p-off{background:var(--sunk);color:var(--mute);border-color:var(--line-strong)}
.p-stop{background:var(--stop-bg);color:var(--stop);border-color:var(--stop)}
.flash{padding:12px 15px;border-radius:var(--r-sm);font-size:var(--t-sm);
margin-bottom:18px;border:1px solid transparent}
.flash.ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}
.flash.err{background:var(--stop-bg);color:var(--stop);border-color:var(--stop)}
.secret{background:var(--sunk);border:1px dashed var(--accent);
border-radius:var(--r-sm);padding:12px 14px;
font-family:"JetBrains Mono",ui-monospace,monospace;font-size:var(--t-xs);
word-break:break-all;margin:10px 0}
.muted{color:var(--mute);font-size:var(--t-sm)}
.note{border-left:2px solid var(--line-strong);padding-left:16px;color:var(--mid);
font-size:var(--t-sm)}
.candid{border-left:2px solid var(--warn);padding-left:16px;color:var(--mid);
font-size:var(--t-sm)}
pre.term{overflow-x:auto;background:var(--sunk);padding:16px 18px;margin:0;
border-radius:0;font-size:var(--t-xs);line-height:1.6;color:var(--ink)}
footer{border-top:1px solid var(--line);margin-top:72px;padding:22px 0 0;
font-size:var(--t-xs);color:var(--mute);display:flex;gap:16px;flex-wrap:wrap}
footer a{color:var(--mid);text-decoration:none}
footer a:hover{color:var(--ink)}
footer .right{margin-left:auto}
@media(max-width:640px){
.hero{padding:56px 0 28px;max-width:none}
.sec{margin-top:52px}
footer .right{margin-left:0}
}
.strata,.diagram{display:block;color:var(--ink)}
.figwrap{padding:26px 24px;background:var(--bg-alt)}
.figwrap.tight{padding:18px 20px}
.split{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
@media(max-width:860px){.split{grid-template-columns:1fr;gap:26px}}
.ba{display:grid;grid-template-columns:1fr auto 1fr;gap:0;align-items:stretch}
@media(max-width:760px){.ba{grid-template-columns:1fr}}
.ba-half{padding:22px 24px}
.ba-then{background:var(--accent-2-soft)}
.ba-now{background:var(--accent-soft)}
.ba-lbl{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:var(--t-2xs);
letter-spacing:.16em;text-transform:uppercase;margin-bottom:10px}
.ba-then .ba-lbl{color:var(--accent-2-ink)}
.ba-now .ba-lbl{color:var(--accent-ink)}
.ba-said{font-family:Bitter,Georgia,serif;font-size:var(--t-lg);line-height:1.45;
color:var(--ink)}
.ba-meta{font-size:var(--t-xs);color:var(--mute);margin-top:10px}
.ba-arrow{display:flex;align-items:center;justify-content:center;padding:0 6px;
color:var(--mute);font-size:var(--t-lg);background:var(--bg-alt)}
@media(max-width:760px){.ba-arrow{padding:8px 0;transform:rotate(90deg)}}
.ba-then .ba-said{text-decoration:line-through;text-decoration-thickness:1px;
text-decoration-color:var(--accent-2);opacity:.75}
.xplain{background:var(--card);border:1px solid var(--line-strong);
border-radius:var(--r);overflow:hidden;margin-top:22px}
.xq{font-family:Bitter,Georgia,serif;font-size:var(--t-lg);padding:18px 22px;
border-bottom:1px solid var(--line)}
.xcols{display:grid;grid-template-columns:3fr 2fr}
.xcols>div{padding:16px 22px}
.xcols>div+div{border-left:1px solid var(--line);background:var(--accent-2-soft)}
@media(max-width:760px){.xcols{grid-template-columns:1fr}
.xcols>div+div{border-left:none;border-top:1px solid var(--line)}}
.xhd{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:var(--t-2xs);
letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink);
margin-bottom:10px}
.xhd.held{color:var(--accent-2-ink)}
.xr{display:flex;gap:10px;padding:6px 0;font-size:var(--t-sm);color:var(--ink);
align-items:baseline}
.xrk{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:var(--t-2xs);
color:var(--mute);min-width:1.2em;text-align:right}
.xr.xheld s{text-decoration-color:var(--accent-2);text-decoration-thickness:1px}
.xr.xheld .xrk{color:var(--accent-2-ink)}
.xr.xheld em{display:block;font-style:normal;font-size:var(--t-xs);
color:var(--accent-2-ink);margin-top:2px}
.xr.xmore{color:var(--mute);font-size:var(--t-xs)}
.xfoot{display:flex;gap:8px;align-items:center;flex-wrap:wrap;
padding:12px 22px;border-top:1px solid var(--line);font-size:var(--t-xs)}
.xfoot .chip{font-family:"JetBrains Mono",ui-monospace,monospace;
font-size:var(--t-2xs);border:1px solid var(--line-strong);border-radius:3px;
padding:1px 6px;color:var(--mid)}
ul.plain{margin:14px 0 0;padding-left:1.2em;max-width:var(--measure)}
ul.plain li{margin:8px 0;color:var(--ink)}
ul.plain li::marker{color:var(--accent-2)}
.subhd{font-size:var(--t-md);font-weight:var(--w-semi);margin:26px 0 0;
max-width:var(--measure)}
.subhd+ul.plain,.subhd+.candid{margin-top:10px}
.feat.two{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}
.themed{background:none;border:1px solid var(--line-strong);color:var(--mute);
border-radius:var(--r-sm);padding:5px 9px;font-size:var(--t-2xs);cursor:pointer;
font-family:"JetBrains Mono",ui-monospace,monospace;letter-spacing:.08em;
line-height:1;font-weight:400}
.themed:hover{color:var(--ink);border-color:var(--ink);opacity:1}
main > nav .themed{position:relative}
main > nav .themed::after{content:"";position:absolute;inset:-13px -4px;
border-radius:var(--r-sm)}
.themed .on{display:none}
:root[data-theme=dark] .themed .on,
:root:not([data-theme=light]) .themed .on{display:inline}
:root[data-theme=dark] .themed .off,
:root:not([data-theme=light]) .themed .off{display:none}
@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .themed .on{display:none}
:root:not([data-theme=dark]) .themed .off{display:inline}}
.app{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}
.side{border-right:1px solid var(--line);background:var(--bg-alt);
position:sticky;top:0;height:100vh;display:flex;flex-direction:column;
overflow-y:auto}
.side .top{padding:16px 14px 10px}
.side .brandlock{display:grid;grid-template-columns:auto auto;gap:5px 8px;
justify-content:start;align-items:center}
.side .brandlock em{grid-column:1/-1;justify-self:start}
.ctx{display:block;width:100%;text-align:left;margin-top:12px;padding:9px 11px;
border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--card);
color:var(--ink);font:inherit;font-size:var(--t-sm);cursor:pointer;position:relative}
.ctx .lbl{font-size:var(--t-2xs);letter-spacing:.14em;text-transform:uppercase;
color:var(--mute);font-family:"JetBrains Mono",ui-monospace,monospace;display:block}
.ctx b{font-weight:var(--w-semi);display:block;line-height:1.3;
overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ctx.static{cursor:default;background:transparent}
.ctx .caret{position:absolute;right:10px;top:50%;transform:translateY(-25%);
color:var(--mute);font-size:var(--t-2xs)}
.ctxmenu{display:none;margin:6px 0 0;padding:5px;border:1px solid var(--line-strong);
border-radius:var(--r-sm);background:var(--card);max-height:260px;overflow-y:auto}
.ctxmenu.open{display:block}
.ctxmenu a{display:block;padding:6px 9px;border-radius:4px;font-size:var(--t-sm);
color:var(--mid);text-decoration:none}
.ctxmenu a:hover{background:var(--sunk);color:var(--ink)}
.ctxmenu a[aria-current]{background:var(--accent-soft);color:var(--accent-ink);
font-weight:var(--w-semi)}
.ctxmenu .none{padding:6px 9px;font-size:var(--t-xs);color:var(--mute)}
.side nav{display:block;padding:10px 10px 16px;flex:1 0 auto;gap:0;
border-bottom:none;background:transparent;position:static;
backdrop-filter:none;z-index:auto}
.side .grp{font-size:var(--t-2xs);letter-spacing:.15em;text-transform:uppercase;
color:var(--mute);padding:16px 11px 5px;
font-family:"JetBrains Mono",ui-monospace,monospace}
.side nav a{display:flex;align-items:center;gap:10px;padding:7px 11px;
border-radius:var(--r-sm);color:var(--mid);text-decoration:none;font-size:var(--t-sm);
line-height:1.3}
.side nav a:hover{background:var(--sunk);color:var(--ink)}
.side nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent-ink);
font-weight:var(--w-semi)}
.side nav a .ico{flex:0 0 auto;opacity:.75}
.side nav a[aria-current=page] .ico{opacity:1}
.side nav a .cnt{margin-left:auto;font-size:var(--t-2xs);color:var(--mute);
font-family:"JetBrains Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums}
.side .rail{border-top:1px solid var(--line);padding:11px 14px;
display:flex;align-items:center;gap:8px;flex-wrap:wrap;position:sticky;bottom:0;
background:var(--bg-alt)}
.side .rail .who{font-size:var(--t-xs);color:var(--mute);flex:1 1 100%;
overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side .rail form{display:inline}
.side .rail button.ghost{padding:4px 10px;font-size:var(--t-2xs)}
.main{min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:12px;padding:12px 30px;
border-bottom:1px solid var(--line);background:var(--bg);
position:sticky;top:0;z-index:20;min-height:52px}
.crumb{font-size:var(--t-xs);color:var(--mute);display:flex;align-items:center;gap:7px;
flex-wrap:wrap;min-width:0}
.crumb a{color:var(--mid);text-decoration:none}
.crumb a:hover{color:var(--ink)}
.crumb .sep{color:var(--line-strong)}
.crumb b{color:var(--ink);font-weight:var(--w-semi)}
.topbar .acts{margin-left:auto;display:flex;align-items:center;gap:8px}
.content{padding:26px 30px 80px;max-width:1180px;width:100%}
.content>h1{font-size:var(--t-xl);margin-bottom:4px}
.menubtn{display:none}
@media(max-width:900px){
.app{grid-template-columns:1fr}
.side{position:fixed;left:0;top:0;width:250px;z-index:60;
transform:translateX(-100%);transition:transform .16s ease;
box-shadow:0 0 0 100vmax rgba(0,0,0,0);pointer-events:none}
.side.open{transform:none;pointer-events:auto}
.scrim{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:50}
.scrim.open{display:block}
.menubtn{display:inline-flex;align-items:center;padding:5px 10px}
.topbar,.content{padding-left:16px;padding-right:16px}
}
.empty{border:1px dashed var(--line-strong);border-radius:var(--r);
padding:30px 26px;text-align:center;color:var(--mid);background:var(--card)}
.empty .ico{color:var(--mute);opacity:.5;margin-bottom:8px}
.empty h3{font-family:Bitter,Georgia,serif;font-size:var(--t-md);margin-bottom:5px;
color:var(--ink)}
.empty p{font-size:var(--t-sm);color:var(--mute);max-width:46ch;margin:0 auto .9em}
.empty .btn{margin-top:4px}
@keyframes shimmer{0%{opacity:.45}50%{opacity:.85}100%{opacity:.45}}
.skel{background:var(--sunk);border-radius:var(--r-sm);height:14px;
animation:shimmer 1.2s ease-in-out infinite}
.skel.tall{height:58px;border-radius:var(--r)}
.skel+.skel{margin-top:9px}
.skelwrap{padding:2px 0}
.errbox{border:1px solid var(--stop);background:var(--stop-bg);color:var(--stop);
border-radius:var(--r);padding:14px 16px;font-size:var(--t-sm)}
.errbox b{display:block;margin-bottom:3px}
.errbox .btn{margin-top:10px}
.palwrap{display:none;position:fixed;inset:0;z-index:100;
background:rgba(10,12,14,.42);padding:12vh 16px 16px}
.palwrap.open{display:block}
.pal{max-width:560px;margin:0 auto;background:var(--card);border:1px solid var(--line-strong);
border-radius:var(--r);overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.22)}
.pal input{border:none;border-bottom:1px solid var(--line);border-radius:0;
padding:15px 17px;font-size:var(--t-md);background:transparent}
.pal .res{max-height:44vh;overflow-y:auto;padding:6px}
.pal .res a{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:var(--r-sm);
text-decoration:none;color:var(--mid);font-size:var(--t-sm)}
.pal .res a .k{color:var(--ink)}
.pal .res a .h{margin-left:auto;font-size:var(--t-2xs);color:var(--mute)}
.pal .res a.sel,.pal .res a:hover{background:var(--accent-soft);color:var(--accent-ink)}
.pal .res .none{padding:16px;color:var(--mute);font-size:var(--t-sm);text-align:center}
.pal .foot{border-top:1px solid var(--line);padding:8px 14px;font-size:var(--t-2xs);
color:var(--mute);font-family:"JetBrains Mono",ui-monospace,monospace;
display:flex;gap:14px}
kbd{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:var(--t-2xs);
border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:4px;
padding:1px 5px;color:var(--mid);background:var(--card)}
.feed{border:1px solid var(--line);border-radius:var(--r);background:var(--card);
overflow:hidden}
.feed .ev{display:flex;gap:12px;padding:11px 15px;border-bottom:1px solid var(--line);
font-size:var(--t-sm);align-items:flex-start}
.feed .ev:last-child{border-bottom:none}
.feed .ev .t{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:var(--t-2xs);
color:var(--mute);white-space:nowrap;padding-top:3px;min-width:88px}
.feed .ev .w{min-width:0;flex:1}
.feed .ev .w .m{color:var(--mute);font-size:var(--t-xs);margin-top:2px;
display:flex;gap:9px;flex-wrap:wrap}
.pane{display:none}
.pane.on{display:block}
.sublist{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px;
flex-wrap:wrap}
.sublist a{padding:7px 12px;font-size:var(--t-sm);color:var(--mute);text-decoration:none;
border-bottom:2px solid transparent;margin-bottom:-1px}
.sublist a[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent);
font-weight:var(--w-semi)}
@media(prefers-reduced-motion:reduce){
*,*::before,*::after{
transition-duration:.01ms!important;
animation-duration:.01ms!important;
animation-iteration-count:1!important;
scroll-behavior:auto!important;
animation-timeline:auto!important}
.coremark,.coredepth{display:none}
}
@media(max-width:760px){
main > nav{overflow-x:auto;gap:16px;padding:12px 22px 12px 16px;
-webkit-overflow-scrolling:touch;scrollbar-width:none;
-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent);
mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent)}
main > nav::-webkit-scrollbar{display:none}
main > nav:not(:hover):has(> :last-child:only-child){mask-image:none}
main > nav::-webkit-scrollbar{display:none}
main > nav > *{flex:0 0 auto}
}
.vmodal{border:1px solid var(--line);border-radius:10px;background:var(--card);
--vm-h:min(640px,calc(100vh - 80px));
color:var(--ink);padding:0;width:min(920px,calc(100vw - 48px));
height:var(--vm-h);overflow:hidden}
.vmodal::backdrop{background:rgba(0,0,0,.55)}
.vmodal-hd{display:flex;align-items:center;gap:10px;padding:12px 14px;
border-bottom:1px solid var(--line)}
.vmodal-hd h2{margin:0;font-size:var(--t-lg);letter-spacing:-.01em}
.vmodal-hd form{margin-left:auto}
.vmodal-hd button{background:none;border:0;color:var(--mute);cursor:pointer;
font-size:var(--t-lg);line-height:1;padding:2px 6px;border-radius:5px}
.vmodal-hd button:hover{background:var(--sunk);color:var(--ink)}
.vmodal-body{display:grid;grid-template-columns:186px minmax(0,1fr);
height:calc(var(--vm-h) - 50px)}
.vmodal-body > input[type=radio]{position:absolute;opacity:0;pointer-events:none;
width:1px;height:1px}
.vtabs{display:flex;flex-direction:column;gap:1px;padding:12px 10px;
border-right:1px solid var(--line);background:var(--bg-alt);overflow-y:auto}
.vtabs label{display:flex;align-items:center;gap:10px;padding:7px 11px;
border-radius:var(--r-sm);cursor:pointer;font-size:var(--t-sm);
color:var(--mid);line-height:1.3;
text-transform:none;letter-spacing:0;font-family:inherit;
font-weight:var(--w-body);margin:0}
.vtabs label .ico{flex:0 0 auto;opacity:.75}
.vtabs label:hover{background:var(--sunk);color:var(--ink)}
.vpanes{padding:16px 18px;overflow-y:auto;min-width:0}
.vpane{display:none}
.vpane h3{margin:0 0 4px;font-size:var(--t-md)}
.vpane .paneh{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.vpane .paneh h3{margin:0}
.vpane .paneh .cnt{margin-left:auto;font-size:var(--t-2xs);color:var(--mute);
font-variant-numeric:tabular-nums}
.p-warn{background:var(--warn-bg,var(--sunk));color:var(--mute);
border-color:var(--line)}
.row-kv{display:grid;grid-template-columns:150px minmax(0,1fr);
gap:6px 12px;font-size:var(--t-sm);margin:10px 0 16px}
.row-kv dt{color:var(--mute)}
.row-kv dd{margin:0}
.vpane form{margin-top:10px}
.vpane .note{font-size:var(--t-xs);color:var(--mute);max-width:52ch}
#vst-a:checked ~ .vtabs label[for=vst-a],
#vst-k:checked ~ .vtabs label[for=vst-k],
#vst-r:checked ~ .vtabs label[for=vst-r],
#vst-p:checked ~ .vtabs label[for=vst-p]{background:var(--accent-soft);
color:var(--accent-ink);font-weight:var(--w-semi)}
#vst-a:checked ~ .vtabs label[for=vst-a] .ico,
#vst-k:checked ~ .vtabs label[for=vst-k] .ico,
#vst-r:checked ~ .vtabs label[for=vst-r] .ico,
#vst-p:checked ~ .vtabs label[for=vst-p] .ico{opacity:1}
#vst-a:focus-visible ~ .vtabs label[for=vst-a],
#vst-k:focus-visible ~ .vtabs label[for=vst-k],
#vst-r:focus-visible ~ .vtabs label[for=vst-r],
#vst-p:focus-visible ~ .vtabs label[for=vst-p]{outline:2px solid var(--accent);
outline-offset:1px}
#vst-a:checked ~ .vpanes .vp-a,
#vst-k:checked ~ .vpanes .vp-k,
#vst-r:checked ~ .vpanes .vp-r,
#vst-p:checked ~ .vpanes .vp-p{display:block}
.provrow{border:1px solid var(--line);border-radius:8px;padding:11px 13px 12px;
margin:0 0 8px;background:var(--bg-alt)}
.provrow:focus-within{border-color:var(--accent)}
.provtop{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.provname{font-weight:600;font-size:var(--t-sm);letter-spacing:-.005em}
.provstate{margin-left:auto;display:flex;align-items:center;gap:5px;
font-size:var(--t-2xs);color:var(--mute);
font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,monospace}
.provstate .sep{opacity:.45}
.provstate .dot{width:6px;height:6px;border-radius:50%;flex:0 0 auto;
background:var(--line);border:1px solid var(--mute)}
.provstate .dot.on{background:var(--ok);border-color:var(--ok)}
.provin{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.provin input.secret{flex:1 1 190px;min-width:0;width:auto;height:31px;
padding:0 10px;font-size:var(--t-xs);background:var(--card);color:var(--ink);
border:1px solid var(--line);border-radius:6px;
font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
letter-spacing:.06em;-webkit-text-security:disc;text-security:disc}
.provin input.secret::placeholder{-webkit-text-security:none;text-security:none;
color:var(--mute);opacity:.55;letter-spacing:.12em}
.provin input.secret:focus{outline:none;border-color:var(--accent)}
.provin select{flex:1 1 180px;min-width:0;width:auto;height:31px;padding:0 9px;
font-size:var(--t-xs);background:var(--card);color:var(--ink);
border:1px solid var(--line);border-radius:6px}
.provin input:not(.secret){flex:1 1 180px;min-width:0;width:auto;height:31px;
padding:0 10px;font-size:var(--t-xs);background:var(--card);color:var(--ink);
border:1px solid var(--line);border-radius:6px}
.provin .btn{flex:0 0 auto;height:31px;padding:0 14px;font-size:var(--t-xs)}
.linkbtn{flex:0 0 auto;background:none;border:0;padding:4px 2px;cursor:pointer;
color:var(--mute);font-family:inherit;font-size:var(--t-2xs);
text-decoration:underline;text-underline-offset:2px}
.linkbtn:hover{color:var(--stop)}
.vpane table{font-size:var(--t-xs)}
.vpane .tblwrap{max-height:210px;overflow:auto}
.side .whobtn{display:flex;align-items:center;gap:8px;width:100%;
background:none;border:1px solid transparent;border-radius:6px;cursor:pointer;
padding:6px 8px;text-align:left;color:var(--mute);font-size:var(--t-2xs);
font-family:inherit;text-decoration:none}
.side .whobtn:hover{background:var(--sunk);color:var(--ink);border-color:var(--line)}
.side .whobtn .em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.side .whobtn .cogi{margin-left:auto;flex:0 0 auto;opacity:.7}
.themechoice{display:flex;gap:6px;margin-top:8px}
.themechoice button{flex:1;padding:8px 10px;border:1px solid var(--line);
border-radius:6px;background:var(--bg-alt);color:var(--ink);cursor:pointer;
font-family:inherit;font-size:var(--t-xs)}
.themechoice button:hover{border-color:var(--accent);color:var(--accent)}
@media(max-width:640px){
.vmodal-body{grid-template-columns:1fr}
.vtabs{flex-direction:row;overflow-x:auto;border-right:none;
border-bottom:1px solid var(--line);padding:8px}
.vtabs label{white-space:nowrap;border-left:none;border-bottom:2px solid transparent}
}
.docs{display:grid;grid-template-columns:236px minmax(0,1fr);
gap:0;max-width:1180px;margin:0 auto;padding:0 24px;align-items:start}
.docnav{position:sticky;top:0;align-self:start;max-height:100vh;overflow-y:auto;
padding:34px 22px 40px 0;border-right:1px solid var(--line)}
.app .docnav{top:64px;max-height:calc(100vh - 64px)}
.app .docs{padding:0;margin:0;max-width:none}
.docnav-in{display:flex;flex-direction:column;gap:1px}
.docnav .dgrp{font-family:"JetBrains Mono",ui-monospace,monospace;
font-size:var(--t-2xs);letter-spacing:.14em;text-transform:uppercase;
color:var(--mute);margin:18px 0 6px}
.docnav .dgrp:first-child{margin-top:0}
.docnav a{display:block;padding:4px 10px;margin-left:-10px;border-radius:5px;
font-size:var(--t-sm);line-height:1.35;color:var(--mute);text-decoration:none;
border-left:2px solid transparent}
.docnav a:hover{color:var(--ink);background:var(--sunk)}
.docnav a[aria-current]{color:var(--accent);border-left-color:var(--accent);
background:var(--sunk);font-weight:600}
.docmain{padding:34px 0 90px 40px;min-width:0}
.dochead{padding-bottom:10px;margin-bottom:6px}
.dochead h1{margin:8px 0 10px;font-size:var(--t-xl);line-height:1.2;
letter-spacing:-.015em;max-width:26ch}
.dochead .lede{max-width:64ch}
.docsec{scroll-margin-top:24px;padding:28px 0;border-top:1px solid var(--line)}
.docsec:first-of-type{border-top:none}
.docsec > h2{font-size:var(--t-xl);margin:0 0 12px;letter-spacing:-.01em}
.docsec > p{max-width:68ch}
.docsec .tblwrap{margin-top:14px}
.docsec .feat{margin-top:6px}
.docmain footer{margin-top:40px;padding-top:20px;border-top:1px solid var(--line)}
@media(max-width:900px){
.docs{grid-template-columns:1fr;padding:0 16px}
.docnav{position:static;max-height:none;border-right:none;
border-bottom:1px solid var(--line);padding:12px 0;overflow-x:auto}
.docnav-in{flex-direction:row;gap:4px;align-items:center;width:max-content}
.docnav .dgrp{margin:0 4px 0 12px}
.docnav .dgrp:first-child{margin-left:0}
.docnav a{white-space:nowrap;border-left:none;border-bottom:2px solid transparent;
margin-left:0;border-radius:4px}
.docnav a[aria-current]{border-left-color:transparent;border-bottom-color:var(--accent)}
.docmain{padding:20px 0 60px}
}
.app{font-size:var(--t-sm);line-height:1.45}
.app .content{padding:16px 20px 56px;max-width:1560px}
.app .sec{margin-top:26px;gap:10px}
.app h1{font-size:1.3rem;line-height:1.25;letter-spacing:-.01em;margin:0}
.app h2{font-size:1rem;letter-spacing:normal}
.app .hd{align-items:center}
.app table{font-size:var(--t-xs)}
.app th,.app td{padding:5px 10px;line-height:1.4}
.app thead th{position:sticky;top:0;z-index:2;background:var(--bg-alt);
font-size:var(--t-2xs);letter-spacing:.08em;text-transform:uppercase;
color:var(--mute);white-space:nowrap;padding-top:6px;padding-bottom:6px}
.app tbody tr:hover{background:var(--sunk)}
.app td.n,.app th.n{text-align:right;font-variant-numeric:tabular-nums}
.app .feed .ev{padding:5px 10px;font-size:var(--t-xs);line-height:1.4}
.app .feed .ev .w{display:flex;align-items:baseline;gap:8px;min-width:0}
.app .feed .ev .w .m{display:flex;align-items:baseline;gap:8px;min-width:0;
overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.app .feed .ev .w .m span{overflow:hidden;text-overflow:ellipsis}
.app .feed .ev .t{flex:0 0 auto;font-variant-numeric:tabular-nums}
.app .stat{padding:8px 10px;border-radius:4px}
.app .grid{gap:8px}
.app .tag{display:inline-block;padding:0 6px;border:1px solid var(--line);
border-radius:4px;background:var(--sunk);color:var(--mute);
font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
font-size:var(--t-2xs);line-height:17px;white-space:nowrap}
.app .fbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;
margin:0 0 10px;padding:8px;background:var(--bg-alt);
border:1px solid var(--line);border-radius:6px}
.app .fbar input[type=search],.app .fbar select{height:28px;padding:0 8px;
font-size:var(--t-xs);background:var(--card);color:var(--ink);
border:1px solid var(--line);border-radius:4px;
width:auto;max-width:100%}
.app .fbar input[type=search]{flex:1 1 150px;min-width:120px}
.app .fbar select{flex:0 1 auto;max-width:148px;min-width:0}
.app .fbar .btn{height:28px;padding:0 12px;font-size:var(--t-xs)}
.app .fchips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;
margin:0 0 12px;font-size:var(--t-2xs)}
.app .fchip{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;
border:1px solid var(--accent);border-radius:999px;color:var(--accent);
background:transparent;text-decoration:none;line-height:16px}
.app .fchip span{opacity:.65;font-weight:600}
.app .fchip:hover{background:var(--sunk)}
.app .fclear{color:var(--mute);text-decoration:underline;margin-left:4px}
.app .hd .rank{display:inline-flex;align-items:center;justify-content:center;
width:17px;height:17px;border-radius:50%;border:1px solid var(--line);
background:var(--sunk);color:var(--mute);font-size:var(--t-2xs);
font-variant-numeric:tabular-nums;flex:0 0 auto}
.app .hd .cnt{margin-left:auto;font-size:var(--t-2xs);color:var(--mute);
font-variant-numeric:tabular-nums}
.app .hd .cnt .muted{font-variant-numeric:normal}
.app .stat,.app .grid,.app .content-feed,.app .sec,.app .card,.app table,
.app .feed,.app .tblwrap,.app .hd,
.app .stat *,.app .grid *,.app .card *{animation:none!important;
animation-timeline:auto!important;opacity:1!important;transform:none!important}
.app td > .muted{display:inline;margin-left:7px}
@media(min-width:901px){
.app{grid-template-columns:216px minmax(0,1fr)}
.app > .side{position:fixed;top:0;left:0;width:216px;height:100vh}
.app > .main{grid-column:2}
}
.wshead{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
margin-bottom:2px}
.wshead h1{font-size:var(--t-xl)}
.wsmeta{color:var(--mute);font-size:var(--t-sm)}
.wstabs{display:flex;gap:2px;margin:14px 0 22px;border-bottom:1px solid var(--line);
overflow-x:auto;scrollbar-width:none}
.wstabs::-webkit-scrollbar{display:none}
.wstabs a{flex:0 0 auto;display:flex;align-items:center;gap:7px;
padding:9px 13px;margin-bottom:-1px;font-size:var(--t-sm);color:var(--mute);
text-decoration:none;border-bottom:2px solid transparent;white-space:nowrap;
border-radius:var(--r-sm) var(--r-sm) 0 0}
.wstabs a .ico{opacity:.7}
.wstabs a:hover{color:var(--ink);background:var(--sunk)}
.wstabs a[aria-current=page]{color:var(--accent-ink);border-bottom-color:var(--accent);
font-weight:var(--w-semi)}
.wstabs a[aria-current=page] .ico{opacity:1}
.wsjump{margin-left:auto;position:relative}
.wsjump>button{display:flex;align-items:center;gap:7px;background:var(--card);
border:1px solid var(--line-strong);border-radius:var(--r-sm);cursor:pointer;
padding:5px 11px;font:inherit;font-size:var(--t-xs);color:var(--mid)}
.wsjump>button:hover{border-color:var(--mute);color:var(--ink)}
.wsjump .ctxmenu{position:absolute;right:0;top:calc(100% + 5px);z-index:30;
min-width:230px;max-height:60vh;overflow-y:auto;margin:0}
@media(max-width:760px){
.wsjump{margin-left:0;width:100%}
.wsjump .ctxmenu{left:0;right:auto}
}
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:120ms;
animation-timing-function:cubic-bezier(.2,.7,.3,1)}
@media(prefers-reduced-motion:reduce){
@view-transition{navigation:none}
}
html.swapping{cursor:progress}
html.swapping .content{opacity:.55;transition:opacity .18s ease .15s}
:root:has(.app){overscroll-behavior-y:none}
.phead{position:relative;isolation:isolate;overflow:hidden;
background:var(--bg-alt);border-bottom:1px solid var(--line);
padding:4.2rem 0 2.8rem;margin-bottom:2.6rem}
.phead>.wrap{position:relative;z-index:1;padding-bottom:0}
.phead .eyebrow{display:block;color:var(--accent-ink);margin-bottom:1.15rem}
.phead h1{max-width:22ch}
.phead .lede{font-size:var(--t-lg);color:var(--mid);max-width:60ch;
margin:1.15rem 0 0}
.phead .pmeta{margin:1.4rem 0 0;display:flex;flex-wrap:wrap;gap:.55rem .9rem;
align-items:center}
.phead .pstrata{position:absolute;inset:0 0 -1px auto;width:min(52%,680px);
z-index:0;color:var(--ink);pointer-events:none;
-webkit-mask-image:linear-gradient(90deg,transparent,#000 62%);
mask-image:linear-gradient(90deg,transparent,#000 62%)}
.phead .pstrata .strataband{width:100%;height:100%}
.phead .pstrata .sb-rows{opacity:.09}
.phead .pstrata .sb-mark{opacity:.42;filter:none}
@media(max-width:760px){
.phead{padding:2.9rem 0 2rem;margin-bottom:2rem}
.phead .pstrata{width:64%;
-webkit-mask-image:linear-gradient(90deg,transparent,#000 82%);
mask-image:linear-gradient(90deg,transparent,#000 82%)}
}
.band{padding:4.2rem 0 4.6rem;margin:4.6rem 0}
.band>.wrap{padding-bottom:0}
.band-deep{background:#14161a;color:#e9eaed;border-block:1px solid #262b32;
--bg:#14161a;--bg-alt:#191d22;--card:#1a1e24;--ink:#e9eaed;--mid:#a9aeb8;
--mute:#8a9099;--line:#262b32;--line-strong:#333a43;
--accent:#8ab4d0;--accent-ink:#a9cbe2;--accent-soft:#17242d;
--accent-2:#c98d63;--accent-2-soft:#2a2019}
.band-tint{background:var(--accent-soft)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .band-tint{--mute:#8a9099}}
:root[data-theme=dark] .band-tint{--mute:#8a9099}
.band .hd h2{color:var(--ink)}
.vrow{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,4fr);
gap:2.6rem;align-items:center;margin-top:2.8rem}
.vrow:first-of-type{margin-top:2.2rem}
.vrow:nth-of-type(even){direction:rtl}
.vrow>*{direction:ltr;min-width:0}
.vrow h3{font-family:Bitter,Georgia,serif;font-size:var(--t-xl);
font-weight:var(--w-semi);letter-spacing:-.01em;margin-bottom:.55rem}
.vrow .vtext p{color:var(--mid);max-width:44ch}
@media(max-width:840px){
.vrow,.vrow:nth-of-type(even){display:block;direction:ltr}
.vrow .vtext{margin-top:1.1rem}
}
.pwin.scene{max-width:none;border-radius:16px;--beat:11s}
.scene .pwin-bar{padding:9px 12px}
.scene .pwin-sheen{border-radius:16px}
.sbody{padding:16px 18px;min-height:212px}
.sbody-2col{display:grid;grid-template-columns:3fr 2fr;gap:0;padding:0}
.sbody-2col>div{padding:14px 16px;min-width:0}
.sbody-2col>.sheld{border-left:1px solid var(--line);
background:var(--accent-2-soft)}
@media(max-width:520px){.sbody-2col{grid-template-columns:1fr}
.sbody-2col>.sheld{border-left:none;border-top:1px solid var(--line)}}
.scene .pwin-head{margin-bottom:10px}
.sask{font-family:Bitter,Georgia,serif;font-size:var(--t-md);color:var(--ink);
padding-bottom:11px;margin-bottom:11px;border-bottom:1px solid var(--line);
position:relative}
.sask::after{content:"";display:inline-block;width:2px;height:1em;
background:var(--accent);margin-left:3px;vertical-align:-.14em;
animation:blink 1.1s steps(1) infinite}
.shd{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:var(--t-2xs);
letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink);
margin-bottom:9px}
.shd.held{color:var(--accent-2-ink)}
.sf{display:flex;gap:9px;align-items:baseline;padding:5px 0;
font-size:var(--t-sm);color:var(--ink)}
.sfk{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:var(--t-2xs);
color:var(--mute);min-width:1.1em;text-align:right;flex:0 0 auto}
.sfheld .sfk{color:var(--accent-2-ink)}
.sfheld s{text-decoration-color:var(--accent-2);text-decoration-thickness:1.5px}
.sfheld em{display:block;font-style:normal;font-size:var(--t-xs);
color:var(--accent-2-ink);margin-top:1px}
.schips{display:flex;gap:7px;flex-wrap:wrap;align-items:center;
margin-top:13px;padding-top:11px;border-top:1px solid var(--line);
font-size:var(--t-xs)}
.schips .chip{font-family:"JetBrains Mono",ui-monospace,monospace;
font-size:var(--t-2xs);border:1px solid var(--line-strong);border-radius:3px;
padding:1px 6px;color:var(--mid)}
.scene-withheld .sfheld s{animation:strike var(--beat) linear infinite}