/* /docs/api, /flywheel, /changelog (src/api-docs.mjs). Reads the site tokens from style.css :root; nothing here is global. */

/* ---------- docs: nav · article · on this page ---------- */
.ad{display:grid;grid-template-columns:208px minmax(0,1fr) 208px;gap:56px;padding:64px 0 24px;align-items:start}
.ad-nav,.ad-toc{position:sticky;top:96px;max-height:calc(100vh - 120px);overflow-y:auto;scrollbar-width:thin;font:14px/1.4 var(--sans)}
.ad-ng{font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mut2);margin:22px 0 10px}
.ad-nav .ad-ng:first-child,.ad-toc .ad-ng:first-child{margin-top:4px}
.ad-nav ul,.ad-toc ul{list-style:none;padding:0;display:grid;gap:2px}
.ad-nav a,.ad-toc a{display:flex;align-items:baseline;gap:8px;padding:5px 8px;margin-left:-8px;border-radius:8px;color:var(--mut);text-decoration:none;transition:color .15s,background-color .15s}
.ad-nav a:hover,.ad-toc a:hover{color:var(--fg);background:var(--bg2)}
.ad-nav a{font:13px/1.35 var(--mono);color:var(--fg2)}
.ad-nav ul:first-of-type a,.ad-nav ul:last-of-type a{font:14px/1.4 var(--sans);color:var(--mut)}
.mth{font:600 10px/1 var(--mono);letter-spacing:.04em;color:var(--ok);flex:none}
.ad-base{margin-top:28px;padding:16px;border-radius:12px;background:var(--bg2)}
.ad-base .ad-ng{margin:0 0 10px}
.ad-base code{display:block;font-size:12.5px;color:var(--fg);word-break:break-all;margin-bottom:12px}
.ad-base p:last-child{margin-top:12px;font-size:12.5px;color:var(--mut)}

.ad-a{max-width:760px;min-width:0}
.ad-a header .k{font:500 12px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--xmr)}
.ad-a h1.mid{margin-top:14px;font-size:52px}
.ad-a .lede{margin-top:16px;max-width:620px}
.ad-a h2{font-size:26px;letter-spacing:-.02em;margin:64px 0 14px;scroll-margin-top:96px}
.ad-a h2.ad-g{font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin:48px 0 0}
.ad-a h3{font-size:19px;letter-spacing:-.01em;margin:36px 0 10px;scroll-margin-top:96px}
.ad-a p,.ad-a li{font-size:15.5px;line-height:1.65;color:var(--fg2)}
.ad-a p+p{margin-top:12px}
.ad-a b{color:var(--fg);font-weight:600}
.ad-a a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--rule3);text-underline-offset:3px}
.ad-a a:hover{text-decoration-color:var(--xmr)}
.ad-a :not(pre)>code{font-size:.86em;padding:2px 6px;border-radius:6px;background:var(--bg3);color:var(--fg);word-break:break-word}
.ad-l{padding-left:20px;display:grid;gap:8px}
.ad-l li::marker{color:var(--mut2)}

.ep{border-top:1px solid var(--rule);margin-top:28px;padding-top:4px;scroll-margin-top:96px}
.ep h3{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:24px}
.ep h3 .mth{font-size:11px;padding:5px 7px;border-radius:6px;background:rgba(123,199,154,.1)}
.ep h3 .ep-p{font:500 16px/1.3 var(--mono);color:var(--fg);background:none;padding:0;word-break:break-all}
.ep-m{font:12.5px/1.4 var(--mono)!important;color:var(--mut)!important;margin-top:14px}

.pt-w{margin-top:16px;border-radius:12px;background:var(--bg2);overflow:hidden}
.pt{width:100%;border-collapse:collapse;font-size:14px}
.pt th{text-align:left;font:500 12px var(--sans);color:var(--mut);padding:12px 14px 10px;border-bottom:1px solid var(--rule)}
.pt td{padding:11px 14px;vertical-align:top;color:var(--fg2);line-height:1.5;border-bottom:1px solid var(--rule)}
.pt tr:last-child td{border-bottom:0}
.pt td:first-child{white-space:nowrap}
.pt .pt-t{font:12.5px/1.5 var(--mono);color:var(--mut);max-width:180px}
.pt .req{font:500 10.5px var(--mono);color:var(--xmr);margin-left:4px}
.pt-none{font-size:14px!important;color:var(--mut)!important;margin-top:12px}

