:root{--bg:#0f172a;--panel:#1e293b;--ink:#e2e8f0;--ink2:#cbd5e1;--muted:#94a3b8;--line:#334155;--orange:#fb923c;--teal:#2dd4bf;--red:#fca5a5}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:linear-gradient(130deg,#0f172a,#111c30);color:var(--ink);font:17px/1.62 Georgia,serif}
.wrap{max-width:1000px;margin:auto;padding:44px 24px 80px}
a{color:var(--teal);text-underline-offset:3px}
a:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.eyebrow{font:700 12px Arial,sans-serif;letter-spacing:.11em;text-transform:uppercase;color:var(--orange);margin:0 0 10px}
h1{font:700 clamp(2rem,4.6vw,3.4rem)/1 Arial,sans-serif;letter-spacing:-.05em;margin:0 0 16px}
.dek{font-size:1.18rem;color:var(--ink2);max-width:820px;margin:0 0 6px}
.meta{font:14px/1.55 Arial,sans-serif;color:var(--muted)}
nav.top{display:flex;gap:18px;flex-wrap:wrap;border-block:1px solid var(--line);padding:12px 0;margin:26px 0 36px;font:700 12px Arial,sans-serif;text-transform:uppercase;letter-spacing:.06em}
nav.top a{text-decoration:none}
section{scroll-margin-top:20px;margin:40px 0}
h2{font:700 clamp(1.45rem,2.8vw,2rem)/1.08 Arial,sans-serif;letter-spacing:-.035em;margin:0 0 14px}
h3{font:700 1.08rem/1.2 Arial,sans-serif;margin:26px 0 8px}
h4{font:700 .97rem/1.25 Arial,sans-serif;color:var(--ink2);margin:24px 0 6px}
p{margin:0 0 14px}
.callout{background:var(--panel);border-left:5px solid var(--orange);padding:18px 22px;margin:18px 0}
.callout p:last-child{margin:0}
.math{background:var(--panel);border:1px solid var(--line);padding:14px 20px;margin:16px 0;overflow-x:auto}
.warn{background:#302228;border:1px solid #744651;color:#f2d5d7;padding:16px 20px;margin:18px 0}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}
.card{background:var(--panel);border:1px solid var(--line);padding:18px}
.card h3{margin:0 0 8px}
.card p{margin:0;color:var(--ink2)}
.table-wrap{overflow:auto;border:1px solid var(--line);margin:16px 0}
table{border-collapse:collapse;width:100%;min-width:620px;font-size:.93rem}
th,td{text-align:left;vertical-align:top;padding:11px 14px;border-bottom:1px solid var(--line)}
th{font:700 12px Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#b8c7d6;background:#18263a}
tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
pre,.code{font:14px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;background:#09111f;border:1px solid var(--line);padding:16px;white-space:pre-wrap;color:#d7e5ef;margin:16px 0;overflow-x:auto}
code{font:.92em ui-monospace,SFMono-Regular,Consolas,monospace;background:#09111f;padding:1px 5px;border-radius:3px}
figure{margin:20px 0;background:var(--panel);border:1px solid var(--line);padding:12px}
figure img{max-width:100%;display:block;background:#fff}
figcaption{font:14px/1.5 Arial,sans-serif;color:var(--muted);margin-top:10px}
ol.steps{counter-reset:s;list-style:none;padding:0;margin:16px 0}
ol.steps li{counter-increment:s;position:relative;padding:12px 14px 12px 62px;background:var(--panel);border:1px solid var(--line);margin-bottom:10px}
ol.steps li::before{content:counter(s);position:absolute;left:14px;top:12px;font:700 1.3rem/1 Arial,sans-serif;color:var(--orange)}
.src{font-size:.92rem;color:var(--ink2)}
.src li{margin-bottom:6px}
.grade{display:inline-block;font:700 11px Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:3px;margin-right:6px}
.g-a{background:#134e4a;color:#99f6e4}.g-b{background:#3f2d12;color:#fdba74}.g-c{background:#4c1d1d;color:#fecaca}.g-lab{background:#1e3a5f;color:#bfdbfe}
nav.foot{display:flex;justify-content:space-between;gap:18px;border-top:1px solid var(--line);padding-top:18px;margin-top:50px;font:700 13px Arial,sans-serif}
@media(max-width:700px){.wrap{padding:30px 16px 60px}.grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{body{background:#fff;color:#000}.card,.callout,.math,.warn,figure,ol.steps li,pre{background:#fff;color:#000;border-color:#888}a{color:#000}nav{display:none}}
