:root{--bg: #0f1410;--panel: #1a221b;--panel-2: #222d23;--border: #2f3d30;--text: #e6f0e6;--muted: #8aa18c;--green: #4ade80;--green-dim: #22c55e;--red: #f87171;--gold: #fbbf24}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:calc(24px + env(safe-area-inset-top)) 16px calc(48px + env(safe-area-inset-bottom))}header{text-align:center;margin-bottom:24px}header h1{font-size:2rem;letter-spacing:2px;color:var(--green);text-shadow:0 0 18px rgba(74,222,128,.35)}header p{color:var(--muted);margin-top:4px;font-size:.95rem}.game-picker{display:inline-flex;align-items:center;gap:8px;margin-top:12px;background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:6px 8px 6px 18px;font-weight:600}.game-picker select{background:var(--panel-2);border:1px solid var(--border);border-radius:999px;padding:5px 12px;color:var(--text);font:inherit;cursor:pointer;outline:none}.game-picker select:focus{border-color:var(--green-dim)}.game-picker select:disabled{color:var(--muted);cursor:not-allowed}.credits{display:inline-flex;align-items:center;gap:8px;background:var(--panel-2);border:1px solid var(--border);border-radius:999px;padding:6px 14px;font-weight:600;font-size:.9rem;white-space:nowrap}.credits .num{color:var(--gold);font-size:1.1rem}.credits.flash{animation:flash .6s ease}@keyframes flash{0%{box-shadow:0 0 #fbbf24b3}to{box-shadow:0 0 0 16px #fbbf2400}}.sync-box{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:10px}.sync-hint{color:var(--muted);font-size:.82rem}main{display:flex;gap:24px;flex-wrap:wrap;justify-content:center;width:100%;max-width:980px}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:20px;flex:1 1 380px;max-width:470px}.card h2{font-size:1.05rem;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:14px}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.card-head h2{margin-bottom:0}.game-head{display:grid;grid-template-columns:1fr auto 1fr;grid-template-areas:"title credits fs";align-items:center;gap:8px}.game-head h2{grid-area:title}.game-head .credits{grid-area:credits}.game-head .fs-btn{grid-area:fs;justify-self:end}@media(max-width:480px){.game-head{grid-template-columns:1fr auto;grid-template-areas:"title fs" "credits credits"}.game-head .credits{justify-self:center}}.clear-all{background:none;border:1px solid var(--border);border-radius:8px;padding:5px 12px;color:var(--muted);font-size:.8rem;cursor:pointer}.clear-all:hover{color:var(--red);border-color:var(--red)}form.add{display:flex;gap:8px;margin-bottom:14px}form.add input{flex:1;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--text);font-size:1rem;outline:none}form.add input:focus{border-color:var(--green-dim)}form.add button{background:var(--green-dim);border:none;border-radius:8px;padding:0 16px;color:#06210f;font-weight:700;font-size:1.2rem;cursor:pointer}form.add button:hover{background:var(--green)}ul.todos{list-style:none;display:flex;flex-direction:column;gap:8px}ul.todos li{display:flex;align-items:center;gap:10px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px}ul.todos li.overdue{border-color:var(--red)}ul.todos li.dragging{position:relative;z-index:5;border-color:var(--green-dim);box-shadow:0 10px 22px #00000073}body.dragging-todo{user-select:none;-webkit-user-select:none}ul.todos .drag{background:none;border:none;color:var(--muted);font-size:1.05rem;line-height:1;padding:4px 2px;border-radius:6px;cursor:grab;flex-shrink:0;touch-action:none}ul.todos .drag:hover{color:var(--green)}ul.todos li.dragging .drag{cursor:grabbing}ul.todos li.done{opacity:.55}ul.todos li.done .label{text-decoration:line-through}ul.todos .label{flex:1;word-break:break-word}ul.todos input[type=checkbox]{width:20px;height:20px;accent-color:var(--green-dim);cursor:pointer;flex-shrink:0}ul.todos .del{background:none;border:none;color:var(--muted);font-size:1.1rem;cursor:pointer;padding:2px 6px;border-radius:6px}ul.todos .del:hover{color:var(--red);background:#f871711a}.empty{color:var(--muted);font-style:italic;padding:8px 2px}.snake-wrap{display:flex;flex-direction:column;align-items:center;gap:12px}canvas{background:#0a0f0b;border:1px solid var(--border);border-radius:8px;width:100%;max-width:420px;aspect-ratio:1;touch-action:none}.snake-bar{display:flex;justify-content:space-between;width:100%;max-width:420px;color:var(--muted);font-size:.95rem}.snake-bar b{color:var(--text)}.snake-bar b.new-high{color:var(--gold);display:inline-block;animation:goldPulse .8s infinite alternate}@keyframes goldPulse{0%{text-shadow:0 0 2px var(--gold);transform:scale(1)}to{text-shadow:0 0 10px var(--gold);transform:scale(1.15)}}.leaderboard{width:100%;max-width:420px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-top:4px}.leaderboard-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.leaderboard-head h3{font-size:.85rem;letter-spacing:.5px;text-transform:uppercase;color:var(--gold)}.leaderboard-list{list-style:none;display:flex;flex-direction:column;gap:6px;font-size:.88rem}.leaderboard-item{display:flex;justify-content:space-between;align-items:center;padding:5px 8px;background:#00000040;border-radius:6px}.leaderboard-item.rank-1{border-left:3px solid var(--gold)}.leaderboard-item.rank-2{border-left:3px solid #94a3b8}.leaderboard-item.rank-3{border-left:3px solid #b45309}.rank-badge{margin-right:6px;font-weight:600}.score-val{color:var(--green);font-weight:700}.score-date{color:var(--muted);font-size:.75rem}.leaderboard-item.average{background:none;border-top:1px dashed var(--border);border-radius:0;margin-top:2px;padding-top:8px;color:var(--muted)}button.play{background:var(--green-dim);border:none;border-radius:10px;padding:12px 28px;color:#06210f;font-weight:700;font-size:1rem;cursor:pointer;letter-spacing:.5px}button.play:hover:not(:disabled){background:var(--green)}button.play:disabled{background:var(--panel-2);color:var(--muted);cursor:not-allowed;border:1px solid var(--border)}.hint{color:var(--muted);font-size:.85rem;text-align:center}.fs-btn{background:none;border:1px solid var(--border);border-radius:8px;padding:5px 12px;color:var(--muted);font-size:.8rem;cursor:pointer}.fs-btn:hover{color:var(--green);border-color:var(--green-dim)}body.fs-active{overflow:hidden}.card.fs-active{position:fixed;inset:0;z-index:100;max-width:none;width:100%;height:100%;border:none;border-radius:0;background:var(--bg);overflow-y:auto;padding:calc(12px + env(safe-area-inset-top)) 16px calc(12px + env(safe-area-inset-bottom))}.card.fs-active .snake-wrap{min-height:100%;justify-content:center}.card.fs-active canvas,.card.fs-active .snake-bar{max-width:min(100%,calc(100vh - 250px));max-width:min(100%,calc(100dvh - 250px))}@media(hover:hover)and (pointer:fine){.card.fs-active canvas,.card.fs-active .snake-bar{max-width:min(100%,calc(100vh - 140px));max-width:min(100%,calc(100dvh - 140px))}}.card.fs-active .leaderboard,.card.fs-active .hint{display:none}.card:fullscreen{background:var(--bg)}.card:-webkit-full-screen{background:var(--bg)}.dpad{display:none;position:relative;width:168px;height:168px;border-radius:50%;background:var(--panel-2);border:1px solid var(--border);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.dpad .arrow{position:absolute;color:var(--muted);font-size:.9rem;line-height:1;transform:translate(-50%,-50%);pointer-events:none;z-index:1;transition:color .08s}.dpad .arrow[data-dir=up]{left:50%;top:12%}.dpad .arrow[data-dir=down]{left:50%;top:88%}.dpad .arrow[data-dir=left]{left:12%;top:50%}.dpad .arrow[data-dir=right]{left:88%;top:50%}.dpad .arrow.active{color:#fff}.dpad .knob{position:absolute;left:50%;top:50%;width:38%;height:38%;margin:-19% 0 0 -19%;border-radius:50%;background:var(--border);pointer-events:none;transition:transform .12s ease-out,background .08s}.dpad.held .knob{background:var(--green-dim);transition:background .08s}@media(hover:none)and (pointer:coarse){.dpad{display:block}}.dpad[hidden]{display:none!important}.dpad .hyper{position:absolute;left:92%;top:92%;width:52px;height:52px;border-radius:50%;border:1px solid var(--border);background:var(--panel-2);color:var(--gold);font:700 .62rem/1 sans-serif;letter-spacing:.04em;touch-action:none;-webkit-tap-highlight-color:transparent;transition:opacity .15s,background .08s}.dpad .hyper:active{background:var(--border)}.dpad .hyper.cooling{opacity:.35}.dpad .hyper[hidden]{display:none}.dpad:has(.hyper:not([hidden])){margin-bottom:30px}#root{display:contents}
