@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&family=Spectral:ital,wght@0,400;0,500;0,600;1,400&display=swap");:root{--font-display:"Space Grotesk",system-ui,sans-serif;--font-ui:"IBM Plex Sans",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;--font-serif:"Spectral",Georgia,serif;--bg-base:#0E0F13;--bg-sunken:#0A0B0E;--bg-panel:#16181F;--bg-elevated:#1D2027;--bg-hover:#23262F;--bg-active:#2B2F3A;--line:#272B35;--line-soft:#1E222B;--line-strong:#353A47;--text-hi:#ECEDF1;--text:#C2C7D2;--text-mid:#8B92A0;--text-low:#5E6573;--text-dim:#444a57;--accent:#E5A24B;--accent-hi:#F2B868;--accent-press:#C8863A;--accent-soft:rgba(229,162,75,0.14);--accent-line:rgba(229,162,75,0.40);--on-accent:#1A1206;--scene:#5B9BD5;--choice:#E5A24B;--cond:#B58CE0;--action:#5FB87E;--jump:#E0708E;--end:#7A8290;--scene-soft:rgba(91,155,213,0.15);--choice-soft:rgba(229,162,75,0.15);--cond-soft:rgba(181,140,224,0.15);--action-soft:rgba(95,184,126,0.15);--jump-soft:rgba(224,112,142,0.15);--ok:#5FB87E;--warn:#E5A24B;--err:#E0607A;--info:#5B9BD5;--r-xs:5px;--r-sm:7px;--r-md:10px;--r-lg:14px;--r-xl:20px;--rail-w:60px;--topbar-h:52px;--sh-sm:0 1px 2px rgba(0,0,0,.4);--sh-md:0 4px 16px rgba(0,0,0,.45);--sh-lg:0 18px 50px rgba(0,0,0,.55);--sh-pop:0 12px 40px rgba(0,0,0,.6),0 0 0 1px var(--line);--grid-dot:rgba(255,255,255,0.045)}[data-theme=light]{--bg-base:#F4F2EE;--bg-sunken:#EAE7E0;--bg-panel:#FBFAF7;--bg-elevated:#FFFFFF;--bg-hover:#F0EDE7;--bg-active:#E7E2D9;--line:#E0DBD1;--line-soft:#ECE8E0;--line-strong:#CFC8BB;--text-hi:#1C1A16;--text:#3D3A33;--text-mid:#6E6A60;--text-low:#928D81;--text-dim:#B4AEA1;--accent:#B6792A;--accent-hi:#C98C3B;--accent-press:#9A6320;--accent-soft:rgba(182,121,42,0.12);--accent-line:rgba(182,121,42,0.35);--on-accent:#FFFFFF;--scene:#3B7BBF;--choice:#B6792A;--cond:#8B5DC0;--action:#3E9460;--jump:#C84F6F;--grid-dot:rgba(0,0,0,0.05);--sh-pop:0 12px 40px rgba(80,70,50,.18),0 0 0 1px var(--line)}[data-accent=violet]{--accent:#9B7BE0;--accent-hi:#B79BF0;--accent-press:#7E5DC8;--accent-soft:rgba(155,123,224,.15);--accent-line:rgba(155,123,224,.4);--on-accent:#15101F;--choice:#9B7BE0;--choice-soft:rgba(155,123,224,.15)}[data-accent=cyan]{--accent:#46B8C4;--accent-hi:#62D0DB;--accent-press:#369AA5;--accent-soft:rgba(70,184,196,.15);--accent-line:rgba(70,184,196,.4);--on-accent:#06181A;--choice:#46B8C4;--choice-soft:rgba(70,184,196,.15)}[data-accent=rose]{--accent:#E0708E;--accent-hi:#F08AA6;--accent-press:#C8556F;--accent-soft:rgba(224,112,142,.15);--accent-line:rgba(224,112,142,.4);--on-accent:#1E0A0F;--choice:#E0708E;--choice-soft:rgba(224,112,142,.15)}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%}body{background:var(--bg-base);color:var(--text);font-family:var(--font-ui);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}::selection{background:var(--accent-soft);color:var(--text-hi)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:6px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--text-dim);border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}button{cursor:pointer}button,input,textarea{font-family:inherit}.mono{font-family:var(--font-mono)}.serif{font-family:var(--font-serif)}.display{font-family:var(--font-display)}.chip{display:inline-flex;align-items:center;gap:6px;font-weight:600;letter-spacing:.02em;padding:3px 9px;border-radius:100px;border:1px solid var(--line);white-space:nowrap}.chip,.kbd{font-size:11px;color:var(--text-mid);background:var(--bg-elevated)}.kbd{font-family:var(--font-mono);padding:1px 6px;border-radius:5px;border:solid var(--line-strong);border-width:1px 1px 2px}:focus-visible{outline:2px solid var(--accent-line);outline-offset:1px}@media (max-width:1200px){[data-hide-narrow]{display:none!important}}.app-root{height:100vh;display:flex;flex-direction:column}.spin svg{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.fade-in{animation:fadeIn .25s ease both}@keyframes fadeIn{0%{transform:translateY(5px)}to{transform:none}}.reveal-in{animation:revealIn .35s ease both}@keyframes revealIn{0%{transform:translateY(8px)}to{transform:none}}@keyframes blink{0%,50%{opacity:1}50.01%,to{opacity:0}}@keyframes fall{0%{transform:translateY(0)}to{transform:translateY(440px)}}.sprite-in{animation:spriteIn .42s ease both}@keyframes spriteIn{0%{transform:translateX(-50%) translateY(16px)}to{transform:translateX(-50%) translateY(0)}}.choice-in{animation:choiceIn .3s ease both}@keyframes choiceIn{0%{transform:translateY(10px)}to{transform:translateY(0)}}