
:root{--ink:#0c0a07;--coal:#15110c;--soot:#1e1812;--line:rgba(217,164,65,.16);--line-strong:rgba(217,164,65,.32);
--gold:#d9a441;--gold-bright:#edc36a;--ochre:#a5662a;--rust:#b4502e;--bone:#ece4d2;--dust:#a59478;
--serif:"Fraunces",serif;--body:"Newsreader",serif;--mono:"Spline Sans Mono",monospace}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--ink);color:var(--bone);font-family:var(--body);font-size:18px;line-height:1.7;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:99;opacity:.05;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E")}
::selection{background:var(--gold);color:var(--ink)}
a{color:var(--gold);text-decoration:none}a:hover{color:var(--gold-bright)}
nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:1.5rem;padding:.8rem 2rem;
background:linear-gradient(to bottom,rgba(12,10,7,.94),rgba(12,10,7,.8));backdrop-filter:blur(10px);
border-bottom:1px solid var(--line);font-family:var(--mono);font-size:.72rem;letter-spacing:.08em}
nav .brand{display:flex;align-items:center;gap:.6rem;color:var(--bone);font-weight:600;letter-spacing:.18em;text-transform:uppercase}
nav .crumbs{margin-left:auto;color:var(--dust);text-transform:uppercase;letter-spacing:.12em}
nav .crumbs a{color:var(--dust)}nav .crumbs a:hover{color:var(--gold)}
.page{max-width:880px;margin:0 auto;padding:4.5rem 2rem 6rem}
.doc-kicker{font-family:var(--mono);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);
display:flex;align-items:center;gap:1rem}.doc-kicker::before{content:"";width:38px;height:1px;background:var(--gold)}
h1.doc-title{font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.06;letter-spacing:-.015em;margin:1.2rem 0 .9rem}
.doc-blurb{color:var(--dust);font-size:1.12rem;max-width:58ch;margin-bottom:3rem;padding-bottom:2.4rem;border-bottom:1px solid var(--line)}
article h1{display:none}
article h2{font-family:var(--serif);font-weight:430;font-size:1.75rem;letter-spacing:-.01em;margin:3.2rem 0 1.1rem;line-height:1.2;color:var(--bone)}
article h2::before{content:"";display:block;width:44px;height:2px;background:var(--gold);margin-bottom:1rem}
article h3{font-family:var(--serif);font-weight:480;font-size:1.3rem;margin:2.4rem 0 .8rem;color:var(--gold-bright)}
article h4{font-family:var(--mono);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:2rem 0 .7rem}
article p{margin:1rem 0;color:#cfc4ad}
article strong{color:var(--bone);font-weight:560}
article em{color:var(--gold-bright)}
article ul,article ol{margin:1rem 0 1rem 1.3rem;color:#cfc4ad}
article li{margin:.45rem 0}
article li::marker{color:var(--gold)}
article blockquote{border-left:2px solid var(--gold);padding:.4rem 0 .4rem 1.4rem;margin:1.8rem 0;
font-family:var(--serif);font-style:italic;font-size:1.08em;color:var(--bone)}
article blockquote p{color:var(--bone)}
article table{width:100%;border-collapse:collapse;margin:1.8rem 0;font-size:.88rem}
article th{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);
text-align:left;padding:.8rem .8rem;border-bottom:1px solid var(--line-strong)}
article td{padding:.8rem;border-bottom:1px solid var(--line);color:var(--dust);vertical-align:top}
article td:first-child{color:var(--bone)}
article code{font-family:var(--mono);font-size:.82em;color:var(--gold-bright);background:var(--soot);padding:.12em .4em;border-radius:3px}
article pre{background:var(--coal);border:1px solid var(--line);padding:1.4rem;overflow-x:auto;margin:1.8rem 0;font-size:.82rem;line-height:1.6}
article pre code{background:none;padding:0;color:var(--bone)}
article hr{border:none;height:1px;background:linear-gradient(90deg,transparent,var(--line-strong),transparent);margin:3rem 0}
.doc-footer{margin-top:5rem;padding-top:2rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;
font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dust)}
/* library */
.lib-group{margin:3.5rem 0}
.lib-group h2{font-family:var(--mono);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:1.4rem}
.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.2rem}
.lib-card{display:block;border:1px solid var(--line);background:var(--coal);padding:1.7rem;transition:transform .25s,border-color .25s,background .25s}
.lib-card:hover{transform:translateY(-4px);border-color:var(--line-strong);background:var(--soot)}
.lib-card h3{font-family:var(--serif);font-weight:450;font-size:1.25rem;color:var(--bone);margin-bottom:.5rem;line-height:1.25}
.lib-card p{font-size:.88rem;color:var(--dust)}
.lib-card .go{display:inline-block;margin-top:1rem;font-family:var(--mono);font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
/* sitemap */
.sitemap{margin-top:5rem;padding-top:2.4rem;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1.8rem}
.sitemap h4{font-family:var(--mono);font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:.7rem}
.sitemap a{display:block;font-size:.86rem;color:var(--dust);padding:.16rem 0;line-height:1.4}
.sitemap a:hover{color:var(--gold-bright)}
.sitemap a.here{color:var(--bone)}
.sitemap + .doc-footer{margin-top:2.4rem;border-top:none;padding-top:0}
/* effect-size tooltips */
a.stat{color:inherit;border-bottom:1px dotted var(--gold);cursor:help;white-space:nowrap}
a.stat:hover{color:var(--gold-bright)}
/* build/buy verdict tags */
.tag{display:inline-block;font-family:var(--mono);font-size:.6rem;font-weight:600;letter-spacing:.12em;
text-transform:uppercase;padding:.18em .55em;border-radius:3px;vertical-align:middle;white-space:nowrap}
.tag-build{background:rgba(125,138,90,.18);color:#a9bb7d;border:1px solid rgba(125,138,90,.45)}
.tag-buy{background:rgba(181,80,46,.16);color:#dc9070;border:1px solid rgba(181,80,46,.45)}
.tag-hybrid{background:rgba(217,164,65,.14);color:var(--gold-bright);border:1px solid var(--line-strong)}
