:root{--bg: #030a03;--surface: #060f06;--panel: #0a160a;--border: #1a361a;--border-bright: #2a5a2a;--glow: #39ff14;--accent: #2ae810;--accent-dim: #18a808;--text: #c8f5c8;--muted: #4d7a4d;--danger: #ff4444;--danger-dim: #cc2222;--gold: #ffd700;--silver: #a8b8a8;--bronze: #c87832;--font-display: "Orbitron", monospace;--font-body: "Space Mono", monospace}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg);background-image:radial-gradient(ellipse at 50% -10%,rgba(57,255,20,.07) 0%,transparent 55%),radial-gradient(ellipse at 50% 110%,rgba(0,80,0,.06) 0%,transparent 50%);color:var(--text);font-family:var(--font-body);font-size:14px;line-height:1.6}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none;z-index:9999}.app{max-width:720px;margin:0 auto;padding:1rem 1.5rem;min-height:100vh}.navbar{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 0;border-bottom:1px solid var(--border);margin-bottom:2.5rem}.nav-left,.nav-right{display:flex;align-items:center;gap:1.5rem}.brand{font-family:var(--font-display);font-weight:900;font-size:1.1rem;letter-spacing:.25em;color:var(--glow);text-decoration:none;text-shadow:0 0 12px rgba(57,255,20,.6),0 0 35px rgba(57,255,20,.2);transition:text-shadow .2s}.brand:hover{text-shadow:0 0 16px rgba(57,255,20,.9),0 0 50px rgba(57,255,20,.3)}.navbar a:not(.brand){color:var(--muted);text-decoration:none;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;transition:color .15s,text-shadow .15s}.navbar a:not(.brand):hover{color:var(--text);text-shadow:0 0 8px rgba(57,255,20,.3)}.user{color:var(--muted);font-size:.72rem;letter-spacing:.06em}button{font-family:var(--font-body);background:transparent;color:var(--glow);border:1px solid var(--accent-dim);padding:.5rem 1.25rem;border-radius:3px;cursor:pointer;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;transition:background .15s,border-color .15s,box-shadow .15s}button:hover{background:#39ff1412;border-color:var(--glow);box-shadow:0 0 12px #39ff1433,inset 0 0 8px #39ff140a}button:disabled{opacity:.35;cursor:not-allowed}button.danger{color:var(--danger);border-color:var(--danger-dim);padding:.3rem .7rem;font-size:.7rem}button.danger:hover{background:#ff444412;border-color:var(--danger);box-shadow:0 0 10px #f443}button.primary{margin-top:.75rem;padding:.6rem 2.5rem;font-size:.8rem;border-color:var(--accent)}.card{background:var(--panel);border:1px solid var(--border);border-radius:4px;padding:2rem;box-shadow:0 0 40px #0009,inset 0 1px #39ff140a}.card h2{font-family:var(--font-display);font-size:.9rem;font-weight:700;letter-spacing:.2em;color:var(--glow);text-transform:uppercase;margin:0 0 1.75rem;text-shadow:0 0 10px rgba(57,255,20,.4)}.form{display:flex;flex-direction:column;gap:1.1rem}.form label{display:flex;flex-direction:column;gap:.4rem;color:var(--muted);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}input{background:var(--surface);border:1px solid var(--border);color:var(--text);padding:.6rem .75rem;border-radius:3px;font-family:var(--font-body);font-size:.9rem;transition:border-color .15s,box-shadow .15s}input:focus{outline:none;border-color:var(--accent-dim);box-shadow:0 0 0 2px #39ff141a,0 0 12px #39ff1414}.error{color:var(--danger);margin:0;font-size:.78rem;letter-spacing:.02em}.game{display:flex;flex-direction:column;align-items:center;gap:0}.hud{display:flex;justify-content:space-between;align-items:center;width:400px;padding:.6rem .25rem}.score{font-family:var(--font-display);font-size:.85rem;font-weight:700;color:var(--glow);letter-spacing:.1em;text-shadow:0 0 10px rgba(57,255,20,.55)}.hint{color:var(--muted);font-size:.7rem;letter-spacing:.06em}.canvas-wrap{position:relative;width:400px;height:400px;border:1px solid var(--border-bright);border-radius:3px;box-shadow:0 0 0 1px #39ff140a,0 0 25px #39ff1412,0 0 60px #000000b3,inset 0 0 30px #0006}.canvas-wrap:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(to bottom,transparent,transparent 2px,rgba(0,0,0,.06) 2px,rgba(0,0,0,.06) 4px);pointer-events:none;border-radius:2px;z-index:1}canvas{display:block;border-radius:2px}@keyframes flicker{0%,89%,91%,94%,96%,to{opacity:1}90%{opacity:.5}95%{opacity:.7}}@keyframes slideUp{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#030a03ed;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;text-align:center;padding:1.5rem;border-radius:2px;animation:flicker 5s infinite;z-index:2}.overlay h2{font-family:var(--font-display);font-size:1.5rem;font-weight:900;letter-spacing:.2em;color:var(--danger);text-shadow:0 0 18px rgba(255,68,68,.8),0 0 50px rgba(255,68,68,.3);margin:0;text-transform:uppercase;animation:slideUp .3s ease-out}.overlay p{color:var(--text);margin:0;font-size:.88rem;animation:slideUp .4s ease-out}.save-row{display:flex;gap:.5rem;margin:.15rem 0;animation:slideUp .5s ease-out}.save-row input{font-size:.82rem;padding:.4rem .6rem}.scores{width:100%;border-collapse:collapse;margin-top:.25rem}.scores th{text-align:left;padding:.4rem .75rem;border-bottom:1px solid var(--border-bright);color:var(--muted);font-size:.67rem;letter-spacing:.18em;text-transform:uppercase;font-weight:400}.scores td{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--border);font-size:.83rem;transition:background .1s}.scores tr:last-child td{border-bottom:none}.scores tbody tr:hover td{background:#39ff1406}.scores td.rank{font-family:var(--font-display);font-size:.72rem;letter-spacing:.06em}.scores td.rank-1{color:var(--gold)}.scores td.rank-2{color:var(--silver)}.scores td.rank-3{color:var(--bronze)}.scores td.rank-rest{color:var(--muted)}.scores td.score-val{font-family:var(--font-display);font-size:.78rem;color:var(--glow);letter-spacing:.05em}.scores td.date-val{color:var(--muted);font-size:.75rem}.lb-empty{color:var(--muted);font-size:.82rem;padding:1.5rem 0 .5rem}.lb-loading{color:var(--muted);font-size:.82rem;letter-spacing:.05em}
