.star-icon{flex:none;display:block;overflow:visible}.star-icon .star-empty{fill:#ffffffd9}.star-icon .star-rim{fill:none;stroke:#f0a800;stroke-width:5px;stroke-linejoin:round}.star-icon .star-gold{transform-box:view-box;transform-origin:50% 100%;transition:transform .42s cubic-bezier(.3,1.4,.5,1)}.star-icon .star-shine{fill:#fff;transition:opacity .3s}.star-icon.off .star-empty{fill:#eef1f7}.star-icon.off .star-rim{stroke:#cfd6e4;stroke-dasharray:9 7}.star-slots{filter:drop-shadow(0 2px #0001);align-items:center;gap:1px;display:inline-flex}.star-meter{z-index:3;box-shadow:var(--shadow);pointer-events:none;background:#ffffffe0;border-radius:999px;padding:8px 14px 6px;position:absolute;top:12px;right:16px}.star-meter-row{gap:6px;display:flex}.sm-star{transition:transform .6s cubic-bezier(.3,1.3,.5,1),opacity .6s;position:relative}.sm-star.full .star-icon{animation:.52s cubic-bezier(.3,1.6,.5,1) sm-pop}.sm-star.lost{opacity:.45;transform:translateY(8px)scale(.78)}.sm-star.lost .star-rim{stroke:#b9b2e8}.sm-burst{pointer-events:none;width:0;height:0;position:absolute;top:50%;left:50%}.sm-burst i{background:radial-gradient(circle,#fff 0 30%,#ffd23f 31%);border-radius:50%;width:12px;height:12px;animation:.7s ease-out both sm-ray;position:absolute;top:-6px;left:-6px}@keyframes sm-pop{0%{transform:scale(1)}45%{transform:scale(1.32)rotate(-8deg)}to{transform:scale(1)}}@keyframes sm-ray{0%{transform:rotate(var(--a)) translateY(0) scale(.4);opacity:1}to{transform:rotate(var(--a)) translateY(-58px) scale(1);opacity:0}}.song-stars{margin-top:2px}.song-stars.gold{filter:drop-shadow(0 0 6px #ffd23f)}.song-card{padding-bottom:6px}.panel-best{margin-top:2px}.tier-sticker{--ring:#e3e8f2;--ring2:#f7f9fc;width:var(--ts);height:var(--ts);background:radial-gradient(circle at 50% 45%, #fff 0 58%, transparent 59%), conic-gradient(from 200deg, var(--ring), var(--ring2), var(--ring), var(--ring2), var(--ring));border-radius:50%;flex:none;place-items:center;display:inline-grid;position:relative;overflow:hidden;box-shadow:0 4px #0002,inset 0 0 0 3px #fff8}.tier-sticker-emoji{font-size:calc(var(--ts) * .52);line-height:1}.tier-sticker.tier-0{box-shadow:none;background:#f7f9fc;border:3px dashed #d5dbe8}.tier-sticker.tier-0 .tier-sticker-emoji{opacity:.35;font-size:calc(var(--ts) * .38)}.tier-sticker.tier-1{--ring:#b8692f;--ring2:#f0b27a}.tier-sticker.tier-2{--ring:#7f8ba0;--ring2:#e6ebf2}.tier-sticker.tier-3{--ring:#f0a800;--ring2:#fff27a;box-shadow:0 4px #0002,0 0 18px #ffd23faa,inset 0 0 0 3px #fffa}.tier-sticker-shine{pointer-events:none;background:linear-gradient(115deg,#0000 40%,#fffc 50%,#0000 60%);position:absolute;inset:-20%;transform:translate(-120%)}.sticker.tiered{gap:3px}.sticker.tiered.tier-1{background:linear-gradient(#fff,#fbe7d6);border-color:#e0a274}.sticker.tiered.tier-2{background:linear-gradient(#fff,#eef1f6);border-color:#b8c0cc}.sticker.tiered.tier-3{background:linear-gradient(#fffbe0,#ffe98a);border-color:#f0b800;box-shadow:0 0 12px #ffd23f99}.sticker-big-medal{font-size:54px;animation:.5s ease-out .7s both pop;position:absolute;top:-18px;right:-18px}.sticker-big.tier-3{box-shadow:0 0 40px #ffd23f,0 10px #0002}.results{flex-direction:column;align-items:center;gap:10px;padding:2px 0;display:flex}.results.waiting *{animation-play-state:paused!important}.results-bubble{max-width:100%;color:var(--ink);background:#f4f6ff;border-radius:20px 20px 20px 6px;align-items:center;gap:10px;padding:6px 16px 6px 8px;font-size:22px;font-weight:700;display:flex}.results-buddy{font-size:40px;line-height:1}.results-main{justify-content:center;align-items:center;gap:36px;display:flex}.results-sticker{cursor:pointer;font:inherit;background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;padding:0;display:flex;position:relative}.results-sticker-tag{color:#fff;background:var(--ok);border-radius:999px;padding:2px 10px;font-size:18px;font-weight:800;position:absolute;top:-8px;right:-14px;box-shadow:0 3px #1f8f53}.results-sticker-tag.gold{background:#f0a800;box-shadow:0 3px #b88000}.results-next{flex-wrap:wrap;justify-content:center;align-items:center;gap:20px;display:flex}.results-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.results-actions .btn.big{margin-top:0;padding:14px 26px;font-size:24px}.btn.tricky-btn{background:#8a6dff;box-shadow:0 5px #6a4fe0}@keyframes mini-bounce{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-26px)rotate(4deg)}}.app:has(.tricky-hud) .note.current .note-finger{animation:.9s ease-in-out infinite tricky-finger;box-shadow:0 0 0 4px #fff,0 0 0 9px #8a6dff,0 0 22px 8px #c9b6ff}.app:has(.tricky-hud) .hand-guide{box-shadow:0 0 0 5px #ffd93d, 0 0 24px 6px #ffd93d99, var(--shadow)}.app:has(.tricky-hud) .key-finger{transform-box:fill-box;transform-origin:50%;animation:.9s ease-in-out infinite tricky-key}@keyframes tricky-finger{0%,to{transform:translate(-50%)scale(1)}50%{transform:translate(-50%)scale(1.15)}}@keyframes tricky-key{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.tricky-hud{z-index:3;box-shadow:var(--shadow);background:#ffffffe6;border-radius:999px;align-items:center;gap:8px;padding:6px 8px 6px 16px;display:flex;position:absolute;top:12px;right:16px}.tricky-hud-icon{font-size:40px}.tricky-skip{width:52px;height:52px;color:var(--muted);font:inherit;cursor:pointer;background:#eef1f7;border:0;border-radius:50%;font-size:24px;font-weight:800;box-shadow:0 3px #d5dbe8}.pass-slots{gap:4px;display:flex}.pass-slot.just .star-icon{animation:.6s cubic-bezier(.3,1.6,.5,1) sm-pop}.tricky-overlay{z-index:6;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#f3efffcc;place-items:center;display:grid;position:absolute;inset:0}.tricky-overlay.phase-pass{pointer-events:none}.tricky-card{box-shadow:var(--shadow);background:#fff;border:4px solid #c9b6ff;border-radius:30px;flex-direction:column;align-items:center;gap:14px;padding:20px 32px;animation:.45s ease-out both pop;display:flex}.tricky-title{color:#7a5cff;font-size:40px;font-weight:800}.tricky-notes{gap:10px;display:flex}.tricky-note{background:var(--note-color);width:70px;height:86px;animation:tricky-hop 1.8s ease-in-out calc(var(--i) * .14s) infinite;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;box-shadow:inset 0 -6px #0002}.tricky-note b{width:46px;height:46px;color:var(--ink);background:#fff;border-radius:50%;place-items:center;font-size:32px;font-weight:800;display:grid}.tricky-note small{color:#fff;text-shadow:0 1px #0004;font-size:15px;font-weight:800}@keyframes tricky-hop{0%,70%,to{transform:translateY(0)}80%{transform:translateY(-12px)}}.tricky-actions{align-items:center;gap:12px;display:flex}.tricky-actions .btn.big{margin-top:0;padding:14px 28px;font-size:24px}.tricky-pass,.tricky-won{flex-direction:column;align-items:center;display:flex;position:relative}.tricky-pass-buddy{font-size:90px;line-height:1;animation:.7s ease-in-out infinite mini-bounce}.tricky-pass-text{color:#7a5cff;font-size:44px;font-weight:800}.tricky-pass.again .tricky-pass-buddy{animation:.7s ease-in-out 2 wiggle}.tricky-burst{pointer-events:none;width:0;height:0;position:absolute;top:45%;left:50%}.tricky-burst i{font-size:36px;font-style:normal;animation:1.3s ease-out both tricky-ray;position:absolute;top:-18px;left:-18px}.tricky-burst.big i{font-size:40px;animation-duration:1.6s}@keyframes tricky-ray{0%{transform:rotate(var(--a)) translateY(0) scale(.3);opacity:1}70%{opacity:1}to{transform:rotate(var(--a)) translateY(-170px) scale(1.2);opacity:0}}.buddy-crown{filter:drop-shadow(0 2px 2px #0003);pointer-events:none;font-size:30px;line-height:1;animation:.5s ease-out both pop;position:absolute;top:-16px;left:30px;translate:-50%}.all-gold{z-index:9;background:radial-gradient(circle,#fff6c2,#ffd23f 55%,#f0a800);place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.all-gold-rays{background:repeating-conic-gradient(from 0deg, #fff5 0 10deg, transparent 10deg 20deg);width:1600px;height:1600px;margin:-800px 0 0 -800px;animation:30s linear infinite spin;position:absolute;top:50%;left:50%}@keyframes spin{to{transform:rotate(360deg)}}.all-gold-ring{width:0;height:0;position:absolute;top:50%;left:50%}.all-gold-ring>span{animation:gold-ring 1.2s cubic-bezier(.3, 1.3, .5, 1) var(--d) both;position:absolute;top:-28px;left:-28px}@keyframes gold-ring{0%{opacity:0;transform:translate(0)scale(0)rotate(-90deg)}to{transform:translate(var(--x), var(--y)) scale(1);opacity:1}}.all-gold .btn.all-gold-ok{padding:10px 40px;font-size:44px}.all-gold-center{flex-direction:column;align-items:center;gap:10px;display:flex;position:relative}.all-gold-buddy{margin-top:40px;font-size:130px;line-height:1;position:relative}.all-gold-crown{opacity:0;font-size:96px;transition:transform .9s cubic-bezier(.3,1.5,.5,1),opacity .3s;position:absolute;top:-60px;left:50%;transform:translateY(-500px)rotate(-30deg)}.all-gold-buddy.crowned .all-gold-crown{opacity:1;transform:none}.all-gold-buddy.crowned .all-gold-face{animation:.7s ease-in-out .9s infinite mini-bounce;display:inline-block}.all-gold-text{color:#7a4a00;text-shadow:0 3px #fff8;text-align:center;max-width:640px;font-size:38px;font-weight:800}@media (prefers-reduced-motion:reduce){.star-icon .star-gold,.sm-star,.all-gold-crown{transition:none}.sm-star.full .star-icon,.sm-burst,.results *,.tricky-overlay *,.tricky-hud *,.all-gold *,.tier-sticker-shine{animation:none!important}.app:has(.tricky-hud) .note-finger{animation:none!important}.app:has(.tricky-hud) .key-finger{animation:none!important}.sm-burst,.tricky-burst,.all-gold-rays{display:none}.all-gold-ring>span{transform:translate(var(--x), var(--y))}}.pj{flex-direction:column;align-items:center;gap:2px;display:flex}.pj-stage{width:200px;height:220px;position:relative}.pj-glass{width:100%;height:100%;position:absolute;inset:0}.pj-body{fill:#e8f4ff;fill-opacity:.55;stroke:#9cc3e6;stroke-width:5px}.pj-lid{fill:#f4b942;stroke:#d89a1f;stroke-width:4px}.pj-note{opacity:0;font-size:34px;font-weight:700;line-height:1;position:absolute}.pj.go .pj-note{opacity:1;animation:pj-drop .76s cubic-bezier(.4, 0, .9, .6) calc(var(--i) * .17s) backwards}.pj.still .pj-note{opacity:1;animation:none}@keyframes pj-drop{0%{opacity:0;transform:translateY(-190px)}25%{opacity:1}to{opacity:1;transform:none}}.pj-count{color:var(--muted);font-size:26px;font-weight:800}.pn{flex-direction:column;align-items:center;line-height:1;display:flex}.pn-value{color:var(--primary);font-variant-numeric:tabular-nums;text-shadow:0 4px #fff;font-size:clamp(72px,17vmin,132px);font-weight:800}.pn-label{color:var(--muted);margin-top:2px;font-size:clamp(20px,3.4vmin,28px);font-weight:700}.great-badge{color:#8a5a00;text-align:center;white-space:nowrap;opacity:0;background:#fff3c4;border:3px solid #f0b800;border-radius:999px;margin-top:8px;padding:4px 18px;font-size:clamp(20px,3.6vmin,28px);font-weight:800;transform:translateY(8px)}.great-badge.go{opacity:1;transition:opacity .5s .9s,transform .5s .9s;transform:none}.my-points{color:var(--ink);white-space:nowrap;background:#f4f6ff;border-radius:999px;align-items:center;gap:8px;padding:4px 16px;font-size:clamp(18px,3vmin,24px);font-weight:700;display:inline-flex}.my-points b{color:var(--primary);font-variant-numeric:tabular-nums;font-size:1.15em}.my-points-icon{font-size:1.2em}.song-mark{color:#1f8f53;background:#e3f6ea;border-radius:50%;place-items:center;width:26px;height:26px;margin-top:2px;font-size:16px;font-weight:800;line-height:1;display:inline-grid}.song-mark.great{color:#8a5a00;background:#ffe98a;box-shadow:0 0 8px #ffd23f99}.results-points{flex-direction:column;align-items:center;display:flex}.results-retry{color:var(--ink);text-align:center;font-size:clamp(20px,3.4vmin,26px);font-weight:700}.results-lifetime{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.results-milestone{cursor:pointer;font:inherit;color:#1f6f43;background:#e3f6ea;border:0;border-radius:999px;align-items:center;gap:8px;min-height:44px;padding:4px 16px 4px 8px;font-size:clamp(18px,3vmin,22px);font-weight:800;display:inline-flex}.results-milestone-emoji{font-size:30px;line-height:1}.results-easy{color:var(--ink);background:#f4f6ff;border-radius:22px;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:6px 8px 6px 18px;font-size:clamp(18px,3vmin,22px);font-weight:700;display:flex}.results-easy .btn{min-height:var(--tap,44px);margin-top:0;padding:8px 18px;font-size:clamp(18px,3vmin,22px)}@media (prefers-reduced-motion:reduce){.pj-note{opacity:1;animation:none!important}.great-badge.go{transition:none}}.panel-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.lh-ns-note{color:#f0a800;text-shadow:0 3px #fff;font-size:56px;font-weight:800;line-height:1}.panel-title{min-width:0}.panel-meta .my-points{max-width:100%}@media (height>=521px) and (height<=900px){.pj-stage{transform-origin:top;margin-bottom:-62px;transform:scale(.72)}}.btn.big.end-next{color:#fff;background:#17803f;min-height:60px;padding:14px 32px;font-size:26px;box-shadow:0 5px #0f5f2d}.btn.big.end-next:active{box-shadow:0 1px #0f5f2d}.btn.big.end-again{color:#1d3a8a;background:#fffaf0;border:3px solid #5b7cfa;padding:11px 24px;box-shadow:0 4px #b9c7f5}.btn.big.end-again:active{box-shadow:0 1px #b9c7f5}.btn.big.end-extra{color:#0d4d3f;background:#e2f6ef;border:3px solid #4bb59a;box-shadow:0 3px #a9dccd}.btn.big.end-extra:active{box-shadow:0 1px #a9dccd}.results-actions .btn.big.end-next{padding:14px 32px;font-size:26px}.results-actions .btn.big.end-again{padding:11px 24px;font-size:24px}.finale-actions .btn.big.end-next{min-height:60px;padding:12px 30px;font-size:26px}.finale-actions .btn.big.end-again{color:#1d3a8a;background:#fffaf0;min-height:56px;padding:9px 24px;font-size:24px;box-shadow:0 4px #b9c7f5}.results-easy .btn.big.end-extra{padding:6px 18px}@media (height<=520px){.results-actions .btn.big.end-next,.finale-actions .btn.big.end-next{min-height:48px;padding:8px 20px;font-size:20px}.results-actions .btn.big.end-again,.finale-actions .btn.big.end-again{min-height:44px;padding:6px 14px;font-size:18px}}.map-art{display:block;overflow:visible}.map-art [class*=ma-]{transform-box:fill-box;transform-origin:50%}.map-art .ma-sway{transform-origin:50% 100%;animation:3.6s ease-in-out infinite alternate ma-sway}.map-art .ma-bob{animation:2.4s ease-in-out infinite ma-bob}.map-art .ma-hop{transform-origin:50% 100%;animation:1.8s ease-in-out infinite ma-hop}.map-art .ma-float{animation:4s ease-in-out infinite ma-float}.map-art .ma-flutter{animation:.5s ease-in-out infinite alternate ma-flutter}.map-art .ma-twinkle{animation:2.2s ease-in-out infinite ma-twinkle}.map-art .ma-swim{animation:5s ease-in-out infinite alternate ma-swim}.map-art .ma-wave{transform-origin:0%;animation:1.6s ease-in-out infinite alternate ma-wave}.map-art .ma-spin{animation:24s linear infinite ma-spin}.map-art .ma-spin-slow{transform-box:view-box;animation:18s linear infinite ma-spin}.map-art .ma-glow{animation:2.6s ease-in-out infinite ma-glow}.map-art .ma-steam{animation:3s ease-in-out infinite ma-steam}.map-art .ma-fall{animation:4s ease-in-out infinite ma-fall}.map-art .ma-fall-water{animation:.9s linear infinite ma-fall-water}.map-art .ma-ping{transform-origin:0 100%;animation:1.6s ease-out infinite ma-ping}.map-art .d2{animation-delay:-.8s}.map-art .d3{animation-delay:-1.5s}@keyframes ma-sway{0%{transform:rotate(-2.5deg)}to{transform:rotate(2.5deg)}}@keyframes ma-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes ma-hop{0%,60%,to{transform:translateY(0)scale(1)}70%{transform:translateY(0)scale(1.06,.94)}82%{transform:translateY(-6px)scale(.97,1.04)}}@keyframes ma-float{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-4px)rotate(2deg)}}@keyframes ma-flutter{0%{transform:scaleX(1)}to{transform:scaleX(.55)}}@keyframes ma-twinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.8)}}@keyframes ma-swim{0%{transform:translate(-4px)}to{transform:translate(4px)}}@keyframes ma-wave{0%{transform:skewY(-4deg)}to{transform:skewY(4deg)}}@keyframes ma-spin{to{transform:rotate(360deg)}}@keyframes ma-glow{0%,to{opacity:1}50%{opacity:.7}}@keyframes ma-steam{0%{opacity:.75;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-10px)scale(1.3)}}@keyframes ma-fall{0%{opacity:0;transform:translateY(-8px)}30%,70%{opacity:1}to{opacity:0;transform:translateY(6px)}}@keyframes ma-fall-water{0%{transform:translateY(-4px)}to{transform:translateY(4px)}}@keyframes ma-ping{0%{opacity:0;transform:scale(.6)}40%{opacity:1}to{opacity:0;transform:scale(1.1)}}.map-ground{pointer-events:none;position:absolute;inset:0;overflow:hidden}.map-decor{opacity:.9;height:auto;position:absolute;transform:translate(-50%,-50%)}.map-trail{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.map-reduced .map-art *{animation:none!important}@media (prefers-reduced-motion:reduce){.map-art *{animation:none!important}}.app.world-ninja{--primary:#ff4f6d;--primary-dark:#d93a57}.app.world-ninja .panel{border-color:#ffb347}.app.world-ninja .stage.dark .overlay{background:#120c2c4d}.app.world-ninja .stage .teacher{top:18px;left:10px}.app.world-ninja .stage .teacher-avatar{width:104px;height:112px;box-shadow:none;--jump:-30px;background:0 0;border-radius:0;overflow:visible}.app.world-ninja .teacher-bubble{border:3px solid #ffb347}.app.world-ninja .stage .hand-guide{width:128px;padding:4px 4px 6px;top:132px}.app.world-ninja .stage .hand-svg{width:116px}.app.world-ninja .stage .hand-cue{font-size:17px}.app.world-ninja .stage .hand-cue b{font-size:24px}@media (width<=900px){.app.world-ninja .stage .hand-guide{width:96px;top:128px}.app.world-ninja .stage .hand-svg{width:86px}.app.world-ninja .stage .hand-cue{font-size:13px}.app.world-ninja .stage .hand-cue b{font-size:18px}}.app.world-space{--primary:#2fa8e0;--primary-dark:#1d84b8}.app.world-space .panel{border-color:#4dd2ff}.app.world-space .stage.dark .overlay{background:#050a2e4d}.app.world-space .stage .teacher{top:18px;left:10px}.app.world-space .stage .teacher-avatar{width:104px;height:112px;box-shadow:none;--jump:-30px;background:0 0;border-radius:0;overflow:visible}.app.world-space .teacher-bubble{border:3px solid #4dd2ff}.app.world-space .stage .hand-guide{width:128px;padding:4px 4px 6px;top:132px}.app.world-space .stage .hand-svg{width:116px}.app.world-space .stage .hand-cue{font-size:17px}.app.world-space .stage .hand-cue b{font-size:24px}@media (width<=900px){.app.world-space .stage .hand-guide{width:96px;top:128px}.app.world-space .stage .hand-svg{width:86px}.app.world-space .stage .hand-cue{font-size:13px}.app.world-space .stage .hand-cue b{font-size:18px}}.app.world-dinosaurs{--primary:#3fbf6a;--primary-dark:#2f9a52}.app.world-dinosaurs .panel{border-color:#ff9f5a}.app.world-dinosaurs .stage.dark .overlay{background:#2a1a0c4d}.app.world-dinosaurs .stage .teacher{top:18px;left:10px}.app.world-dinosaurs .stage .teacher-avatar{width:104px;height:114px;box-shadow:none;--jump:-30px;background:0 0;border-radius:0;overflow:visible}.app.world-dinosaurs .teacher-bubble{border:3px solid #3fbf6a}.app.world-dinosaurs .stage .hand-guide{width:128px;padding:4px 4px 6px;top:132px}.app.world-dinosaurs .stage .hand-svg{width:116px}.app.world-dinosaurs .stage .hand-cue{font-size:17px}.app.world-dinosaurs .stage .hand-cue b{font-size:24px}@media (width<=900px){.app.world-dinosaurs .stage .hand-guide{width:96px;top:128px}.app.world-dinosaurs .stage .hand-svg{width:86px}.app.world-dinosaurs .stage .hand-cue{font-size:13px}.app.world-dinosaurs .stage .hand-cue b{font-size:18px}}.world-hitfx-clip{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:clip}.world-hitfx-view{pointer-events:none;position:absolute;top:0;bottom:0}.world-intro{z-index:58;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:opacity .42s ease-in;animation:.2s ease-out both wi-in;position:fixed;inset:0;overflow:hidden}.world-intro.leaving{opacity:0}.world-intro.reduced{animation:.5s ease-out both wi-in}@keyframes wi-in{0%{opacity:0}}.world-intro-x{z-index:6;position:absolute;top:18px;right:18px}.world-intro-skip{z-index:5;pointer-events:none;color:#ffffffa0;font-size:15px;font-weight:600;position:absolute;bottom:14px;right:18px}.world-picker{flex-direction:column;gap:8px;display:flex}.world-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.world-tile{cursor:pointer;min-height:96px;font:inherit;color:#fff;text-shadow:0 2px #0004;background:linear-gradient(160deg, var(--tile-a,#fff), var(--tile-b,#f2f4fb));border:4px solid #0000;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:10px 8px;transition:transform .12s ease-out;display:flex;position:relative;box-shadow:0 4px #0002}.world-tile:active{transform:scale(.96)}.world-tile:first-child{color:var(--ink);text-shadow:none;border:3px dashed #c9cfe0}.world-tile.on{border:4px solid var(--primary);box-shadow:0 0 0 3px #fff, 0 0 0 6px var(--primary)}.world-tile.light{color:#2b2d42;text-shadow:0 1px #fff8}.world-tile.soon{opacity:.55;filter:grayscale(.35);cursor:default}.world-tile-emoji{text-shadow:none;font-size:34px;line-height:1}.world-tile-name{font-size:18px;font-weight:700}.world-tile-hint{opacity:.8;font-size:12px;font-weight:600}.world-tile-badge{color:#6c7a93;text-shadow:none;background:#fff;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;position:absolute;top:6px;right:6px}.dino-scene{contain:strict;position:absolute;inset:0;overflow:hidden}.dn-sky{position:absolute;inset:0}.dn-sun{background:radial-gradient(circle,#fffbe0 0 45%,#ffe27a 62%,#ffd23f00 72%);border-radius:50%;width:104px;height:104px;position:absolute;top:8%;right:14%}.dn-sun:after{content:"";background:radial-gradient(circle,#fff1b066 0%,#fff1b000 70%);border-radius:50%;animation:5s ease-in-out infinite alternate dn-halo;position:absolute;inset:-60px}@keyframes dn-halo{0%{opacity:.6;transform:scale(.95)}to{opacity:1;transform:scale(1.06)}}.dn-volcano{pointer-events:none;width:380px;position:absolute;bottom:150px;left:50%}.dn-volcano svg{width:100%;height:auto;display:block}.dn-smoke{opacity:.5;background:radial-gradient(circle,#ffffffd0 0 40%,#f4e8f000 70%);border-radius:50%;width:64px;height:64px;margin:-32px 0 0 -32px;animation:5.4s linear infinite dn-smoke;position:absolute;top:14%;left:50%}@keyframes dn-smoke{0%{opacity:0;transform:translate(0,0)scale(.4)}20%{opacity:.85}to{opacity:0;transform:translate(36px,-150px)scale(1.8)}}.dn-clouds{pointer-events:none;position:absolute;inset:0 0 40%;overflow:hidden}.dn-clouds i{opacity:.9;width:170px;height:72px;transform:translate3d(var(--x,20vw), 0, 0) scale(var(--s,1));background:radial-gradient(circle at 52px 46px,#fff 0 22px,#0000 23px),radial-gradient(circle at 92px 36px,#fff 0 30px,#0000 31px),radial-gradient(circle at 132px 48px,#fff 0 20px,#0000 21px),radial-gradient(66px 14px at 90px 56px,#fff 0 98%,#0000 100%);animation:linear infinite dn-cloud;position:absolute;left:0}@keyframes dn-cloud{0%{transform:translate3d(-25vw, 0, 0) scale(var(--s,1))}to{transform:translate3d(115vw, 0, 0) scale(var(--s,1))}}.dn-layer{will-change:transform;pointer-events:none;background-repeat:repeat-x;position:absolute;left:0}.dn-hills{background-size:1200px 220px;width:calc(100% + 1200px);height:220px;bottom:40px}.dn-cycads{background-size:1100px 200px;width:calc(100% + 1100px);height:200px;bottom:44px}.dn-ground{background-size:960px 60px;width:calc(100% + 960px);height:60px;bottom:0}.dn-longneck{pointer-events:none;width:150px;animation:90s linear -40s infinite dn-stroll;position:absolute;bottom:138px;left:40%}.dn-longneck .dn-friend,.dnf-dino .dn-friend{width:100%;height:auto;display:block;overflow:visible}@keyframes dn-stroll{0%{transform:translate(-75vw)}to{transform:translate(75vw)}}.dn-leg{transform-box:fill-box;transform-origin:50% 0;animation:.9s ease-in-out infinite alternate dn-step}.dn-leg.b{animation-delay:-.45s}@keyframes dn-step{0%{transform:rotate(-9deg)}to{transform:rotate(9deg)}}.dn-neck{transform-box:view-box;transform-origin:134px 86px;animation:3.6s ease-in-out infinite alternate dn-neck}@keyframes dn-neck{0%{transform:rotate(-3deg)}to{transform:rotate(4deg)}}.dn-gliders{pointer-events:none;position:absolute;inset:0;overflow:hidden}.dn-glider{opacity:0;width:100px;animation:24s linear infinite dn-glide;position:absolute;left:0}.dn-glider svg{width:100%;height:auto;display:block;overflow:visible}@keyframes dn-glide{0%{opacity:0;transform:translate(-12vw,20px)}2%{opacity:1}38%{opacity:1;transform:translate(112vw,-30px)}40%,to{opacity:0;transform:translate(112vw,-30px)}}.dn-wing{transform-box:fill-box;animation:.9s ease-in-out infinite alternate dn-flap}.dn-wing.a{transform-origin:100% 80%}.dn-wing.b{transform-origin:0 80%}@keyframes dn-flap{0%{transform:scaleY(1)}to{transform:scaleY(.45)}}.dn-leaves{pointer-events:none;position:absolute;inset:0;overflow:hidden}.dn-leaves i{will-change:transform;border-radius:15px 1px;width:15px;height:9px;animation:linear infinite dn-leaf;position:absolute;top:-24px}@keyframes dn-leaf{0%{transform:translate3d(0, 0, 0) rotate(0deg) scale(var(--s,1))}to{transform:translate3d(var(--dx,-200px), 640px, 0) rotate(var(--spin,540deg)) scale(var(--s,1))}}.dn-hits{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.dn-hit{width:0;height:0;position:absolute;bottom:8px}.dn-hit>*{position:absolute;top:0;left:0}.dn-hit-ring{border:4px solid var(--c);width:96px;height:34px;box-shadow:0 0 10px var(--c);border-radius:50%;margin:-17px 0 0 -48px;animation:.56s ease-out both dn-ring}.dn-hit-dust{background:radial-gradient(circle,#fff6e0 0 40%,#e8d2a800 72%);border-radius:50%;width:46px;height:30px;margin:-18px 0 0 -23px;animation:.6s ease-out both dn-dust}.dn-hit-dust.l{--dx:-54px}.dn-hit-dust.r{--dx:54px}.dn-hit-print{filter:drop-shadow(0 0 6px #fff)drop-shadow(0 2px #0003);width:60px;height:68px;margin:-70px 0 0 -30px;animation:.64s cubic-bezier(.3,1.4,.5,1) both dn-stamp}.dn-hit-print svg{width:100%;height:100%;display:block}.dn-hit-leaf{width:20px;height:20px;margin:-10px 0 0 -10px;animation:.64s cubic-bezier(.15,.8,.3,1) both dn-leaf-burst;overflow:visible}@keyframes dn-ring{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(2)}}@keyframes dn-dust{0%{opacity:.95;transform:translate(0)scale(.4)}to{opacity:0;transform:translateX(var(--dx)) scale(1.5)}}@keyframes dn-stamp{0%{opacity:0;transform:rotate(var(--r)) scale(1.9)}30%{opacity:1;transform:rotate(var(--r)) scale(.9)}45%{transform:rotate(var(--r)) scale(1)}75%{opacity:1}to{opacity:0;transform:rotate(var(--r)) scale(1)}}@keyframes dn-leaf-burst{0%{opacity:1;transform:rotate(var(--a)) translateX(0) scale(.4)}70%{opacity:1}to{opacity:0;transform:rotate(var(--a)) translateX(var(--d)) scale(1) rotate(240deg)}}.db{width:100%;height:100%;position:relative}.db-move{transform-origin:50% 92%;width:100%;height:100%;position:relative}.db-svg{width:100%;height:100%;display:block;overflow:visible}.db-body{transform-box:view-box;transform-origin:60px 122px;animation:2.8s ease-in-out infinite alternate db-sway}.db-tail{transform-box:view-box;transform-origin:92px 92px;animation:.6s ease-in-out infinite alternate db-wag}.db-eyes{transform-box:fill-box;transform-origin:50%;animation:4.6s ease-in-out infinite db-blink}.db-antenna{animation:1.2s ease-in-out infinite alternate db-light}.db-arm{transform-box:view-box}.db-arm-r.waving{transform-origin:103px 86px;animation:.42s ease-in-out infinite alternate db-wave}@keyframes db-sway{0%{transform:rotate(-2deg)}to{transform:rotate(2deg)}}@keyframes db-wag{0%{transform:rotate(-10deg)}to{transform:rotate(12deg)}}@keyframes db-blink{0%,90%,to{transform:scaleY(1)}94%{transform:scaleY(.1)}}@keyframes db-light{0%{opacity:.45}to{opacity:1}}@keyframes db-wave{0%{transform:translate(2px,-28px)rotate(-10deg)}to{transform:translate(6px,-36px)rotate(16deg)}}.db-stomp{animation:.44s ease-out both db-stomp}@keyframes db-stomp{0%{transform:none}32%{transform:translateY(-15px)scale(.96,1.05)}60%{transform:translateY(0)scale(1.1,.88)}80%{transform:scale(.98,1.02)}to{transform:none}}.db-dust{pointer-events:none;height:0;position:absolute;bottom:2%;left:0;right:0}.db-dust i{background:radial-gradient(circle,#fff6e0 0 42%,#e8d2a800 72%);border-radius:50%;width:26px;height:18px;margin-left:-13px;animation:.52s ease-out .18s both db-dust;position:absolute;bottom:0}.db-dust i:first-child{--dx:-18px;left:26%}.db-dust i:nth-child(2){--dx:0px;left:50%}.db-dust i:nth-child(3){--dx:18px;left:74%}@keyframes db-dust{0%{opacity:.95;transform:translate(0)scale(.4)}to{opacity:0;transform:translate(var(--dx), -8px) scale(1.5)}}.db-roar{animation:1s cubic-bezier(.3,.7,.4,1) both db-roar}@keyframes db-roar{0%{transform:none}18%{transform:translateY(4px)scale(1.06,.94)}45%{transform:translateY(-12px)rotate(-6deg)scale(1.08)}72%{transform:translateY(-2px)rotate(3deg)}to{transform:none}}.db-waves path{fill:none;stroke:#fff;stroke-width:3px;stroke-linecap:round;transform-box:view-box;transform-origin:60px 80px;animation:.9s ease-out both db-waves}.db-waves path:nth-child(2n){animation-delay:.12s}@keyframes db-waves{0%{opacity:0;transform:scale(.7)}30%{opacity:1}to{opacity:0;transform:scale(1.25)}}.db-rawr{pointer-events:none;width:40px;height:30px;position:absolute;top:18%;right:-16px}.db-rawr i{color:#fff;text-shadow:0 0 6px #3fbf6a,0 2px #2f8a44;font-size:22px;font-style:normal;font-weight:800;animation:1s ease-out both db-note;position:absolute;top:0}.db-rawr i:first-of-type{animation-delay:.15s;left:0}.db-rawr i:nth-of-type(2){color:#ffe27a;animation-delay:.32s;left:20px}@keyframes db-note{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(10px,-40px)}}.db-nod{animation:.9s ease-in-out both db-nod}@keyframes db-nod{0%,to{transform:none}25%{transform:rotate(-8deg)translateY(2px)}55%{transform:rotate(6deg)}80%{transform:rotate(-3deg)}}.db-heart{color:#ff6f91;text-shadow:0 0 8px #fff;pointer-events:none;font-size:26px;animation:1.1s ease-out both db-heart;position:absolute;top:-4px;right:-6px}@keyframes db-heart{0%{opacity:0;transform:translateY(8px)scale(.4)}25%{opacity:1;transform:translateY(0)scale(1.15)}to{opacity:0;transform:translateY(-34px)scale(1)}}.dnf{position:absolute;inset:0;overflow:hidden}.dnf-volcano{width:min(32vw,320px);position:absolute;bottom:10%;right:5%}.dnf-volcano .dn-volcano{width:100%;position:relative;bottom:auto;left:auto}.dnf-confetti{opacity:0;border-radius:3px;width:12px;height:12px;margin:-6px 0 0 -6px;animation:2.2s ease-out infinite dnf-pop;position:absolute;top:14%;left:50%}@keyframes dnf-pop{0%{opacity:1;transform:translate(0,0)scale(.3)rotate(0)}70%{opacity:1}to{opacity:0;transform:translate3d(var(--dx), var(--dy), 0) scale(1.1) rotate(540deg)}}.dnf-ground{width:100%;height:14%;position:absolute;bottom:0;left:0}.dnf-dino{animation-name:dnf-walk,dnf-bob;animation-duration:1.7s,.5s;animation-timing-function:cubic-bezier(.2,.8,.3,1),ease-in-out;animation-iteration-count:1,infinite;animation-direction:normal,alternate;animation-fill-mode:both,none;position:absolute;bottom:5%}@keyframes dnf-walk{0%{transform:translate(-75vw)}}@keyframes dnf-bob{0%{transform:translate(0,0)}to{transform:translateY(-8px)}}.dni{position:absolute;inset:0;overflow:hidden}.dni-sky{position:absolute;inset:0}.dni-volcano{width:min(30vw,320px);position:absolute;bottom:17%;left:6%}.dni-volcano .dn-volcano{width:100%;position:relative;bottom:auto;left:auto}.dni-ground{width:100%;height:24%;position:absolute;bottom:0;left:0}.dni-title{text-align:center;color:#fff;pointer-events:none;z-index:3;position:absolute;top:13%;left:0;right:0}.dni-lead{color:#6a3a1c;text-shadow:0 2px #fff8;font-size:clamp(26px,3.6vw,40px);font-weight:700;animation:.5s ease-out 1.1s both dni-rise}.dni-place{color:#fff;letter-spacing:1px;text-shadow:0 0 #3fbf6a,0 6px #2f8a44,0 0 30px #ff7a3d88;-webkit-text-stroke:3px #2f8a44;paint-order:stroke fill;font-size:clamp(54px,9vw,108px);font-weight:800;line-height:1.05}.dni-place span{animation:dni-pop .52s cubic-bezier(.2, 1.7, .4, 1) calc(1.25s + var(--i) * 45ms) both;display:inline-block}@keyframes dni-rise{0%{opacity:0;transform:translateY(16px)}}@keyframes dni-pop{0%{opacity:0;transform:translateY(30px)scale(.3)rotate(-12deg)}}.dni-stage{z-index:2;width:220px;height:270px;margin-left:-110px;position:absolute;bottom:7%;left:50%}.dni-egg-front,.dni-egg-top{transform-origin:50% 100%;width:180px;margin-left:-90px;position:absolute;bottom:0;left:50%}.dni-egg-front svg,.dni-egg-top svg{width:100%;height:auto;display:block;overflow:visible}.dni-egg-front{z-index:2;animation:1.1s ease-in-out .15s both dni-wobble}.dni-egg-top{z-index:3;animation:1.1s ease-in-out .15s both dni-wobble,.7s cubic-bezier(.3,.7,.5,1) 1.3s forwards dni-lid}.dn-egg-crack{opacity:0;animation:.25s ease-out .85s forwards dni-crack}.hatched .dn-egg-crack{opacity:1}@keyframes dni-wobble{0%,to{transform:rotate(0)}15%{transform:rotate(-7deg)}30%{transform:rotate(6deg)}45%{transform:rotate(-5deg)}60%{transform:rotate(4deg)}75%{transform:rotate(-2deg)}}@keyframes dni-crack{to{opacity:1}}@keyframes dni-lid{to{opacity:0;transform:translate(-70px,-230px)rotate(-50deg)}}.dni-buddy{z-index:1;width:168px;height:185px;margin-left:-84px;animation:.65s cubic-bezier(.3,1.5,.5,1) 1.35s both dni-hatch;position:absolute;bottom:92px;left:50%}@keyframes dni-hatch{0%{opacity:0;transform:translateY(80px)scale(.5)}60%{opacity:1;transform:translateY(-26px)scale(1.05)}to{opacity:1;transform:none}}.dni-hi{white-space:nowrap;z-index:4;color:#2b2d42;background:#fff;border-radius:22px 22px 22px 6px;padding:10px 20px;font-size:30px;font-weight:700;animation:.5s cubic-bezier(.2,1.6,.4,1) 1.8s both dni-pop;position:absolute;top:0;left:90%;box-shadow:0 8px 24px #0004}@media (prefers-reduced-motion:reduce){.dino-scene *,.dino-scene :after,.db *,.db-move,.dnf *,.dni *,.dni :after{animation:none!important}.dn-leaves,.dn-gliders,.db-dust,.dnf-confetti,.dn-smoke{display:none}.db-heart,.db-rawr,.db-waves{animation:1.1s ease-out both dn-calm!important}.dn-hit>*{animation:.4s ease-out both dn-calm!important}.dn-hit-leaf,.dn-hit-dust{display:none}}@keyframes dn-calm{0%{opacity:1}to{opacity:0}}.ninja-scene{contain:strict;position:absolute;inset:0;overflow:hidden}.nj-sky{position:absolute;inset:0}.nj-starfield{opacity:.85;background-size:600px 300px;position:absolute;inset:0 0 35%}.nj-stars{pointer-events:none;position:absolute;inset:0}.nj-stars i{background:#fff;border-radius:50%;width:4px;height:4px;animation:3s ease-in-out infinite nj-twinkle;position:absolute;box-shadow:0 0 6px 1px #fff8,0 0 12px #ffe7a399}@keyframes nj-twinkle{0%,to{opacity:.25}50%{opacity:1}}.nj-moon-wrap{width:118px;height:118px;position:absolute;top:7%;right:17%}.nj-moon{filter:drop-shadow(0 0 18px #ffe7a3aa);width:100%;height:100%;position:absolute;inset:0}.nj-moon-halo{background:radial-gradient(circle,#ffe7a355 0%,#ffe7a322 38%,#ffe7a300 70%);border-radius:50%;animation:5s ease-in-out infinite alternate nj-halo;position:absolute;inset:-70px}@keyframes nj-halo{0%{opacity:.65;transform:scale(.95)}to{opacity:1;transform:scale(1.05)}}.nj-mist{pointer-events:none;background:linear-gradient(#9a4a7c00,#c0679055 70%,#9a4a7c33);height:170px;position:absolute;bottom:40px;left:0;right:0}.nj-layer{will-change:transform;pointer-events:none;background-repeat:repeat-x;position:absolute;left:0}.nj-mountains{opacity:.95;background-size:1200px 240px;width:calc(100% + 1200px);height:240px;bottom:46px}.nj-pagodas{background-size:1050px 195px;width:calc(100% + 1050px);height:195px;bottom:50px}.nj-rooftop{background-size:240px 60px;width:calc(100% + 240px);height:60px;bottom:0}.nj-lanterns{will-change:transform;pointer-events:none;width:3200px;height:130px;position:absolute;top:0;left:0}.nj-string-tile{height:130px;position:absolute;top:0}.nj-rope{width:100%;height:60px;position:absolute;top:0;left:0}.nj-lantern{width:var(--sz,50px);margin-left:calc(var(--sz,50px) / -2);transform-origin:50% 0;animation:3.2s ease-in-out infinite alternate nj-sway;position:absolute}.nj-lantern-svg{width:100%;height:auto;display:block;overflow:visible}@keyframes nj-sway{0%{transform:rotate(-5deg)}to{transform:rotate(5deg)}}.nj-petals,.nj-fireflies{pointer-events:none;position:absolute;inset:0;overflow:hidden}.nj-petals i{will-change:transform;background:linear-gradient(135deg,#ffd6e7,#ff9cc2);border-radius:13px 1px;width:13px;height:10px;animation:linear infinite nj-petal;position:absolute;top:-24px}@keyframes nj-petal{0%{transform:translate3d(0, 0, 0) rotate(0deg) scale(var(--s,1))}to{transform:translate3d(var(--dx,-200px), 640px, 0) rotate(var(--spin,540deg)) scale(var(--s,1))}}.nj-fireflies i{background:#fff6a8;border-radius:50%;width:6px;height:6px;animation-name:nj-wander,nj-blink;animation-timing-function:ease-in-out,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:alternate,alternate;position:absolute;box-shadow:0 0 8px 3px #fff27a88}@keyframes nj-wander{0%{transform:translate(0)}33%{transform:translate(40px,-24px)}66%{transform:translate(-20px,-46px)}to{transform:translate(30px,-10px)}}@keyframes nj-blink{0%{opacity:.15}to{opacity:1}}.nj-branch{aspect-ratio:320/190;transform-origin:100% 0;filter:drop-shadow(0 4px 6px #0004);background-repeat:no-repeat;background-size:100% 100%;width:min(30vw,320px);animation:7s ease-in-out infinite alternate nj-branch;position:absolute;top:-12px;right:-14px}@keyframes nj-branch{0%{transform:rotate(-2deg)}to{transform:rotate(1.5deg)}}.nj-hits{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.nj-hit{width:0;height:0;position:absolute;bottom:8px}.nj-hit>*{position:absolute;top:0;left:0}.nj-hit-flash{background:radial-gradient(circle, #fff 0%, var(--c) 30%, transparent 68%);border-radius:50%;width:120px;height:120px;margin:-60px 0 0 -60px;animation:.42s ease-out both nj-flash}.nj-hit-ring{border:5px solid var(--c);width:70px;height:70px;box-shadow:0 0 14px var(--c);border-radius:50%;margin:-35px 0 0 -35px;animation:.56s ease-out both nj-ring}.nj-hit-slash{width:170px;height:7px;box-shadow:0 0 12px var(--c), 0 0 24px var(--c);background:linear-gradient(90deg,#0000,#fff 25% 75%,#0000);border-radius:7px;margin:-3.5px 0 0 -85px;animation:.46s cubic-bezier(.2,.9,.3,1) both nj-slash}.nj-hit-slash.a{--r:-32deg}.nj-hit-slash.b{--r:32deg;animation-delay:70ms}.nj-hit-shard{width:22px;height:22px;margin:-11px 0 0 -11px;animation:.62s cubic-bezier(.15,.8,.3,1) both nj-shard}@keyframes nj-flash{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(1.5)}}@keyframes nj-ring{0%{opacity:1;transform:scale(.2)}to{opacity:0;transform:scale(2.4)}}@keyframes nj-slash{0%{opacity:1;transform:rotate(var(--r)) scaleX(0)}35%{opacity:1;transform:rotate(var(--r)) scaleX(1)}to{opacity:0;transform:rotate(var(--r)) scaleX(1.1) scaleY(.4)}}@keyframes nj-shard{0%{opacity:1;transform:rotate(var(--a)) translateX(0) scale(.4)}70%{opacity:1}to{opacity:0;transform:rotate(var(--a)) translateX(var(--d)) scale(1) rotate(200deg)}}.nb{width:100%;height:100%;position:relative}.nb-move{transform-origin:50% 92%;width:100%;height:100%;position:relative}.nb-svg{width:100%;height:100%;display:block;overflow:visible}.nb-body{transform-box:view-box;transform-origin:60px 122px;animation:2.6s ease-in-out infinite nb-breathe}.nb-eyes{transform-box:fill-box;transform-origin:50%;animation:4.6s ease-in-out infinite nb-blink}.nb-tails{transform-box:view-box;transform-origin:104px 55px;animation:.7s ease-in-out infinite alternate nb-flutter}.nb-antenna{animation:1.2s ease-in-out infinite alternate nj-blink}.nb-arm{transform-box:view-box}.nb-arm-r.waving{transform-origin:98px 92px;animation:.42s ease-in-out infinite alternate nb-wave}@keyframes nb-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.025,.97)}}@keyframes nb-blink{0%,90%,to{transform:scaleY(1)}94%{transform:scaleY(.1)}}@keyframes nb-flutter{0%{transform:rotate(-8deg)}to{transform:rotate(10deg)}}@keyframes nb-wave{0%{transform:translate(2px,-30px)rotate(-10deg)}to{transform:translate(8px,-38px)rotate(16deg)}}.nb-hop{animation:.34s ease-out both nb-hop}.nb-flip{animation:.82s cubic-bezier(.3,.7,.4,1) both nb-flip}.nb-nod{animation:.9s ease-in-out both nb-nod}@keyframes nb-hop{0%{transform:translateY(0)}40%{transform:translateY(-16px)scale(.96,1.05)}75%{transform:translateY(0)scale(1.06,.94)}to{transform:none}}@keyframes nb-flip{0%{transform:none}14%{transform:translateY(5px)scale(1.12,.88)}55%{transform:translateY(var(--jump,-58px)) rotate(-200deg)}84%{transform:translateY(-6px)rotate(-360deg)}92%{transform:translateY(3px)rotate(-360deg)scale(1.08,.92)}to{transform:rotate(-360deg)}}@keyframes nb-nod{0%,to{transform:none}25%{transform:rotate(-9deg)translateY(2px)}55%{transform:rotate(6deg)}80%{transform:rotate(-3deg)}}.nb-shuriken{pointer-events:none;width:30px;height:30px;animation:.9s ease-out both nb-shuriken;position:absolute;top:18%;left:62%}.nb-shuriken svg{filter:drop-shadow(0 0 6px #fff);width:100%;height:100%;display:block}@keyframes nb-shuriken{0%{opacity:0;transform:translate(0)rotate(0)scale(.4)}15%{opacity:1}to{opacity:0;transform:translate(110px,-40px)rotate(900deg)scale(1.1)}}.nb-sparkles{pointer-events:none;width:0;height:0;position:absolute;top:40%;left:50%}.nb-sparkles i{clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);background:#ffe7a3;width:14px;height:14px;margin:-7px 0 0 -7px;animation:.76s ease-out .26s both nb-sparkle;position:absolute}@keyframes nb-sparkle{0%{opacity:1;transform:rotate(var(--a)) translateX(10px) scale(.4)}to{opacity:0;transform:rotate(var(--a)) translateX(70px) scale(1.2)}}.nb-heart{color:#ff6f91;text-shadow:0 0 8px #fff;pointer-events:none;font-size:26px;animation:1.1s ease-out both nb-heart;position:absolute;top:-4px;right:-6px}@keyframes nb-heart{0%{opacity:0;transform:translateY(8px)scale(.4)}25%{opacity:1;transform:translateY(0)scale(1.15)}to{opacity:0;transform:translateY(-34px)scale(1)}}.njf{position:absolute;inset:0}.njf-lantern{width:var(--sz,50px);animation:linear both njf-rise;position:absolute;bottom:-110px}@keyframes njf-rise{0%{opacity:0;transform:translate(0,0)rotate(-4deg)}12%{opacity:1}to{opacity:.9;transform:translate3d(var(--drift,0), -115vh, 0) rotate(4deg)}}.njf-roof{width:100%;height:15%;position:absolute;bottom:0;left:0}.nji{position:absolute;inset:0;overflow:hidden}.nji-sky{position:absolute;inset:0}.nji-moon{position:absolute;top:9%;right:12%;transform:scale(1.25)}.nji-moon .nj-moon-wrap{position:relative;top:auto;right:auto}.nji-lanterns{justify-content:space-between;display:flex;position:absolute;top:0;left:6%;right:6%}.nji-lantern{transform-origin:50% 0;width:74px;animation:nji-drop .7s cubic-bezier(.3, 1.5, .5, 1) calc(.35s + var(--i) * .14s) both, nj-sway 2.8s ease-in-out 1.2s infinite alternate}.nji-lantern:nth-child(2){width:60px;margin-top:40px}@keyframes nji-drop{0%{transform:translateY(-160%)}}.nji-roof{width:100%;height:24%;position:absolute;bottom:0;left:0}.nji-title{text-align:center;color:#fff;pointer-events:none;position:absolute;top:17%;left:0;right:0}.nji-lead{opacity:.95;text-shadow:0 3px #0005;font-size:clamp(26px,3.6vw,40px);font-weight:600;animation:.5s ease-out 1s both nji-rise}.nji-place{color:#ffe7a3;letter-spacing:1px;text-shadow:0 0 22px #ff4f6d,0 5px #6a1630,0 0 46px #ff4f6d88;font-size:clamp(54px,9vw,108px);font-weight:800;line-height:1.05}.nji-place span{animation:nji-pop .52s cubic-bezier(.2, 1.7, .4, 1) calc(1.15s + var(--i) * 45ms) both;display:inline-block}@keyframes nji-rise{0%{opacity:0;transform:translateY(16px)}}@keyframes nji-pop{0%{opacity:0;transform:translateY(30px)scale(.3)rotate(-12deg)}}.nji-stage{width:230px;height:250px;margin-left:-115px;position:absolute;bottom:9%;left:50%}.nji-buddy{animation:.65s cubic-bezier(.25,1.4,.5,1) .45s both nji-buddy;position:absolute;inset:0}@keyframes nji-buddy{0%{transform:translateY(-130vh)}70%{transform:translateY(0)scale(1.12,.86)}to{transform:none}}.nji-puff{opacity:0;background:radial-gradient(at 30% 60%,#fff 0 22%,#0000 23%),radial-gradient(at 70% 60%,#fff 0 24%,#0000 25%),radial-gradient(at 50% 40%,#fff 0 28%,#0000 29%);border-radius:50%;width:300px;height:140px;margin-left:-150px;animation:.9s ease-out .95s both nji-puff;position:absolute;bottom:0;left:50%}@keyframes nji-puff{0%{opacity:.9;transform:scale(.3)}to{opacity:0;transform:scale(1.5)}}.nji-hi{white-space:nowrap;color:#2b2d42;background:#fff;border-radius:22px 22px 22px 6px;padding:10px 20px;font-size:30px;font-weight:700;animation:.5s cubic-bezier(.2,1.6,.4,1) 1.15s both nji-pop;position:absolute;top:6%;left:92%;box-shadow:0 8px 24px #0006}.nji-door{z-index:3;background-color:#f7efd9;background-image:linear-gradient(90deg,#7a5532 0 7px,#0000 7px),linear-gradient(0deg,#7a5532 0 7px,#0000 7px);background-size:25% 100%,100% 20%;width:50.5%;animation-duration:.8s;animation-timing-function:cubic-bezier(.6,0,.3,1);animation-delay:.38s;animation-fill-mode:both;position:absolute;top:0;bottom:0;box-shadow:inset 0 0 0 12px #5a3a20}.nji-door:after{content:"♪";color:#fff3c4;background:#ff4f6d;border-radius:50%;place-items:center;width:92px;height:92px;margin-top:-46px;font-size:52px;font-weight:800;display:grid;position:absolute;top:50%;box-shadow:0 0 0 6px #f7efd9,0 0 0 10px #5a3a20}.nji-door.left:after{right:-46px}.nji-door.right:after{display:none}.nji-door.left{z-index:4;animation-name:nji-door-l;left:0}.nji-door.right{animation-name:nji-door-r;right:0}@keyframes nji-door-l{to{transform:translate(-102%)}}@keyframes nji-door-r{to{transform:translate(102%)}}@media (prefers-reduced-motion:reduce){.ninja-scene *,.nb *,.nb-move,.njf *,.nji *{animation:none!important}.nj-petals,.nj-fireflies,.nb-shuriken,.nb-sparkles{display:none}.nj-hit>*{animation:.4s ease-out both nj-calm!important}.nj-hit-shard,.nj-hit-slash{display:none}}@keyframes nj-calm{0%{opacity:1}to{opacity:0}}.space-scene{contain:strict;position:absolute;inset:0;overflow:hidden}.sp-sky{position:absolute;inset:0}.sp-nebula{pointer-events:none;position:absolute;inset:0 0 25%}.sp-nebula i{border-radius:50%;animation:9s ease-in-out infinite alternate sp-nebula;position:absolute}.sp-nebula i.a{background:radial-gradient(closest-side,#c86dd766,#7a3fb033 55%,#0000);width:62%;height:70%;top:2%;left:-6%}.sp-nebula i.b{background:radial-gradient(closest-side,#4dd2ff44,#2b6fd022 60%,#0000);width:48%;height:58%;animation-delay:-3s;top:14%;left:38%}.sp-nebula i.c{background:radial-gradient(closest-side,#ff8fd855,#ff8fd800 70%);width:40%;height:52%;animation-delay:-6s;top:-6%;right:-8%}@keyframes sp-nebula{0%{opacity:.6}to{opacity:1}}.sp-starfield{opacity:.9;background-size:600px 300px;position:absolute;inset:0 0 32%}.sp-layer{will-change:transform;pointer-events:none;background-repeat:repeat-x;position:absolute;left:0}.sp-planets{background-size:1600px 300px;width:calc(100% + 1600px);height:300px;top:4%}.sp-asteroids{opacity:.9;background-size:1000px 120px;width:calc(100% + 1000px);height:120px;bottom:150px}.sp-ground{background-size:1200px 150px;width:calc(100% + 1200px);height:150px;bottom:0}.sp-comets{pointer-events:none;position:absolute;inset:0;overflow:hidden}.sp-comets i{opacity:0;background:linear-gradient(90deg,#fff,#cfe9ffaa 25%,#cfe9ff00);border-radius:3px;width:130px;height:3px;animation:linear infinite sp-comet;position:absolute;box-shadow:-2px 0 8px #fff}@keyframes sp-comet{0%{opacity:0;transform:rotate(-24deg)translate(0,0)}3%{opacity:1}13%{opacity:0;transform:rotate(-24deg)translate(-560px)}to{opacity:0;transform:rotate(-24deg)translate(-560px)}}.sp-hits{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.sp-hit{width:0;height:0;position:absolute;bottom:8px}.sp-hit>*{position:absolute;top:0;left:0}.sp-hit-flash{background:radial-gradient(circle, #fff 0%, var(--c) 32%, transparent 68%);border-radius:50%;width:120px;height:120px;margin:-60px 0 0 -60px;animation:.42s ease-out both sp-flash}.sp-hit-ring{width:64px;height:64px;box-shadow:0 0 0 4px var(--c), 0 0 16px var(--c);border:4px solid #fff;border-radius:50%;margin:-32px 0 0 -32px;animation:.6s ease-out both sp-ring}.sp-hit-comet{transform-origin:0;background:linear-gradient(270deg, #fff, var(--c) 30%, transparent);border-radius:6px;width:92px;height:6px;margin-top:-3px;animation:.56s cubic-bezier(.2,.8,.3,1) both sp-comet-up}.sp-hit-sparkle{filter:drop-shadow(0 0 4px #fff);width:22px;height:22px;margin:-11px 0 0 -11px;animation:.64s cubic-bezier(.15,.8,.3,1) both sp-sparkle;overflow:visible}@keyframes sp-flash{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(1.5)}}@keyframes sp-ring{0%{opacity:1;transform:scale(.2)}to{opacity:0;transform:scale(2.3)}}@keyframes sp-comet-up{0%{opacity:0;transform:rotate(var(--a)) translateX(0) scaleX(.2)}20%{opacity:1}to{opacity:0;transform:rotate(var(--a)) translateX(90px) scaleX(1)}}@keyframes sp-sparkle{0%{opacity:1;transform:rotate(var(--a)) translateX(0) scale(.3)}45%{transform:rotate(var(--a)) translateX(calc(var(--d) * .7)) scale(1.25)}75%{opacity:1}to{opacity:0;transform:rotate(var(--a)) translateX(var(--d)) scale(.6)}}.sb{width:100%;height:100%;position:relative}.sb-move{transform-origin:50% 85%;width:100%;height:100%;position:relative}.sb-svg{width:100%;height:100%;display:block;overflow:visible}.sb-body{transform-box:view-box;animation:3.2s ease-in-out infinite alternate sb-float}.sb-shadow{transform-box:fill-box;transform-origin:50%;animation:3.2s ease-in-out infinite alternate sb-shadow}.sb-eyes{transform-box:fill-box;transform-origin:50%;animation:4.8s ease-in-out infinite sb-blink}.sb-light{animation:1.4s ease-in-out infinite alternate sb-light}.sb-light.b{animation-delay:-.7s}.sb-antenna{animation:1.1s ease-in-out infinite alternate sb-light}.sb-flames{transform-box:view-box;transform-origin:60px 102px;animation:.11s linear infinite alternate sb-flame}.sb-arm{transform-box:view-box}.sb-arm-r.waving{transform-origin:94px 92px;animation:.42s ease-in-out infinite alternate sb-wave}@keyframes sb-float{0%{transform:translateY(0)}to{transform:translateY(-5px)}}@keyframes sb-shadow{0%{opacity:1;transform:scale(1)}to{opacity:.7;transform:scale(.86)}}@keyframes sb-blink{0%,90%,to{transform:scaleY(1)}94%{transform:scaleY(.1)}}@keyframes sb-light{0%{opacity:.45}to{opacity:1}}@keyframes sb-flame{0%{transform:scaleY(.82)}to{transform:scaleY(1.12)}}@keyframes sb-wave{0%{transform:translate(-2px,-28px)rotate(-10deg)}to{transform:translate(4px,-36px)rotate(16deg)}}.sb-boost{animation:.48s ease-out both sb-boost}@keyframes sb-boost{0%{transform:none}35%{transform:translateY(-18px)scale(.97,1.04)}75%{transform:translateY(-3px)scale(1.03,.97)}to{transform:none}}.sb-puffs{pointer-events:none;height:0;position:absolute;bottom:2%;left:0;right:0}.sb-puffs i{background:radial-gradient(circle,#fff 0 45%,#fff0 70%);border-radius:50%;width:20px;height:20px;margin-left:-10px;animation:.52s ease-out both sb-puff;position:absolute;bottom:0}.sb-puffs i:first-child{left:17%}.sb-puffs i:last-child{left:83%}@keyframes sb-puff{0%{opacity:.95;transform:translateY(0)scale(.4)}to{opacity:0;transform:translateY(18px)scale(1.6)}}.sb-spin{animation:.9s cubic-bezier(.3,.7,.4,1) both sb-spin}@keyframes sb-spin{0%{transform:none}14%{transform:translateY(5px)scale(1.1,.9)}55%{transform:translateY(var(--jump,-54px)) rotate(200deg)}84%{transform:translateY(-6px)rotate(360deg)}92%{transform:translateY(3px)rotate(360deg)scale(1.06,.94)}to{transform:rotate(360deg)}}.sb-sparkles{pointer-events:none;width:0;height:0;position:absolute;top:40%;left:50%}.sb-sparkles i{clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);background:#ffd23f;width:14px;height:14px;margin:-7px 0 0 -7px;animation:.76s ease-out .3s both sb-sparkle;position:absolute}.sb-sparkles i:nth-child(2n){background:#7fe3ff}@keyframes sb-sparkle{0%{opacity:1;transform:rotate(var(--a)) translateX(10px) scale(.4)}to{opacity:0;transform:rotate(var(--a)) translateX(72px) scale(1.2)}}.sb-nod{animation:.9s ease-in-out both sb-nod}@keyframes sb-nod{0%,to{transform:none}25%{transform:rotate(-8deg)translateY(2px)}55%{transform:rotate(6deg)}80%{transform:rotate(-3deg)}}.sb-heart{color:#ff6f91;text-shadow:0 0 8px #fff;pointer-events:none;font-size:26px;animation:1.1s ease-out both sb-heart;position:absolute;top:-4px;right:-6px}@keyframes sb-heart{0%{opacity:0;transform:translateY(8px)scale(.4)}25%{opacity:1;transform:translateY(0)scale(1.15)}to{opacity:0;transform:translateY(-34px)scale(1)}}.spf{position:absolute;inset:0;overflow:hidden}.spf-planet{width:min(30vw,300px);animation:2.6s cubic-bezier(.2,.8,.3,1) .4s both spf-rise;position:absolute;top:9%;right:5%}.spf-planet .sp-ringed{filter:drop-shadow(0 0 24px #ffd9a066);width:100%;height:auto;display:block}@keyframes spf-rise{0%{opacity:0;transform:translateY(60vh)rotate(-8deg)}}.spf-rocket{width:86px;margin-left:-43px;animation:2.3s cubic-bezier(.55,0,.35,1) .25s both spf-launch,1.6s ease-in-out 2.6s infinite alternate spf-hover;position:absolute;bottom:58%;left:22%}.spf-rocket .sp-rocket{width:100%;height:auto;display:block;overflow:visible}@keyframes spf-launch{0%{transform:translateY(46vh)}18%{transform:translate(-2px,45vh)}22%{transform:translate(2px,46vh)}}@keyframes spf-hover{0%{transform:translate(0,0)rotate(-3deg)}to{transform:translateY(-10px)rotate(3deg)}}.spf-trail{transform-origin:50% 100%;opacity:.55;background:linear-gradient(#ffd23f00,#ffe9b888 60%,#fffc);border-radius:23px;width:46px;height:50vh;margin-left:-23px;animation:2.3s cubic-bezier(.55,0,.35,1) .25s both spf-trail;position:absolute;bottom:10%;left:22%}@keyframes spf-trail{0%,18%{opacity:.9;transform:scaleY(0)}}.spf-puff{width:var(--sz,90px);height:var(--sz,90px);margin-left:calc(var(--sz,90px) / -2);opacity:.4;transform:translate3d(var(--dx,0), 0, 0) scale(1);background:radial-gradient(circle,#fff 0 40%,#e6e9ff00 70%);border-radius:50%;animation:1.6s ease-out both spf-puff;position:absolute;bottom:9%}@keyframes spf-puff{0%{opacity:.95;transform:translate(0,0)scale(.2)}}.spf-moon{width:100%;height:14%;position:absolute;bottom:0;left:0}.spi{position:absolute;inset:0;overflow:hidden}.spi-sky{position:absolute;inset:0}.spi-planet{width:min(28vw,280px);animation:1.4s cubic-bezier(.2,.8,.3,1) .2s both spi-planet;position:absolute;top:8%;right:6%}.spi-planet .sp-ringed{filter:drop-shadow(0 0 24px #ffd9a066);width:100%;height:auto;display:block}@keyframes spi-planet{0%{opacity:0;transform:translate(40px,30px)scale(.7)}}.spi-count{pointer-events:none;z-index:2;place-items:center;display:grid;position:absolute;inset:0}.spi-count span{color:#ffd23f;text-shadow:0 0 30px #ffd23f,0 8px #7a4a00;opacity:0;animation:spi-count .42s cubic-bezier(.2, 1.4, .4, 1) calc(80ms + var(--i) * .28s) both;grid-area:1/1;font-size:clamp(120px,22vw,220px);font-weight:800}@keyframes spi-count{0%{opacity:0;transform:scale(.3)}35%{opacity:1;transform:scale(1.1)}75%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}.spi-rocket{z-index:1;width:90px;animation:1.1s cubic-bezier(.5,0,.5,1) .9s both spi-rocket;position:absolute;bottom:0;left:14%}.spi-rocket .sp-rocket{width:100%;height:auto;display:block;overflow:visible}@keyframes spi-rocket{0%{transform:translateY(30vh)rotate(8deg)}to{transform:translate(14vw,-125vh)rotate(12deg)}}.spi-moon{width:100%;height:22%;position:absolute;bottom:0;left:0}.spi-title{text-align:center;color:#fff;pointer-events:none;z-index:3;position:absolute;top:15%;left:0;right:0}.spi-lead{opacity:.95;text-shadow:0 3px #0005;font-size:clamp(26px,3.6vw,40px);font-weight:600;animation:.5s ease-out 1.15s both spi-rise}.spi-place{color:#cfe9ff;letter-spacing:1px;text-shadow:0 0 22px #4dd2ff,0 5px #1a2a6b,0 0 46px #4dd2ff88;font-size:clamp(54px,9vw,108px);font-weight:800;line-height:1.05}.spi-place span{animation:spi-pop .52s cubic-bezier(.2, 1.7, .4, 1) calc(1.3s + var(--i) * 45ms) both;display:inline-block}@keyframes spi-rise{0%{opacity:0;transform:translateY(16px)}}@keyframes spi-pop{0%{opacity:0;transform:translateY(30px)scale(.3)rotate(-12deg)}}.spi-stage{z-index:3;width:220px;height:240px;margin-left:-110px;position:absolute;bottom:8%;left:50%}.spi-buddy{animation:.9s cubic-bezier(.25,1.2,.5,1) .95s both spi-buddy;position:absolute;inset:0}@keyframes spi-buddy{0%{transform:translateY(70vh)rotate(-10deg)}70%{transform:translateY(-14px)rotate(3deg)}to{transform:none}}.spi-hi{white-space:nowrap;color:#2b2d42;background:#fff;border-radius:22px 22px 22px 6px;padding:10px 20px;font-size:30px;font-weight:700;animation:.5s cubic-bezier(.2,1.6,.4,1) 1.6s both spi-pop;position:absolute;top:6%;left:92%;box-shadow:0 8px 24px #0006}@media (prefers-reduced-motion:reduce){.space-scene *,.sb *,.sb-move,.spf *,.spi *{animation:none!important}.sp-comets,.sb-puffs,.sb-sparkles,.sb-flames,.spf-puff{display:none}.sb-heart{animation:1.1s ease-out both sp-calm!important}.sp-hit>*{animation:.4s ease-out both sp-calm!important}.sp-hit-comet,.sp-hit-sparkle{display:none}}@keyframes sp-calm{0%{opacity:1}to{opacity:0}}.cs{aspect-ratio:16/9;background:#dff3ff;border-radius:28px;width:100%;position:relative;overflow:hidden;container-type:inline-size}.cs-back,.cs-back>.map-ground{position:absolute;inset:0}.cs-night{background:linear-gradient(#1c1b4a,#3b3a86 60%,#5b4f9a)}.cs-star{aspect-ratio:1;opacity:.85;background:#fff7c2;border-radius:50%;animation:3.2s ease-in-out infinite alternate cs-twinkle;position:absolute}.cs-star:nth-child(2n){animation-delay:-1.1s}.cs-star:nth-child(3n){animation-delay:-2.1s}.cs-land{border-radius:50% 50% 0 0/40% 40% 0 0;height:26%;position:absolute;bottom:-2%;left:-2%;right:-2%}.cs-actor{aspect-ratio:1;will-change:transform, opacity;transform-origin:50%;width:20%;position:absolute;top:0;left:0}.cs-actor>.cs-flip{position:absolute;inset:0}.cs-actor.left>.cs-flip{transform:scaleX(-1)}.cs-actor svg.map-art,.cs-actor svg.jl{width:100%;height:100%;position:absolute;inset:0}.cs-actor .cs-layer,.cs-actor .nb,.cs-actor .sb,.cs-actor .db{position:absolute;inset:0}.jl-halo{transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in-out infinite alternate cs-pulse}@keyframes cs-pulse{0%{opacity:.7;transform:scale(.9)}to{opacity:1;transform:scale(1.08)}}@keyframes cs-twinkle{0%{opacity:.4}to{opacity:.95}}.cs-reduced *,.cs-reduced :before{animation:none!important}@media (prefers-reduced-motion:reduce){.cs *,.cs :before{animation:none!important}}.clip-stagebox{width:100%;position:relative}.overlay.clip-overlay{z-index:80;-webkit-backdrop-filter:none;backdrop-filter:none;background:#14112ee6;place-items:center;display:grid;position:fixed;inset:0}.clip-card{flex-direction:column;align-items:center;gap:14px;width:min(92vw,177.778dvh - 444.444px);display:flex;position:relative}.clip-card .cs{box-shadow:0 14px #0003,0 0 0 6px #fffaf0}.clip-card .close-x.clip-x{z-index:6;width:64px;height:64px;position:absolute;top:-14px;right:-14px}.clip-name{z-index:5;color:#3a3550;background:#fffaf0e6;border-radius:18px;padding:6px 16px;font-size:clamp(16px,2.4vw,22px);font-weight:800;position:absolute;top:12px;left:14px}.clip-line{text-align:center;color:#3a3550;opacity:0;background:#fffaf0;border-radius:22px;min-height:1.2em;padding:8px 24px;font-size:clamp(18px,3vw,30px);font-weight:900;line-height:1.15;transition:opacity .8s}.clip-line.on{opacity:1}.clip-actions{gap:14px;display:flex}.clip-actions .btn{min-width:150px;min-height:56px}.clip-actions .btn:disabled{opacity:.45}@media (prefers-reduced-motion:reduce){.clip-line{transition:none}}.map-screen{z-index:60;color:#3a3550;padding-top:var(--safe-t,0px);background:#dff3ff;flex-direction:column;display:flex;position:fixed;inset:0}.map-head{z-index:5;background:#fffaf0;align-items:center;gap:12px;padding:10px 76px 8px 14px;display:flex;position:relative;box-shadow:0 4px #0002}.map-title{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:clamp(18px,2.6vw,26px);font-weight:900;overflow:hidden}.map-worlds{flex:none;gap:8px;display:flex}.map-world{cursor:pointer;opacity:.8;background:#fff;border:4px solid #d9d4e8;border-radius:50%;place-items:center;width:56px;height:56px;padding:0;font-size:28px;display:grid;position:relative}.map-world.on{opacity:1;border-color:#3a3550;box-shadow:0 3px #0003}.map-world.here{background:#fff3c4}.map-world-tick{color:#fff;background:#2fbf71;border-radius:50%;place-items:center;width:22px;height:22px;font-size:14px;font-weight:900;display:grid;position:absolute;bottom:-6px;right:-6px}.map-stories-btn{white-space:nowrap;min-width:56px;min-height:56px;position:relative}.map-stories-btn.on{outline:4px solid #3a3550}.map-new-dot{color:#fff;background:#ff6b9d;border-radius:13px;place-items:center;min-width:26px;height:26px;padding:0 6px;font-size:15px;font-weight:900;display:grid;position:absolute;top:-8px;right:-8px}.map-head .close-x.map-x{z-index:6;width:60px;height:60px;position:absolute;top:6px;right:10px}.map-next{z-index:4;background:#fffaf0e6;border-bottom:3px solid #0001;align-items:center;gap:12px;padding:8px 16px;font-size:clamp(15px,2vw,19px);font-weight:800;display:flex;position:relative}.map-points{white-space:nowrap;background:#fff;border-radius:16px;padding:4px 12px;box-shadow:0 2px #0002}.map-bar{background:#e6e1f2;border-radius:9px;flex:140px;max-width:360px;height:18px;overflow:hidden}.map-bar-fill{background:linear-gradient(90deg,#ffb703,#ff9f43);border-radius:9px;height:100%;display:block}.map-next-text{white-space:nowrap}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.map-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:auto;position:relative;overflow:hidden auto}.map-inner{width:100%;position:relative;overflow:hidden}.map-stop{z-index:3;cursor:pointer;font:inherit;color:inherit;background:0 0;border:0;flex-direction:column;align-items:center;padding:0;display:flex;position:absolute;transform:translate(-50%,-50%)}.map-stop.rest{cursor:default}.map-disc{background:#fff;border-radius:50%;place-items:center;width:88px;height:88px;font-size:46px;display:grid;position:relative;box-shadow:0 5px #0002,0 0 0 5px #fffa}.map-disc.rest{background:#fffc;width:56px;height:56px;font-size:26px}.map-stop:active .map-disc{transform:translateY(3px)}.map-light{pointer-events:none;width:68px;height:68px;position:absolute;top:-38px;right:-38px}.map-label{white-space:nowrap;background:#ffffffd9;border-radius:12px;margin-top:4px;padding:2px 10px;font-size:15px;font-weight:800}.map-grow{z-index:1;pointer-events:none;width:140px;height:140px;position:absolute;transform:translate(-50%,-50%)}.map-grow .map-art,.map-goal .map-art,.map-light .map-art{width:100%;height:100%;display:block}.map-goal{z-index:2;pointer-events:none;width:240px;height:240px;position:absolute;transform:translate(-50%,-66%)}.map-flag{z-index:4;cursor:pointer;background:#fff7d6;border:4px solid #3a3550;border-radius:18px;place-items:center;width:60px;height:60px;padding:0;font-size:30px;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 4px #0003}.map-flag:disabled{opacity:.7;cursor:default;box-shadow:none;filter:grayscale(.7);background:#efeaf7;border-color:#b9b2cf}.map-flag.next{opacity:.95;border-style:dashed}.map-flag-new{color:#fff;background:#ff6b9d;border-radius:10px;padding:1px 7px;font-size:13px;font-weight:900;position:absolute;top:-14px;right:-14px}.map-buddy{z-index:6;pointer-events:none;width:104px;height:114px;position:absolute;transform:translate(-50%,-88%)}.map-buddy-art{filter:drop-shadow(0 6px #0002);width:100%;height:100%}.map-buddy-art>div{width:100%;height:100%}.map-shelf{background:linear-gradient(#efe9ff,#fff3e6);flex:auto;padding:18px;overflow-y:auto}.shelf-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:18px;max-width:1000px;margin:0 auto;display:grid}.shelf-tile{cursor:pointer;background:#fffaf0;border:5px solid #fffaf0;border-radius:30px;min-height:120px;padding:0;display:block;position:relative;overflow:hidden;box-shadow:0 8px #0002}.shelf-tile .cs{pointer-events:none;border-radius:0}.shelf-play{color:#3a3550;background:#fffaf0ee;border-radius:50%;place-items:center;width:54px;height:54px;font-size:24px;display:grid;position:absolute;bottom:12px;right:12px}.shelf-new{color:#fff;background:#ff6b9d;border-radius:12px;padding:2px 10px;font-size:15px;font-weight:900;position:absolute;top:10px;left:10px}.shelf-num{background:#fffaf0ee;border-radius:50%;place-items:center;width:34px;height:34px;font-weight:900;display:grid;position:absolute;bottom:10px;left:10px}.shelf-tile.next{cursor:default;box-shadow:none;aspect-ratio:16/10;background:#ece7f7;border-style:dashed;border-color:#c4bbdc;place-items:center;display:grid}.shelf-next-q{color:#b9b2cf;font-size:64px;font-weight:900}.shelf-empty{text-align:center;place-items:center;gap:12px;padding:40px 16px;display:grid}.shelf-empty-emoji{font-size:84px}.shelf-empty-text{font-size:clamp(22px,3vw,30px);font-weight:900}.shelf-empty-sub{color:#6b6585;font-size:18px;font-weight:700}.map-screen.still *,.map-screen.map-reduced .map-buddy-art *{transition:none!important;animation:none!important}.map-card{text-align:left;cursor:pointer;width:100%;min-height:76px;font:inherit;color:#3a3550;background:linear-gradient(135deg,#fff3c4,#ffe0ee);border:4px solid #3a3550;border-radius:26px;align-items:center;gap:14px;padding:12px 16px;display:flex;position:relative;box-shadow:0 5px #0003}.map-card:active{transform:translateY(3px);box-shadow:0 2px #0003}.map-card-icon{font-size:40px;line-height:1}.map-card-title{font-size:22px;font-weight:900}.map-card-sub{opacity:.85;font-size:16px;font-weight:700}.map-card-bar{background:#fffa;border-radius:6px;width:min(260px,100%);height:12px;margin-top:6px;display:block;overflow:hidden}.map-card-bar>span{background:linear-gradient(90deg,#ffb703,#ff9f43);height:100%;display:block}.map-card .map-new-dot{top:8px;right:10px}.map-btn{min-width:56px;position:relative}.map-btn .map-new-dot{min-width:22px;height:22px;font-size:13px;top:-6px;right:0}@media (width<=820px) and (orientation:portrait){.map-head{flex-wrap:wrap;gap:8px;padding-left:10px}.map-title{flex-basis:100%}}.copy-me{z-index:40;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);background:#1a1240;grid-template-rows:1fr 28dvh;grid-template-columns:minmax(0,1fr);display:grid;position:fixed;inset:0}.cm-stage{position:relative;overflow:hidden}.cm-keys{min-height:0;position:relative}.cm-sky{background:linear-gradient(180deg, var(--cm-sky-1,#8fd3ff), var(--cm-sky-2,#bfe6ff) 55%, var(--cm-sky-3,#e6f7ff));position:absolute;inset:0}.cm-cloud{background:#ffffffd0;border-radius:40px;width:180px;height:56px;position:absolute;box-shadow:40px -22px 0 6px #ffffffd0,90px 0 0 -4px #ffffffc0}.cm-cloud.c1{animation:26s linear infinite alternate cm-drift;top:16%;left:6%}.cm-cloud.c2{animation:32s linear infinite alternate-reverse cm-drift;top:9%;left:62%;transform:scale(.7)}.cm-cloud.c3{opacity:.7;animation:38s linear infinite alternate cm-drift;top:58%;left:40%;transform:scale(.55)}@keyframes cm-drift{0%{translate:-30px}to{translate:40px}}.cm-trail{z-index:3;background:#ffffffd9;border-radius:999px;gap:12px;padding:8px 14px;display:flex;position:absolute;top:18px;left:50%;translate:-50%;box-shadow:0 6px 18px #0003}.cm-bubble{color:#fff;background:#e6e9f2;border-radius:50%;place-items:center;width:34px;height:34px;font-size:20px;font-weight:700;transition:transform .2s ease-out,background-color .2s;display:grid;box-shadow:inset 0 -3px #0001}.cm-bubble.now{box-shadow:0 0 0 4px var(--primary), inset 0 -3px 0 #0001;background:#fff;animation:1.2s ease-in-out infinite cm-now}.cm-bubble.done{background:linear-gradient(160deg,#ffd23f,#ff9f1c);animation:.42s cubic-bezier(.3,1.6,.5,1) both cm-pop;box-shadow:inset 0 -3px #0002}@keyframes cm-now{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes cm-pop{0%{transform:scale(.3)}to{transform:scale(1)}}.cm-close{z-index:8;position:absolute;top:16px;right:18px}.cm-center{z-index:2;grid-template-columns:1fr 1fr;place-items:center;gap:24px;display:grid;position:absolute;inset:70px 40px 10px}.cm-buddy{place-items:center;width:300px;height:300px;display:grid;position:relative}.cm-buddy:before{content:"";opacity:.5;background:radial-gradient(circle,#fffa,#fff0 68%);border-radius:50%;transition:opacity .2s;position:absolute;inset:8% 8% 0}.copy-me.themed .cm-buddy:before{background:radial-gradient(circle,#ffe7a366,#ffe7a300 68%)}.cm-buddy.singing:before{opacity:1}.cm-world-buddy{width:270px;height:297px}.cm-emoji-buddy{filter:drop-shadow(0 10px 14px #0003);transform-origin:50% 90%;font-size:220px;line-height:1;position:relative}.cm-move-hop{animation:.34s ease-out both cm-hop}.cm-move-flip{animation:.82s cubic-bezier(.3,.7,.4,1) both cm-flip}.cm-move-nod,.cm-move-tilt{animation:.9s ease-in-out both cm-nod}@keyframes cm-hop{0%{transform:translateY(0)scale(1)}35%{transform:translateY(-34px)scale(.96,1.05)}to{transform:translateY(0)scale(1)}}@keyframes cm-flip{0%{transform:translateY(0)rotate(0)}45%{transform:translateY(-80px)rotate(-200deg)}80%{transform:translateY(-10px)rotate(-360deg)}to{transform:translateY(0)rotate(-360deg)}}@keyframes cm-nod{0%,to{transform:rotate(0)}30%{transform:rotate(-8deg)}60%{transform:rotate(6deg)}}.cm-fly-note{z-index:3;color:var(--note-color);text-shadow:0 0 #fff,0 3px #fff,0 0 14px #fff;pointer-events:none;font-size:64px;font-weight:700;animation:.9s ease-out both cm-fly;position:absolute;top:12%;left:62%}@keyframes cm-fly{0%{opacity:0;transform:translateY(20px)scale(.4)}25%{opacity:1}to{opacity:0;transform:translate(70px,-90px)scale(1.2)rotate(14deg)}}.cm-side{flex-direction:column;align-items:center;gap:18px;display:flex}.cm-cue{background:#fffffff2;border-radius:34px;flex-direction:column;align-items:center;gap:2px;padding:14px 30px 12px;animation:.38s cubic-bezier(.3,1.5,.5,1) both cm-cue-in;display:flex;box-shadow:0 10px 26px #0003}@keyframes cm-cue-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.cm-cue-icon{font-size:92px;line-height:1.05}.cm-cue-word{color:var(--ink);font-size:30px;font-weight:700}.cm-cue.cue-demo .cm-cue-icon,.cm-cue.cue-retry .cm-cue-icon{animation:1s ease-in-out infinite cm-ear}.cm-cue.cue-listen{box-shadow:0 0 0 6px #2ecc71,0 10px 26px #0003}.cm-cue.cue-listen .cm-cue-icon{transform-origin:50% 90%;animation:1.1s ease-in-out infinite cm-wiggle}.cm-cue.cue-listen .cm-cue-word{color:#1d9d55}.cm-cue.cue-retry .cm-cue-word{color:#f08c00}@keyframes cm-ear{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes cm-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-12deg)}75%{transform:rotate(12deg)}}.cm-dots{background:#fffc;border-radius:999px;align-items:center;gap:14px;padding:10px 18px;display:flex;box-shadow:0 6px 16px #0002}.cm-dot{height:40px;width:calc(40px * var(--dot-w,1));box-shadow:inset 0 0 0 4px var(--note-color), 0 2px 0 #0001;background:#fff;border-radius:999px;transition:transform .15s ease-out,background-color .15s;display:block}.cm-dot.on{background:var(--note-color);box-shadow:0 0 0 4px #fff, 0 0 18px var(--note-color);transform:scale(1.18)}.cm-dot.call{height:28px;width:calc(28px * var(--dot-w,1));opacity:.85}.cm-call{align-items:center;gap:8px;padding-right:4px;display:flex}.cm-call-buddy{font-size:30px}.cm-call-arrow{color:var(--muted);font-size:26px;font-weight:700}.cm-ear-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffd93d;border:5px solid #fff;border-radius:50%;place-items:center;width:96px;height:96px;font-size:50px;line-height:1;transition:transform .1s ease-out,box-shadow .1s ease-out;display:grid;position:relative;box-shadow:0 6px #d9b22a,0 10px 20px #0003}.cm-ear-btn:active{transform:translateY(5px)scale(.95);box-shadow:0 1px #d9b22a,0 4px 10px #0003}.cm-ear-again{color:#fff;background:#5b7cfa;border:3px solid #fff;border-radius:50%;place-items:center;width:40px;height:40px;font-size:26px;font-weight:700;display:grid;position:absolute;bottom:-6px;right:-6px}.cm-caption{z-index:3;max-width:60%;color:var(--ink);text-align:center;background:#ffffffe6;border-radius:18px;padding:8px 18px;font-size:18px;font-weight:600;position:absolute;bottom:14px;left:50%;translate:-50%;box-shadow:0 6px 16px #0002}.cm-hand{z-index:3;position:absolute;bottom:12px;left:16px}.cm-hand .hand-guide{position:relative;top:auto;left:auto}.copy-me .key.target.white{fill:color-mix(in srgb, var(--key-color) 45%, #fff)}.copy-me .key.target{animation:none}.cm-burst{z-index:4;pointer-events:none;width:0;height:0;position:absolute;top:50%;left:25%}.cm-ray{background:radial-gradient(circle, #fff 0 30%, var(--c) 32%);border-radius:50%;width:24px;height:24px;animation:.9s ease-out both cm-ray;position:absolute;top:-12px;left:-12px}@keyframes cm-ray{0%{transform:rotate(var(--a)) translateY(0) scale(.4);opacity:1}to{transform:rotate(var(--a)) translateY(-200px) scale(1.2);opacity:0}}.cm-burst-note{color:var(--c);text-shadow:0 2px #fff,0 0 10px #fff;font-size:48px;animation:1.1s ease-out 80ms both cm-burst-note;position:absolute;top:-26px;left:-16px}@keyframes cm-burst-note{0%{transform:rotate(var(--a)) translateY(0) scale(.5);opacity:0}20%{opacity:1}to{transform:rotate(var(--a)) translateY(-150px) scale(1.1);opacity:0}}.cm-burst-core{font-size:100px;animation:.9s cubic-bezier(.3,1.6,.5,1) both cm-core;position:absolute;top:-200px;left:-50px}@keyframes cm-core{0%{opacity:0;transform:scale(.2)}50%{opacity:1;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.cm-wait,.cm-error{z-index:5;text-align:center;background:#fffffff2;border-radius:26px;padding:18px 28px;position:absolute;top:50%;left:50%;translate:-50% -50%;box-shadow:0 10px 26px #0003}.cm-wait span{font-size:64px;animation:1s ease-in-out infinite cm-ear;display:block}.cm-error span{font-size:54px}.cm-error p{color:var(--bad);margin:6px 0 0;font-weight:600}.cm-done{z-index:7;background:#fff4;place-items:center;display:grid;position:absolute;inset:0}.cm-done-card{background:#fff;border-radius:34px;flex-direction:column;align-items:center;gap:10px;padding:26px 46px 24px;animation:.52s cubic-bezier(.3,1.5,.5,1) both cm-cue-in;display:flex;position:relative;box-shadow:0 16px 40px #0004}.cm-done-badge{animation:.9s cubic-bezier(.3,1.5,.5,1) .15s both cm-badge-in}@keyframes cm-badge-in{0%{opacity:0;transform:scale(.2)rotate(-200deg)}70%{opacity:1;transform:scale(1.1)rotate(10deg)}to{transform:scale(1)rotate(0)}}.cm-done-title{color:var(--ink);font-size:32px;font-weight:700}.cm-done-actions{gap:14px;display:flex}.btn.cm-again{border-radius:22px;padding:16px 44px;font-size:30px}.echo-badge{width:var(--size);height:var(--size);place-items:center;display:inline-grid;position:relative}.echo-badge-face{width:100%;height:100%;box-shadow:inset 0 0 0 calc(var(--size) * .06) #fff, 0 calc(var(--size) * .04) 0 #0002, 0 0 0 calc(var(--size) * .02) #e6e9f2;background:radial-gradient(circle at 26% 22%,#fff9 0 8%,#0000 9%),conic-gradient(#2ec4b6,#5b7cfa,#a77bff,#ff6b9d,#ffd93d,#2ec4b6);border-radius:50%;align-content:center;place-items:center;display:grid}.echo-badge-bird{font-size:calc(var(--size) * .4);filter:drop-shadow(0 3px #fff);line-height:1}.echo-badge-waves{font-size:calc(var(--size) * .16);color:#fff;text-shadow:0 2px #0003;margin-top:-.2em;font-weight:700}.echo-badge-count{color:#fff;font-weight:700;font-size:calc(var(--size) * .14);background:#ff6b9d;border:3px solid #fff;border-radius:999px;padding:2px 12px;position:absolute;bottom:2%;right:-4%}.copy-me-card{cursor:pointer;width:100%;min-height:84px;font:inherit;text-align:left;color:#fff;-webkit-tap-highlight-color:transparent;background:linear-gradient(120deg,#2ec4b6,#5b7cfa 55%,#a77bff);border:4px solid #fff;border-radius:24px;align-items:center;gap:14px;padding:10px 14px 10px 16px;transition:transform 80ms,box-shadow 80ms;display:flex;box-shadow:0 6px #3f5fd6,0 10px 20px #5b7cfa44}.copy-me-card:hover .cmc-play{transform:scale(1.05)}.copy-me-card:active{transform:translateY(5px);box-shadow:0 1px #3f5fd6}.cmc-buddy{flex:none;font-size:48px;line-height:1;animation:1.6s ease-in-out infinite cm-hop}.cmc-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.cmc-title{text-shadow:0 2px #0002;font-size:26px;font-weight:700;line-height:1.1}.cmc-how{opacity:.95;flex-wrap:wrap;align-items:center;gap:6px;font-size:15px;font-weight:600;line-height:1;display:inline-flex}.cmc-step{white-space:nowrap;background:#ffffff2e;border-radius:999px;align-items:center;gap:4px;padding:4px 9px;display:inline-flex}.cmc-arrow{font-size:14px}.cmc-badges{background:#fff3;border-radius:999px;flex:none;align-items:center;gap:4px;padding:3px 10px 3px 3px;display:flex}.cmc-badges b{font-size:20px}.cmc-play{background:var(--primary,#ff6b9d);color:#fff;white-space:nowrap;min-height:48px;box-shadow:0 4px 0 var(--primary-dark,#e8508a);border-radius:999px;flex:none;justify-content:center;align-items:center;padding:8px 20px;font-size:20px;font-weight:700;transition:transform .12s;display:inline-flex}@media (height<=500px){.cm-center{inset:56px 20px 6px}.cm-buddy{width:160px;height:160px}.cm-world-buddy{width:150px;height:165px}.cm-emoji-buddy{font-size:120px}.cm-cue-icon{font-size:56px}.cm-cue-word{font-size:20px}.cm-trail{gap:6px;top:8px}.cm-bubble{width:24px;height:24px;font-size:14px}.cm-hand{display:none}}@media (prefers-reduced-motion:reduce){.cm-cloud,.cm-bubble.now,.cm-bubble.done,.cm-cue,.cm-cue-icon,.cm-emoji-buddy,.cm-fly-note,.cm-done-card,.cm-done-badge,.cmc-buddy,.cm-wait span,.cm-burst-core,.cm-ear-btn{transition:none;animation:none!important}.cm-dot{transition:none}}.copy-me.reduced .cm-emoji-buddy,.copy-me.reduced .cm-cue-icon{animation:none}.echo-shelf{border-top:2px dashed #e3e7f0;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;width:100%;padding-top:10px;display:flex}.echo-shelf-title{white-space:nowrap}.echo-shelf-row{align-items:center;gap:8px;display:flex}.echo-tile{cursor:default;border-radius:12px;padding:4px}.echo-shelf-more{color:var(--ink);font-weight:800}.echo-shelf-level{font-size:26px;line-height:1}.lane[style*=--note-scale] .note-finger{transform:scale(var(--note-scale));transform-origin:50%}.lane[style*=--note-scale] .note-lyric{font-size:calc(13px * var(--note-scale))}.lane[style*=--note-scale] .note-label{font-size:calc(22px * var(--note-scale))}.lane.show-both[style*=--note-scale] .note-label{font-size:calc(12px * var(--note-scale))}.lane.phrased .note{animation:.3s ease-out backwards lh-note-in}@keyframes lh-note-in{0%{opacity:0}to{opacity:1}}.keyboard.zoomed .key.white{stroke-width:.02px}.keyboard .key.unused.white{fill:#eceef3}.keyboard .key.unused.black{fill:#5b5e6b}.keyboard .key.unused.played-ok.white{fill:var(--right-soft)}.keyboard .key.unused.played-bad.white{fill:var(--wrong-soft)}.key-hint{fill:none;stroke:var(--guide);stroke-width:.12px;pointer-events:none}.key.black.hint{fill:var(--guide)}.hand-guide.hinting{box-shadow:0 0 0 3px var(--guide), 0 4px 14px #2b2d4214}.lh-cheer{z-index:4;pointer-events:none;align-items:center;gap:14px;display:flex;position:absolute;top:16%;left:50%;translate:-50%}.lh-cheer-star{filter:drop-shadow(0 6px 10px #0003);animation:.7s cubic-bezier(.3,1.6,.5,1) both lh-star-pop;position:relative}@keyframes lh-star-pop{0%{opacity:0;transform:scale(.2)rotate(-40deg)}60%{opacity:1;transform:scale(1.18)rotate(8deg)}to{opacity:1;transform:scale(1)rotate(0)}}.lh-cheer-rays{width:0;height:0;position:absolute;top:50%;left:50%}.lh-cheer-rays i{background:radial-gradient(circle,#fff 0 30%,#ffd23f 31%);border-radius:50%;width:18px;height:18px;animation:.9s ease-out .12s both lh-ray;position:absolute;top:-9px;left:-9px}@keyframes lh-ray{0%{transform:rotate(var(--a)) translateY(0) scale(.4);opacity:1}to{transform:rotate(var(--a)) translateY(-110px) scale(1.1);opacity:0}}.lh-cheer-buddy{box-shadow:var(--shadow);background:#fffffff0;border-radius:28px;flex-direction:column;align-items:center;padding:6px 18px 8px;animation:.65s cubic-bezier(.3,1.5,.5,1) .1s both lh-buddy-jump;display:flex}.lh-cheer-emoji{font-size:64px;line-height:1.1}.lh-cheer-yay{color:#f08c00;font-size:30px;font-weight:700}@keyframes lh-buddy-jump{0%{opacity:0;transform:translateY(30px)scale(.6)}50%{opacity:1;transform:translateY(-22px)scale(1.08)}to{opacity:1;transform:translateY(0)scale(1)}}.lh-cheer{animation:.3s ease-in 1.4s both lh-cheer-out}@keyframes lh-cheer-out{to{opacity:0}}.lh-trail{z-index:3;box-shadow:var(--shadow);pointer-events:none;background:#ffffffd0;border-radius:999px;align-items:center;gap:4px;padding:6px 12px;display:flex;position:absolute;top:100px;right:16px}.lh-trail-star{transition:transform .3s;display:block}.lh-trail-star.done .star-icon{animation:.52s cubic-bezier(.3,1.6,.5,1) sm-pop}.lh-trail-star.now{animation:1.2s ease-in-out infinite lh-now}.lh-trail-star.next{opacity:.55}@keyframes lh-now{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.song-card .lh-tag{background:#fff;border-radius:999px;padding:2px 4px;font-size:20px;line-height:1;position:absolute;top:-8px;right:-6px;box-shadow:0 2px #0002}.song-card.lh-later{opacity:.72}.song-card.lh-later .song-meta{color:#2f9e44;font-weight:700}.lh-chip-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lh-chip{font:inherit;color:var(--ink);background:#fff7d6;border:2px solid #ffd23f;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:17px;font-weight:700;display:inline-flex}button.lh-chip{cursor:pointer;box-shadow:0 3px #e8b400}button.lh-chip:active{box-shadow:none;transform:translateY(3px)}.lh-chip.big{background:#e9f5ff;border-color:#4d8bff}button.lh-chip.big{box-shadow:0 3px #2f6fe0}.lh-chip .lh-chip-emoji{font-size:24px}.lh-nextsong{z-index:8;background:radial-gradient(circle at 50% 40%,#fff8d6ee,#ffd23fcc 70%);place-items:center;animation:.3s ease-out both lh-fade-in;display:grid;position:absolute;inset:0}@keyframes lh-fade-in{0%{opacity:0}}.lh-ns-card{z-index:6;background:#fff;border-radius:36px;flex-direction:column;align-items:center;gap:10px;padding:22px 32px 28px;animation:.6s cubic-bezier(.3,1.4,.5,1) both lh-card-in;display:flex;position:relative;box-shadow:0 18px 50px #0003}@keyframes lh-card-in{0%{opacity:0;transform:scale(.6)translateY(40px)}}.lh-ns-head{align-items:center;gap:18px;display:flex}.lh-ns-buddy{font-size:64px;line-height:1;animation:1.1s ease-in-out infinite lh-buddy-dance}@keyframes lh-buddy-dance{0%,to{transform:rotate(-8deg)translateY(0)}50%{transform:rotate(8deg)translateY(-12px)}}.lh-ns-stars{gap:4px;display:flex}.lh-ns-star{animation:.65s cubic-bezier(.3,1.6,.5,1) both lh-star-pop;animation-delay:calc(.25s + var(--i) * .18s)}.lh-ns-title{color:var(--ink);font-size:34px;font-weight:700}.lh-ns-sub{color:var(--ink);opacity:.75;margin-top:-6px;font-size:24px;font-weight:700}.lh-ns-choices{gap:22px;margin-top:6px;display:flex}.lh-ns-choice{cursor:pointer;width:220px;font:inherit;border:4px solid;border-radius:28px;flex-direction:column;align-items:center;gap:8px;padding:16px 14px 14px;transition:transform .12s;display:flex}.lh-ns-choice:active{transform:scale(.96)}.lh-ns-choice.play{background:#fff4d6;border-color:#ffb300;animation:1.6s ease-in-out infinite lh-big-glow;box-shadow:0 6px #e09a00}@keyframes lh-big-glow{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.lh-ns-choice.songs{background:#f1fbf3;border-color:#8bd3a0;box-shadow:0 6px #6cbf84}.lh-ns-icon{font-size:84px;line-height:1}.lh-ns-label{color:var(--ink);font-size:24px;font-weight:700}.lh-setting{flex-direction:column;gap:4px;display:flex}@media (prefers-reduced-motion:reduce){.lane.phrased .note,.key-hint,.key-finger.hinting,.lh-cheer-star,.lh-cheer-buddy,.lh-trail-star.now,.lh-trail-star.done .star-icon,.lh-nextsong,.lh-ns-card,.lh-ns-buddy,.lh-ns-star,.lh-ns-choice.play{animation:none}.key-hint{opacity:1}.lh-cheer{animation:.3s ease-in 1.4s both lh-cheer-out}}.lh-cheer.reduced .lh-cheer-star,.lh-cheer.reduced .lh-cheer-buddy,.lh-nextsong.reduced .lh-ns-card{animation:none}@media (width<=900px){.lh-cheer-emoji{font-size:40px}.lh-cheer-yay{font-size:20px}.lh-trail{padding:4px 8px;top:64px;right:8px}.lh-ns-choice{width:180px}.lh-ns-icon{font-size:56px}.lh-ns-title{font-size:24px}}.app.lh-zoomed{--pad-col:calc(100vw / var(--zoom-keys,9));--lh-rail:min(96px, calc(var(--pad-col) - 16px))}.app.lh-zoomed .stage .hand-guide{width:min(160px, calc(var(--pad-col) - 22px))}.app.world-ninja.lh-zoomed .stage .hand-guide,.app.world-space.lh-zoomed .stage .hand-guide,.app.world-dinosaurs.lh-zoomed .stage .hand-guide{width:min(128px, calc(var(--pad-col) - 22px))}.app.lh-zoomed .stage .hand-guide .hand-svg{width:100%}.app.lh-zoomed .stage .star-meter{right:calc((var(--pad-col) - var(--lh-rail)) / 2);width:var(--lh-rail);box-sizing:border-box;border-radius:26px;padding:8px 0}.app.lh-zoomed .stage .star-meter-row{flex-direction:column;align-items:center;gap:2px}.app.lh-zoomed .stage .star-meter .star-icon{width:52px;height:52px}.app.lh-zoomed .stage .sm-star.lost{transform:scale(.78)}.app.lh-zoomed .stage .lh-trail{top:200px;right:calc((var(--pad-col) - var(--lh-rail)) / 2);width:var(--lh-rail);box-sizing:border-box;border-radius:22px;grid-template-columns:repeat(2,34px);justify-content:center;justify-items:center;gap:2px;padding:6px 0;display:grid}.app.lh-zoomed .stage .lh-trail .star-icon{width:26px;height:26px}.app.lh-zoomed .stage .lh-trail-star.now .star-icon{width:34px;height:34px}.app.lh-zoomed .stage .teacher{pointer-events:none;align-items:flex-start;bottom:0;right:0}.app.lh-zoomed .stage .teacher-bubble{width:calc(var(--pad-col) - 16px);box-sizing:border-box;text-align:center;border-radius:16px;max-width:none;padding:8px 10px;font-size:15px;line-height:1.25;position:absolute;bottom:84px;right:8px}.mic-sens{gap:8px;display:grid}.mic-sens .btn.small{justify-self:center}.mic-check{align-items:center;gap:10px;display:flex}.mic-level{background:#eef1f7;border-radius:7px;flex:1;height:14px;position:relative;overflow:hidden}.mic-level-bar{background:linear-gradient(90deg, #ffe08a, var(--primary));height:100%;transition:width 80ms linear}.mic-level-gate{background:var(--ink);opacity:.45;width:2px;position:absolute;top:0;bottom:0}.mic-heard{text-align:right;min-width:64px;color:var(--muted);font-size:14px;font-weight:700}.mic-heard.on{color:var(--ok)}.mic-error{color:#c0392b}.fs-root{z-index:60;color:var(--ink);background:linear-gradient(#8fd3ff 0%,#c9ecff 55%,#e9f9e1 100%);animation:.36s cubic-bezier(.2,1.2,.5,1) both fs-in;position:fixed;inset:0;overflow:hidden}@keyframes fs-in{0%{opacity:0;transform:scale(.97)}}.fs-sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.fs-map{flex-direction:column;display:flex;position:absolute;inset:0}.fs-map-top,.fs-lesson-top{align-items:center;gap:16px;padding:12px 18px 6px;display:flex}.fs-map-top h1{color:#fff;text-shadow:0 3px #3f8fd6,0 6px 14px #0003;flex:1;margin:0;font-size:34px}.fs-map-stars{background:#fff;border-radius:999px;padding:6px 18px;font-size:26px;font-weight:700;box-shadow:0 4px #d5dbe8}.fs-map-area{flex:1;margin:0 24px;position:relative}.fs-path{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.fs-path-road{fill:none;stroke:#f7e2b5;stroke-width:7px;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-width:46px}.fs-path-dash{fill:none;stroke:#fff;stroke-dasharray:2 18;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-width:8px;animation:2.6s linear infinite fs-dash}@keyframes fs-dash{to{stroke-dashoffset:-40px}}.fs-scenery i{pointer-events:none;display:block;position:absolute}.fs-cloud{opacity:.85;background:#fff;border-radius:30px;width:130px;height:44px;animation:22s linear infinite alternate fs-cloud}.fs-cloud:before{content:"";background:#fff;border-radius:50%;width:60px;height:60px;position:absolute;top:-28px;left:24px}.fs-cloud.c1{top:2%;left:30%}.fs-cloud.c2{animation-duration:30s;top:10%;left:62%;transform:scale(.8)}@keyframes fs-cloud{to{translate:80px}}.fs-hill{z-index:-1;background:#b9e8a3;border-radius:50% 50% 0 0;width:520px;height:200px;bottom:-40px}.fs-hill.h1{left:-80px}.fs-hill.h2{background:#a6e08c;width:620px;right:-120px}.fs-tree{background:#4fbf5a;border-radius:50% 50% 46% 46%;width:34px;height:54px}.fs-tree:after{content:"";background:#a46b47;border-radius:3px;width:8px;height:16px;position:absolute;bottom:-14px;left:13px}.fs-tree.t1{top:82%;left:15%}.fs-tree.t2{top:12%;left:47%}.fs-tree.t3{top:86%;left:78%}.fs-stop{font:inherit;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;padding:0;animation:.52s cubic-bezier(.25,1.5,.5,1) both fs-stop-in;display:flex;position:absolute;translate:-50% -50%}@keyframes fs-stop-in{0%{opacity:0;transform:scale(.3)translateY(30px)}}.fs-stop-disc{background:var(--stop);width:104px;height:104px;box-shadow:0 7px 0 color-mix(in srgb, var(--stop) 60%, #000), 0 10px 22px #0003;border:6px solid #fff;border-radius:50%;place-items:center;transition:transform .16s cubic-bezier(.34,1.56,.64,1);display:grid;position:relative}.fs-stop:active .fs-stop-disc{transform:scale(.92)translateY(4px)}.fs-stop-icon{font-size:52px;line-height:1}.fs-stop-num{width:34px;height:34px;color:var(--ink);background:#fff;border-radius:50%;place-items:center;font-size:19px;font-weight:700;display:grid;position:absolute;top:-8px;left:-8px;box-shadow:0 2px 6px #0003}.fs-stop-label{white-space:nowrap;background:#ffffffe6;border-radius:999px;margin-top:6px;padding:2px 10px;font-size:16px;font-weight:700;box-shadow:0 2px 6px #0002}.fs-stop-placed{color:#2a9d4b;font-size:14px;font-weight:700}.fs-stop.locked .fs-stop-disc{background:#c9d1e0;box-shadow:0 7px #9aa5ba,0 10px 22px #0002}.fs-stop.locked .fs-stop-label{opacity:.7}.fs-stop.next .fs-stop-disc{animation:1.4s ease-in-out infinite fs-pulse}.fs-stop.next .fs-stop-disc:after{content:"";opacity:0;border:5px solid #fff;border-radius:50%;animation:1.4s ease-out infinite fs-ring;position:absolute;inset:-14px}@keyframes fs-pulse{50%{transform:scale(1.08)}}@keyframes fs-ring{0%{opacity:.9;transform:scale(.85)}to{opacity:0;transform:scale(1.3)}}.fs-stop.done .fs-stop-disc{border-color:#ffd93d}.fs-stop.bonus .fs-stop-disc{border-style:dashed;width:88px;height:88px}.fs-stop.nope .fs-stop-disc{animation:.4s fs-nope}@keyframes fs-nope{20%,60%{transform:translate(-8px)rotate(-6deg)}40%,80%{transform:translate(8px)rotate(6deg)}}.fs-chest-stop{cursor:pointer;font:inherit;color:var(--ink);background:0 0;border:0;flex-direction:column;align-items:center;padding:0;display:flex;position:absolute;translate:-50% -50%}.fs-chest-stop.open .fs-chest{animation:1.6s ease-in-out infinite fs-pulse}.fs-chest .fs-chest-glow{opacity:0}.fs-chest.open .fs-chest-glow{opacity:.9;animation:1.8s ease-in-out infinite fs-glow}.fs-chest-lid{transform-box:fill-box;transform-origin:0 100%;transition:transform .7s cubic-bezier(.3,1.6,.5,1)}.fs-chest.open .fs-chest-lid{transform:rotate(-28deg)translate(-6px,-18px)}@keyframes fs-glow{50%{opacity:.4}}.fs-map-buddy{pointer-events:none;filter:drop-shadow(0 6px 6px #0003);z-index:2;font-size:54px;line-height:1;transition:left .9s cubic-bezier(.4,1.4,.5,1),top .9s cubic-bezier(.4,1.4,.5,1);position:absolute;translate:10% -160%}.fs-map-buddy.bob{animation:1.1s ease-in-out infinite fs-bob}@keyframes fs-bob{50%{transform:translateY(-12px)rotate(4deg)}}.fs-map-foot{justify-content:space-between;align-items:center;gap:12px;min-height:64px;padding:8px 20px 14px;display:flex}.fs-map-note{background:#fff;border-radius:999px;padding:8px 18px;font-size:18px;font-weight:700}.fs-to-songs{padding:12px 26px;font-size:22px}.btn.fs-skip-btn{min-width:132px;min-height:56px;color:var(--ink);background:#fff;border:3px solid #e3e8f2;padding:8px 26px 8px 20px;font-size:clamp(20px,2.8vmin,26px);box-shadow:0 5px #c9d1e0}.btn.fs-skip-btn:active{box-shadow:0 1px #c9d1e0}.fs-skip-icon{font-size:1.25em;animation:2.6s ease-in-out 1.5s infinite fs-skip-nudge;display:inline-block}@keyframes fs-skip-nudge{0%,80%,to{transform:translate(0)}86%{transform:translate(5px)}92%{transform:translate(0)}96%{transform:translate(3px)}}.fs-map-foot-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;margin-left:auto;display:flex}.btn.fs-start-btn{color:#fff;text-shadow:0 2px #1a7a45;--fs-btn-base:0 6px 0 #1a8a4c, 0 10px 22px #0003;min-width:200px;min-height:72px;box-shadow:var(--fs-btn-base);--lesson:#3fd27f;background:linear-gradient(#3fd27f,#24b263);border:4px solid #fff;border-radius:999px;gap:12px;padding:8px 30px 8px 20px;font-size:clamp(26px,3.6vmin,32px);line-height:1.05;animation:1.6s ease-out infinite fs-btn-ring}.btn.fs-start-btn:active{transform:translateY(4px);box-shadow:0 2px #1a8a4c}.fs-start-icon{text-shadow:none;font-size:1.3em}.fs-start-text{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.fs-start-word{white-space:nowrap}.fs-start-sub{opacity:.95;white-space:nowrap;text-overflow:ellipsis;max-width:16em;text-shadow:none;font-size:.5em;font-weight:700;overflow:hidden}.fs-stop-tap{filter:drop-shadow(0 3px 3px #0004);pointer-events:none;z-index:1;font-size:clamp(30px,4.6vmin,44px);line-height:1;animation:1.4s ease-in-out infinite fs-tap;position:absolute;bottom:-.35em;right:-.25em}@keyframes fs-tap{0%,to{transform:translate(0)}40%{transform:translate(-4px,-10px)}55%{transform:translate(-4px,-6px)scale(.92)}}.fs-confirm{z-index:90;padding:max(16px, var(--safe-t,0px)) max(16px, var(--safe-r,0px)) max(16px, var(--safe-b,0px)) max(16px, var(--safe-l,0px));-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--ink);background:#2b2d4277;place-items:center;font-family:Fredoka,"Baloo 2",Comic Sans MS,-apple-system,sans-serif;animation:.2s ease-out both show-fade;display:grid;position:fixed;inset:0}.fs-confirm-card{overscroll-behavior:contain;text-align:center;background:#fff;border:5px solid #ffe08a;border-radius:34px;flex-direction:column;align-items:center;gap:clamp(6px,1.6vmin,14px);width:min(560px,100%);max-height:100%;padding:clamp(18px,3.4vmin,32px) clamp(18px,4vmin,40px);animation:.46s cubic-bezier(.25,1.5,.5,1) both fs-confirm-in;display:flex;position:relative;overflow-y:auto;box-shadow:0 18px 50px #0004}@keyframes fs-confirm-in{0%{opacity:0;transform:scale(.6)translateY(40px)}}.fs-confirm-x{z-index:2;position:absolute;top:10px;right:10px}.fs-confirm-buddy{font-size:clamp(56px,12vmin,96px);line-height:1;animation:1.8s ease-in-out infinite fs-bob;position:relative}.fs-confirm-wave{transform-origin:70% 90%;font-size:.45em;animation:1.1s ease-in-out .3s 3 wave;position:absolute;top:-.1em;right:-.55em}.fs-confirm-card h2{color:var(--primary);margin:0;font-size:clamp(28px,5.4vmin,44px)}.fs-confirm-card p{color:var(--muted);margin:0;font-size:clamp(18px,3vmin,24px);font-weight:700}.fs-confirm-actions{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:6px;display:flex}.fs-confirm-actions .btn.big{min-height:60px;margin-top:0;padding:12px 28px;font-size:clamp(20px,3.2vmin,26px)}.btn.fs-confirm-stay{background:#2fbf71;box-shadow:0 5px #23955a}.btn.fs-confirm-stay:active{box-shadow:0 1px #23955a}.btn.fs-confirm-yes{color:var(--ink);background:#fff;border:3px solid #e3e8f2;box-shadow:0 5px #c9d1e0}.btn.fs-confirm-yes:active{box-shadow:0 1px #c9d1e0}.fs-setting{flex-direction:column;gap:4px;display:flex}.btn.fs-setting-btn{background:#2fbf71;min-height:44px;padding:8px 18px;font-size:17px;box-shadow:0 4px #23955a}.btn.fs-setting-btn:active{box-shadow:0 1px #23955a}.fs-setting-status{color:var(--muted);margin:0;font-size:13px;font-weight:600}.fs-come-back{width:100%;min-height:64px;font:inherit;color:var(--ink);cursor:pointer;text-align:left;background:linear-gradient(90deg,#eafff2,#fff);border:3px solid #bfeccf;border-radius:22px;align-items:center;gap:14px;padding:8px 18px 8px 10px;transition:transform .16s cubic-bezier(.34,1.56,.64,1),box-shadow .12s;animation:.42s cubic-bezier(.3,1.6,.5,1) both fs-pop;display:flex;box-shadow:0 4px #9fdcb7}.fs-come-back:active{transform:scale(.97)translateY(3px);box-shadow:0 1px #9fdcb7}.fs-come-back-pic{font-size:40px;line-height:1;position:relative}.fs-come-back-paw{animation:1.8s ease-in-out infinite fs-bob;display:inline-block}.fs-come-back-buddy{font-size:24px;position:absolute;bottom:-6px;right:-14px}.fs-come-back-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.fs-come-back-text b{color:#1f8f53;font-size:clamp(17px,2.4vmin,22px)}.fs-come-back-trail{gap:6px;display:flex}.fs-come-back-trail i{background:#eef1f7;border-radius:50%;place-items:center;width:26px;height:26px;font-size:13px;font-style:normal;font-weight:700;display:grid}.fs-come-back-trail i.done{background:#fff3c4}.fs-come-back-status{color:var(--muted);font-size:13px;font-weight:600}.fs-come-back-go{color:#fff;white-space:nowrap;background:#2fbf71;border-radius:999px;flex:none;justify-content:center;align-items:center;min-height:48px;padding:8px 20px;font-size:20px;font-weight:700;display:inline-flex;box-shadow:0 4px #23955a}.fs-lesson{flex-direction:column;display:flex;position:absolute;inset:0}.fs-lesson>.confetti{z-index:1;pointer-events:none}.fs-lesson-top{justify-content:space-between}.fs-lesson-title{background:#fff;border-radius:999px;align-items:center;gap:10px;padding:6px 20px 6px 8px;font-size:26px;font-weight:700;display:flex;box-shadow:0 4px #d5dbe8}.fs-lesson-title .fs-stop-num{background:var(--lesson,var(--accent));color:#fff;width:40px;height:40px;font-size:22px;position:static}.fs-lesson-icon{font-size:34px;line-height:1}.fs-step-dots{flex:1;justify-content:center;gap:10px;display:flex}.fs-step-dots i{background:#fff9;border:3px solid #fff;border-radius:50%;width:20px;height:20px;transition:background .3s,transform .3s}.fs-step-dots i.now{background:var(--lesson,var(--accent));transform:scale(1.25)}.fs-step-dots i.done{background:#ffd93d}.fs-lesson-body{flex:1;grid-template-columns:300px 1fr;gap:12px;min-height:0;padding:0 24px;display:grid}.fs-buddy{flex-direction:column;align-items:center;gap:10px;padding-top:8px;display:flex}.fs-buddy-face{background:#fff;border-radius:50%;place-items:center;width:130px;height:130px;font-size:84px;animation:2.2s ease-in-out infinite fs-bob;display:grid;box-shadow:0 8px #d5dbe8,0 12px 26px #0002}.fs-buddy.talking .fs-buddy-face{animation:.38s ease-in-out infinite alternate fs-talk}@keyframes fs-talk{to{transform:scale(1.06)rotate(-3deg)}}.fs-buddy-face.oops{animation:.42s fs-nope}.fs-buddy.dance .fs-buddy-face{animation:.7s ease-in-out infinite fs-dance}@keyframes fs-dance{25%{transform:rotate(-14deg)translateY(-14px)}75%{transform:rotate(14deg)translateY(-14px)}}.fs-bubble-text{text-align:center;box-shadow:var(--shadow);background:#fff;border-radius:22px;max-width:290px;padding:12px 16px;font-size:21px;font-weight:700;animation:.26s cubic-bezier(.3,1.6,.5,1) both fs-pop;position:relative}.fs-bubble-text:before{content:"";border:12px solid #0000;border-top:0;border-bottom-color:#fff;position:absolute;top:-12px;left:50%;translate:-50%}@keyframes fs-pop{0%{opacity:0;transform:scale(.6)}}.fs-stage{flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:0;display:flex;position:relative}.fs-art-slot{justify-content:center;align-items:center;gap:20px;animation:.38s cubic-bezier(.3,1.6,.5,1) both fs-pop;display:flex;position:relative}.fs-art{width:230px;height:auto;overflow:visible}.fs-sound{opacity:0}.fs-art.sing .fs-sound,.phase-demo .fs-sound{animation:1.2s ease-out infinite fs-sound}@keyframes fs-sound{0%{opacity:0;transform:translateY(6px)}30%{opacity:1}to{opacity:0;transform:translateY(-10px)}}.fs-bear{transform-origin:50% 100%;animation:2.4s ease-in-out infinite fs-sway}.fs-bird{animation:.9s ease-in-out infinite fs-hop}.fs-bird-wing{transform-box:fill-box;transform-origin:20%;animation:.3s ease-in-out infinite alternate fs-flap}@keyframes fs-sway{50%{transform:rotate(4deg)}}@keyframes fs-hop{50%{transform:translateY(-10px)}}@keyframes fs-flap{to{transform:rotate(-24deg)}}.fs-drum.hit .fs-drum-skin{transform-box:fill-box;transform-origin:50%;animation:.26s ease-out fs-skin}.fs-drum.hit .fs-stick{transform-box:fill-box;transform-origin:100% 100%;animation:.26s ease-out fs-stick}.fs-drum.hit .fs-sound{animation:.6s ease-out fs-sound}@keyframes fs-skin{30%{fill:#ffe08a;transform:scaleY(.6)}}@keyframes fs-stick{30%{transform:rotate(-18deg)}}.fs-housekey .fs-blk{animation:1.2s ease-in-out infinite fs-blink}@keyframes fs-blink{50%{fill:#5b7cfa}}.fs-bubble{width:200px;animation:3s ease-in-out infinite fs-float}@keyframes fs-float{50%{transform:translateY(-14px)scale(1.04)}}.fs-big-hand .hand-guide{width:220px;padding:8px;position:static}.fs-big-hand.curl .hand-finger{transition:transform .6s ease-in-out;transform:scaleY(.84)}.fs-big-hand .hand-finger{transform-box:fill-box;transform-origin:50% 100%;transition:transform .6s ease-in-out}.fs-skip{padding:10px 20px;font-size:18px;position:absolute;bottom:6px;right:0}.fs-ready{flex-direction:column;align-items:center;gap:14px;display:flex}.fs-go{padding:18px 46px;font-size:30px;animation:1.4s ease-out infinite fs-btn-ring}@keyframes fs-btn-ring{0%{box-shadow:var(--fs-btn-base,0 6px 0 #0003), 0 0 0 0 color-mix(in srgb, var(--lesson,#ffd23f) 70%, transparent)}to{box-shadow:var(--fs-btn-base,0 6px 0 #0003), 0 0 0 26px transparent}}.fs-targets{flex-wrap:wrap;justify-content:center;gap:10px;max-width:760px;display:flex;position:relative}.fs-target{width:54px;height:54px;color:var(--fc,var(--ink));border:4px solid var(--fc,#c9d1e0);background:#fff;border-radius:50%;place-items:center;font-size:28px;font-weight:700;transition:transform .2s,background .2s;display:grid}.fs-target.now{box-shadow:0 0 0 6px #fff, 0 0 22px 6px var(--fc,#ffd93d);animation:1.2s ease-in-out infinite fs-pulse;transform:scale(1.25)}.fs-target.done{color:#fff;background:#2ecc71;border-color:#fff;animation:.3s both fs-pop}.fs-target.soft{opacity:.5}.fs-fingers-game{flex-direction:column;align-items:center;gap:12px;display:flex}.fs-did-it:disabled{opacity:.55}.fs-finger-trail{gap:10px;display:flex}.fs-finger-trail span{border:4px solid var(--fc);width:44px;height:44px;color:var(--fc);background:#fff;border-radius:50%;place-items:center;font-size:22px;font-weight:700;display:grid}.fs-finger-trail span.now{background:var(--fc);color:#fff;transform:scale(1.2)}.fs-finger-trail span.done{color:#fff;background:#2ecc71;border-color:#fff}.fs-beats{flex-direction:column;align-items:center;gap:10px;display:flex;position:relative}.fs-countin{color:#fff;text-shadow:0 5px 0 var(--lesson), 0 8px 20px #0003;font-size:96px;font-weight:700;animation:.6s ease-out both fs-count}@keyframes fs-count{0%{opacity:0;transform:scale(1.8)}}.fs-beat-row{gap:14px;display:flex}.fs-beat{background:#ffffffa6;border:4px solid #fff;border-radius:50%;width:40px;height:40px;transition:background .12s}.fs-beat.now{background:#ffd93d;transition:transform 80ms;transform:scale(1.35)}.fs-beat.on{background:#2ecc71}.fs-sparkle{pointer-events:none;width:0;height:0;position:absolute;top:50%;left:50%}.fs-sparkle i{background:#ffd93d;border-radius:3px;width:14px;height:14px;margin:-7px;animation:.7s ease-out both fs-spark;position:absolute;rotate:45deg}.fs-sparkle i:nth-child(3n){background:#ff6b9d}.fs-sparkle i:nth-child(3n+1){background:#4dc3ff}@keyframes fs-spark{0%{transform:rotate(var(--a)) translateY(0) scale(1.4);opacity:1}to{transform:rotate(var(--a)) translateY(calc(-1 * var(--d) * 2.2)) scale(.2);opacity:0}}.fs-result{flex-direction:column;align-items:center;gap:22px;display:flex}.fs-result-stars{align-items:flex-end;gap:14px;display:flex;position:relative}.fs-result-burst{z-index:-1;background:repeating-conic-gradient(#fff6 0 12deg, transparent 12deg 24deg);border-radius:50%;width:420px;height:420px;animation:10s linear infinite fs-spin,.5s both fs-pop;position:absolute;top:50%;left:50%;translate:-50% -50%;-webkit-mask:radial-gradient(circle,#000 30%,#0000 70%);mask:radial-gradient(circle,#000 30%,#0000 70%)}.fs-result-banner{color:#fff;background:var(--lesson,var(--accent));box-shadow:0 6px 0 color-mix(in srgb, var(--lesson,#5b7cfa) 65%, #000);border-radius:999px;padding:8px 30px;font-size:40px;font-weight:700;animation:.5s cubic-bezier(.3,1.6,.5,1) both fs-pop}.fs-result-star{animation:.6s cubic-bezier(.3,1.8,.5,1) both fs-star-in}.fs-result-star:not(.on){opacity:.45}@keyframes fs-star-in{0%{opacity:0;transform:scale(0)rotate(-180deg)}}.fs-result-actions{align-items:center;gap:14px;display:flex}.fs-surprise{--fs-btn-base:0 5px 0 #d98a0e;box-shadow:var(--fs-btn-base);background:#ffb02e;animation:1.1s ease-out infinite fs-btn-ring}.fs-piano-wrap{justify-content:center;height:42%;min-height:200px;padding:6px 24px 14px;display:flex}.mini-piano{width:100%;height:100%;overflow:visible}.mp-key rect{transition:fill .16s}.mp-key.white rect{fill:#fff;stroke:#2b2d42;stroke-width:.05px}.mp-key.black rect{fill:#2b2d42}.mp-key.zone-low.white rect{fill:#f3dcc7}.mp-key.zone-high.white rect{fill:#cdeeff}.mp-key.two-black rect{fill:#5b7cfa;animation:1s ease-in-out infinite fs-blinkkey}@keyframes fs-blinkkey{50%{fill:#2b2d42}}.mp-key.target.white rect{fill:#fff6c9;stroke:#ffb02e;stroke-width:.1px}.mp-key.target.black rect{fill:#ffb02e}.mp-key.glow rect{fill:#ffe066;animation:.9s ease-in-out infinite fs-keyglow}@keyframes fs-keyglow{50%{fill:#fff6c9}}.mp-key.down.white rect{fill:#cfe3ff}.mp-key.down.black rect{fill:#5b7cfa}.mp-key.hit.white rect,.mp-key.hit.black rect{animation:.6s ease-out fs-keyhit}@keyframes fs-keyhit{0%{fill:#2ecc71}to{}}.mp-key.miss rect{animation:.5s ease-out fs-keymiss}@keyframes fs-keymiss{0%{fill:#c8b6ff}to{}}.mp-middle{fill:#ff6b9d}.mp-house path{fill:#ff6b6b}.mp-house rect{fill:#ffd93d}.mp-house .mp-door{fill:#a46b47}.mp-house{animation:.4s both fs-pop}.mp-house.main{transform-box:fill-box;animation:.4s both fs-pop,1.4s ease-in-out .4s infinite fs-house}@keyframes fs-house{50%{translate:0 -.12px}}.mp-finger circle{stroke:#fff;stroke-width:.06px}.mp-finger text{fill:#fff;font-weight:700}.mp-finger.now circle{stroke:#ffd93d;stroke-width:.12px}.mp-key[style],.mini-piano [class*=mp-key]{cursor:default}.fs-demo-hand{transition:transform .26s cubic-bezier(.3,1.2,.5,1)}.fs-hand-palm{fill:#ffd9b8;stroke:#d99a6c;stroke-width:.06px}.fs-hand-finger rect{fill:#ffd9b8;stroke:#d99a6c;stroke-width:.05px;transition:transform .12s}.fs-hand-finger circle{fill:#fffc;stroke:var(--fc);stroke-width:.06px;transition:transform .12s,fill .12s}.fs-hand-finger text{fill:var(--fc);font-weight:700}.fs-hand-finger.press rect,.fs-hand-finger.press circle,.fs-hand-finger.press text{transform:translateY(-.18px)}.fs-hand-finger.press circle{fill:var(--fc)}.fs-hand-finger.press text{fill:#fff}.fs-explorer{background:radial-gradient(circle at 50% 45%,#5b3fbf 0%,#2b1f63 60%,#170f3a 100%);place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.fs-rays{background:repeating-conic-gradient(#ffffff14 0deg 10deg,#0000 10deg 20deg);width:200vmax;height:200vmax;animation:18s linear infinite fs-spin;position:absolute;top:45%;left:50%;translate:-50% -50%}@keyframes fs-spin{to{transform:rotate(360deg)}}.fs-explorer-x{z-index:5;position:absolute;top:16px;right:16px}.fs-explorer-card{z-index:2;flex-direction:column;align-items:center;gap:10px;display:flex;position:relative}.fs-explorer-sticker-wrap{filter:drop-shadow(0 12px 30px #ffd93d88);animation:1.1s cubic-bezier(.25,1.6,.5,1) both fs-sticker-in}@keyframes fs-sticker-in{0%{transform:scale(0)rotate(-540deg)}70%{transform:scale(1.15)rotate(10deg)}}.fs-compass{transform-origin:100px 92px;animation:2.4s ease-in-out 1.2s infinite fs-wobble}@keyframes fs-wobble{25%{rotate:14deg}75%{rotate:-14deg}}.fs-explorer-title{color:#ffd93d;text-shadow:0 5px #c98a00,0 10px 30px #000a;margin:0;font-size:58px;animation:.6s cubic-bezier(.3,1.6,.5,1) .6s both fs-pop}.fs-explorer-name{color:#fff;font-size:34px;font-weight:700;animation:.5s .9s both fs-pop}.fs-explorer-buddy{font-size:80px;animation:.7s ease-in-out infinite fs-dance}.fs-reveal-btn{background:#ffb02e;padding:16px 38px;font-size:28px;animation:.5s 1.4s both fs-pop;box-shadow:0 5px #d98a0e}.fs-fireworks{pointer-events:none;position:absolute;inset:0}.fs-firework{width:0;height:0;position:absolute}.fs-firework i{width:10px;height:10px;animation:1.6s ease-out infinite fs-burst;animation-delay:inherit;background:#ffd93d;border-radius:50%;margin:-5px;position:absolute}.fs-firework.f0{animation-delay:.2s;top:22%;left:18%}.fs-firework.f1{animation-delay:.7s;top:20%;left:80%}.fs-firework.f2{animation-delay:1.1s;top:66%;left:12%}.fs-firework.f3{animation-delay:.4s;top:62%;left:86%}.fs-firework.f4{animation-delay:1.3s;top:10%;left:34%}.fs-firework.f5{animation-delay:.9s;top:84%;left:66%}.fs-firework.f1 i,.fs-firework.f4 i{background:#ff6b9d}.fs-firework.f2 i,.fs-firework.f5 i{background:#4dc3ff}@keyframes fs-burst{0%{transform:rotate(var(--a)) translateY(0);opacity:1}70%{opacity:1}to{transform:rotate(var(--a)) translateY(-90px);opacity:0}}.fs-chest-wrap{place-items:end center;width:360px;height:300px;display:grid;position:relative}.fs-song-fan{width:0;height:0;position:absolute;top:58%;left:50%}.fs-song-fly{--angle:calc((var(--k) - (var(--n) - 1) / 2) * 22deg);width:120px;animation:fs-fly .9s calc(var(--k) * .11s + .4s) cubic-bezier(.2, 1.4, .4, 1) both;background:#fff;border-radius:18px;flex-direction:column;align-items:center;margin-top:-40px;margin-left:-60px;padding:6px 4px;display:flex;position:absolute;box-shadow:0 6px 18px #0005}@keyframes fs-fly{0%{opacity:0;transform:rotate(0)translateY(0)scale(.2)}to{transform:rotate(var(--angle)) translateY(calc(-1 * var(--fly))) rotate(calc(-1 * var(--angle)));opacity:1}}.fs-song-fly{transform:rotate(var(--angle)) translateY(-230px) rotate(calc(-1 * var(--angle)))}.fs-song-name{text-align:center;font-size:13px;font-weight:700;line-height:1.1}.home-panel{position:relative}.fs-songs-lock{z-index:4;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:inherit;background:#ffffffd9;place-items:center;display:grid;position:absolute;inset:0}.fs-lock-card{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:16px;display:flex}.fs-lock-card h2{color:var(--primary);margin:0;font-size:28px}.fs-lock-pic{font-size:76px;line-height:1;animation:2s ease-in-out infinite fs-bob;position:relative}.fs-lock-lock{font-size:40px;position:absolute;bottom:-6px;right:-26px}.fs-lock-trail{align-items:center;gap:8px;display:flex}.fs-lock-trail span{background:#eef1f7;border-radius:50%;place-items:center;width:40px;height:40px;font-weight:700;display:grid}.fs-lock-trail span.done{background:#fff3c4}.fs-lock-trail .chest{background:0 0;font-size:30px}.fs-songs-lock .btn.big{padding:16px 34px;font-size:26px}.btn.fs-btn{white-space:nowrap;background:#2fbf71;padding:6px 12px;font-size:14px;box-shadow:0 3px #23955a}.level-picker{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.level-btn{font:inherit;color:var(--ink);cursor:pointer;background:#f7f9fc;border:3px solid #e3e8f2;border-radius:18px;flex-direction:column;align-items:center;gap:4px;padding:10px 6px 8px;transition:transform .16s cubic-bezier(.34,1.56,.64,1),border-color .12s,background .12s;display:flex}.level-btn:active{transform:scale(.93)}.level-btn.on{border-color:var(--accent);background:#eef2ff;box-shadow:0 0 0 3px #5b7cfa33}.level-pic{font-size:44px;line-height:1;position:relative}.level-badge{font-size:22px;position:absolute;bottom:-4px;right:-18px}.level-btn.on .level-icon{animation:.38s cubic-bezier(.3,1.6,.5,1) both fs-pop;display:inline-block}.level-label{font-size:15px;font-weight:700}@media (height<=640px){.fs-buddy-face{width:96px;height:96px;font-size:60px}.fs-stop-disc{width:80px;height:80px}.fs-stop-icon{font-size:40px}.fs-lesson-body{grid-template-columns:240px 1fr}}@media (prefers-reduced-motion:reduce){.fs-root,.fs-root *,.fs-songs-lock *,.level-picker *,.fs-confirm,.fs-confirm *,.fs-come-back,.fs-come-back *{transition:none!important;animation:none!important}.fs-song-fly{transform:rotate(var(--angle)) translateY(-230px) rotate(calc(-1 * var(--angle)));opacity:1}}.version-badge{left:calc(8px + env(safe-area-inset-left));bottom:calc(4px + env(safe-area-inset-bottom));z-index:11;pointer-events:none;-webkit-user-select:none;user-select:none;letter-spacing:.02em;color:#2b2d42;opacity:.4;font-variant-numeric:tabular-nums;font-size:10px;font-weight:600;position:fixed}.fs{pointer-events:none;position:absolute;inset:0;overflow:hidden}.fs svg{display:block}.fs-ground{width:100%;height:14%;position:absolute;bottom:0;left:0}.fs-cloud{opacity:.95;width:min(18vw,200px);animation:22s ease-in-out infinite alternate fs-drift;position:absolute}@keyframes fs-drift{0%{transform:translate(-30px)}to{transform:translate(30px)}}@keyframes fs-pop-in{0%{opacity:0;transform:translateY(40px)scale(.2)}}.fs-sun{width:150px;height:150px;position:absolute}.fs-sun-rays{width:100%;height:100%;animation:14s linear infinite fs-spin;position:absolute;inset:0}.fs-sun-face{filter:drop-shadow(0 0 18px #ffe06699);width:56%;height:56%;position:absolute;inset:22%}.fs-farm-sun{animation:.7s cubic-bezier(.2,1.5,.4,1) both fs-pop-in;top:4%;left:3%}.fs-boat-sun{animation:.7s cubic-bezier(.2,1.5,.4,1) both fs-pop-in;top:4%;left:4%}.fs-spider-sun{animation:fs-sun-out var(--fd) linear both;top:5%;right:33%}@keyframes fs-sun-out{0%,36%{opacity:0;transform:translateY(90px)scale(.4)}50%{opacity:1;transform:translateY(-6px)scale(1.12)}58%,to{opacity:1;transform:none}}.fs-rainbow{opacity:.8;transform-origin:50% 100%;width:min(46vw,520px);animation:fs-rainbow var(--fd) linear both;position:absolute;top:14%;left:5%}@keyframes fs-rainbow{0%,48%{opacity:0;transform:scale(.85)}64%,to{opacity:.8;transform:none}}.fs-spout{width:90px;height:62%;position:absolute;bottom:8%;right:18%}.fs-spout svg{width:100%;height:100%}.fs-drip{opacity:0;width:12px;height:16px;animation:fs-drip .7s ease-in infinite, fs-rain-window var(--fd) linear both;background:#9fd4ff;border-radius:50%/60% 60% 40% 40%;position:absolute;bottom:0;right:-4px}@keyframes fs-drip{0%{transform:translateY(0)}to{transform:translateY(46px)}}@keyframes fs-rain-window{0%,36%{opacity:1}44%,to{opacity:0}}.fs-puddle{opacity:0;width:160px;height:24px;animation:fs-puddle var(--fd) linear both;background:radial-gradient(#8cc8f5 0 55%,#8cc8f500 72%);border-radius:50%;position:absolute;bottom:5%;right:calc(18% - 80px)}@keyframes fs-puddle{0%{opacity:0;transform:scale(.4)}12%,42%{opacity:.9;transform:none}62%,to{opacity:0;transform:scaleX(.1)}}.fs-spider-climb{width:100px;animation:fs-climb var(--fd) ease-in-out both;position:absolute;bottom:8%;right:calc(18% - 5px);transform:translateY(-60vh)}@keyframes fs-climb{0%,42%{transform:translateY(0)}72%{transform:translateY(-60vh)}80%{transform:translateY(calc(-60vh - 26px))}86%{transform:translateY(-60vh)}92%{transform:translateY(calc(-60vh - 16px))}to{transform:translateY(-60vh)}}.fs-spider-bug{transform-origin:50% 80%;width:100%;height:auto;animation:.5s ease-in-out infinite alternate fs-wiggle;overflow:visible}@keyframes fs-wiggle{0%{transform:rotate(-9deg)}to{transform:rotate(9deg)}}.fs-storm{opacity:0;animation:fs-storm var(--fd) linear both;background:linear-gradient(#56637d,#9aa9bf);position:absolute;inset:0}@keyframes fs-storm{0%,34%{opacity:.72}48%,to{opacity:0}}.fs-rainclouds{opacity:0;animation:fs-clouds-away var(--fd) linear both;position:absolute;inset:0}@keyframes fs-clouds-away{0%,34%{opacity:1;transform:none}48%,to{opacity:0;transform:translateY(-40%)}}.fs-raincloud{width:min(30vw,330px);position:absolute;top:1%}.fs-farm-ground{height:24%}.fs-fence{width:54%;height:52px;position:absolute;bottom:15%;left:18%}.fs-barn{transform-origin:50% 100%;width:min(23vw,250px);animation:.7s cubic-bezier(.2,1.5,.4,1) both fs-pop-in;position:absolute;bottom:7%;right:3%}.fs-barn svg{width:100%;height:auto}.fs-animal{transform-origin:50% 100%;animation:.65s cubic-bezier(.2,1.6,.4,1) both fs-pop-in;position:absolute;bottom:6%}.fs-animal svg{width:100%;height:auto}.fs-animal-bop{transform-origin:50% 100%;animation:.7s ease-in-out infinite fs-bop}@keyframes fs-bop{0%,to{transform:none}30%{transform:translateY(-16px)rotate(-5deg)scale(.97,1.04)}60%{transform:translateY(0)rotate(3deg)scale(1.06,.94)}}.fs-say{white-space:nowrap;color:#5a3a20;opacity:0;background:#fff;border-radius:14px;padding:2px 12px;font-size:20px;font-weight:800;animation:1.7s ease-out both fs-say;position:absolute;top:-30px;left:50%;transform:translate(-50%);box-shadow:0 3px #0002}@keyframes fs-say{0%{opacity:0;transform:translate(-50%,10px)scale(.4)}15%{opacity:1;transform:translate(-50%)scale(1.1)}25%,80%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-12px)}}.fs-sea{height:26%;animation:1.1s cubic-bezier(.2,.8,.3,1) both fs-sea-in;position:absolute;bottom:0;left:0;right:0}@keyframes fs-sea-in{0%{transform:translateY(100%)}}.fs-wave{will-change:transform;width:calc(100% + 600px);animation:linear infinite fs-wave;position:absolute;bottom:0;left:0}.fs-wave.w3{background:url(data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%20600%2080%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20fill%3D%27%238fd8ff%27%20d%3D%27M0%2030%20Q75%204%20150%2030%20T300%2030%20T450%2030%20T600%2030%20L600%2080%20L0%2080%20Z%27/%3E%3C/svg%3E) 0 0/600px 80px repeat-x,linear-gradient(#0000 70px,#8fd8ff 70px);animation-duration:9s;top:0}.fs-wave.w2{background:url(data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%20600%2080%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20fill%3D%27%234fb6ef%27%20d%3D%27M0%2030%20Q75%204%20150%2030%20T300%2030%20T450%2030%20T600%2030%20L600%2080%20L0%2080%20Z%27/%3E%3C/svg%3E) 0 0/600px 80px repeat-x,linear-gradient(#0000 70px,#4fb6ef 70px);animation-duration:6s;top:24%}.fs-wave.w1{background:url(data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%20600%2080%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20fill%3D%27%232b8fd6%27%20d%3D%27M0%2030%20Q75%204%20150%2030%20T300%2030%20T450%2030%20T600%2030%20L600%2080%20L0%2080%20Z%27/%3E%3C/svg%3E) 0 0/600px 80px repeat-x,linear-gradient(#0000 70px,#2b8fd6 70px);animation-duration:4s;top:50%}@keyframes fs-wave{to{transform:translate(-600px)}}.fs-fish{opacity:0;width:70px;animation:2.4s ease-in-out infinite fs-jump;position:absolute;bottom:40%}.fs-fish svg{width:100%;height:auto;transform:scaleX(-1)}@keyframes fs-jump{0%{opacity:0;transform:translateY(50px)rotate(-50deg)}12%{opacity:1}50%{transform:translate(50px,-110px)rotate(0)}88%{opacity:1;transform:translate(100px,40px)rotate(50deg)}to{opacity:0;transform:translate(100px,60px)rotate(50deg)}}.seat-hay .finale-seat.fs-hay-seat{width:190px;height:auto;bottom:0}.seat-hay .finale-owl{margin-bottom:78px}.finale-buddy.seat-boat{animation:fs-row var(--fd,5.6s) linear both;bottom:7%;left:0;transform:translate(16vw)}@keyframes fs-row{0%{transform:translate(-30vw)rotate(-3deg)}10%{transform:translate(-21vw)rotate(3deg)}20%{transform:translate(-12vw)rotate(-3deg)}30%{transform:translate(-4vw)rotate(3deg)}40%{transform:translate(4vw)rotate(-3deg)}50%{transform:translate(11vw)rotate(3deg)}58%{transform:translate(16vw)rotate(-2deg)}68%{transform:translate(16vw)rotate(2deg)}78%{transform:translate(16vw)rotate(-2deg)}88%{transform:translate(16vw)rotate(2deg)}to{transform:translate(16vw)rotate(0)}}.seat-boat .finale-seat.fs-boat-seat{z-index:2;width:250px;height:auto;bottom:-16px;overflow:visible}.seat-boat .finale-owl{margin-bottom:40px}.fs-oar{transform-box:view-box;transform-origin:120px 40px;animation:.9s ease-in-out infinite alternate fs-oar}.fs-oar-back{animation-direction:alternate-reverse}@keyframes fs-oar{0%{transform:rotate(-12deg)}to{transform:rotate(14deg)}}.motif-rain-sun .finale-cheer,.motif-farm .finale-cheer,.motif-waves .finale-cheer{top:54%}.finale.reduced .fs *,.finale.reduced .fs-oar{animation:none!important}.finale.reduced .fs{animation:.9s ease-out both finale-fade}@media (prefers-reduced-motion:reduce){.fs *,.fs-oar{animation:none!important}.finale-buddy.seat-boat{animation:.9s ease-out both finale-fade}}.finale{z-index:60;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:opacity .42s ease-in;animation:.25s ease-out both finale-in;position:fixed;inset:0;overflow:hidden}.finale.leaving{opacity:0}@keyframes finale-in{0%{opacity:0}}.finale-sky{background:linear-gradient(180deg, var(--finale-sky-top), var(--finale-sky-bottom));opacity:var(--finale-dim,.8);animation:.65s ease-out both finale-fade;position:absolute;inset:0}.finale-backdrop{pointer-events:none;position:absolute;inset:0;overflow:hidden}.finale-owl svg{width:150px;height:150px;display:block}.finale-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.finale .finale-target{z-index:3;pointer-events:none;box-shadow:0 0 0 3px var(--finale-accent,#ffe066), 0 0 26px var(--finale-accent,#ffe066);margin:0;animation:.6s ease-out both finale-in;position:fixed}.finale-plus{z-index:4;pointer-events:none;color:#fff;text-shadow:0 2px 10px #0008;font-size:30px;font-weight:800;animation:1.1s ease-out both finale-plus;position:fixed;transform:translate(-50%)}@keyframes finale-plus{0%{opacity:0;transform:translate(-50%,10px)scale(.6)}25%{opacity:1;transform:translate(-50%,26px)scale(1.25)}to{opacity:0;transform:translate(-50%,60px)scale(1)}}.finale-buddy{z-index:2;pointer-events:none;place-items:end center;width:220px;height:220px;animation:.7s cubic-bezier(.2,1.4,.4,1) .25s both finale-buddy-in;display:grid;position:absolute;bottom:7%;left:7%}@keyframes finale-buddy-in{0%{opacity:0;transform:translateY(120%)scale(.6)}}.finale-owl{z-index:1;transform-origin:50% 90%;filter:drop-shadow(0 6px 14px #0007);margin-bottom:52px;font-size:118px;line-height:1;animation-duration:.7s;animation-timing-function:ease-in-out;animation-fill-mode:both;position:relative}.finale-owl.move-bounce{animation-name:dance-bounce}.finale-owl.move-spin{animation-name:dance-spin}.finale-owl.move-wiggle{animation-name:dance-wiggle}.finale-owl.move-flap{animation-name:dance-flap}.finale-owl.move-jump{animation-name:dance-jump}.finale-owl.move-sway{animation-name:dance-sway}.finale-owl.move-flip{animation-name:dance-flip}@keyframes dance-bounce{0%,to{transform:translateY(0)scale(1)}25%{transform:translateY(0)scale(1.12,.88)}55%{transform:translateY(-34px)scale(.94,1.08)}80%{transform:translateY(0)scale(1.08,.92)}}@keyframes dance-spin{0%{transform:rotate(0)translateY(0)}50%{transform:rotate(180deg)translateY(-14px)scale(1.08)}to{transform:rotate(360deg)translateY(0)}}@keyframes dance-wiggle{0%,to{transform:rotate(0)}20%{transform:rotate(-16deg)}40%{transform:rotate(14deg)}60%{transform:rotate(-12deg)}80%{transform:rotate(9deg)}}@keyframes dance-flap{0%,to{transform:scale(1)translateY(0)}30%{transform:scale(1.18,.92)translateY(-8px)}50%{transform:scale(.9,1.12)translateY(-22px)}70%{transform:scale(1.14,.94)translateY(-8px)}}@keyframes dance-jump{0%,to{transform:translateY(0)rotate(0)}15%{transform:translateY(6px)scale(1.1,.9)}50%{transform:translateY(-60px)rotate(-12deg)scale(1.05)}85%{transform:translateY(4px)scale(1.08,.92)}}@keyframes dance-flip{0%,to{transform:translateY(0)rotate(0)}15%{transform:translateY(8px)scale(1.12,.86)}55%{transform:translateY(-90px)rotate(-200deg)}80%{transform:translateY(-20px)rotate(-360deg)}92%{transform:translateY(4px)rotate(-360deg)scale(1.1,.9)}}@keyframes dance-sway{0%,to{transform:translate(0)rotate(0)}25%{transform:translate(-18px)rotate(-10deg)}75%{transform:translate(18px)rotate(10deg)}}.finale-seat{position:absolute;bottom:0;left:50%;transform:translate(-50%)}.seat-moon .finale-seat{fill:#ffe9a8;filter:drop-shadow(0 0 18px #ffe066aa)drop-shadow(0 0 40px #ffd23f66);width:220px;height:220px;animation:1.6s ease-in-out infinite alternate finale-glow;bottom:-10px;overflow:visible}.seat-moon .finale-owl{margin-bottom:40px}.seat-cloud .finale-seat{background:#fff;border-radius:40px;width:200px;height:62px;box-shadow:0 6px 24px #0003}.seat-cloud .finale-seat:before,.seat-cloud .finale-seat:after{content:"";background:#fff;border-radius:50%;position:absolute}.seat-cloud .finale-seat:before{width:90px;height:90px;top:-44px;left:26px}.seat-cloud .finale-seat:after{width:70px;height:70px;top:-30px;right:30px}.seat-cloud .finale-owl{margin-bottom:40px}@keyframes finale-glow{to{opacity:.85}}.finale-cheer{z-index:2;text-align:center;pointer-events:none;white-space:nowrap;position:absolute;top:64%;left:50%;transform:translate(-50%)}.motif-fireworks .finale-cheer{top:62%}.finale-cheer-text{color:#fff;letter-spacing:1px;text-shadow:0 0 18px var(--finale-accent,#ffe066), 0 4px 0 #0005, 0 0 40px var(--finale-accent,#ffe066);font-size:clamp(40px,7vw,76px);font-weight:800;animation:.7s cubic-bezier(.2,1.6,.4,1) both finale-pop}.finale-badges{justify-content:center;gap:12px;margin-top:10px;display:flex}.finale-badges span{color:#3a2a00;background:linear-gradient(#fff3b0,#ffd23f);border-radius:999px;padding:6px 16px;font-size:24px;font-weight:800;animation:.6s cubic-bezier(.2,1.6,.4,1) .25s both finale-pop;box-shadow:0 4px #c99a00,0 0 20px #ffe06699}@keyframes finale-pop{0%{opacity:0;transform:scale(.3)}}.finale-skip{z-index:2;color:#fff8;pointer-events:none;font-size:14px;font-weight:600;position:absolute;bottom:14px;right:18px}.finale-calm{position:absolute;inset:0}.finale-calm-star{filter:drop-shadow(0 0 30px var(--finale-accent,#ffe066));font-size:min(34vh,260px);line-height:1;animation:1.2s ease-out .2s both finale-fade;position:absolute;top:36%;left:50%;transform:translate(-50%,-50%)}.finale.reduced .finale-buddy,.finale.reduced .finale-cheer-text,.finale.reduced .finale-badges span{animation:.9s ease-out both finale-fade}@keyframes finale-fade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.finale-owl,.finale-plus,.seat-moon .finale-seat{animation:none!important}}.finale-actions{left:0;right:0;bottom:calc(44px + env(safe-area-inset-bottom,0px));z-index:5;cursor:default;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;padding:0 16px;animation:.52s cubic-bezier(.2,1.4,.4,1) .35s both finale-actions-in;display:flex;position:absolute}.finale-actions .btn.big{white-space:nowrap;min-height:56px;margin:0;padding:12px 26px;font-size:24px}.finale-actions .btn.finale-again{color:var(--ink);background:#fff;box-shadow:0 5px #c9cfdd}.finale-actions .btn.finale-next span{font-size:1.1em}@keyframes finale-actions-in{0%{opacity:0;transform:translateY(40px)scale(.8)}}.finale.leaving .finale-actions{opacity:0}@media (prefers-reduced-motion:reduce){.finale-actions{animation:none}}@media (height<=520px){.finale-actions{bottom:calc(10px + env(safe-area-inset-bottom,0px));gap:10px}.finale-actions .btn.big{min-height:48px;padding:8px 18px;font-size:20px}.mini-celebration .finale-actions{bottom:4px}.mini-celebration .finale-skip{display:none}}@font-face{font-family:Fredoka;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fredoka-latin-3A2AqFQf.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--sky-top:#8fd3ff;--sky-bottom:#e6f7ff;--grass:#7ed957;--grass-dark:#5cc93f;--hill-far:#b9e8a3;--hill-near:#93dc78;--sun:#ffd93d;--panel:#fff;--ink:#2b2d42;--muted:#6c7a93;--primary:#ff6b9d;--primary-dark:#e8508a;--accent:#5b7cfa;--ok:#2ecc71;--bad:#ff5d5d;--guide:#4a7dff;--guide-dark:#3a63d4;--guide-soft:#dbe6ff;--right-soft:#b9ecc8;--right-dark:#58b47e;--wrong-soft:#ffd9b0;--wrong-dark:#cf9560;--tile:#5a76e6;--shadow:0 8px 24px #2b2d4222;--radius:22px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--sky-bottom);color:var(--ink);touch-action:manipulation;-webkit-user-select:none;user-select:none;font-family:Fredoka,"Baloo 2",Comic Sans MS,-apple-system,sans-serif;overflow:hidden}.app{grid-template-rows:auto 1fr 28dvh;grid-template-columns:minmax(0,1fr);height:100dvh;display:grid}.topbar{background:var(--panel);z-index:3;align-items:center;gap:14px;min-width:0;padding:8px 16px;display:flex;overflow:hidden;box-shadow:0 2px 12px #2b2d4214}@media (width<=1200px){.topbar .brand{font-size:0}.topbar .brand:before{content:"🎹";font-size:22px}}.brand{color:var(--primary);white-space:nowrap;font-size:20px;font-weight:700}.song-title{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:600;overflow:hidden}.progressbar{background:#eef1f7;border-radius:13px;width:170px;height:26px;position:relative;overflow:hidden}.progressbar-fill{background:linear-gradient(90deg, var(--ok), #a6f5c3);height:100%;transition:width .2s ease-out}.progress{color:var(--ink);font-variant-numeric:tabular-nums;place-items:center;font-size:14px;font-weight:700;display:grid;position:absolute;inset:0}.meter{background:#eef1f7;border-radius:13px;width:130px;height:26px;position:relative;overflow:hidden}.meter-bar{background:linear-gradient(90deg, #ffe08a, var(--primary));height:100%;transition:width 60ms linear}.meter-note{place-items:center;font-size:13px;font-weight:700;display:grid;position:absolute;inset:0}.player-chip{font:inherit;color:var(--ink);cursor:pointer;white-space:nowrap;background:#fff;border:2px solid #eef1f7;border-radius:999px;align-items:center;gap:6px;min-width:44px;min-height:44px;padding:3px 10px 3px 3px;font-size:15px;font-weight:700;display:flex;box-shadow:0 3px #d5dbe8}.player-chip.compact{padding-right:3px}.player-chip.compact .player-chip-name,.player-chip.compact .player-chip-switch{display:none}.player-chip:active{transform:translateY(3px);box-shadow:0 0 #d5dbe8}.player-chip-name{text-overflow:ellipsis;max-width:120px;overflow:hidden}.player-chip-switch{color:var(--muted);font-size:13px}.icon-btn{cursor:pointer;background:#eef1f7;border:0;border-radius:50%;width:38px;height:38px;font-size:18px}.icon-btn.off{opacity:.55}.diag{z-index:6;color:#fff;font-variant-numeric:tabular-nums;background:#2b2d42cc;border-radius:10px;padding:6px 10px;font-size:13px;font-weight:600;position:fixed;top:60px;right:16px}.stage{background:linear-gradient(180deg, var(--sky-top), var(--sky-bottom) 70%);position:relative;overflow:hidden}.scene{position:absolute;inset:0;overflow:hidden}.sun{background:var(--sun);border-radius:50%;width:90px;height:90px;animation:20s linear infinite sun-spin;position:absolute;top:24px;right:60px;box-shadow:0 0 0 18px #ffd93d33,0 0 0 36px #ffd93d1a}@keyframes sun-spin{to{transform:rotate(360deg)}}.moon{background:#fff6c2;border-radius:50%;width:76px;height:76px;position:absolute;top:28px;right:80px;box-shadow:inset -18px -8px #e8d98a,0 0 0 16px #fff6c21a,0 0 40px #fff6c266}.stage.dark .overlay{background:#0b134066}.stage.dark .teacher-bubble,.stage.dark .teacher-avatar{box-shadow:0 8px 24px #0006}.decor{pointer-events:none;position:absolute;inset:0;overflow:hidden}.stars-drift{width:200%;animation:140s linear infinite drift}@keyframes drift{to{transform:translate(-50%)}}.star{background:#fff;border-radius:50%;animation:3s ease-in-out infinite twinkle;position:absolute;box-shadow:0 0 6px #fff}.star.big{width:6px;height:6px;animation-duration:2.2s;box-shadow:0 0 10px #fff,0 0 20px #ffe066}@keyframes twinkle{0%,to{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.flake{background:#fff;border-radius:50%;animation-name:fall,sway;animation-timing-function:linear,ease-in-out;animation-iteration-count:infinite,infinite;position:absolute;top:-12px;box-shadow:0 0 4px #fff}@keyframes fall{to{transform:translateY(110vh)}}@keyframes sway{0%,to{margin-left:0}50%{margin-left:24px}}.balloon{background:var(--balloon);border-radius:50%/45% 45% 55% 55%;width:34px;height:42px;animation:linear infinite rise;position:absolute;bottom:-90px;box-shadow:inset -6px -6px #0001}.balloon:after{content:"";background:#0003;width:2px;height:40px;position:absolute;top:100%;left:50%;transform:translate(-50%)}@keyframes rise{0%{transform:translateY(0)translate(0)}50%{transform:translateY(-50vh)translate(16px)}to{transform:translateY(-110vh)translate(-8px)}}.layer{will-change:background-position;background-repeat:repeat-x;position:absolute;left:0;right:0}.clouds{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 520 120'><g fill='white' opacity='0.95'><ellipse cx='70' cy='60' rx='60' ry='26'/><ellipse cx='100' cy='46' rx='34' ry='26'/><ellipse cx='40' cy='52' rx='28' ry='20'/><ellipse cx='340' cy='40' rx='70' ry='28'/><ellipse cx='380' cy='26' rx='38' ry='26'/><ellipse cx='300' cy='34' rx='30' ry='20'/></g></svg>");background-size:520px 120px;height:120px;top:6%}.hills-far{background-size:600px 140px;height:140px;bottom:56px}.hills-near{background-size:800px 100px;height:100px;bottom:56px}.grass{background-size:160px 56px;height:56px;bottom:0}.props{pointer-events:none;will-change:transform;width:3600px;height:90px;position:absolute;bottom:48px;left:0}.prop{transform-origin:50% 100%;filter:drop-shadow(0 3px 2px #0002);line-height:1;animation:2.6s ease-in-out infinite prop-bob;position:absolute;bottom:0}@keyframes prop-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.kid-slot{width:128px;height:192px;position:absolute;bottom:46px;left:6%}.kid{transform-origin:50% 100%;width:100%;height:100%}.kid[data-hop]{animation:.42s ease-out kid-hop}@keyframes kid-hop{0%{transform:translateY(0)scaleY(1)}30%{transform:translateY(-34px)scaleY(1.05)}70%{transform:translateY(0)scaleY(.94)}to{transform:translateY(0)scaleY(1)}}.kid-body{transform-origin:62px 170px;animation:2.6s ease-in-out infinite kid-idle}@keyframes kid-idle{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.kid-leg{transform-origin:62px 112px}.kid-shin{transform-origin:62px 142px}.kid-arm{transform-origin:62px 80px}.kid-forearm{transform-origin:62px 104px;transform:rotate(-18deg)}.kid.walking .kid-body{animation:.36s ease-in-out infinite walk-lean-bob}@keyframes walk-lean-bob{0%,to{transform:translateY(0)rotate(4deg)}50%{transform:translateY(-4px)rotate(4deg)}}.kid.walking .kid-leg.front{animation:.72s ease-in-out infinite thigh}.kid.walking .kid-leg.back{animation:.72s ease-in-out -.36s infinite thigh}.kid.walking .kid-leg.front .kid-shin{animation:.72s linear infinite shin}.kid.walking .kid-leg.back .kid-shin{animation:.72s linear -.36s infinite shin}.kid.walking .kid-arm.front{animation:.72s ease-in-out -.36s infinite arm-swing}.kid.walking .kid-arm.back{animation:.72s ease-in-out infinite arm-swing}.kid.walking .kid-forearm{animation:.72s ease-in-out infinite forearm}@keyframes thigh{0%{transform:rotate(-26deg)}50%{transform:rotate(22deg)}to{transform:rotate(-26deg)}}@keyframes shin{0%{transform:rotate(0)}30%{transform:rotate(6deg)}50%{transform:rotate(18deg)}72%{transform:rotate(70deg)}to{transform:rotate(0)}}@keyframes arm-swing{0%{transform:rotate(24deg)}50%{transform:rotate(-26deg)}to{transform:rotate(24deg)}}@keyframes forearm{0%,to{transform:rotate(-14deg)}50%{transform:rotate(-30deg)}}.kid.celebrating .kid-body{animation:.6s ease-in-out infinite kid-jump}.kid.celebrating .kid-arm{animation:none;transform:rotate(165deg)}.kid.celebrating .kid-forearm{transform:rotate(10deg)}@keyframes kid-jump{0%,to{transform:translateY(0)}50%{transform:translateY(-40px)}}.teacher{z-index:2;align-items:center;gap:10px;display:flex;position:absolute;top:14px;left:16px}.teacher-avatar{background:var(--panel);width:60px;height:60px;box-shadow:var(--shadow);border-radius:50%;place-items:center;font-size:40px;display:grid}.teacher-bubble{background:var(--panel);box-shadow:var(--shadow);border-radius:18px 18px 18px 4px;max-width:420px;padding:10px 16px;font-size:18px;font-weight:600}.lane{z-index:1;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.note{background:var(--tile);will-change:bottom;border:2px solid #ffffffb3;border-radius:12px;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:4px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 2px #0002}.note.current{border-color:#fff;box-shadow:0 0 0 3px #fff,0 0 14px 2px #fff9}.note.hit{opacity:.3;box-shadow:none}.note-label{color:#fff;font-size:16px;font-weight:700}.note-lyric{color:#ffffffd9;font-size:12px;font-weight:600}.keyboard{background:#c9cdd8;width:100%;height:100%;display:block}.key{transition:fill .12s ease-out}.key.white{fill:#fff;stroke:#c9cdd8;stroke-width:.03px}.key.black{fill:#2f323d;stroke:#1c1e26;stroke-width:.02px}.key-label{fill:#8a90a2;pointer-events:none;font-size:.34px;font-weight:600}.key-middle{fill:#b4b9c6;pointer-events:none}.key.target.white{fill:var(--guide-soft);stroke:var(--guide);stroke-width:.08px}.key.target.black{fill:var(--guide);stroke:var(--guide-dark)}.key.flash.white,.key.played-ok.white{fill:var(--right-soft)}.key.flash.black,.key.played-ok.black{fill:var(--right-dark)}.key.miss.white,.key.played-bad.white{fill:var(--wrong-soft)}.key.miss.black,.key.played-bad.black{fill:var(--wrong-dark)}.key.target.played-bad.white,.key.target.miss.white{stroke:var(--guide);stroke-width:.08px}.key-played-edge{transition:opacity .12s ease-out}.key-played-edge.ok{fill:var(--right-soft)}.key-played-edge.bad{fill:var(--wrong-soft)}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:4;background:#fff5;place-items:center;display:grid;position:absolute;inset:0}.panel{background:var(--panel);border-radius:var(--radius);width:min(860px,100vw - 32px);max-height:calc(100% - 24px);box-shadow:var(--shadow);border:4px solid #ffe08a;flex-direction:column;gap:14px;padding:16px 24px 18px;display:flex;overflow-y:auto}.panel h1{text-align:center;color:var(--primary);margin:0;font-size:26px}.name-input{font:inherit;text-align:center;border:2px solid #e3e8f2;border-radius:14px;outline:none;padding:10px 14px;font-size:18px;font-weight:600}.name-input:focus{border-color:var(--accent)}.row{justify-content:space-between;align-items:center;gap:16px;display:flex}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.panel-title{flex-direction:column;gap:2px;display:flex}.panel-head h1{text-align:left}.panel-actions{align-items:center;gap:10px;display:flex}.panel-actions .btn.big{margin-top:0;padding:14px 28px}.stars{letter-spacing:4px;font-size:30px}.stars span{filter:grayscale()opacity(.3)}.stars span.on{filter:none;animation:.5s ease-out both pop;display:inline-block}.stars span.on:nth-child(2){animation-delay:.15s}.stars span.on:nth-child(3){animation-delay:.3s}.who-grid{justify-content:center;gap:24px;padding:12px 0 8px;display:flex}.who-btn{cursor:pointer;width:180px;font:inherit;color:var(--ink);border:4px solid var(--shirt);box-shadow:0 6px 0 var(--shirt);background:#fff;border-radius:24px;flex-direction:column;align-items:center;gap:6px;padding:18px 12px;font-size:26px;font-weight:800;display:flex}.who-btn:active{box-shadow:0 1px 0 var(--shirt);transform:translateY(5px)}.who-emoji{font-size:64px;line-height:1}.who-grid{flex-wrap:wrap}.who-btn{transition:transform .12s;position:relative}.who-btn:hover{transform:translateY(-2px)}.who-btn.on:after{content:"✓";background:var(--ok);color:#fff;border-radius:50%;place-items:center;width:30px;height:30px;font-size:18px;display:grid;position:absolute;top:-10px;right:-10px;box-shadow:0 2px #1f8f53}.who-btn.add{--shirt:#d5dbe8;color:var(--muted);border-style:dashed}.who-btn.add .who-name{white-space:normal;font-size:20px;line-height:1.1}.who-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.who-sub{color:var(--muted);margin-top:-6px;font-size:13px;font-weight:600}.avatar{background:radial-gradient(circle at 35% 30%, #fffa, transparent 55%), var(--avatar,#ffd93d);border-radius:50%;flex:none;place-items:center;line-height:1;display:inline-grid;box-shadow:inset 0 -4px #0001}.avatar.add{width:84px;height:84px;color:var(--muted);box-shadow:none;background:#f2f4f9;font-size:44px}.picker-overlay{z-index:6}.picker{align-items:center;width:min(900px,100vw - 32px)}.welcome{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:6px 0 2px;display:flex}.welcome h1{font-size:34px}.welcome-title{flex-direction:column;align-items:center;gap:2px;margin:0;line-height:1;display:flex}.welcome-to{color:var(--muted);font-size:22px;font-weight:700}.wordmark{letter-spacing:1px;justify-content:center;font-size:72px;font-weight:700;display:flex}.wordmark span{color:var(--wm,var(--primary));text-shadow:0 4px #2b2d4226,0 8px 16px #2b2d421f;animation:letter-pop .52s cubic-bezier(.3, 1.8, .5, 1) calc(.15s + var(--i,6) * 80ms) both, wordmark-bob 2.4s ease-in-out calc(1.2s + var(--i,6) * .12s) infinite;display:inline-block}.wordmark span:nth-child(6n+1){--wm:var(--primary)}.wordmark span:nth-child(6n+2){--wm:#ffb400}.wordmark span:nth-child(6n+3){--wm:var(--accent)}.wordmark span:nth-child(6n+4){--wm:var(--ok)}.wordmark span:nth-child(6n+5){--wm:#a66bf0}.wordmark span:nth-child(6n+6){--wm:var(--primary)}.wordmark span.wordmark-bang{--wm:var(--accent)}@keyframes wordmark-bob{0%,to{transform:none}50%{transform:translateY(-6px)rotate(-3deg)}}.welcome-sub{color:var(--muted);margin:-4px 0 0;font-size:18px;font-weight:600}.welcome-hero{width:220px;height:110px;position:relative}.welcome-buddy{font-size:76px;animation:2.4s ease-in-out infinite bob;position:absolute;bottom:6px;left:22px}.welcome-wave{transform-origin:70% 90%;font-size:38px;animation:1.2s ease-in-out .4s infinite wave;position:absolute;top:4px;left:0}.welcome-piano{font-size:72px;position:absolute;bottom:0;right:22px}.welcome-note{font-size:30px;animation:3s ease-in-out infinite float-note;position:absolute}.welcome-note.n1{top:0;left:104px}.welcome-note.n2{animation-delay:-1.5s;top:10px;right:0}@keyframes bob{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-8px)rotate(4deg)}}@keyframes float-note{0%,to{opacity:.9;transform:translateY(0)}50%{opacity:.5;transform:translateY(-12px)}}.welcome-steps{counter-reset:step;gap:14px;margin:4px 0;padding:0;list-style:none;display:flex}.welcome-steps li{counter-increment:step;background:#f7f9fc;border:2px solid #eef1f7;border-radius:18px;flex-direction:column;align-items:center;gap:6px;width:200px;padding:14px 12px 12px;font-size:15px;font-weight:700;display:flex;position:relative}.welcome-steps li:before{content:counter(step);background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:26px;height:26px;font-size:14px;display:grid;position:absolute;top:-12px;left:50%;translate:-50%}.step-emoji{font-size:34px;line-height:1}.welcome-go{padding:16px 32px}.gate-overlay{z-index:10;background:#2b2d4266;position:fixed}.gate{border-color:#c9d3ea;align-items:center;gap:10px;width:min(400px,100vw - 32px)}.gate-lock{font-size:40px;line-height:1}.gate h1{color:var(--ink);font-size:22px}.gate-question{color:var(--accent);text-align:center;margin:0;font-size:20px;font-weight:700}.gate-entry{text-align:center;letter-spacing:4px;background:#f2f4f9;border-radius:14px;min-width:140px;padding:8px 16px;font-size:28px;font-weight:800}.gate-entry.wrong{color:var(--bad);letter-spacing:0;font-size:16px;animation:.3s shake}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.gate-pad{grid-template-columns:repeat(3,72px);gap:10px;display:grid}.gate-key{height:60px;color:var(--ink);font:inherit;cursor:pointer;background:#fff;border:2px solid #e3e8f2;border-radius:16px;font-size:26px;font-weight:700;box-shadow:0 4px #d5dbe8}.gate-key:active{transform:translateY(3px);box-shadow:0 1px #d5dbe8}.gate-key.muted{color:var(--muted)}.gate-key.ok{background:var(--ok);border-color:var(--ok);color:#fff;box-shadow:0 4px #1f8f53}.gate-key.ok:disabled{opacity:.4;cursor:default}.form-overlay{z-index:9;background:#e6f7ffcc;position:fixed}.profile-form{gap:12px;width:min(1040px,100vw - 32px)}.form-head{flex-direction:column;align-items:center;gap:2px;display:flex}.form-sub{color:var(--muted);margin:0;font-size:15px;font-weight:600}.form-grid{grid-template-columns:1fr 1fr;gap:18px 28px;display:grid}.form-col{flex-direction:column;gap:14px;min-width:0;display:flex}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{color:var(--ink);font-size:16px;font-weight:700}.field-hint{color:var(--muted);font-size:13px;font-weight:600}.field .name-input{text-align:left;font-size:20px}.form-error{color:var(--bad);font-size:13px;font-weight:700}.form-legacy{color:var(--muted);font-size:13px;font-weight:600}.form-legacy.match{color:#1f8f53}.age-seg{align-self:flex-start}.age-seg button{min-width:64px;padding:9px 16px;font-size:17px}.swatches{flex-wrap:wrap;gap:10px;display:flex}.swatch{cursor:pointer;background:var(--swatch);border:4px solid #fff;border-radius:50%;width:44px;height:44px;transition:transform .1s;box-shadow:0 0 0 2px #e3e8f2}.swatch.on{box-shadow:0 0 0 3px var(--ink);transform:scale(1.12)}.buddies{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.buddy,.fav{min-width:0;color:var(--ink);font:inherit;cursor:pointer;background:#f7f9fc;border:3px solid #eef1f7;border-radius:16px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;transition:transform .1s;display:flex}.buddy.on,.fav.on{border-color:var(--primary);background:#fff0f6;transform:translateY(-2px)}.buddy-emoji{font-size:34px;line-height:1.1}.buddy-label{font-size:13px;font-weight:700}.fav-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.fav{background:linear-gradient(180deg, var(--sky-a), var(--sky-b));border-color:#0000;justify-content:flex-end;gap:6px;min-height:150px;padding:18px 6px 10px;position:relative;overflow:visible;box-shadow:inset 0 -26px #fff3,0 4px #0001}.fav:disabled{opacity:.4;filter:grayscale(.6);cursor:default}.fav.on{border-color:var(--primary);background:linear-gradient(180deg, var(--sky-a), var(--sky-b));box-shadow:0 0 0 4px #fff, 0 0 0 7px var(--primary)}.fav-emoji{filter:drop-shadow(0 4px 4px #0003);font-size:64px;line-height:1}.fav-props{opacity:.85;letter-spacing:4px;font-size:20px;position:absolute;top:8px;left:10px}.fav-label{background:#fff;border-radius:999px;padding:2px 12px;font-size:15px;font-weight:700}.fav-order{background:var(--primary);color:#fff;width:30px;height:30px;box-shadow:0 2px 0 var(--primary-dark);border-radius:50%;place-items:center;font-weight:800;display:grid;position:absolute;top:-10px;right:-8px}.form-actions{justify-content:flex-end;align-items:center;gap:12px;display:flex}.form-actions .btn.big{margin-top:0;padding:14px 36px}.form-actions .btn.ghost{padding:12px 22px}.btn.dim{opacity:.6}.profiles-section{border-bottom:2px solid #eef1f7;flex-direction:column;gap:8px;padding-bottom:10px;display:flex}.profile-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.profile-row{background:#f7f9fc;border-radius:14px;align-items:center;gap:10px;padding:6px 10px;display:flex}.profile-row.on{background:#eef2ff}.profile-row-name{font-weight:700}.profile-row-meta{color:var(--muted);flex:1;font-size:13px;font-weight:600}.profile-row .link.danger{align-self:auto}.profile-row-now{color:var(--accent);background:#fff;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700}.profile-row .btn.small.profile-row-play{padding:6px 12px}.meet-overlay{z-index:6;-webkit-backdrop-filter:none;backdrop-filter:none;background:radial-gradient(circle at 50% 40%,#fff5,#0000 70%)}.meet{flex-direction:column;align-items:center;gap:6px;display:flex;position:relative}.meet-stage{place-items:center;width:240px;height:200px;display:grid;position:relative}.meet-glow{background:radial-gradient(circle,#fff 0%,#fff8 35%,#0000 70%);border-radius:50%;width:230px;height:230px;animation:.7s ease-out .7s both glow-in,2.4s ease-in-out 1.4s infinite glow-pulse;position:absolute}@keyframes glow-in{0%{opacity:0;transform:scale(0)}}@keyframes glow-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.meet-buddy{animation:1s cubic-bezier(.25,1.5,.45,1) .15s both buddy-enter;position:relative}.meet-buddy-face{filter:drop-shadow(0 12px 16px #0005);transform-origin:50% 100%;font-size:150px;line-height:1;animation:1.6s ease-in-out 1.3s infinite buddy-hop;display:block}@keyframes buddy-enter{0%{opacity:0;transform:translateY(70vh)scale(.4)rotate(-20deg)}60%{opacity:1}to{transform:none}}@keyframes buddy-hop{0%,to{transform:translateY(0)scale(1)}15%{transform:translateY(0)scale(1.08,.92)}45%{transform:translateY(-26px)scale(.96,1.05)}70%{transform:translateY(0)scale(1.05,.95)}}.meet-wave{transform-origin:70% 90%;font-size:64px;animation:.2s ease-out 1.1s both show-fade,1.1s ease-in-out 1.1s 3 wave,0s 4.4s forwards wave-rest;position:absolute;top:18px;right:-46px}@keyframes wave{0%,to{transform:rotate(-10deg)}25%{transform:rotate(22deg)}50%{transform:rotate(-14deg)}75%{transform:rotate(18deg)}}@keyframes wave-rest{to{opacity:0}}.meet-burst{pointer-events:none;width:0;height:0;position:absolute;top:50%;left:50%}.meet-burst span{opacity:0;animation:burst 1.4s ease-out var(--delay) both;font-size:34px;line-height:1;position:absolute;top:0;left:0;translate:-50% -50%}.meet-name{color:#fff;letter-spacing:1px;text-shadow:0 4px 0 var(--accent-kid,var(--primary)), 0 8px 18px #0006;flex-wrap:wrap;justify-content:center;margin:6px 0 0;font-size:64px;line-height:1;display:flex}.meet-name span{animation:letter-pop .52s cubic-bezier(.3, 1.8, .5, 1) calc(1.15s + var(--i) * 70ms) both;display:inline-block}@keyframes letter-pop{0%{opacity:0;transform:translateY(30px)scale(0)}to{opacity:1;transform:none}}.meet-world{color:var(--ink);box-shadow:var(--shadow);background:#fff;border-radius:999px;align-items:center;gap:8px;margin:0;padding:6px 18px 6px 8px;font-size:20px;font-weight:700;animation:.5s ease-out 1.8s both pop;display:flex}.meet-world-emoji{background:var(--accent-kid,#ffd93d);border-radius:50%;place-items:center;width:40px;height:40px;font-size:24px;display:grid}.meet-go{cursor:pointer;background:var(--ok);color:#fff;width:120px;height:120px;font:inherit;border:6px solid #fff;border-radius:50%;margin-top:12px;transition:box-shadow .12s,translate .12s;animation:.45s cubic-bezier(.2,1.6,.4,1) 2.1s both done-in,1.3s ease-in-out 2.8s infinite done-pulse;position:relative;box-shadow:0 8px #1f8f53,0 14px 28px #0005}.meet-go:active{translate:0 6px;box-shadow:0 2px #1f8f53,0 6px 14px #0004}.meet-go-icon{margin-left:8px;font-size:56px;line-height:1}.meet-go-hand{pointer-events:none;font-size:52px;line-height:1;animation:.3s ease-out 3s both show-fade,1.2s ease-in-out 3s infinite hand-tap;position:absolute;bottom:-30px;right:-44px}.meet-props{pointer-events:none;position:absolute;inset:-60px -300px}.meet-props span{top:calc(4% + var(--i) * 15%);left:calc(var(--i) * 4%);animation:pop .6s ease-out calc(.4s + var(--i) * .12s) both, float-note 4s ease-in-out calc(var(--i) * -.7s) infinite;font-size:54px;position:absolute}.meet-props span:nth-child(2n){left:auto;right:calc(var(--i) * 4%)}.overlay>.panel,.overlay>.welcome{animation:.32s cubic-bezier(.2,1.3,.5,1) both panel-in}@keyframes panel-in{0%{opacity:0;transform:translateY(16px)scale(.94)}}.overlay{animation:.22s ease-out both show-fade}.who-btn,.fav,.buddy,.swatch,.chip,.song-card,.gate-key,.player-chip,.icon-btn{transition:transform .16s cubic-bezier(.34,1.56,.64,1),box-shadow .12s}.who-btn:active,.fav:active,.buddy:active,.chip:active,.song-card:active{transform:scale(.93)}.who-grid .who-btn{animation:.45s cubic-bezier(.25,1.5,.5,1) both tile-in}.who-grid .who-btn:nth-child(2){animation-delay:70ms}.who-grid .who-btn:nth-child(3){animation-delay:.14s}.who-grid .who-btn:nth-child(4){animation-delay:.21s}.who-grid .who-btn:nth-child(n+5){animation-delay:.28s}@keyframes tile-in{0%{opacity:0;transform:translateY(30px)scale(.8)}}.fav.on .fav-emoji,.buddy.on .buddy-emoji{animation:.5s ease-in-out wiggle}@keyframes wiggle{0%,to{transform:rotate(0)scale(1)}30%{transform:rotate(-12deg)scale(1.15)}60%{transform:rotate(10deg)scale(1.1)}}.fav-order{animation:.35s ease-out pop}@media (prefers-reduced-motion:reduce){.meet *,.meet-glow,.welcome *,.who-grid .who-btn,.overlay,.overlay>.panel,.overlay>.welcome,.fav-emoji,.buddy-emoji,.fav-order,.gate-entry,.confetti{animation:none!important}.meet-wave,.meet-go-hand,.meet-burst,.confetti{display:none}.who-btn,.fav,.buddy,.swatch,.chip,.song-card,.gate-key,.player-chip,.icon-btn{transition:none}}.settings-overlay{z-index:8;position:fixed}.settings{width:min(520px,100vw - 32px)}.link.danger{color:var(--bad);align-self:center}.row label,.row.check span{color:var(--muted);font-weight:600}.row.check input{width:22px;height:22px;accent-color:var(--ok)}.voice-picker{flex-direction:column;gap:6px;display:flex}.voice-picker>label{color:var(--muted);font-size:14px;font-weight:600}.voice-grid{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.voice-picker+.voice-picker{margin-top:2px}.voice-pill{min-width:0;color:var(--ink);font:inherit;cursor:pointer;text-align:left;background:#f7f9fc;border:2px solid #eef1f7;border-radius:10px;flex-direction:column;align-items:flex-start;padding:5px 7px;display:flex}.voice-pill.on{border-color:var(--accent);background:#eef2ff}.voice-who{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:12px;font-weight:700;overflow:hidden}.voice-how{color:var(--muted);white-space:nowrap;font-size:10px}.voice-note{color:var(--muted);margin:6px 0 0;font-size:12px;line-height:1.35}.seg{background:#eef1f7;border-radius:14px;gap:3px;padding:3px;display:flex;overflow:hidden}.seg button{color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:11px;padding:8px 14px;font-size:15px;font-weight:600}.seg button.on{background:var(--accent);color:#fff}.btn{background:var(--primary);color:#fff;font:inherit;cursor:pointer;box-shadow:0 5px 0 var(--primary-dark);border:0;border-radius:16px;font-weight:700;transition:transform 80ms,box-shadow 80ms}.btn:active{box-shadow:0 1px 0 var(--primary-dark);transform:translateY(4px)}.btn.big{margin-top:4px;padding:14px;font-size:22px}.btn.ghost{color:var(--ink);background:#eef1f7;padding:10px;font-size:16px;box-shadow:0 3px #d5dbe8}.btn.songs-btn{background:var(--accent);white-space:nowrap;padding:6px 12px;font-size:14px;box-shadow:0 3px #3f5fd6}.btn.listen-btn{color:var(--ink);white-space:nowrap;background:#ffd93d;padding:6px 12px;font-size:14px;box-shadow:0 3px #d9b22a}.btn.small{box-shadow:0 3px 0 var(--primary-dark);padding:6px 12px;font-size:14px}.btn.listen-btn.stop-btn{color:#fff;background:#ff5a5f;justify-content:center;align-items:center;gap:10px;min-width:120px;min-height:48px;padding:8px 20px;font-size:20px;display:inline-flex;box-shadow:0 4px #c9393e}.btn.listen-btn.stop-btn:active{box-shadow:0 1px #c9393e}.stop-icon{background:#fff;border-radius:4px;flex:none;width:20px;height:20px;animation:1.2s ease-in-out infinite stop-pulse}@keyframes stop-pulse{50%{transform:scale(.82)}}@media (prefers-reduced-motion:reduce){.stop-icon{animation:none}.btn.listen-btn.stop-btn{transition:none}}.hint{color:var(--muted);text-align:center;margin:0;font-size:12px}.link{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.error{color:var(--bad);font-size:14px;font-weight:600}.home-section{flex-direction:column;gap:8px;display:flex}.home-section-title{color:var(--muted);text-align:left;align-items:center;gap:6px;margin:0;font-size:16px;font-weight:700;display:flex}.home-section-title span{font-size:18px;line-height:1}.song-menu{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.song-card{font:inherit;color:var(--ink);cursor:pointer;background:#f7f9fc;border:3px solid #eef1f7;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:7px 5px 5px;transition:transform .1s,border-color .1s,background .1s;display:flex;position:relative}.song-card:hover{transform:translateY(-2px)}.song-card.on{border-color:var(--accent);background:#eef2ff}.song-level{color:var(--muted);background:#fff;border-radius:8px;padding:1px 6px;font-size:11px;font-weight:700;position:absolute;top:6px;left:8px}.song-emoji{font-size:24px;line-height:1}.song-name{text-align:center;font-size:12px;font-weight:700;line-height:1.1}.song-meta{color:var(--muted);font-size:11px}.song-star{filter:drop-shadow(0 1px 1px #0003);font-size:20px;position:absolute;top:-8px;right:-6px}.note-finger{z-index:1;pointer-events:none;color:#fff;justify-content:center;align-items:center;font-size:24px;font-weight:700;line-height:1;display:flex;position:absolute;inset:0}.note.current .note-finger{font-size:28px}.note.hit .note-finger{opacity:.6}.note.short .note-finger{font-size:20px}.lane.show-both .note-finger{font-size:22px}.lane.show-both .note.current .note-finger{font-size:26px}.lane.show-both .note.short .note-finger{font-size:18px}.lane.show-both .note-label{z-index:2;text-align:center;color:#fffc;font-size:12px;font-weight:600;line-height:14px;position:absolute;top:4px;left:0;right:0}.lane.show-both .note.short .note-label,.note.short .note-lyric{display:none}.lane.show-names .note-label{justify-content:center;align-items:center;font-size:20px;line-height:1;display:flex;position:absolute;inset:0}.lane.show-names .note.short .note-label{font-size:16px}.lane.show-fingers .note-lyric,.lane.show-both .note-lyric{z-index:2;position:relative}.key-finger circle{fill:#fff;stroke:#6b738c;stroke-width:.05px}.key-finger text{fill:#2b2d42;font-size:.36px;font-weight:700}.key-finger.rest text{fill:#8a90a2;font-size:.34px;font-weight:600}.hand-guide{z-index:2;pointer-events:none;background:#ffffffd9;border-radius:22px;flex-direction:column;align-items:center;gap:2px;width:132px;padding:6px 6px 8px;display:flex;position:absolute;top:86px;left:14px;box-shadow:0 4px 14px #2b2d4214}.hand-svg{width:120px;height:auto;display:block;overflow:visible}.hand-skin{fill:#f4e2d2;stroke:#d6bfa9;stroke-width:3px}.hand-palm{stroke-linejoin:round}.hand-crease{fill:none;stroke:#dcc7b4;stroke-width:3px;stroke-linecap:round}.hand-nail{fill:#fbf1e8;opacity:.9}.hand-dot{fill:#fff;stroke:#9aa1b5;stroke-width:2.5px}.hand-num{fill:#2b2d42;font-weight:700}.hand-finger{transition:opacity .2s}.hand-finger.dim{opacity:.75}.hand-finger.lit .hand-skin{fill:var(--guide-soft);stroke:var(--guide);stroke-width:4px}.hand-finger.lit .hand-dot{stroke:var(--guide)}.hand-glow{display:none}.hand-cue{color:var(--ink);font-size:18px;font-weight:700;line-height:1.1}.hand-cue b{color:var(--ink);vertical-align:-2px;font-size:24px}.note-display{flex-direction:column;gap:8px;display:flex}.note-display-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.note-display-opt{font:inherit;color:var(--ink);cursor:pointer;background:#fff;border:3px solid #e6e9f2;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;display:flex}.note-display-opt.on{border-color:var(--ok);background:#effbf3}.nd-preview{background:var(--tile);border:2px solid #ffffffb3;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:58px;height:70px;display:flex}.nd-finger{color:#fff;text-align:center;font-size:28px;font-weight:700;line-height:32px}.nd-name{color:#fff;font-size:20px;font-weight:700}.nd-name.small{color:#fffc;font-size:13px;font-weight:600}.nd-label{flex-direction:column;align-items:center;font-size:15px;font-weight:700;display:flex}.nd-badge{color:#fff;background:var(--ok);border-radius:8px;margin-top:2px;padding:0 6px;font-size:10px;font-weight:700}.nd-hint{color:var(--muted);text-align:center;font-size:11px;line-height:1.2}.chip-row{grid-template-columns:repeat(6,1fr);gap:5px;display:grid}.chip{min-width:0;color:var(--ink);font:inherit;cursor:pointer;background:#f7f9fc;border:2px solid #eef1f7;border-radius:10px;flex-direction:column;align-items:center;gap:1px;padding:4px 2px;display:flex}.chip.on{border-color:var(--primary);background:#fff0f6}.chip-emoji{font-size:30px;line-height:1.1}.chip-label{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10px;font-weight:700;overflow:hidden}.song-card.featured{background:linear-gradient(#fff9e0,#fff);border-color:#ffd93d}.song-card.featured.on{border-color:var(--primary)}.btn.stickers-btn{color:var(--ink);white-space:nowrap;background:#fff;border:2px solid #eef1f7;padding:5px 10px;font-size:14px;box-shadow:0 3px #d5dbe8}.new-sticker{color:var(--ink);font:inherit;cursor:pointer;background:#fff4c2;border:0;border-radius:14px;justify-content:center;align-items:center;gap:10px;padding:7px 14px;font-weight:700;animation:.5s ease-out pop;display:flex}.new-sticker-emoji{font-size:28px}@keyframes pop{0%{transform:scale(.6)}70%{transform:scale(1.08)}to{transform:scale(1)}}.sticker-overlay{z-index:7}.sticker-book{align-items:center;width:min(760px,100vw - 32px)}.sticker-count{color:var(--muted);margin:0;font-weight:600}.sticker-grid{grid-template-columns:repeat(7,1fr);gap:12px;width:100%;display:grid}.sticker{transform:rotate(var(--tilt));background:#f3f5fa;border:3px dashed #d9dfeb;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:10px 4px 8px;display:flex}.sticker.earned{background:#fff;border:3px solid #fff;box-shadow:0 4px 10px #2b2d4222,0 0 0 2px #ffd93d}.sticker-emoji{filter:grayscale()opacity(.4);font-size:34px;line-height:1}.sticker.earned .sticker-emoji{filter:none}.sticker-title{text-align:center;color:var(--muted);font-size:11px;font-weight:700;line-height:1.1}.sticker.earned .sticker-title{color:var(--ink)}button.sticker{font:inherit;color:inherit;cursor:pointer}.sticker.earned:active{transform:rotate(var(--tilt)) scale(.92)}.sticker.wiggle{animation:.45s ease-in-out sticker-nope}@keyframes sticker-nope{0%,to{transform:rotate(var(--tilt))}20%{transform:rotate(calc(var(--tilt) - 10deg))}40%{transform:rotate(calc(var(--tilt) + 10deg))}60%{transform:rotate(calc(var(--tilt) - 6deg))}80%{transform:rotate(calc(var(--tilt) + 6deg))}}.sticker-show{z-index:9;cursor:pointer;background:radial-gradient(circle,#2b2d42cc 0%,#2b2d42ee 70%);place-items:center;animation:.25s ease-out both show-fade;display:grid;position:absolute;inset:0;overflow:hidden}@keyframes show-fade{0%{opacity:0}}.sticker-rays,.sticker-burst{position:absolute;top:50%;left:50%;translate:-50% -50%}.sticker-big{z-index:1;position:relative}.sticker-rays{background:repeating-conic-gradient(#ffd93d33 0deg 10deg,#0000 10deg 20deg);border-radius:50%;width:900px;height:900px;animation:.6s ease-out both rays-in,14s linear infinite rays-spin;-webkit-mask:radial-gradient(circle,#000 20%,#0000 65%);mask:radial-gradient(circle,#000 20%,#0000 65%)}@keyframes rays-in{0%{opacity:0;transform:scale(.3)}}@keyframes rays-spin{to{rotate:360deg}}.sticker-big{background:#fff;border:6px solid #fff;border-radius:32px;flex-direction:column;align-items:center;gap:6px;padding:24px 36px 18px;animation:.7s cubic-bezier(.2,1.4,.4,1) both big-in,2.4s ease-in-out .9s infinite big-float;display:flex;box-shadow:0 0 0 4px #ffd93d,0 20px 50px #0007}@keyframes big-in{0%{transform:scale(0)rotate(-540deg)}to{transform:scale(1)rotate(-4deg)}}@keyframes big-float{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-14px)rotate(4deg)}}.sticker-big-emoji{font-size:140px;line-height:1;animation:.6s ease-out .65s both emoji-bounce}@keyframes emoji-bounce{0%{transform:scale(1)}40%{transform:scale(1.35,.8)}70%{transform:scale(.9,1.15)}to{transform:scale(1)}}.sticker-big-title{color:var(--primary);text-align:center;font-size:26px;font-weight:800}.sticker-burst{z-index:2;pointer-events:none;width:0;height:0}.sticker-burst span{opacity:0;animation:burst 1.3s ease-out var(--delay) both;font-size:40px;line-height:1;position:absolute;top:0;left:0;translate:-50% -50%}@keyframes burst{0%{opacity:1;transform:rotate(var(--angle)) translateY(0) rotate(calc(-1 * var(--angle))) scale(.3)}70%{opacity:1}to{opacity:0;transform:rotate(var(--angle)) translateY(calc(-1 * var(--dist))) rotate(calc(-1 * var(--angle))) scale(1.1)}}.sticker-done{z-index:3;cursor:pointer;background:var(--ok);width:84px;height:84px;font:inherit;border:5px solid #fff;border-radius:50%;place-items:center;animation:.4s cubic-bezier(.2,1.6,.4,1) 1.3s both done-in,1.2s ease-in-out 1.8s infinite done-pulse;display:grid;position:absolute;bottom:18px;left:50%;translate:-50%;box-shadow:0 6px #1f8f53,0 10px 24px #0006}.sticker-done:active{transform:translateY(5px);box-shadow:0 1px #1f8f53}.sticker-done-icon{font-size:44px;line-height:1}.sticker-done-hand{pointer-events:none;font-size:44px;line-height:1;animation:.3s ease-out 2s both show-fade,1.2s ease-in-out 2s infinite hand-tap;position:absolute;bottom:-26px;right:-34px}@keyframes done-in{0%{opacity:0;transform:scale(0)}}@keyframes done-pulse{0%,to{scale:1}50%{scale:1.1}}@keyframes hand-tap{0%,to{transform:translate(0)rotate(-20deg)}50%{transform:translate(-10px,-12px)rotate(-20deg)}}@media (prefers-reduced-motion:reduce){.sticker-rays,.sticker-big,.sticker-big-emoji,.sticker-burst span{animation-duration:1ms;animation-iteration-count:1}}.confetti{pointer-events:none;z-index:5;position:absolute;inset:0;overflow:hidden}.confetti i{border-radius:3px;width:12px;height:18px;animation-name:confetti-fall;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;top:-20px}@keyframes confetti-fall{to{transform:translateY(110vh)rotate(720deg)}}.rotate-hint{display:none}@media (width<=900px){.topbar{gap:8px;padding:6px 10px}.brand{font-size:0}.brand:before{content:"🎹";font-size:20px}.song-title{display:none}.player-chip{padding:2px 8px 2px 2px;font-size:13px}.player-chip .avatar{width:28px!important;height:28px!important;font-size:16px!important}.icon-btn{width:30px;height:30px;font-size:15px}.btn.songs-btn,.btn.listen-btn,.btn.stickers-btn,.btn.small{padding:5px 8px;font-size:12px}.btn.listen-btn.stop-btn{gap:7px;min-width:92px;min-height:40px;padding:6px 12px;font-size:16px}.stop-icon{width:15px;height:15px}.progressbar{width:90px;height:22px}.progress{font-size:12px}.meter{width:90px;height:22px}.meter-note{font-size:11px}.teacher{gap:6px;top:8px;left:10px}.teacher-avatar{width:38px;height:38px;font-size:24px}.teacher-bubble{max-width:60vw;padding:6px 10px;font-size:13px}.kid-slot{width:80px;height:120px;bottom:40px}.props{bottom:40px}.prop{font-size:28px!important}.sun{width:56px;height:56px;top:12px;right:30px}.moon{width:48px;height:48px;top:14px;right:40px}.note-label{font-size:16px}.note-lyric{font-size:11px}.hand-guide{border-radius:16px;width:104px;padding:4px;top:56px;left:8px}.hand-svg{width:94px}.hand-cue{font-size:13px}.hand-cue b{font-size:18px}.panel{gap:8px;width:calc(100vw - 20px);max-height:calc(100% - 12px);padding:12px 14px 14px}.panel h1{font-size:20px}.panel-head{flex-wrap:nowrap}.panel-actions .btn.big{padding:8px 16px}.stars{font-size:20px}.who-btn{width:140px;padding:10px;font-size:20px}.who-emoji{font-size:44px}.welcome h1{font-size:22px}.welcome-to{font-size:16px}.wordmark{font-size:46px}.wordmark span{text-shadow:0 3px #2b2d4226}.welcome-hero{display:none}.welcome-steps li{width:150px;padding:10px 6px 8px;font-size:12px}.step-emoji{font-size:24px}.form-grid{gap:10px 16px}.fav-emoji{font-size:34px}.fav{padding:10px 4px 8px}.buddy-emoji{font-size:24px}.swatch{width:34px;height:34px}.meet-buddy{font-size:80px}.meet-bubble h1{font-size:26px}.meet-bubble p{font-size:15px}.song-menu{grid-template-columns:repeat(5,1fr);gap:6px}.song-emoji{font-size:20px}.song-name{font-size:11px}.song-meta{display:none}.voice-grid{grid-template-columns:repeat(7,1fr);gap:4px}.voice-how{display:none}.chip-row{grid-template-columns:repeat(6,1fr)}.chip-emoji{font-size:18px}.btn.big{padding:10px;font-size:18px}.btn.ghost{padding:8px;font-size:14px}.hint{display:none}.new-sticker{padding:6px 10px;font-size:13px}.sticker-grid{grid-template-columns:repeat(7,1fr);gap:6px}.sticker-emoji{font-size:24px}.sticker-title{font-size:10px}.sticker-big-emoji{font-size:90px}.sticker-big-title{font-size:20px}.sticker-big{padding:14px 24px 10px}.sticker-done{border-width:3px;width:56px;height:56px;bottom:8px}.sticker-done-icon{font-size:28px}.sticker-done-hand{font-size:30px;bottom:-18px;right:-24px}}@media (height<=500px){.app{grid-template-rows:auto 1fr 34dvh}.sticker-done{inset:50% 40px auto auto;translate:0 -50%}.key-label{font-size:.5px}}@media (orientation:portrait) and (width<=600px){.rotate-hint{z-index:100;background:linear-gradient(180deg, var(--sky-top,#8fd3ff), var(--sky-bottom,#e6f7ff));color:var(--ink);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;font-size:22px;font-weight:700;display:flex;position:fixed;inset:0}.rotate-phone{font-size:72px;animation:1.6s ease-in-out infinite rotate-phone}@keyframes rotate-phone{0%,to{transform:rotate(0)}50%{transform:rotate(-90deg)}}}.app{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.home-overlay.covered{display:none}.close-x{cursor:pointer;color:#fff;-webkit-tap-highlight-color:transparent;background:#2b2d42;border:4px solid #fff;border-radius:50%;flex:none;place-items:center;width:56px;height:56px;padding:0;transition:transform .11s ease-out,box-shadow .11s ease-out;display:grid;box-shadow:0 4px #14151f,0 6px 16px #0004}.close-x svg{fill:none;stroke:currentColor;stroke-width:3.6px;stroke-linecap:round;width:26px;height:26px}.close-x:active{transform:translateY(3px)scale(.92);box-shadow:0 1px #14151f,0 2px 6px #0004}.close-x.light{color:#2b2d42;background:#fff;border-color:#2b2d42;box-shadow:0 4px #0008,0 6px 16px #0006}.panel{position:relative}.panel>.close-x{z-index:3;align-self:flex-end;margin:-6px -14px -64px 0;position:sticky;top:0}.close-x.corner{z-index:5;position:absolute;top:-18px;right:-18px}.tricky-card,.results{position:relative}.close-x.results-x{top:-2px;right:-10px}.sticker-show-x{z-index:4;position:absolute;top:18px;right:18px}.panel-actions .close-x.inline{margin-left:6px}.btn.with-icon{justify-content:center;align-items:center;gap:10px;display:inline-flex}.btn-icon{font-size:1.15em;line-height:1}@media (prefers-reduced-motion:reduce){.close-x{transition:none}.close-x:active{transform:none;box-shadow:0 2px #14151f}}@media (width<=900px) and (height>=800px){.wordmark{font-size:68px}.welcome-to{font-size:20px}}:root{--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--modal-gap:clamp(8px, 2vmin, 24px);--tap:44px}.topbar{padding-top:max(8px, var(--safe-t))}.overlay{padding:max(var(--modal-gap), var(--safe-t)) max(var(--modal-gap), var(--safe-r)) max(var(--modal-gap), var(--safe-b)) max(var(--modal-gap), var(--safe-l))}.stage>.overlay{padding:var(--modal-gap)}.panel{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;width:min(860px,100%);max-height:100%}.panel.picker{width:min(900px,100%)}.panel.settings{width:min(560px,100%)}.panel.sticker-book{width:min(760px,100%)}.panel.profile-form{width:min(1040px,100%)}.panel.gate{width:min(400px,100%)}.panel h1{font-size:clamp(20px,1.2rem + 1vmin,30px)}.panel>.close-x+h1,.panel>.close-x+.form-head{flex-direction:column;justify-content:center;align-items:center;min-height:50px;padding-inline:58px;display:flex}.panel>.close-x{margin:-6px -10px -62px 0}.panel .btn,.panel .seg button,.tricky-card .btn,.lh-ns-card .btn,.fs-root .btn,.fs-confirm .btn,.fs-songs-lock .btn,.results .btn,.sticker-show .btn{min-height:var(--tap)}.panel .btn.small{padding:8px 14px;font-size:15px}.panel .btn.ghost{padding:10px 16px}.panel .link{min-height:var(--tap);min-width:var(--tap);padding:8px 6px}.panel .row.check{min-height:var(--tap);cursor:pointer}.panel .row.check input{width:28px;height:28px}.panel .voice-pill{min-height:var(--tap);justify-content:center}.panel .age-seg button{min-height:var(--tap)}.panel .swatch{width:var(--tap);height:var(--tap)}.panel .seg button{padding-inline:16px}.panel .lh-setting .row{min-height:var(--tap)}.btn.big{font-size:clamp(18px,.8rem + 1.2vmin,26px)}.sticker-grid{grid-template-columns:repeat(auto-fill,minmax(clamp(72px,11vmin,96px),1fr))}.sticker-show{padding:var(--modal-gap)}.sticker-show-x{top:max(12px, var(--safe-t));right:max(12px, var(--safe-r))}.sticker-big-emoji{font-size:clamp(72px,16vmin,140px)}.sticker-big-title{font-size:clamp(18px,3.2vmin,26px)}.song-menu{grid-template-columns:repeat(auto-fill,minmax(clamp(96px,15vmin,150px),1fr))}.welcome-steps{flex-wrap:wrap;justify-content:center}.welcome-go,.welcome .btn{min-height:48px}.chip-row{grid-template-columns:repeat(auto-fill,minmax(64px,1fr))}.chip,.results-actions .btn,.results-next .btn{min-height:var(--tap)}.tricky-overlay,.lh-nextsong{padding:var(--modal-gap)}.tricky-card,.lh-ns-card{overscroll-behavior:contain;max-width:100%;max-height:100%;overflow-y:auto}.tricky-card{position:relative}.tricky-title{font-size:clamp(26px,5vmin,40px)}.tricky-note{width:clamp(48px,8vmin,70px);height:clamp(60px,10vmin,86px)}.tricky-note b{width:clamp(34px,5.4vmin,46px);height:clamp(34px,5.4vmin,46px);font-size:clamp(22px,3.8vmin,32px)}.tricky-notes,.tricky-actions{flex-wrap:wrap;justify-content:center}.tricky-actions .btn.ghost{min-height:var(--tap);padding:10px 18px}.tricky-card>.close-x.corner,.lh-ns-card>.close-x.corner{top:8px;right:8px}:is(.tricky-card:has(>.close-x),.lh-ns-card:has(>.close-x)){padding-top:24px;padding-left:64px;padding-right:64px}.lh-ns-choices{flex-wrap:wrap;justify-content:center}.lh-ns-choice{width:clamp(170px,28vmin,220px)}.lh-ns-icon{font-size:clamp(52px,9vmin,84px)}.lh-ns-title{text-align:center;font-size:clamp(22px,4.2vmin,34px)}.lh-ns-sub{font-size:clamp(18px,3.2vmin,24px)}.all-gold-center{max-width:calc(100% - 2 * var(--modal-gap));max-height:calc(100% - 2 * var(--modal-gap))}.world-intro-x{top:max(18px, var(--safe-t));right:max(18px, var(--safe-r))}.world-intro-skip{bottom:max(14px, var(--safe-b))}@media (orientation:portrait){.results-main{flex-wrap:wrap;gap:clamp(12px,3vmin,36px)}.lh-ns-choices{gap:14px}}@media (height<=520px){.app{--bar-h:calc(52px + var(--safe-t))}.topbar{height:var(--bar-h)}.stage>.overlay:not(.home-overlay),.stage>.tricky-overlay,.stage>.lh-nextsong,.stage>.all-gold,.stage>.sticker-show{top:var(--bar-h);padding-left:max(var(--modal-gap), var(--safe-l));padding-right:max(var(--modal-gap), var(--safe-r));padding-bottom:max(var(--modal-gap), var(--safe-b));position:fixed;bottom:0;left:0;right:0}.stage>.home-overlay{top:var(--bar-h);z-index:4;padding-left:max(var(--modal-gap), var(--safe-l));padding-right:max(var(--modal-gap), var(--safe-r));padding-bottom:max(var(--modal-gap), var(--safe-b));position:fixed;bottom:0;left:0;right:0}.home-overlay.covered{display:none}.panel{gap:8px;padding:10px 14px 12px}.panel>.close-x+h1,.panel>.close-x+.form-head{min-height:46px}.results-main{gap:16px}.results-sticker svg{max-height:64px}.pj-stage{transform-origin:top;margin-bottom:-84px;transform:scale(.62)}.all-gold-center{gap:6px}.all-gold-face{font-size:72px!important}.all-gold-text{font-size:26px!important}.lh-ns-card{gap:8px;padding:14px 20px 16px}.lh-ns-head .lh-ns-buddy{font-size:44px}.tricky-card{gap:8px;padding-block:12px}.meet{gap:4px}.meet-stage{width:140px;height:104px}.meet-buddy-face{font-size:80px}.meet-name{margin-top:0;font-size:34px}.meet-world{padding:4px 14px 4px 6px;font-size:16px}.meet-world-emoji{width:32px;height:32px;font-size:19px}.meet-go{border-width:5px;width:76px;height:76px;margin-top:2px}.meet-go-icon{font-size:36px}.meet-props{inset:0 -300px}.meet-overlay{overflow:hidden auto}}@media (orientation:portrait) and (width<=600px){:is(.app:has(.home-overlay:not(.covered),.settings-overlay,.form-overlay,.gate-overlay,.fs-root,.world-intro,.finale,.copy-me) .rotate-hint,.app:has(.stage>.overlay:not(.covered),.tricky-overlay,.lh-nextsong,.all-gold) .rotate-hint){display:none}.panel{padding:12px 12px 14px}.form-grid{grid-template-columns:1fr}.welcome-steps li{width:100%}.results-main{flex-direction:column}.lh-ns-choice{width:100%}.note-display-grid{grid-template-columns:1fr}.buddies{grid-template-columns:repeat(3,1fr)}.fav-grid{grid-template-columns:repeat(2,1fr)}.voice-grid{grid-template-columns:repeat(3,1fr)}}@media (prefers-reduced-motion:reduce){.panel{scroll-behavior:auto}}.fs-map,.fs-lesson{inset:var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l)}.fs-map-top,.fs-lesson-top{gap:clamp(8px,1.6vmin,16px);padding:clamp(8px,1.4vmin,12px) clamp(10px,2vmin,18px) 6px}.fs-map-top h1{min-width:0;font-size:clamp(22px,4.2vmin,34px)}.fs-map-name{font-size:.78em}.fs-map-stars{white-space:nowrap;padding:4px 14px;font-size:clamp(18px,3vmin,26px)}.fs-map-area{min-height:0;margin:0 clamp(12px,3vmin,24px)}.fs-stop-disc{border-width:clamp(4px,.6vmin,6px);width:clamp(64px,10.5vmin,104px);height:clamp(64px,10.5vmin,104px)}.fs-stop.bonus .fs-stop-disc{width:clamp(56px,9vmin,88px);height:clamp(56px,9vmin,88px)}.fs-stop-icon{font-size:clamp(30px,5.2vmin,52px)}.fs-stop-num{width:clamp(26px,3.4vmin,34px);height:clamp(26px,3.4vmin,34px);font-size:clamp(14px,1.9vmin,19px)}.fs-stop-label{white-space:normal;text-align:center;max-width:min(170px,17vw);font-size:clamp(12px,1.8vmin,16px);line-height:1.15}.fs-chest-stop .fs-chest{width:clamp(84px,14vmin,150px)}.fs-map-buddy{font-size:clamp(34px,5.4vmin,54px)}.fs-map-foot{flex-wrap:wrap;gap:10px;padding:8px clamp(10px,2.4vmin,20px) max(12px,1.4vmin)}.fs-map-note{font-size:clamp(14px,2.2vmin,18px)}.fs-to-songs{font-size:clamp(18px,2.6vmin,22px)}.fs-lesson-title{min-width:0;padding:4px 16px 4px 6px;font-size:clamp(17px,3vmin,26px)}.fs-lesson-title>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fs-lesson-title .fs-stop-num{width:clamp(30px,4vmin,40px);height:clamp(30px,4vmin,40px);font-size:clamp(16px,2.2vmin,22px)}.fs-lesson-icon{font-size:clamp(24px,3.4vmin,34px)}.fs-lesson-top .btn.fs-top-skip{margin-left:auto}.fs-lesson-body{grid-template-columns:minmax(0,clamp(170px,26vw,300px)) minmax(0,1fr);padding:0 clamp(10px,3vmin,24px)}.fs-buddy-face{width:clamp(64px,13vmin,130px);height:clamp(64px,13vmin,130px);font-size:clamp(40px,8.4vmin,84px)}.fs-bubble-text{max-width:100%;padding:10px 14px;font-size:clamp(15px,2.2vmin,21px)}.fs-art{width:clamp(96px,23vmin,230px)}.fs-bubble{width:clamp(90px,20vmin,200px)}.fs-big-hand .hand-guide{width:clamp(120px,22vmin,220px)}.fs-big-hand .hand-svg{width:clamp(110px,20vmin,200px)}.fs-skip{min-height:var(--tap);padding:8px 18px;font-size:clamp(15px,2vmin,18px)}.fs-go{padding:clamp(12px,2vmin,18px) clamp(28px,5vmin,46px);font-size:clamp(22px,3.6vmin,30px)}.fs-did-it{padding:clamp(10px,1.8vmin,16px) clamp(24px,4.4vmin,40px);font-size:clamp(22px,3.4vmin,30px)}.fs-targets.big .fs-target{width:clamp(56px,10vmin,84px);height:clamp(56px,10vmin,84px);font-size:clamp(28px,5.2vmin,44px)}.fs-countin{font-size:clamp(56px,12vmin,96px)}.fs-result-banner{font-size:clamp(26px,5vmin,40px)}.fs-result-actions{flex-wrap:wrap;justify-content:center}.fs-result-actions .btn.big{padding:clamp(10px,1.8vmin,16px) clamp(22px,4vmin,36px);font-size:clamp(20px,3.4vmin,28px)}.fs-result-burst{width:clamp(240px,50vmin,420px);height:clamp(240px,50vmin,420px)}.fs-piano-wrap{padding:6px clamp(10px,3vmin,24px) max(12px,1.4vmin)}@media (orientation:portrait){.fs-lesson-body{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.fs-lesson-body>.fs-buddy{flex-direction:row;justify-content:center;padding-top:4px}.fs-lesson-body>.fs-buddy .fs-bubble-text{max-width:min(460px,70vw)}.fs-lesson-body>.fs-buddy .fs-bubble-text:before{border:12px solid #0000;border-left:0;border-right-color:#fff;top:50%;left:-12px;translate:0 -50%}.fs-piano-wrap{height:30%;min-height:160px}.fs-stop-label{max-width:19vw}}@media (height<=520px){.fs-lesson-body{grid-template-columns:minmax(0,200px) minmax(0,1fr)}.fs-piano-wrap{height:36%;min-height:110px}.fs-buddy{gap:6px;padding-top:0}.fs-bubble-text{padding:6px 10px;font-size:14px}.fs-stage{gap:8px}.fs-map-foot{padding-top:4px;padding-bottom:8px}.btn.fs-skip-btn{min-height:48px}.btn.fs-start-btn{min-height:64px;font-size:24px}}.fs-explorer{padding:max(var(--modal-gap), var(--safe-t)) max(var(--modal-gap), var(--safe-r)) max(var(--modal-gap), var(--safe-b)) max(var(--modal-gap), var(--safe-l))}.fs-explorer-x{top:max(16px, var(--safe-t));right:max(16px, var(--safe-r))}.fs-explorer-card{gap:clamp(4px,1.2vmin,10px);max-width:100%}.fs-explorer-sticker-wrap svg{width:clamp(110px,27vmin,240px);height:auto}.fs-explorer-title{text-align:center;font-size:clamp(32px,7.4vmin,58px)}.fs-explorer .fs-explorer-card.reveal .fs-explorer-title{font-size:clamp(28px,6.2vmin,48px)}.fs-explorer-name{font-size:clamp(20px,4.2vmin,34px)}.fs-explorer-buddy{font-size:clamp(44px,9.4vmin,80px);line-height:1}.fs-reveal-btn{padding:clamp(10px,1.8vmin,16px) clamp(22px,4.4vmin,38px);font-size:clamp(20px,3.6vmin,28px)}.fs-chest-wrap{--fly:clamp(120px, 26vmin, 230px);width:clamp(220px,44vmin,360px);height:clamp(170px,36vmin,300px)}.fs-chest-wrap .fs-chest{width:clamp(170px,36vmin,300px)}.fs-song-fly{width:clamp(74px,12vmin,120px);transform:rotate(var(--angle)) translateY(calc(-1 * var(--fly))) rotate(calc(-1 * var(--angle)));margin-left:calc(clamp(74px,12vmin,120px)/-2)}.fs-song-emoji{font-size:clamp(24px,4.2vmin,36px)}.fs-song-name{font-size:clamp(10px,1.5vmin,13px)}@media (height<=520px){.fs-explorer-card{grid-template-columns:auto auto;place-items:center;column-gap:28px;display:grid}.fs-explorer-card>.fs-explorer-sticker-wrap,.fs-explorer-card>.fs-chest-wrap{grid-row:1/span 4}.fs-chest-wrap{--fly:92px;place-items:end center;height:200px}.fs-song-fan{top:70%}}@media (prefers-reduced-motion:reduce){.fs-song-fly{transform:rotate(var(--angle)) translateY(calc(-1 * var(--fly))) rotate(calc(-1 * var(--angle)))}}.fs-songs-lock{padding:var(--modal-gap);overflow-y:auto}.fs-lock-card{gap:clamp(8px,1.6vmin,14px);max-width:100%;padding:clamp(8px,2vmin,16px)}.fs-lock-pic{font-size:clamp(48px,9vmin,76px)}.fs-lock-lock{font-size:.52em;right:-.34em}.fs-lock-card h2{font-size:clamp(20px,3.8vmin,28px)}.fs-songs-lock .btn.big{margin-top:0;padding:clamp(10px,1.8vmin,16px) clamp(20px,4vmin,34px);font-size:clamp(19px,3.2vmin,26px)}.fs-lock-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}@media (height<=520px){.fs-lock-card{text-align:left;grid-template-columns:auto 1fr;column-gap:18px;display:grid}.fs-lock-pic{grid-row:1/span 3}}@media (width<=900px){.btn.fs-btn .fs-btn-label,.btn.map-btn .fs-btn-label{display:none}.btn.fs-btn,.btn.map-btn{padding:4px 10px;font-size:18px}}.fs-explorer{overflow:clip}.btn.fs-reveal-btn{min-height:52px}.home-panel .panel-actions .close-x.inline{z-index:5;position:relative}.home-panel>.panel-head{top:calc(-1 * var(--panel-pad-t,16px));z-index:5;background:var(--panel);margin-top:calc(-1 * var(--panel-pad-t,16px));padding-top:var(--panel-pad-t,16px);border-radius:var(--radius) var(--radius) 0 0;padding-bottom:6px;position:sticky}@media (height<=520px){.home-panel{--panel-pad-t:10px}}@media (orientation:portrait) and (width<=600px){.home-panel{--panel-pad-t:12px}}.copy-me .cm-close{top:max(16px, var(--safe-t));right:max(18px, var(--safe-r))}.copy-me .cm-center{inset:calc(70px + var(--safe-t)) clamp(14px, 4vw, 40px) 10px;gap:clamp(10px,2.4vmin,24px)}.copy-me .cm-buddy{width:clamp(150px,30vmin,300px);height:clamp(150px,30vmin,300px)}.copy-me .cm-world-buddy{width:clamp(140px,27vmin,270px);height:clamp(154px,29.7vmin,297px)}.copy-me .cm-emoji-buddy{font-size:clamp(110px,22vmin,220px)}.copy-me .cm-cue-icon{font-size:clamp(52px,9.2vmin,92px)}.copy-me .cm-cue-word{font-size:clamp(19px,3vmin,30px)}.copy-me .cm-done{padding:max(var(--modal-gap), var(--safe-t)) max(var(--modal-gap), var(--safe-r)) max(var(--modal-gap), var(--safe-b)) max(var(--modal-gap), var(--safe-l))}.copy-me .cm-done-card{overscroll-behavior:contain;max-width:100%;max-height:100%;padding:clamp(16px,2.6vmin,26px) clamp(18px,4.6vmin,46px);overflow-y:auto}.copy-me .cm-done-title{text-align:center;font-size:clamp(22px,3.2vmin,32px)}.copy-me .cm-done-actions{flex-wrap:wrap;justify-content:center}.copy-me .btn.cm-again{padding:clamp(10px,1.6vmin,16px) clamp(24px,4.4vmin,44px);font-size:clamp(22px,3vmin,30px)}.copy-me-card .cmc-title{font-size:clamp(20px,2.8vmin,26px)}.copy-me-card{min-height:max(var(--tap), 84px)}@media (orientation:portrait){.copy-me .cm-center{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);align-content:center}}@media (width>=700px) and (height>=700px){.topbar{gap:10px}.topbar .btn.songs-btn,.topbar .btn.listen-btn,.topbar .btn.stickers-btn,.topbar .btn.fs-btn,.topbar .btn.map-btn,.topbar .btn.small{min-height:var(--tap);padding:6px 12px;font-size:14px}.topbar .btn.listen-btn.stop-btn{min-height:48px;padding:8px 18px;font-size:20px}.topbar .btn.fs-btn,.topbar .btn.map-btn{min-width:var(--tap)}.topbar .icon-btn{width:var(--tap);height:var(--tap);font-size:20px}.player-chip{min-height:var(--tap);padding:3px 10px 3px 3px;font-size:14px}.player-chip .avatar{width:32px!important;height:32px!important;font-size:18px!important}.progressbar,.meter{height:26px}.progress{font-size:13px}.song-emoji{font-size:26px}.song-name{font-size:13px}.song-meta{font-size:11px;display:block}.song-card{min-height:var(--tap)}.home-section-title{font-size:17px}.teacher-bubble{max-width:52vw;font-size:15px}.hint{display:block}.star-meter{opacity:.9}}@media (width>=700px) and (width<=900px) and (height>=700px){.topbar .btn.songs-btn,.topbar .btn.listen-btn,.topbar .btn.stickers-btn,.topbar .btn.small{padding:6px 10px}.progressbar,.meter{width:96px}.star-meter{transform-origin:100% 0;transform:scale(.8)}}@media (width>=901px) and (height>=700px){.topbar .btn.songs-btn,.topbar .btn.listen-btn,.topbar .btn.stickers-btn,.topbar .btn.fs-btn,.topbar .btn.map-btn{padding:8px 14px;font-size:16px}.topbar .btn.small,.player-chip{font-size:15px}}.app.calm .stage :is(.scene,.ninja-scene,.space-scene,.dino-scene) :not(.kid.celebrating *),.app.calm .stage :is(.scene,.ninja-scene,.space-scene,.dino-scene) :not(.kid.celebrating *):before,.app.calm .stage :is(.scene,.ninja-scene,.space-scene,.dino-scene) :not(.kid.celebrating *):after{animation:none!important}.app.calm .stage :is(.flake,.balloon,.dn-leaves,.dn-gliders,.dn-smoke,.nj-petals,.nj-fireflies,.sp-comets){display:none}.app.calm .teacher :is(.db-body,.db-tail,.db-eyes,.db-antenna,.db-arm-r.waving,.nb-body,.nb-eyes,.nb-tails,.nb-antenna,.nb-arm-r.waving,.sb-body,.sb-shadow,.sb-eyes,.sb-light,.sb-antenna,.sb-flames,.sb-arm-r.waving),.app.calm .kid:not(.celebrating) :is(.kid-body,.kid-leg,.kid-shin,.kid-arm,.kid-forearm){animation:none!important}.app.calm .kid[data-hop]:not(.celebrating){animation:none}.app.calm .star-meter{box-shadow:none;background:#ffffffc4;padding:5px 10px 4px}.app.calm .sm-star.full .star-icon,.app.calm .sm-burst,.app.calm .lh-trail-star.done .star-icon{animation:none}.app.calm .sm-burst{display:none}.app.calm .sm-star.lost{transform:none}.app.calm .lh-trail-star.now,.app.calm .key.target,.app.calm .key-hint,.app.calm .key-finger,.app.calm .key-finger.hinting,.app.calm .hand-finger.lit,.app.calm .hand-glow{animation:none}.app.calm:has(.tricky-hud) .note.current .note-finger{animation:none}.app.calm:has(.tricky-hud) .key-finger{animation:none}.app.calm:has(.tricky-hud) .note.current .note-finger{box-shadow:none}.app.calm:has(.tricky-hud) .hand-guide{box-shadow:0 0 0 3px var(--guide), 0 4px 14px #2b2d4214}@media (prefers-reduced-motion:reduce){.app.calm .kid.celebrating :is(.kid-body,.kid-arm){animation:none!important}.key,.key-played-edge,.hand-finger{transition:none}.lane.phrased .note{animation:none}}.point-hand{z-index:3;pointer-events:none;filter:drop-shadow(0 2px 3px #0003);font-size:56px;line-height:1;animation:1.6s ease-in both point-fade;position:absolute;bottom:8px;translate:-50%}.point-hand>span{animation:.5s ease-in-out 3 point-nudge-right;display:block}.point-hand.left>span{animation-name:point-nudge-left}@keyframes point-nudge-right{0%,to{transform:translate(0)}50%{transform:translate(26px)}}@keyframes point-nudge-left{0%,to{transform:translate(0)}50%{transform:translate(-26px)}}@keyframes point-fade{0%{opacity:0}8%,78%{opacity:1}to{opacity:0}}@media (width<=900px){.point-hand{font-size:48px}}@media (prefers-reduced-motion:reduce){.point-hand.left>span,.point-hand.right>span{animation:none}}
