:root{--bg: #fbfaf6;--paper: #ffffff;--fg: #111111;--muted: #555555;--rule: #b4b0a4;--rule-soft: #d6d2c4;--rule-strong: #1a1a1a;--accent: #1f4e79;--accent-soft: #e8eef5;--accent-2: #4a6c92;--good: #1f4e79;--bad: #8b3a3a;--src: #6b6b6b;--max: 1080px;--max-tight: 760px;--mono: ui-monospace, "SF Mono", "Menlo", "Consolas", monospace;--serif: "Charter", "Iowan Old Style", "Source Serif Pro", "Georgia", "Cambria", serif;--sans: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font:14.5px/1.55 var(--serif);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent}a:hover{border-bottom-color:var(--accent)}code,.mono{font-family:var(--mono);font-size:.88em}code{background:#efece4;padding:0 4px;border-radius:2px}pre{background:#1f1f1f;color:#e8e6dd;padding:14px 16px;border-radius:4px;overflow-x:auto;font:12.5px/1.5 var(--mono)}pre code{background:transparent;padding:0;border-radius:0;color:inherit;font-size:inherit}.site{min-height:100vh;display:flex;flex-direction:column}header.top{border-bottom:1px solid var(--rule);background:var(--paper)}header.top .inner{max-width:var(--max);margin:0 auto;padding:16px 32px 14px;display:flex;align-items:baseline;gap:28px;flex-wrap:wrap}header.top .brand{font-weight:700;font-size:14.5px;letter-spacing:-.005em;color:var(--fg);border:none}header.top .brand i{font-style:italic;color:var(--muted);font-weight:400}header.top nav{display:flex;gap:18px;font-size:13px;flex-wrap:wrap}header.top nav a{color:var(--fg);border:none;padding-bottom:2px;border-bottom:1px solid transparent}header.top nav a:hover,header.top nav a.active{border-bottom-color:var(--fg)}main{flex:1;max-width:var(--max);margin:0 auto;padding:36px 32px 80px;width:100%}main.tight{max-width:var(--max-tight)}footer.bottom{border-top:1px solid var(--rule);background:var(--paper);font-size:11.5px;color:var(--muted);font-family:var(--mono)}footer.bottom .inner{max-width:var(--max);margin:0 auto;padding:14px 32px;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}h1{font-size:24px;font-weight:600;letter-spacing:-.01em;margin:0 0 6px;line-height:1.22}h2{font-size:13.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin:36px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--rule)}h2 .num{color:var(--muted);font-weight:600;margin-right:8px}h3{font-size:13.5px;font-weight:700;margin:18px 0 6px}h4{font-size:12.5px;font-weight:700;margin:14px 0 4px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.subtitle{color:var(--muted);font-style:italic;margin:0 0 6px}.eyebrow{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.hero{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;margin:14px 0 32px}.hero .lede{font-size:17px;line-height:1.5;color:#1a1a1a}.hero .lede b{color:var(--accent)}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.metric{background:var(--paper);border:1px solid var(--rule);padding:12px 14px}.metric .label{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}.metric .value{font-size:22px;font-weight:600;letter-spacing:-.01em;color:var(--fg)}.metric .value.accent{color:var(--accent)}.metric .delta{font-size:12px;color:var(--muted);margin-top:2px}.card{background:var(--paper);border:1px solid var(--rule);padding:16px 18px}.cards-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.cards-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}table.data{width:100%;border-collapse:collapse;margin:8px 0;font-size:12.5px;font-variant-numeric:tabular-nums}table.data thead th{border-top:1.25px solid var(--rule-strong);border-bottom:1px solid var(--rule-strong);text-align:left;padding:7px 10px 6px;font-weight:700;font-size:11.5px;vertical-align:bottom}table.data tbody td,table.data tfoot td{padding:5px 10px;border-bottom:1px solid var(--rule-soft);vertical-align:middle}table.data tbody tr:last-child td{border-bottom:1px solid var(--rule-strong)}table.data tfoot td{border-top:1px solid var(--rule-strong);border-bottom:1.25px solid var(--rule-strong);font-weight:700}table.data.tight tbody td,table.data.tight tfoot td{padding:4px 10px}table.data .num{text-align:right}table.data .name{font-family:var(--mono);font-size:11.5px;color:#2a2a2a}table.data .muted{color:var(--muted)}table.data .good{color:var(--good)}table.data .bad{color:var(--bad)}caption.tcap,.tcap{font-size:12px;color:var(--muted);text-align:left;margin:14px 0 4px;font-style:italic}.tcap b{color:var(--fg);font-style:normal}.stack{display:flex;height:12px;background:#e8e6dd;overflow:hidden;border:1px solid #c8c4b6}.stack.tall{height:18px}.stack .seg{display:inline-block;height:100%}.hbar-row{display:grid;grid-template-columns:130px 1fr 60px;align-items:center;gap:10px;padding:3px 0;font-size:12px}.hbar-row .lbl{font-family:var(--mono);font-size:11.5px;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbar-row .bar{background:#efece4;height:10px;border:1px solid var(--rule-soft);position:relative}.hbar-row .bar>i{display:block;background:var(--accent);height:100%}.hbar-row .v{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);font-size:11.5px}.legend{display:flex;flex-wrap:wrap;gap:12px;color:var(--muted);font-size:11.5px;margin:6px 0 10px}.legend .lg{display:inline-flex;align-items:center;gap:6px}.legend .lg i{display:inline-block;width:10px;height:10px;border:1px solid rgba(0,0,0,.15)}.proto-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.proto-card{background:var(--paper);border:1px solid var(--rule);padding:12px 14px}.proto-card a.title{font-family:var(--mono);font-weight:700;font-size:13.5px;color:var(--fg);border:none}.proto-card a.title:hover{color:var(--accent)}.proto-card .meta{color:var(--muted);font-size:11.5px;margin-top:2px}.proto-card p{font-size:12.5px;margin:6px 0 0}.msg{border:1px solid var(--rule);background:var(--paper);margin:14px 0}.msg>.head{padding:9px 12px;border-bottom:1px solid var(--rule);display:flex;justify-content:space-between;align-items:baseline;gap:12px;background:#f6f3ea}.msg>.head .name{font-family:var(--mono);font-weight:700;font-size:13.5px}.msg>.head .name .nest{color:var(--muted);font-weight:400}.msg>.head .kind{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;color:var(--muted);letter-spacing:.06em}.msg .doc{padding:8px 12px;color:#333;font-size:13px;border-bottom:1px solid var(--rule-soft);background:#fbfaf6}.fields{width:100%;border-collapse:collapse;font-size:12.5px}.fields th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;padding:6px 10px;border-bottom:1px solid var(--rule);background:#faf8f1}.fields td{padding:6px 10px;border-bottom:1px solid var(--rule-soft);vertical-align:top}.fields tr:last-child td{border-bottom:none}.fields td.num{text-align:right;font-variant-numeric:tabular-nums;width:40px;color:var(--muted)}.fields td.lbl{font-family:var(--mono);font-size:11px;color:var(--muted);width:70px}.fields td.type{font-family:var(--mono);font-size:12px;color:#1a1a1a;width:30%}.fields td.type a{color:var(--accent);border-bottom:1px dotted var(--accent)}.fields td.fname{font-family:var(--mono);font-size:12px;font-weight:600;color:#111}.fields td.fname .oneof{color:var(--muted);font-weight:400;font-size:11px;margin-left:4px}.fields td.doc{color:#333;font-size:12px}.fields td.opts{color:var(--muted);font-size:11px;font-family:var(--mono)}.toc{position:sticky;top:16px;background:var(--paper);border:1px solid var(--rule);padding:10px 12px;font-size:12px}.toc h4{margin:0 0 6px;text-transform:uppercase;font-size:10.5px;letter-spacing:.06em;color:var(--muted)}.toc ul{list-style:none;margin:0;padding:0}.toc li{margin:1px 0}.toc a{font-family:var(--mono);font-size:11.5px;color:var(--fg);border:none}.toc a:hover{color:var(--accent)}.with-toc{display:grid;grid-template-columns:200px 1fr;gap:28px;align-items:start}@media(max-width:880px){.hero,.with-toc,.cards-row,.cards-2,.proto-list,.metric-grid{grid-template-columns:1fr}}@media print{header.top,footer.bottom,.toc{display:none}main{max-width:none;padding:12px}.card,.msg{break-inside:avoid}}
