:root{--bg:#1a1442;--bg2:#271d5e;--card:#31277a;--card2:#3d3194;--ink:#f6f2ff;--muted:#b3a8dc;--line:rgba(255,255,255,.12);--accent:#ff7a59;--gold:#ffd166;--good:#4ade80;--bad:#ff5c7a;--display:"Fredoka",system-ui,-apple-system,sans-serif;--body:"Nunito",system-ui,-apple-system,sans-serif;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;margin:0}body{background:radial-gradient(1200px 600px at 50% -10%,var(--bg2),var(--bg) 60%);color:var(--ink);font-family:var(--body);font-weight:600;overflow:hidden;-webkit-user-select:none;user-select:none;touch-action:manipulation;position:fixed;inset:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}h1,h2,h3{font-family:var(--display);font-weight:700;margin:0;text-wrap:balance;letter-spacing:.3px}button{font-family:inherit;font-weight:800;color:inherit;border:0;cursor:pointer;touch-action:manipulation}button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}button:disabled{opacity:.6;cursor:default}input{font:800 20px var(--body);padding:12px 14px;border-radius:14px;border:2px solid var(--line);background:#0000004d;color:var(--ink);width:100%;-webkit-user-select:text;user-select:text}input:focus{outline:none;border-color:var(--gold)}input::placeholder{color:var(--muted);font-weight:600}.screen{position:absolute;inset:0;display:none;flex-direction:column;padding:12px 16px;max-width:560px;margin:0 auto;padding-top:calc(12px + env(safe-area-inset-top));padding-bottom:calc(12px + env(safe-area-inset-bottom))}.screen.on{display:flex}.scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0}#sky{position:fixed;inset:0;z-index:-1;pointer-events:none}#confetti{position:fixed;inset:0;pointer-events:none;z-index:20}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 22px;border-radius:16px;font-size:18px;background:var(--card2);box-shadow:0 4px #00000059;transition:transform .08s}.btn:active{transform:translateY(3px);box-shadow:0 1px #00000059}.btn.primary{background:var(--accent);color:#2a0d05;box-shadow:0 4px #b84b2e}.btn.gold{background:var(--gold);color:#3a2a00;box-shadow:0 4px #b8902e}.btn.ghost{background:transparent;box-shadow:none;color:var(--muted);padding:10px 12px}.btn.icon{width:44px;height:44px;padding:0;border-radius:12px;font-size:20px}.btn.wide{width:100%}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:12px}.muted{color:var(--muted)}.err{color:var(--bad);font-size:14px;min-height:20px}.section{font-family:var(--display);font-size:15px;color:var(--muted);margin:4px 0 10px;text-transform:uppercase;letter-spacing:1px}.pill{display:inline-flex;align-items:center;gap:6px;background:#00000040;border-radius:999px;padding:4px 10px;font-size:13px;color:var(--gold)}.offline{position:fixed;top:calc(8px + env(safe-area-inset-top));left:50%;transform:translate(-50%);background:var(--bad);color:#3a0010;font-size:12px;padding:4px 12px;border-radius:999px;z-index:30;display:none}.offline.on{display:block}#auth{justify-content:center;gap:18px}#auth .logo{font-size:64px;line-height:1;text-align:center}#auth h1{font-size:40px;text-align:center}.tabs{display:flex;background:#00000040;border-radius:14px;padding:4px;gap:4px}.tabs button{flex:1;padding:10px 6px;border-radius:10px;background:transparent;color:var(--muted);font-size:15px}.tabs button.sel{background:var(--card2);color:var(--ink)}.codebox{font-family:var(--display);font-size:40px;letter-spacing:3px;text-align:center;background:#0000004d;border:2px dashed var(--gold);border-radius:18px;padding:14px;color:var(--gold)}.hero{background:linear-gradient(135deg,var(--card),var(--card2));border-radius:22px;padding:16px;display:flex;flex-direction:column;gap:12px;margin-bottom:14px}.hero .name{font-family:var(--display);font-size:28px;font-weight:700}.xpbar{height:14px;background:#00000059;border-radius:999px;overflow:hidden}.xpbar>i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--accent));border-radius:999px;transition:width .9s cubic-bezier(.2,.8,.2,1)}.xplabel{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{flex:1;min-width:90px;background:#00000040;border-radius:14px;padding:8px 10px;text-align:center}.chip b{display:block;font-family:var(--display);font-size:22px;line-height:1.1;font-variant-numeric:tabular-nums}.chip span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.worlds{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-bottom:12px}.world{background:var(--card);border-radius:18px;padding:14px;text-align:left;display:flex;flex-direction:column;gap:6px;min-height:132px;position:relative;box-shadow:0 4px #0000004d;transition:transform .08s}.world:active{transform:scale(.97)}.world .ic{font-size:30px;line-height:1}.world .t{font-family:var(--display);font-size:17px;font-weight:600;line-height:1.1}.world .d{font-size:12px;color:var(--muted);line-height:1.3;font-weight:600}.world .stars{font-size:14px;letter-spacing:1px;margin-top:auto}.world.locked{opacity:.55;filter:saturate(.3)}.world.locked .lock{position:absolute;top:10px;right:10px;font-size:18px}.world.new:after{content:"NY!";position:absolute;top:10px;right:10px;background:var(--gold);color:#3a2a00;font-size:11px;padding:2px 7px;border-radius:999px;font-weight:800;animation:pop .5s cubic-bezier(.2,1.6,.4,1)}.seg{display:flex;background:#00000040;border-radius:14px;padding:4px;gap:4px;margin-bottom:14px}.seg button{flex:1;padding:10px 6px;border-radius:10px;background:transparent;color:var(--muted);font-size:14px}.seg button.sel{background:var(--accent);color:#2a0d05}.seg .lbl{display:flex;align-items:center;padding:0 10px;font-size:14px;color:var(--muted);white-space:nowrap}.topbar{display:flex;align-items:center;gap:10px}.btitle{flex:1;text-align:center;font-family:var(--display);font-size:18px;font-weight:600}.progress{flex:1;display:flex;gap:4px}.progress i{flex:1;height:8px;border-radius:4px;background:#ffffff24;transition:background .3s}.progress i.ok{background:var(--good)}.progress i.miss{background:var(--bad)}.progress i.now{background:var(--gold)}.flame{display:flex;align-items:center;gap:4px;font-family:var(--display);font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;min-width:62px;justify-content:flex-end;transition:transform .2s}.flame .f{font-size:22px;filter:grayscale(1);opacity:.5;transition:all .3s}.flame.hot .f{filter:none;opacity:1}.flame.hot{color:var(--gold)}.flame.blaze .f{font-size:30px;animation:wiggle .5s infinite alternate}.stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:0;position:relative}.question{font-family:var(--display);font-size:clamp(48px,14vw,76px);font-weight:700;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap}.answer{min-width:120px;height:72px;border-radius:18px;background:#0000004d;border:3px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:52px;font-weight:700;padding:0 18px;font-variant-numeric:tabular-nums;transition:border-color .15s,background .15s}.answer .caret{width:3px;height:44px;background:var(--gold);margin-left:4px;animation:blink 1s steps(2) infinite}.answer.ok{border-color:var(--good);background:#4ade802e}.answer.bad{border-color:var(--bad);background:#ff5c7a2e}.feedback{height:34px;font-family:var(--display);font-size:22px;font-weight:600;text-align:center}.feedback.good{color:var(--good)}.feedback.bad{color:var(--bad)}.score{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}.tbar{width:min(100%,360px);height:12px;border-radius:999px;background:#00000059;overflow:hidden;display:none}.tbar.on{display:block}.tbar i{display:block;height:100%;width:100%;background:var(--good);border-radius:999px}.tbar.low i{background:var(--bad)}.tbar.low{animation:pulse .5s infinite alternate}.float{position:absolute;left:50%;top:38%;transform:translate(-50%);font-family:var(--display);font-size:30px;font-weight:700;color:var(--gold);pointer-events:none;animation:floatUp 1s ease-out forwards;text-shadow:0 2px 0 rgba(0,0,0,.4)}.shake{animation:shake .4s}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding-top:8px}.key{height:clamp(52px,9vh,70px);border-radius:16px;background:var(--card);font-family:var(--display);font-size:30px;font-weight:600;box-shadow:0 4px #00000059;transition:transform .06s}.key:active{transform:translateY(3px);box-shadow:0 1px #00000059;background:var(--card2)}.key.back{font-size:24px;color:var(--muted)}.key.ok{background:var(--good);color:#063d1c;box-shadow:0 4px #27944f;font-size:26px}#result{justify-content:center;text-align:center;gap:14px}.bigstars{font-size:54px;letter-spacing:6px;line-height:1}.bigstars span{display:inline-block;opacity:.18;transform:scale(.6)}.bigstars span.lit{opacity:1;animation:starIn .5s cubic-bezier(.2,1.6,.4,1) forwards}.resgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.resgrid .chip{background:var(--card)}.unlock{background:linear-gradient(135deg,#5a3f00,#8a6400);border:2px solid var(--gold);border-radius:18px;padding:12px;animation:pop .6s cubic-bezier(.2,1.6,.4,1)}.unlock b{font-family:var(--display);font-size:20px;color:var(--gold)}.msg{font-family:var(--display);font-size:26px;font-weight:700}#bonusBtn{animation:bounce .8s infinite alternate}.bwrap{flex:1;min-height:0;position:relative;border-radius:18px;overflow:hidden;background:#00000047;margin-top:8px;border:2px solid var(--line)}.bwrap canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;display:block}.bhint{text-align:center;font-size:13px;color:var(--muted);padding-top:8px}.board{display:flex;flex-direction:column;gap:6px;padding-bottom:12px}.brow{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px;background:var(--card);border-radius:14px;padding:10px 12px}.brow.me{outline:2px solid var(--gold)}.brow .rk{font-family:var(--display);font-size:20px;color:var(--muted);text-align:center}.brow.top1 .rk,.brow.top2 .rk,.brow.top3 .rk{font-size:22px}.brow .nm{font-weight:800}.brow .nm small{display:block;color:var(--muted);font-size:11px;font-weight:600}.brow .pt{font-family:var(--display);font-size:20px;color:var(--gold);font-variant-numeric:tabular-nums}.overlay{position:absolute;inset:0;background:#0a061ed9;display:none;align-items:center;justify-content:center;padding:24px;z-index:10;backdrop-filter:blur(4px)}.overlay.on{display:flex}.modal{background:var(--card);border-radius:24px;padding:22px;width:100%;max-width:380px;text-align:center;display:flex;flex-direction:column;gap:14px;animation:pop .5s cubic-bezier(.2,1.6,.4,1)}.modal .big{font-size:72px;line-height:1;animation:bounce 1s infinite alternate}.modal h2{font-size:28px}@keyframes blink{to{opacity:0}}@keyframes floatUp{0%{opacity:1;transform:translate(-50%) scale(.8)}to{opacity:0;transform:translate(-50%,-90px) scale(1.3)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(10px)}60%{transform:translate(-7px)}80%{transform:translate(7px)}}@keyframes pop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}@keyframes starIn{0%{transform:scale(.3) rotate(-30deg)}to{transform:scale(1) rotate(0)}}@keyframes wiggle{0%{transform:rotate(-8deg) scale(1)}to{transform:rotate(8deg) scale(1.15)}}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-12px)}}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.04)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-height:620px){.question{font-size:44px}.answer{height:58px;font-size:40px}.feedback{height:26px;font-size:18px}}.chip.gem b{color:#7dd3fc}.quest{background:var(--card);border-radius:18px;padding:12px 14px;margin-bottom:14px;border:2px solid var(--line)}.quest.done{border-color:var(--good)}.golden-badge{display:none;background:linear-gradient(90deg,#8a6400,#ffd166,#8a6400);color:#2a1a00;font-family:var(--display);font-weight:700;padding:4px 14px;border-radius:999px;font-size:14px;letter-spacing:1px;animation:pulse .6s infinite alternate}.golden-badge.on{display:inline-block}.question.golden{color:var(--gold);text-shadow:0 0 24px rgba(255,209,102,.6)}.answer.golden{border-color:var(--gold)}.worlds .ophead{grid-column:1/-1;display:flex;align-items:center;gap:8px;font-family:var(--display);font-size:15px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-top:6px}.world .req{font-size:11px;color:var(--gold)}.chestbox{transition:transform .1s}.chestbox.shaking{animation:chestShake .5s infinite}.chestbox.opened{animation:pop .6s cubic-bezier(.2,1.6,.4,1)}.loot-item{font-family:var(--display);font-size:24px;color:var(--gold)}.items{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-bottom:12px}.item{background:var(--card);border-radius:18px;padding:14px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;position:relative;box-shadow:0 4px #0000004d}.item.equipped{outline:3px solid var(--gold)}.item .swatch{width:64px;height:64px;border-radius:50%;border:3px solid rgba(255,255,255,.2)}.item .nm{font-family:var(--display);font-size:16px}.item .btn{padding:8px 14px;font-size:14px}.item.locked .swatch{filter:brightness(.25)}.item .price{font-size:13px;color:#7dd3fc;font-weight:800}.opsgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.opbtn{padding:14px 10px;border-radius:14px;background:#0000004d;color:var(--muted);font-size:16px;border:2px solid var(--line)}.opbtn.on{background:var(--card2);color:var(--ink);border-color:var(--good)}@keyframes chestShake{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg) scale(1.05)}75%{transform:rotate(8deg) scale(1.05)}}
