
:root { --bg:#f8f6f1; --fg:#1c1a17; --mute:#6a6660; --dim:#a29d96; --border:#d9d4c9; --soft:#e8e3d7; --panel:#fff; --accent:#2a5d8a; --red:#c0392b; --green:#2a7d4f; }
* { box-sizing:border-box }
body { margin:0; background:var(--bg); color:var(--fg); font:16px/1.6 'Source Serif 4', Georgia, serif; }
h1,h2,h3,h4 { font-family:'Fraunces', Georgia, serif; font-weight:500; letter-spacing:-.01em; margin:0 }
.masthead { max-width:900px; margin:0 auto; padding:36px 24px 10px }
.masthead h1 { font-size:34px } .subtitle { color:var(--mute); margin:6px 0 10px; font-size:17px }
.status { font:13px/1.5 'Inter', system-ui, sans-serif; color:var(--mute); border-top:1px solid var(--soft); padding-top:10px; margin:0 }
.toc { max-width:900px; margin:0 auto; padding:14px 24px; font-family:'Inter', system-ui, sans-serif; font-size:14px; display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:10px }
.toc ol { display:flex; gap:18px; flex-wrap:wrap; margin:0; padding:0; list-style:none; counter-reset:t }
.toc li { counter-increment:t } .toc li::before { content:counter(t) ". "; color:var(--dim) }
.toc a, .maplink { color:var(--accent); text-decoration:none } .toc a:hover { text-decoration:underline }
.mapfig { margin:8px auto 0; padding:0 24px; max-width:1480px }
.mapfig iframe { width:100%; height:min(78vh,720px); border:1px solid var(--border); border-radius:8px; background:var(--panel); display:block }
.mapfig.flash iframe { box-shadow:0 0 0 3px var(--accent) }
figcaption { font:12.5px/1.5 'Inter', system-ui, sans-serif; color:var(--mute); margin-top:6px }
.show-demo, button.show { font:11px/1 'Inter', system-ui, sans-serif; letter-spacing:.04em; text-transform:uppercase; color:var(--accent); background:none; border:1px solid var(--accent); border-radius:3px; padding:3px 7px; cursor:pointer; vertical-align:middle; margin-left:6px }
button.show:hover { background:var(--accent); color:#fff }
main { max-width:900px; margin:0 auto; padding:10px 24px 60px }
.topic { padding:34px 0 10px; border-top:2px solid var(--accent); margin-top:34px }
.topic h2 { font-size:30px; margin-bottom:6px } .lede { color:var(--mute); margin:0 0 18px; font-size:17px }
.entry { margin:0 0 26px } .entry h3 { font-size:21px; margin:0 0 6px; line-height:1.25 }
.entry p { margin:0 0 9px; max-width:70ch }
.tag { font:10px/1 'JetBrains Mono', ui-monospace, monospace; letter-spacing:.06em; text-transform:uppercase; border:1px solid var(--border); border-radius:3px; padding:2px 5px; color:var(--mute); background:var(--panel); vertical-align:middle; margin-right:5px; white-space:nowrap }
.tag[data-tier=CHECKED] { color:var(--green); border-color:var(--green) } .tag[data-tier=MEASURED] { color:var(--fg); border-color:var(--fg) }
.tag[data-tier=NOT_ESTABLISHED] { color:var(--red); border-color:var(--red) }
.aside { font-size:14.5px; color:var(--mute); border-left:2px solid var(--border); padding-left:10px }
.prov { font:12px/1.5 'Inter', system-ui, sans-serif; color:var(--dim); margin:4px 0 0 }
.mech { margin:2px 0 0; font:13px/1.5 'Inter', system-ui, sans-serif; color:var(--mute) } .mech summary { cursor:pointer; color:var(--dim); font-size:12px; list-style:none } .mech summary::before { content:'+ ' } .mech[open] summary::before { content:'– ' } .mech p { margin:6px 0 0; max-width:70ch }
.tablewrap { overflow-x:auto; margin:6px 0 12px } table { border-collapse:collapse; font:13px/1.4 'Inter', system-ui, sans-serif; width:100% }
th,td { text-align:right; padding:4px 8px; border-bottom:1px solid var(--soft) } th:first-child,td:first-child { text-align:left } th { color:var(--dim); font-weight:600 }
.sub { font:12px/1 'Inter', system-ui, sans-serif; text-transform:uppercase; letter-spacing:.09em; color:var(--dim); margin:28px 0 12px }
.dispute { background:var(--panel); border:1px solid var(--border); border-left:3px solid var(--red); border-radius:6px; padding:14px 16px; margin:0 0 14px }
.dispute h4 { font-size:17px; margin-bottom:8px } .cid { font:12px 'JetBrains Mono', ui-monospace, monospace; color:var(--dim); margin-right:6px }
.status { } .dispute .status { font:10.5px 'Inter', system-ui, sans-serif; text-transform:uppercase; letter-spacing:.06em; color:var(--dim); margin-left:8px; border:0; padding:0 }
.side { font-size:15px; margin:0 0 10px } .side b { color:var(--accent); font-family:'JetBrains Mono', ui-monospace, monospace; font-weight:500; font-size:13px } .src { font:12px 'Inter', system-ui, sans-serif; color:var(--dim) }
.ne { padding-left:20px; font-size:15px } .ne li { margin-bottom:8px } .ne i { color:var(--mute) }
.howto { max-width:900px; margin:0 auto; padding:0 24px 60px; font:14px/1.6 'Inter', system-ui, sans-serif; color:var(--mute) }
.howto summary { cursor:pointer; padding:10px 0; border-top:1px solid var(--soft) } .tiers { padding-left:18px } .tiers li { margin-bottom:6px }
.tomap { position:fixed; right:18px; bottom:18px; z-index:5; font:12px/1 'Inter', system-ui, sans-serif; letter-spacing:.04em; text-transform:uppercase; color:#fff; background:var(--accent); border-radius:999px; padding:9px 14px; text-decoration:none; box-shadow:0 4px 12px rgba(0,0,0,.15) }
@media (max-width:700px) { .mapfig iframe { height:60vh } .toc ol { gap:10px } }
