@font-face{font-family:Inter;font-weight:500;font-display:swap;src:url(/assets/fonts/inter-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:Inter;font-weight:700;font-display:swap;src:url(/assets/fonts/inter-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:Inter;font-weight:800;font-display:swap;src:url(/assets/fonts/inter-latin-800-normal.woff2) format('woff2')}
@font-face{font-family:InterFallback;src:local('Arial');size-adjust:107%;ascent-override:90%;descent-override:22%;line-gap-override:0%}
:root{--ink:#121316;--panel:#17191d;--panel2:#1d2025;--raise:#262a30;--line:rgba(242,239,232,.09);--line2:rgba(242,239,232,.18);--text:#f2efe8;--muted:#9a9ca3;--faint:#6b6e76;--hat:#ffb020;--down:#ff5a4e;--r:10px;--r-lg:14px;--r-xl:16px;--bar:68px;--t:180ms;--font:Inter,InterFallback,"Segoe UI",system-ui,-apple-system,Roboto,sans-serif;--mono:Consolas,"JetBrains Mono",monospace}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--bar) + 20px)}
body{background:var(--ink);color:var(--text);font:500 16px/1.65 var(--font);-webkit-font-smoothing:antialiased}
a{color:var(--hat);text-decoration:none}
img{max-width:100%;display:block}
ul,ol{list-style:none}
.hidden{display:none!important}
:focus-visible{outline:2px solid var(--hat);outline-offset:2px}
.skip{position:absolute;left:-999px;top:8px;z-index:60;padding:9px 14px;border-radius:var(--r);background:var(--hat);color:var(--ink);font-weight:700}.skip:focus{left:12px}
/* top bar */
.top{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:20px;height:calc(var(--bar) + 3px);padding:0 24px;background:var(--panel);border-top:3px solid var(--hat);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px;color:var(--text);font-size:16px;font-weight:800;letter-spacing:3px}
.brand img{width:30px;height:30px}.brand em{font-style:normal;color:var(--muted);font-size:14px;font-weight:700;letter-spacing:0}
.search{position:relative;flex:1;max-width:460px;margin-left:12px}
.search input{width:100%;padding:9px 40px 9px 14px;border:1px solid var(--line2);border-radius:var(--r);background:var(--ink);color:var(--text);font:inherit;font-size:14px}
.search input::placeholder{color:var(--muted)}
.search input:focus{outline:none;border-color:var(--hat)}
.search kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);font:12px var(--mono);color:var(--muted);border:1px solid var(--line2);border-radius:5px;padding:0 6px}
.results{position:absolute;top:46px;left:0;right:0;background:var(--panel2);border:1px solid var(--line2);border-radius:var(--r-lg);max-height:60vh;overflow:auto;padding:6px}
.results a{display:block;padding:10px 12px;border-radius:var(--r);color:var(--text);font-weight:700}.results a:hover,.results a.sel{background:var(--raise)}
.results small{display:block;color:var(--muted);font-size:12px;font-weight:500}
.results .none{padding:12px;color:var(--muted);font-size:14px}
.links{margin-left:auto;display:flex;gap:6px}.links a{padding:9px 12px;color:var(--muted);font-size:14px;font-weight:700;transition:color var(--t)}.links a:hover{color:var(--hat)}
.menu-btn{display:none;flex:none;background:none;border:1px solid var(--line2);color:var(--text);border-radius:var(--r);width:40px;height:40px;font-size:18px;cursor:pointer}
/* layout */
.shell{display:grid;grid-template-columns:288px minmax(0,1fr) 236px;max-width:1440px;margin:0 auto;min-height:calc(100vh - var(--bar))}
.side{position:sticky;top:calc(var(--bar) + 3px);align-self:start;height:calc(100vh - var(--bar) - 3px);overflow:auto;padding:24px 14px 28px 24px;border-right:1px solid var(--line)}
.side-links{display:none}
.grp{margin-bottom:6px}
.grp summary{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--r);color:var(--text);font-size:14px;font-weight:700;cursor:pointer;list-style:none;transition:background var(--t)}
.grp summary::-webkit-details-marker{display:none}
.grp summary:hover{background:var(--panel)}
.mini{display:inline-grid;place-items:center;flex:none;width:30px;height:30px;border:2px solid var(--hat);border-radius:8px;color:var(--hat);font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}
.grp ul{margin:4px 0 12px 22px;border-left:3px solid var(--raise)}
.grp[data-here] ul{border-left-color:var(--hat)}
.grp li a{position:relative;display:block;padding:6px 10px 6px 20px;color:var(--muted);font-size:14px;transition:color var(--t)}
.grp li a::before{content:"";position:absolute;left:-7px;top:50%;width:11px;height:11px;margin-top:-5.5px;border:3px solid var(--raise);border-radius:50%;background:var(--ink)}
.grp[data-here] li a::before{border-color:var(--hat)}
.grp li a:hover{color:var(--text)}
.grp li a[aria-current]{color:var(--text);font-weight:700}
.grp li a[aria-current]::before{background:var(--hat)}
.doc{padding:32px 56px 80px;min-width:0}
.crumb{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:22px;color:var(--muted);font-size:13px}
.crumb li+li::before{content:"/";margin-right:6px;color:var(--faint)}
.crumb a{color:var(--muted)}.crumb a:hover{color:var(--hat)}
.p-tag{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:12px;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase}
.p-tag a{margin-left:auto;font-size:13px;letter-spacing:0;text-transform:none}.p-tag a:hover{text-decoration:underline}
.doc h1{font-size:38px;line-height:1.15;font-weight:800;letter-spacing:-.5px;margin-bottom:26px}
.doc h2{font-size:25px;line-height:1.25;font-weight:800;margin:46px 0 14px;padding-top:6px;letter-spacing:-.2px}
.doc h3{font-size:19px;font-weight:700;margin:30px 0 10px}
.doc p,.doc li{color:#dcd9d2}.doc p{margin:14px 0}
.doc ul,.doc ol{margin:14px 0 14px 24px}.doc ul{list-style:disc}.doc ol{list-style:decimal}.doc li{margin:6px 0}
.doc li::marker{color:var(--muted)}
.doc p a,.doc li a{text-decoration:underline;text-underline-offset:3px}
.doc .crumb{list-style:none;margin:0 0 22px}.doc .crumb li{margin:0;color:var(--muted)}.doc .crumb a{text-decoration:none}
.doc .p-tag{color:var(--muted)}.doc .p-tag a{text-decoration:none}
.anchor{opacity:0;margin-left:-22px;padding-right:8px;color:var(--muted);font-weight:500}h2:hover .anchor,h3:hover .anchor,.anchor:focus{opacity:1}
.doc code{font:.88em var(--mono);background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:1px 6px;color:#ffd48a}
.doc a.xref{text-decoration:none;border-bottom:1px solid var(--hat);color:var(--text)}.doc a.xref strong{color:inherit}.doc a.xref:hover{color:var(--hat)}
.code{margin:18px 0;border:1px solid var(--line2);border-radius:var(--r-lg);overflow:hidden;background:var(--panel)}
.code-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;background:var(--panel2);border-bottom:1px solid var(--line);font:12px var(--mono);color:var(--muted);text-transform:lowercase}
.copy{background:none;border:1px solid var(--line2);color:var(--muted);border-radius:6px;padding:2px 10px;font:700 12px var(--font);cursor:pointer;transition:color var(--t),border-color var(--t)}.copy:hover{color:var(--hat);border-color:var(--hat)}
.code pre{padding:16px;overflow:auto;font:13.5px/1.6 var(--mono)}.code code{background:none;border:none;padding:0;color:var(--text);font-size:inherit}
.table-wrap{margin:20px 0;overflow:auto;border:1px solid var(--line2);border-radius:var(--r-lg)}
table{width:100%;border-collapse:collapse;font-size:14.5px}
th{text-align:left;padding:11px 14px;background:var(--panel2);color:var(--muted);font-size:12px;letter-spacing:1.4px;text-transform:uppercase;font-weight:700}
td{padding:11px 14px;border-top:1px solid var(--line);vertical-align:top}
td:first-child{white-space:nowrap}
.callout{margin:20px 0;padding:14px 18px;border:1px solid var(--line2);border-left:4px solid var(--muted);border-radius:var(--r);background:var(--panel)}
.callout.warning{border-left-color:var(--hat)}.callout.danger{border-left-color:var(--down)}
.callout-t{color:var(--muted);font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase}
.callout.warning .callout-t{color:var(--hat)}.callout.danger .callout-t{color:var(--down)}
.callout p{margin:6px 0}
.shot{margin:26px 0;text-align:center}.shot a{display:inline-block;border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--line2);background:var(--panel)}
.shot img{max-height:620px;width:auto;height:auto;margin:0 auto}.shot.wide a{display:block}.shot.wide img{max-height:none;width:100%}.shot.small img{max-height:150px}
.shot figcaption{margin-top:12px;font-size:13.5px;color:var(--muted)}
.pager{display:flex;justify-content:space-between;gap:16px;margin-top:64px;padding-top:24px;border-top:1px solid var(--line)}
.pager a{flex:0 1 48%;border:1px solid var(--line2);border-radius:var(--r-lg);padding:14px 18px;color:var(--text);font-weight:700;transition:border-color var(--t),color var(--t)}.pager a:hover{border-color:var(--hat);color:var(--hat)}
.pager small{display:block;color:var(--muted);font-weight:500;font-size:12px}.pager .r{text-align:right;margin-left:auto}
.toc{position:sticky;top:calc(var(--bar) + 3px);align-self:start;padding:32px 24px;font-size:13.5px;max-height:calc(100vh - var(--bar) - 3px);overflow:auto}
.toc-t{font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.toc a{display:block;padding:4px 0 4px 12px;color:var(--muted);border-left:2px solid var(--line2);transition:color var(--t)}.toc a.l3{padding-left:26px}.toc a:hover,.toc a.on{color:var(--text);border-left-color:var(--hat)}
.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:24px 32px;background:var(--panel);border-top:1px solid var(--line);color:var(--muted);font-size:13px}
.foot nav{display:flex;gap:18px}.foot a{color:var(--muted);font-weight:700;transition:color var(--t)}.foot a:hover{color:var(--hat)}
/* home */
.home{max-width:1200px;margin:0 auto;padding:clamp(40px,7vw,80px) 32px 88px}
.hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,6vw,80px);align-items:center}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--hat)}
.hero h1{margin:14px 0 18px;font-size:clamp(38px,6vw,64px);line-height:1.04;font-weight:800;letter-spacing:-1.5px}
.hero h1 span{display:block}
.hero p{color:var(--muted);font-size:18px;max-width:520px}
.cta{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.btn{display:inline-block;padding:12px 22px;border-radius:var(--r);border:1px solid var(--line2);color:var(--text);font-weight:700;transition:border-color var(--t),background var(--t)}.btn:hover{border-color:var(--hat)}
.btn.pri{background:var(--hat);border-color:var(--hat);color:var(--ink)}.btn.pri:hover{background:#ffc049;border-color:#ffc049}
.stops{padding:22px 24px;background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--hat);border-radius:var(--r-xl)}
.stops h2{margin-bottom:10px;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase}
.stops ol{border-left:3px solid var(--hat);margin-left:6px}
.stops a{position:relative;display:block;padding:9px 0 9px 22px;color:var(--text);font-weight:700;transition:color var(--t)}
.stops a::before{content:"";position:absolute;left:-8px;top:17px;width:13px;height:13px;border:3px solid var(--hat);border-radius:50%;background:var(--panel)}
.stops a:hover{color:var(--hat)}
.stops small{display:block;color:var(--muted);font-size:13.5px;font-weight:500;line-height:1.45}
.lines-h{margin:clamp(48px,7vw,80px) 0 18px;font-size:28px;font-weight:800;letter-spacing:-.3px}
.board{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--hat);border-radius:var(--r-xl);overflow:hidden}
.b-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto 20px;gap:20px;align-items:center;padding:18px 24px;color:var(--text);border-top:1px solid var(--line);transition:background var(--t)}
.board li:first-child .b-row{border-top:0}
.b-row:hover{background:var(--panel2)}
.badge{display:inline-grid;place-items:center;width:44px;height:44px;border:3px solid var(--hat);border-radius:var(--r);color:var(--hat);font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
.b-name b{display:block;font-size:17px;font-weight:700}.b-name span{display:block;color:var(--muted);font-size:14px;line-height:1.5}
.b-n{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.b-go{color:var(--hat);font-weight:700;transition:transform var(--t)}.b-row:hover .b-go{transform:translateX(3px)}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(8,9,10,.92);display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out}.lightbox img{max-width:100%;max-height:100%;border-radius:var(--r-lg)}
@media(max-width:1100px){.shell{grid-template-columns:264px minmax(0,1fr)}.toc{display:none}.doc{padding:28px 32px 64px}}
@media(max-width:820px){
  .top{gap:10px;padding:0 14px}.menu-btn{display:block}.links,.search kbd{display:none}.brand{gap:8px;font-size:0}.brand img{flex:none}.brand em{font-size:14px}.search{margin-left:0}.search input{padding-right:12px}
  .shell{display:block}.side{display:none;position:fixed;align-self:auto;top:calc(var(--bar) + 3px);left:0;bottom:0;width:min(300px,86vw);height:auto;background:var(--ink);z-index:40;border-right:1px solid var(--line2)}.side.open{display:block}
  .side-links{display:flex;gap:6px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.side-links a{padding:8px;color:var(--muted);font-size:14px;font-weight:700}
  .doc{padding:20px 16px 56px}.doc h1{font-size:30px}.doc h2{font-size:22px}.anchor{display:none}
  .home{padding-left:16px;padding-right:16px}.hero{grid-template-columns:1fr}.b-row{grid-template-columns:44px minmax(0,1fr) 20px;gap:14px;padding:16px}.b-n{display:none}
  .foot{padding:22px 16px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
