:root{--bg: #0f172a;--panel: #1e293b;--panel2: #273449;--line: #334155;--text: #e2e8f0;--muted: #94a3b8;--accent: #38bdf8;--accent2: #f472b6;--good: #4ade80;--bad: #f87171;--warn: #fbbf24;--radius: 12px;font-family:system-ui,-apple-system,Segoe UI,Hiragino Sans,Noto Sans JP,Yu Gothic UI,sans-serif;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--text);min-height:100vh;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;text-size-adjust:100%}button{font:inherit;color:inherit}.muted{color:var(--muted)}.scroll-x{max-width:100%;overflow-x:auto;padding-bottom:4px}.app-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#0f172aeb;backdrop-filter:blur(8px);z-index:10}.logo{color:var(--text);text-decoration:none;font-weight:700;font-size:1.2rem}main{max-width:1000px;margin:0 auto;padding:20px 16px 60px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.chip{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:6px 14px;cursor:pointer}.chip.on{background:var(--accent);color:#0f172a;border-color:var(--accent);font-weight:700}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.card{display:flex;gap:14px;align-items:center;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);color:inherit;text-decoration:none;transition:transform .2s cubic-bezier(.3,1.6,.5,1),border-color .15s,box-shadow .2s;animation:card-in .45s cubic-bezier(.2,.9,.3,1.2) both;animation-delay:calc(var(--k, 0) * 22ms)}.card:hover{transform:translateY(-3px) scale(1.015);border-color:var(--accent);box-shadow:0 8px 24px #38bdf826}.card:hover .card-icon{animation:wiggle .5s}.card:active{transform:scale(.97)}.card-icon{font-size:2.1rem;width:56px;height:56px;display:grid;place-items:center;background:var(--panel2);border-radius:12px;flex:none}.card-name{font-weight:700}.card-desc{color:var(--muted);font-size:.85rem;margin:2px 0 6px}.card-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:.75rem}.tag{background:var(--panel2);padding:2px 8px;border-radius:999px;color:var(--muted)}.clears{color:var(--warn);font-weight:700}.view-head{display:flex;align-items:center;gap:12px}.view-head h1{font-size:1.4rem;margin:0}.btn{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:7px 14px;cursor:pointer;color:var(--text);text-decoration:none;display:inline-flex;align-items:center;gap:4px;user-select:none;touch-action:manipulation}.btn:hover{border-color:var(--accent)}.btn.on,.btn.primary{background:var(--accent);color:#0f172a;border-color:var(--accent);font-weight:700}.btn:disabled{opacity:.35;cursor:default}select.sel{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:7px 10px;font:inherit}.help{margin:10px 0 0;color:var(--muted);font-size:.9rem}.help summary{cursor:pointer;width:fit-content}.help p{margin:6px 0 0;line-height:1.6}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 8px}.status{min-height:1.5em;margin:4px 0 14px;font-variant-numeric:tabular-nums;color:var(--muted)}.stage{display:flex;flex-direction:column;align-items:center;gap:14px}.overlay{position:fixed;inset:0;background:#0000008c;display:grid;place-items:center;z-index:100;padding:16px;animation:fade .2s}.modal{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px 28px;text-align:center;min-width:260px;max-width:420px;box-shadow:0 20px 50px #00000080;animation:pop .25s}.modal h2{margin:0 0 8px;color:var(--good)}.overlay.lose .modal h2{color:var(--bad)}.modal p{margin:0}.actions{display:flex;gap:10px;justify-content:center;margin-top:18px}@keyframes fade{0%{opacity:0}}@keyframes pop{50%{transform:scale(1.12)}}.dpad{display:grid;grid-template-columns:repeat(3,56px);grid-template-rows:repeat(2,48px);gap:6px}.dpad .btn{justify-content:center;padding:0}.dpad-up{grid-column:2;grid-row:1}.dpad-left{grid-column:1;grid-row:2}.dpad-down{grid-column:2;grid-row:2}.dpad-right{grid-column:3;grid-row:2}@media(hover:hover)and (pointer:fine){.dpad{display:none}}.slide-board{--n: 4;--s: min(calc(380px * var(--big, 1)), calc(100vw - 32px) , var(--sh));--gap: 6px;--step: calc((var(--s) - var(--gap)) / var(--n));position:relative;width:var(--s);height:var(--s);background:var(--panel);border-radius:var(--radius);touch-action:none;box-shadow:inset 0 2px 10px #0006}.slide-board .tile{position:absolute;left:var(--gap);top:var(--gap);width:calc(var(--step) - var(--gap));height:calc(var(--step) - var(--gap));border:0;border-radius:8px;background:linear-gradient(145deg,#3b82f6,#2563eb);font-size:calc(var(--s) / var(--n) / 2.6);font-weight:800;cursor:pointer;color:#fff;box-shadow:0 4px #1e40af,0 6px 10px #0000004d;transition:transform .14s cubic-bezier(.3,.9,.4,1.1),background .3s,box-shadow .3s}.slide-board .tile:hover{filter:brightness(1.12)}.slide-board .tile.ok{background:linear-gradient(145deg,#22c55e,#16a34a);box-shadow:0 4px #15803d,0 6px 10px #0000004d}.g2048{--s: min(calc(420px * var(--big, 1)), calc(100vw - 32px) , var(--sh));--gap: 8px;--step: calc((var(--s) - var(--gap)) / 4);position:relative;width:var(--s);height:var(--s);display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap);padding:var(--gap);background:#bbada0;border-radius:var(--radius);touch-action:none;font-size:calc(var(--s) / 22);box-shadow:0 10px 30px #00000059}.g2048 .cell{background:#eee4da59;border-radius:6px}.g2048-tiles{position:absolute;inset:0;pointer-events:none}.g2048 .tile{position:absolute;left:var(--gap);top:var(--gap);width:calc(var(--step) - var(--gap));height:calc(var(--step) - var(--gap));border-radius:6px;display:grid;place-items:center;font-weight:800;transition:transform .11s ease-in-out;will-change:transform}.g2048 .tile.new{animation:tile-new .22s cubic-bezier(.3,1.5,.5,1) .08s both}.g2048 .tile.pop{animation:tile-pop .22s cubic-bezier(.3,1.8,.5,1);z-index:2}.g2048 .tile.glow{box-shadow:0 0 18px #edc22e8c}@keyframes tile-new{0%{opacity:0;scale:.2}}@keyframes tile-pop{0%{scale:.9}50%{scale:1.22}to{scale:1}}.g2048-score{display:flex;gap:10px}.g2048-score span{background:#bbada0;color:#f9f6f2;border-radius:8px;padding:6px 14px;font-size:.8rem;text-align:center;min-width:90px}.g2048-score b{display:block;font-size:1.3rem}@keyframes appear{0%{transform:scale(0)}}.mines{--cols: 9;--c: clamp(18px, calc((min(100vw - 28px, var(--sh)) - 2px * var(--cols)) / var(--cols)), calc(34px * var(--big, 1)));display:grid;grid-template-columns:repeat(var(--cols),var(--c));gap:2px;background:var(--line);padding:2px;border-radius:6px;width:max-content}.mc{width:var(--c);height:var(--c);border:0;padding:0;background:#52627a;font-weight:800;font-size:calc(var(--c) * .55);cursor:pointer;border-radius:3px;display:grid;place-items:center;line-height:1}.mc:hover{background:#64748b}.mc.open{background:#172033;cursor:default}.mc{transition:background .15s,scale .1s}.mc:not(.open):active{scale:.9}.mc.reveal{animation:mc-open .3s ease-out both;animation-delay:var(--d, 0ms)}.mc.boom{background:var(--bad);animation:mc-boom .5s ease-out;z-index:2}.mc.boom2{background:#7f1d1d;animation:mc-open .25s ease-out}@keyframes mc-open{0%{scale:.5;background:#7dd3fc}to{scale:1}}@keyframes mc-boom{0%{scale:1}30%{scale:1.8;background:#fde047}to{scale:1}}.mc.wrong{background:#7c2d12}.mc[data-n="1"]{color:#60a5fa}.mc[data-n="2"]{color:#4ade80}.mc[data-n="3"]{color:#f87171}.mc[data-n="4"]{color:#c084fc}.mc[data-n="5"]{color:#fb923c}.mc[data-n="6"]{color:#2dd4bf}.mc[data-n="7"]{color:#f1f5f9}.mc[data-n="8"]{color:#94a3b8}.sudoku{--c: min(calc(48px * var(--big, 1)), calc(min(100vw - 36px, var(--sh)) / 9));display:grid;grid-template-columns:repeat(9,var(--c));border:2px solid #cbd5e1;border-radius:4px;overflow:hidden;user-select:none}.sc{width:var(--c);height:var(--c);display:grid;place-items:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:calc(var(--c) * .55);cursor:pointer;color:var(--accent);background:var(--panel)}.sc.br{border-right:2px solid #cbd5e1}.sc.bb{border-bottom:2px solid #cbd5e1}.sc.given{color:var(--text);font-weight:700}.sc.peer{background:#243247}.sc.same{background:#1d4368}.sc.sel{background:#2563eb;color:#fff}.sc.bad{color:var(--bad)}.memo{display:grid;grid-template-columns:repeat(3,1fr);width:100%;height:100%;font-size:calc(var(--c) * .24);color:var(--muted);place-items:center;line-height:1}.sudoku-pad{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;width:min(380px,100%)}.sudoku-pad .btn{justify-content:center;font-size:1.15rem;padding:10px 0}.picross{--n: 10;--c: clamp(14px, calc(min(100vw - 32px, var(--sh)) / (var(--n) + 5)), calc(30px * var(--big, 1)));display:grid;grid-template-columns:auto repeat(var(--n),var(--c));user-select:none;touch-action:none;width:max-content}.pc{width:var(--c);height:var(--c);background:#f1f5f9;border-right:1px solid #cbd5e1;border-bottom:1px solid #cbd5e1;cursor:pointer;display:grid;place-items:center;color:#94a3b8;font-size:calc(var(--c) * .6)}.pc.top{border-top:2px solid #475569}.pc.left{border-left:2px solid #475569}.pc.b5r{border-right:2px solid #475569}.pc.b5b{border-bottom:2px solid #475569}.pc{transition:background .12s}.pc:hover{box-shadow:inset 0 0 0 2px #38bdf8aa}.pc.fill{background:#1e293b}.picross .pcl{transition:background .15s,color .2s}.picross .pcl.hl{background:#38bdf833}.picross .pcl.ok{animation:clue-ok .4s ease-out}@keyframes clue-ok{40%{scale:1.15}}.picross.solved .pc{transition:background .5s}.pc.cross:after{content:"✕";pointer-events:none}.pcl{font-size:calc(var(--c) * .5);font-variant-numeric:tabular-nums;font-weight:700}.pcl.col{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:4px;line-height:1.2}.pcl.row{display:flex;justify-content:flex-end;align-items:center;gap:5px;padding-right:6px;height:var(--c)}.pcl span{pointer-events:none}.pcl.ok{color:#475569}.picross.solved .pc{border-color:transparent}.picross.solved .pc.fill{background:var(--accent)}.lights{--n: 5;width:min(calc(380px * var(--big, 1)),calc(100vw - 32px),var(--sh));display:grid;grid-template-columns:repeat(var(--n),1fr);gap:6px}.light{aspect-ratio:1;border:0;border-radius:10px;background:#1e293b;box-shadow:inset 0 0 0 2px var(--line);cursor:pointer;touch-action:manipulation}.light{transition:background .25s,box-shadow .25s,scale .12s}.light.on{background:radial-gradient(circle,#fef08a,#facc15);box-shadow:0 0 18px #facc15aa,0 0 40px #facc1544}.light:hover{scale:1.04}.light.pressed{animation:press .25s ease-out}@keyframes press{40%{scale:.82}}.soko{--cols: 8;--c: min(calc(48px * var(--big, 1)), calc(min(100vw - 32px, var(--sh)) / var(--cols)));display:grid;grid-template-columns:repeat(var(--cols),var(--c));touch-action:none}.sk{width:var(--c);height:var(--c);position:relative;background:#1e293b}.sk.wall{background:#64748b;box-shadow:inset 0 0 0 1px #475569;border-radius:3px}.sk.void{background:transparent}.sk.goal:after{content:"";position:absolute;inset:36%;border-radius:50%;background:var(--accent2)}.soko{position:relative}.soko-layer{position:absolute;inset:0;pointer-events:none}.soko .box,.soko .player{position:absolute;left:0;top:0;width:var(--c);height:var(--c);transition:transform .12s ease-out}.soko .box:before{content:"";position:absolute;inset:9%;background:linear-gradient(135deg,transparent 44%,#92400e 44% 56%,transparent 56%),linear-gradient(45deg,transparent 44%,#92400e 44% 56%,transparent 56%),#d97706;border:3px solid #92400e;border-radius:5px;transition:background .25s,border-color .25s,box-shadow .25s}.soko .box.on:before{background:linear-gradient(135deg,transparent 44%,#15803d 44% 56%,transparent 56%),linear-gradient(45deg,transparent 44%,#15803d 44% 56%,transparent 56%),#22c55e;border-color:#15803d;box-shadow:0 0 14px #4ade80aa}.soko .player:before{content:"";position:absolute;inset:16%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#bae6fd,#38bdf8 45%,#0369a1);box-shadow:0 0 10px #38bdf888}.soko .player i{position:absolute;width:12%;height:16%;top:36%;background:#0f172a;border-radius:50%;transition:translate .12s}.soko .player i:first-of-type{left:34%}.soko .player i:last-of-type{left:54%}.soko .player[data-dir=up] i{translate:0 -40%}.soko .player[data-dir=down] i{translate:0 40%}.soko .player[data-dir=left] i{translate:-50% 0}.soko .player[data-dir=right] i{translate:50% 0}.soko .player.bump-up{animation:bump-up .2s}.soko .player.bump-down{animation:bump-down .2s}.soko .player.bump-left{animation:bump-left .2s}.soko .player.bump-right{animation:bump-right .2s}@keyframes bump-up{50%{translate:0 -12%}}@keyframes bump-down{50%{translate:0 12%}}@keyframes bump-left{50%{translate:-12% 0}}@keyframes bump-right{50%{translate:12% 0}}.sk.goal:after{animation:goal-pulse 1.4s ease-in-out infinite alternate}@keyframes goal-pulse{to{box-shadow:0 0 0 5px #f472b633}}.pipes{--n: 5;width:min(calc(460px * var(--big, 1)),calc(100vw - 32px),var(--sh));display:grid;grid-template-columns:repeat(var(--n),1fr);gap:2px;background:var(--line);padding:2px;border-radius:8px;user-select:none}.pipe{aspect-ratio:1;background:var(--panel);cursor:pointer;overflow:hidden;touch-action:manipulation}.pipe svg{width:100%;height:100%;display:block;transition:transform .22s cubic-bezier(.3,1.5,.5,1)}.pipe line{stroke:#64748b;stroke-linecap:round;transition:stroke .2s;transition-delay:var(--d, 0ms)}.pipe circle,.pipe rect{fill:#64748b;transition:fill .2s;transition-delay:var(--d, 0ms)}.pipe:hover{background:var(--panel2)}.pipe.on .lamp{filter:drop-shadow(0 0 6px #fde047)}.pipe.on svg{filter:drop-shadow(0 0 3px #4ade8088)}.pipe.on line{stroke:var(--good)}.pipe.on circle{fill:var(--good)}.pipe.on .lamp{fill:#fde047}.pipe .src{fill:var(--warn)}.pipes.solved .pipe{background:#14532d}.hanoi{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:min(660px,100%)}.tower{position:relative;height:clamp(220px,calc(var(--sh) - 20px),460px);display:flex;flex-direction:column-reverse;align-items:center;padding-bottom:12px;cursor:pointer;border-radius:10px;background:var(--panel);border:2px solid transparent}.tower:before{content:"";position:absolute;bottom:12px;top:30px;width:8px;background:#64748b;border-radius:4px;left:50%;transform:translate(-50%)}.tower:after{content:"";position:absolute;bottom:4px;left:6%;right:6%;height:10px;background:#64748b;border-radius:4px}.tower.target{border-color:var(--accent);border-style:dashed}.disk{position:relative;height:clamp(18px,calc((var(--sh) - 80px) / 10),36px);border-radius:8px;margin-top:2px;z-index:1;transition:transform .2s cubic-bezier(.3,1.6,.5,1),box-shadow .2s;box-shadow:inset 0 -4px #0003,inset 0 3px #fff4}.disk.lift{transform:translateY(-40px);box-shadow:0 14px 16px #0008,inset 0 -4px #0003,inset 0 3px #fff4;animation:hover-bob 1s ease-in-out .2s infinite;z-index:3}.disk.land{animation:disk-land .25s ease-out}.hanoi.intro .disk{animation:disk-in .4s cubic-bezier(.3,1.5,.5,1) both;animation-delay:calc(var(--k) * 60ms)}.tower{transition:border-color .15s,background .15s}.tower:hover{background:var(--panel2)}@keyframes hover-bob{50%{translate:0 -5px}}@keyframes disk-land{40%{scale:1.06 .8}}@keyframes disk-in{0%{translate:0 -120px;opacity:0}}.pegsol{--c: min(calc(56px * var(--big, 1)), calc(min(100vw - 24px, var(--sh)) / 7.9));display:grid;grid-template-columns:repeat(7,var(--c));grid-template-rows:repeat(7,var(--c));background:radial-gradient(circle,#92400e,#78350f);border-radius:50%;padding:calc(var(--c) * .45)}.hole{display:grid;place-items:center;cursor:pointer}.hole:before{content:"";width:36%;height:36%;border-radius:50%;background:#451a03;box-shadow:inset 0 2px 3px #0008;transition:all .12s}.hole.pin:before{width:72%;height:72%;background:radial-gradient(circle at 35% 35%,#fde68a,#d97706);box-shadow:0 2px 4px #0008}.hole.sel:before{background:radial-gradient(circle at 35% 35%,#bae6fd,#0284c7)}.hole.dest:before{width:50%;height:50%;box-shadow:0 0 0 3px var(--accent)}.hole.off{visibility:hidden;cursor:default}.hole:before{transition:all .18s cubic-bezier(.3,1.6,.5,1)}.hole.pin:hover:before{scale:1.08}.hole.sel:before{animation:peg-sel .8s ease-in-out infinite alternate}.hole.dest:before{animation:dest-pulse .7s ease-in-out infinite alternate}.hole.arriving:before{opacity:0;transition:none}.hole.landed:before{animation:peg-land .25s ease-out}.pegsol.intro .hole.pin:before{animation:peg-in .35s cubic-bezier(.3,1.6,.5,1) both;animation-delay:var(--d)}.peg-fly{position:fixed;z-index:150;pointer-events:none;border-radius:50%;background:radial-gradient(circle at 35% 35%,#bae6fd,#0284c7);box-shadow:0 10px 14px #0009}@keyframes peg-sel{to{translate:0 -4px;box-shadow:0 8px 10px #0008}}@keyframes dest-pulse{to{box-shadow:0 0 0 6px #38bdf855}}@keyframes peg-land{40%{scale:1.25 .8}}@keyframes peg-in{0%{scale:0}}.flood{--n: 14;--s: min(calc(440px * var(--big, 1)), calc(100vw - 32px) , var(--sh));width:var(--s);height:var(--s);display:grid;grid-template-columns:repeat(var(--n),1fr);border-radius:8px;overflow:hidden}.flood div{cursor:pointer;transition:background .25s ease-out}.flood-colors{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.flood-colors button{width:48px;height:48px;border-radius:50%;border:3px solid transparent;cursor:pointer;touch-action:manipulation}.flood-colors button{transition:transform .15s,box-shadow .15s;box-shadow:0 4px 10px #00000059}.flood-colors button:hover{transform:translateY(-3px) scale(1.06)}.flood-colors button:active{transform:scale(.9)}.flood-colors button.cur{border-color:#fff;transform:scale(.85);box-shadow:0 0 0 3px #fff3}.same{--c: min(calc(40px * var(--big, 1)), calc((min(100vw - 24px, var(--sh)) - 6px - 2px * var(--w)) / var(--w)));--step: calc(var(--c) + 2px);position:relative;width:calc(var(--w) * var(--step) + 6px);height:calc(var(--h) * var(--step) + 6px);background:var(--panel);border-radius:10px;overflow:hidden}.sg{position:absolute;left:4px;top:4px;width:var(--c);height:var(--c);border-radius:6px;cursor:pointer;transition:filter .1s,scale .12s,transform .32s cubic-bezier(.5,1.5,.6,1);box-shadow:inset 0 -3px #0003,inset 0 3px #fff3}.sg.hl{filter:brightness(1.35);scale:.88}.same .sg.gone,.same.intro .sg.gone{animation:sg-gone .28s ease-in forwards;animation-delay:var(--d, 0ms);pointer-events:none}.same.intro .sg{animation:sg-in .4s cubic-bezier(.3,1.5,.5,1) both;animation-delay:var(--d, 0ms)}@keyframes sg-gone{30%{scale:1.25;filter:brightness(2)}to{scale:0;opacity:0}}@keyframes sg-in{0%{scale:0;opacity:0}}.stage-blocks{touch-action:none}.blocks{--c: min(calc(36px * var(--big, 1)), calc((min(100vw - 28px, var(--sh)) - 24px)*.1) );display:grid;grid-template-columns:repeat(10,var(--c));gap:2px;background:var(--line);padding:3px;border-radius:8px;user-select:none}.bc{width:var(--c);height:var(--c);background:var(--panel);border-radius:4px;transition:background .12s}.bc.on{box-shadow:inset 0 -3px #0003,inset 0 2px #fff4}.bc.will{filter:brightness(1.35);box-shadow:0 0 0 2px #fff8 inset;animation:will .6s ease-in-out infinite alternate}.bc.boom{animation:boom .45s ease-out both;animation-delay:var(--d, 0ms)}@keyframes will{to{filter:brightness(1.7)}}@keyframes boom{0%{background:var(--old);scale:1}40%{background:#fff;scale:1.15}to{scale:1}}.blk-ghost{position:fixed;z-index:150;pointer-events:none;display:grid;gap:2px;transform:translate(-50%,-50%) scale(1.05);opacity:.9;filter:drop-shadow(0 10px 14px rgba(0,0,0,.5));transition:opacity .1s}.blk-ghost.on-board{opacity:.35}.blk-ghost i{border-radius:4px;box-shadow:inset 0 -3px #0003,inset 0 2px #fff4}.slot.fresh{animation:slot-in .45s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(var(--k) * 80ms)}@keyframes slot-in{0%{scale:0;rotate:-20deg;opacity:0}}.bc.bad{background:#f8717155}.bc.flash{animation:flash .35s}@keyframes flash{0%{background:#fff}}.tray{display:flex;gap:12px;justify-content:center;align-items:center;min-height:140px;flex-wrap:wrap;user-select:none}.slot{--m: min(20px, calc((100vw - 80px) / 17));padding:8px;border-radius:10px;border:2px solid transparent;cursor:grab;display:grid;gap:2px;min-width:60px;min-height:60px;place-content:center}.slot.sel{border-color:var(--accent);background:var(--panel)}.slot.cant{opacity:.3}.slot i{width:var(--m);height:var(--m);border-radius:3px;display:block;pointer-events:none}.memory{--n: 4;--s: min(calc(440px * var(--big, 1)), calc(100vw - 32px) , var(--sh));width:var(--s);display:grid;grid-template-columns:repeat(var(--n),1fr);gap:8px}.mcard{aspect-ratio:1;border:0;padding:0;background:none;font-size:calc(var(--s) / var(--n) / 2);cursor:pointer;touch-action:manipulation;perspective:600px}.mcard .inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .38s cubic-bezier(.4,1.4,.6,1)}.mcard.up .inner,.mcard.matched .inner{transform:rotateY(180deg)}.mcard:hover:not(.up):not(.matched) .inner{transform:rotateY(12deg) translateY(-3px)}.mcard .face{position:absolute;inset:0;border-radius:10px;backface-visibility:hidden;display:grid;place-items:center;box-shadow:0 4px 10px #00000059}.mcard .back{background:radial-gradient(circle at 30% 30%,#ffffff33 0 12%,transparent 13%),repeating-linear-gradient(45deg,#7c3aed 0 8px,#6366f1 8px 16px);border:3px solid #c4b5fd55}.mcard .front{background:#f1f5f9;transform:rotateY(180deg)}.mcard.matched .front{background:#bbf7d0;box-shadow:0 0 16px #4ade8099}.mcard.matched{opacity:.85}.mcard.deal{animation:deal .45s cubic-bezier(.3,1.4,.5,1) both;animation-delay:calc(var(--k) * 25ms)}@keyframes deal{0%{opacity:0;translate:0 -40px;rotate:-12deg;scale:.6}}@keyframes flip{0%{transform:scaleX(0)}}.hb{width:min(420px,100%);display:flex;flex-direction:column;gap:12px}.hb-cur{display:flex;gap:8px;justify-content:center}.hb-slot{width:52px;height:62px;border-radius:10px;background:var(--panel);border:2px solid var(--line);display:grid;place-items:center;font-size:1.8rem;font-weight:800}.hb-keys{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.hb-keys .btn{justify-content:center;font-size:1.2rem;padding:10px 0}.hb-hist{display:flex;flex-direction:column;gap:4px}.hb-row{display:flex;justify-content:space-between;align-items:center;background:var(--panel);padding:8px 14px;border-radius:8px;font-variant-numeric:tabular-nums}.hb-row b{letter-spacing:.3em;font-size:1.25rem}.hb-row.new{animation:row-in .4s cubic-bezier(.3,1.4,.5,1)}.hb-row.win{box-shadow:0 0 0 2px var(--good),0 0 18px #4ade8066}.pips{display:flex;align-items:center;gap:4px}.pip{width:12px;height:12px;border-radius:50%;display:inline-block}.pip.hit{background:var(--warn);box-shadow:0 0 8px #fbbf24aa}.pip.blow{background:var(--accent)}.hb-row.new .pip{animation:pip-in .3s cubic-bezier(.3,1.8,.5,1) both;animation-delay:calc(.25s + var(--q) * .12s)}.hb-slot{transition:border-color .15s}.hb-slot:not(:empty){border-color:var(--accent)}@keyframes row-in{0%{opacity:0;translate:0 -16px;scale:.95}}@keyframes pip-in{0%{scale:0}}.hb-hit{color:var(--warn);font-weight:700}.hb-blow{color:var(--accent);font-weight:700}.maze-canvas{touch-action:none;border-radius:8px;max-width:100%}.stage-match3{touch-action:none}.m3{--c: min(calc(54px * var(--big, 1)), calc(min(100vw - 40px, var(--sh))/8) );overflow:hidden;display:grid;grid-template-columns:repeat(8,var(--c));background:var(--panel);border-radius:10px;padding:4px;user-select:none}.gem{position:relative;width:var(--c);height:var(--c);display:grid;place-items:center;font-size:calc(var(--c) * .68);cursor:pointer;border-radius:8px;transition:transform .17s cubic-bezier(.4,0,.2,1),background .15s;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}.gem.snap{transition:none}.gem:hover{background:#ffffff12}.gem.sel{background:#ffffff26;scale:1.12;animation:gem-sel 1s ease-in-out infinite}.gem.clear{animation:vanish .26s forwards}.gem.drop{animation:gem-fall calc(.12s + var(--fall, 1) * .05s) cubic-bezier(.5,0,.8,.6),gem-land .2s ease-out calc(.12s + var(--fall, 1) * .05s)}@keyframes gem-sel{50%{rotate:8deg}}@keyframes gem-fall{0%{translate:0 calc(var(--fall, 1) * -100%)}}@keyframes gem-land{40%{scale:1.12 .85}}@keyframes vanish{30%{scale:1.35;filter:brightness(2)}to{scale:0;rotate:90deg;opacity:0}}@keyframes dropin{0%{transform:translateY(-40%);opacity:.2}}.stage-numberlink{touch-action:none}.nl{--n: 7;--c: min(calc(54px * var(--big, 1)), calc(min(100vw - 36px, var(--sh)) / var(--n)));display:grid;grid-template-columns:repeat(var(--n),var(--c));background:var(--panel);border:2px solid var(--line);border-radius:8px;user-select:none}.nl-c{width:var(--c);height:var(--c);position:relative;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer}.nl-c{transition:background .2s}.nl-c.in{background:color-mix(in srgb,var(--k) 14%,transparent)}.nl .seg{position:absolute;background:var(--k);scale:0;transition:scale .12s ease-out}.nl .seg.u{transform-origin:50% 100%}.nl .seg.d{transform-origin:50% 0}.nl .seg.l{transform-origin:100% 50%}.nl .seg.r{transform-origin:0 50%}.nl-c.u .seg.u,.nl-c.d .seg.d,.nl-c.l .seg.l,.nl-c.r .seg.r,.nl-c.mid .seg.c{scale:1}.nl .ep{transition:box-shadow .2s;box-shadow:0 2px 6px #0006;z-index:1}.nl-c.num.in .ep{box-shadow:0 0 0 3px #fff6,0 0 14px var(--k)}.nl .seg.u{inset:0 38% 50%}.nl .seg.d{inset:50% 38% 0}.nl .seg.l{inset:38% 50% 38% 0}.nl .seg.r{inset:38% 0 38% 50%}.nl .seg.c{inset:38%;border-radius:3px}.nl .ep{position:absolute;inset:11%;border-radius:50%;display:grid;place-items:center;color:#0b1220;font-weight:800;font-size:calc(var(--c) * .45)}.nl.solved .nl-c{box-shadow:none}.hashi{--n: 9;--c: min(calc(48px * var(--big, 1)), calc(min(100vw - 40px, var(--sh)) / var(--n)));display:grid;grid-template-columns:repeat(var(--n),var(--c));background:#0b1220;border-radius:8px;padding:4px}.hs{width:var(--c);height:var(--c);position:relative;display:grid;place-items:center}.hs:before,.hs:after{content:"";position:absolute;background:#94a3b8}.hs.h1:before{left:0;right:0;height:3px;top:calc(50% - 1.5px)}.hs.h2:before{left:0;right:0;height:3px;top:calc(50% - 6px)}.hs.h2:after{left:0;right:0;height:3px;top:calc(50% + 3px)}.hs.v1:before{top:0;bottom:0;width:3px;left:calc(50% - 1.5px)}.hs.v2:before{top:0;bottom:0;width:3px;left:calc(50% - 6px)}.hs.v2:after{top:0;bottom:0;width:3px;left:calc(50% + 3px)}.island{width:88%;height:88%;padding:0;border-radius:50%;border:2px solid #94a3b8;background:var(--panel);color:var(--text);font-weight:800;font-size:calc(var(--c) * .45);cursor:pointer;display:grid;place-items:center;z-index:1}.island.ok{border-color:var(--good);color:var(--good)}.island.over{border-color:var(--bad);color:var(--bad)}.island.sel{background:var(--accent);color:#0b1220;border-color:var(--accent);box-shadow:0 0 16px #38bdf8aa}.island{transition:border-color .2s,color .2s,background .15s,box-shadow .2s,scale .15s}.island:hover{scale:1.08}.island.ok{box-shadow:0 0 10px #4ade8066}.island.cand{animation:cand .8s ease-in-out infinite alternate}@keyframes cand{to{box-shadow:0 0 0 4px #38bdf855}}.hs.h1:before,.hs.h2:before,.hs.h2:after{animation:bridge-h .18s ease-out}.hs.v1:before,.hs.v2:before,.hs.v2:after{animation:bridge-v .18s ease-out}@keyframes bridge-h{0%{scale:0 1}}@keyframes bridge-v{0%{scale:1 0}}.kakuro{--n: 9;--c: min(calc(48px * var(--big, 1)), calc(min(100vw - 36px, var(--sh)) / var(--n)));display:grid;grid-template-columns:repeat(var(--n),var(--c));border:2px solid #cbd5e1;width:max-content;user-select:none}.kk{width:var(--c);height:var(--c);background:#0b1220;position:relative;border:1px solid #334155}.kk.clue{background:linear-gradient(to bottom right,#16233b 0 49.4%,#64748b 49.4% 50.6%,#0b1220 50.6% 100%)}.kr,.kd{position:absolute;font-style:normal;font-size:calc(var(--c) * .36);font-weight:700;color:#e2e8f0}.kr{top:1px;right:4px}.kd{bottom:1px;left:4px}.kw{width:var(--c);height:var(--c);background:#33435e;border:1px solid #334155;display:grid;place-items:center;font-size:calc(var(--c) * .55);color:var(--accent);cursor:pointer}.kw.sel{background:#2563eb;color:#fff}.kw.bad{color:var(--bad)}.tetris{display:flex;flex-direction:column;align-items:center;gap:10px}.tetris canvas{border-radius:8px;touch-action:none;max-width:100%}.tetris-ctl{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;width:min(460px,calc(100vw - 32px))}.tetris-ctl .btn{justify-content:center;padding:12px 0;font-size:1rem}.tangram{touch-action:none;border-radius:8px;background:#0b1220;max-width:100%}.akari{--n: 10;--c: clamp(22px, calc((min(100vw - 30px, var(--sh)) - 1px * var(--n)) / var(--n)), calc(44px * var(--big, 1)));display:grid;grid-template-columns:repeat(var(--n),var(--c));gap:1px;padding:1px;background:var(--line);border-radius:6px;width:max-content;user-select:none}.ak{width:var(--c);height:var(--c);background:#33435e;display:grid;place-items:center;font-size:calc(var(--c) * .55);line-height:1;cursor:pointer}.ak.lit{background:#4a4320}.ak.bad{background:#7f1d1d}.ak.b{background:#0b1220;color:#e2e8f0;font-weight:800;cursor:default}.ak.b.ok{color:var(--good)}.ak.b.over{color:var(--bad)}.stage-masyu{touch-action:none}.masyu{--n: 8;--c: clamp(26px, calc(min(100vw - 44px, var(--sh)) / var(--n)), calc(48px * var(--big, 1)));display:grid;grid-template-columns:repeat(var(--n),var(--c));background:var(--panel);border:2px solid var(--line);border-radius:6px;width:max-content;user-select:none}.my{position:relative;width:var(--c);height:var(--c);box-shadow:inset 0 0 0 1px #2b3a52;cursor:pointer}.my i{position:absolute;background:var(--accent);display:none;border-radius:2px}.my i.u{left:calc(50% - 3px);width:6px;top:0;height:52%}.my i.d{left:calc(50% - 3px);width:6px;top:48%;height:52%}.my i.l{top:calc(50% - 3px);height:6px;left:0;width:52%}.my i.r{top:calc(50% - 3px);height:6px;left:48%;width:52%}.my.u>i.u,.my.d>i.d,.my.l>i.l,.my.r>i.r{display:block}.my b{position:absolute;inset:24%;border-radius:50%;z-index:2}.my b.w{background:#f8fafc;box-shadow:inset 0 0 0 2px #334155}.my b.k{background:#0b1220;box-shadow:0 0 0 3px #e2e8f0}.masyu.solved .my i{background:var(--good)}.stage-slither{touch-action:none}.slither{--n: 7;--d: 9px;--c: clamp(20px, calc((min(100vw - 34px, var(--sh)) - 12px - (var(--n) + 1) * var(--d)) / var(--n)), calc(48px * var(--big, 1)));display:grid;grid-template-columns:repeat(var(--n),var(--d) var(--c)) var(--d);background:var(--panel);padding:6px;border-radius:8px;width:max-content;user-select:none;align-items:center;justify-items:center}.sl-dot{width:5px;height:5px;border-radius:50%;background:#64748b}.sl-e{background:transparent;border-radius:3px;cursor:pointer;position:relative}.sl-h{width:var(--c);height:var(--d)}.sl-v{width:var(--d);height:var(--c)}.sl-e:after{content:"";position:absolute;inset:0;border-radius:3px}.sl-h.on:after{background:var(--accent);top:calc(50% - 2px);height:4px}.sl-v.on:after{background:var(--accent);left:calc(50% - 2px);width:4px}.sl-e.no:after{content:"×";color:#64748b;font-size:11px;display:grid;place-items:center}.sl-cell{width:var(--c);height:var(--c);display:grid;place-items:center;font-size:calc(var(--c) * .5);font-weight:700;color:var(--text);font-style:normal}.sl-cell.ok{color:#64748b}.sl-cell.over{color:var(--bad)}.slither.solved .sl-h.on:after,.slither.solved .sl-v.on:after{background:var(--good)}.heya{--n: 9;--c: clamp(26px, calc(min(100vw - 44px, var(--sh)) / var(--n)), calc(46px * var(--big, 1)));display:grid;grid-template-columns:repeat(var(--n),var(--c));background:var(--panel);border:3px solid #cbd5e1;width:max-content;user-select:none}.hw{position:relative;width:var(--c);height:var(--c);box-shadow:inset 0 0 0 1px #2b3a52;cursor:pointer;background:#24344c}.hw.bt{border-top:3px solid #cbd5e1}.hw.bl{border-left:3px solid #cbd5e1}.hw.bb{border-bottom:3px solid #cbd5e1}.hw.br{border-right:3px solid #cbd5e1}.hw.on{background:#0b1220}.hw.bad{background:#7f1d1d}.hw.dot:after{content:"";position:absolute;left:calc(50% - 3px);top:calc(50% - 3px);width:6px;height:6px;border-radius:50%;background:#94a3b8}.hw b{position:absolute;left:3px;top:1px;font-size:calc(var(--c) * .4);color:var(--warn)}.hw.on b{color:#fde68a}.stage-shikaku{touch-action:none}.shikaku{--n: 8;--c: clamp(28px, calc(min(100vw - 44px, var(--sh)) / var(--n)), calc(50px * var(--big, 1)));display:grid;grid-template-columns:repeat(var(--n),var(--c));background:var(--panel);border:2px solid var(--line);width:max-content;user-select:none}.sk-c{width:var(--c);height:var(--c);display:grid;place-items:center;box-shadow:inset 0 0 0 1px #2b3a52;font-size:calc(var(--c) * .45);font-weight:700;cursor:pointer;color:var(--muted)}.sk-c.num{color:var(--text)}.sk-c.in{background:#23354f;color:var(--text)}.sk-c.in.bad{background:#5b2330}.sk-c.sel{background:#2563eb66}.sk-c.bt{border-top:3px solid var(--accent)}.sk-c.bl{border-left:3px solid var(--accent)}.sk-c.bb{border-bottom:3px solid var(--accent)}.sk-c.br{border-right:3px solid var(--accent)}.shikaku.solved .sk-c.bt,.shikaku.solved .sk-c.bl,.shikaku.solved .sk-c.bb,.shikaku.solved .sk-c.br{border-color:var(--good)}.suguru{--n: 7;--c: clamp(30px, calc(min(100vw - 44px, var(--sh)) / var(--n)), calc(52px * var(--big, 1)));display:grid;grid-template-columns:repeat(var(--n),var(--c));background:var(--panel);border:3px solid #cbd5e1;width:max-content;user-select:none}.sg-c{width:var(--c);height:var(--c);display:grid;place-items:center;box-shadow:inset 0 0 0 1px #2b3a52;font-size:calc(var(--c) * .5);cursor:pointer;color:var(--accent)}.sg-c.given{color:var(--text);font-weight:700}.sg-c.sel{background:#2563eb;color:#fff}.sg-c.bad{color:var(--bad)}.sg-c.bt{border-top:3px solid #cbd5e1}.sg-c.bl{border-left:3px solid #cbd5e1}.sg-c.bb{border-bottom:3px solid #cbd5e1}.sg-c.br{border-right:3px solid #cbd5e1}.nori{--n: 8;--c: clamp(28px, calc(min(100vw - 44px, var(--sh)) / var(--n)), calc(48px * var(--big, 1)));display:grid;grid-template-columns:repeat(var(--n),var(--c));background:var(--panel);border:3px solid #cbd5e1;width:max-content;user-select:none}.nr{position:relative;width:var(--c);height:var(--c);box-shadow:inset 0 0 0 1px #2b3a52;background:#24344c;cursor:pointer}.nr.bt{border-top:3px solid #cbd5e1}.nr.bl{border-left:3px solid #cbd5e1}.nr.bb{border-bottom:3px solid #cbd5e1}.nr.br{border-right:3px solid #cbd5e1}.nr.on{background:#22c55e}.nr.bad{background:var(--bad)}.nr.dot:after{content:"";position:absolute;left:calc(50% - 3px);top:calc(50% - 3px);width:6px;height:6px;border-radius:50%;background:#94a3b8}.nurikabe{--n: 8;--c: clamp(28px, calc(min(100vw - 44px, var(--sh)) / var(--n)), calc(48px * var(--big, 1)));display:grid;grid-template-columns:repeat(var(--n),var(--c));background:var(--panel);border:2px solid #cbd5e1;width:max-content;user-select:none}.nk{position:relative;width:var(--c);height:var(--c);display:grid;place-items:center;box-shadow:inset 0 0 0 1px #2b3a52;background:#33435e;cursor:pointer;font-size:calc(var(--c) * .5);font-weight:700}.nk.num{background:#e2e8f0;color:#0f172a;cursor:default}.nk.on{background:#0b1220}.nk.bad{background:#7f1d1d}.nk.dot:after{content:"";position:absolute;left:calc(50% - 3px);top:calc(50% - 3px);width:6px;height:6px;border-radius:50%;background:#94a3b8}.stage-yajilin{touch-action:none}.yaji{--n: 8;--c: clamp(30px, calc(min(100vw - 44px, var(--sh)) / var(--n)), calc(50px * var(--big, 1)));display:grid;grid-template-columns:repeat(var(--n),var(--c));background:var(--panel);border:2px solid var(--line);width:max-content;user-select:none}.yj{position:relative;width:var(--c);height:var(--c);box-shadow:inset 0 0 0 1px #2b3a52;cursor:pointer;display:grid;place-items:center}.yj i{position:absolute;background:var(--accent);display:none;border-radius:2px}.yj i.u{left:calc(50% - 3px);width:6px;top:0;height:52%}.yj i.d{left:calc(50% - 3px);width:6px;top:48%;height:52%}.yj i.l{top:calc(50% - 3px);height:6px;left:0;width:52%}.yj i.r{top:calc(50% - 3px);height:6px;left:48%;width:52%}.yj.u>i.u,.yj.d>i.d,.yj.l>i.l,.yj.r>i.r{display:block}.yj.on{background:#0b1220}.yj.bad{background:#7f1d1d}.yj.dot:after{content:"";position:absolute;left:calc(50% - 3px);top:calc(50% - 3px);width:6px;height:6px;border-radius:50%;background:#94a3b8}.yj.clue{background:#33435e;cursor:default}.yj.clue b{font-size:calc(var(--c) * .4);color:var(--text);font-weight:700}.yaji.solved .yj i{background:var(--good)}.stage-country,.stage-slalom,.stage-lightshadow{touch-action:none}.country,.slalom{--n: 8;--c: clamp(28px, calc(min(100vw - 44px, var(--sh)) / var(--n)), calc(50px * var(--big, 1)));display:grid;grid-template-columns:repeat(var(--n),var(--c));background:var(--panel);width:max-content;user-select:none}.ln{position:relative;width:var(--c);height:var(--c);box-shadow:inset 0 0 0 1px #2b3a52;cursor:pointer}.ln i{position:absolute;background:var(--accent);display:none;border-radius:2px;z-index:1}.ln i.u{left:calc(50% - 3px);width:6px;top:0;height:52%}.ln i.d{left:calc(50% - 3px);width:6px;top:48%;height:52%}.ln i.l{top:calc(50% - 3px);height:6px;left:0;width:52%}.ln i.r{top:calc(50% - 3px);height:6px;left:48%;width:52%}.ln.u>i.u,.ln.d>i.d,.ln.l>i.l,.ln.r>i.r{display:block}.ln.x:after{content:"×";position:absolute;inset:0;display:grid;place-items:center;color:#64748b;font-size:calc(var(--c) * .5)}.solved .ln i{background:var(--good)}.country{border:3px solid #cbd5e1}.country .ln.bt{border-top:3px solid #cbd5e1}.country .ln.bl{border-left:3px solid #cbd5e1}.country .ln.bb{border-bottom:3px solid #cbd5e1}.country .ln.br{border-right:3px solid #cbd5e1}.country .ln b{position:absolute;left:3px;top:1px;font-size:calc(var(--c) * .32);color:var(--warn);z-index:2;pointer-events:none}.country .ln.over b{color:var(--bad)}.slalom{border:2px solid var(--line)}.slalom .ln.blk{background:#0b1220;cursor:default;display:grid;place-items:center}.slalom .ln.blk b{color:#fff;font-size:calc(var(--c) * .45)}.slalom .ln.gv:before,.slalom .ln.gh:before{content:"";position:absolute}.slalom .ln.gv:before{left:calc(50% - 1px);top:0;bottom:0;border-left:3px dashed var(--accent2)}.slalom .ln.gh:before{top:calc(50% - 1px);left:0;right:0;border-top:3px dashed var(--accent2)}.slalom .ln.passed:before{border-color:var(--good)}.slalom .ln.start b{position:absolute;inset:12%;border:2px solid var(--warn);border-radius:50%;display:grid;place-items:center;font-size:calc(var(--c) * .36);color:var(--warn);background:var(--panel);z-index:2;pointer-events:none}.kenken{--n: 5;--c: clamp(44px, calc(min(100vw - 44px, var(--sh)) / var(--n)), calc(66px * var(--big, 1)));display:grid;grid-template-columns:repeat(var(--n),var(--c));background:var(--panel);border:3px solid #cbd5e1;width:max-content;user-select:none}.kk-c{position:relative;width:var(--c);height:var(--c);display:grid;place-items:center;box-shadow:inset 0 0 0 1px #2b3a52;cursor:pointer}.kk-c small{position:absolute;left:3px;top:1px;font-size:calc(var(--c) * .22);color:var(--warn);font-weight:700}.kk-c span{font-size:calc(var(--c) * .5);color:var(--accent);margin-top:6%}.kk-c.cbad small,.kk-c.bad span{color:var(--bad)}.kk-c.sel{background:#1d4ed8}.kk-c.sel span{color:#fff}.kk-c.bt{border-top:3px solid #cbd5e1}.kk-c.bl{border-left:3px solid #cbd5e1}.kk-c.bb{border-bottom:3px solid #cbd5e1}.kk-c.br{border-right:3px solid #cbd5e1}.lshadow{--n: 8;--c: clamp(28px, calc(min(100vw - 44px, var(--sh)) / var(--n)), calc(48px * var(--big, 1)));display:grid;grid-template-columns:repeat(var(--n),var(--c));border:2px solid #cbd5e1;width:max-content;user-select:none}.ls{width:var(--c);height:var(--c);display:grid;place-items:center;background:#475569;box-shadow:inset 0 0 0 1px #334155;cursor:pointer;font-weight:700;font-size:calc(var(--c) * .5)}.ls.dk{background:#0b1220;color:#e2e8f0;box-shadow:inset 0 0 0 1px #1e293b}.ls.lt{background:#f1f5f9;color:#0f172a;box-shadow:inset 0 0 0 1px #cbd5e1}.ls.num{cursor:default}.ls.dk.num{color:var(--warn)}.ls.lt.num{color:#b45309}.ls.bad.dk{background:#5b1414}.ls.bad.lt{background:#fecaca}.lshadow.solved .ls.lt{background:#dcfce7}.lshadow.solved .ls.dk{background:#052e16}.icon-btn{background:none;border:1px solid var(--line);border-radius:999px;width:38px;height:38px;cursor:pointer;font-size:1.1rem;transition:transform .15s,border-color .15s}.icon-btn:hover{border-color:var(--accent)}.icon-btn:active{transform:scale(.88)}.btn{transition:transform .12s,border-color .15s,background .15s}.btn:active:not(:disabled){transform:scale(.94)}.fx-canvas{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:200}.fx-float{position:fixed;z-index:210;pointer-events:none;transform:translate(-50%,-50%);font-weight:800;font-size:1.3rem;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.45),0 0 12px rgba(56,189,248,.8);white-space:nowrap;animation:float-up 1.3s cubic-bezier(.2,.8,.3,1) forwards}.fx-float.big{font-size:2rem;color:var(--warn);text-shadow:0 3px 0 rgba(0,0,0,.5),0 0 18px rgba(251,191,36,.9)}.fx-float.good{color:var(--good)}.fx-float.bad{color:var(--bad);text-shadow:0 2px 0 rgba(0,0,0,.45)}.fx-enter{animation:enter .4s cubic-bezier(.2,.9,.3,1)}.fx-modal{animation:modal-in .6s cubic-bezier(.2,1.4,.4,1)}.fx-modal h2{animation:title-in .7s cubic-bezier(.2,1.6,.4,1) .1s both}.fx-shake{animation:shake .4s}.fx-shake-big{animation:shake-big .5s}.fx-wave{animation:wave .6s ease-out;animation-delay:var(--wave-delay, 0ms)}.fx-pop{animation:pop-in .28s cubic-bezier(.3,1.8,.5,1)}.fx-bump{animation:bump .25s ease-out}.fx-flash{animation:fx-flash .5s ease-out}.status{transition:color .2s}@keyframes card-in{0%{opacity:0;transform:translateY(14px) scale(.96)}}@keyframes wiggle{30%{transform:rotate(-10deg) scale(1.1)}60%{transform:rotate(8deg) scale(1.1)}}@keyframes enter{0%{opacity:0;transform:translateY(10px)}}@keyframes modal-in{0%{opacity:0;transform:scale(.6) translateY(30px)}to{opacity:1;transform:none}}@keyframes title-in{0%{opacity:0;transform:scale(2.2);letter-spacing:.4em}}@keyframes float-up{0%{opacity:0;transform:translate(-50%,-30%) scale(.6)}15%{opacity:1;transform:translate(-50%,-60%) scale(1.15)}30%{transform:translate(-50%,-70%) scale(1)}to{opacity:0;transform:translate(-50%,-190%)}}@keyframes shake{20%{translate:-6px 0}40%{translate:5px 0}60%{translate:-4px 0}80%{translate:2px 0}}@keyframes shake-big{10%{translate:-10px 3px;rotate:-1deg}30%{translate:9px -3px;rotate:1deg}50%{translate:-7px 2px;rotate:0deg}70%{translate:5px -1px}90%{translate:-2px 0}}@keyframes wave{0%{filter:none;scale:1}35%{filter:brightness(1.8) saturate(1.4);scale:1.12}to{filter:none;scale:1}}@keyframes pop-in{0%{scale:.4}to{scale:1}}@keyframes bump{50%{scale:1.12}}@keyframes fx-flash{0%{filter:brightness(2.2)}to{filter:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-delay:0ms!important;transition-duration:1ms!important}}.fx-done{animation:fx-done .7s ease-out both;animation-delay:var(--fd, 0ms)}@keyframes fx-done{0%{box-shadow:inset 0 0 0 0 transparent}30%{box-shadow:inset 0 0 0 999px #4ade8055;scale:1.08}to{box-shadow:inset 0 0 0 0 transparent;scale:1}}.my i,.yj i,.ln i{animation:seg-grow .14s ease-out}.my i.u,.yj i.u,.ln i.u{transform-origin:50% 100%}.my i.d,.yj i.d,.ln i.d{transform-origin:50% 0}.my i.l,.yj i.l,.ln i.l{transform-origin:100% 50%}.my i.r,.yj i.r,.ln i.r{transform-origin:0 50%}@keyframes seg-grow{0%{scale:0}}.sl-h.on:after{animation:sl-grow-h .14s ease-out}.sl-v.on:after{animation:sl-grow-v .14s ease-out}@keyframes sl-grow-h{0%{scale:0 1}}@keyframes sl-grow-v{0%{scale:1 0}}.sl-e.no:after{animation:dot-in .15s ease-out}.sl-e:hover{background:#38bdf822}.sl-cell{transition:color .2s}.nr,.nk,.yj,.ak,.ls,.hw,.ln,.sk-c,.kk-c,.sg-c,.sc,.kw{transition:background-color .15s,color .15s}.nr:not(.on):hover,.hw:not(.on):hover,.nk:not(.on):not(.num):hover,.yj:not(.on):not(.clue):hover,.ak:not(.b):hover,.ln:not(.blk):hover,.ls:not(.num):hover{filter:brightness(1.25)}.nr.dot:after,.nk.dot:after,.yj.dot:after,.hw.dot:after{animation:dot-in .15s ease-out}.ln.x:after{animation:dot-in .15s ease-out}@keyframes dot-in{0%{scale:0;opacity:0}}.ak{transition:background-color .25s ease-out}.ak.lit{background:#5c5222;box-shadow:inset 0 0 12px #fde04733}.ak.b{transition:color .2s}.masyu.solved .my i,.yaji.solved .yj i,.solved .ln i{transition:background .4s;box-shadow:0 0 8px #4ade8088}.stage-rushhour{touch-action:none;overflow-x:clip}.rush-frame{--c: min(calc(64px * var(--big, 1)), calc(min(100vw - 64px, var(--sh)) / 6));position:relative;padding:8px;background:linear-gradient(160deg,#64748b,#334155);border-radius:16px;box-shadow:0 12px 30px #0007,inset 0 2px #fff2}.rush{position:relative;width:calc(6 * var(--c));height:calc(6 * var(--c));border-radius:8px;background-color:#1e293b;background-image:linear-gradient(#ffffff0e 1px,transparent 1px),linear-gradient(90deg,#ffffff0e 1px,transparent 1px);background-size:var(--c) var(--c);user-select:none}.rush-exit{position:absolute;right:0;top:calc(8px + 2 * var(--c));width:8px;height:var(--c);background:#1e293b}.rush-exit:after{content:"▶";position:absolute;left:12px;top:50%;translate:0 -50%;color:var(--bad);font-size:1.1rem;animation:exit-blink 1s ease-in-out infinite alternate}@keyframes exit-blink{to{opacity:.3;translate:4px -50%}}.car{position:absolute;left:0;top:0;width:var(--c);height:var(--c);transition:transform .2s cubic-bezier(.3,1.3,.5,1);cursor:grab;z-index:1;touch-action:none}.car.h{width:calc(var(--len) * var(--c))}.car.v{height:calc(var(--len) * var(--c))}.car:before{content:"";position:absolute;inset:6%;border-radius:12px;background:linear-gradient(160deg,color-mix(in srgb,var(--col) 60%,white),var(--col) 45%,color-mix(in srgb,var(--col) 65%,black));box-shadow:0 4px color-mix(in srgb,var(--col) 55%,black),0 8px 12px #0007;transition:filter .15s,box-shadow .15s}.car i{position:absolute;background:#0f172ad0;border-radius:4px;box-shadow:inset 0 2px #fff3}.car.h i{top:22%;bottom:22%;right:20%;width:12%}.car.v i{left:22%;right:22%;bottom:20%;height:12%}.car.hero:after{content:"";position:absolute;left:14%;right:40%;top:45%;height:10%;background:#fff9;border-radius:3px}.car:hover:before{filter:brightness(1.1)}.car.sel:before{box-shadow:0 0 0 3px #fff,0 4px color-mix(in srgb,var(--col) 55%,black),0 8px 14px #0007}.car.drag{transition:none;z-index:3;cursor:grabbing}.car.drag:before{filter:brightness(1.15);box-shadow:0 0 0 3px #fff,0 10px 18px #000a}.car.gone{transition:transform .5s cubic-bezier(.5,0,.9,.4),opacity .5s .1s;opacity:0}.rush.intro .car{animation:car-in .4s cubic-bezier(.3,1.5,.5,1) both;animation-delay:calc(var(--k) * 45ms)}@keyframes car-in{0%{scale:0;opacity:0}}.stage-ice{touch-action:none}.ice-board{--n: 10;--c: min(calc(46px * var(--big, 1)), calc(min(100vw - 36px, var(--sh)) / var(--n)));position:relative;display:grid;grid-template-columns:repeat(var(--n),var(--c));border-radius:10px;overflow:hidden;box-shadow:0 0 0 4px #e0f2fe44,0 12px 30px #0007;user-select:none}.ic{position:relative;width:var(--c);height:var(--c);background:linear-gradient(135deg,#dbeafe,#93c5fd 60%,#7dd3fc);box-shadow:inset 0 0 0 1px #ffffff40}.ic:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 40%,#ffffff77 45%,transparent 52%);rotate:var(--r);opacity:.6;pointer-events:none}.ic.snow{background:radial-gradient(circle at 30% 30%,#fff 0 8%,transparent 9%),radial-gradient(circle at 70% 65%,#fff 0 6%,transparent 7%),#e2e8f0}.ic.snow:after{display:none}.ic.rock:before{content:"";position:absolute;inset:8%;border-radius:42% 52% 46% 56%;background:radial-gradient(circle at 35% 30%,#cbd5e1,#64748b 55%,#334155);box-shadow:0 4px 4px #0005;rotate:var(--r);z-index:1}.ic.goal{background:radial-gradient(circle,#fef08a 0 28%,transparent 62%),linear-gradient(135deg,#dbeafe,#93c5fd)}.ic.goal:before{content:"⛳";position:absolute;inset:0;display:grid;place-items:center;font-size:calc(var(--c) * .6);animation:goal-bob 1.2s ease-in-out infinite alternate;z-index:1}@keyframes goal-bob{to{translate:0 -8%}}.peng{position:absolute;left:0;top:0;width:var(--c);height:var(--c);display:grid;place-items:center;font-size:calc(var(--c) * .74);line-height:1;transition:transform .2s cubic-bezier(.35,.1,.6,1);z-index:2;pointer-events:none}.peng span{display:block;filter:drop-shadow(0 3px 2px #0006);transition:rotate .15s,scale .15s}.peng.sliding[data-dir=right] span{rotate:16deg}.peng.sliding[data-dir=left] span{rotate:-16deg}.peng.sliding[data-dir=up] span{scale:.9 1.1}.peng.sliding[data-dir=down] span{scale:1.1 .9}.stage-roll{touch-action:none}.roll-canvas{max-width:100%;touch-action:none;border-radius:14px;background:radial-gradient(ellipse at 50% 35%,#1e3a5f,#0b1220 72%);box-shadow:0 12px 30px #0007;cursor:pointer}.rush.making .car{opacity:.35;filter:grayscale(.6);transition:opacity .3s}.rush.making:after{content:"🚗";position:absolute;inset:0;display:grid;place-items:center;font-size:calc(var(--c) * .9);animation:making .8s ease-in-out infinite alternate}@keyframes making{0%{translate:-30% 0;rotate:-8deg}to{translate:30% 0;rotate:8deg}}.gomoku{--c: min(calc(34px * var(--big, 1)), calc(min(100vw - 24px, var(--sh))/16) );display:grid;grid-template-columns:repeat(15,var(--c));padding:calc(var(--c) / 2);background:linear-gradient(135deg,#e7b96a,#d19a4a);border-radius:10px;box-shadow:0 12px 30px #0007,inset 0 0 0 2px #a8742f;width:max-content;user-select:none}.gm{position:relative;width:var(--c);height:var(--c);cursor:pointer}.gm:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#5b3a12}.gm:after{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:#5b3a12}.gm.l:before{left:50%}.gm.r:before{right:50%}.gm.t:after{top:50%}.gm.b:after{bottom:50%}.gm.star{background:radial-gradient(circle,#5b3a12 0 3px,transparent 4px)}.gm .st{position:absolute;inset:6%;border-radius:50%;z-index:1;box-shadow:1px 3px 4px #0008}.gm .st.k{background:radial-gradient(circle at 35% 30%,#666,#111 60%)}.gm .st.w{background:radial-gradient(circle at 35% 30%,#fff,#d6d3d1 70%)}.gm.last .st:after{content:"";position:absolute;inset:36%;border-radius:50%;background:#ef4444}.gm.win .st{box-shadow:0 0 0 3px #4ade80,0 0 14px #4ade80}.gm.hov:hover{background:radial-gradient(circle,#0003 0 40%,transparent 42%)}.gm.hov[data-turn="2"]:hover{background:radial-gradient(circle,#fff6 0 40%,transparent 42%)}.chess{--c: min(calc(56px * var(--big, 1)), calc(min(100vw - 40px, var(--sh))/8) );display:grid;grid-template-columns:repeat(8,var(--c));border-radius:6px;overflow:hidden;box-shadow:0 0 0 6px #5b3a1a,0 14px 30px #0008;user-select:none}.cs{position:relative;width:var(--c);height:var(--c);display:grid;place-items:center;cursor:pointer}.cs.lt{background:#eeddb8}.cs.dk{background:#b58863}.cs small{position:absolute;font-size:calc(var(--c) * .2);font-weight:700;opacity:.7;pointer-events:none}.cs .rk{left:3px;top:1px}.cs .fl{right:3px;bottom:0}.cs.lt small{color:#b58863}.cs.dk small{color:#eeddb8}.cs.last{box-shadow:inset 0 0 0 999px #facc1555}.cs.sel{box-shadow:inset 0 0 0 999px #38bdf866}.cs.chk{background:radial-gradient(circle,#ef4444 0 30%,#ef444400 70%)!important}.cs.to:after{content:"";position:absolute;width:30%;height:30%;border-radius:50%;background:#0f172a55}.cs.cap:after{content:"";position:absolute;inset:4%;border-radius:50%;box-shadow:inset 0 0 0 4px #0f172a55}.chp{font-size:calc(var(--c, 48px) * .78);line-height:1;z-index:1;font-family:Segoe UI Symbol,"Noto Sans Symbols 2",DejaVu Sans,sans-serif}.chp.w{color:#fff;text-shadow:0 0 1px #000,0 0 1px #000,0 0 2px #000,0 2px 3px #0008}.chp.b{color:#111;text-shadow:0 0 1px #fff8,0 2px 3px #0008}.cs:hover .chp{scale:1.06}.ch-caps{min-height:1.6em;font-size:1.3rem;letter-spacing:-2px;font-family:Segoe UI Symbol,"Noto Sans Symbols 2",sans-serif}.ch-caps.w{color:#fff;text-shadow:0 0 1px #000,0 0 2px #000}.ch-caps.b{color:#111;text-shadow:0 0 1px #fff8}.ch-promo{display:flex;gap:8px;padding:10px;background:var(--panel);border:1px solid var(--accent);border-radius:12px;animation:pop .25s}.ch-promo .btn{--c: 48px;padding:4px 10px}.tut-btn{margin-left:auto}.tut{z-index:120}.tut-box{position:relative;width:min(640px,100%);max-width:none;max-height:calc(100vh - 32px);overflow-y:auto;text-align:left;padding:18px 20px 16px}.tut-box.turn>:not(.tut-x):not(.tut-nav){animation:tut-in .35s ease-out}@keyframes tut-in{0%{opacity:0;translate:16px 0}}.tut-x{position:absolute;right:10px;top:8px;background:none;border:0;font-size:1.6rem;color:var(--muted);cursor:pointer;line-height:1}.tut-step{color:var(--muted);font-size:.8rem}.tut-box h2{color:var(--text)!important;margin:4px 0 12px;font-size:1.2rem}.tut-figs{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-bottom:12px}.tut-figs:empty{display:none}.tut-fig{position:relative;margin:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px;border-radius:12px;background:var(--bg);border:2px solid var(--line);max-width:100%;animation:fig-in .4s cubic-bezier(.3,1.4,.5,1) both;animation-delay:calc(var(--k) * 90ms)}@keyframes fig-in{0%{opacity:0;scale:.85}}.tut-fig.ok{border-color:#4ade8099}.tut-fig.ng{border-color:#f8717199}.tut-fig .fig{max-width:100%;height:auto;display:block}.tut-fig figcaption{font-size:.82rem;color:var(--muted);text-align:center;max-width:240px;line-height:1.45}.tut-fig.ok figcaption{color:#86efac}.tut-fig.ng figcaption{color:#fca5a5}.tut-badge{position:absolute;left:-10px;top:-12px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:1.1rem;box-shadow:0 3px 8px #0007}.tut-fig.ok .tut-badge{background:var(--good);color:#052e16}.tut-fig.ng .tut-badge{background:var(--bad);color:#450a0a}.tut-html{font-size:1.6rem;text-align:center;line-height:1.3}.tut-text{line-height:1.75;margin:0 0 14px!important;white-space:pre-line}.tut-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}.tut-dots{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.tut-dot{width:9px;height:9px;border-radius:50%;border:0;padding:0;background:var(--line);cursor:pointer}.tut-dot.on{background:var(--accent);scale:1.3}.stage-suika,.stage-suika2{touch-action:none}.suika-head{display:flex;align-items:center;justify-content:space-between;gap:12px;width:min(380px,calc(100vw - 32px))}.suika-score{display:flex;gap:8px}.suika-score span{background:#92400e;color:#fef3c7;border-radius:10px;padding:4px 12px;font-size:.78rem;text-align:center}.suika-score b{display:block;font-size:1.2rem}.suika-nextbox{display:flex;align-items:center;gap:6px;background:#92400e;color:#fef3c7;border-radius:12px;padding:4px 8px}.suika-next{width:48px;height:48px}.suika-canvas{width:min(380px,calc(100vw - 32px));aspect-ratio:380 / 560;border-radius:0 0 18px 18px;border:8px solid #b45309;border-top:0;box-shadow:0 14px 30px #0008,inset 0 0 20px #92400e55;touch-action:none;cursor:pointer;background:#fde68a}.tut-html{white-space:pre-line}.brain-box{position:relative;width:min(520px,calc(100vw - 32px));display:flex;flex-direction:column;gap:14px}.br-top{display:flex;align-items:center;gap:10px}.br-cat{background:var(--accent2);color:#fff;font-weight:800;font-size:.8rem;padding:3px 10px;border-radius:999px}.br-time{flex:1;height:12px;background:var(--panel2);border-radius:999px;overflow:hidden}.br-time i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--good),var(--accent));transition:width .1s linear}.br-time i.low{background:var(--bad);animation:blink .5s infinite alternate}@keyframes blink{to{opacity:.5}}.br-score{min-width:64px;text-align:right}.br-q{min-height:200px;display:grid;place-items:center;background:var(--panel);border-radius:16px;padding:16px;border:1px solid var(--line)}.br-a{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.br-a[data-n="2"]{grid-template-columns:1fr 1fr}.br-choice{justify-content:center;font-size:1.35rem;font-weight:800;padding:16px 8px;min-height:64px}.br-choice.right{background:var(--good);color:#052e16;border-color:var(--good)}.br-start{text-align:center}.br-big{font-size:3.5rem}.br-go{font-size:1.2rem;padding:12px 36px}.br-count{font-size:5rem;font-weight:900;color:var(--accent);animation:pop .4s}.br-ask{font-size:1.15rem;font-weight:700;margin:10px 0 0;text-align:center}.br-mark{position:absolute;left:50%;top:45%;translate:-50% -50%;font-size:9rem;font-weight:900;pointer-events:none;opacity:0}.br-mark.ok{color:#4ade80cc}.br-mark.ng{color:#f87171cc}.br-mark.show{animation:mark .55s ease-out}@keyframes mark{0%{opacity:0;scale:.4}25%{opacity:1;scale:1.1}to{opacity:0;scale:1}}.coins{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:420px}.coin{width:var(--s);height:var(--s);border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#fff8,var(--col) 45%,color-mix(in srgb,var(--col) 60%,black));box-shadow:0 3px 4px #0006,inset 0 0 0 2px #0002;font-size:calc(var(--s) * .34);color:#1f2937;position:relative}.coin.holed:after{content:"";position:absolute;width:22%;height:22%;border-radius:50%;background:var(--panel);top:12%}.coin b{font-weight:800;margin-top:18%}.scales{display:flex;flex-wrap:wrap;gap:18px;justify-content:center}.scale{position:relative;width:150px;height:80px}.scale .post{position:absolute;left:calc(50% - 4px);bottom:0;width:8px;height:46px;background:#94a3b8;border-radius:4px}.scale .post:after{content:"";position:absolute;left:-16px;bottom:-4px;width:40px;height:8px;background:#94a3b8;border-radius:4px}.scale .beam{position:absolute;left:5px;right:5px;top:30px;height:6px;background:#cbd5e1;border-radius:3px;display:flex;justify-content:space-between}.scale.l .beam{rotate:-12deg}.scale.r .beam{rotate:12deg}.scale .beam span{font-size:2rem;line-height:1;translate:0 -100%}.scale.l .beam span{rotate:12deg}.scale.r .beam span{rotate:-12deg}.br-model{display:flex;flex-direction:column;align-items:center;gap:6px}.br-choice .fig{width:auto;height:auto}.spots{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:8px;width:min(320px,80vw)}.spot{aspect-ratio:1;border:0;border-radius:10px;background:var(--panel2);cursor:pointer;transition:background .15s}.spot.lit{background:#facc15;box-shadow:0 0 16px #facc15aa}.spot.hit{background:var(--good)}.spot.bad{background:var(--bad)}.ords{display:grid;grid-template-columns:repeat(var(--c),1fr);gap:6px;width:min(400px,85vw)}.ord{aspect-ratio:1;border:0;border-radius:10px;background:transparent;font-size:1.5rem;font-weight:900;color:var(--text)}.ord.num{background:var(--panel2);cursor:pointer}.ord.num.hide{color:transparent;background:#f1f5f9}.ord.hit{background:var(--good)!important;color:#052e16!important}.ord.bad{background:var(--bad)!important}.odds{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:4px;width:min(360px,85vw)}.oddc{aspect-ratio:1;border:0;border-radius:8px;background:var(--panel2);font-size:clamp(1rem,6vw,1.7rem);cursor:pointer;color:var(--text)}.oddc.hit{background:var(--good)}.oddc.bad{background:var(--bad)}.seq{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;font-size:1.8rem;font-weight:800}.seq span{background:var(--panel2);border-radius:10px;padding:6px 14px}.seq .qm{background:var(--accent);color:#0f172a}.shogi{--c: min(calc(46px * var(--big, 1)), calc(min(100vw - 60px, var(--sh)) / 9));display:grid;grid-template-columns:repeat(9,var(--c));background:linear-gradient(135deg,#f0c979,#d9a54f);border:2px solid #5b3a12;box-shadow:0 12px 30px #0008;user-select:none}.sh-wrap{display:flex;flex-direction:column;align-items:center}.sh-mid{display:flex}.sh-cols{display:grid;grid-template-columns:repeat(9,min(calc(46px * var(--big, 1)),calc(min(100vw - 60px,var(--sh)) / 9)));margin-right:18px;font-size:.75rem;color:var(--muted);text-align:center}.sh-rows{display:grid;grid-template-rows:repeat(9,min(calc(46px * var(--big, 1)),calc(min(100vw - 60px,var(--sh)) / 9)));width:18px;font-size:.75rem;color:var(--muted);align-items:center;text-align:center}.sq{position:relative;width:var(--c);height:var(--c);box-shadow:inset 0 0 0 .5px #5b3a12;display:grid;place-items:center;cursor:pointer}.sq.last{background:#fde04766}.sq.from{background:#fde04733}.sq.sel{background:#38bdf866}.sq.to:after{content:"";position:absolute;width:28%;height:28%;border-radius:50%;background:#1e3a8a66}.sq.chk{background:radial-gradient(circle,#ef4444aa,transparent 70%)}.kp{display:grid;place-items:center;width:82%;height:88%;clip-path:polygon(50% 0,88% 18%,100% 100%,0 100%,12% 18%);background:linear-gradient(160deg,#fcebc5,#e7c688);color:#1f2937;font-weight:800;font-size:calc(var(--c, 40px) * .5);font-family:Yu Mincho,Hiragino Mincho ProN,"Noto Serif JP",serif;padding-top:8%;filter:drop-shadow(0 2px 1px #0006);line-height:1}.kp.pro{color:#dc2626}.kp.opp{rotate:180deg}.sq:hover .kp{scale:1.05}.sh-hand{display:flex;align-items:center;gap:6px;min-height:52px;width:min(440px,calc(100vw - 32px));padding:4px 10px;background:#3b2a14;border-radius:10px;--c: 40px;transition:box-shadow .2s}.sh-hand.turn{box-shadow:0 0 0 2px var(--accent)}.sh-who{color:#e7c688;font-size:.8rem;margin-right:4px}.sh-hp{position:relative;width:40px;height:44px;background:none;border:0;padding:0;cursor:pointer;display:grid;place-items:center}.sh-hp:disabled{cursor:default}.sh-hp small{position:absolute;right:-4px;bottom:-2px;background:var(--accent);color:#0f172a;border-radius:999px;font-size:.7rem;font-weight:800;padding:0 5px}.sh-hp.sel{background:#38bdf855;border-radius:8px}.sh-ask{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--panel);border:1px solid var(--accent);border-radius:12px;animation:pop .25s;--c: 36px}.sh-ask .kp{width:30px;height:34px;display:inline-grid}.goban{--n: 9;--c: min(calc(44px * var(--big, 1)), calc(min(100vw - 24px, var(--sh)) / (var(--n) + 1)));display:grid;grid-template-columns:repeat(var(--n),var(--c));padding:calc(var(--c) / 2);background:linear-gradient(135deg,#e3b26a,#cf9a4c);border-radius:8px;box-shadow:0 12px 30px #0008,inset 0 0 0 2px #a8742f;width:max-content;user-select:none}.gi{position:relative;width:var(--c);height:var(--c);cursor:pointer}.gi:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#4a2f0e}.gi:after{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:#4a2f0e}.gi.l:before{left:50%}.gi.r:before{right:50%}.gi.t:after{top:50%}.gi.b:after{bottom:50%}.gi.star{background:radial-gradient(circle,#4a2f0e 0 3.5px,transparent 4.5px)}.gs{position:absolute;inset:4%;border-radius:50%;z-index:1;box-shadow:1px 3px 4px #0008;display:block}.gs.k{background:radial-gradient(circle at 35% 30%,#6b7280,#111 60%)}.gs.w{background:radial-gradient(circle at 35% 30%,#fff,#d6d3d1 72%)}.gs.dead{opacity:.4}.gi.last .gs:after{content:"";position:absolute;inset:32%;border-radius:50%;border:2px solid #ef4444}.gi.hov:hover{background:radial-gradient(circle,#0004 0 38%,transparent 40%)}.gi.hov[data-turn="2"]:hover{background:radial-gradient(circle,#fff8 0 38%,transparent 40%)}.gi.tk{background:linear-gradient(#111 0 0) center / 30% 30% no-repeat}.gi.tw{background:linear-gradient(#f8fafc 0 0) center / 30% 30% no-repeat}.go-info{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.go-p{display:flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:4px 14px 4px 6px;font-size:.9rem}.go-p.on{border-color:var(--accent);box-shadow:0 0 0 2px #38bdf833}.go-p .gs{position:static;width:20px;height:20px}.mj{position:relative;width:min(760px,100%);container-type:inline-size;display:flex;flex-direction:column;gap:10px;background:radial-gradient(ellipse at center,#166534,#0f3d22 75%);border-radius:16px;padding:10px;box-shadow:0 14px 30px #0008,inset 0 0 0 3px #3f2a14}.mt{--tw: clamp(22px, calc((100vw - 60px) / 15), 40px);position:relative;display:inline-grid;place-items:center;align-content:center;width:var(--tw);height:calc(var(--tw) * 1.36);margin:0 1px;background:linear-gradient(180deg,#fffdf6,#efe6cf);border-radius:5px;box-shadow:0 3px #b8a67a,0 4px 5px #0006;color:#1f2937;line-height:1;user-select:none;vertical-align:bottom;transition:translate .12s}.mt b{font-size:calc(var(--tw) * .55);font-weight:800;font-family:Yu Mincho,Hiragino Mincho ProN,"Noto Serif JP",serif}.mt small{font-size:calc(var(--tw) * .3);font-weight:700}.mt.s0 small{color:#dc2626}.mt.s1 b,.mt.s1 small{color:#1d4ed8}.mt.s2 b,.mt.s2 small,.mt.h5 b{color:#15803d}.mt.h6 b{color:#dc2626}.mt.h4:after{content:"";position:absolute;inset:22% 24%;border:2px solid #1d4ed8;border-radius:3px}.mt.back{background:linear-gradient(180deg,#f59e0b,#b45309);box-shadow:0 3px #fffdf6,0 4px 5px #0006}.mt.sm{--tw: clamp(15px, calc((100cqw - 30px) / 22), 26px)}.mt.xs{--tw: 12px;margin:0}.mt.side{rotate:90deg;margin:0 calc(var(--tw) * .2)}.mt.gone{opacity:.35}.mt.lastd{box-shadow:0 3px #b8a67a,0 0 0 2px #fbbf24,0 0 10px #fbbf24}.mj-hand .mt{cursor:pointer}.mj-hand .mt:hover{translate:0 -6px}.mj-hand .mt.drawn{margin-left:calc(var(--tw) * .4)}.mj-hand .mt.dim{opacity:.4;cursor:not-allowed}.mj-hand .mt.ok{translate:0 -8px;box-shadow:0 3px #b8a67a,0 0 0 2px #4ade80}.mj-opps{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.mj-opp,.mj-me{background:#0003;border-radius:10px;padding:6px 8px;border:1px solid transparent}.mj-opp.turn,.mj-me.turn{border-color:#fbbf24;box-shadow:0 0 12px #fbbf2455}.mj-name{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:.8rem;color:#d1fae5;margin-bottom:4px}.mj-name b{color:#fff;font-size:.95rem}.mj-rb{background:#dc2626;color:#fff;border-radius:999px;padding:0 8px;font-weight:800;font-size:.72rem}.mj-wait{display:inline-flex;align-items:center;gap:2px;background:#0004;border-radius:8px;padding:2px 6px}.mj-wait em{color:#fca5a5;font-style:normal;margin-left:4px}.mj-ohand{display:flex;flex-wrap:wrap;gap:1px;align-items:flex-end;min-height:20px}.mj-meld{display:inline-flex;margin-left:6px;align-items:flex-end}.mj-center{display:grid;grid-template-columns:1fr;gap:8px}.mj-info{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;background:#00000040;border-radius:10px;padding:6px 10px;color:#ecfdf5}.mj-round{font-weight:800;font-size:1.05rem}.mj-dora{display:flex;align-items:center;gap:4px}.mj-ponds{display:grid;grid-template-columns:1fr 1fr;gap:6px}.mj-pond{background:#00000026;border-radius:8px;padding:4px 6px;min-height:54px;border:1px solid transparent}.mj-pond.turn{border-color:#fbbf2488}.mj-pond small{color:#a7f3d0;font-size:.7rem}.mj-pond>div{display:flex;flex-wrap:wrap;gap:1px;align-items:center}.mj-hand{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1px;min-height:60px}.mj-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.mj-acts .btn{font-weight:800;padding:9px 18px;animation:pop .25s}.mj-end{position:absolute;inset:10% 6% auto;z-index:5;background:var(--panel);border:2px solid var(--accent);border-radius:16px;padding:16px 18px;box-shadow:0 20px 50px #000a;animation:modal-in .45s cubic-bezier(.2,1.4,.4,1);display:flex;flex-direction:column;gap:10px}.mj-end h3{margin:0;font-size:1.2rem;color:var(--warn)}.mj-yaku{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:4px 14px}.mj-yaku div{display:flex;justify-content:space-between;border-bottom:1px dashed var(--line)}.mj-pts{font-size:1.2rem;font-weight:800;margin:0;color:var(--good)}.mj-delta{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;font-size:.9rem}.mj-delta div{display:flex;gap:8px;align-items:baseline}.mj-delta b.up{color:var(--good)}.mj-delta b.down{color:var(--bad)}.mj-delta small{color:var(--muted);margin-left:auto}@media(max-width:560px){.mj-opps{grid-template-columns:1fr}}.mt svg{width:100%;height:100%;display:block;padding:6% 5%;box-sizing:border-box}.mj-hand{flex-wrap:nowrap}.mj-hand>.mt{--tw: min(40px, calc((100cqw - 48px) / 14.4));flex:none;margin:0 .5px}.mj-hand .mj-meld .mt{--tw: min(28px, calc((100cqw - 40px) / 22))}.net{width:min(520px,calc(100vw - 32px));background:var(--panel);border:1px solid var(--accent);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;animation:pop .25s}.net p{margin:0;color:var(--muted);font-size:.9rem}.net-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.net-code{width:90px;font:inherit;font-size:1.2rem;letter-spacing:.2em;text-align:center;padding:6px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--text)}.net-big{font-size:3rem;font-weight:900;letter-spacing:.25em;color:var(--warn);text-align:center}.net-url{word-break:break-all;background:var(--bg);padding:6px 8px;border-radius:8px;font-size:.85rem;user-select:all}.net-wait{animation:blink .8s infinite alternate}.net-msg{color:var(--bad)!important}.vs-row{display:flex;gap:10px;align-items:flex-start;justify-content:center}.vs-oppbox{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--panel);border-radius:10px;padding:6px}.vs-oppbox small{color:var(--muted);font-size:.72rem}.vs-opp{width:64px;height:auto;border-radius:4px;image-rendering:pixelated}.suika-opp{width:76px;image-rendering:auto;border-radius:0 0 8px 8px}.suika-score span.suika-in{background:#dc2626}.stage-suika .vs-row .suika-canvas,.stage-suika2 .vs-row .suika-canvas{width:min(380px,calc(100vw - 32px - var(--oppw, 0px)))}.stage-suika .vs-row:has(.vs-oppbox:not([hidden])),.stage-suika2 .vs-row:has(.vs-oppbox:not([hidden])){--oppw: 100px}.net-title{font-size:1.05rem}.net-steps{margin:0;padding-left:1.4em;display:flex;flex-direction:column;gap:4px;font-size:.92rem;line-height:1.5}.net-where{color:var(--text)!important;background:var(--bg);border-radius:10px;padding:8px 10px;line-height:1.6}.net-where.warn{border:1px solid var(--warn)}.net-where code{background:var(--panel2);padding:1px 6px;border-radius:6px;word-break:break-all}.net-note{font-size:.8rem!important}.stage{--sh: 100dvh}@media(max-width:640px),(max-height:520px){.app-header{padding:6px 12px}.logo{font-size:1rem}.icon-btn{width:32px;height:32px;font-size:.95rem}main{padding:8px 10px 40px}.view-head{gap:8px}.view-head h1{font-size:1.1rem;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.view-head .btn{padding:5px 10px;font-size:.85rem}.toolbar{gap:6px;margin:8px 0 4px}.toolbar .btn,.toolbar select.sel{padding:5px 9px;font-size:.85rem}.status{margin:2px 0 8px;font-size:.85rem;min-height:1.3em}.stage{gap:10px}.cards{grid-template-columns:1fr;gap:8px}.card{padding:10px;gap:10px}.card-icon{width:46px;height:46px;font-size:1.7rem}.filters{gap:6px;margin-bottom:10px}.chip{padding:5px 11px;font-size:.85rem}}@media(max-height:520px)and (orientation:landscape){.app-header{position:static}.view-head h1{font-size:1rem}}.stage-sudoku,.stage-kakuro,.stage-kenken,.stage-suguru{--below: 130px}.stage-blocks{--below: 160px}.stage-chess{--below: 80px}.stage-shogi{--below: 150px}.stage-go{--below: 50px}.stage-memory,.stage-flood{--below: 70px}.stage-rushhour{--below: 20px}@media(hover:none){.stage-sokoban,.stage-ice,.stage-roll,.stage-maze{--below: 150px}}.suika-canvas{width:min(calc(380px * var(--big, 1)),calc(100vw - 32px),calc((var(--sh) - 70px) * 380 / 560))}.stage-suika .vs-row .suika-canvas,.stage-suika2 .vs-row .suika-canvas{width:min(380px,calc(100vw - 32px - var(--oppw, 0px)),calc((var(--sh) - 70px) * 380 / 560))}.suika-head{width:min(calc(380px * var(--big, 1)),calc(100vw - 32px),calc((var(--sh) - 70px) * 380 / 560 + 100px))}@media(max-height:520px)and (orientation:landscape)and (min-width:560px){main{max-width:none;padding:6px 10px 20px}#view:not([hidden]){display:grid;grid-template-columns:minmax(150px,210px) 1fr;grid-template-rows:auto auto 1fr;column-gap:12px;align-items:start}#view .view-head{grid-column:1;grid-row:1;flex-wrap:wrap}#view .view-head h1{order:-1;flex-basis:100%;white-space:normal}#view .tut-btn{margin-left:0}#view .toolbar{grid-column:1;grid-row:2;margin:6px 0}#view .status{grid-column:1;grid-row:3}#view .stage{grid-column:2;grid-row:1 / span 3;min-width:0}}.stage-2048{--below: 70px}@media(max-height:520px)and (orientation:landscape)and (min-width:560px){.stage-sudoku,.stage-kakuro,.stage-kenken,.stage-suguru{flex-direction:row;align-items:center;justify-content:center;--below: 0px}.stage-sudoku .sudoku-pad,.stage-kakuro .sudoku-pad,.stage-kenken .sudoku-pad,.stage-suguru .sudoku-pad{width:150px;grid-template-columns:repeat(3,1fr)!important}.stage-sudoku .sudoku-pad .btn,.stage-kakuro .sudoku-pad .btn,.stage-kenken .sudoku-pad .btn,.stage-suguru .sudoku-pad .btn{padding:6px 0;font-size:1rem}.stage-blocks{flex-direction:row;align-items:center;justify-content:center;--below: 0px}.stage-blocks .tray{flex-direction:column;min-height:0}.stage-sokoban,.stage-ice,.stage-roll,.stage-maze{flex-direction:row;align-items:center;justify-content:center;--below: 0px}}:root{--big: 1}@media(min-width:700px)and (min-height:700px){:root{--big: 1.4}}.mj-cnt{display:none}@media(max-width:640px){.mj{padding:6px;gap:6px;border-radius:12px}.mj-me,.mj-opp{padding:5px 6px}.mj-opps{grid-template-columns:repeat(3,1fr);gap:4px}.mj-opp .mj-name{font-size:.72rem;gap:3px}.mj-opp .mj-name b{font-size:.8rem}.mj-ohand .mt.back{display:none}.mj-cnt{display:inline;color:#a7f3d0;font-size:.72rem}.mj-ohand .mj-meld{margin-left:2px}.mj-ohand .mj-meld .mt{--tw: 13px}.mj-info{gap:8px;padding:4px 8px;font-size:.85rem}}.net-tag{background:#0c4a6e;color:#bae6fd}.vs-score{color:var(--warn);font-size:.8rem}.fx-float{white-space:pre-line;text-align:center}
