:root{--cyan: #22d3ee;--pink: #f472d0;--panel: rgba(12, 16, 38, .85);--border: #2a3566;font-family:gg sans,Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0}#root{min-height:100%}body{background:radial-gradient(1000px 720px at 50% -5%,#141a42,#080b1c 52%,#04050d);background-attachment:fixed;color:#e2e8f0;-webkit-font-smoothing:antialiased;overflow-x:hidden}.screen,.app{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:16px 12px}.panel,.card{width:100%;max-width:340px;margin:auto;background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:28px 22px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;box-shadow:0 0 40px #22d3ee29,inset 0 0 30px #0000004d;animation:rise .4s ease both}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.ttLogo{display:block;filter:drop-shadow(0 0 18px rgba(34,211,238,.5))}.neonTitle{font-size:44px;font-weight:900;letter-spacing:8px;margin:8px 0 14px;color:#fff;text-shadow:0 0 10px var(--cyan),0 0 26px rgba(34,211,238,.7)}.neonTitle--sm{font-size:30px;letter-spacing:6px}.subtitle{margin:0 0 8px;color:#7c86b8;font-size:12px;letter-spacing:2px;text-transform:uppercase}.footer{margin:14px 0 0;color:#4b5580;font-size:11px;letter-spacing:3px}.hint{color:#5b648f;font-size:11px;text-align:center;margin-top:12px;line-height:1.7}.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;font-size:13px;font-weight:600;border:1px solid var(--border);background:#0f142d99}.pillDot{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}.pill--ok{color:#4ade80}.pill--wait{color:#facc15}.pill--dev{color:var(--cyan)}.pill--err{color:#f87171}.pill--wait .pillDot{animation:blink 1s ease-in-out infinite}@keyframes blink{50%{opacity:.25}}.infoBox{margin-top:12px;padding:12px;background:#0f142d99;border:1px solid var(--border);border-radius:10px;font-size:13px;display:flex;flex-direction:column;gap:6px;text-align:left}.errCode{font-family:ui-monospace,monospace;font-size:11px;color:#f87171;word-break:break-word}.devTitle{color:var(--cyan);font-weight:700}.devText{color:#94a3b8;line-height:1.5}.neonBtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#22d3ee14;border:2px solid var(--cyan);color:var(--cyan);border-radius:10px;padding:12px 26px;font-family:inherit;font-weight:800;letter-spacing:2px;font-size:16px;cursor:pointer;text-shadow:0 0 8px rgba(34,211,238,.6);box-shadow:0 0 14px #22d3ee40;transition:background .12s,box-shadow .12s,transform .05s}.neonBtn:hover{background:#22d3ee2e;box-shadow:0 0 22px #22d3ee80}.neonBtn:active{transform:translateY(2px)}.neonBtn--ghost{border-color:#64748b;color:#cbd5e1;text-shadow:none;box-shadow:none;background:transparent}.neonBtn--ghost:hover{border-color:#94a3b8;background:#ffffff0d;box-shadow:none}.playScreen{align-items:center}.gameArea{display:flex;gap:16px;align-items:stretch;justify-content:center;flex-wrap:wrap}.side{display:flex;flex-direction:column;gap:12px;width:148px}.sideBox{background:#0f142db3;border:1px solid var(--border);border-radius:12px;padding:10px;display:flex;flex-direction:column;align-items:center;gap:8px}.sideLabel{font-size:11px;letter-spacing:3px;color:#7dd3fc;font-weight:800}.nextList{display:flex;flex-direction:column;gap:6px}.stats{display:flex;flex-direction:column;gap:8px}.stat{background:#0f142db3;border:1px solid var(--border);border-radius:12px;padding:8px 12px;text-align:center}.statLabel{display:block;font-size:10px;letter-spacing:2px;color:#7dd3fc}.statValue{font-size:22px;font-weight:800;color:#fff;text-shadow:0 0 10px rgba(34,211,238,.6);font-variant-numeric:tabular-nums}.boardWrap{position:relative}.board{display:grid;grid-template-columns:repeat(10,1fr);grid-template-rows:repeat(20,1fr);gap:2px;height:min(84vh,600px);aspect-ratio:1 / 2;padding:6px;background:#0a0e1f;border:2px solid var(--cyan);border-radius:10px;box-shadow:0 0 26px #22d3ee59,inset 0 0 40px #0009}.tcell{border-radius:3px;background:#121a38}.tcell.ghost{background:transparent;box-shadow:inset 0 0 0 2px #ffffff38}.p-I{background:#22d3ee;box-shadow:inset 0 3px #ffffff59,0 0 7px #22d3eeb3}.p-O{background:#facc15;box-shadow:inset 0 3px #fff6,0 0 7px #facc15b3}.p-T{background:#c084fc;box-shadow:inset 0 3px #ffffff59,0 0 7px #c084fcb3}.p-S{background:#4ade80;box-shadow:inset 0 3px #ffffff59,0 0 7px #4ade80b3}.p-Z{background:#f87171;box-shadow:inset 0 3px #ffffff59,0 0 7px #f87171b3}.p-J{background:#60a5fa;box-shadow:inset 0 3px #ffffff59,0 0 7px #60a5fab3}.p-L{background:#fb923c;box-shadow:inset 0 3px #ffffff59,0 0 7px #fb923cb3}.mini{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);gap:2px;width:68px;aspect-ratio:2 / 1}.mcell{border-radius:2px;background:transparent}.boardOverlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#05070fd9;border-radius:10px}.ovText{font-size:30px;font-weight:900;letter-spacing:3px;color:var(--cyan);text-shadow:0 0 16px rgba(34,211,238,.8)}.ovText--pink{color:var(--pink);text-shadow:0 0 16px rgba(244,114,208,.8)}.overCard{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px}.finalScore{font-size:42px;font-weight:900;color:#fff;text-shadow:0 0 18px rgba(255,255,255,.5);font-variant-numeric:tabular-nums}.finalSub{color:#94a3b8;font-size:13px}.overBtns{display:flex;gap:10px;margin-top:8px}.lb{width:100%;display:flex;flex-direction:column;gap:3px;background:#0f142d99;border:1px solid var(--border);border-radius:12px;padding:10px;margin-top:6px}.lb--loading,.lbEmpty{color:#64748b;font-size:12px;text-align:center}.lbTitle{font-size:12px;letter-spacing:2px;color:#facc15;font-weight:800;text-align:center;margin-bottom:4px}.lbRow{display:flex;align-items:center;gap:8px;padding:3px 6px;border-radius:6px;font-size:13px}.lbRow--me{background:#22d3ee26}.lbRank{width:18px;color:#facc15;font-weight:800;text-align:center}.lbName{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e2e8f0}.lbScore{color:#fff;font-weight:800;font-variant-numeric:tabular-nums}
