:root{--bg:#fbfaf7;--fg:#1a1a1a;--muted:#6b6b6b;--line:#e4e1da;--card:#ffffff;--accent:#0b5fff;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
--A:#1f8a4c;--B:#b8860b;--C:#d9731a;--D:#c8322b;--F:#3a0f0f;--NA:#9a9a9a}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111214;--fg:#ececec;--muted:#9a9a9a;--line:#2a2b2f;--card:#191a1d;--accent:#6ea0ff;--A:#3fbf74;--B:#e0b23a;--C:#ff9a4a;--D:#ff6b61;--F:#ff2d2d}}
*{box-sizing:border-box}html{font-size:17px}body{margin:0;background:var(--bg);color:var(--fg);font:1rem/1.55 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1040px;margin:0 auto;padding:0 16px}
header.top{border-bottom:1px solid var(--line)}header.top .wrap{display:flex;align-items:center;gap:20px;height:56px}
.brand{font-family:var(--mono);font-weight:700;font-size:1.05rem;color:var(--fg)}.brand span{color:var(--muted);font-weight:400}
nav a{color:var(--muted);margin-right:14px;font-size:.92rem}nav a:hover{color:var(--fg)}
.hero{padding:56px 0 28px}.hero h1{font-size:clamp(1.9rem,4.5vw,3rem);line-height:1.1;margin:0 0 12px;letter-spacing:-.02em}
.hero p{max-width:60ch;color:var(--muted);font-size:1.08rem;margin:0 0 8px}
.stats{display:flex;gap:28px;flex-wrap:wrap;margin:20px 0 0;font-family:var(--mono);font-size:.9rem;color:var(--muted)}.stats b{color:var(--fg);font-size:1.2rem;display:block}
.g{display:inline-block;min-width:2.1em;padding:.05em .45em;border-radius:6px;font-family:var(--mono);font-weight:700;text-align:center;color:#fff;background:var(--NA)}
.g-A{background:var(--A)}.g-B{background:var(--B)}.g-C{background:var(--C)}.g-D{background:var(--D)}.g-F{background:var(--F)}.g-NA{background:var(--NA);color:#fff}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .g-F{background:#7a1010}}
table.board{width:100%;border-collapse:collapse;margin:20px 0 40px;font-size:.95rem}
table.board th{text-align:left;font-weight:600;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;padding:8px 10px;border-bottom:1px solid var(--line);cursor:pointer;white-space:nowrap}
table.board td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}table.board td.sub{white-space:nowrap}
table.board tr:hover td{background:color-mix(in srgb,var(--card) 60%,var(--bg))}
.hyg{font-family:var(--mono);letter-spacing:.15em;font-size:.85rem;white-space:nowrap}.hyg .y{color:var(--A)}.hyg .n{color:var(--D)}.hyg .z{color:var(--muted)}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px;margin:18px 0}
.card h2{margin:0 0 6px;font-size:1.15rem}.card .mech{margin:6px 0 10px}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;font-size:.95rem}.kv dt{color:var(--muted)}.kv dd{margin:0}
ul.receipts{padding-left:18px;margin:8px 0}ul.receipts li{margin:4px 0;font-size:.92rem}blockquote{margin:4px 0 6px;padding-left:12px;border-left:3px solid var(--line);color:var(--muted);font-size:.9rem}
.tier{display:inline-block;font-size:.78rem;border:1px solid var(--line);border-radius:999px;padding:.05em .6em;color:var(--muted);margin-left:8px}
.summary{font-size:1.15rem;max-width:70ch}
.hygtable{width:100%;border-collapse:collapse;font-size:.92rem}.hygtable td{padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}.hygtable td:first-child{white-space:nowrap;font-family:var(--mono);font-size:.85rem}
pre{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px;overflow:auto;font-size:.85rem}code{font-family:var(--mono);font-size:.9em}
.prose{max-width:76ch}.prose h1{letter-spacing:-.02em}.prose table{border-collapse:collapse;width:100%;font-size:.93rem}.prose th,.prose td{text-align:left;padding:8px;border-bottom:1px solid var(--line);vertical-align:top}
footer{border-top:1px solid var(--line);margin-top:60px;padding:24px 0 40px;color:var(--muted);font-size:.88rem}footer a{color:var(--muted)}
.notes{white-space:pre-line;color:var(--muted);font-size:.93rem}
.status-graduated{color:var(--A);font-weight:600}.status-disputed{color:var(--C);font-weight:600}
.sub{color:var(--muted);font-size:.9rem}
@media(max-width:700px){table.board .hide-sm{display:none}html{font-size:16px}.hero{padding:36px 0 16px}}
