@import "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Inter+Tight:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";
:root{--ink-900:#0e0e0c;--ink-800:#1a1a17;--ink-700:#2a2a26;--ink-600:#4a4a44;--ink-500:#6b6b63;--ink-400:#9a9a91;--ink-300:#c4c4bb;--ink-200:#e2e2db;--ink-100:#efefe9;--ink-50:#f7f7f2;--paper:#fbfbf7;--white:#fff;--brand:#e2611c;--brand-hover:#c8500f;--brand-soft:#fbe9dc;--brand-ink:#5a2607;--green:#2f7d4a;--green-soft:#e3f1e7;--amber:#b8770a;--amber-soft:#fbefd3;--red:#b43a2a;--red-soft:#f8ded8;--blue:#2c5bb8;--blue-soft:#dce6f8;--violet:#5b3bb0;--violet-soft:#e7def7;--bg-canvas:var(--ink-100);--bg-surface:var(--white);--bg-rail:var(--ink-800);--border:var(--ink-200);--border-strong:var(--ink-300);--text:var(--ink-900);--text-muted:var(--ink-500);--text-faint:var(--ink-400);--font-display:"Instrument Serif", Georgia, serif;--font-sans:"Inter Tight", -apple-system, system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:20px;--r-pill:999px;--shadow-xs:0 1px 0 #0e0e0c0a;--shadow-sm:0 1px 2px #0e0e0c0f, 0 0 0 1px #0e0e0c0a;--shadow-md:0 4px 14px #0e0e0c14, 0 0 0 1px #0e0e0c0a;--shadow-lg:0 18px 40px #0e0e0c1f, 0 0 0 1px #0e0e0c0a}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{font-family:var(--font-sans);color:var(--text);background:var(--bg-canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01", "cv11";letter-spacing:-.005em}button{cursor:pointer;color:inherit;background:0 0;border:none;padding:0;font-family:inherit}input,textarea{font-family:inherit}.serif{font-family:var(--font-display);letter-spacing:-.015em}.mono{font-family:var(--font-mono);font-feature-settings:"ss01"}.pill{border-radius:var(--r-pill);background:var(--ink-50);height:24px;color:var(--ink-700);border:1px solid var(--border);white-space:nowrap;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex}.pill.green{background:var(--green-soft);color:var(--green);border-color:#0000}.pill.amber{background:var(--amber-soft);color:var(--amber);border-color:#0000}.pill.red{background:var(--red-soft);color:var(--red);border-color:#0000}.pill.blue{background:var(--blue-soft);color:var(--blue);border-color:#0000}.pill.violet{background:var(--violet-soft);color:var(--violet);border-color:#0000}.pill.brand{background:var(--brand-soft);color:var(--brand-ink);border-color:#0000}.pill.dark{background:var(--ink-800);color:var(--paper);border-color:#0000}.btn{border-radius:var(--r-md);background:var(--white);height:36px;color:var(--ink-900);border:1px solid var(--border);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.btn:hover{background:var(--ink-50)}.btn.primary{background:var(--ink-900);color:var(--paper);border-color:var(--ink-900)}.btn.primary:hover{background:var(--ink-700)}.btn.brand{background:var(--brand);color:#fff;border-color:var(--brand)}.btn.brand:hover{background:var(--brand-hover)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--ink-50)}.btn.sm{border-radius:8px;gap:6px;height:28px;padding:0 10px;font-size:12px}.btn.lg{height:44px;padding:0 18px;font-size:14px}.btn.icon{width:36px;padding:0}.btn.icon.sm{width:28px}.card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-xs)}.kbd{min-width:18px;height:18px;font-family:var(--font-mono);color:var(--ink-500);background:var(--white);border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:4px;justify-content:center;align-items:center;padding:0 5px;font-size:10.5px;font-weight:500;display:inline-flex}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--ink-300);background-clip:padding-box;border:3px solid #0000;border-radius:999px}::-webkit-scrollbar-track{background:0 0}.dark-rail ::-webkit-scrollbar-thumb{background:#44443e;border-color:#0000}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
