: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{position:relative;display:inline-flex;align-items:center}.game-picker:after{content:"▾";position:absolute;right:10px;pointer-events:none;color:var(--muted);font-size:.9rem}.game-picker select{appearance:none;-webkit-appearance:none;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:5px 30px 5px 10px;color:var(--text);font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;outline:none}.game-picker select:hover:not(:disabled),.game-picker select:focus-visible{border-color:var(--green-dim)}.game-picker select:disabled{color:var(--muted);cursor:not-allowed}.game-picker:has(select:disabled):after{opacity:.4}.game-picker option{text-transform:none;background:var(--panel-2);color:var(--text)}.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}.sync-btn{display:inline-flex;align-items:center;gap:8px;flex:none;min-height:40px;padding:0 16px;background:var(--panel);border:1px solid var(--border);border-radius:999px;color:var(--text);font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.sync-btn:focus-visible{outline:2px solid var(--green);outline-offset:2px}.sync-dot{width:9px;height:9px;border-radius:50%;background:var(--muted)}.sync-dot[data-status=setup]{background:none;border:1.5px solid var(--muted)}.sync-dot[data-status=idle]{background:var(--green);box-shadow:0 0 6px #4ade8099}.sync-dot[data-status=syncing]{background:var(--gold);animation:syncPulse .8s infinite alternate}.sync-dot[data-status=error]{background:var(--red)}@keyframes syncPulse{0%{opacity:1}to{opacity:.35}}dialog.sheet{margin:auto auto 0;width:100%;max-width:470px;max-height:85vh;max-height:85dvh;padding:0;border:1px solid var(--border);border-bottom:none;border-radius:16px 16px 0 0;background:var(--panel);color:var(--text);overscroll-behavior:contain}dialog.sheet[open]{animation:sheetUp .22s ease-out}dialog.sheet::backdrop{background:#0000008c}@keyframes sheetUp{0%{transform:translateY(100%)}}@media(prefers-reduced-motion:reduce){dialog.sheet[open]{animation:none}}.sheet-body{padding:16px max(20px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.sheet-head h2{font-size:1.05rem;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.sheet-close{width:36px;height:36px;background:none;border:1px solid var(--border);border-radius:8px;color:var(--muted);font-size:.95rem;cursor:pointer}.sheet-close:hover{color:var(--text);border-color:var(--green-dim)}.sheet .sync-box{flex-direction:column;align-items:stretch;gap:10px;margin-top:0}.sheet .sync-hint{font-size:.95rem;margin-bottom:4px}.sheet .sync-box .clear-all{min-height:44px;font-size:.95rem;color:var(--text)}.sheet-text{color:var(--text);font-size:.95rem;line-height:1.55}.leaderboard-sheet .leaderboard-list{font-size:.95rem;gap:8px}.leaderboard-sheet .leaderboard-item{padding:8px 10px}.leaderboard-foot{display:flex;justify-content:flex-end;margin-top:16px}.leaderboard-foot .clear-all{min-height:40px;padding:0 14px}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}.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;min-width:0;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}.board-area,.control-slot{display:contents}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;align-items:center;justify-content:space-between;gap:8px;width:100%;max-width:420px;color:var(--muted);font-size:.95rem}.snake-bar>span{white-space:nowrap}.snake-bar b{color:var(--text)}@media(max-width:400px){.credits-label,.fs-label{display:none}}.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;white-space:nowrap;cursor:pointer}.fs-btn:hover{color:var(--green);border-color:var(--green-dim)}.game-tools{display:flex;gap:8px;flex:none}.icon-btn{display:inline-grid;place-items:center;width:36px;height:36px;background:var(--panel-2);border:1px solid var(--border);border-radius:50%;color:var(--text);font:inherit;font-size:1rem;font-weight:700;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}.icon-btn:hover:not(:disabled){border-color:var(--green-dim)}.icon-btn:focus-visible{outline:2px solid var(--green);outline-offset:2px}.icon-btn:disabled{opacity:.4;cursor:not-allowed}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}@media(min-width:761px){.card.fs-active{--fs-reserve: 320px;display:grid;grid-template-columns:minmax(max-content,1fr) minmax(0,calc(100dvh - var(--fs-reserve))) minmax(max-content,1fr);grid-auto-rows:auto;align-content:center;align-items:center;column-gap:16px;row-gap:12px}.card.fs-active .game-head,.card.fs-active .snake-wrap{display:contents}.card.fs-active .game-picker{grid-area:1 / 1;justify-self:start}.card.fs-active .fs-btn{grid-area:1 / 3;justify-self:end}.card.fs-active .snake-wrap>*,.card.fs-active .board-area>*,.card.fs-active .control-slot>*{grid-column:2;justify-self:center}.card.fs-active canvas,.card.fs-active .snake-bar{max-width:none}.card.fs-active .snake-bar{justify-self:stretch}}@media(min-width:761px)and (hover:hover)and (pointer:fine){.card.fs-active{--fs-reserve: 140px}}.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}.tile{display:contents}.tabbar{display:none}@media(max-width:760px){html{height:100%;overflow:hidden;overscroll-behavior:none}body{height:100vh;height:100dvh;min-height:0;overflow:hidden;overscroll-behavior:none;align-items:stretch;padding:calc(10px + env(safe-area-inset-top)) 0 0}header{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;align-self:center;width:100%;max-width:494px;margin-bottom:10px;padding:0 max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left));text-align:left}header h1{font-size:1.4rem;letter-spacing:1.5px}header .tagline{display:none}main.pager{flex:1;min-height:0;flex-wrap:nowrap;justify-content:flex-start;gap:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none}main.pager::-webkit-scrollbar{display:none}.tile{display:flex;justify-content:center;flex:0 0 100%;min-width:0;padding:0 max(12px,env(safe-area-inset-right)) 12px max(12px,env(safe-area-inset-left));scroll-snap-align:start}.tile>.card{min-width:0;padding:14px;overflow-y:auto;overscroll-behavior-y:contain}.todo-card{display:flex;flex-direction:column}.todo-card>.card-head,.todo-card>form.add{flex:none}.todo-card ul.todos{flex:0 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;overflow-anchor:none}.game-card{display:flex;flex-direction:column}.game-card .snake-wrap{flex:1 0 auto}.board-area{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1;width:100%;min-height:150px;container-type:size;--board: min(100cqw, 100cqh - 44px)}.board-area .snake-bar{flex:none;height:36px;width:var(--board);min-width:min(100%,280px);max-width:none}.board-area canvas{flex:none;width:var(--board);max-width:none}.control-slot{display:grid;place-items:center;flex:none;width:100%}.control-slot>*{grid-area:1 / 1}.game-card.busy .control-slot>.play,.game-card:not(.busy) .control-slot>.dpad{visibility:hidden}@media(max-height:600px){.dpad{width:140px;height:140px}}.game-head{gap:8px}.game-head .game-picker{min-width:0}.game-head .game-picker select{width:100%}@media(max-width:359px){.game-head .game-picker select{font-size:.9rem;letter-spacing:.5px;padding-right:26px}}.tabbar{display:block;flex:none;background:var(--panel);border-top:1px solid var(--border);padding:6px max(12px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.tabbar-track{position:relative;display:flex;max-width:470px;margin:0 auto}.tabbar-pill{position:absolute;inset:0 auto 0 0;width:50%;border:1px solid var(--green-dim);border-radius:10px;background:#4ade801f;transform:translate(calc(var(--pager-progress, 0) * 100%));pointer-events:none}.tabbar button{position:relative;flex:1;min-height:44px;background:none;border:none;border-radius:10px;color:var(--muted);font:inherit;font-weight:600;letter-spacing:.5px;cursor:pointer;-webkit-tap-highlight-color:transparent}.tabbar button[aria-current=true]{color:var(--text)}.tabbar button:focus-visible{outline:2px solid var(--green);outline-offset:-2px}header,.tabbar{transition:margin .25s ease}.tile{transition:padding-bottom .25s ease}body.game-busy header{margin-top:calc(-50px - env(safe-area-inset-top));margin-bottom:calc(10px + env(safe-area-inset-top));visibility:hidden;transition:margin .25s ease,visibility 0s linear .25s}body.game-busy .tabbar{margin-bottom:calc(-57px - env(safe-area-inset-bottom));visibility:hidden;transition:margin .25s ease,visibility 0s linear .25s}body.game-busy .tile{padding-bottom:calc(12px + env(safe-area-inset-bottom))}body.game-busy main.pager{overflow-x:hidden}@media(prefers-reduced-motion:reduce){header,.tabbar,.tile,body.game-busy header,body.game-busy .tabbar{transition:none}}}#root{display:contents}
