:root{--bg:#eef1f3;--panel:#f8f9fa;--ink:#1a232c;--mute:#5d6975;--line:#d3d9de;--link:#1f5f99;--code:#e3e8ec}
@media (prefers-color-scheme:dark){:root{--bg:#14191e;--panel:#1b2128;--ink:#e3e8ec;--mute:#93a0ac;--line:#2c353e;--link:#7fb4e6;--code:#222a32}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}
.wrap{max-width:62rem;margin:0 auto;padding:0 16px}
header.top{border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;height:3.6rem}
.brand{display:flex;align-items:center;gap:.6rem;color:var(--ink);font-weight:650;font-size:1.08rem;letter-spacing:.01em}
.brand:hover{text-decoration:none}
.brand svg{width:26px;height:26px}
nav a{margin-left:1.4rem;color:var(--mute)}
nav a:hover,nav a[aria-current]{color:var(--ink);text-decoration:none}
.hero{padding:3.2rem 0 1.6rem}
.hero h1{margin:0 0 .6rem;font-size:clamp(1.9rem,5vw,2.8rem);line-height:1.12;font-weight:700;letter-spacing:-.015em}
.hero p{margin:0;max-width:40rem;color:var(--mute);font-size:1.06rem}
.facts{display:flex;flex-wrap:wrap;gap:.4rem 2rem;margin:1.3rem 0 0;padding:0;list-style:none;color:var(--mute);font-size:.95rem}
.facts b{color:var(--ink);font-weight:650}
.shelf{display:flex;align-items:flex-end;gap:3px;margin:1.6rem 0 0;padding:8px .6rem 0;height:9.5rem;border-bottom:7px solid #7b6a58;overflow:hidden}
.spine{flex:1 1 0;min-width:22px;max-width:96px;display:flex;align-items:center;justify-content:center;text-align:center;padding:.3rem 0;border-radius:3px 3px 0 0;color:#fff;font-weight:700;font-size:.68rem;line-height:1.05;overflow:hidden;white-space:nowrap;writing-mode:vertical-rl;transition:transform .12s}
.spine:hover{transform:translateY(-6px);text-decoration:none}
.legend{display:flex;flex-wrap:wrap;gap:.3rem 1.1rem;margin:.9rem 0 0;padding:0;list-style:none;font-size:.85rem;color:var(--mute)}
.legend i{display:inline-block;width:.7rem;height:.7rem;border-radius:2px;margin-right:.35rem;vertical-align:-.05rem}
section.group{margin:3rem 0 0}
section.group h2{margin:0;font-size:1.3rem;font-weight:680}
section.group>p{margin:.15rem 0 .9rem;color:var(--mute)}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:6px;background:var(--panel)}
table{width:100%;border-collapse:collapse;font-size:.94rem}
th,td{padding:.55rem .9rem;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
th{font-weight:600;color:var(--mute);font-size:.86rem}
tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right}
tr.sub td{background:var(--code);font-weight:600;font-size:.88rem;white-space:normal}
.how{margin:3.2rem 0 0}
.how h2{margin:0 0 .5rem;font-size:1.3rem}
pre{margin:.6rem 0 0;padding:1rem 1.1rem;background:var(--code);border-radius:6px;overflow-x:auto;font-size:.88rem;line-height:1.6}
footer{margin:4rem 0 0;padding:1.6rem 0 2.4rem;border-top:1px solid var(--line);color:var(--mute);font-size:.88rem}
footer p{margin:.2rem 0}
main.text{padding:2.4rem 0 0;max-width:40rem}
main.text h1{margin:0 0 1rem;font-size:2rem;letter-spacing:-.01em}
main.text h2{margin:2rem 0 .4rem;font-size:1.15rem}
main.text p,main.text li{color:var(--ink)}
.missing{padding:5rem 0 1rem}
.missing h1{margin:0;font-size:3.4rem;letter-spacing:-.02em}
.missing p{color:var(--mute);margin:.5rem 0 0}
@media (max-width:640px){.hide-sm{display:none}td.file{white-space:normal;word-break:break-all}nav a{margin-left:1rem}.shelf{height:7.5rem}.hero{padding-top:2rem}th,td{padding:.5rem .65rem}}
