@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&display=swap');
:root { --paper:#ffffff; --paper-deep:#f4f7f9; --ink:#0d1b2a; --ink-soft:#5a6b7b; --rust:#e1572b; --rust-deep:#c8471f; --accent-2:#0ea5a4; --accent-3:#6d5cf5; --moss:#0ea5a4; --moss-deep:#0b7f7e; --line:#e7ebef; --line-strong:#cfd6dd; --shadow:0 1px 2px rgba(13,27,42,.04),0 10px 30px -12px rgba(13,27,42,.16); }
* { box-sizing:border-box; margin:0; padding:0; }
html, body { background:var(--paper); color:var(--ink); font-family:'Inter',sans-serif; line-height:1.55; min-height:100%; -webkit-font-smoothing:antialiased; }
body { background-image:radial-gradient(40% 55% at 78% 8%, rgba(14,165,164,0.16), transparent 70%), radial-gradient(45% 50% at 12% 30%, rgba(109,92,245,0.12), transparent 70%), radial-gradient(40% 60% at 60% 100%, rgba(225,87,43,0.10), transparent 70%); background-attachment:fixed; padding:24px 18px 60px; }
.wrap { max-width:980px; margin:0 auto; }

/* Site header */
header.site { display:flex; justify-content:space-between; align-items:center; margin-bottom:36px; padding-bottom:18px; border-bottom:1px solid var(--line); gap:12px; flex-wrap:wrap; }
.logo { font-family:'Space Grotesk',sans-serif; font-size:22px; font-weight:900; letter-spacing:-0.02em; color:var(--ink); text-decoration:none; }
.logo:hover { color:var(--rust); }
.nav { font-family:'Inter',sans-serif; font-size:14px; font-weight:500; }
.nav a { color:var(--ink-soft); text-decoration:none; margin-left:16px; }
.nav a:hover { color:var(--rust); }
.nav a.current { color:var(--rust); }

/* Two-column layout */
.layout { display:grid; grid-template-columns:220px 1fr; gap:48px; align-items:start; }
@media (max-width:760px) { .layout { grid-template-columns:1fr; gap:24px; } }

aside.sidebar { position:sticky; top:24px; }
@media (max-width:760px) { aside.sidebar { position:static; background:var(--paper-deep); padding:14px 18px; border:1px solid var(--line); border-radius:3px; } }
.sb-label { font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:0.18em; text-transform:uppercase; color:var(--rust); margin-bottom:12px; }
.sb-label::before { content:""; }
.sb-list { list-style:none; }
.sb-list li { margin-bottom:1px; }
.sb-list a { display:block; padding:7px 10px; font-size:12.5px; color:var(--ink-soft); text-decoration:none; border-left:2px solid transparent; line-height:1.4; transition:background 0.1s, color 0.1s, border-color 0.1s; }
.sb-list a:hover { background:var(--paper-deep); color:var(--ink); }
.sb-list a.active { color:var(--ink); border-left-color:var(--rust); background:var(--paper-deep); font-weight:600; }
.sb-num { font-family:'JetBrains Mono',monospace; color:var(--rust); margin-right:6px; font-size:11px; }
.sb-aside-note { font-family:'JetBrains Mono',monospace; font-size:10.5px; color:var(--ink-soft); margin-top:18px; padding-top:14px; border-top:1px dotted var(--line); line-height:1.55; }
.sb-aside-note a { color:var(--rust); text-decoration:none; }

/* Main content */
main.content { min-width:0; }
.eyebrow { font-family:'Inter',sans-serif; font-size:13px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--rust-deep); margin-bottom:14px; }
.eyebrow::before { content:""; }
h1 { font-family:'Space Grotesk',sans-serif; font-weight:900; font-size:clamp(30px,5.5vw,44px); line-height:1.02; letter-spacing:-0.02em; margin-bottom:18px; color:var(--ink); }
h1 em { font-style:normal; font-weight:700; background:linear-gradient(100deg,var(--rust),var(--accent-3)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.lead { font-size:16px; color:var(--ink-soft); line-height:1.65; margin-bottom:32px; }
.lead b { color:var(--ink); font-weight:600; }
.lead a, main.content a { color:var(--rust-deep); text-decoration:none; border-bottom:1px solid rgba(200,71,31,0.4); }
.lead a:hover, main.content a:hover { border-bottom-color:var(--rust); }

main.content h2 { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:22px; letter-spacing:-0.01em; margin:32px 0 12px; color:var(--ink); }
main.content h2 em { font-style:normal; font-weight:700; background:linear-gradient(100deg,var(--rust),var(--accent-3)); -webkit-background-clip:text; background-clip:text; color:transparent; }
main.content h3 { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:17px; margin:22px 0 8px; color:var(--ink); }
main.content p { font-size:15px; color:var(--ink-soft); line-height:1.7; margin-bottom:14px; }
main.content p b { color:var(--ink); font-weight:600; }

main.content ul, main.content ol { margin:6px 0 16px 22px; }
main.content li { font-size:15px; color:var(--ink-soft); line-height:1.7; margin-bottom:4px; }
main.content li b { color:var(--ink); font-weight:600; }

/* Source citations */
.cite { display:block; font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--ink-soft); margin:-4px 0 22px; line-height:1.55; font-style:normal; }
.cite::before { content:"Source: "; color:var(--rust); }
.cite em { font-style:italic; color:var(--ink); }
.cite a { color:var(--rust-deep); border-bottom:1px solid rgba(200,71,31,0.4); }

/* Tables */
table { width:100%; border-collapse:collapse; margin:14px 0 22px; font-size:13px; background:var(--paper); border:1px solid var(--line); }
th, td { padding:10px 12px; text-align:left; border-bottom:1px solid var(--line); vertical-align:top; }
th { background:var(--paper-deep); font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:0.06em; color:var(--ink); font-weight:600; text-transform:uppercase; }
td { color:var(--ink-soft); line-height:1.55; }
td b { color:var(--ink); font-weight:600; }
tr:last-child td { border-bottom:none; }
@media (max-width:520px) { table { font-size:12px; } th, td { padding:8px 9px; } }

/* Caveat callout */
.caveat { background:var(--paper-deep); border-left:3px solid var(--moss); padding:18px 22px; margin:32px 0 22px; border-radius:0 3px 3px 0; }
.caveat h2 { margin-top:0; color:var(--ink); font-size:18px; }
.caveat p, .caveat li { color:var(--ink-soft); }

/* Sources block */
.sources { margin-top:36px; padding-top:18px; border-top:1px solid var(--line); }
.sources h2 { font-size:12px; font-family:'JetBrains Mono',monospace; text-transform:uppercase; letter-spacing:0.14em; color:var(--ink-soft); margin-bottom:12px; font-weight:600; }
.sources ul { list-style:none; margin:0; padding:0; }
.sources li { font-size:13px; color:var(--ink-soft); margin-bottom:6px; line-height:1.55; padding-left:14px; position:relative; }
.sources li::before { content:"\00B7"; position:absolute; left:4px; color:var(--rust); font-weight:700; font-size:18px; line-height:0.9; }
.sources a { color:var(--rust-deep); border-bottom:1px solid rgba(200,71,31,0.4); text-decoration:none; }
.sources a:hover { border-bottom-color:var(--rust); }

/* Prev / Next */
.prevnext { display:flex; justify-content:space-between; gap:16px; margin-top:36px; padding-top:18px; border-top:1px dotted var(--line-strong); font-family:'JetBrains Mono',monospace; font-size:12px; }
.prevnext a { color:var(--ink-soft); text-decoration:none; max-width:48%; line-height:1.5; }
.prevnext a:hover { color:var(--rust); }
.prevnext .lbl { display:block; font-size:10px; letter-spacing:0.15em; text-transform:uppercase; color:var(--rust); margin-bottom:3px; }
.prevnext .next { text-align:right; margin-left:auto; }
.prevnext .spacer { flex:1; }

/* Index-only section cards */
.section-cards { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:24px 0 32px; }
@media (max-width:560px) { .section-cards { grid-template-columns:1fr; } }
.section-cards a { display:block; padding:20px 22px; background:#fff; border:1px solid var(--line); border-left:3px solid var(--rust); border-radius:14px; text-decoration:none; color:var(--ink-soft); box-shadow:var(--shadow); transition:transform 0.18s, box-shadow 0.18s; }
.section-cards a:hover { transform:translateY(-3px); box-shadow:0 2px 4px rgba(13,27,42,.05),0 24px 60px -22px rgba(13,27,42,.28); }
.section-cards .num { font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:0.18em; color:var(--rust); text-transform:uppercase; margin-bottom:6px; display:block; }
.section-cards .title { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:18px; color:var(--ink); margin-bottom:6px; letter-spacing:-0.01em; }
.section-cards .desc { font-size:13.5px; color:var(--ink-soft); line-height:1.55; }

/* Footer */
footer.site { margin-top:64px; padding-top:24px; border-top:1px solid var(--line); font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--ink-soft); line-height:1.8; text-align:center; }
footer.site a { color:var(--rust); text-decoration:none; }
