.threeview{gap:6px}.threeview .settings-bar.threeview-bar{flex-wrap:wrap}.threeview .settings-bar .threeview-levels{flex:1 1 auto;min-width:0;flex-wrap:nowrap}.threeview .settings-bar .threeview-levels button{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0 6px;line-height:1.05}.tv-label-en{font-size:.78rem;font-weight:800}.tv-label-zh{font-size:.66rem;opacity:.8}.threeview .settings-bar .threeview-index{flex-wrap:nowrap}.threeview .settings-bar .threeview-index button{min-width:34px;padding:0 8px}.threeview-stage{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(8px,2vw,24px);align-items:stretch}.threeview-solid{position:relative;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;padding:clamp(6px,1.6vmin,18px);border-radius:28px;background:radial-gradient(circle at 50% 28%,#fff,#e8f3fb 72%);box-shadow:var(--shadow)}.threeview-iso{flex:1 1 auto;min-height:0;width:100%;height:100%}.threeview-quiz{min-width:0;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,auto) auto;align-content:center;gap:clamp(6px,1.5vmin,16px)}.threeview-prompt{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:2px 10px;text-align:center;font-weight:800;color:#2c4060;font-size:clamp(.95rem,1.9vmin,1.5rem)}.tv-prompt-zh{font-size:.9em;color:var(--muted)}.threeview-progress{padding:2px 10px;border-radius:999px;background:#ffe08a;font-size:.78em}.threeview-helper{display:flex;align-items:center;justify-content:center;gap:clamp(6px,1.4vmin,14px)}.tv-dir{display:flex;align-items:center;gap:4px;padding:3px 9px 3px 5px;border-radius:999px;background:#fffc;border:3px solid #d7e7f3;color:#8fa0b4;font-weight:800;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.tv-dir.is-active{background:#ffe08a;border-color:#e2a13c;color:#a5561c;transform:scale(1.08)}.tv-arrow{width:clamp(18px,2.6vmin,28px);height:clamp(18px,2.6vmin,28px);flex:0 0 auto}.tv-dir-zh{font-size:clamp(.8rem,1.7vmin,1.15rem)}.tv-dir-en{font-size:clamp(.62rem,1.2vmin,.85rem);opacity:.75}.threeview-options{min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:clamp(8px,1.6vmin,18px)}.threeview-option{position:relative;width:100%;min-width:0;min-height:0;max-height:100%;aspect-ratio:1 / 1;padding:0;display:grid;place-items:center;border-radius:26px;background:#fffdf5;border:4px solid #d7e7f3;box-shadow:var(--shadow);transition:transform .14s ease,border-color .18s ease,background .18s ease}.threeview-option:active{transform:scale(.96)}.threeview-option.is-right{border-color:#4cc47a;background:#eafff0}.threeview-option.is-wrong{border-color:#f0a4a0;background:#fff1ef;opacity:.7}.threeview-option-inner{container-type:size;width:100%;height:100%;display:grid;place-items:center}.tv-grid{display:grid;grid-template-columns:repeat(var(--cols),1fr);grid-template-rows:repeat(var(--rows),1fr);gap:clamp(2px,3cqmin,12px);width:min(84cqw,calc(84cqh * var(--cols) / var(--rows)));aspect-ratio:var(--cols) / var(--rows)}.tv-cell{border-radius:16%}.tv-cell.is-on{background:#4a6cd4;box-shadow:inset 0 -2px #0000002e}.tv-number{display:flex;flex-direction:column;align-items:center;line-height:1;font-weight:900;color:#3f5fae;font-size:min(30cqh,30cqw)}.tv-number-unit{margin-top:.25em;font-size:.24em;font-weight:800;color:var(--muted)}.tv-badge{position:absolute;top:4%;right:8%;font-size:clamp(1rem,2.6vmin,2rem);font-weight:900;color:#2f9e5c}.threeview-status{margin:0;min-height:1.4em;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:800;color:var(--muted);font-size:clamp(.8rem,1.5vmin,1.05rem)}.threeview-status[data-state=right],.threeview-status[data-state=done]{color:#2f9e5c}.threeview-status[data-state=wrong]{color:#d1564a}@media(max-width:720px){.threeview .settings-bar .threeview-modes,.threeview .settings-bar .threeview-index{display:none}.threeview{padding:6px 10px 10px;gap:4px}.threeview-stage{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:6px}.threeview-option{border-width:3px;border-radius:20px}.threeview-prompt{font-size:.92rem}}@media(max-height:520px){.threeview .settings-bar .threeview-modes,.threeview .settings-bar .threeview-index{display:none}.threeview{padding:4px 12px 8px;gap:4px}.threeview .settings-bar .mode-row button{min-height:34px;font-size:.8rem}.threeview .settings-bar .threeview-levels button{flex-direction:row;gap:4px;padding:0 4px}.tv-label-zh{font-size:.62rem}.threeview-stage{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);grid-template-rows:minmax(0,1fr)}.threeview-prompt{font-size:.84rem}.tv-prompt-zh{font-size:.8em}.threeview-status{font-size:.72rem}}:root{--sky-top: #57b7dc;--sky-bot: #d7f3fb;--sun: #ffd56a;--hill: #6fbe74;--hill-deep: #4e9d55;--paper: #fff6e4;--ink: #2a2a4a;--muted: #5c5a78;--en: #184f96;--zh: #c45c1a;--card: #fffdf7;--coral: #ff8a6a;--green: #62c36d;--violet: #8b7ce0;--blue: #5aa4e8;--gold: #f0b429;--road: #6d727c;--road-edge: #4d525b;--hit: 76px;--radius: 28px;--shadow: 0 8px 0 rgba(42, 42, 74, .16);font-family:Fredoka,PingFang SC,Hiragino Sans GB,Noto Sans SC,sans-serif;color:var(--ink)}@font-face{font-family:Fredoka;font-style:normal;font-weight:400 700;font-display:swap;src:local("Fredoka"),local("Gill Sans"),local("Trebuchet MS")}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;width:100%;height:100%;height:100dvh;overflow:hidden;background:var(--sky-top);touch-action:manipulation;user-select:none;-webkit-user-select:none}button,input{font:inherit;color:inherit}input,textarea{user-select:text;-webkit-user-select:text;pointer-events:auto}button{min-height:var(--hit);min-width:var(--hit);border:0;cursor:pointer}button.mem-card,button.choice-card{min-height:0;min-width:0}.app{position:fixed;inset:0;width:100%;height:100%;height:100dvh;display:flex;flex-direction:column;background:radial-gradient(circle at 88% 12%,var(--sun) 0 70px,transparent 72px),linear-gradient(#8fd3ee,transparent 42%),linear-gradient(var(--sky-top),var(--sky-bot) 58%,var(--hill) 58%,var(--hill-deep));padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 18px 0}.topbar-left,.topbar-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.topbar.in-game .full-btn{order:3;margin-left:8px}.topbar-right{justify-content:flex-end}.brand-mark{display:flex;flex-direction:column;line-height:1.05}.brand-mark strong{font-size:1.35rem}.brand-mark em{font-style:normal;color:var(--zh);font-weight:700}.home-btn,.lang-switch button,.gear,.primary,.dest,.parent button,.done-bar button{border-radius:999px;background:var(--paper);box-shadow:var(--shadow)}.home-btn{display:flex;flex-direction:column;align-items:flex-start;padding:8px 18px;line-height:1.1}.home-btn span{color:var(--zh);font-size:.85rem}.lang-switch{display:flex;background:#fff8;border-radius:999px;padding:4px;gap:4px}.lang-switch button{min-width:72px;height:72px;min-height:72px;box-shadow:none;background:transparent;font-weight:700}.lang-switch button.is-on{background:var(--paper);box-shadow:var(--shadow)}.gear,.full-btn{width:72px;min-width:72px;height:72px;min-height:72px;letter-spacing:2px;color:var(--muted)}.full-btn{font-size:1.4rem;letter-spacing:0}.captions{background:color-mix(in srgb,var(--paper) 92%,transparent);border-radius:22px;padding:8px 16px;min-height:64px;box-shadow:var(--shadow)}.cap-en,.cap-zh{margin:0;text-align:center}.cap-en{color:var(--en);font-weight:700;font-size:1.15rem}.cap-zh{color:var(--zh);font-weight:700}.cap-en.is-live,.cap-zh.is-live{transform:scale(1.03)}.hub{flex:1;display:grid;grid-template-columns:1fr;gap:12px;padding:8px 16px 16px;align-items:stretch;min-height:0;overflow:hidden}.buddy-wrap{display:flex;align-items:flex-end;justify-content:center}.buddy{width:min(220px,28vh);filter:drop-shadow(0 10px 0 rgba(42,42,74,.12))}.hub{position:relative}.warm-chip{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 0 6px;padding:3px 12px;border-radius:999px;background:#fffdf3;border:2px solid #ffd76a;font-weight:700;font-size:.88rem;color:#6a5a44}.warm-chip small{opacity:.65}.warm-dot{width:10px;height:10px;border-radius:50%;background:#f2913d;animation:warm-pulse 1.1s ease-in-out infinite}@keyframes warm-pulse{50%{opacity:.25;transform:scale(.7)}}.warm-gate{position:absolute;inset:0;z-index:30;display:grid;place-items:center;background:#ffffffbd}.warm-gate-card{display:flex;flex-direction:column;align-items:center;gap:10px;width:min(520px,84%);padding:24px 28px 22px;border-radius:24px;background:#fffdf7;box-shadow:var(--shadow);text-align:center}.warm-gate-title{margin:0;font-weight:800;font-size:1.1rem;color:#6a5a44}.warm-gate-percent{margin:0;font-weight:800;font-size:2.6rem;line-height:1;color:#f2913d}.warm-gate-bar{width:100%;height:14px;border-radius:999px;background:#ffe8a8;overflow:hidden}.warm-gate-bar i{display:block;height:100%;border-radius:999px;background:#f2913d;transition:width .3s ease}.warm-gate-hint{margin:0;font-size:.9rem;font-weight:600;color:#6a5a44}.install-hint{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 6px;padding:2px 6px 2px 12px;border-radius:999px;background:#fffdf3;border:2px solid #ffd76a;font-weight:700;font-size:.9rem;color:#6a5a44}.install-hint-close{flex:none;width:26px;height:26px;min-height:0;padding:0;border-radius:50%;background:#ffe8a8;font-weight:800;box-shadow:none}.dest-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:10px;align-content:start;overflow:auto;padding-bottom:4px}.dest{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:28px;padding:6px 6px 8px;min-height:118px}.dest img{width:68px;height:68px;object-fit:cover;border-radius:16px}.dest-en{font-weight:700;color:var(--en)}.dest-zh{color:var(--zh);font-weight:700}.dest-coral{background:#ffe3d6}.dest-green{background:#dff6dc}.dest-violet{background:#e8e2ff}.dest-blue{background:#d7ecff}.dest-gold{background:#ffe9b0}.dest-mint{background:#d4f5e8}.dest-pink{background:#ffd6e8}.dest-peach{background:#ffe0c2}.dest-sky{background:#cdefff}.dest-rose{background:#ffd0d6}.dest-lemon{background:#fff3b0}.dest-plum{background:#ead4ff}.dest-ice{background:#d8fff4}.dest-lilac{background:#e6d7ff}.dest-ember{background:#ffd4c0}.dest-ink{background:#e8dcc8}.dest-meadow{background:#d8f6c4}.dest-sand{background:#f6e3c0}.dest-night{background:#d9d6f0}.dest-mist{background:#e3e6ec}.dest-wood{background:#f0dbc0}.hanzi-packs.is-scroll{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;-webkit-overflow-scrolling:touch;max-width:100%}.hanzi-packs button{min-width:0;min-height:40px;padding:0 10px;font-size:.82rem}.hanzi-packs button:disabled,.hanzi button:disabled{opacity:.4}.hanzi-hear,.hanzi-trace,.hanzi-mix,.hanzi-know,.hanzi-tapread,.hanzi-pinyin,.hanzi-blend{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px;overflow:hidden}.hanzi .mode-row{padding-bottom:4px;gap:6px}.hanzi .mode-row button{min-height:40px;min-width:0;padding:0 12px;font-size:.88rem}.hanzi[data-mode=know] .piano-hint{display:none}.hanzi[data-mode=know] .hanzi-mark{min-width:64px;min-height:64px;padding:2px 8px}.hanzi[data-mode=know] .hanzi-mark.is-large .hanzi-char{font-size:2.4rem}.hanzi-prompt{display:flex;align-items:center;justify-content:center;gap:12px}.hanzi-replay{min-height:48px;min-width:120px;border-radius:16px;background:#21d45a;font-weight:800}.hanzi-prompt-en{font-weight:800;color:var(--ink);background:color-mix(in srgb,var(--paper) 88%,transparent);border-radius:12px;padding:6px 12px}.hanzi-grid,.hanzi-mix-row{flex:1;min-height:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.hanzi-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;min-height:0;border-radius:22px;background:color-mix(in srgb,var(--paper) 90%,#8b7ce0);box-shadow:var(--shadow);padding:8px}.hanzi-card.is-yes{outline:6px solid #21d45a}.hanzi-card.is-on{background:#ffe08a}.hanzi-card.is-shake{animation:shake .35s ease}.hanzi-char{font-size:2.6rem;font-weight:800;line-height:1}.hanzi-py{font-size:.9rem;font-weight:700;color:var(--en)}.hanzi-card-label{font-size:1.4rem;font-weight:800}.hanzi-art,.hanzi-art-img{width:min(96px,18vh);height:min(96px,18vh);object-fit:contain}.hanzi-mark{display:flex;flex-direction:column;align-items:center;min-width:88px;min-height:88px;border-radius:20px;background:#fffef8;box-shadow:var(--shadow);padding:8px 12px}.hanzi-mark.is-large .hanzi-char{font-size:4.2rem}.hanzi-pop{display:flex;align-items:center;justify-content:center;gap:16px;flex-shrink:0}.hanzi-trace-top{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;flex-shrink:0}.tianzi-slot{flex:1 1 0;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center}.tianzi-wrap{position:relative;height:100%;width:auto;max-width:100%;max-height:100%;aspect-ratio:1;margin:0 auto}.tianzi,.tianzi-ink{position:absolute;inset:0;width:100%;height:100%}.tianzi-ink{touch-action:none;cursor:crosshair}.hanzi-stroke-n{position:absolute;right:10px;bottom:10px;z-index:2;font-weight:800;font-size:1.15rem;color:#184f96;background:#fffce8;border-radius:12px;padding:2px 10px;pointer-events:none}.hanzi-trace-bar{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;flex-shrink:0}.hanzi-trace-bar button{min-height:48px;min-width:0;padding:0 14px;border-radius:16px;background:#fff8;font-weight:800}.hanzi-stars{font-size:1.6rem;color:#f0b429}.hanzi-letter{font-size:2.6rem;font-weight:800;line-height:1;font-family:PingFang SC,Hiragino Sans GB,Noto Sans SC,sans-serif}.hanzi-pinyin .hanzi-card{min-height:72px}.hanzi-blend-sum,.hanzi-blend-row,.hanzi-tones{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;flex-shrink:0}.hanzi-blend-sum .hanzi-card,.hanzi-tones .hanzi-card{min-width:72px;min-height:72px;padding:6px 10px}.hanzi-blend-row .hanzi-card{min-width:56px;min-height:64px}.hanzi-blend-op{font-size:1.8rem;font-weight:800;color:#184f96}@media(max-height:520px){.hanzi .piano-hint{display:none}.hanzi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hanzi-char,.hanzi-letter{font-size:1.8rem}.hanzi-art,.hanzi-art-img{width:56px;height:56px}}.dest:active,.home-btn:active,.primary:active,.lang-switch button:active{transform:translateY(4px);box-shadow:0 4px #2a2a4a29}.game{flex:1;display:flex;flex-direction:column;padding:8px 20px 18px;min-height:0;overflow:hidden}.card-grid{flex:1;display:grid;gap:16px;place-content:center}.card-grid.pairs-2{grid-template-columns:repeat(4,minmax(120px,180px))}.card-grid.pairs-3{grid-template-columns:repeat(3,minmax(120px,180px))}.card-grid.pairs-8,.card-grid.slots-4,.card-grid.slots-8,.card-grid.slots-12,.card-grid.slots-16,.card-grid.slots-24,.card-grid.slots-36{gap:clamp(4px,1.2vmin,10px);width:100%;height:100%;min-height:0;margin:0}.card-grid.slots-4{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.card-grid.slots-8{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.card-grid.slots-12{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}.card-grid.pairs-8,.card-grid.slots-16{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr))}.card-grid.slots-24{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr))}.card-grid.slots-36{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr));gap:clamp(2px,.8vmin,8px)}.mem-card{width:100%;height:100%;min-width:0;min-height:0;perspective:800px;background:transparent;box-shadow:none;position:relative;padding:0;overflow:hidden}.mem-card .face{position:absolute;inset:0;border-radius:clamp(10px,2vmin,20px);overflow:hidden;backface-visibility:hidden;box-shadow:0 4px #2a2a4a1f;transition:transform .28s ease}.mem-card .back{transform:rotateY(0);background:#f4b942}.mem-card .front,.mem-card .back{display:flex;align-items:center;justify-content:center}.mem-card .front{transform:rotateY(180deg);background:var(--card)}.mem-card.is-up .back{transform:rotateY(180deg)}.mem-card.is-up .front{transform:rotateY(0)}.mem-card img,.choice-card img{width:auto;height:auto;max-width:86%;max-height:86%;object-fit:contain;object-position:center center;display:block;margin:0 auto}.mem-card.is-matched .front{outline:6px solid #7be07f}.choice-grid{flex:1;display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:16px;align-content:center}.choice-card{background:var(--card);border-radius:28px;box-shadow:var(--shadow);padding:8px;min-height:160px}.choice-card.is-yes{outline:6px solid #7be07f}.choice-card.is-shake{animation:shake .35s ease}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.maze-svg,.maze-3d{flex:1;width:100%;min-height:0;border-radius:28px;touch-action:none;box-shadow:var(--shadow);background:#8fd18a}.maze-3d{display:block;background:#6ec8ee}.scene-frame{position:relative;flex:1;min-height:0;border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}.scene-bg{width:100%;height:100%;object-fit:cover;display:block}.hot-obj{position:absolute;width:14%;min-width:64px;min-height:64px;background:transparent;box-shadow:none;padding:0;transform:translate(-50%,-50%)}.hot-obj img{width:100%;height:auto;max-height:110px;object-fit:contain;filter:drop-shadow(0 4px 0 rgba(0,0,0,.15))}.hot-obj.is-yes img{outline:4px solid #7be07f;border-radius:12px}.diff-row{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:10px;min-height:0}.detective .mode-row{flex-wrap:wrap}.piece-hunt{flex:1;min-height:0;display:flex;flex-direction:column;gap:4px}.piece-hint{margin:0 0 2px}.piece-title{margin:0;text-align:center;font-weight:800;font-size:.92rem;color:#fff8ef;text-shadow:0 2px 0 rgba(42,42,74,.35)}.piece-frame{position:relative;flex:1;min-height:160px;display:flex;align-items:center;justify-content:center}.piece-frame.is-miss .piece-photo{outline:4px solid #ff8a6a}.piece-photo{max-width:100%;max-height:100%;object-fit:contain;display:block;border-radius:18px;box-shadow:var(--shadow);-webkit-user-select:none;user-select:none}.piece-hits{position:absolute;pointer-events:none}.piece-hit{position:absolute;transform:translate(-50%,-50%);padding:0;min-width:0;min-height:0;border-radius:12px;background:transparent;box-shadow:none;pointer-events:auto;z-index:2}.piece-hit.is-yes{background:#21d45a47;box-shadow:0 0 0 4px #21d45a}.piece-tray{display:flex;justify-content:center;gap:12px;flex-shrink:0;padding:6px 0 2px}.pattern-hunt{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px}.pattern-layout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(150px,26%) 1fr;gap:10px}.pattern-target{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#fffef8;border-radius:22px;box-shadow:var(--shadow);padding:10px 12px;text-align:center}.pattern-target strong,.pattern-target em,.pattern-pack,.pattern-target small{font-weight:800;line-height:1.15}.pattern-target em,.pattern-pack,.pattern-target small{color:var(--en);font-size:.85rem;font-style:normal}.pattern-mini{width:min(100%,168px);aspect-ratio:1;display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:6px;border-radius:16px;background:#fff6d8;box-shadow:none}.pattern-mini.is-spin{cursor:pointer}.pattern-tools{display:flex;gap:10px;align-items:center;justify-content:center}.pattern-spin,.pattern-next{width:56px;height:56px;min-width:56px;min-height:56px;padding:10px;border-radius:50%;color:#184f96;background:#ffe08a}.pattern-next{background:#21d45a;color:#14351c}.pattern-spin svg,.pattern-next svg{width:100%;height:100%;display:block}.pattern-board{display:grid;grid-template-columns:repeat(var(--pc, 8),minmax(0,1fr));grid-template-rows:repeat(var(--pr, 5),minmax(0,1fr));gap:4px;min-height:0;background:#d7eef8;border-radius:22px;padding:8px;box-shadow:var(--shadow);touch-action:none}.pattern-hunt .pattern-cell{min-width:0;min-height:0;padding:3px;border-radius:12px;background:#fff;box-shadow:0 3px #2a2a4a1f}.pattern-hunt .pattern-cell.is-sample{pointer-events:none}.pattern-hunt .pattern-cell.is-mark{background:#ffe08a;box-shadow:0 0 0 3px #f0b429}.pattern-hunt .pattern-cell.is-hit{background:#d8ffe0;box-shadow:0 0 0 4px #21d45a}.pattern-glyph{width:100%;height:100%;display:block}.pattern-hunt.is-miss .pattern-board{animation:shake .32s ease}@media(max-height:520px){.pattern-layout{grid-template-columns:120px 1fr}.pattern-mini{width:96px}}.piece-chip{position:relative;width:88px;height:88px;border-radius:16px;overflow:hidden;background:#fffef8;box-shadow:var(--shadow);flex-shrink:0}.piece-chip img{width:100%;height:100%;object-fit:cover;display:block}.piece-chip.is-found{box-shadow:0 0 0 4px #21d45a,var(--shadow)}.piece-chip.is-found:after{content:"✓";position:absolute;right:4px;bottom:2px;color:#143318;background:#21d45a;border-radius:999px;width:22px;height:22px;font-size:.85rem;font-weight:800;display:grid;place-items:center}@media(max-height:520px){.piece-hint,.piece-title{display:none}.piece-chip{width:52px;height:52px}.piece-frame{min-height:140px}}.keys{position:relative;padding-bottom:0}.keys-hud{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 4px 6px}.speed-slide{display:flex;align-items:center;gap:8px;font-weight:700}.speed-slide input{width:min(240px,40vw)}.keys-score{font-size:1.4rem;font-weight:700}.keys-sky{position:relative;flex:1;min-height:0}.bubble{position:absolute;transform:translate(-50%,-50%);width:80px;height:80px;pointer-events:none}.bubble-body{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(255,255,255,.9);background:radial-gradient(circle at 32% 26%,#fffffff2 0 6%,#fff6 16%,#fff0 40%),radial-gradient(circle at 70% 78%,#7eceff80 0 22%,#7eceff00 58%),radial-gradient(circle at 50% 50%,#c6ecff73 0 58%,#ffffffbf 84%,#96d2fad9);box-shadow:inset 0 -7px 16px #6eafe173,inset 0 7px 14px #ffffffd9,0 6px 14px #1e50822e}.bubble-body:after{content:"";position:absolute;inset:9%;border-radius:50%;border:1.5px solid rgba(255,255,255,.5)}.bubble-shine{position:absolute;left:20%;top:14%;width:30%;height:22%;border-radius:50%;background:radial-gradient(circle at 42% 42%,#fff 0 55%,#ffffff1a);transform:rotate(-20deg)}.bubble-glyph{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.7rem;line-height:1;color:#123f6b;text-shadow:0 1px 0 rgba(255,255,255,.95),0 0 6px rgba(255,255,255,.8)}.rocket{position:absolute;width:36px;height:56px;object-fit:contain;pointer-events:none}.keybed{position:absolute;inset:0;pointer-events:none}.kb-key{position:absolute;pointer-events:auto;min-width:0;min-height:0;border-radius:10px;background:#fff8ef;font-weight:800;box-shadow:0 4px #d7c4a0}.keybed.is-ghost .kb-key{opacity:.45}.keybed.is-touch .kb-key{opacity:1}.kb-key.is-launch{background:#ffe08a;transform:translateY(-3px)}.kb-key.is-hint{background:#fff6d8;box-shadow:0 4px #d7c4a0,0 0 0 3px #ffd76a,0 0 14px 4px #ffcd468c}.kb-key.is-hint-now{animation:kb-hint-pulse .9s ease-in-out infinite}@keyframes kb-hint-pulse{50%{box-shadow:0 4px #d7c4a0,0 0 0 6px #ffab4d,0 0 22px 9px #ffaa3cb3}}.keys-float{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}.keys-float .bubble{pointer-events:auto;z-index:5;min-width:80px;min-height:80px;padding:0;border:0;background:transparent;box-shadow:none;touch-action:none}.bubble.is-rise{animation:bubble-wobble 1.7s ease-in-out infinite}.bubble.is-pop{animation:bubble-burst .42s ease-out forwards;pointer-events:none}@keyframes bubble-wobble{50%{transform:translate(-50%,-50%) scale(1.06)}}@keyframes bubble-burst{0%{transform:translate(-50%,-50%) scale(1);opacity:1;filter:brightness(1)}40%{transform:translate(-50%,-50%) scale(1.35);opacity:1;filter:brightness(1.6)}to{transform:translate(-50%,-50%) scale(1.85);opacity:0;filter:brightness(2)}}.burst{position:absolute;width:0;height:0;pointer-events:none;z-index:6}.burst-dot{position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 0 8px #9ad7ff;animation:burst-fly .4s ease-out forwards;transform:rotate(var(--a)) translateY(-6px)}.burst-dot:nth-child(odd){background:#ffe08a}.burst-dot:nth-child(3n){background:#ff8ab0}@keyframes burst-fly{to{transform:rotate(var(--a)) translateY(-48px) scale(.2);opacity:0}}.keys-hint{margin:4px 0 0;text-align:center;font-weight:700;color:var(--muted)}.mode-row{display:flex;gap:8px;justify-content:center;flex-shrink:0;padding-bottom:6px}.settings-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;flex-shrink:0}.settings-bar>.mode-row{padding-bottom:0;gap:6px;flex-wrap:wrap}.settings-bar>.mode-row+.mode-row{border-left:2px solid rgba(255,255,255,.55);padding-left:8px}.settings-bar .mode-row button,.settings-bar button{min-height:42px;min-width:0;padding:0 12px;font-size:.95rem}.settings-bar .keys-hint{flex-basis:100%;margin:0;font-size:.85rem}.mode-row button{min-height:48px;min-width:120px;padding:0 14px;border-radius:999px;background:#fff8;font-weight:700;box-shadow:none}.mode-row button.is-on{background:#ffe08a;box-shadow:var(--shadow)}.slot-row{flex-wrap:wrap;align-items:center}.slot-label{font-weight:700;padding:0 6px}.slot-row button{min-width:52px;min-height:44px}.case-btn{display:flex;align-items:center;justify-content:center;gap:4px;min-width:92px;height:56px;min-height:56px;border-radius:18px;background:#fff8ef;box-shadow:0 4px #d7c4a0;padding:0 10px}.case-glyph{font-size:1.35rem;font-weight:800;color:#c9b8a0;line-height:1}.case-glyph.is-on{color:var(--en);font-size:1.7rem}.case-swap{color:var(--muted);font-size:1rem}.maze-stage{flex:1;min-height:0;position:relative}.maze-stage .maze-3d{position:absolute;inset:0;width:100%;height:100%}.color-game{gap:6px}.color-game .mode-row{position:relative;z-index:3}.color-stage{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;overflow:auto;position:relative;z-index:1}.mix-lab{display:flex;align-items:center;gap:16px}.mix-jar{width:min(150px,26vh);min-width:88px;min-height:0;padding:0;background:transparent;box-shadow:none;overflow:visible;filter:drop-shadow(0 8px 0 rgba(42,42,74,.14))}.mix-jar svg{width:100%;height:auto;display:block}.jar-stream{animation:jar-pour .45s ease-in;transform-origin:80px 50px}.jar-layer{transition:y .25s ease-out,height .25s ease-out}.mix-jar.is-swirl .jar-mixed{animation:jar-swirl .7s ease-in-out}@keyframes jar-pour{0%{height:0;opacity:.2}to{opacity:1}}@keyframes jar-swirl{0%{filter:hue-rotate(0deg) saturate(1)}35%{filter:hue-rotate(50deg) saturate(1.35)}70%{filter:hue-rotate(-25deg) saturate(1.2)}to{filter:none}}.color-stir{min-width:120px}.color-stir:disabled{opacity:.4}.part-row{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;max-width:92%}.part-row button{min-height:44px;min-width:0;padding:0 10px;border-radius:14px;background:#fff8ef;font-weight:800;font-size:.82rem;display:inline-flex;align-items:center;gap:6px;box-shadow:0 3px #2a2a4a1f}.part-row button.is-on{background:#ffe08a;box-shadow:var(--shadow)}.part-swatch{width:16px;height:16px;border-radius:5px;border:2px solid #2a2a4a;flex-shrink:0}.color-hint{margin:0;font-weight:700;color:var(--muted);font-size:.95rem;text-align:center}.paint-car{width:min(420px,86vw);height:auto;max-height:34vh;flex-shrink:0;filter:drop-shadow(0 8px 0 rgba(42,42,74,.12));cursor:pointer}.paint-car.is-mini{width:88px;max-height:none;filter:none;cursor:pointer}.car-part{cursor:pointer;transition:filter .12s ease-out,stroke-width .12s ease-out}.car-part.is-on{stroke:#ffe08a;stroke-width:5px;filter:brightness(1.08)}.car-glass,.car-chrome,.car-wheel{pointer-events:none}.color-shelf{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;padding:8px 10px 4px;border-radius:22px;background:linear-gradient(#e8c48a,#c99558);box-shadow:inset 0 2px #f8e0b0,0 6px #2a2a4a29}.shelf-bottle{display:flex;flex-direction:column;align-items:center;gap:2px}.shelf-bottle-hit{min-width:58px;min-height:0;padding:0;background:transparent;box-shadow:none;display:flex;flex-direction:column;align-items:center}.shelf-bottle-hit svg{width:52px;height:86px;display:block}.shelf-bottle.is-pour{animation:bottle-tip .45s ease-in-out;transform-origin:70% 18%}@keyframes bottle-tip{0%{transform:rotate(0)}35%{transform:rotate(-26deg)}to{transform:rotate(0)}}.shelf-bottle-zh{font-size:.72rem;font-weight:800;color:#5a3a16}.glug-row{display:flex;align-items:center;gap:4px;font-weight:800}.glug-btn{min-width:36px;min-height:36px;width:36px;height:36px;border-radius:12px;background:#fff8ef;box-shadow:0 3px #b8864a;padding:0}.glug-btn:disabled{opacity:.4}@media(max-width:720px){.color-stage{justify-content:flex-start;padding-top:6px}.mix-lab{flex-direction:column;gap:6px}.mix-jar{width:min(92px,18vh)}.shelf-bottle-hit svg{width:40px;height:66px}.paint-car{width:min(100%,96vw);max-height:26vh}.part-row button{font-size:.72rem;min-height:40px}}.color-name{margin:0;font-weight:800;font-size:1.3rem}.color-close{margin:0;font-weight:700;color:#2d8a44}.target-swatch{min-width:160px;min-height:64px;border-radius:20px;display:grid;place-items:center;font-weight:800;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.35);box-shadow:var(--shadow)}.pots{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.pot{min-width:84px;min-height:56px;border-radius:18px;font-weight:800;color:#2a2a4a;box-shadow:var(--shadow)}.pot[data-testid=pot-black],.pot[data-testid=pot-blue],.pot[data-testid=pot-purple],.pot[data-testid=pot-brown]{color:#fff}.blend-sliders{width:min(520px,92%);display:flex;flex-direction:column;gap:6px;max-height:28vh;overflow:auto}.blend-row{display:grid;grid-template-columns:28px 1fr 1fr 28px;gap:8px;align-items:center;font-weight:700}.blend-chip{width:28px;height:28px;border-radius:8px;border:2px solid #2a2a4a}.blend-row em{font-style:normal;font-size:.85rem}.blend-row input{width:100%}.mix-recipe{display:flex;gap:6px;align-items:center}.mix-dot{min-width:22px;height:22px;padding:0 5px;border-radius:999px;border:2px solid #2a2a4a;color:#2a2a4a;font-size:.75rem;font-weight:800;display:grid;place-items:center}.color-history,.paint-garage{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.hist-chip{width:36px;min-width:36px;height:36px;min-height:36px;border-radius:50%;box-shadow:0 3px #2a2a4a29}.parked-car{width:96px;min-width:96px;height:58px;min-height:58px;padding:0;background:transparent;box-shadow:none}.tangram{gap:4px}.tangram-hud{flex-wrap:wrap}.tangram-hud button{min-width:56px}.tangram-label{font-weight:800;min-width:160px;text-align:center}.tangram-body{flex:1;min-height:0;display:flex;gap:12px;align-items:stretch}.tangram-turn{flex:0 0 120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:14px 8px;border-radius:28px;background:color-mix(in srgb,var(--paper) 90%,var(--gold));box-shadow:var(--shadow)}.tangram-turn-en{color:var(--en);font-weight:800;font-size:.95rem;text-align:center;line-height:1.1}.tangram-turn-zh{color:var(--zh);font-weight:800;font-size:.9rem;margin-top:-6px;text-align:center}.tangram-turn button{width:92px;height:92px;min-width:92px;min-height:92px;border-radius:28px;font-size:2.4rem;line-height:1;background:#fffdf7;box-shadow:var(--shadow)}.tangram-stage{flex:1;min-width:0;min-height:0;position:relative;background:color-mix(in srgb,var(--paper) 88%,#d7ecff);border-radius:24px;box-shadow:var(--shadow);overflow:hidden;touch-action:none}.tangram-svg{width:100%;height:100%;display:block}.tan-sil{pointer-events:none}.tan-piece{cursor:grab;touch-action:none}.tan-piece.is-on{filter:drop-shadow(0 4px 0 rgba(42,42,74,.25))}.tan-guide{pointer-events:none}.jig-stage{flex:1;min-height:0;position:relative;overflow:hidden;padding-bottom:0;touch-action:none}.jig-board{position:absolute;margin:0;background:repeating-linear-gradient(90deg,#e8c98a,#e8c98a 24px,#dcb56e 24px 48px);border-radius:20px;box-shadow:var(--shadow);overflow:hidden;pointer-events:none}.jig-peek{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:6;pointer-events:none}.jig-album{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;overflow-y:hidden;max-height:58px;min-width:0;width:100%;padding-bottom:2px}.jig-album button{flex:0 0 auto;min-width:0;min-height:0;height:54px;width:72px;padding:3px}.jig-album img{width:100%;height:100%;object-fit:cover;border-radius:10px}.jig-album span{display:none}.jig-slot{position:absolute;box-shadow:inset 0 0 0 1px #ffffff8c;pointer-events:none}.jig-layer{position:absolute;inset:0;pointer-events:none;z-index:4}.jig-preload{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.jig-piece{position:absolute;pointer-events:auto;touch-action:none;min-width:0;min-height:0;padding:0;border:0;border-radius:10px;box-shadow:var(--shadow);background-repeat:no-repeat;background-color:#efe0b8;cursor:grab}.jig-piece.is-drag{cursor:grabbing;box-shadow:0 12px #2a2a4a2e}.jig-piece.is-in{border-radius:0;box-shadow:none}.jig-file{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.jig-empty{flex:1;display:grid;place-items:center}.jig-pick{display:flex;flex-direction:column;min-width:280px;min-height:96px;padding:12px 22px}.jig-pick span{color:var(--zh);font-size:1rem}.jig-brands{display:flex;gap:6px;overflow:auto;padding-bottom:6px}.jig-brands button{min-width:64px;min-height:48px;padding:4px}.jig-brands img{width:48px;height:36px;object-fit:contain}.bits-stage{flex:1;min-height:0;display:flex;gap:12px;padding:10px 12px 12px;background:color-mix(in srgb,var(--paper) 92%,transparent);border-radius:28px;box-shadow:var(--shadow);overflow:hidden;container-type:size}.bits-side{flex:0 0 clamp(168px,24vw,240px);display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;max-height:100%}.bits-side .bits-grid{width:min(100%,52cqh);max-height:100%}.bits-caption{margin:0;display:flex;flex-direction:column;align-items:center;line-height:1.05;font-weight:800;flex-shrink:0}.bits-caption em{font-style:normal;color:var(--en);font-size:.78rem}.bits-caption strong{color:var(--zh);font-size:1rem}.bits-bank{flex:1;min-width:0;min-height:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-content:start;overflow:auto}.bits-stage[data-cards="6"] .bits-bank{grid-template-columns:repeat(3,minmax(0,1fr))}.bits-card{min-height:0;min-width:0;padding:6px 6px 2px;border-radius:14px;background:#e8f1ff;box-shadow:0 4px #2a2a4a1f;display:flex;flex-direction:column;align-items:center;gap:2px;overflow:hidden}.bits-card.is-on{background:#fff3a0;outline:4px solid #f0c020}.bits-card .bits-grid{width:100%}.bits-grid{display:grid;gap:2px;padding:3px;background:#9eb6e0;border-radius:8px;width:100%;overflow:hidden;box-sizing:border-box}.bits-cell{min-width:0;min-height:0;width:100%;height:100%;border-radius:3px;background:#fff;display:block}.bits-cell.is-on{background:#3d8dff}.bits-cell.is-extra{background:#ff8a6a}.bits-cell.is-miss{background:#d4e4ff;box-shadow:inset 0 0 0 2px #3d8dff}.bits-num{font-weight:800;font-size:1rem;color:#1d4ed8}.explorer-row{flex:1;min-height:0;display:grid;grid-template-columns:1fr 200px;gap:10px}.explorer-3d{width:100%;height:100%;border-radius:24px;box-shadow:var(--shadow);touch-action:none;background:#8fd3ee}.explorer-card{background:var(--paper);border-radius:20px;padding:12px;box-shadow:var(--shadow)}.explorer-card img{width:100%;border-radius:12px}.explorer-card em{display:block;color:var(--zh);font-style:normal;font-weight:700}.bay-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex:1;min-height:0}.bay{border-radius:20px;color:#fff;font-weight:800;display:flex;flex-direction:column;min-height:0;min-width:0}.bay-lot{flex:1;display:flex;flex-wrap:wrap;align-content:start;gap:4px}.bay-lot img,.park-car img,.pattern-cell img{width:64px;height:42px;object-fit:contain}.count-car img{width:92px;height:58px;object-fit:contain}.park-line,.count-lot,.pattern-row{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding:8px 0}.park-car,.pattern-cell{background:var(--paper);border-radius:16px;min-width:88px;min-height:72px;padding:6px;display:grid;place-items:center}.count-car{background:var(--paper);border-radius:16px;min-width:108px;min-height:84px;padding:8px;display:grid;place-items:center;box-shadow:var(--shadow)}.pattern-cell{min-width:68px;min-height:58px;padding:4px}.count-car.is-in,.park-car.is-on,.pattern-cell.is-yes{outline:5px solid #7be07f}.pattern-cell.is-empty{display:grid;place-items:center;font-size:2rem;font-weight:800}.count-target{margin:0;text-align:center;font-size:3rem;font-weight:800;color:var(--en)}.count-eq{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.count-op{font-size:3rem;font-weight:800;color:var(--en);min-width:40px;text-align:center}.count-nums{display:flex;justify-content:center;gap:10px;flex-shrink:0;padding:4px 0 8px}.count-num{min-width:72px;min-height:72px;font-size:2rem;font-weight:800;border-radius:20px;background:var(--paper)}.count-num.is-yes{outline:6px solid #21d45a}.count-num.is-no,.count-game.is-miss .count-eq{animation:shake .35s ease}.voice-car-btn{background:transparent;box-shadow:none;min-width:0;min-height:0;padding:0}.name-mask{position:absolute;inset:0;background:#2a2a4a73;display:grid;place-items:center;z-index:20;padding:20px}.name-card{width:min(440px,100%);background:var(--paper);border-radius:28px;box-shadow:var(--shadow);padding:22px;display:flex;flex-direction:column;gap:10px}.name-card h1{margin:0}.name-card p{margin:0 0 8px;color:var(--zh);font-weight:700}.name-card label,.parent label{display:block}.name-card input,.parent input[type=text]{width:100%;margin-top:6px;min-height:56px;border:3px solid #ead9b6;border-radius:16px;padding:0 12px;background:#fff}.voice-brand{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;gap:10px}.voice-car{width:min(320px,46vh);height:auto;object-fit:contain;filter:drop-shadow(0 8px 0 rgba(42,42,74,.12))}.mic-btn{min-width:220px;background:#ffe08a;font-weight:700}.mic-btn.is-live{background:#ff8a6a}.heard{font-weight:700;color:var(--en)}.hot-obj img{background:transparent}.brands-wrap{display:flex;flex-direction:column;min-height:0}.brands-wrap .game{padding-top:0}.maze-grass{fill:#8fd18a}.maze-road{fill:none;stroke:var(--road);stroke-linecap:round;stroke-linejoin:round}.maze-dash{fill:none;stroke:#f7e27a;stroke-width:10;stroke-dasharray:28 22;stroke-linecap:round}.garage{fill:#f3d7a4;stroke:#c49a5a;stroke-width:6}.garage-door{fill:#7d8b97}.done-bar{display:flex;justify-content:center;gap:12px;padding-top:10px}.primary{background:#ffe08a;font-weight:700;padding:0 22px}.parent,.closing{flex:1;margin:12px 20px 18px;background:var(--paper);border-radius:28px;box-shadow:var(--shadow);padding:20px 24px;overflow:auto}.parent h1,.closing h1{margin:0 0 4px}.parent-sub{margin:0 0 16px;color:var(--zh);font-weight:700}.parent-hint{margin:0 0 16px;padding:10px 12px;background:#fff3d6;border-radius:16px;line-height:1.35}.parent label,.parent fieldset{display:block;margin:12px 0;border:0;padding:0}.parent input[type=text],.parent input:not([type=checkbox]){display:block;width:100%;margin-top:6px;min-height:56px;border:3px solid #ead9b6;border-radius:16px;padding:0 12px;background:#fff}.minute-row{display:flex;gap:10px;margin-top:8px}.minute-row button.is-on,.check input{accent-color:var(--en)}.minute-row button.is-on{background:#ffe08a}.check{display:flex;align-items:center;gap:10px}.parent-actions{display:flex;gap:12px;margin-top:18px}.closing{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.piano{position:relative;overflow:hidden}.piano-sky{pointer-events:none;position:absolute;inset:0;background:radial-gradient(circle at 12% 20%,#ffe08a 0 40px,transparent 42px),radial-gradient(circle at 88% 12%,#ff9ad5 0 36px,transparent 38px),linear-gradient(#3a1d6e,#6a3aa0 42%,#f6c1ff);opacity:.9;z-index:0}.piano>*:not(.piano-sky){position:relative;z-index:1}.float-note{position:absolute;width:14px;height:22px;border-radius:6px 6px 8px 8px;background:#fff8;animation:float-note 7s linear infinite}.float-note:after{content:"";position:absolute;left:12px;top:0;width:2px;height:18px;background:#fff8}.float-note.n0{left:8%;animation-delay:0s;background:#ffd36a}.float-note.n1{left:22%;animation-delay:1.2s;background:#9fe7ff}.float-note.n2{left:40%;animation-delay:.4s;background:#ff9ad5}.float-note.n3{left:63%;animation-delay:2s;background:#b8ff9a}.float-note.n4{left:81%;animation-delay:1.6s;background:#ffe08a}@keyframes float-note{0%{top:72%;opacity:0;transform:rotate(-10deg)}12%{opacity:.9}to{top:-8%;opacity:0;transform:rotate(12deg)}}.piano-lesson{background:color-mix(in srgb,var(--paper) 88%,transparent);border-radius:22px;padding:8px 14px 10px;box-shadow:var(--shadow);margin-bottom:8px}.piano-lesson-top{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}.piano-song-name{margin:0;font-weight:800;text-align:center}.piano-autoplay{min-height:64px;min-width:168px;padding:0 18px;border-radius:20px;background:#21d45a;color:#143318;font-weight:800;box-shadow:0 6px #148a3a}.piano-autoplay.is-on{background:#ff8a6a;color:#4a1c12;box-shadow:0 6px #c45c1a}.piano-dots{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.piano-dot{width:14px;height:14px;border-radius:50%;background:#d7c4a0}.piano-dot.is-now{background:#ffe08a;box-shadow:0 0 0 4px #ffe08a66;transform:scale(1.25)}.piano-dot.is-done{background:#7be07f}.piano-hint{margin:8px 0 10px;text-align:center;font-weight:800;color:#fff8ef;text-shadow:0 2px 0 rgba(42,42,74,.35)}.piano-songs{flex-wrap:wrap;max-height:96px;overflow:auto;justify-content:flex-start}.piano-songs button{min-width:0;min-height:40px;padding:0 10px;font-size:.82rem}.piano-metro{display:flex;align-items:center;justify-content:center;gap:14px;flex-shrink:0;margin:4px 8% 6px;padding:6px 14px;border-radius:22px;background:color-mix(in srgb,var(--paper) 82%,#3a1d6e);box-shadow:var(--shadow)}.piano-metro button{min-height:52px;min-width:120px;padding:0 14px;border-radius:16px;background:#fff8;font-weight:800}.piano-metro button.is-on{background:#ffe08a}.metro-pend{position:relative;width:70px;height:54px}.metro-arm{position:absolute;left:50%;top:4px;width:4px;height:38px;margin-left:-2px;background:#2a2a4a;border-radius:4px;transform-origin:50% 0}.metro-pend.is-on .metro-arm{animation:metro-swing var(--metro-ms, .5s) ease-in-out infinite alternate}.metro-bob{display:none}.metro-beats{display:flex;gap:8px}.metro-beat{width:18px;height:18px;border-radius:50%;background:#d7c4a0}.metro-beat.is-now{background:#21d45a;box-shadow:0 0 0 4px #21d45a55}.metro-bpm{min-width:44px;text-align:center;font-size:1.2rem}@keyframes metro-swing{0%{transform:rotate(-22deg)}to{transform:rotate(22deg)}}.piano-hands{position:absolute;inset:0;pointer-events:none;z-index:7;overflow:visible}.piano-hand{position:absolute;pointer-events:none;overflow:visible;filter:drop-shadow(0 8px 6px rgba(42,26,12,.28))}.piano-hand img{width:100%;height:100%;object-fit:contain;object-position:top center;display:block}.piano-hand.is-press{filter:drop-shadow(0 6px 5px rgba(42,26,12,.3))}.perc-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:8px 4px 12px;overflow:auto}.perc-pad{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:84px;border-radius:24px;background:color-mix(in srgb,var(--paper) 88%,#8b7ce0);box-shadow:var(--shadow);font-weight:800}.perc-pad:active{transform:translateY(4px);background:#ffe08a}.perc-emoji{font-size:2rem}.perc-pad em{font-style:normal;color:var(--zh);font-size:.9rem}.piano .mode-row{flex-wrap:wrap}.piano .mode-row button{min-width:104px}.perc-studio,.kit-studio,.perc-make{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px;overflow:auto}.perc-studio .perc-grid{flex:1}.perc-pad.is-now{background:#ffe08a;transform:scale(1.05);box-shadow:0 0 0 6px #ffe08a8c,var(--shadow);z-index:2}.perc-pad.is-now .perc-emoji{transform:scale(1.18)}.perc-kinds button,.perc-song-bar button,.perc-transport button,.perc-bpm button,.perc-saved-chip button,.beat-lab,.beat-cell{min-width:0}.perc-song-bar{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start;align-items:center;max-height:78px;overflow:auto;flex-shrink:0}.perc-song-bar button{min-height:40px;padding:0 12px;border-radius:999px;background:#fff8;font-weight:700;font-size:.82rem}.perc-song-bar button.is-on{background:#ffe08a;box-shadow:var(--shadow)}.perc-song-bar .piano-autoplay{min-height:48px;min-width:140px;margin-left:auto}.perc-transport{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;flex-shrink:0}.perc-transport button{min-height:48px;padding:0 14px;border-radius:16px;background:#fff8;font-weight:800}.perc-transport .piano-autoplay{min-width:140px}.perc-bpm{display:flex;align-items:center;gap:8px;padding:0 8px;border-radius:16px;background:color-mix(in srgb,var(--paper) 82%,#3a1d6e);font-weight:800}.perc-bpm button{min-height:44px;min-width:44px;border-radius:12px;background:#fff8}.beat-grid{flex:1;min-height:200px;display:grid;grid-template-columns:minmax(92px,130px) repeat(16,minmax(14px,1fr));grid-template-rows:22px repeat(8,minmax(28px,1fr));gap:4px;overflow:auto;padding:8px;border-radius:18px;background:color-mix(in srgb,var(--paper) 72%,#3a1d6e);box-shadow:var(--shadow)}.beat-lab{display:flex;align-items:center;gap:6px;min-height:0;height:100%;padding:0 6px;border-radius:10px;background:#fff6;font-size:.72rem;font-weight:800;text-align:left}.beat-lab em{display:block;font-style:normal;color:var(--zh);font-size:.68rem}.beat-lab-head{background:transparent;min-height:18px;pointer-events:none}.beat-num{min-height:18px;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:800;color:#fff8ef}.beat-num.is-now{color:#ffe08a}.beat-cell{min-height:0;height:100%;min-width:0;border-radius:8px;background:#fff3}.beat-cell.is-down{background:#fff5}.beat-cell.is-on{background:#ffe08a;box-shadow:0 2px #c45c1a55}.beat-cell.is-now{box-shadow:0 0 0 2px #21d45a}.beat-cell.is-on.is-now{background:#21d45a}.perc-saved{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex-shrink:0;padding:6px 10px;border-radius:16px;background:color-mix(in srgb,var(--paper) 88%,transparent)}.perc-saved-label{font-weight:800;color:var(--ink)}.perc-saved-empty{color:var(--muted);font-style:normal}.perc-saved-chip{display:flex;align-items:center;border-radius:999px;background:color-mix(in srgb,var(--paper) 88%,#8b7ce0);overflow:hidden}.perc-saved-chip button{min-height:40px;padding:0 12px;background:transparent;font-weight:800;font-size:.82rem}.perc-forget{min-width:40px;font-size:1.2rem;color:#c45c1a}.kit-studio>.piano-hint{display:none}.kit-frame{flex:1;min-height:180px;display:grid;place-items:center}.kit-stage{position:relative;width:100%;height:100%;min-height:180px}.kit-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;border-radius:16px;-webkit-user-select:none;user-select:none}.kit-stage svg{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.kit-hit{fill:#fff0;stroke:transparent;pointer-events:all;cursor:pointer}.kit-hit.is-hit{fill:#21d45a61;stroke:#fffef8;stroke-width:1.2;filter:drop-shadow(0 0 3px #21d45a)}.kit-callout{position:absolute;left:50%;bottom:10px;transform:translate(-50%);padding:6px 16px;border-radius:16px;background:color-mix(in srgb,var(--paper) 92%,transparent);font-weight:800;box-shadow:var(--shadow);pointer-events:none;white-space:nowrap}@media(max-height:520px){.piano>.piano-hint,.perc-studio>.piano-hint{display:none}.piano .mode-row button{min-height:40px}.perc-song-bar{max-height:48px}}.piano-wrap{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:flex-end}.piano-lid{height:18px;margin:0 8%;border-radius:18px 18px 0 0;background:linear-gradient(#4a2a18,#2a140c);box-shadow:var(--shadow)}.piano-bed{position:relative;flex:1;min-height:180px;max-height:280px;margin:0 4%;padding:10px 10px 14px;border-radius:0 0 22px 22px;background:linear-gradient(#3a2416,#1a0e08);box-shadow:0 14px #2a2a4a40;touch-action:none;overflow:visible}.piano-whites{display:flex;height:100%;gap:3px}.pkey{position:relative;min-width:0;min-height:0;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;border-radius:0 0 12px 12px;font-weight:800;touch-action:none}.pkey.white{flex:1;background:linear-gradient(#fffef8,#efe6d4);color:#5c5a78;box-shadow:0 8px #c9b8a0}.pkey.white:nth-child(3n){background:linear-gradient(#fff6e4,#f0d7b8)}.pkey.white.is-on{transform:translateY(6px);box-shadow:0 2px #c9b8a0;background:#ffe08a}.pkey.white.is-wait{animation:key-wait .8s ease-in-out infinite;z-index:4}.pkey.is-wait:after{content:"";position:absolute;inset:-10px -16px;border:10px solid #21d45a;border-radius:16px;pointer-events:none;box-shadow:0 0 0 8px #21d45a59}.pkey-name{font-size:.95rem;color:#184f96}.pkey-letter{font-size:.8rem;margin-bottom:8px;color:#c45c1a}.piano-blacks{position:absolute;inset:10px 10px 40%;pointer-events:none}.pkey.black{position:absolute;width:4.6%;height:100%;pointer-events:auto;background:linear-gradient(#3a3a48,#111118);color:#ffe08a;box-shadow:0 8px #000;z-index:2;transform:translate(-50%)}.pkey.black .pkey-letter{color:#ffe08a}.pkey.black.is-on{transform:translate(-50%) translateY(5px);box-shadow:0 2px #000;background:#5a4ad4}.pkey.black.is-wait{animation:key-wait .8s ease-in-out infinite;z-index:5}.pkey.black.is-wait:after{inset:-8px -12px}.rise-glyph{position:absolute;width:78px;height:92px;margin-left:-39px;margin-top:-80px;pointer-events:none;z-index:6;animation:rise-glyph 1.55s ease-out forwards;filter:drop-shadow(0 1px 0 #fff)}@keyframes rise-glyph{0%{opacity:1;transform:translateY(0) scale(.82)}to{opacity:0;transform:translateY(-170px) scale(1.12)}}@keyframes key-wait{50%{filter:brightness(1.25)}}.jam{position:relative;overflow:hidden}.jam .mode-row{flex-wrap:wrap}.jam .mode-row button.jam-n{min-width:64px}.jam-sky{pointer-events:none;position:absolute;inset:0;background:radial-gradient(circle at 80% 18%,#ffe08a55,transparent 28%),linear-gradient(#1b1630,#3a2a55 45%,#1a1a22);z-index:0}.jam>*:not(.jam-sky){position:relative;z-index:1}.jam-hint{margin:0 0 8px;text-align:center;font-weight:800;color:#fff8ef;text-shadow:0 2px 0 rgba(0,0,0,.35)}.jam-stage{flex:1;min-height:0;display:flex;justify-content:center;align-items:center}.jam-lot{position:relative;width:min(62vh,56vw);aspect-ratio:1;background:linear-gradient(#3a3f48,#2a2f36);border-radius:24px;box-shadow:0 0 0 8px #111118,0 16px #00000059;overflow:visible;touch-action:none}.jam-cell{position:absolute;width:16.666%;height:16.666%;box-shadow:inset 0 0 0 1px #ffd65047;pointer-events:none}.jam-exit{position:absolute;left:100%;width:74px;height:16.666%;margin-left:6px;border-radius:0 18px 18px 0;background:linear-gradient(90deg,#21d45a,#7bff9a);color:#143318;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:800;box-shadow:0 0 24px #21d45a}.jam-exit em{font-style:normal;font-size:.85rem}.jam-car{position:absolute;padding:3px;border:0;background:transparent;min-width:0;min-height:0;z-index:2;filter:drop-shadow(0 6px 0 rgba(0,0,0,.35))}.jam-car.is-hero{z-index:3;filter:drop-shadow(0 0 10px #ffd56a) drop-shadow(0 6px 0 rgba(0,0,0,.35))}.jam-art{width:100%;height:100%;display:block}.battle-code{font-weight:800;font-size:1.4rem;letter-spacing:.2em;background:#ffe08a;padding:8px 16px;border-radius:16px}.battle-join{width:120px;min-height:52px;text-align:center;font-size:1.3rem;letter-spacing:.2em;text-transform:uppercase;border-radius:16px;border:3px solid #2a2a4a}.battle-bar{display:flex;align-items:center;gap:12px;justify-content:center;margin:0 0 8px;font-weight:800}.battle-track{width:min(280px,40vw);height:18px;border-radius:999px;background:#d7c4a0;overflow:hidden}.battle-track b{display:block;height:100%;background:#21d45a}.paint-artists,.paint-works{display:flex;gap:8px;overflow:auto;padding-bottom:8px}.paint-artists button,.paint-card{flex:0 0 auto;min-width:140px;min-height:72px;display:flex;flex-direction:column;align-items:center;padding:8px;border-radius:18px;background:#fff8}.paint-artists button.is-on{background:#ffe08a;box-shadow:0 0 0 3px #21d45a;color:#1a1a22}.paint-artists button em{font-style:normal;font-size:.78rem;color:var(--zh)}.paint-artists button.is-on em{color:#7a3d00}.paint-card img{width:120px;height:80px;object-fit:cover;border-radius:12px}.paint-lesson{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;font-weight:800}.paint-body{flex:1;min-height:0;display:flex;gap:10px}.paint-dock{flex:0 0 250px;min-width:0;overflow:auto;display:flex;flex-direction:column;gap:8px}.paint-panel{background:color-mix(in srgb,var(--paper) 90%,transparent);border-radius:18px;padding:8px;box-shadow:var(--shadow)}.paint-panel header{display:flex;justify-content:space-between;align-items:center;gap:8px;font-weight:800}.paint-panel header button{min-width:64px;min-height:40px;font-size:.85rem}.paint-brushes{display:grid;grid-template-columns:1fr 1fr;gap:6px}.paint-brush{min-height:0;min-width:0;height:auto;padding:6px 4px;display:flex;flex-direction:column;align-items:center;border-radius:14px;background:#fff8;font-size:.72rem;line-height:1.1}.paint-brush.is-on{background:#ffe08a;box-shadow:0 0 0 3px #21d45a}.paint-brush em{font-style:normal;color:var(--zh)}.brush-thumb{width:44px;height:44px}.paint-step-box{display:flex;flex-wrap:wrap;gap:6px}.paint-step-box button{min-height:44px;min-width:0;padding:0 8px}.paint-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center}.paint-brushes button{min-width:0;min-height:44px;padding:0 10px}.paint-swatch{width:36px;min-width:36px;height:36px;min-height:36px;border-radius:50%;box-shadow:inset 0 0 0 2px #fff,0 2px #2a2a4a33}.paint-swatch.is-on{box-shadow:0 0 0 4px #21d45a}.paint-swatch.is-done{box-shadow:inset 0 0 0 2px #fff,0 0 0 2px #21d45a}.paint-palette{display:flex;flex-wrap:wrap;gap:6px;width:100%}.paint-pixel-sizes{display:flex;gap:6px}.paint-pixel-sizes button{flex:1;min-width:0;min-height:44px}.paint-quality{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.paint-quality button{min-height:44px;min-width:0;padding:0 10px;font-weight:800}.paint-quality .paint-quality-standard,.mode-row .paint-quality-standard{background:#b3e5fc;color:#01579b}.paint-quality .paint-quality-standard.is-on,.mode-row .paint-quality-standard.is-on{background:#0288d1;color:#fff;box-shadow:0 0 0 3px #01579b}.paint-quality .paint-quality-high,.mode-row .paint-quality-high{background:#ffe082;color:#e65100}.paint-quality .paint-quality-high.is-on,.mode-row .paint-quality-high.is-on{background:#ff8f00;color:#fff;box-shadow:0 0 0 3px #e65100}.paint-quality .paint-quality-ultra,.mode-row .paint-quality-ultra{background:#e1bee7;color:#6a1b9a}.paint-quality .paint-quality-ultra.is-on,.mode-row .paint-quality-ultra.is-on{background:#8e24aa;color:#fff;box-shadow:0 0 0 3px #4a148c}.paint-size input{width:120px}.paint-stage{flex:1;min-height:0;position:relative;background:#fffdf7;border-radius:20px;overflow:hidden;box-shadow:var(--shadow);touch-action:none}.paint-view{position:absolute;inset:0;transform-origin:0 0;will-change:transform}.paint-canvas,.paint-ghost,.paint-stick-guide{position:absolute;inset:0;width:100%;height:100%}.paint-ghost{object-fit:contain;pointer-events:none;z-index:1;opacity:.16}.paint-ghost.is-show{z-index:6;opacity:.92}.paint-ghost.is-trace{z-index:1;opacity:.4}.paint-pencil{position:absolute;z-index:8;font-size:1.6rem;transform:translate(-30%,-80%);pointer-events:none}.paint-hue,.paint-now{width:100%}.paint-now{height:22px;border-radius:8px;display:block}.paint-sticks{display:grid;grid-template-columns:1fr 1fr;gap:6px}.paint-sticks img{width:100%;height:48px;object-fit:cover;border-radius:8px}.paint-album{display:flex;flex-wrap:wrap;gap:4px}.paint-album img{width:56px;height:42px;object-fit:cover;border-radius:8px}.paint-stick-guide{z-index:1;pointer-events:none}.paint-stick-guide circle,.paint-stick-guide line{fill:none;stroke:#c9b8a0;stroke-width:.012;stroke-linecap:round}.paint-canvas{z-index:2;touch-action:none;background:transparent;pointer-events:none}.paint-canvas.is-pixel{image-rendering:pixelated;image-rendering:crisp-edges}.paint-region{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3;opacity:0}.paint-region.is-show{opacity:1}.paint-region.is-show.is-hunt{animation:paint-hunt .95s ease-in-out infinite}@keyframes paint-hunt{0%,to{opacity:.72}50%{opacity:1}}.paint .mode-row{justify-content:flex-start;align-items:center}.paint-zoom{margin-left:auto;display:flex;flex-wrap:nowrap;align-items:center;gap:6px}.paint .paint-zoom button{min-width:48px;min-height:44px;padding:0 10px;border-radius:14px;background:#fffdf7;box-shadow:var(--shadow);font-weight:800}.paint .paint-zoom button[data-testid=paint-zoom-color]{min-width:88px;font-size:.78rem}.paint-layers{display:flex;flex-direction:column;gap:6px}.paint-layer-row{display:flex;gap:6px;align-items:stretch}.paint-layer{flex:1;min-height:44px;min-width:0;font-size:.82rem}.paint-layer.is-on,.paint-layer-row.is-on .paint-layer{background:#ffe08a;box-shadow:0 0 0 3px #21d45a}.paint-layer-row button:last-child{min-width:64px;min-height:44px;font-size:.75rem}@media(max-width:900px){.hub{grid-template-columns:1fr}.choice-grid,.card-grid.pairs-2,.dest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dest{min-height:110px}.topbar{grid-template-columns:1fr auto}.captions{grid-column:1 / -1;order:3}}@media(max-height:740px){.topbar{padding-top:6px;gap:8px}.lang-switch button,.gear,.full-btn{width:56px;min-width:56px;height:56px;min-height:56px}.captions{min-height:44px;padding:4px 10px}.cap-en{font-size:1rem}.game{padding:4px 10px 10px}.tangram-turn{flex-basis:96px;gap:6px;padding:8px 6px}.tangram-turn button{width:76px;height:76px;min-width:76px;min-height:76px;font-size:2rem}}@media(display-mode:standalone),(display-mode:fullscreen){.full-btn{display:none}}.fold-packs button{min-width:0;min-height:40px;padding:0 10px;font-size:.82rem}.fold button:disabled{opacity:.4}.fold-watch,.fold-netplay,.fold-punch,.fit-play{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px}.fold-stage-wrap{flex:1;min-height:180px;display:grid;place-items:center}.fold-scene{width:100%;height:100%;min-height:200px;perspective:900px;display:grid;place-items:center;touch-action:none}.fold-cam,.fold-face{transform-style:preserve-3d}.fold-face{border:3px solid #1a1a22;border-radius:10px;box-sizing:border-box}.fold-face-hit,.fold-cell{width:100%;height:100%;min-width:0;min-height:0;padding:6px;background:transparent;box-shadow:none;display:grid;place-items:center}.fold-net{position:relative}.fold-cell{position:absolute;border:3px solid #1a1a22;border-radius:10px}.fold-sticker-img,.fold-sticker-svg{width:70%;height:70%;object-fit:contain;pointer-events:none}.fold-transport{display:flex;justify-content:center;gap:10px}.fold-transport button{min-height:52px;min-width:120px;border-radius:16px;background:#fff8;font-weight:800}.fold-choices{display:flex;justify-content:center;gap:12px;flex-shrink:0}.fold-choice{min-width:110px;min-height:110px;border-radius:20px;background:color-mix(in srgb,var(--paper) 90%,#8b7ce0);box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-weight:800}.fold-choice.is-yes{outline:6px solid #21d45a}.fold-choice.is-shake{animation:shake .35s ease}.fold-paper{width:120px;height:120px}.fold-punch{align-items:center}.fold-net-choices .fold-choice{min-width:160px;min-height:160px}.fold-fold-choices .fold-choice{min-width:152px;min-height:152px;padding:4px}.fold-mini{display:grid;place-items:center;width:132px;height:132px;perspective:620px;pointer-events:none}.fold-punch-stage{display:flex;flex-direction:column;align-items:center;gap:6px}.fold-punch-note{margin:0;font-weight:700;color:var(--muted);text-align:center}.fold-hidden{font-size:2rem;font-weight:800;color:#fff8ef;text-shadow:0 2px 0 rgba(26,26,34,.35)}.dice-play{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px}.dice-layout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(140px,.7fr) minmax(220px,1.2fr) minmax(180px,.9fr);gap:10px;align-items:stretch}.dice-spin-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.dice-spin{width:140px;height:140px;display:grid;place-items:center;touch-action:none;cursor:grab;perspective:800px;transform-style:preserve-3d}.dice-spin-btns{display:flex;gap:6px}.dice-spin-btns button{min-width:44px;min-height:44px;border-radius:12px;background:#fff8ef;font-weight:800}.dice-spin-hint{margin:0;font-size:.82rem;font-weight:700;color:var(--muted);text-align:center}.dice-stage{min-height:0;display:grid;place-items:center;overflow:visible;perspective:1100px;perspective-origin:50% 42%}.dice-world{transform:rotateX(58deg) rotate(-26deg) scale(1.22);transform-style:preserve-3d;transform-origin:50% 55%}.dice-compass{display:grid;grid-template-columns:auto auto auto;grid-template-areas:". n ." "w board e" ". s .";align-items:center;justify-items:center;gap:4px 6px;font-weight:800;color:#184f96}.dice-compass-n{grid-area:n}.dice-compass-e{grid-area:e}.dice-compass-s{grid-area:s}.dice-compass-w{grid-area:w}.dice-board{--dice-cell: min(88px, 17vh);--die-z: calc(var(--dice-cell) / 2);grid-area:board;position:relative;display:grid;gap:0;padding:8px;width:max-content;max-width:100%;border-radius:18px;background:linear-gradient(#3a6ea5,#244e86);box-shadow:var(--shadow);overflow:visible;transform-style:preserve-3d}.dice-tile{width:var(--dice-cell);height:var(--dice-cell);border-radius:0;background:#ffffff14;position:relative;transform:translateZ(0);transform-style:preserve-3d}.dice-tile.is-path{background:#4f8fd4;box-shadow:inset 0 0 0 3px #d7ecff}.dice-tile.is-path:after,.dice-tile.is-ask:after{content:"";position:absolute;left:0;right:0;bottom:0;height:14px;background:#10285073;transform:rotateX(90deg);transform-origin:bottom center}.dice-tile.is-ask{background:#f0b429;box-shadow:inset 0 0 0 4px #fff6e4}.dice-tile.is-start.is-path:not(.is-ask){background:#62c36d}.dice-star{position:absolute;inset:0;display:grid;place-items:center;font-size:1.4rem;color:#fffef8;pointer-events:none}.dice-stamp{position:absolute;right:6px;bottom:4px;font-weight:800;font-size:1.1rem;color:#1a1a22}.dice-token{position:absolute;pointer-events:none;z-index:3;overflow:visible;transform-style:preserve-3d}.dice-scene,.dice-tumble,.die-board{width:100%;height:100%;transform-style:preserve-3d}.dice-tumble{transform:rotateX(0) rotateY(0)}.dice-scene{transform:translateZ(var(--die-z));transform-style:preserve-3d}.dice-tumble.is-E{transform-origin:100% 50% calc(var(--die-z) * -1);animation:dice-tumble-e .52s ease-in-out forwards}.dice-tumble.is-W{transform-origin:0% 50% calc(var(--die-z) * -1);animation:dice-tumble-w .52s ease-in-out forwards}.dice-tumble.is-N{transform-origin:50% 0% calc(var(--die-z) * -1);animation:dice-tumble-n .52s ease-in-out forwards}.dice-tumble.is-S{transform-origin:50% 100% calc(var(--die-z) * -1);animation:dice-tumble-s .52s ease-in-out forwards}@keyframes dice-tumble-e{0%{transform:rotateX(0) rotateY(0)}to{transform:rotateX(0) rotateY(90deg)}}@keyframes dice-tumble-w{0%{transform:rotateX(0) rotateY(0)}to{transform:rotateX(0) rotateY(-90deg)}}@keyframes dice-tumble-n{0%{transform:rotateX(0) rotateY(0)}to{transform:rotateX(90deg) rotateY(0)}}@keyframes dice-tumble-s{0%{transform:rotateX(0) rotateY(0)}to{transform:rotateX(-90deg) rotateY(0)}}.die-board{transform:rotateX(0) rotateY(0);transform-origin:50% 50% 0}.die-slot{position:absolute;inset:0;transform-style:preserve-3d}.die-slot-top{transform:rotateX(0)}.die-slot-bottom{transform:rotateX(180deg)}.die-slot-south{transform:rotateX(-90deg)}.die-slot-north{transform:rotateX(90deg)}.die-slot-east{transform:rotateY(90deg)}.die-slot-west{transform:rotateY(-90deg)}.die-face{position:absolute;inset:0;border:2px solid #1a1a22;border-radius:8px;overflow:hidden;background:#fbf6ea;transform:translateZ(var(--die-z));transform-style:flat}.die-face-tag{position:absolute;left:4px;top:3px;font-size:.62rem;font-weight:800;color:#c45c1a;background:#fff8ef;border-radius:6px;padding:0 4px;line-height:1.3}.die3d{position:relative;transform-style:preserve-3d}.die3d-face{position:absolute;left:0;top:0;backface-visibility:hidden;border:2px solid #1a1a22;border-radius:12px;overflow:hidden;background:#fbf6ea;transform-style:preserve-3d}.dice-pips{position:absolute;inset:0;pointer-events:none}.die-pip{position:absolute;width:20%;height:20%;border-radius:50%;background:#1a1a22;transform:translate(-50%,-50%)}.dice-pips.is-big .die-pip{width:22%;height:22%}.dice-controls{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:0}.dice-pad{display:grid;grid-template-columns:repeat(3,56px);gap:6px}.dice-pad button{min-width:56px;min-height:56px;border-radius:16px;background:#ffe08a;font-size:1.5rem;font-weight:800}.dice-keys{display:grid;grid-template-columns:repeat(3,56px);gap:6px}.dice-key{min-width:56px;min-height:56px;border-radius:16px;background:#fff8ef;font-size:1.4rem;font-weight:800;box-shadow:var(--shadow)}.dice-key.is-zero{grid-column:2}@media(max-width:720px){.dice-play{overflow:auto}.dice-layout{display:flex;flex-direction:column;overflow:visible;flex:none}.dice-spin{width:110px;height:110px}.dice-board{--dice-cell: min(64px, 18vw)}.dice-controls{flex-direction:row;flex-wrap:wrap}}.fit-layout{flex:1;min-height:0;display:grid;grid-template-columns:1.15fr .85fr;gap:10px}.fit-stage{position:relative;min-height:0;border-radius:22px;background:linear-gradient(#eaf6ff,#f7efe0);box-shadow:var(--shadow);display:grid;place-items:center;touch-action:none;overflow:hidden}.fit-iso{width:92%;height:92%;overflow:visible;filter:drop-shadow(3px 5px 0 rgba(90,56,24,.22))}.fit-tray{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:0;align-content:center}.fit-opt{min-width:0;min-height:92px;border-radius:18px;background:#fffef8;box-shadow:var(--shadow);padding:6px;touch-action:none}.fit-opt.is-on{outline:4px solid #f0b429}.fit-opt.is-yes{outline:6px solid #21d45a}.fit-opt.is-shake{animation:shake .35s ease}.fit-tools{display:flex;justify-content:center;align-items:center;gap:10px;flex-shrink:0}.fit-tools button{min-height:52px;min-width:72px;border-radius:16px;font-weight:800}.fit-float{position:fixed;width:120px;height:90px;transform:translate(-50%,-50%);pointer-events:none;z-index:30}.fit-play.is-miss .fit-stage{animation:shake .32s ease}@media(max-height:520px){.fit-layout{grid-template-columns:1fr 1fr}.fit-opt{min-height:72px}}.parent select{display:block;width:100%;margin-top:6px;min-height:56px;border:3px solid #ead9b6;border-radius:16px;padding:0 12px;background:#fff}.path{padding:4px 12px 10px}.path-shell{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;gap:6px;background:linear-gradient(#e7f8ea,#f7f3e4);border:6px solid #9ed6ad;border-radius:36px;padding:8px 12px 10px;box-shadow:0 10px #2a2a4a1f}.path-toolbar,.path-levels,.path-goals{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;flex-shrink:0}.path-toolbar button,.path-goals button{min-height:44px;min-width:0;padding:0 12px;border-radius:16px;background:#fffdf6;font-weight:800;font-size:.82rem;box-shadow:0 3px #2a2a4a1a}.path-toolbar button.is-on,.path-goals button.is-on,.path-levels button.is-on,.path-pups button.is-on,.path-act.is-on{background:#c8f0a8}.path-pups{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;flex-shrink:0}.path-pups button{min-height:72px;min-width:72px;padding:4px 6px;border-radius:16px;background:#fffdf6;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.72rem;font-weight:800}.path-pups img{width:44px;height:44px;object-fit:contain;pointer-events:none}.path-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.path-act{position:relative;width:84px;height:84px;min-width:84px;min-height:84px;border-radius:22px;color:#fff;font-weight:800;box-shadow:0 7px #2a2a4a29;display:grid;place-items:center;padding:0}.path-skill-face{position:relative;width:100%;height:100%;display:grid;place-items:center}.path-compass{position:absolute;inset:4px;pointer-events:none}.path-tick{position:absolute;width:0;height:0;border-style:solid;color:#fff;opacity:.5}.path-tick.is-on{opacity:1;filter:drop-shadow(0 0 0 3px #fff6e8) drop-shadow(0 1px 1px rgba(42,42,74,.35))}.path-tick-up{top:0;left:50%;transform:translate(-50%);border-width:0 7px 11px 7px;border-color:transparent transparent currentColor transparent}.path-tick-down{bottom:0;left:50%;transform:translate(-50%);border-width:11px 7px 0 7px;border-color:currentColor transparent transparent transparent}.path-tick-left{left:1px;top:50%;transform:translateY(-50%);border-width:7px 11px 7px 0;border-color:transparent currentColor transparent transparent}.path-tick-right{right:1px;top:50%;transform:translateY(-50%);border-width:7px 0 7px 11px;border-color:transparent transparent transparent currentColor}.path-card .path-tick-up{border-width:0 5px 8px 5px}.path-card .path-tick-down{border-width:8px 5px 0 5px}.path-card .path-tick-left{border-width:5px 8px 5px 0}.path-card .path-tick-right{border-width:5px 0 5px 8px}.path-card .path-compass{inset:3px}.path-act-icon{width:42px;height:42px;object-fit:contain;pointer-events:none;background:#fff6e8;border-radius:50%;padding:3px;box-sizing:border-box;filter:drop-shadow(0 1px 0 rgba(42,42,74,.18))}.path-card .path-act-icon,.path-forest-card .path-act-icon{width:30px;height:30px;padding:2px}.path-forest-card{display:flex;flex-direction:column;align-items:center;line-height:1;gap:0}.path-forest-card svg{width:22px;height:22px}.path-toolbar button:disabled,.path-levels button:disabled{opacity:.35}.path-levels button{width:44px;min-width:44px;min-height:44px;border-radius:50%;background:#fffdf6;font-weight:800}.path-stage{flex:1;min-height:0;display:flex;align-items:stretch;justify-content:center;gap:6px}.path-fox{flex:0 0 min(132px,15vw);width:min(132px,15vw);max-height:100%;object-fit:contain;object-position:bottom center;align-self:flex-end;pointer-events:none;filter:drop-shadow(0 8px 0 rgba(42,42,74,.12))}.path-grid-wrap{flex:1;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;container-type:size}.path-grid{position:relative;display:grid;gap:8px;padding:4px;width:min(100cqw,calc(100cqh * var(--cols, 4) / var(--rows, 4)));height:min(100cqh,calc(100cqw * var(--rows, 4) / var(--cols, 4)))}.path[data-mode=forest] .path-shell{background:linear-gradient(#cfe8c4,#eef6dc);border-color:#7fbf72;gap:4px;padding:6px 10px 8px}.path[data-mode=forest] .path-fox{flex:0 0 min(88px,10vw);width:min(88px,10vw)}.path[data-mode=forest] .path-pups button{min-height:52px;min-width:52px}.path[data-mode=forest] .path-pups img{width:32px;height:32px}.path-grid.is-forest{gap:0;padding:0;overflow:visible}.path-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 58%;border-radius:28px;pointer-events:none;z-index:0;box-shadow:0 8px #2a2a4a24}.path-grid.is-forest .path-cell{background:transparent;box-shadow:none;border-radius:0;overflow:visible;z-index:1}.path-grid.is-forest .path-cell.is-item{background:radial-gradient(circle,rgba(255,246,168,.62) 0%,transparent 72%);box-shadow:none}.path-props{position:absolute;inset:0;pointer-events:none;z-index:1}.path-prop,.path-hint-badge{position:absolute;z-index:1;pointer-events:none;object-fit:contain;height:auto;transform:translate(-50%,-58%);filter:drop-shadow(0 4px 0 rgba(42,42,74,.14))}.path-hint-badge{z-index:2;transform:translate(-20%,-120%);filter:drop-shadow(0 2px 0 rgba(42,42,74,.18))}.path-cell{min-width:0;min-height:0;padding:0;border-radius:18px;overflow:hidden;background:#eaf6c8;box-shadow:0 5px #c3dc9a}.path-cell img{width:100%;height:100%;object-fit:cover;pointer-events:none}.path-cell.is-item{box-shadow:0 0 0 4px #fff6a8,0 0 0 8px #ff7eb6,0 5px #c3dc9a;animation:path-item-pulse 1.4s ease infinite;z-index:1}.path-cell.is-flower{box-shadow:0 0 0 4px #fff,0 0 0 8px #ff7eb6,0 5px #c3dc9a}.path-cell.is-mail{box-shadow:0 0 0 4px #fff,0 0 0 8px #5aa4e8,0 5px #c3dc9a}.path-cell.is-shell{box-shadow:0 0 0 4px #fff,0 0 0 8px #f0b429,0 5px #c3dc9a}@keyframes path-item-pulse{50%{filter:brightness(1.08)}}.path-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}.path-preview-line{stroke:#fff;stroke-width:3.2;stroke-dasharray:7 6;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 0 #7eab55)}.path-hint-line{stroke:#ffd36a;stroke-width:4;stroke-dasharray:5 5;stroke-linecap:round}.path-car-wrap{position:absolute;z-index:3;width:calc(100% / var(--cols, 4) * .72);pointer-events:none;transform:translate(-50%,-58%);filter:drop-shadow(0 6px 0 rgba(42,42,74,.16))}.path-car-wrap.is-moving{transition:left .32s ease,top .32s ease}.path-car{width:100%;height:auto;display:block}.path-car-wrap.is-bump{filter:drop-shadow(0 6px 0 rgba(42,42,74,.16)) saturate(1.4)}.path-car-wrap.is-jump.is-moving{transition-duration:.52s}.path-car-wrap.is-jump.is-moving .path-car-motion{animation:path-hop .52s ease}.path-car-wrap.is-fly.is-moving{transition-duration:.78s}.path-car-wrap.is-fly.is-moving .path-car-motion{animation:path-soar .64s ease}.path-car-wrap.is-crawl.is-moving{transition-duration:.44s}.path-car-wrap.is-crawl.is-moving .path-car-motion{animation:path-crawl .44s ease}.path-car-wrap.is-swim.is-moving{transition-duration:.5s}.path-car-wrap.is-swim.is-moving .path-car-motion{animation:path-bob .5s ease-in-out}.path-car-wrap.is-boat.is-moving{transition-duration:.54s}.path-car-wrap.is-boat.is-moving .path-car-motion{animation:path-rock .54s ease-in-out}.path-car-wrap.is-climb.is-moving{transition-duration:.48s}.path-car-wrap.is-climb.is-moving .path-car-motion{animation:path-climb .48s ease}.path-car-wrap.is-wait .path-car-motion{animation:path-wait .4s ease}@keyframes path-hop{0%,to{transform:translateY(0) scale(1)}40%{transform:translateY(-42%) scale(1.08)}}@keyframes path-soar{0%,to{transform:translateY(0) scale(1)}25%{transform:translateY(-48%) scale(1.06)}75%{transform:translateY(-48%) scale(1.06)}}@keyframes path-crawl{0%,to{transform:translateY(0) scaleY(1)}30%,70%{transform:translateY(18%) scaleY(.72)}}@keyframes path-bob{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(10%) rotate(-8deg)}75%{transform:translateY(-12%) rotate(8deg)}}@keyframes path-rock{0%,to{transform:rotate(0)}30%{transform:rotate(-9deg)}70%{transform:rotate(9deg)}}@keyframes path-climb{0%,to{transform:translateY(0)}50%{transform:translateY(-22%)}}@keyframes path-wait{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.path-controls{flex-shrink:0;display:flex;flex-direction:column;gap:8px}.path-strip-row{display:flex;align-items:center;gap:10px}.path-strip{flex:1;min-width:0;min-height:76px;display:flex;gap:8px;align-items:center;padding:8px 12px;border:3px dashed #d5e0c2;border-radius:24px;background:#fffdf6;overflow-x:auto}.path-strip-ghost{display:block;width:100%;height:8px}.path-card{width:72px;height:72px;min-width:72px;padding:0;border:0;border-radius:18px;color:#fff;display:grid;place-items:center;box-shadow:0 5px #2a2a4a29;position:relative}.path-card.is-cycle{cursor:pointer}.path-card svg,.path-pad svg{width:40px;height:40px}.path-x2{font-weight:800;font-size:1.35rem}.path-card.is-now{transform:scale(1.12)}.path-card.is-bump{background:#ff9a3d!important;animation:path-wiggle .4s ease}.path-round{width:76px;height:76px;min-width:76px;min-height:76px;border-radius:50%;color:#fff;font-size:1.55rem;box-shadow:0 6px #2a2a4a29}.path-play{background:#3ecf6a}.path-undo{background:#ffc44d;color:#5a3a00}.path-dock{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.path-pad{width:84px;height:84px;min-width:84px;min-height:84px;border-radius:22px;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;box-shadow:0 7px #2a2a4a29}.path-pad-lab{display:flex;flex-direction:column;align-items:center;line-height:1;font-size:.62rem}.path-pad-lab em{font-style:normal;font-weight:700}.path-clear{background:#c5c0b4}.path-play:disabled,.path-undo:disabled,.path-pad:disabled,.path-clear:disabled{opacity:.42}.path-pad.is-pulse,.path-play.is-pulse,.path-act.is-pulse{animation:path-pulse 1s ease infinite}.path-skip,.path-hint-ask,.path-demo,.path-save{min-height:44px;border-radius:16px;background:#fffdf6;font-weight:800;box-shadow:0 3px #2a2a4a1a;padding:0 12px}.path-win{position:absolute;inset:12% 16%;background:color-mix(in srgb,var(--paper) 94%,transparent);border-radius:28px;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;z-index:5;text-align:center;padding:18px;font-weight:800}.path-win p{margin:0}.path-win-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.path-win-row button{min-height:64px;border-radius:18px;background:#fff;font-weight:800;padding:0 18px}.path-win-row .primary{background:#3ecf6a;color:#fff}@keyframes path-pulse{50%{filter:brightness(1.18);box-shadow:0 7px #2a2a4a29,0 0 0 7px #ffe08a}}@keyframes path-wiggle{25%{transform:translate(-6px)}75%{transform:translate(6px)}}@media(max-width:900px){.path-fox{flex-basis:72px;width:72px}.path-pad,.path-card,.path-round{width:72px;height:72px;min-width:72px;min-height:72px}}.cipher{gap:6px}.cipher .mode-row button{min-width:0;padding:0 10px;font-size:.95rem}.cipher-lens button{min-width:56px;min-height:48px}.cipher-legend{display:flex;justify-content:center;gap:18px;font-weight:800;color:var(--muted);flex-shrink:0}.cipher-legend span{display:flex;align-items:center;gap:6px}.cipher-ico{width:22px;height:22px;flex-shrink:0}.cipher-layout{flex:1;min-height:0;display:grid;grid-template-columns:1.15fr .9fr;gap:10px}.cipher-list,.cipher-pad{min-height:0;border-radius:24px;box-shadow:var(--shadow)}.cipher-list{overflow:auto;display:flex;flex-direction:column;gap:8px;padding:10px;background:linear-gradient(#2b2468,#4a3488)}.cipher-empty{margin:auto;color:#ffe9b0;font-weight:800;text-align:center}.cipher-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:64px;padding:8px 10px;border-radius:18px;background:color-mix(in srgb,#fff6e4 88%,#8b7ce0);box-shadow:0 4px #1a143c40}.cipher-row-tiles{display:flex;gap:6px;flex-wrap:wrap}.cipher-marks{display:flex;gap:8px;flex-shrink:0}.cipher-mark{display:flex;align-items:center;gap:4px;min-width:48px;font-weight:800;font-size:1.15rem}.cipher-token{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:1.45rem;box-shadow:0 3px #2a2a4a2e}.cipher-token.is-num{background:linear-gradient(#fff,#d7e8ff);color:#1a4a9c;border:3px solid #f0c429}.cipher-token.is-gem{border-radius:50%;border:3px solid #fff8;box-shadow:inset 0 -6px #0000001f,0 3px #2a2a4a2e}.cipher-token.is-empty{background:#efe6cf;color:#b9a888;border:3px dashed #d2c2a0;box-shadow:none}.cipher-pad{background:radial-gradient(circle at 20% 0%,#ffe08a55,transparent 40%),linear-gradient(#3d2a86,#1e1648);display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px}.cipher-lock{width:88px;height:88px;flex-shrink:0}.cipher.is-open .cipher-lock{filter:drop-shadow(0 0 10px #ffe08a)}.cipher-slots{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.cipher-slot{min-width:56px;min-height:56px;padding:4px;border-radius:16px;background:#fff6e4;box-shadow:0 4px #1a143c4d}.cipher-slot.is-on{outline:4px solid #f0c429}.cipher-slot.is-yes{outline:4px solid #21d45a}.cipher-slot .cipher-token{width:48px;height:48px}.cipher-keys{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;width:100%}.cipher-keys.is-color{grid-template-columns:repeat(4,minmax(0,1fr))}.cipher-pick{min-width:0;min-height:56px;padding:2px;border-radius:16px;background:transparent;box-shadow:none}.cipher-pick.is-used{opacity:.35}.cipher-pick .cipher-token{width:44px;height:44px;font-size:1.3rem}.cipher-keys.is-color .cipher-pick{min-height:64px;border-radius:999px}.cipher-keys.is-color .cipher-pick .cipher-token{width:52px;height:52px}.cipher-live{background:#fff6e4;border-radius:16px;padding:4px 12px}.cipher-check{min-width:160px}.cipher.is-miss .cipher-slots{animation:shake .35s ease}@media(max-height:520px){.cipher-lock{width:48px;height:48px}.cipher-token,.cipher-slot .cipher-token{width:36px;height:36px;font-size:1.15rem}}.mirror{gap:4px;container-type:size}.mirror .mode-row button{min-width:0;min-height:44px;padding:0 12px}.mirror-stage{flex:1;min-height:0;position:relative;width:min(100%,100cqh);margin:0 auto;aspect-ratio:1;max-height:100%;border-radius:28px;overflow:hidden;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.35),transparent 40%),linear-gradient(#e7f8c8,#c8e89a);box-shadow:var(--shadow);container-type:size}.theme-sea .mirror-stage{background:radial-gradient(circle at 80% 30%,rgba(255,255,255,.28),transparent 36%),linear-gradient(#c8f0ff,#7ec8e8)}.theme-space .mirror-stage{background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.4),transparent 28%),linear-gradient(#1c2250,#3b2d72)}.theme-candy .mirror-stage{background:radial-gradient(circle at 70% 20%,rgba(255,255,255,.35),transparent 32%),linear-gradient(#ffe0f0,#ffc2d4)}.theme-castle .mirror-stage{background:radial-gradient(circle at 40% 10%,rgba(255,255,255,.22),transparent 30%),linear-gradient(#d7d3e8,#9aa0b8)}.mirror-actor{position:absolute;z-index:2;width:max(72px,calc(100% / var(--n, 6) * 1.45));height:max(72px,calc(100% / var(--n, 6) * 1.45));transform:translate(-50%,-50%);display:grid;place-items:center;pointer-events:none}.mirror-actor.is-laser,.mirror-actor.is-mirror{pointer-events:auto;cursor:pointer;min-width:0;min-height:0;padding:0;background:transparent;box-shadow:none}.mirror-laser-art,.mirror-glass,.mirror-goal-art,.mirror-wall-art{width:72%;height:72%;display:grid;place-items:center;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.mirror-glass{width:88%;height:88%}.mirror-laser-art svg,.mirror-glass svg{width:100%;height:100%;overflow:visible}.mirror-beam{z-index:1}.mirror-wall-art{width:70%;height:70%;border-radius:18px;background:#c5b89a;box-shadow:inset 0 -6px #2a2a4a1f}.theme-sea .mirror-wall-art{background:#7fcec8;border-radius:50%}.theme-space .mirror-wall-art{background:#6b7bb8}.theme-candy .mirror-wall-art{background:#ff9ec4}.theme-castle .mirror-wall-art{background:#8b8398}.mirror-goal-art{font-size:clamp(1.4rem,7cqw,2.4rem);filter:drop-shadow(0 4px 0 rgba(42,42,74,.12))}.mirror-goal-art.is-lit,.mirror-actor.is-hit .mirror-goal-art{animation:mirror-pop .45s ease}.mirror-stage.is-idle .is-laser,.mirror-stage.is-idle .is-mirror{animation:mirror-breathe 1.6s ease-in-out infinite}.mirror-actor.is-hint:after{content:"👇";position:absolute;top:-18%;font-size:1.4rem;animation:mirror-bob .7s ease-in-out infinite}.mirror-beam{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.mirror-ray{stroke:#ffe14a;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 5px #fff6a8);stroke-dasharray:1;stroke-dashoffset:1;animation:mirror-flow .8s ease forwards}.theme-space .mirror-ray{stroke:#7cf0ff}@keyframes mirror-flow{to{stroke-dashoffset:0}}@keyframes mirror-pop{50%{transform:translateY(-18%) scale(1.18)}}@keyframes mirror-breathe{50%{filter:drop-shadow(0 0 10px #fff6a8)}}@keyframes mirror-bob{50%{transform:translateY(6px)}}.numbers{gap:6px}.numbers .mode-row button{min-width:0;padding:0 14px}.numbers-sizes button{min-width:112px}.numbers-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;container-type:size}.numbers-frame{position:relative;width:min(100%,100cqh);max-width:100%;max-height:100%;aspect-ratio:1;border-radius:28px;background:radial-gradient(circle at 24% 16%,rgba(255,255,255,.38),transparent 44%),linear-gradient(#e6c489,#c8934f);box-shadow:var(--shadow)}.numbers-board{position:absolute;inset:10px;border-radius:20px;background:linear-gradient(#ab783f,#8a5a22);box-shadow:inset 0 5px 12px #00000057}.numbers-hole,.numbers-guide,.numbers-tile{position:absolute;width:calc(100% / var(--n));height:calc(100% / var(--n));left:calc(var(--col) * 100% / var(--n));top:calc(var(--row) * 100% / var(--n))}.numbers-hole:after{content:"";position:absolute;inset:5px;border-radius:14px;background:#3a1e025c;box-shadow:inset 0 5px 10px #0000006b}.numbers-guide{display:grid;place-items:center;font-weight:800;font-size:clamp(.9rem,4vmin,2.1rem);color:#ffffff80;pointer-events:none}.numbers-tile{min-width:0;min-height:0;padding:5px;background:none;transition:left .16s ease,top .16s ease}.numbers-face{display:grid;place-items:center;width:100%;height:100%;border-radius:14px;background:linear-gradient(#fffdf6,#cfe2ff);border:3px solid #f0c429;box-shadow:0 5px #3a220c52;color:#1a4a9c;font-style:normal;font-weight:800;font-size:clamp(1.1rem,5.2vmin,2.7rem)}.numbers-tile:active .numbers-face{transform:translateY(3px);box-shadow:0 2px #3a220c52}.numbers[data-assist="1"] .numbers-tile.is-movable .numbers-face{box-shadow:0 5px #3a220c52,0 0 0 4px #fffc}.numbers-tile.is-ok .numbers-face{background:linear-gradient(#f0ffee,#b6f0b0);border-color:#3dbb7a;color:#1f6a38}.numbers-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;flex-shrink:0}.numbers-tools button{min-height:48px;min-width:0;padding:0 18px;border-radius:999px;background:#fff8;font-weight:700;box-shadow:none}.numbers-tools button.is-on,.numbers-tools button.primary{background:#ffe08a;box-shadow:var(--shadow)}.numbers-moves{display:flex;align-items:center;gap:6px;font-weight:700;color:var(--muted)}.numbers-moves b{min-width:46px;padding:4px 10px;border-radius:999px;background:#fff8;text-align:center}@media(max-height:520px){.numbers-frame{border-radius:20px}.numbers-face{font-size:clamp(.9rem,4.4vmin,1.9rem);border-width:2px}}.numbers-slide,.hanoi,.sudoku{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px}.hanoi-stage{flex:1;min-height:0;display:flex;align-items:stretch;justify-content:center;gap:clamp(8px,3vw,42px);padding:8px 12px 0}.hanoi-peg{position:relative;flex:1 1 0;max-width:260px;min-width:0;min-height:0;padding:0;background:transparent;box-shadow:none;border-radius:18px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;transition:background .15s ease,box-shadow .15s ease}.hanoi-peg.is-on{background:#fff4c9;box-shadow:inset 0 0 0 4px #f0c429}.hanoi-peg.is-hint-from{box-shadow:inset 0 0 0 4px #ff8a6a}.hanoi-peg.is-hint-to{box-shadow:inset 0 0 0 4px #3dbb7a}.hanoi-peg.is-shake{animation:shake .35s ease}.hanoi-rod{position:absolute;bottom:14px;width:14px;height:76%;border-radius:8px;background:linear-gradient(#c99555,#8a5a22)}.hanoi-stack{position:relative;z-index:1;width:100%;display:flex;flex-direction:column-reverse;align-items:center;gap:3px;padding-bottom:16px}.hanoi-disk{height:clamp(10px,4.4vh,26px);border-radius:999px;border:2px solid rgba(42,42,74,.35);box-shadow:0 3px #2a2a4a2e}.hanoi-base{width:100%;height:14px;border-radius:8px;background:linear-gradient(#b98a4e,#8a5a22)}.sudoku-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;container-type:size}.sudoku-grid{position:relative;display:grid;grid-template-columns:repeat(var(--cols),1fr);grid-template-rows:repeat(var(--rows),1fr);aspect-ratio:var(--cols) / var(--rows);width:auto;height:100%;max-width:100%;max-height:100%;padding:4px;background:#fffdf7;border:4px solid #6a5a44;border-radius:14px;box-shadow:var(--shadow)}.sudoku-lines{position:absolute;left:4px;top:4px;width:calc(100% - 8px);height:calc(100% - 8px);pointer-events:none}.sudoku-cell{min-width:0;min-height:0;padding:0;display:grid;place-items:center;font-weight:800;line-height:1;font-size:clamp(.5rem,3.4cqh,1.5rem);color:#1a4a9c;background:#fff;border:0 solid #cbbda6;border-right-width:1px;border-bottom-width:1px;border-radius:0;box-shadow:none}.sudoku-cell.is-off{background:transparent;border:none}.sudoku-cell.is-given{color:#2a2a4a;background:#f3ece0}.sudoku-cell.is-peer{background:#eef4ff}.sudoku-cell.is-given.is-peer{background:#ece4d5}.sudoku-cell.is-selected{background:#ffe08a}.sudoku-cell.is-bad{color:#d43a2f;background:#ffe1dd}.sudoku-pad{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;flex-shrink:0}.sudoku-num{min-width:52px;min-height:52px;border-radius:14px;background:linear-gradient(#fffdf6,#cfe2ff);border:3px solid #f0c429;font-weight:800;font-size:1.4rem;color:#1a4a9c;box-shadow:0 4px #2a2a4a33}.sudoku-num.is-off{opacity:.35}.sudoku-num.is-erase{min-width:56px;background:#fff8;border-color:#cbbda6}.sudoku-loading{flex:1;margin:0;display:grid;place-items:center;font-weight:800;color:var(--muted)}.sudoku-variants button,.sudoku-levels button{min-width:0;padding:0 12px}.lights{gap:6px}.lights-levels button{min-width:0;padding:0 12px}.lights-n button{min-width:48px;padding:0 10px}.lights-stage{flex:1;min-height:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;justify-items:center;gap:clamp(10px,3vw,34px);container-type:size}.lights-board{display:grid;grid-template-columns:repeat(var(--n),1fr);grid-template-rows:repeat(var(--n),1fr);width:min(100%,100cqh);max-height:100%;aspect-ratio:1;gap:clamp(4px,1.4vmin,12px);padding:clamp(6px,1.8vmin,16px);border-radius:26px;background:linear-gradient(#3a3260,#241f47);box-shadow:var(--shadow)}.lights-cell{min-width:0;min-height:0;padding:0;border-radius:16px;background:#1b1836;border:3px solid #4a4276;box-shadow:inset 0 4px #00000059;transition:background .22s ease,box-shadow .22s ease,transform .18s ease,border-color .22s ease}.lights-cell.is-on{background:radial-gradient(circle at 40% 34%,#fffdf0,#ffd75e);border-color:#ffe9a8;box-shadow:0 0 18px #ffd65ebf,inset 0 -4px #b4780059}.lights-cell.is-hint{border-color:#7cf0ff;box-shadow:0 0 0 5px #7cf0ff8c,0 0 20px #7cf0ff99}.lights-cell.is-pressed{transform:scale(.9)}.lights-goal{display:flex;flex-direction:column;align-items:center;gap:6px}.lights-goal-label{font-weight:800;color:var(--muted)}.lights-goal-grid{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:3px;padding:6px;border-radius:14px;background:#241f47;box-shadow:var(--shadow)}.lights-dot{width:clamp(10px,2.4vh,20px);height:clamp(10px,2.4vh,20px);border-radius:5px;background:#1b1836;border:1px solid #4a4276}.lights-dot.is-on{background:#ffe08a;border-color:#fff3c4}.lights-result{align-self:center;font-weight:800;color:var(--muted)}.shades{gap:6px}.shades-progress{display:flex;align-items:center;justify-content:center;gap:10px;flex-shrink:0}.shades-bar{width:min(280px,30vw);height:12px;border-radius:999px;background:#fff8;overflow:hidden;box-shadow:inset 0 2px 4px #2a2a4a29}.shades-bar-fill{display:block;height:100%;border-radius:999px;background:linear-gradient(#ffd75e,#f0a419);transition:width .25s ease}.shades-stage{flex:1;min-height:0;display:grid;place-items:center;container-type:size;background:#e9e9ee;border-radius:26px;box-shadow:var(--shadow)}.shades-grid{display:grid;grid-template-columns:repeat(var(--n),1fr);grid-template-rows:repeat(var(--n),1fr);width:min(100%,100cqh);max-height:100%;aspect-ratio:1;gap:clamp(4px,1.2vmin,12px);padding:clamp(6px,1.6vmin,16px);background:transparent}.shades-cell{min-width:0;min-height:0;padding:0;border:0;border-radius:clamp(8px,2vmin,20px);transition:transform .15s ease,box-shadow .2s ease}.shades-cell:active{transform:scale(.96)}.shades-cell.is-hit{box-shadow:0 0 0 6px #21d45a,0 0 22px #21d45a99}.shades-cell.is-wrong{box-shadow:0 0 0 6px #ff6a5a;animation:shake .4s ease}.shades-done{flex:1;display:grid;place-content:center;justify-items:center;gap:14px}.shades-done-text{margin:0;font-weight:800;font-size:1.4rem;color:var(--ink)}.tangle{gap:6px}.tangle-stage{flex:1;min-height:0;display:grid;place-items:center;container-type:size}.tangle-svg{display:block;width:min(100%,100cqh);max-height:100%;aspect-ratio:1;border-radius:26px;background:radial-gradient(circle at 30% 18%,rgba(255,255,255,.55),transparent 55%),linear-gradient(#fff6e4,#ffe6c9);box-shadow:var(--shadow);touch-action:none;overflow:visible}.tangle-edge{stroke-width:1.1;stroke-linecap:round;transition:stroke .2s ease,stroke-dasharray .2s ease}.tangle-edge.is-cross{stroke-dasharray:2.6 1.8}.tangle-node{fill:#3a3268;stroke:#fff;stroke-width:1.1;cursor:grab;transition:fill .15s ease,r .15s ease}.tangle-node.is-on{fill:#f0b429;cursor:grabbing}.jiangmu{gap:6px}.jm-levels button{min-width:0;padding:0 12px}.jm-n button{min-width:48px;padding:0 10px}.jm-stage{flex:1;min-height:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;justify-items:center;gap:clamp(8px,2.4vw,28px);container-type:size}.jm-drawing{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;height:100%;min-height:0}.jm-drawing-label,.jm-joint{font-weight:800;color:var(--muted)}.jm-plan{display:block;width:clamp(170px,58cqh,440px);aspect-ratio:1;border-radius:20px;background:#fffdf7;border:4px dashed #a5761c;box-shadow:var(--shadow)}.jm-work{display:grid;place-items:center;width:100%;height:100%;min-width:0;min-height:0}.jm-iso{display:block;width:min(100%,100cqh);max-height:100%;aspect-ratio:1;touch-action:none;transition:transform .3s ease}.jm-iso.is-seated{animation:jm-seat .55s ease}@keyframes jm-seat{40%{transform:scale(1.07)}}.jm-face{cursor:crosshair}.jm-face:hover{filter:brightness(1.06)}.jm-face.is-hint{animation:jm-pulse 1s ease-in-out infinite}@keyframes jm-pulse{50%{filter:drop-shadow(0 0 7px #7cf0ff)}}.jm-nudge{margin:0;text-align:center;font-weight:800;color:var(--zh);flex-shrink:0}.tangram-play,.tiles-play{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px}.tiles-kinds button,.tiles-levels button{min-width:0;padding:0 12px}.tiles-stage{flex:1;min-height:0;display:grid;place-items:center;container-type:size;background:radial-gradient(circle at 50% 40%,#fff,#f1f4f9 62%,#e5eaf2);border-radius:16px;box-shadow:inset 0 0 0 1px #2a2a4a12}.tiles-canvas{display:block;width:100%;height:100%;touch-action:none}.tiles-slot{transition:fill-opacity .2s ease,stroke .2s ease}.tiles-ribs-defs{position:absolute;width:0;height:0;overflow:hidden}.tiles-hit{cursor:pointer}.tiles-slot.is-match{stroke:#f0b429;stroke-width:.08;animation:tiles-pulse 1s ease-in-out infinite}.tiles-slot.is-wrong{animation:shake .4s ease}.tiles-slot.is-back{stroke-dasharray:.05 .045}.tiles-hit.is-back{pointer-events:none}.tiles-canvas.is-3d{cursor:grab}@keyframes tiles-pulse{50%{fill-opacity:.4}}.tiles-tray{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;flex-shrink:0;padding:4px 0}.tiles-tile{position:relative;width:66px;height:66px;min-width:0;min-height:0;padding:4px;border-radius:16px;background:#fff8;box-shadow:var(--shadow);display:grid;place-items:center;touch-action:none}.tiles-tile.is-on{outline:4px solid #f0c429}.tiles-tile.is-used{opacity:.35}.tiles-count{position:absolute;right:-5px;bottom:-5px;min-width:22px;padding:0 5px;border-radius:999px;background:#2a2a4a;color:#fff;font-size:.78rem;font-weight:800;text-align:center}.tiles-name{font-weight:800;color:var(--zh)}.tiles-ghost{position:fixed;transform:translate(-50%,-50%);pointer-events:none;z-index:30;opacity:.85}.tiles-stage.is-guided{grid-template-columns:auto minmax(0,1fr)}.tiles-plan{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;min-height:0}.tiles-plan-label{font-weight:800;font-size:.85rem;color:var(--muted)}.tiles-plan-svg{display:block;width:clamp(120px,36cqh,300px);aspect-ratio:1;border-radius:16px;background:#fffdf7;border:3px dashed #b9a06a;box-shadow:var(--shadow)}.tiles-plan-slot{transition:fill-opacity .2s ease}.tiles-plan-slot.is-current{animation:tiles-pulse 1.2s ease-in-out infinite}.tiles-plan-progress{font-weight:800;color:var(--zh);font-variant-numeric:tabular-nums}.tiles-tile.is-current{width:74px;height:74px;background:#fff;outline:4px solid #f0c429}.tiles-tray.is-guided{padding:0}.tiles-play .settings-bar{gap:4px}.tiles-play .settings-bar button{padding:0 8px;font-size:.9rem}.tiles-next-hint{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:64px;color:var(--muted);font-weight:800;font-size:.78rem;text-align:center}.tiles-next-piece{opacity:.5}.net-panel{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;padding:4px 12px;border-radius:18px;background:#fffc;box-shadow:var(--shadow);font-weight:700;min-height:0}.net-panel button{min-height:40px;min-width:0;padding:0 14px;border-radius:999px;background:#ffe08a}.net-panel .net-host,.net-panel .net-join{background:#cdefff}.net-panel .net-leave{background:#ffd6d6}.net-panel .net-status{color:var(--muted);font-style:normal}.net-panel .net-code{letter-spacing:.18em;background:#ffe08a;padding:4px 12px;border-radius:12px}.net-panel .net-players{color:var(--en)}.net-panel .net-code-input{width:96px;min-height:40px;text-align:center;letter-spacing:.18em;text-transform:uppercase;border-radius:12px;border:3px solid #2a2a4a}.battle-bar{flex-wrap:nowrap;overflow:hidden;padding:0 10px}.battle-bar span{white-space:nowrap}.battle-names{color:var(--en);overflow:hidden;text-overflow:ellipsis;max-width:32vw}@media(max-width:560px),(max-height:520px){.topbar{padding:4px 8px 0;gap:6px}.topbar-left,.topbar-right{gap:6px}.brand-mark strong{font-size:1rem}.brand-mark em{font-size:.72rem}.home-btn{min-height:40px;padding:4px 12px;font-size:.9rem}.home-btn span{font-size:.68rem}.lang-switch{padding:2px;gap:2px}.lang-switch button{width:40px;min-width:40px;height:40px;min-height:40px;padding:0;font-size:.78rem}.gear,.full-btn{width:40px;min-width:40px;height:40px;min-height:40px;font-size:1rem}.captions{min-height:0;padding:2px 10px;border-radius:12px}.cap-en{font-size:.78rem}.cap-zh{font-size:.72rem}.game{padding:2px 6px 6px;gap:2px}.settings-bar{flex-wrap:nowrap;justify-content:flex-start;align-items:center;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;-ms-overflow-style:none;gap:6px;padding:1px 6px 5px}.settings-bar::-webkit-scrollbar{width:0;height:0;display:none}.settings-bar>*{flex:0 0 auto}.settings-bar>.mode-row{flex-wrap:nowrap}.settings-bar>.mode-row+.mode-row{padding-left:6px}.settings-bar .mode-row button,.settings-bar button{flex:0 0 auto;min-width:40px;min-height:40px;padding:0 10px;font-size:.85rem}.settings-bar .lights-n button,.settings-bar .jm-n button,.settings-bar .tiles-levels button{min-width:44px}.settings-bar .tangram-hud button{min-width:48px}.settings-bar .mode-row button.is-on{box-shadow:0 3px #2a2a4a29}.settings-bar .keys-hint{display:none}.numbers-tools{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;gap:8px;padding:1px 6px 5px}.numbers-tools::-webkit-scrollbar{width:0;height:0;display:none}.numbers-tools>*{flex:0 0 auto}.numbers-tools button{min-width:40px;min-height:40px;padding:0 12px;font-size:.85rem}.numbers-moves{font-size:.85rem}.numbers-moves b{min-width:34px;padding:2px 8px}.done-bar{gap:8px;padding-top:4px}.done-bar button{min-height:40px;padding:0 14px;font-size:.9rem}.keys-hint,.piano-hint,.jm-nudge,.jam-hint,.color-hint,.path-hint-ask{margin:1px 0 0;font-size:.72rem;line-height:1.15}}@media(max-height:520px)and (min-width:561px){.topbar{grid-template-columns:auto minmax(0,1fr) auto}.captions{grid-column:auto;order:0;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px}.cap-en,.cap-zh{font-size:.74rem}}@media(max-width:560px)and (min-height:521px){.jm-stage{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:4px}.jm-drawing{flex-direction:row;gap:8px}.jm-drawing-label,.jm-joint{font-size:.78rem}.jm-plan{width:min(42vw,30cqh);border-width:3px;border-radius:14px}.lights-stage{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:6px}.lights-goal{flex-direction:row;align-items:center;gap:10px}.tiles-stage.is-guided{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:6px}.tiles-plan{flex-direction:row;gap:8px}.tiles-plan-svg{width:min(34vw,24cqh)}.tangram-body{flex-direction:column;gap:4px}.tangram-turn{flex:0 0 auto;flex-direction:row;justify-content:flex-start;gap:8px;padding:3px 8px;border-radius:14px;overflow-x:auto;scrollbar-width:none}.tangram-turn::-webkit-scrollbar{display:none}.tangram-turn button{width:46px;height:46px;min-width:46px;min-height:46px;border-radius:14px;font-size:1.4rem}.tangram-turn-en,.tangram-turn-zh{margin:0;font-size:.72rem}}@media(max-height:520px){.tangram-turn{flex-basis:62px;gap:4px;padding:4px}.tangram-turn-en,.tangram-turn-zh{font-size:.68rem}.tangram-turn button{width:54px;height:54px;min-width:54px;min-height:54px;border-radius:16px;font-size:1.5rem}}
