.tf{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-y;z-index:1;color:var(--ink)}.tf-sky{position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse 30% 9% at 18% 16%,#fff 60%,transparent 62%),radial-gradient(ellipse 22% 7% at 26% 13%,#fff 60%,transparent 62%),radial-gradient(ellipse 26% 8% at 82% 28%,#fff 60%,transparent 62%),radial-gradient(ellipse 18% 6% at 76% 25%,#fff 60%,transparent 62%),radial-gradient(ellipse 120% 40% at 50% 112%,#7ccf52 60%,transparent 61%),linear-gradient(#6fc0ff,#bfe6ff 70%,#fff3c9)}.tf-top{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:10px;padding:max(10px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) 8px max(12px,env(safe-area-inset-left,0px))}.tf-back,.tf-voice{flex:none;width:52px;height:52px;border:0;border-radius:16px;background:var(--paper);box-shadow:0 5px 0 var(--shade);font-family:var(--display);font-weight:700;font-size:1.6rem;display:grid;place-items:center}.tf-back:active,.tf-voice:active{transform:translateY(4px);box-shadow:0 1px 0 var(--shade)}.tf-voice{margin-left:auto;font-size:1.4rem;opacity:.75}.tf-voice.on{opacity:1}.tf-eggs{display:flex;align-items:center;gap:8px;background:var(--paper);border-radius:16px;padding:6px 14px 6px 10px;height:52px;font-family:var(--display);font-weight:700;font-size:1.6rem;box-shadow:0 5px 0 var(--shade);font-variant-numeric:tabular-nums}.tf-egg{display:inline-block;flex:none;border-radius:50% 50% 48% 48%/60% 60% 40% 40%;background:radial-gradient(circle at 35% 30%,#fffbe0,#ffd54a 40%,#e09a00);box-shadow:inset -2px -3px #aa640073;vertical-align:middle}.tf-level{min-width:0;flex:0 1 190px;background:var(--paper);border-radius:16px;padding:5px 12px 7px;box-shadow:0 5px 0 var(--shade);display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:baseline}.tf-level-num{font-family:var(--display);font-weight:700;color:var(--grape);font-size:.95rem;white-space:nowrap}.tf-level-name{font-weight:800;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tf-level-bar{grid-column:1 / -1;height:9px;background:#eadff5;border-radius:5px;overflow:hidden;margin-top:3px}.tf-level-bar div{height:100%;background:linear-gradient(90deg,var(--sun),var(--tangerine));border-radius:5px;transition:width .4s}.tf-page{width:min(620px,100%);margin:0 auto;padding:6px max(14px,env(safe-area-inset-right,0px)) max(24px,env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:14px}.tf-title{font-family:var(--display);font-weight:700;font-size:clamp(2rem,8vw,2.8rem);margin:0;text-align:center;color:#fff;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:0 4px 0 var(--ink)}.tf-card{background:var(--paper);border:4px solid var(--ink);border-radius:24px;box-shadow:0 7px 0 var(--ink);padding:14px 16px 16px;position:relative}.tf-card h2{font-family:var(--display);font-weight:700;font-size:1.5rem;margin:0 0 8px;text-align:center}.tf-row{display:flex;gap:10px;flex-wrap:wrap}.tf-row .btn{flex:1 1 0;min-width:0;padding-left:10px;padding-right:10px;font-size:1rem}.tf-modes{display:flex;flex-direction:column;gap:14px}.tf-modes .btn small{display:inline-flex;align-items:center;gap:6px}.tf-start{width:100%}.tf-kip{display:flex;align-items:flex-end;gap:6px}.tf-kip-img{flex:none;width:108px;height:108px;object-fit:contain;filter:drop-shadow(0 5px 0 rgba(42,31,74,.22));transform-origin:50% 90%}.tf-kip.small .tf-kip-img{width:84px;height:84px}.tf-kip-img.talk{animation:kip-talk 1.6s ease-in-out infinite}.tf-kip-img.happy{animation:kip-hop .55s ease-out 2}.tf-kip-img.cheer{animation:kip-cheer .7s ease-in-out 3}.tf-kip-img.think{animation:kip-think 1.4s ease-in-out infinite}@keyframes kip-talk{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(-2deg)}}@keyframes kip-hop{0%{transform:translateY(0) scale(1.05,.92)}40%{transform:translateY(-26px) scale(.95,1.07)}70%{transform:translateY(0) scale(1.08,.9)}to{transform:none}}@keyframes kip-cheer{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-22px) rotate(-12deg)}75%{transform:translateY(-22px) rotate(12deg)}}@keyframes kip-think{0%,to{transform:rotate(-7deg)}50%{transform:rotate(5deg)}}.tf-bubble{position:relative;flex:1;min-width:0;background:#fff;border:3px solid var(--ink);border-radius:20px;padding:8px 14px 10px;box-shadow:0 5px 0 var(--shade);margin-bottom:18px;animation:pop .2s}.tf-bubble:before{content:"";position:absolute;left:-14px;bottom:14px;border:8px solid transparent;border-right:10px solid var(--ink)}.tf-bubble:after{content:"";position:absolute;left:-8px;bottom:16px;border:6px solid transparent;border-right:7px solid #fff}.tf-bubble strong{font-family:var(--display);font-weight:600;color:#c0561a;font-size:.9rem}.tf-bubble p{margin:0;font-weight:800;font-size:1.05rem;line-height:1.3}.tf-tables{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.tf-table{--c: var(--sky);--e: #1b56b8;border:0;border-radius:18px;padding:8px 2px;min-width:0;color:#fff;background:var(--c);box-shadow:0 7px 0 var(--e),0 12px 18px var(--shade);display:flex;flex-direction:column;align-items:center;gap:2px;transition:transform .08s}.tf-table:active{transform:translateY(6px);box-shadow:0 1px 0 var(--e)}.tf-table.t6{--c: #2f7bf5;--e: #1b56b8}.tf-table.t7{--c: #9b4dff;--e: #6a2cc4}.tf-table.t8{--c: #ef3b3b;--e: #a82424}.tf-table.t9{--c: #3cc34a;--e: #278a33}.tf-table.t1{--c: #ff8a1f;--e: #c45f05}.tf-table.t2{--c: #e94f9a;--e: #a8306c}.tf-table.t3{--c: #17b3b0;--e: #0e7f7d}.tf-table.t4{--c: #f2b705;--e: #b58700}.tf-table.t5{--c: #6a7cf0;--e: #4352b8}.tf-table.t10{--c: #8a5a3c;--e: #5e3b25}.tf-table-num{font-family:var(--display);font-weight:700;font-size:clamp(1.8rem,8vw,2.6rem);line-height:1;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:0 3px 0 var(--ink)}.tf-table-name{font-family:var(--display);font-weight:600;font-size:1.1rem}.tf-table-learned{font-size:.8rem;font-weight:800;opacity:.95}.tf-stars{display:inline-flex;gap:2px;font-size:1.2rem;line-height:1}.tf-table .tf-stars{font-size:clamp(.7rem,3vw,1rem);gap:0}.tf-stars span{color:#2a1f4a40}.tf-stars span.on{color:var(--sun);text-shadow:0 0 0 var(--ink),0 2px 0 #c48a00}.tf-table .tf-stars span{color:#ffffff59}.tf-table .tf-stars span.on{color:var(--sun)}.tf-stars.big{font-size:3.6rem;justify-content:center;width:100%}.tf-stars.big span.on{animation:star-in .5s cubic-bezier(.3,1.6,.5,1) both;-webkit-text-stroke:2px var(--ink)}@keyframes star-in{0%{transform:scale(0) rotate(-90deg)}to{transform:none}}.tf-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;width:min(340px,100%);margin:0 auto}.tf-tabs button{height:44px;border:0;border-radius:14px;background:var(--paper);font-family:var(--display);font-weight:700;font-size:1.4rem;box-shadow:0 4px 0 var(--shade)}.tf-tabs button.on{background:var(--grape);color:#fff;box-shadow:0 4px #6a2cc4}.tf-trick ol,.tf-explain ol{margin:0;padding-left:1.4em;display:grid;gap:6px;font-weight:800;font-size:1.1rem;line-height:1.3}.tf-trick li{animation:rise .35s both}.tf-grid-caption{margin:12px 0 4px;text-align:center;font-weight:800;font-size:.9rem;opacity:.75}.tf-grid{display:grid;gap:4px;justify-content:center;align-items:center;margin:8px auto 4px}.tf-grid-label{font-family:var(--display);font-weight:600;font-size:.7rem;opacity:.5;text-align:right;padding-right:4px}.tf-dot{border-radius:50%;background:#ff8a1f;box-shadow:inset 0 -2px #0000002e;animation:dot-in .25s both}.tf-dot.b{background:var(--grape)}.tf-dot.ghost{background:transparent;box-shadow:none;border:2px dashed #ef3b3b;position:relative}.tf-dot.ghost:after{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;width:2px;background:#ef3b3b;transform:rotate(45deg)}@keyframes dot-in{0%{transform:scale(0)}to{transform:none}}.tf-play{gap:10px}.tf-status{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:700}.tf-count,.tf-clock,.tf-run{flex:none;background:var(--paper);border-radius:12px;padding:4px 10px;box-shadow:0 4px 0 var(--shade);font-size:1rem;font-variant-numeric:tabular-nums}.tf-clock{font-size:1.2rem}.tf-clock.hurry{background:var(--berry);color:#fff;animation:pulse .6s infinite}.tf-run{transition:transform .2s}.tf-run.hot{background:var(--tangerine);color:#fff;transform:scale(1.1)}.tf-progress{flex:1;height:16px;background:#ffffffb3;border-radius:8px;overflow:hidden;box-shadow:inset 0 2px #00000014}.tf-progress div{height:100%;background:linear-gradient(90deg,var(--leaf),#9be35a);border-radius:8px;transition:width .4s}.tf-progress div.race{background:linear-gradient(90deg,var(--berry),var(--tangerine));transition:width 1s linear}.tf-question{text-align:center;padding:14px 12px}.tf-question[data-shake=true]{animation:shake .4s}@keyframes shake{0%,to{transform:none}20%,60%{transform:translate(-10px)}40%,80%{transform:translate(10px)}}.tf-sum{display:flex;justify-content:center;align-items:center;gap:10px;font-family:var(--display);font-weight:700;font-size:clamp(2.8rem,13vw,4.2rem);line-height:1;font-variant-numeric:tabular-nums}.tf-sum .op{color:var(--grape)}.tf-answer{min-width:1.6em;padding:4px 10px;border-radius:16px;background:#fff3c9;border:3px dashed var(--tangerine)}.tf-answer.empty{color:#2a1f4a4d}.tf-question.right .tf-answer,.tf-question.retryRight .tf-answer{background:var(--leaf);border:3px solid #278a33;color:#fff;animation:pop .25s}.tf-question.raceWrong .tf-answer{background:#ffe1c2;border-style:solid}.tf-egg-pop{position:absolute;right:16px;top:-14px;font-family:var(--display);font-weight:700;font-size:1.4rem;display:flex;align-items:center;gap:4px;background:#fff;border:3px solid var(--ink);border-radius:14px;padding:2px 10px;animation:egg-pop 1s ease-out both}@keyframes egg-pop{0%{transform:translateY(20px) scale(.4);opacity:0}25%{transform:translateY(-6px) scale(1.15);opacity:1}to{transform:translateY(-18px);opacity:1}}.tf-short{margin:10px 0 0;font-weight:800;font-size:1.1rem;color:#c0561a}.tf-explain{text-align:left;margin-top:12px;border-top:3px dashed #eadff5;padding-top:10px;display:flex;flex-direction:column;gap:8px}.tf-explain h3{margin:0;font-family:var(--display);font-weight:600;color:var(--grape);font-size:1.15rem}.tf-explain li.new{animation:rise .3s;color:#1b56b8}.tf-question .btn.big{margin-top:6px}.tf-controls{display:flex;flex-direction:column;gap:10px;align-items:center}.tf-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:min(340px,100%)}.tf-key{height:62px;border:0;border-radius:18px;background:#fff;font-family:var(--display);font-weight:700;font-size:1.9rem;box-shadow:0 6px #d9d2c3,0 8px 14px var(--shade);touch-action:manipulation}.tf-key:active{transform:translateY(5px);box-shadow:0 1px #d9d2c3}.tf-key.ok{background:var(--leaf);color:#fff;box-shadow:0 6px #278a33,0 8px 14px var(--shade)}.tf-key.wis{background:#ffe1c2}.tf-hint{border:0;background:#ffffffd9;border-radius:14px;padding:8px 16px;font-weight:800;box-shadow:0 4px 0 var(--shade);color:#c0561a}.tf-hint:disabled{opacity:.55}.tf-end .tf-card{text-align:center}.tf-big-num{margin:0;font-family:var(--display);font-weight:700;font-size:4rem;line-height:1;color:var(--tangerine);-webkit-text-stroke:2px var(--ink)}.tf-big-num small{font-size:1.4rem;-webkit-text-stroke:0;color:var(--ink)}.tf-score{margin:6px 0 0;font-weight:800}.tf-earned{margin:8px 0 0;font-family:var(--display);font-weight:700;font-size:1.5rem;display:flex;justify-content:center;align-items:center;gap:6px}.tf-levelup{margin:10px auto 0;background:var(--grape);color:#fff;border-radius:14px;padding:8px 14px;font-family:var(--display);font-weight:700;font-size:1.2rem;animation:pulse 1s ease-in-out 3}.tf-new-stickers{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center}.tf-new-stickers strong{width:100%;font-family:var(--display)}.tf-kaart-grid{display:grid;grid-template-columns:auto repeat(10,1fr);gap:3px;text-align:center;font-size:clamp(.62rem,2.7vw,.95rem)}.tf-kaart-grid b{font-size:.85em}.tf-kaart-grid b{font-family:var(--display);font-weight:700;align-self:center}.tf-fact{border-radius:6px;padding:5px 0;min-width:0;background:#f1ecf8;font-weight:800;color:#2a1f4a8c;font-variant-numeric:tabular-nums}.tf-fact.master{background:var(--leaf);color:#fff}.tf-fact.busy{background:#fff3c9;color:var(--ink)}.tf-fact.hard{background:var(--tangerine);color:#fff}.tf-legend{margin:12px 0 0;text-align:center;font-weight:800;font-size:.85rem;display:flex;gap:6px;align-items:center;justify-content:center;flex-wrap:wrap}.tf-legend i{display:inline-block;width:14px;height:14px;border-radius:4px;background:#fff3c9}.tf-legend i.master{background:var(--leaf)}.tf-legend i.hard{background:var(--tangerine)}.tf-sticker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.tf-sticker{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;background:#f1ecf8;border-radius:18px;padding:10px 8px}.tf-sticker b{font-size:2.2rem;width:58px;height:58px;display:grid;place-items:center;border-radius:50%;background:#ddd5ec;color:#a79cc4;font-family:var(--display)}.tf-sticker.on{background:#fff;box-shadow:0 4px 0 var(--shade)}.tf-sticker.on b{background:radial-gradient(circle at 35% 30%,#fffbe0,#ffd54a)}.tf-sticker strong{font-family:var(--display);font-weight:600}.tf-sticker span{font-size:.78rem;font-weight:700;opacity:.8;line-height:1.2}.tf-new-stickers .tf-sticker{flex-direction:row;padding:6px 12px 6px 6px;gap:8px;font-weight:800}.tf-new-stickers .tf-sticker b{width:40px;height:40px;font-size:1.5rem}.tf-confetti{position:fixed;inset:0;pointer-events:none;z-index:8;overflow:hidden}.tf-confetti i{position:absolute;top:-20px;width:10px;height:16px;border-radius:3px;animation-name:fall;animation-timing-function:cubic-bezier(.3,.6,.6,1);animation-fill-mode:both}@keyframes fall{0%{transform:translateY(0) rotate(0)}to{transform:translateY(105vh) rotate(540deg)}}@media(orientation:landscape)and (max-height:520px){.tf-top{padding-top:6px;padding-bottom:4px}.tf-back,.tf-voice,.tf-eggs{height:44px}.tf-back,.tf-voice{width:44px}.tf-page{width:min(900px,100%)}.tf-play{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto 1fr;column-gap:16px;align-items:start}.tf-play .tf-status,.tf-play .tf-kip,.tf-play .tf-question{grid-column:1}.tf-play .tf-controls{grid-column:2;grid-row:1 / span 3}.tf-play .tf-question:has(.tf-explain),.tf-play .tf-question.retryRight{grid-column:1 / -1}.tf-pad{width:270px;gap:8px}.tf-key{height:50px;font-size:1.6rem}.tf-kip-img,.tf-kip.small .tf-kip-img{width:70px;height:70px}.tf-tables{grid-template-columns:repeat(10,1fr)}.tf-sum{font-size:2.8rem}}@media(max-width:380px){.tf-level{display:none}.tf-key{height:56px}}@media(prefers-reduced-motion:reduce){.tf-kip-img,.tf-dot,.tf-trick li,.tf-confetti{animation:none!important}}.tf-question.explain .tf-answer{background:#ffe1e1;border:3px solid var(--berry);color:var(--berry);text-decoration:line-through;text-decoration-thickness:4px}.tf-voice-note{margin:0;background:#fffaf0f0;border-radius:14px;padding:8px 12px;font-weight:800;font-size:.85rem;box-shadow:0 4px 0 var(--shade)}.menu-games{display:flex;gap:10px}.menu-games .btn{flex:1 1 0;min-width:0;padding:8px 6px 10px!important;font-size:clamp(.95rem,4.4vw,1.25rem)!important;line-height:1.05}.menu-games .btn small{font-size:clamp(.66rem,3vw,.8rem)}.menu-games .btn img{width:50px;height:42px;object-fit:contain;filter:drop-shadow(0 3px 0 rgba(0,0,0,.18))}.menu-games .btn small{white-space:nowrap}.menu-race{--c: #e94f9a !important;--edge: #a8306c !important;--t: #fff !important}.rc{position:absolute;inset:0;z-index:1;color:var(--ink);overflow:hidden}.rc-sky{position:absolute;inset:0;background:radial-gradient(ellipse 18% 6% at 16% 14%,#fff 60%,transparent 62%),radial-gradient(ellipse 13% 5% at 23% 11%,#fff 60%,transparent 62%),radial-gradient(ellipse 16% 5% at 80% 24%,#fff 60%,transparent 62%),radial-gradient(ellipse 11% 4% at 74% 21%,#fff 60%,transparent 62%),linear-gradient(#5db6ff,#bfe6ff 65%,#fff3c9)}.rc-scroll{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-y}.rc-top{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:12px;padding:max(10px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) 8px max(12px,env(safe-area-inset-left,0px))}.rc-back{flex:none;width:52px;height:52px;border:0;border-radius:16px;background:var(--paper);box-shadow:0 5px 0 var(--shade);font-family:var(--display);font-weight:700;font-size:1.6rem;display:grid;place-items:center;color:var(--ink)}.rc-back:active{transform:translateY(4px);box-shadow:0 1px 0 var(--shade)}.rc-title{font-family:var(--display);font-weight:700;font-size:clamp(1.9rem,8vw,2.6rem);margin:0;color:#fff;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:0 4px 0 var(--ink)}.rc-page{position:relative;width:min(620px,100%);margin:0 auto;padding:4px max(14px,env(safe-area-inset-right,0px)) max(24px,env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:14px}.rc-card{background:var(--paper);border:4px solid var(--ink);border-radius:24px;box-shadow:0 7px 0 var(--ink);padding:12px 14px 14px;position:relative}.rc-card h2{font-family:var(--display);font-weight:700;font-size:1.4rem;margin:0 0 10px;text-align:center}.rc-how{display:flex;align-items:center;gap:10px}.rc-how p{margin:0;font-weight:800;font-size:1.02rem;line-height:1.3}.rc-how b.go{color:#1f9a2c}.rc-mini{flex:none;position:relative;width:112px;height:62px;font-size:7px}.rc-mini .rc-kart{animation:rc-idle .5s ease-in-out infinite alternate}@keyframes rc-idle{to{transform:translateY(-1.5px)}}.rc-boxies{display:grid;grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:8px}.rc-pick{border:0;border-radius:16px;background:#fff;padding:4px;aspect-ratio:1;box-shadow:0 4px 0 var(--shade),inset 0 0 0 3px #eee6d6;display:grid;place-items:center;transition:transform .1s}.rc-pick img{width:100%;height:100%;object-fit:contain}.rc-pick.on{background:var(--c);box-shadow:0 4px 0 var(--ink),inset 0 0 0 3px var(--ink);transform:translateY(-3px) scale(1.06)}.rc-pick:active{transform:translateY(3px)}.rc-chosen{margin:10px 0 0;text-align:center;font-weight:800}.rc-rivals{display:flex;flex-direction:column;gap:10px}.rc-rival{--c: #fff;display:flex;align-items:center;gap:10px;border:0;border-radius:18px;background:#fff;padding:6px 12px 6px 6px;text-align:left;box-shadow:0 5px 0 var(--shade),inset 0 0 0 3px #eee6d6}.rc-rival img{width:54px;height:46px;object-fit:contain;flex:none}.rc-rival-text{display:flex;flex-direction:column;flex:1;min-width:0}.rc-rival-text strong{font-family:var(--display);font-weight:700;font-size:1.25rem;line-height:1.1}.rc-rival-text small{font-weight:800;font-size:.85rem;opacity:.8}.rc-rival-cup{flex:none;display:flex;flex-direction:column;align-items:center;font-size:1.5rem;line-height:1;min-width:46px}.rc-rival-cup small{font-size:.75rem;font-weight:800}.rc-rival.on{box-shadow:0 5px 0 var(--ink),inset 0 0 0 4px var(--ink);transform:translateY(-2px)}.rc-rival.makkelijk.on{background:#d9f7d2}.rc-rival.normaal.on{background:#d6e8ff}.rc-rival.snel.on{background:#ffe7c7}.rc-rival.kampioen.on{background:#ffd6e8}.rc-rival:active{transform:translateY(3px)}.rc-go-btn{font-size:2rem!important}.rc-note{margin:-4px 0 0;text-align:center;font-weight:800;color:var(--ink);opacity:.75}.rc-kart{position:absolute;right:0;bottom:0;width:16em;height:8.5em}.rc-tilt{position:absolute;inset:0;transform-origin:3.4em 100%}.rc-body{position:absolute;left:2em;right:0;bottom:1.5em;height:2.7em;background:linear-gradient(var(--c) 55%,var(--e));border:.3em solid var(--ink);border-radius:1.4em 4em 1.2em .9em/1.4em 2.2em 1.2em .9em;overflow:hidden}.rc-stripe{position:absolute;left:30%;right:8%;top:38%;height:.55em;background:#ffffffbf;border-radius:1em}.rc-wing{position:absolute;left:.2em;bottom:4.5em;width:3.8em;height:1em;background:var(--e);border:.3em solid var(--ink);border-radius:.5em}.rc-wing:after{content:"";position:absolute;left:1.4em;top:.6em;width:.6em;height:1.3em;background:var(--ink)}.rc-driver{position:absolute;left:5em;bottom:3.1em;width:5.6em;height:4.5em;object-fit:contain;filter:drop-shadow(0 .2em 0 rgba(42,31,74,.25));pointer-events:none}.rc-wheel{position:absolute;border-radius:50%;background:radial-gradient(circle,#d8d4e6 0 18%,var(--ink) 19% 25%,#3b3550 26% 58%,#1c1830 59%);border:.25em solid var(--ink)}.rc-wheel i{position:absolute;left:50%;top:8%;bottom:8%;width:14%;margin-left:-7%;background:#d8d4e6;border-radius:1em;opacity:.9}.rc-wheel i:after{content:"";position:absolute;left:-250%;right:-250%;top:50%;height:14%;margin-top:-7%;background:inherit;border-radius:inherit}.rc-wheel.rear{left:.5em;bottom:0;width:5.8em;height:5.8em}.rc-wheel.front{right:.6em;bottom:0;width:2.6em;height:2.6em}.rc-flame{position:absolute;left:-2.4em;bottom:2.3em;width:2.8em;height:1.5em;border-radius:50% 0 0 50%;background:radial-gradient(ellipse at 100% 50%,#fff6a8 0 25%,#ffc21a 45%,#ff8a1f 70%,transparent 72%);transform-origin:100% 50%;opacity:0}.rc-smoke{position:absolute;left:-4em;bottom:-.3em;width:7em;height:3em;opacity:0;pointer-events:none}.rc-smoke i{position:absolute;bottom:0;width:2.6em;height:2.6em;border-radius:50%;background:#ffffffd9;animation:rc-puff .5s linear infinite}.rc-smoke i:nth-child(2){left:1.8em;animation-delay:-.17s}.rc-smoke i:nth-child(3){left:3.4em;animation-delay:-.34s}@keyframes rc-puff{0%{transform:translate(1.5em) scale(.5)}to{transform:translate(-2em,-1em) scale(1.3);opacity:0}}.rc-stage{--lane: clamp(64px, 12vh, 104px);--ground: clamp(74px, 16vh, 150px);--ppm: 12px;--cam: 0px;--wind: 0;position:absolute;inset:0;overflow:hidden;touch-action:none;-webkit-touch-callout:none;cursor:pointer}.rc-layers{position:absolute;inset:0}.rc-hills{position:absolute;left:0;right:0;bottom:calc(var(--ground) + var(--lane) * 2 + var(--lane) * .8);height:22vh;background:radial-gradient(ellipse 50% 100% at 50% 100%,#8fd46a 97%,transparent 100%) calc(var(--cam) * .12) 100% / 520px 80% repeat-x,radial-gradient(ellipse 50% 100% at 50% 100%,#b6e39a 97%,transparent 100%) calc(var(--cam) * .06 + 200px) 100% / 380px 100% repeat-x}.rc-stands{position:absolute;left:0;right:0;bottom:calc(var(--ground) + var(--lane) * 2);height:calc(var(--lane) * .95 + 3vh);border-top:4px solid var(--ink);background-color:#4a3f6b;background-image:repeating-linear-gradient(90deg,#ef3b3b 0 40px,#fff 40px 80px),radial-gradient(circle at 13px 11px,#ffd25e 6px,transparent 7px),radial-gradient(circle at 13px 11px,#ff7aa8 6px,transparent 7px),radial-gradient(circle at 13px 11px,#7ac3ff 6px,transparent 7px),repeating-linear-gradient(#5d5185 0 11px,#4a3f6b 11px 22px);background-size:80px 10px,26px 22px,26px 22px,26px 22px,100% 100%;background-position:calc(var(--cam) * .5) 0,calc(var(--cam) * .5) 12px,calc(var(--cam) * .5 + 13px) 23px,calc(var(--cam) * .5 + 6px) 34px,0 0;background-repeat:repeat-x,repeat-x,repeat-x,repeat-x,no-repeat}.rc-track{position:absolute;left:0;right:0;bottom:var(--ground);height:calc(var(--lane) * 2);background:repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 3px,transparent 3px 47px) var(--cam) 0 / 47px 100%,linear-gradient(#55506a,#45405a);border-top:7px solid transparent;border-bottom:7px solid transparent;border-image:repeating-linear-gradient(90deg,#ef3b3b 0 22px,#fff 22px 44px) 7}.rc-track:after{content:"";position:absolute;left:0;right:0;top:50%;height:6px;margin-top:-3px;background:repeating-linear-gradient(90deg,#fff 0 34px,transparent 34px 70px) var(--cam) 0 / 70px 100% repeat-x;opacity:.85}.rc-layers:after{content:"";position:absolute;left:0;right:0;bottom:0;height:var(--ground);background:linear-gradient(#5dbb3f,#4aa32f)}.rc-wind{position:absolute;inset:0;pointer-events:none;opacity:var(--wind);background:linear-gradient(90deg,transparent 0 60%,rgba(255,255,255,.85) 60% 100%) calc(var(--cam) * 1.6) 22% / 230px 3px no-repeat repeat-x,linear-gradient(90deg,transparent 0 40%,rgba(255,255,255,.7) 40% 100%) calc(var(--cam) * 1.9 + 90px) 38% / 310px 3px no-repeat repeat-x,linear-gradient(90deg,transparent 0 70%,rgba(255,255,255,.8) 70% 100%) calc(var(--cam) * 1.4 + 40px) 54% / 270px 2px no-repeat repeat-x;background-repeat:repeat-x}.rc-world{position:absolute;inset:0;will-change:transform;pointer-events:none}.rc-line{position:absolute;bottom:var(--ground);height:calc(var(--lane) * 2);width:14px;margin-left:-7px}.rc-line.start{background:#fff;width:8px;margin-left:-4px;opacity:.9}.rc-line.finish{background:repeating-conic-gradient(#fff 0 25%,var(--ink) 0 50%) 0 0 / 14px 14px;width:28px;margin-left:0}.rc-arch{position:absolute;left:-10px;bottom:100%;width:48px;height:calc(var(--lane) * 1.3)}.rc-arch span{position:absolute;left:50%;top:0;transform:translate(-50%);background:var(--paper);border:4px solid var(--ink);border-radius:12px;padding:2px 10px;font-family:var(--display);font-weight:700;font-size:1.1rem;box-shadow:0 4px 0 var(--shade);white-space:nowrap}.rc-arch:before,.rc-arch:after{content:"";position:absolute;bottom:0;top:18px;width:8px;background:var(--ink);border-radius:4px}.rc-arch:before{left:6px}.rc-arch:after{right:6px}.rc-mark{position:absolute;bottom:calc(var(--ground) + var(--lane) * 2 + 4px);transform:translate(-50%);background:var(--paper);border:3px solid var(--ink);border-radius:10px;padding:0 8px;font-family:var(--display);font-weight:700;font-size:.9rem;white-space:nowrap}.rc-car{position:absolute;left:0;width:0;font-size:calc(var(--lane) / 10);will-change:transform}.rc-car.rival{bottom:calc(var(--ground) + var(--lane) * 1.12)}.rc-car.mine{bottom:calc(var(--ground) + var(--lane) * .1)}.rc-car.rival .rc-kart{filter:saturate(.9)}.rc-hud{position:absolute;left:0;right:0;top:0;display:flex;align-items:center;gap:12px;padding:max(10px,env(safe-area-inset-top,0px)) max(14px,env(safe-area-inset-right,0px)) 0 max(12px,env(safe-area-inset-left,0px));z-index:3}.rc-progress{position:relative;flex:1;height:40px;margin-right:26px;border-radius:20px;background:#fffaf0d9;border:3px solid var(--ink);box-shadow:0 4px 0 var(--shade)}.rc-progress-flag{position:absolute;right:-24px;top:50%;transform:translateY(-50%);font-size:1.6rem}.rc-dot{position:absolute;top:50%;width:38px;height:32px;margin:-16px 0 0 -19px}.rc-dot.rival{margin-top:-24px;transform:scale(.8)}.rc-dot.mine{margin-top:-10px}.rc-dot img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 0 rgba(0,0,0,.25))}.rc-tag{position:absolute;display:none;align-items:center;gap:4px;bottom:calc(var(--ground) + var(--lane) * 1.3);background:var(--paper);border:3px solid var(--ink);border-radius:14px;padding:2px 10px 2px 4px;font-family:var(--display);font-weight:700;font-size:1rem;box-shadow:0 4px 0 var(--shade);z-index:2;pointer-events:none}.rc-tag img{width:34px;height:28px;object-fit:contain}.rc-tag.right{display:flex;right:max(10px,env(safe-area-inset-right,0px))}.rc-tag.left{display:flex;left:max(10px,env(safe-area-inset-left,0px))}.rc-tag.right:after{content:"▶";margin-left:2px}.rc-tag.left:before{content:"◀";order:-1}.rc-tree{position:absolute;left:50%;top:max(70px,calc(env(safe-area-inset-top,0px) + 64px));transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;z-index:3;pointer-events:none;transition:opacity .4s .6s}.rc-tree.gone{opacity:0}.rc-bulbs{display:flex;gap:10px;background:var(--ink);padding:8px 12px;border-radius:22px;box-shadow:0 5px #00000040}.rc-bulbs i{width:clamp(28px,7vh,46px);height:clamp(28px,7vh,46px);border-radius:50%;background:#4b4366;box-shadow:inset 0 -4px #0000004d;transition:background .1s,box-shadow .1s}.rc-bulbs i.orange{background:#ffb21a;box-shadow:inset 0 -4px #0003,0 0 18px #ffb21a}.rc-bulbs i.green{background:#3cd44a;box-shadow:inset 0 -4px #0003,0 0 24px #3cd44a}.rc-count{font-family:var(--display);font-weight:700;font-size:clamp(2.4rem,11vh,5rem);line-height:1;color:#fff;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:0 5px 0 var(--ink)}.rc-tree.gone .rc-count{display:none}.rc-go{position:absolute;left:50%;top:32%;transform:translate(-50%,-50%);font-family:var(--display);font-weight:700;font-size:clamp(3rem,14vw,6rem);color:#3cd44a;-webkit-text-stroke:5px var(--ink);paint-order:stroke fill;text-shadow:0 6px 0 var(--ink);pointer-events:none;z-index:3;animation:rc-go .9s ease-out forwards;white-space:nowrap}@keyframes rc-go{0%{transform:translate(-50%,-50%) scale(.4)}25%{transform:translate(-50%,-50%) scale(1.15)}70%{opacity:1}to{transform:translate(-50%,-50%) scale(1.5);opacity:0}}.rc-msg{position:absolute;left:50%;top:30%;transform:translate(-50%);background:var(--paper);border:4px solid var(--ink);border-radius:18px;padding:6px 16px;font-family:var(--display);font-weight:700;font-size:1.3rem;box-shadow:0 5px 0 var(--shade);white-space:nowrap;z-index:3;pointer-events:none;animation:pop .2s,rc-fade .4s 1.8s forwards}@keyframes rc-fade{to{opacity:0}}.rc-speed{position:absolute;left:50%;bottom:max(8px,env(safe-area-inset-bottom,0px));transform:translate(-50%);display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:12px;width:min(420px,calc(100% - 24px));background:#fffaf0eb;border:3px solid var(--ink);border-radius:18px;padding:4px 14px 4px 12px;box-shadow:0 4px 0 var(--shade);z-index:2;pointer-events:none}.rc-speed-num{font-family:var(--display);font-weight:700;font-size:1.9rem;line-height:1;font-variant-numeric:tabular-nums;min-width:4.4ch}.rc-speed-num small{font-size:.85rem;margin-left:3px}.rc-power{height:14px;border-radius:7px;background:#eadff5;overflow:hidden}.rc-power div{height:100%;width:0;border-radius:7px;background:linear-gradient(90deg,var(--leaf),var(--sun) 60%,var(--berry))}.rc-names{grid-column:1 / -1;font-weight:800;font-size:.8rem;text-align:center;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-height:520px){.rc-names{display:none}.rc-speed-num{font-size:1.5rem}.rc-tree{top:58px;flex-direction:row;gap:12px}}.rc-hint{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:8px;font-family:var(--display);font-weight:700;font-size:1.6rem;color:#fff;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:0 4px 0 var(--ink);pointer-events:none;z-index:2;white-space:nowrap}.rc-finger{font-size:2.4rem;-webkit-text-stroke:0;text-shadow:none;animation:rc-tap .35s ease-in-out infinite alternate}@keyframes rc-tap{0%{transform:translateY(-6px)}to{transform:translateY(6px) scale(.92)}}@media(max-height:520px){.rc-hint{top:40%}}.rc-pop{position:absolute;width:0;height:0;pointer-events:none;z-index:4}.rc-pop:before{content:"★";position:absolute;left:-20px;top:-20px;width:40px;text-align:center;font-size:34px;line-height:40px;color:var(--sun);-webkit-text-stroke:2px var(--ink);animation:rc-pop .45s ease-out forwards}@keyframes rc-pop{0%{transform:scale(.4) rotate(var(--r));opacity:1}to{transform:translateY(-30px) scale(1.3) rotate(var(--r));opacity:0}}.rc-big{font-family:var(--display);font-weight:700;font-size:clamp(2.6rem,12vw,4rem);margin:0;text-align:center;color:#fff;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:0 5px 0 var(--ink);animation:rc-in .3s}@keyframes rc-in{0%{transform:scale(.6);opacity:0}}.rc-big.win{color:var(--sun)}.rc-podium{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rc-who{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:16px;background:#f3ecdf}.rc-who.first{background:#fff1b8;box-shadow:inset 0 0 0 3px var(--sun)}.rc-who img{width:80px;height:66px;object-fit:contain}.rc-who strong{font-family:var(--display);font-weight:700;font-size:1.15rem;text-align:center}.rc-who span{font-weight:800;font-variant-numeric:tabular-nums}.rc-who em{position:absolute;right:8px;top:6px;font-style:normal;font-size:1.8rem;animation:kip-hop-cup .6s ease-out 2}@keyframes kip-hop-cup{40%{transform:translateY(-12px) rotate(-10deg)}}.rc-stats .rc-advice{margin:0 0 8px;font-weight:800;font-size:1.1rem;text-align:center;line-height:1.3}.rc-stats ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;font-weight:800}.rc-stats li b{font-family:var(--display);font-size:1.3rem}.rc-record{margin:10px 0 0;text-align:center;font-family:var(--display);font-weight:700;font-size:1.2rem;color:#c0561a}.rc-end-buttons{display:flex;flex-direction:column;gap:14px;align-items:stretch}.rc-confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:5}.rc-confetti i{position:absolute;top:-20px;width:12px;height:16px;border-radius:3px;animation:rc-fall linear forwards}@keyframes rc-fall{to{transform:translateY(110vh) rotate(540deg)}}@media(prefers-reduced-motion:reduce){.rc-finger,.rc-mini .rc-kart,.rc-smoke i{animation:none}}.menu-vis{--c: #19a7c9 !important;--edge: #0e6f87 !important;--t: #fff !important}.vs{position:absolute;inset:0;z-index:1;color:var(--ink);overflow:hidden;pointer-events:auto;background:#2a9be0}.vs-stage{position:absolute;inset:0;touch-action:none}.vs-stage canvas{width:100%;height:100%;display:block}.vs-top{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:max(10px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) 8px max(12px,env(safe-area-inset-left,0px));pointer-events:none}.vs-top>*{pointer-events:auto}.vs-best{background:var(--paper);border-radius:16px;box-shadow:0 5px 0 var(--shade);font-family:var(--display);font-weight:700;font-size:1.4rem;padding:8px 14px}.vs-score{position:absolute;z-index:2;top:max(64px,calc(env(safe-area-inset-top,0px) + 58px));left:0;right:0;text-align:center;pointer-events:none;font-family:var(--display);font-weight:700;font-size:clamp(3.4rem,14vw,5rem);line-height:1;color:#fff;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:0 5px 0 var(--ink)}.vs-score.hide{opacity:0}.vs-score.pop{animation:vs-pop .25s ease-out}@keyframes vs-pop{40%{transform:scale(1.25)}}.vs-card{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,calc(100% - 28px));max-height:calc(100% - 90px);overflow-y:auto;background:var(--paper);border:4px solid var(--ink);border-radius:26px;box-shadow:0 8px 0 var(--ink);padding:14px 16px 18px;display:flex;flex-direction:column;align-items:stretch;gap:12px;text-align:center}.vs-card .rc-title{font-size:clamp(2.2rem,10vw,2.8rem);color:#ffb13b}.vs-card p{margin:0;font-weight:800;line-height:1.3}.vs-ready{top:54%}.vs-fish{display:flex;gap:10px;justify-content:center}.vs-pick{flex:1 1 0;max-width:110px;border:0;border-radius:18px;background:#fff;padding:6px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;box-shadow:0 4px 0 var(--shade),inset 0 0 0 3px #eee6d6;font-family:var(--display);font-weight:700;font-size:1rem;transition:transform .1s}.vs-pick img,.vs-pick svg{width:54px;height:46px;object-fit:contain}.vs-pick.on{background:var(--c);color:#fff;box-shadow:0 4px 0 var(--ink),inset 0 0 0 3px var(--ink);transform:translateY(-3px) scale(1.05)}.vs-pick:active{transform:translateY(3px)}.vs-end h2{font-family:var(--display);font-weight:700;font-size:1.9rem;margin:0}.vs-big{font-family:var(--display);font-weight:700;font-size:5rem;line-height:1;color:#2f7bf5;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:0 5px 0 var(--ink);margin-top:4px}.vs-big.gold{color:#ffc21a;animation:vs-pop .5s ease-out 2}.vs-end p{margin-top:-6px}.vs-rec{font-size:1.05rem}.vs-swim{position:absolute;z-index:3;right:max(18px,env(safe-area-inset-right,0px));bottom:max(22px,calc(env(safe-area-inset-bottom,0px) + 10px));width:96px;height:96px;border-radius:50%;border:4px solid var(--ink);background:radial-gradient(circle at 35% 30%,#9ff0ff,#19a7c9 60%,#0e6f87);color:#fff;font-family:var(--display);font-weight:700;font-size:1.15rem;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;box-shadow:0 6px 0 var(--ink);touch-action:none;-webkit-text-stroke:1px var(--ink);opacity:.92}.vs-swim span{font-size:2rem}.vs-swim.tap{animation:vs-tap .18s ease-out}@keyframes vs-tap{40%{transform:translateY(5px) scale(.92);box-shadow:0 1px 0 var(--ink)}}@media(max-height:520px){.vs-card{top:52%;gap:8px;padding:10px 14px 12px;max-height:calc(100% - 20px);width:min(460px,calc(100% - 200px))}.vs-card .rc-title{font-size:2rem}.vs-card p{font-size:.92rem}.vs-pick img,.vs-pick svg{width:44px;height:36px}.vs-end h2{font-size:1.5rem}.vs-big{font-size:3.2rem}.vs-card .btn.big{font-size:1.3rem;padding:10px 20px}}:root{--ink: #2a1f4a;--paper: #fffaf0;--sky: #2f7bf5;--sun: #ffc21a;--berry: #ef3b3b;--leaf: #3cc34a;--grape: #9b4dff;--tangerine: #ff8a1f;--pig: #f6a8c4;--shade: rgba(42, 31, 74, .28);--display: "Fredoka", "Baloo 2", "Comic Sans MS", system-ui, sans-serif;--body: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden;background:#8fd0ff}body{font-family:var(--body);color:var(--ink);-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;touch-action:none;overscroll-behavior:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline:3px solid var(--sun);outline-offset:3px}kbd{font-family:var(--display);font-weight:600;background:var(--paper);color:var(--ink);border-radius:6px;padding:1px 7px;box-shadow:0 2px 0 var(--shade);font-size:.85em}.app{position:fixed;inset:0}.app canvas{display:block;touch-action:none}.ui{position:absolute;inset:0;pointer-events:none;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}.ui>*{pointer-events:auto}.btn{--c: #ffffff;--edge: #d9d2c3;--t: var(--ink);font-family:var(--display);font-weight:600;font-size:1.15rem;background:var(--c);color:var(--t);border:0;border-radius:16px;padding:12px 22px;box-shadow:0 6px 0 var(--edge),0 10px 18px var(--shade);transition:transform .08s,box-shadow .08s;display:inline-flex;flex-direction:column;align-items:center;gap:2px}.btn:hover{transform:translateY(-2px);box-shadow:0 8px 0 var(--edge),0 12px 20px var(--shade)}.btn:active{transform:translateY(5px);box-shadow:0 1px 0 var(--edge),0 3px 6px var(--shade)}.btn small{font-family:var(--body);font-size:.8rem;opacity:.85;font-weight:800}.btn.big{font-size:1.5rem;padding:14px 28px;width:100%}.btn.huge{font-size:clamp(1.4rem,5vw,2.4rem);padding:18px 34px;letter-spacing:.02em}.btn.small{font-size:.95rem;padding:8px 14px;border-radius:12px}.btn.green{--c: var(--leaf);--edge: #278a33;--t: #fff}.btn.blue{--c: var(--sky);--edge: #1b56b8;--t: #fff}.btn.red{--c: var(--berry);--edge: #a82424;--t: #fff}.btn.orange{--c: var(--tangerine);--edge: #c45f05;--t: #fff}.menu{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:max(4vh,16px) max(16px,env(safe-area-inset-right,0px)) max(14px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));pointer-events:none}.menu>*{pointer-events:auto}.menu-card{text-align:center;width:min(460px,100%)}.title{font-family:var(--display);font-weight:700;font-size:clamp(4rem,16vw,7.5rem);line-height:.9;margin:0;letter-spacing:-.02em}.title span{display:inline-block;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:0 6px 0 var(--ink);animation:hop 2.6s ease-in-out infinite}@keyframes hop{0%,70%,to{transform:translateY(0) rotate(0)}80%{transform:translateY(-14px) rotate(-4deg)}90%{transform:translateY(0) rotate(2deg)}}.subtitle{font-family:var(--display);font-weight:600;font-size:clamp(1.2rem,4.5vw,1.8rem);margin:10px 0 0;color:#fff;text-shadow:0 3px 0 var(--ink);letter-spacing:.04em}.menu-bottom{width:min(360px,100%);display:flex;flex-direction:column;align-items:stretch}.menu-buttons{display:flex;flex-direction:column;gap:16px;margin-top:20px;align-items:stretch}.menu-buttons .row{display:flex;gap:12px}.menu-buttons .row .btn{flex:1}.confirm{background:var(--paper);border-radius:14px;padding:12px 16px;margin:0;font-weight:800;box-shadow:0 6px 0 var(--shade)}.menu-links{margin:8px 0 0;display:flex;justify-content:center;flex-wrap:wrap;gap:4px 14px;font-size:.75rem}.menu-links a{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.55);font-weight:800}.credit{margin:18px 0 0;text-align:center;font-size:.8rem;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.55);font-weight:800}.hud-top{position:absolute;top:max(12px,env(safe-area-inset-top,0px));left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));display:flex;gap:12px;align-items:flex-start;pointer-events:none}.hud-top>*{pointer-events:auto}.coins{display:flex;align-items:center;gap:8px;background:var(--paper);border-radius:18px;padding:6px 16px 6px 8px;font-family:var(--display);font-weight:700;font-size:1.8rem;box-shadow:0 5px 0 var(--shade);transition:transform .12s;font-variant-numeric:tabular-nums}.coins.bump{transform:scale(1.12)}.coin-icon{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff2a8,#ffc21a 45%,#d38b00);box-shadow:inset 0 -3px #b87400,0 0 0 3px #fff2c2}.mission{flex:1;max-width:420px;background:#fffaf0f0;border-radius:18px;padding:10px 14px;box-shadow:0 5px 0 var(--shade);min-width:0}.mission-chapter{font-family:var(--display);font-weight:600;font-size:.8rem;color:var(--grape);text-transform:uppercase;letter-spacing:.06em}.mission-text{font-weight:800;font-size:.98rem;line-height:1.25}.bar{position:relative;margin-top:6px;height:20px;background:#eadff5;border-radius:10px;overflow:hidden}.bar>div{height:100%;background:linear-gradient(90deg,var(--sun),var(--tangerine));border-radius:10px;transition:width .3s}.bar span{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display);font-weight:600;font-size:.8rem}.hud-buttons{margin-left:auto;display:flex;gap:10px}.boxie-btn{position:relative;border:0;background:var(--paper);border-radius:18px;padding:4px;box-shadow:0 5px 0 var(--shade)}.boxie-btn .swap{position:absolute;bottom:-6px;right:-6px;background:var(--grape);color:#fff;font-family:var(--display);font-weight:700;border-radius:8px;padding:0 6px;font-size:.8rem}.icon-btn{width:60px;height:60px;border:0;background:var(--paper);border-radius:18px;box-shadow:0 5px 0 var(--shade);display:grid;place-items:center}.pause-icon{width:20px;height:22px;border-left:7px solid var(--ink);border-right:7px solid var(--ink)}.portrait{display:block;object-fit:contain}.portrait.mystery{display:grid;place-items:center;font-family:var(--display);font-size:2rem;font-weight:700;color:#fff;background:#b9b0d6;border-radius:14px}.portrait.robot{display:grid;place-items:center}.robot-head{width:70%;height:58%;background:linear-gradient(#d4dbee,#9fa9c6);border-radius:22%;display:flex;align-items:center;justify-content:center;gap:18%;box-shadow:inset 0 -4px #7f88a6}.robot-head span{width:18%;aspect-ratio:1;border-radius:50%;background:#3df2ff;box-shadow:0 0 8px #00d0ff}.prompt{position:absolute;left:50%;bottom:120px;transform:translate(-50%);background:var(--ink);color:#fff;font-weight:800;padding:10px 18px;border-radius:16px;display:flex;gap:10px;align-items:center;box-shadow:0 5px #00000040;white-space:nowrap;max-width:calc(100% - 32px);overflow:hidden;text-overflow:ellipsis;animation:pop .2s}@keyframes pop{0%{transform:translate(-50%) scale(.8);opacity:0}}.launch{position:absolute;inset:0;z-index:4;display:grid;place-items:center;background:#2a1f4a40}.launch .btn{animation:pulse .9s ease-in-out infinite}@keyframes pulse{50%{transform:scale(1.06)}}.controls-hint{position:absolute;left:max(12px,env(safe-area-inset-left,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));background:#fffaf0f0;border-radius:16px;padding:10px 14px;font-weight:800;font-size:.9rem;display:grid;gap:6px;box-shadow:0 5px 0 var(--shade);pointer-events:none}.letterbox:before,.letterbox:after{content:"";position:absolute;left:0;right:0;height:9vh;background:#000}.letterbox:before{top:0}.letterbox:after{bottom:0}.letterbox{position:absolute;inset:0;pointer-events:none}.dialogue{position:absolute;left:50%;bottom:max(20px,env(safe-area-inset-bottom,0px));transform:translate(-50%);width:min(680px,calc(100% - 24px));background:var(--paper);border-radius:22px;padding:14px 18px;display:flex;gap:14px;align-items:center;box-shadow:0 7px 0 var(--shade),0 14px 30px #0003;border:4px solid var(--ink);cursor:pointer;z-index:5;animation:rise .2s}@keyframes rise{0%{transform:translate(-50%,20px);opacity:0}}.dialogue .portrait{flex:none;filter:drop-shadow(0 3px 0 var(--shade))}.dialogue-body{flex:1;min-width:0}.speaker{font-family:var(--display);font-weight:700;font-size:1.15rem;color:var(--grape)}.dialogue p{margin:2px 0 0;font-size:1.1rem;font-weight:800;line-height:1.35;min-height:2.7em}.next{text-align:right;font-family:var(--display);font-weight:600;color:var(--tangerine);height:1.2em}.toasts{position:absolute;top:96px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;width:calc(100% - 32px)}.toast{background:var(--ink);color:#fff;font-weight:800;padding:10px 18px;border-radius:14px;box-shadow:0 4px #0003;animation:drop .25s;text-align:center;max-width:100%}.toast.good{background:var(--leaf)}.toast.oops{background:var(--tangerine)}@keyframes drop{0%{transform:translateY(-14px);opacity:0}}.overlay{position:absolute;inset:0;background:#2a1f4a8c;display:grid;place-items:center;padding:16px max(16px,env(safe-area-inset-right,0px)) 16px max(16px,env(safe-area-inset-left,0px));z-index:10}.panel{background:var(--paper);border-radius:24px;border:4px solid var(--ink);box-shadow:0 8px 0 var(--ink);width:min(560px,100%);max-height:calc(100% - 16px);overflow-y:auto;padding:18px 20px 22px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.panel h2{font-family:var(--display);font-weight:700;font-size:1.8rem;margin:0;text-wrap:balance}.close{border:0;background:var(--berry);color:#fff;width:44px;height:44px;border-radius:14px;font-size:1.8rem;line-height:1;box-shadow:0 4px #a82424}.note{font-size:.9rem;opacity:.8;margin:16px 0 0;font-weight:600}.settings{display:grid;gap:14px}.setting{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:800;flex-wrap:wrap}.setting input[type=range]{flex:1;max-width:260px;accent-color:var(--grape);height:28px}.seg{display:flex;background:#eadff5;border-radius:12px;padding:4px;gap:4px}.seg button{border:0;background:transparent;border-radius:9px;padding:6px 12px;font-weight:800}.seg button.on{background:var(--grape);color:#fff}.boxie-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.boxie-card{border:3px solid transparent;background:#fff;border-radius:18px;padding:10px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;box-shadow:0 4px 0 var(--shade)}.boxie-card strong{font-family:var(--display);font-weight:600;font-size:1.05rem}.boxie-card span{font-size:.78rem;font-weight:700;line-height:1.2;opacity:.8}.boxie-card em{font-style:normal;font-size:.75rem;font-weight:800;background:var(--ink);color:#fff;border-radius:8px;padding:1px 8px}.boxie-card em.go{background:var(--leaf)}.boxie-card.locked .portrait{filter:grayscale(1) brightness(.35) contrast(.8);opacity:.7}.boxie-card.locked{background:#f1ecf8;cursor:default}.boxie-card.current{border-color:var(--grape)}.boxie-card.unlocked:not(.current):not(:disabled):hover{transform:translateY(-2px)}.map{display:grid;gap:10px}.world{display:flex;align-items:center;gap:12px;background:#fff;border-radius:16px;padding:10px 12px;box-shadow:0 4px 0 var(--shade)}.world.closed{background:#f1ecf8;opacity:.75}.world.here{outline:3px solid var(--grape)}.world-num{flex:none;width:40px;height:40px;border-radius:12px;background:var(--sky);color:#fff;display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:1.3rem}.world.closed .world-num{background:#a79cc4}.world-info{flex:1;min-width:0;display:flex;flex-direction:column}.world-info strong{font-family:var(--display);font-weight:600;font-size:1.1rem}.world-info span{font-size:.85rem;font-weight:700;opacity:.8}.world em{font-style:normal;font-weight:800;font-size:.85rem;white-space:nowrap}.tbc{margin:16px 0 0;background:var(--sun);border-radius:14px;padding:12px 14px;font-weight:800}.fade{position:absolute;inset:0;background:#fff;opacity:0;transition:opacity .35s;pointer-events:none;z-index:20}.fade.on{opacity:1}.touch-zone{position:absolute;inset:0;z-index:0;touch-action:none}.hud-top,.prompt,.toasts,.controls-hint{z-index:2}.stick{position:absolute;width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:50%;background:#ffffff40;border:3px solid rgba(255,255,255,.6);pointer-events:none;z-index:1}.knob{position:absolute;left:30px;top:30px;width:54px;height:54px;border-radius:50%;background:#ffffffe6;box-shadow:0 3px 0 var(--shade)}.touch-buttons{position:absolute;right:max(16px,env(safe-area-inset-right,0px));bottom:max(20px,env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:auto auto;gap:12px;align-items:end;z-index:3}.tbtn{border:0;border-radius:50%;font-family:var(--display);font-weight:700;color:#fff;touch-action:none}.tbtn.jump{width:92px;height:92px;background:var(--sky);box-shadow:0 6px #1b56b8;font-size:1.15rem;grid-column:2;grid-row:2}.tbtn.action{width:72px;height:72px;background:var(--leaf);box-shadow:0 5px #278a33;grid-column:1;grid-row:2}.tbtn.swap{width:64px;height:64px;background:var(--grape);box-shadow:0 5px #6a2cc4;font-size:.9rem;grid-column:2;grid-row:1;justify-self:center}.tbtn:active{transform:translateY(4px);box-shadow:none}@media(max-width:640px){.coins{font-size:1.3rem;padding:4px 12px 4px 6px}.coin-icon{width:26px;height:26px}.mission{padding:8px 10px}.mission-text{font-size:.85rem}.mission-chapter{display:none}.icon-btn{width:48px;height:48px}.boxie-btn .portrait{width:40px!important;height:40px!important}.dialogue .portrait{width:56px!important;height:56px!important}.dialogue p{font-size:1rem}.prompt{bottom:140px}.toasts{top:120px}}@media(max-height:500px){.title{font-size:3.4rem}.menu-buttons{gap:10px;margin-top:8px}.credit{margin-top:8px}.btn.big{font-size:1.15rem;padding:10px 20px}}@media(prefers-reduced-motion:reduce){.title span,.launch .btn{animation:none}}.lost{position:fixed;inset:0;z-index:50;background:#2a1f4ad9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:16px max(16px,env(safe-area-inset-right,0px)) 16px max(16px,env(safe-area-inset-left,0px));text-align:center}.lost p{color:#fff;font-weight:800;font-size:1.2rem;max-width:340px;margin:0 0 6px}.lost .btn{width:min(320px,100%)}.joy-bubble{font-family:var(--display);font-weight:700;font-size:1.4rem;color:var(--ink);background:var(--paper);border:3px solid var(--ink);border-radius:18px;padding:4px 14px;white-space:nowrap;box-shadow:0 4px 0 var(--shade);transition:opacity .25s;transform:translateY(-20px)}.launch-overlay{position:absolute;inset:0;pointer-events:none;z-index:6}.countdown span{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%) scale(.4);font-family:var(--display);font-weight:700;font-size:clamp(4rem,18vw,9rem);color:var(--sun);-webkit-text-stroke:4px var(--ink);text-shadow:0 8px 0 var(--shade);opacity:0;animation:count .6s ease-out forwards}.countdown span:nth-child(1){animation-delay:4.4s}.countdown span:nth-child(2){animation-delay:5s}.countdown span:nth-child(3){animation-delay:5.6s}.countdown .go{white-space:nowrap;font-size:clamp(2.4rem,9vw,5rem);color:#fff;animation:go 1.4s ease-out 6.2s forwards}@keyframes count{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}25%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}80%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1.3)}}@keyframes go{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}20%,75%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-80%) scale(1)}}.warp{position:absolute;inset:0;opacity:0;background:radial-gradient(2px 2px at 20% 30%,#fff,transparent),radial-gradient(2px 2px at 70% 20%,#fff,transparent),radial-gradient(3px 3px at 40% 70%,#ffe9a8,transparent),radial-gradient(2px 2px at 85% 65%,#fff,transparent),radial-gradient(2px 2px at 10% 80%,#bfe8ff,transparent),radial-gradient(3px 3px at 55% 45%,#fff,transparent),radial-gradient(2px 2px at 30% 10%,#fff,transparent),radial-gradient(2px 2px at 90% 90%,#ffd0f0,transparent),radial-gradient(ellipse at 50% 50%,#3b1d7a,#120a2e 60%,#05030f);background-size:300px 300px,260px 260px,340px 340px,280px 280px,320px 320px,240px 240px,360px 360px,300px 300px,100% 100%}.launch-overlay.launch .warp{animation:warpIn 1s ease-in 9.6s forwards,warpZoom 3s linear 9.6s infinite}.launch-overlay.landing .warp{opacity:1;animation:warpOut 1s ease-out .2s forwards,warpZoom 3s linear infinite}@keyframes warpIn{to{opacity:1}}@keyframes warpOut{to{opacity:0}}@keyframes warpZoom{0%{transform:scale(1)}to{transform:scale(1.6)}}
