@charset "UTF-8";:root{--paper: #f8f5f0;--surface: #fdfcf9;--surface-alt: #f3efe8;--surface-muted: #ece8e0;--ink: #1a1a2e;--ink-strong: #0d0d1a;--muted: #6b6560;--border: #ddd8d0;--border-strong: #c8c2b8;--success: #2f6b2f;--warning: #9b6a12;--error: #8b3a3a;--info: #2a4a7a;--font-serif: "Instrument Serif", Georgia, "Times New Roman", serif;--font-sans: "Instrument Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--sp-2xs: 2px;--sp-xs: 4px;--sp-sm: 8px;--sp-md: 16px;--sp-lg: 24px;--sp-xl: 32px;--sp-2xl: 48px;--sp-3xl: 64px;--r-card: 18px;--r-el: 8px;--r-pill: 4px;--r-round: 9999px;--max-w: 1040px;--grain: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E")}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--paper: #0f1013;--surface: #16171c;--surface-alt: #1c1d24;--surface-muted: #24252e;--ink: #e8e4dc;--ink-strong: #f5f2ec;--muted: #8a8580;--border: #2a2b34;--border-strong: #3a3c48;--success: #6acb6a;--warning: #f1b86a;--error: #e87878;--info: #6a9ef1}}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;background-image:var(--grain);background-size:256px 256px;pointer-events:none;z-index:9999;opacity:1}h1,h2,h3{font-family:var(--font-serif);font-weight:400;color:var(--ink-strong);margin:0 0 var(--sp-md);line-height:1.1}h1{font-size:36px}h2{font-size:28px}h3{font-size:22px}p{margin:0 0 var(--sp-md)}a{color:var(--ink);text-decoration:none}.mono{font-family:var(--font-mono)}.muted{color:var(--muted)}.serif{font-family:var(--font-serif)}.section-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--sp-lg)}.rule{border:0;border-top:1px solid var(--border);margin:var(--sp-lg) 0}.btn{font-family:var(--font-sans);font-size:14px;font-weight:500;padding:var(--sp-sm) var(--sp-md);border-radius:var(--r-el);border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);cursor:pointer;transition:background .15s ease-out,border-color .15s ease-out}.btn:hover{background:var(--surface-alt)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn-primary:hover{background:var(--ink-strong)}.btn-danger{color:var(--error);border-color:var(--error);background:transparent}.btn-danger:hover{background:color-mix(in srgb,var(--error) 10%,transparent)}.badge{display:inline-block;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:var(--r-pill);border:1px solid var(--border-strong);color:var(--muted)}.badge.ok{color:var(--success);border-color:color-mix(in srgb,var(--success) 45%,transparent)}.badge.warn{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 45%,transparent)}.badge.err{color:var(--error);border-color:color-mix(in srgb,var(--error) 45%,transparent)}.stack{display:flex;flex-direction:column;gap:var(--sp-md)}.row{display:flex;align-items:center;gap:var(--sp-md)}.grid{display:grid;gap:var(--sp-md)}.empty{color:var(--muted);font-style:italic;padding:var(--sp-lg) 0}