.cb{margin-top:16px;border-radius:12px;background:var(--shade);border:1px solid var(--rule);overflow:hidden}
.cb-h{display:flex;align-items:center;justify-content:space-between;gap:12px;height:38px;padding:0 8px 0 14px;border-bottom:1px solid var(--rule);font:500 12px var(--sans);color:var(--mut)}
.cb-c{height:26px;padding:0 10px;border-radius:7px;border:1px solid var(--rule2);background:transparent;color:var(--fg2);font:500 12px var(--sans);cursor:pointer}
.cb-c:hover{color:var(--fg);border-color:var(--rule3)}
.cb pre{margin:0;padding:14px 16px;overflow:auto;font:12.5px/1.6 var(--mono);color:var(--fg2);tab-size:2}
.cb pre code{font:inherit;color:inherit;background:none;padding:0}
.cb-j{max-height:420px}
.jk{color:var(--fg)}.js{color:#D2BC98}.jn{color:#F2A46A}.jl{color:var(--mut)}

.ad-cl{list-style:none;padding:0}
.ad-cv{display:flex;gap:12px;align-items:baseline}
.ad-cv span{font:12.5px var(--mono);color:var(--mut)}
.ad-cl ul{padding-left:20px;margin-top:6px}

@media (max-width:1180px){.ad{grid-template-columns:200px minmax(0,1fr);gap:48px}.ad-toc{display:none}}
@media (max-width:860px){
 .ad{grid-template-columns:minmax(0,1fr);gap:0;padding-top:40px}
 .ad-nav{display:none}
 .ad-toc{display:block;position:static;max-height:none;overflow:visible;order:-1;margin-bottom:8px}
 .ad-toc ul{display:flex;flex-wrap:wrap;gap:6px}
 .ad-toc a{margin:0;padding:6px 10px;background:var(--bg2);font-size:13px;color:var(--fg2)}
 .ad-base{margin-top:16px}
 .ad-a h1.mid{font-size:38px}
 .ad-a h2{font-size:23px;margin-top:48px}
 .pt-w{overflow-x:auto}
 .pt td:first-child{white-space:normal}
 .pt .pt-t{max-width:120px}
}

/* ---------- flywheel ---------- */
.fw-hero{padding:8px 0 28px}
.fw-k{font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.fw-n{font:400 112px/1 var(--mono);letter-spacing:-.06em;color:var(--fg);margin-top:18px}
.fw-n small{font-size:.42em;letter-spacing:-.02em;color:var(--xmr);margin-left:6px}
.fw-s{margin-top:16px;font-size:17px;line-height:1.55;color:var(--fg2);max-width:720px}
.fw-s b{color:var(--fg);font-weight:500;font-size:.94em}
.fw-bar{margin-top:24px;height:6px;border-radius:99px;background:var(--bg3);overflow:hidden;max-width:720px}
.fw-bar i{display:block;height:100%;border-radius:99px;background:var(--xmr)}
.fw-cells{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.fw-cells>div{padding:22px 0 22px 24px;min-width:0}
.fw-cells>div:first-child{padding-left:0}
.fw-cells>div+div{border-left:1px solid var(--rule)}
.fw-cells dt{font:500 13px/1.3 var(--sans);color:var(--fg2)}
.fw-cv{font:400 26px/1 var(--mono);letter-spacing:-.03em;color:var(--fg);margin-top:12px;white-space:nowrap}
.fw-cv.o{color:var(--xmr)}
.fw-cv small{font-size:13px;margin-left:6px;color:var(--mut);letter-spacing:0}
.fw-cs{font:12.5px/1.45 var(--sans);color:var(--mut);margin-top:6px}
.fw-cs a{color:var(--fg2)}
.fw-h2{font-size:26px;letter-spacing:-.02em;margin:72px 0 18px}
.fw-tw{border-radius:16px;background:var(--bg2);padding:4px 16px}
.fw-t{width:100%;border-collapse:collapse;font:13.5px/1.4 var(--mono)}
.fw-t th{font:500 12.5px var(--sans);color:var(--mut);text-align:left;padding:14px 12px 12px;border-bottom:1px solid var(--rule);white-space:nowrap}
.fw-t td{padding:13px 12px;border-bottom:1px solid var(--rule);color:var(--fg2);white-space:nowrap}
.fw-t tr:last-child td{border-bottom:0}
.fw-t .n{text-align:right}
.fw-t td b{color:var(--fg);font-weight:500}
.fw-t td:nth-child(2){font-family:var(--sans);font-size:14px}
.fw-t a{color:var(--fg2);text-decoration:none;font-family:var(--sans);font-size:13.5px}
.fw-t a:hover{color:var(--xmr)}
.fw-steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;counter-reset:fw}
.fw-steps li{counter-increment:fw;padding:22px 22px 24px;border-radius:16px;background:var(--bg2);display:flex;flex-direction:column;gap:8px}
.fw-steps li::before{content:counter(fw);font:500 12px/1 var(--mono);color:var(--xmr);margin-bottom:8px}
.fw-steps b{font-size:17px;font-weight:600;color:var(--fg)}
.fw-steps span{font-size:14.5px;line-height:1.6;color:var(--fg2)}
.fw-empty{padding:28px;border-radius:16px;background:var(--bg2);color:var(--fg2);font-size:15px}
.fw-empty b{color:var(--fg);font-weight:600}
.fw-src{margin-top:32px;max-width:760px}
.fw-src a,.blk .note a{color:var(--fg2)}
@media (max-width:1040px){.fw-steps{grid-template-columns:minmax(0,1fr)}}
@media (max-width:900px){
 .fw-cells{grid-template-columns:repeat(2,minmax(0,1fr))}
 .fw-cells>div:nth-child(3){padding-left:0;border-left:0}
 .fw-cells>div:nth-child(n+3){border-top:1px solid var(--rule)}
}
@media (max-width:760px){
 .fw-n{font-size:72px}
 .fw-s{font-size:15.5px}
 .fw-cv{font-size:21px}
 .fw-cells>div{padding:18px 0 18px 16px}
 .fw-cells>div:nth-child(odd){padding-left:0}
 .fw-h2{font-size:22px;margin-top:56px}
 .fw-tw{padding:0 14px}
 .fw-t thead{display:none}
 .fw-t,.fw-t tbody{display:block}
 .fw-t tr{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:4px;padding:14px 0;border-bottom:1px solid var(--rule)}
 .fw-t tr:last-child{border-bottom:0}
 .fw-t td{padding:0;border:0}
 .fw-t td:nth-child(1){grid-area:1/1;color:var(--fg)}
 .fw-t td:nth-child(6){grid-area:1/2}
 .fw-t td:nth-child(2){grid-area:2/1;color:var(--mut)}
 .fw-t td:nth-child(5){grid-area:2/2}
 .fw-t td:nth-child(3){grid-area:3/1;text-align:left;color:var(--mut)}
 .fw-t td:nth-child(3):has(>.mut),.fw-t td:nth-child(4){display:none}
 .fw-t td:nth-child(5)::after{content:' burned';font:12.5px var(--sans);color:var(--mut)}
 .fw-t td:nth-child(3)::before{content:'Spent ';font:12.5px var(--sans)}
}

/* ---------- changelog ---------- */
.cl-sub{font-size:16px;line-height:1.6;color:var(--fg2);max-width:640px;margin-top:-8px}
.cl-sub a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--rule3);text-underline-offset:3px}
.cl{list-style:none;padding:0;margin-top:40px;max-width:980px}
.cl-e{display:grid;grid-template-columns:200px minmax(0,1fr);gap:40px;padding:28px 0;scroll-margin-top:96px}
.cl-d1{border-top:1px solid var(--rule)}
.cl-dt{font-size:13px;color:var(--mut);padding-top:5px}
.cl-b h2{font-size:22px;letter-spacing:-.02em}
.cl-b h2 a{color:var(--fg);text-decoration:none}
.cl-b h2 a:hover{color:var(--xmr)}
.cl-b ul{margin-top:12px;padding-left:20px;display:grid;gap:6px}
.cl-b li{font-size:15.5px;line-height:1.6;color:var(--fg2)}
.cl-b li::marker{color:var(--mut2)}
.cl-l{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:14px;font-size:14px}
.cl-l a{color:var(--fg);text-decoration:none}
.cl-l a span{color:var(--xmr)}
.cl-l a:hover{color:var(--xmr)}
@media (max-width:760px){
 .cl-e{grid-template-columns:minmax(0,1fr);gap:8px;padding:22px 0}
 .cl-e:not(.cl-d1) .cl-dt{display:none}
 .cl-b h2{font-size:19px}
}
