/* Provably Fair Sites — documentation aesthetic. Tokens: see design/brand-book.md */
:root{--bg:#fff;--soft:#F7F8FA;--line:#E5E7EB;--line2:#D1D5DB;--ink:#0F172A;--ink2:#374151;--mute:#4B5563;--acc:#0B6B4B;--acc-d:#08523A;--acc-t:#E8F5EF;--codebg:#0F1720;--codeink:#E5E7EB;--hash:#7EE2B8;--bad:#B42318;--r:10px;--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--sans:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 var(--sans);font-feature-settings:"cv11","ss01"}
a{color:var(--acc);text-underline-offset:3px}a:hover{color:var(--acc-d)}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:4px}
img,svg{max-width:100%}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}.narrow{max-width:820px}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:8px 12px;z-index:99}.skip:focus{left:8px}
.age{background:var(--soft);border-bottom:1px solid var(--line);text-align:center;font-size:13px;color:var(--mute);padding:7px 12px}
.age a{font-weight:600}
/* header */
.hd{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.6) blur(10px);border-bottom:1px solid var(--line)}
.hd-in{display:flex;align-items:center;justify-content:space-between;height:62px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.mk{width:30px;height:30px;flex:none}
.lt{font-size:16.5px;letter-spacing:-.01em}.lt b{font-weight:700}.lt span{font-weight:500;color:var(--mute)}
.nav{display:flex;gap:4px}
.nav a{color:var(--ink2);text-decoration:none;font-size:14.5px;font-weight:500;padding:7px 11px;border-radius:7px}
.nav a:hover{background:var(--soft);color:var(--ink)}
.nav a[aria-current=page]{color:var(--acc);background:var(--acc-t)}
.burger{display:none;background:none;border:1px solid var(--line);border-radius:8px;width:42px;height:38px;padding:9px;cursor:pointer}
.burger span{display:block;height:2px;background:var(--ink);margin:4px 0;border-radius:2px}
@media(max-width:860px){.burger{display:block}.nav{display:none;position:absolute;left:0;right:0;top:62px;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;padding:10px 16px 16px;box-shadow:0 12px 24px rgba(15,23,42,.06)}.nav.open{display:flex}.nav a{padding:12px;font-size:16px}}
/* type */
h1,h2,h3{letter-spacing:-.022em;line-height:1.2;color:var(--ink)}
h1{font-size:clamp(30px,5vw,48px);font-weight:700;margin:.2em 0 .35em}
.kick{font:600 12.5px/1 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--acc);margin:0 0 10px;display:flex;align-items:center;gap:8px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 4px var(--acc-t)}
.lede{font-size:clamp(17px,2.2vw,19.5px);color:var(--ink2);max-width:62ch;margin:0 0 18px}
.acc{color:var(--acc)}
code{font:500 .88em var(--mono);background:var(--soft);border:1px solid var(--line);border-radius:5px;padding:.08em .35em;word-break:break-all}
.mono{font-family:var(--mono)}
/* code blocks */
figure.code{margin:22px 0;background:var(--codebg);border-radius:var(--r);overflow:hidden;border:1px solid #1F2937}
figure.code figcaption{font:500 12px var(--mono);color:#9CA3AF;padding:9px 14px;border-bottom:1px solid #1F2937;background:#111B26}
figure.code pre{margin:0;padding:14px 16px;overflow-x:auto;font:13.5px/1.7 var(--mono);color:var(--codeink)}
figure.code pre code{background:none;border:0;padding:0;color:inherit;word-break:normal;white-space:pre}
.c{color:#8B95A3}.h{color:var(--hash)}.s{color:#FCD34D}.ok{color:#6EE7B7;font-weight:600}.bad{color:#FCA5A5;font-weight:600}
/* hero */
.hero{border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff 0,var(--soft) 100%)}
.hero-in{display:grid;grid-template-columns:1.15fr 1fr;gap:48px;align-items:center;padding:64px 20px}
.hero h1{font-size:clamp(34px,5.4vw,56px);letter-spacing:-.035em}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-block;background:var(--acc);color:#fff;text-decoration:none;font-weight:600;font-size:15px;padding:11px 18px;border-radius:8px;border:1px solid var(--acc);cursor:pointer;font-family:inherit}
.btn:hover{background:var(--acc-d);color:#fff}
.btn-o{background:#fff;color:var(--ink);border-color:var(--line2)}.btn-o:hover{background:var(--soft);color:var(--ink)}
.hero-code{box-shadow:0 20px 50px rgba(15,23,42,.14)}
@media(max-width:860px){.hero-in{grid-template-columns:1fr;padding:40px 20px;gap:28px}}
/* sections & cards */
.sec{margin:56px 0}.mt{margin-top:18px}
.sh{font-size:13px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--mute);font-weight:600;border-bottom:1px solid var(--line);padding-bottom:10px;margin:0 0 20px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.lead-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:18px}.stack{display:grid;gap:18px}
@media(max-width:860px){.grid3,.lead-grid{grid-template-columns:1fr}}
.card{border:1px solid var(--line);border-radius:12px;padding:20px;background:#fff;display:flex;flex-direction:column;transition:border-color .15s,box-shadow .15s}
.card:hover{border-color:var(--line2);box-shadow:0 6px 20px rgba(15,23,42,.06)}
.card-big{background:var(--soft)}.card-big h3{font-size:24px}
.card-top{display:flex;justify-content:space-between;font:500 12px var(--mono);color:var(--mute)}
.tag{color:var(--acc);font-weight:600}
.card h3{font-size:18.5px;margin:12px 0 8px}.card h3 a{color:var(--ink);text-decoration:none}.card h3 a:hover{color:var(--acc)}
.card p{color:var(--ink2);font-size:15px;margin:0 0 14px;flex:1}
.card-ft{display:flex;justify-content:space-between;font:500 12px var(--mono);color:var(--mute);border-top:1px dashed var(--line);padding-top:10px}
.topics{display:grid;gap:12px}
.topic{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:16px 18px;text-decoration:none;color:var(--ink)}
.topic:hover{border-color:var(--acc)}
.topic small{display:block;color:var(--ink2);font-size:14.5px;margin-top:2px}
.code{font:600 13px var(--mono);color:var(--acc);background:var(--acc-t);border-radius:6px;padding:4px 8px}
.topic .cnt{font:600 14px var(--mono);color:var(--mute)}
.note{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:22px 24px}.note h2{font-size:20px;margin-top:0}
/* tables */
.dt{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);margin:22px 0}
table{border-collapse:collapse;width:100%;font-size:14.5px}
th{background:var(--soft);text-align:left;font-weight:600;color:var(--ink);font-size:13px}
th,td{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:top}
tr:last-child td{border-bottom:0}
td code{font-size:12.5px}
.num{text-align:right;font-family:var(--mono)}
tr.tot td{background:var(--acc-t);font-weight:600}
/* breadcrumbs & headers */
.bc ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:22px 0 0;font-size:13.5px;color:var(--mute)}
.bc li+li:before{content:"/";margin-right:6px;color:var(--line2)}
.bc a{color:var(--mute);text-decoration:none}.bc a:hover{color:var(--acc)}
.ph,.ah{padding:26px 0 18px;border-bottom:1px solid var(--line);margin-bottom:28px}
.hubh{display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:start}
.stat{text-align:right}.stat b{display:block;font:700 34px var(--mono);color:var(--ink)}.stat span{font-size:13px;color:var(--mute)}
@media(max-width:600px){.hubh{grid-template-columns:1fr}.stat{text-align:left}}
.byline{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13.5px;color:var(--mute)}
.by{font-weight:600;color:var(--ink)}
/* article layout */
.alay{display:grid;grid-template-columns:230px minmax(0,1fr);gap:48px}
.toc{position:sticky;top:84px;align-self:start;font-size:14px}
.toc summary{font:600 12px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--mute);cursor:pointer;margin-bottom:8px}
.toc ol{list-style:none;padding:0;margin:0;border-left:1px solid var(--line)}
.toc li a{display:block;padding:5px 0 5px 14px;color:var(--ink2);text-decoration:none;margin-left:-1px;border-left:2px solid transparent}
.toc li a:hover{color:var(--acc);border-left-color:var(--acc)}
@media(max-width:860px){.alay{grid-template-columns:1fr;gap:10px}.toc{position:static;background:var(--soft);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}}
.prose{max-width:72ch;font-size:17px}
.prose h2{font-size:26px;margin:44px 0 12px;scroll-margin-top:80px}
.prose h3{font-size:20px;margin:30px 0 10px;scroll-margin-top:80px}
.prose p,.prose li{color:var(--ink2)}.prose strong{color:var(--ink)}
.prose li{margin:5px 0}
.prose blockquote{margin:22px 0;border-left:3px solid var(--acc);background:var(--acc-t);padding:12px 18px;border-radius:0 8px 8px 0}
.prose blockquote p{margin:0;color:var(--ink)}
.faq details{border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;margin:10px 0}
.faq summary{font-weight:600;cursor:pointer;color:var(--ink)}
.faq details p{margin:10px 0 0}
.rg-note{margin:32px 0;border:1px solid var(--line);border-left:3px solid var(--acc);border-radius:8px;padding:14px 16px;font-size:14.5px;color:var(--ink2);background:var(--soft)}
.related{margin:64px 0 32px}.empty{color:var(--mute)}
/* verifier */
.vf{border:1px solid var(--line);border-radius:12px;padding:20px;background:var(--soft)}
.vf-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.vf label{display:flex;flex-direction:column;gap:6px;font-size:13.5px;font-weight:600;color:var(--ink)}
.vf input{font:14px var(--mono);padding:10px 12px;border:1px solid var(--line2);border-radius:8px;background:#fff;color:var(--ink);width:100%}
.vf input:focus{outline:2px solid var(--acc);outline-offset:0;border-color:var(--acc)}
@media(max-width:700px){.vf-grid{grid-template-columns:1fr}}
.vout{margin:18px 0 36px;background:var(--codebg);border-radius:12px;padding:6px 18px;color:var(--codeink)}
.vrow{display:grid;grid-template-columns:200px 1fr;gap:14px;padding:12px 0;border-bottom:1px solid #1F2937;font-size:13.5px}
.vrow:last-child{border-bottom:0}
.vrow span{color:#9CA3AF}
.vrow code{background:none;border:0;color:var(--hash);padding:0;font-size:13px}
.vrow.big b{font:700 28px var(--mono);color:#fff}
.vrow b.ok{color:#6EE7B7}.vrow b.bad{color:#FCA5A5}
@media(max-width:600px){.vrow{grid-template-columns:1fr;gap:4px}}
/* footer */
.ft{margin-top:72px;border-top:1px solid var(--line);background:var(--soft);padding:44px 0 28px;font-size:14.5px}
.ft-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:28px}
.ft h2{font:600 12px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--mute);margin:4px 0 12px}
.ft-grid a{display:block;color:var(--ink2);text-decoration:none;padding:3px 0}.ft-grid a:hover{color:var(--acc)}
.ft .logo{display:flex}
.ft-note{color:var(--mute);max-width:36ch}
.b18{display:inline-block;margin-top:8px;font:700 13px var(--mono);border:2px solid var(--ink);border-radius:50%;width:40px;height:40px;line-height:36px;text-align:center}
.ft-legal{border-top:1px solid var(--line);margin:24px 0 0;padding-top:16px;color:var(--mute);font-size:13px}
.ft-legal+.ft-legal{border:0;margin-top:6px;padding-top:0}
@media(max-width:860px){.ft-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.ft-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
