:root{--bg:#0d0c14;--surface-1:#100e18;--surface-2:#15131d;--surface-input:#16141f;--surface-hover:#1c1a27;--surface-hover-strong:#221f2e;--drawer:#110f19;--border:#ffffff0f;--border-07:#ffffff12;--border-08:#ffffff14;--border-16:#ffffff29;--text:#eceaf4;--text-bright:#cfccdb;--text-soft:#cdcad9;--text-dim:#9a96ab;--text-muted:#7d7a92;--text-faint:#615e73;--text-faint-2:#56536a;--text-faintest:#3f3d52;--accent:#8b7cff;--accent-hover:#9d90ff;--campaign-b:#d8a24a;--on-accent:#13111c;--cat-session:#8b7cff;--cat-combat:#e0645f;--cat-travel:#6a9fd8;--cat-lore:#5cc2a2;--cat-note:#9794ab;--font-display:"Spectral", serif;--font-ui:"Hanken Grotesk", system-ui, sans-serif;--canvas-bg:radial-gradient(1100px 520px at 72% -12%, #8b7cff1a, transparent 62%), radial-gradient(900px 480px at 8% 108%, #d8a24a0d, transparent 60%), #0d0c14}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;font-size:14px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#ffffff2e}::-webkit-scrollbar-track{background:0 0}input::placeholder{color:#5a5770}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}button{font-family:inherit}@keyframes fadeIn{0%{transform:translateY(7px)}to{transform:none}}@keyframes slideIn{0%{transform:translate(20px)}to{transform:none}}@keyframes scrimIn{0%{opacity:0}to{opacity:1}}
