@import "https://fonts.googleapis.com/css2?family=Sora:wght@500;600;700;800&family=Manrope:wght@400;500;600;700&family=JetBrains+Mono:wght@500;600;700&display=swap";:root,[data-theme=dark]{--bg:#0a0e17;--bg-elevated:#121a28;--card-bg:#ffffff0e;--card-solid:#141c2b;--text:#eaf1fb;--text-muted:#eaf1fb8f;--border:#ffffff21;--border-strong:#ffffff38;--accent:#34e4c4;--accent-hover:#6ff4dd;--accent-tint-soft:#34e4c41a;--accent-tint-medium:#34e4c42e;--accent-tint-strong:#34e4c44d;--p1:#34e4c4;--p2:#ff2e6e;--glass-shadow:0 12px 38px #00000080, inset 0 1px 0 #ffffff17;--device-body:linear-gradient(160deg, #2a3344, #10151f 60%);--atmo:radial-gradient(130% 85% at 10% -8%, #34e4c429, transparent 52%), radial-gradient(120% 80% at 98% 108%, #a78bfa2e, transparent 52%), radial-gradient(90% 60% at 50% 50%, #38bdf80d, transparent 70%)}[data-theme=light]{--bg:#e9edf4;--bg-elevated:#fff;--card-bg:#ffffffbd;--card-solid:#fff;--text:#0d1422;--text-muted:#0d14228f;--border:#0d14221c;--border-strong:#0d142233;--accent:#0eae99;--accent-hover:#12c9b0;--accent-tint-soft:#0eae991a;--accent-tint-medium:#0eae992b;--accent-tint-strong:#0eae9942;--p1:#0eae99;--p2:#e5106a;--glass-shadow:0 12px 30px #0d142221, inset 0 1px 0 #ffffffb3;--device-body:linear-gradient(160deg, #dfe4ec, #c3cad6 70%);--atmo:radial-gradient(130% 85% at 10% -8%, #0eae991f, transparent 52%), radial-gradient(120% 80% at 98% 108%, #a78bfa24, transparent 52%), radial-gradient(90% 60% at 50% 50%, #38bdf80f, transparent 70%)}:root{--font-display:"Sora", system-ui, sans-serif;--font-body:"Manrope", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--ease-out:cubic-bezier(.22, .7, .3, 1);--ease-pop:cubic-bezier(.34, 1.56, .64, 1);--r-sm:10px;--r-md:14px;--r-lg:20px;--r-xl:26px;--r-pill:999px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{font-family:var(--font-body);-webkit-font-smoothing:antialiased;background:#05070c;justify-content:center;align-items:center;min-height:100vh;display:flex}button,input{font-family:inherit}.app-shell{background:var(--atmo), var(--bg);width:100%;max-width:430px;height:100dvh;max-height:900px;color:var(--text);flex-direction:column;display:flex;position:relative;overflow:hidden}@keyframes pop-in{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes drop-in{0%{transform:translateY(-280px)}to{transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes turn-dot-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes win-flash{0%,to{background:var(--accent-tint-strong)}50%{background:var(--accent-tint-medium);box-shadow:inset 0 0 0 1.5px var(--accent)}}@media (prefers-reduced-motion:no-preference){.pop-in{animation:pop-in .32s var(--ease-pop) both}.drop-in{animation:drop-in .3s var(--ease-pop) both}.shake{animation:shake .35s var(--ease-out) both}.pulse{animation:.7s ease-in-out infinite pulse}.sheet-up{animation:sheet-up .3s var(--ease-out) both}.turn-dot{animation:1s step-end infinite turn-dot-blink}.win-flash{animation:.45s 4 win-flash}}@media (hover:hover){.lift:hover{transition:transform .2s var(--ease-out);transform:translateY(-4px)}.card-hover:hover{box-shadow:var(--glass-shadow), 0 0 0 1.5px var(--accent)}}.ttt-cell:hover{background:var(--accent-tint-soft)!important}
