:root{--bg: #fef8ec;--surface: #ffffff;--surface-2: #f4f0ff;--surface-3: #e9e1ff;--line: rgba(63, 48, 110, .1);--line-2: rgba(63, 48, 110, .2);--track: rgba(63, 48, 110, .12);--text: #2c2447;--muted: #746c92;--dim: #9a91b8;--accent: #5b67f2;--accent-2: #4048c9;--good: #29c07a;--good-2: #1a9c60;--bad: #ff5470;--bad-2: #e0395a;--gold: #ffb703;--gold-2: #d99400;--sky: #2f9bef;--green: #2bb673;--orange: #ff8a3d;--violet: #8b5cf6;--pink: #ec5fa3;--teal: #12b3a8;--amber: #f3a613;--cyan: #17aed1;--lime: #7cbb1f;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--r1: 12px;--r2: 16px;--r3: 20px;--r4: 26px;--shadow-1: 0 2px 6px rgba(80, 60, 150, .08);--shadow-2: 0 10px 24px rgba(80, 60, 150, .16);--shadow-3: 0 20px 46px rgba(80, 60, 150, .22);--tap: 52px;--page-w: 940px;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--font-body: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display: "Baloo 2", "Nunito", -apple-system, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}html{scrollbar-gutter:stable}body{margin:0;color:var(--text);background:var(--bg);font:400 16px/1.5 var(--font-body);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(900px 560px at 8% -10%,rgba(255,183,3,.16),transparent 60%),radial-gradient(820px 540px at 108% 6%,rgba(91,103,242,.14),transparent 58%),radial-gradient(700px 480px at 50% 115%,rgba(236,95,163,.1),transparent 55%),var(--bg)}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.app{min-height:100%;display:flex;flex-direction:column}.page{width:min(var(--page-w),100%);margin:0 auto;padding:var(--s4) var(--s4) 104px;flex:1}.topbar{position:sticky;top:0;z-index:20;background:#fef8ecd1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.topbar-in{width:min(var(--page-w),100%);margin:0 auto;display:flex;align-items:center;gap:var(--s2);padding:var(--s3) var(--s4)}.brand{display:flex;align-items:center;gap:var(--s2);font-family:var(--font-display);font-size:17px;font-weight:700;letter-spacing:-.2px;background:none;border:0;padding:0;color:var(--text)}.brand:hover .logo{background:color-mix(in srgb,var(--accent) 26%,transparent)}.brand .logo{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}.spacer{flex:1}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;gap:var(--s1);padding:var(--s2) var(--s2) calc(var(--s2) + env(safe-area-inset-bottom));background:#ffffffeb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--line);box-shadow:0 -4px 16px #503c960f}.tabbar-in{width:min(var(--page-w),100%);margin:0 auto;display:flex;gap:var(--s1)}.tabbar button{flex:1 1 0;min-width:0;min-height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0 2px;background:none;border:0;border-radius:var(--r2);color:var(--dim);font-size:11px;font-weight:700;transition:color .15s,background .15s}.tabbar button .ico{line-height:1}.tabbar button span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabbar button.on{color:var(--accent);background:var(--surface-2)}.tabbar button.on .ico{animation:tab-pop .2s var(--ease-out)}h1{margin:0;font-family:var(--font-display);font-size:25px;line-height:1.2;font-weight:700;letter-spacing:-.2px}h2{margin:var(--s5) 0 var(--s3);font-size:12px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:var(--dim)}h3{margin:0 0 var(--s1);font-size:15px;font-weight:800}p{margin:0 0 var(--s3)}.sub{color:var(--muted);font-size:14px;margin:var(--s1) 0 0}.muted{color:var(--muted)}.dim{color:var(--dim)}.center{text-align:center}.small{font-size:13px}.screen-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s4)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r3);padding:var(--s4);box-shadow:var(--shadow-1)}.card+.card{margin-top:var(--s3)}.card-tight{padding:var(--s2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:var(--tap);padding:0 22px;border:0;border-radius:var(--r2);background:var(--accent);color:#fff;font-size:16px;font-weight:800;box-shadow:0 4px 0 var(--accent-2),var(--shadow-1);transition:transform .12s var(--ease-out)}@media(hover:hover)and (pointer:fine){.btn:hover:not(:disabled){filter:brightness(1.04)}}.btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 var(--accent-2)}.btn:disabled{opacity:.45;box-shadow:none}.btn.wide{width:100%}.btn.ghost{background:var(--surface-2);color:var(--text);box-shadow:0 2px 0 var(--line-2)}.btn.ghost:active:not(:disabled){box-shadow:0 0 0 var(--line-2)}.btn.good{background:var(--good);box-shadow:0 4px 0 var(--good-2),var(--shadow-1)}.btn.good:active:not(:disabled){box-shadow:0 1px 0 var(--good-2)}.btn.gold{background:var(--gold);color:#452c00;box-shadow:0 4px 0 var(--gold-2),var(--shadow-1)}.btn.gold:active:not(:disabled){box-shadow:0 1px 0 var(--gold-2)}.btn.sm{min-height:40px;padding:0 14px;font-size:14px;font-weight:700;border-radius:var(--r1);box-shadow:none}.btn.sm:active:not(:disabled){transform:translateY(1px);box-shadow:none}.btn.lg{min-height:58px;font-size:17px}.pill{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);font-size:13px;font-weight:800;white-space:nowrap}.pill.gold{color:var(--gold-2);background:color-mix(in srgb,var(--gold) 14%,var(--surface));border-color:transparent}.pill.streak{color:#d9640f;background:color-mix(in srgb,var(--orange) 14%,var(--surface));border-color:transparent}.pill.good{color:var(--good-2);background:color-mix(in srgb,var(--good) 14%,var(--surface));border-color:transparent}.row{display:flex;align-items:center;gap:var(--s3)}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:var(--s3)}.grid{display:grid;gap:var(--s3)}.grid.tiles{grid-template-columns:repeat(auto-fill,minmax(158px,1fr))}.grid.two{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.grid.stats{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.segmented{display:flex;gap:var(--s1);padding:var(--s1);background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);overflow-x:auto;scrollbar-width:none;box-shadow:var(--shadow-1)}.segmented::-webkit-scrollbar{display:none}.segmented button{flex:0 0 auto;min-height:38px;padding:0 14px;border:0;border-radius:var(--r1);background:none;color:var(--muted);font-size:14px;font-weight:700;white-space:nowrap;transition:background .15s,color .15s}.segmented button.on{background:var(--accent);color:#fff}.segmented button:disabled{opacity:.4}.auth{max-width:420px;margin:0 auto;padding-top:6vh}.auth .logo{width:84px;height:84px;margin:0 auto;display:grid;place-items:center;border-radius:26px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.auth h1{text-align:center;margin-top:var(--s3)}.auth .sub{text-align:center;margin-bottom:var(--s5)}.field{display:block;margin-bottom:var(--s4)}.field>span{display:block;margin-bottom:6px;font-size:12px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--dim)}.input{width:100%;min-height:var(--tap);padding:0 14px;background:var(--surface-2);color:var(--text);border:2px solid transparent;border-radius:var(--r2);outline:none;transition:border-color .15s}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--dim)}.input.pin{letter-spacing:14px;text-align:center;font-size:22px;font-weight:800;padding-left:14px;font-family:var(--font-display)}.error{color:var(--bad);font-size:14px;font-weight:700;min-height:20px;margin-bottom:var(--s2)}.avatar-pick{display:flex;flex-wrap:wrap;gap:var(--s2)}.avatar-pick button{width:50px;height:50px;display:grid;place-items:center;font-size:25px;border:2px solid transparent;border-radius:var(--r2);background:var(--surface-2);transition:transform .12s var(--ease-out)}@media(hover:hover)and (pointer:fine){.avatar-pick button:hover{transform:translateY(-1px)}}.avatar-pick button.on{border-color:var(--accent);background:var(--surface-3)}.tile{display:flex;flex-direction:column;gap:var(--s2);min-height:204px;padding:0 0 var(--s3);overflow:hidden;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r3);box-shadow:var(--shadow-1);transition:transform .14s var(--ease-out);animation:card-rise .28s var(--ease-out) both}.tile:nth-child(2){animation-delay:35ms}.tile:nth-child(3){animation-delay:70ms}.tile:nth-child(4){animation-delay:105ms}.tile:nth-child(5){animation-delay:.14s}.tile:nth-child(n+6){animation-delay:175ms}.tile:active{transform:translateY(0)}.tile-art{position:relative;display:block;width:100%;height:96px;overflow:hidden;background:var(--surface-2)}.tile-visual{background:linear-gradient(145deg,color-mix(in srgb,var(--c) 72%,#fff),color-mix(in srgb,var(--c) 32%,var(--surface)) 82%)}.tile-visual:before{content:"";position:absolute;width:116px;height:116px;left:-33px;top:-55px;border:1px solid rgba(255,255,255,.46);border-radius:50%;box-shadow:0 0 0 17px #ffffff1a,0 0 0 34px #ffffff12}.tile-visual:after{content:"";position:absolute;right:-23px;bottom:-38px;width:95px;height:95px;border-radius:28px;background:#ffffff29;transform:rotate(24deg)}.tile-shape{position:absolute;z-index:1;display:block;background:#ffffff6b}.tile-shape.one{left:17px;bottom:15px;width:9px;height:9px;border-radius:50%}.tile-shape.two{right:45px;top:17px;width:13px;height:13px;border:2px solid rgba(255,255,255,.54);border-radius:4px;background:transparent;transform:rotate(18deg)}.tile-hero-icon{position:absolute;z-index:2;left:50%;top:50%;display:grid;place-items:center;width:68px;height:68px;color:#fff;background:#ffffff2e;border:1px solid rgba(255,255,255,.38);border-radius:23px;box-shadow:0 10px 24px color-mix(in srgb,var(--c) 42%,transparent);transform:translate(-50%,-50%) rotate(var(--tilt));-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);transition:transform .22s var(--ease-out)}.chip{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:var(--r2);color:var(--c, var(--accent));background:color-mix(in srgb,var(--c, var(--accent)) 16%,transparent)}.tile-count{position:absolute;z-index:3;right:8px;top:8px;padding:5px 8px;color:#fff;background:#1916366b;border:1px solid rgba(255,255,255,.3);border-radius:999px;font-size:10px;font-weight:900;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.tile .name{padding:0 var(--s3);font-size:15px;font-weight:800;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.5em}.tile>.bar{width:calc(100% - 2 * var(--s3));margin:0 var(--s3)}.tile .meta{margin-top:auto;padding:0 var(--s3);font-size:12px;font-weight:700;color:var(--dim)}.bar{height:7px;border-radius:999px;background:var(--track);overflow:hidden}.bar>i{display:block;width:100%;height:100%;transform-origin:left;border-radius:999px;background:var(--c, var(--accent));transition:transform .28s var(--ease-out)}.row-btn{display:flex;align-items:center;gap:var(--s3);width:100%;min-height:64px;padding:var(--s3);text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);box-shadow:var(--shadow-1);transition:transform .12s var(--ease-out)}.row-btn+.row-btn{margin-top:var(--s2)}@media(hover:hover)and (pointer:fine){.row-btn:hover:not(:disabled){border-color:var(--line-2);background:var(--surface-2)}}.row-btn:active:not(:disabled){transform:translateY(1px)}.row-btn:disabled{opacity:.5}.row-btn .num{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:var(--r1);background:var(--surface-2);color:var(--accent);font-size:15px;font-weight:800}.row-btn .body{flex:1;min-width:0}.row-btn .body b{display:block;font-size:15px;font-weight:800}.row-btn .body small{display:block;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-btn.done{border-color:color-mix(in srgb,var(--good) 40%,transparent)}.row-btn.done .num{background:color-mix(in srgb,var(--good) 18%,transparent);color:var(--good-2)}.row-btn .chev{color:var(--dim)}.topic-banner{position:relative;min-height:190px;margin-bottom:var(--s3);overflow:hidden;color:#fff;background:color-mix(in srgb,var(--c) 55%,#1d2445);border-radius:var(--r4);box-shadow:var(--shadow-2);animation:story-enter .28s var(--ease-out) both}.topic-banner:after{content:"";position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#141330e0,#18163794 62%,#1816371f);pointer-events:none}.topic-banner>img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;animation:hero-reveal .28s var(--ease-out) both}.topic-banner-copy{position:relative;z-index:2;width:68%;padding:24px}.topic-banner h2{margin:3px 0 7px;color:#fff;font-size:clamp(23px,4vw,32px)}.topic-banner p{max-width:44ch;margin:0;color:#fffc;font-size:13px;line-height:1.45}.topic-banner>strong{position:absolute;z-index:2;right:18px;bottom:16px;display:grid;place-items:center;width:76px;height:76px;color:#fff;background:#1813377a;border:1px solid rgba(255,255,255,.3);border-radius:50%;font-family:var(--font-display);font-size:22px;line-height:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.topic-banner>strong small{display:block;margin-top:-17px;color:#ffffffb8;font:700 8px/1 var(--font-body);text-transform:uppercase}.topic-progress{display:flex;align-items:center;gap:var(--s3);margin:var(--s4) 0;color:var(--muted);font-size:12px;font-weight:800}.topic-progress>span{white-space:nowrap}.topic-progress>.bar{flex:1;height:9px}.level-route{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}.level-card{position:relative;display:flex;align-items:center;gap:var(--s3);min-width:0;min-height:112px;padding:var(--s4);overflow:hidden;text-align:left;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--r3);box-shadow:var(--shadow-1);transition:transform .16s var(--ease-out);animation:card-rise .26s var(--ease-out) both;animation-delay:calc(var(--i) * 45ms)}.level-card:after{content:"";position:absolute;right:-32px;bottom:-43px;width:112px;height:112px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--c) 14%,transparent),transparent 70%);pointer-events:none}.level-card:disabled{opacity:.48;box-shadow:none}.level-card.active{border-color:color-mix(in srgb,var(--c) 55%,var(--line));box-shadow:0 8px 24px color-mix(in srgb,var(--c) 15%,transparent)}.level-card.done{border-color:color-mix(in srgb,var(--good) 38%,var(--line))}.level-card.boss{min-height:126px;padding-right:88px;color:#fff;background:linear-gradient(145deg,#3b246f,#6d3eb5 62%,#9b5bcc);border-color:#ffd75c7a;box-shadow:0 9px 25px #482a7d3d}.level-card.boss:after{background:radial-gradient(circle,rgba(255,210,82,.28),transparent 68%)}.level-card.boss .level-number{color:#6c4700;background:linear-gradient(145deg,#ffe894,#ffc648);box-shadow:0 5px 14px #1c103d3d}.level-card.boss .level-copy small{color:#ffd96a}.level-card.boss .level-copy b{color:#fff}.level-card.boss .level-copy>span{color:#ffffffb8}.level-card.boss>.stars{color:#ffe16f}.level-card.boss>.stars .off{color:#ffffff40}.level-card.boss .level-go{color:#ffe16f}.boss-card-art{position:absolute;z-index:0;right:-18px;bottom:-9px;width:112px;height:104px;object-fit:contain;filter:drop-shadow(0 7px 9px rgba(22,12,50,.28));transition:transform .22s var(--ease-out)}.level-number{position:relative;z-index:1;display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;color:var(--c);background:color-mix(in srgb,var(--c) 15%,var(--surface));border-radius:16px;font-family:var(--font-display);font-size:18px;font-weight:800}.level-card.done .level-number{color:var(--good-2);background:color-mix(in srgb,var(--good) 15%,var(--surface))}.level-copy{position:relative;z-index:1;flex:1;min-width:0}.level-copy small{display:block;margin-bottom:3px;color:var(--c);font-size:9px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.level-copy b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.level-copy>span{display:block;margin-top:4px;color:var(--dim);font-size:11px}.level-card>.stars{position:absolute;z-index:1;right:12px;top:10px;font-size:11px}.level-go{position:relative;z-index:1;display:grid;place-items:center;color:var(--c)}@media(hover:hover)and (pointer:fine){.tile:hover .tile-hero-icon{transform:translate(-50%,-53%) rotate(0) scale(1.045)}.level-card:hover:not(:disabled){transform:translateY(-3px);border-color:color-mix(in srgb,var(--c) 55%,var(--line));box-shadow:var(--shadow-2)}.level-card.boss:hover:not(:disabled) .boss-card-art{transform:translateY(-4px) rotate(2deg) scale(1.04)}}.stars{letter-spacing:2px;font-size:14px;color:var(--gold);white-space:nowrap}.stars .off{color:var(--line-2)}.stars-reveal .earned{display:inline-block;animation:star-reveal .24s var(--ease-out) both;animation-delay:calc(var(--i) * 90ms)}.world-card{position:relative;overflow:hidden;margin-bottom:var(--s4);padding:0 0 var(--s4);background:var(--surface);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-radius:var(--r4);box-shadow:var(--shadow-2);animation:story-enter .28s var(--ease-out) both}.world-hero{position:relative;min-height:252px;overflow:hidden;color:#fff;background:color-mix(in srgb,var(--c) 60%,#17203e)}.world-hero:before{content:"";position:absolute;z-index:2;top:-35%;bottom:-35%;left:-32%;width:18%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.34),transparent);transform:translate(0) rotate(16deg);opacity:0;pointer-events:none;animation:hero-shine .28s var(--ease-out) .18s both}.world-hero:after{content:"";position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#13132de6,#1c1b3dba 48%,#1918362e 78%),linear-gradient(0deg,rgba(13,17,38,.38),transparent 52%);pointer-events:none}.world-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;animation:hero-reveal .28s var(--ease-out) both}.world-hero-copy{position:relative;z-index:3;width:61%;padding:28px 24px 24px}.world-kicker{display:inline-flex;align-items:center;gap:7px;margin-bottom:8px;padding:6px 10px;color:#fff;background:#ffffff29;border:1px solid rgba(255,255,255,.22);border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.world-hero h2{max-width:14ch;margin:0;color:#fff;font-size:clamp(25px,4vw,36px);line-height:1.05;text-shadow:0 2px 14px rgba(15,13,42,.28)}.world-hero p{max-width:42ch;margin:10px 0 17px;color:#ffffffd6;font-size:13px;line-height:1.45}.world-continue{display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:0 16px;color:#402900;background:linear-gradient(180deg,#ffe589,var(--gold));border-radius:var(--r1);box-shadow:0 4px #c98b15,0 8px 20px #16122e3d;font-size:13px;font-weight:900;transition:transform .16s var(--ease-out)}.world-continue:active{transform:translateY(3px);box-shadow:0 1px #c98b15}.world-guide{position:absolute;z-index:2;right:20px;bottom:-34px;width:176px;height:208px;object-fit:contain;filter:drop-shadow(0 12px 14px rgba(20,14,48,.28));animation:guide-arrive .26s var(--ease-out) both}.eyebrow{display:block;color:var(--accent);font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.world-energy{position:absolute;z-index:4;right:16px;top:15px;display:grid;place-items:center;width:82px;height:82px;color:#fff;background:#1813376b;border:1px solid rgba(255,255,255,.3);border-radius:50%;box-shadow:inset 0 0 22px #ffd76429,0 8px 24px #0c0a2633;text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:energy-arrive .28s var(--ease-out) both}.world-energy span{font-family:var(--font-display);font-size:25px;line-height:1}.world-energy small{display:block;margin-top:-19px;font:700 9px/1 var(--font-body);color:#ffffffc2}.world-total-progress{display:flex;align-items:center;gap:var(--s3);padding:14px var(--s4) 3px;color:var(--muted);font-size:12px;font-weight:800}.world-total-progress>span{display:flex;align-items:center;gap:5px;white-space:nowrap;color:var(--accent)}.world-total-progress>.bar{flex:1;height:8px}.world-total-progress>b{color:var(--text);font-size:11px;white-space:nowrap}.world-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(142px,1fr));gap:var(--s2);padding:var(--s3) var(--s4) 0}.world-place{position:relative;min-width:0;padding:0;overflow:hidden;text-align:left;color:var(--text);background:var(--surface);border:1px solid color-mix(in srgb,var(--c) 22%,var(--line));border-radius:var(--r2);box-shadow:var(--shadow-1);transition:transform .16s var(--ease-out);animation:card-rise .26s var(--ease-out) both;animation-delay:calc(var(--i) * 55ms + 90ms)}.world-place:active{transform:scale(.975)}.world-picture{position:relative;display:block;aspect-ratio:3 / 2;overflow:hidden;background:color-mix(in srgb,var(--c) 12%,var(--surface))}.world-picture:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 58%,rgba(26,22,52,.22))}.world-picture img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .26s var(--ease-out)}.world-picture>i{position:absolute;z-index:1;left:9px;bottom:8px;width:32px;height:32px;display:grid;place-items:center;color:var(--c);background:#ffffffeb;border-radius:11px;box-shadow:0 3px 10px #2d235529}.world-status{position:absolute;z-index:2;right:8px;top:8px;padding:5px 8px;color:#fff;background:#19163694;border:1px solid rgba(255,255,255,.28);border-radius:999px;font:800 9px/1 var(--font-body);font-style:normal;text-transform:uppercase;letter-spacing:.04em;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.world-caption{display:block;padding:10px}.world-caption b,.world-caption small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.world-caption b{font-size:12px}.world-caption small{margin-top:2px;color:var(--dim);font-size:10px}.world-mini-bar{display:block;height:4px;margin-top:8px;overflow:hidden;border-radius:999px;background:var(--track)}.world-mini-bar>i{display:block;width:100%;height:100%;transform-origin:left;border-radius:inherit;background:var(--c);transition:transform .28s var(--ease-out)}.world-place.restored{border-color:color-mix(in srgb,var(--c) 52%,var(--line));box-shadow:0 7px 20px color-mix(in srgb,var(--c) 16%,transparent)}.world-place.restored .world-picture:before{content:"";position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--gold) 50%,transparent);pointer-events:none}@media(hover:hover)and (pointer:fine){.tile:hover{border-color:var(--line-2);transform:translateY(-2px);box-shadow:var(--shadow-2)}.world-continue:hover{transform:translateY(-2px);box-shadow:0 6px #c98b15,0 10px 24px #16122e47}.world-place:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--c) 55%,var(--line));box-shadow:var(--shadow-2)}.world-place:hover .world-picture img{transform:scale(1.045)}}.mission-section{margin:var(--s5) 0}.section-title{display:flex;align-items:end;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s3)}.section-title h2{margin:2px 0 0}.mission-streak{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;color:#d9640f;background:color-mix(in srgb,var(--orange) 14%,var(--surface));border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap}.mission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--s3)}.mission-grid .reward{position:relative;align-content:flex-start;flex-wrap:wrap;min-height:156px;margin:0;overflow:hidden;transition:transform .18s var(--ease-out);animation:card-rise .26s var(--ease-out) both}.mission-grid .reward:before{content:"";position:absolute;right:-28px;bottom:-35px;width:108px;height:108px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,currentColor 18%,transparent),transparent 68%);pointer-events:none}.mission-grid .reward:nth-child(2){animation-delay:55ms}.mission-grid .reward:nth-child(3){animation-delay:.11s}.mission-grid .reward .big{display:grid;place-items:center;width:42px;height:42px;background:color-mix(in srgb,currentColor 12%,var(--surface));border-radius:14px}.mission-grid .reward .t{flex-basis:calc(100% - 58px)}.mission-grid .reward .t small{display:block;margin-top:4px;line-height:1.35}.mission-grid .reward .go,.mission-grid .reward>.btn,.mission-action{margin-top:auto}.daily-mission{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 32%,var(--line));background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 13%,var(--surface)),var(--surface))}.daily-mission .t b,.daily-mission .t small{color:var(--text)}.route-mission{color:var(--violet);border-color:color-mix(in srgb,var(--violet) 34%,var(--line));background:linear-gradient(145deg,color-mix(in srgb,var(--violet) 14%,var(--surface)),var(--surface))}.route-mission .t b,.route-mission .t small{color:var(--text)}.route-mission .mission-tag,.route-mission .mission-action{color:var(--violet)}.mission-tag{display:block;margin-bottom:2px;color:var(--accent);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.mission-action{display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-size:12px;font-weight:900}@media(hover:hover)and (pointer:fine){.mission-grid .reward:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}}.boss-collection{margin:var(--s5) 0}.trophy-total{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;color:#74500a;background:color-mix(in srgb,var(--gold) 24%,var(--surface));border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap}.trophy-shelf{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s2)}.trophy-card{position:relative;min-width:0;min-height:142px;padding:var(--s3);overflow:hidden;text-align:center;color:var(--dim);background:linear-gradient(160deg,var(--surface),var(--surface-2));border:1px dashed var(--line-2);border-radius:var(--r3);transition:transform .16s var(--ease-out);animation:card-rise .26s var(--ease-out) both;animation-delay:calc(var(--i) * 45ms)}.trophy-card:before{content:"";position:absolute;left:50%;top:14px;width:82px;height:82px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--c) 14%,transparent),transparent 70%);transform:translate(-50%)}.trophy-card.won{color:var(--text);background:linear-gradient(160deg,color-mix(in srgb,var(--c) 13%,var(--surface)),var(--surface));border:1px solid color-mix(in srgb,var(--c) 40%,var(--line));box-shadow:0 7px 20px color-mix(in srgb,var(--c) 12%,transparent)}.trophy-emblem{position:relative;z-index:1;display:grid;place-items:center;width:54px;height:54px;margin:0 auto 8px;color:var(--dim);background:var(--surface);border:1px solid var(--line);border-radius:19px;transform:rotate(-4deg)}.trophy-card.won .trophy-emblem{color:var(--c);background:color-mix(in srgb,var(--c) 13%,#fff);border-color:color-mix(in srgb,var(--c) 35%,transparent);box-shadow:0 6px 15px color-mix(in srgb,var(--c) 20%,transparent)}.trophy-card b,.trophy-card small{position:relative;z-index:1;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trophy-card b{font-size:11px}.trophy-card small{margin-top:3px;color:var(--dim);font-size:9px}.trophy-dots{position:relative;z-index:1;display:flex;justify-content:center;gap:3px;margin-top:9px}.trophy-dots i{width:6px;height:6px;background:var(--line-2);border-radius:50%}.trophy-dots i.on{background:var(--c);box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 16%,transparent)}@media(hover:hover)and (pointer:fine){.trophy-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--c) 45%,var(--line));box-shadow:var(--shadow-2)}}.world-result{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);color:var(--text);background:color-mix(in srgb,var(--c) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 35%,transparent);border-radius:var(--r2);animation:card-rise .26s var(--ease-out) .11s both}.world-result>span{display:grid;place-items:center;color:var(--c)}.world-result>div{flex:1;min-width:0}.world-result b,.world-result small{display:block}.world-result b{font-size:14px}.world-result small{margin-top:2px;color:var(--muted);font-size:12px}.world-result strong{color:var(--c);font-family:var(--font-display);font-size:20px}.reward{display:flex;align-items:center;gap:var(--s3);width:100%;margin-bottom:var(--s3);padding:var(--s4);text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r3);box-shadow:var(--shadow-1)}.reward .big{color:var(--accent);line-height:1;flex:0 0 auto}.reward .t{flex:1;min-width:0}.reward .t b{display:block;font-size:15px;font-weight:800}.reward .t small{color:var(--muted);font-size:13px}.reward .go{flex:0 0 auto;padding:10px 16px;border-radius:var(--r1);background:var(--gold);color:#452c00;font-weight:800;font-size:14px;white-space:nowrap;box-shadow:0 3px 0 var(--gold-2)}.reward.chest{position:relative;overflow:hidden;border-color:color-mix(in srgb,var(--gold) 45%,transparent);background:linear-gradient(140deg,color-mix(in srgb,var(--gold) 12%,transparent),var(--surface) 62%)}.reward.chest .big{color:var(--gold-2)}@media(hover:hover)and (pointer:fine){.reward.chest:hover{border-color:color-mix(in srgb,var(--gold) 65%,transparent)}}.reward.chest>*{position:relative;z-index:1}.reward.chest.opening:after{content:"";position:absolute;z-index:0;left:-8px;top:50%;width:86px;height:86px;margin-top:-43px;border-radius:50%;background:radial-gradient(circle,rgba(255,229,137,.9),rgba(255,194,59,.28) 46%,transparent 70%);animation:chest-flash .26s var(--ease-out) both}.reward.chest.opening .big{animation:chest-open .26s var(--ease-out) both}.reward.prize{border-color:color-mix(in srgb,var(--good) 40%,transparent);background:linear-gradient(140deg,color-mix(in srgb,var(--good) 12%,transparent),var(--surface) 62%)}.reward.prize .big{color:var(--good-2)}.reward.goal.ready{border-color:color-mix(in srgb,var(--good) 40%,transparent)}.goalbar{height:7px;margin:7px 0 6px;border-radius:999px;background:var(--track);overflow:hidden}.goalbar>i{display:block;width:100%;height:100%;transform-origin:left;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--good));transition:transform .28s var(--ease-out)}.duelcode{margin:var(--s2) 0;font-family:var(--font-display);font-size:38px;font-weight:700;letter-spacing:10px;color:var(--gold-2)}.codeinput{flex:1;min-width:0;min-height:var(--tap);padding:0 14px;background:var(--surface-2);color:var(--text);border:2px solid transparent;border-radius:var(--r2);font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:6px;text-align:center;text-transform:uppercase;outline:none}.codeinput:focus{border-color:var(--accent)}.duelscore{display:flex;align-items:stretch;gap:var(--s2)}.duelscore .side{flex:1;min-width:0;padding:var(--s3) var(--s2);text-align:center;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r2)}.duelscore .side.win{border-color:color-mix(in srgb,var(--gold) 55%,transparent);background:color-mix(in srgb,var(--gold) 12%,var(--surface-2))}.duelscore .side .av{font-size:24px;line-height:1.2}.duelscore .side b{display:block;font-size:14px}.duelscore .side small{color:var(--muted);font-size:12px}.duelscore .vs{align-self:center;color:var(--dim);font-size:12px;font-weight:800}.play{position:relative;isolation:isolate;display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:100dvh;width:min(560px,100%);margin:0 auto}.play:before{content:"";position:fixed;z-index:0;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none}.play.answer-ok:before{background:radial-gradient(circle at 50% 43%,rgba(62,222,151,.2),transparent 55%);animation:answer-flash .22s var(--ease-out) both}.play.answer-no:before{background:radial-gradient(circle at 50% 43%,rgba(248,102,116,.14),transparent 52%);animation:answer-flash .2s var(--ease-out) both}.play.boss-mode.answer-ok:before{background:radial-gradient(circle at 50% 38%,rgba(255,216,93,.24),rgba(111,69,184,.11) 38%,transparent 62%)}.play-top{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4)}.play-top .quit{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:50%;background:var(--surface);color:var(--muted)}.progress{flex:1;height:9px;border-radius:999px;background:var(--track);overflow:hidden}.progress>i{display:block;width:100%;height:100%;transform-origin:left;background:linear-gradient(90deg,var(--good),var(--accent));transition:transform .28s var(--ease-out)}.counter{font-size:13px;font-weight:800;color:var(--muted);white-space:nowrap}.combo{font-size:13px;font-weight:800;color:var(--gold-2);white-space:nowrap;animation:combo-bump .18s var(--ease-out) both}.question{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s4);padding:var(--s3) var(--s4);overflow-y:auto;text-align:center}.game-guide{position:absolute;right:8px;top:2px;width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 6px 7px rgba(47,38,94,.16));pointer-events:none}.game-guide.ok{animation:guide-cheer .26s var(--ease-out) both}.game-guide.no{animation:guide-encourage .22s var(--ease-out) both}.boss-arena{position:relative;display:flex;align-items:center;gap:var(--s3);width:min(440px,100%);min-height:118px;padding:10px 14px 10px 118px;overflow:hidden;color:#fff;background:radial-gradient(circle at 18% 40%,rgba(183,115,255,.44),transparent 30%),linear-gradient(135deg,#271847,#513083 62%,#7445a6);border:1px solid rgba(255,218,102,.38);border-radius:var(--r3);box-shadow:0 10px 28px #2b185238}.boss-arena:after{content:"";position:absolute;z-index:1;left:48px;top:50%;width:68px;height:68px;margin:-34px 0 0 -34px;border:2px solid rgba(255,226,111,.8);border-radius:50%;opacity:0;pointer-events:none}.boss-arena.hit:after,.boss-arena.defeated:after{animation:boss-wave .26s var(--ease-out) both}.boss-arena>img{position:absolute;left:2px;bottom:-7px;width:122px;height:116px;object-fit:contain;filter:drop-shadow(0 7px 9px rgba(15,8,35,.32));transform-origin:52% 75%}.boss-arena>img.hit{animation:boss-hit .24s var(--ease-out) both}.boss-arena>img.attack{animation:boss-attack .22s var(--ease-out) both}.boss-arena>img.defeated{animation:boss-defeat .28s var(--ease-out) both}.boss-info{flex:1;min-width:0;text-align:left}.boss-info>span{display:flex;align-items:center;gap:5px;color:#ffe173;font-size:11px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.boss-health{height:12px;margin:9px 0 6px;overflow:hidden;background:#10092473;border:1px solid rgba(255,255,255,.14);border-radius:999px}.boss-health>i{display:block;width:100%;height:100%;transform-origin:left;background:linear-gradient(90deg,#ffb548,#ff5d72);border-radius:inherit;transition:transform .26s var(--ease-out)}.boss-info small{color:#ffffffc2;font-size:11px;font-weight:800}.boss-impact{position:absolute;z-index:3;left:87px;top:15px;color:#fff3a7;font-family:var(--font-display);font-size:18px;text-shadow:0 2px 9px rgba(20,10,48,.55);pointer-events:none;animation:damage-rise .26s var(--ease-out) both}.reward-flight{position:fixed;z-index:70;display:grid;place-items:center;width:34px;height:34px;color:#fff;background:linear-gradient(145deg,#b68cff,#6b5be7);border:2px solid rgba(255,255,255,.8);border-radius:50%;box-shadow:0 6px 18px #4c39ae59;pointer-events:none;animation:reward-fly .28s var(--ease-out) both}.q-label{max-width:calc(100% - 112px);font-size:12px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--dim)}.q-text{font-family:var(--font-display);font-size:clamp(30px,8vw,46px);font-weight:700;letter-spacing:-.5px;line-height:1.1}.q-text.long{font-size:clamp(17px,4.4vw,22px);font-weight:800;letter-spacing:0;line-height:1.4;max-width:30ch;font-family:var(--font-body)}.q-unit{font-size:13px;color:var(--dim)}.answers{display:flex;gap:var(--s3);justify-content:center;flex-wrap:wrap}.answer-slot{text-align:center}.answer-slot .label{margin-bottom:5px;font-size:12px;color:var(--dim)}.answer-box{min-width:148px;min-height:58px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);border:3px solid var(--line-2);border-radius:var(--r2);font-family:var(--font-display);font-size:28px;font-weight:700;box-shadow:var(--shadow-1);transition:border-color .15s,color .15s}.answer-box.idle{opacity:.6}.answer-box.ok{border-color:var(--good);color:var(--good-2)}.answer-box.no{border-color:var(--bad);color:var(--bad-2);animation:shake .24s var(--ease-out)}.caret{width:3px;height:28px;border-radius:2px;background:var(--accent);animation:blink 1.05s steps(2) infinite}.feedback{min-height:24px;font-size:16px;font-weight:800}.feedback.ok{color:var(--good-2);animation:feedback-pop .2s var(--ease-out) both}.feedback.no{color:var(--bad-2)}.hintline{min-height:42px;display:flex;align-items:center;justify-content:center}.hintline .text{color:var(--muted);font-size:14px;max-width:34ch}.pad{padding:var(--s3) var(--s4) calc(var(--s4) + env(safe-area-inset-bottom))}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2)}.keypad button{min-height:58px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);font-family:var(--font-display);font-size:24px;font-weight:700;box-shadow:0 3px 0 var(--line-2);transition:transform .1s var(--ease-out)}@media(hover:hover)and (pointer:fine){.keypad button:hover{background:var(--surface-2)}}.keypad button:active{transform:translateY(3px);box-shadow:none}.keypad button.go{background:var(--good);color:#fff;border-color:transparent;box-shadow:0 3px 0 var(--good-2)}.keypad button.del{color:var(--bad-2)}.choices{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s2)}.choices button{min-height:62px;padding:0 var(--s3);background:var(--surface);border:3px solid var(--line);border-radius:var(--r2);font-family:var(--font-display);font-size:20px;font-weight:700;box-shadow:var(--shadow-1)}@media(hover:hover)and (pointer:fine){.choices button:hover{border-color:var(--line-2)}}.choices button.ok{border-color:var(--good);background:color-mix(in srgb,var(--good) 14%,var(--surface));color:var(--good-2)}.choices button.no{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 12%,var(--surface));color:var(--bad-2)}.shapepick{display:flex;flex-wrap:wrap;gap:var(--s2);justify-content:center}.shapepick button{padding:var(--s2);background:var(--surface);border:3px solid var(--line);border-radius:var(--r2);box-shadow:var(--shadow-1)}.shapepick button.ok{border-color:var(--good)}.visual{display:flex;flex-wrap:wrap;gap:var(--s3);justify-content:center;align-items:center}.dots{display:flex;flex-wrap:wrap;gap:5px;max-width:186px;justify-content:center}.dot{width:18px;height:18px;border-radius:50%;background:var(--sky)}.dot.b{background:var(--orange)}.arr{display:grid;gap:4px}.arr .r{display:flex;gap:4px}.arr .c{width:15px;height:15px;border-radius:4px;background:var(--amber)}.gridfig{display:grid;gap:2px}.gridfig .c{background:color-mix(in srgb,var(--sky) 45%,transparent);border:1px solid color-mix(in srgb,var(--sky) 60%,transparent)}.magic{display:grid;grid-template-columns:repeat(3,50px);gap:6px}.magic div{height:50px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r1);font-family:var(--font-display);font-size:19px;font-weight:700}.magic div.hole{border-style:dashed;border-color:var(--line-2);color:var(--accent)}.heat{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:3px;max-width:460px;margin:0 auto}.heat div{aspect-ratio:1;display:grid;place-items:center;border-radius:6px;background:var(--surface-2);font-size:clamp(9px,2.4vw,12px);font-weight:700}.heat div.head{background:none;color:var(--dim);font-weight:800}.heat button{border:0;padding:0;font:inherit}.heat .m0{background:var(--surface-2);color:var(--dim)}.heat .m1{background:color-mix(in srgb,var(--orange) 26%,var(--surface-2));color:#7a3d0f}.heat .m2{background:color-mix(in srgb,var(--amber) 30%,var(--surface-2));color:#6b4c05}.heat .m3{background:color-mix(in srgb,var(--lime) 32%,var(--surface-2));color:#3d5709}.heat .m4{background:color-mix(in srgb,var(--good) 34%,var(--surface-2));color:#0d5a37}.heat .m5{background:var(--good);color:#fff}.legend{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s3);font-size:12px;color:var(--muted)}.legend span{display:inline-flex;align-items:center;gap:5px}.legend i{width:11px;height:11px;border-radius:3px}.lb{overflow:hidden}.lb-row{display:flex;align-items:center;gap:var(--s3);padding:var(--s3);border-bottom:1px solid var(--line)}.lb-row:last-child{border-bottom:0}.lb-row .pos{width:30px;flex:0 0 30px;text-align:center;font-size:14px;font-weight:800;color:var(--dim)}.lb-row .pos.top1{color:var(--gold-2)}.lb-row .pos.top2{color:#7a83a8}.lb-row .pos.top3{color:#b5772f}.lb-row .av{font-size:24px;line-height:1}.lb-row .nm{flex:1;min-width:0}.lb-row .nm b{display:block;font-size:15px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-row .nm small{color:var(--dim);font-size:12px}.lb-row .val{display:inline-flex;align-items:center;gap:4px;font-size:16px;font-weight:800;white-space:nowrap}.lb-row.me{background:color-mix(in srgb,var(--accent) 8%,transparent)}.lb-me{display:flex;align-items:center;gap:var(--s3);margin-top:var(--s3);padding:var(--s3);background:var(--surface-2);border:2px dashed var(--line-2);border-radius:var(--r2)}.lb-me .val{display:inline-flex;align-items:center;gap:4px}.feed{position:relative;padding-left:30px}.feed:before{content:"";position:absolute;left:13px;top:6px;bottom:6px;width:2px;border-radius:2px;background:var(--line-2)}.feed-item{position:relative;padding:0 0 var(--s4)}.feed-item .marker{position:absolute;left:-30px;top:0;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--surface);border:1px solid var(--line-2);color:var(--accent);box-shadow:var(--shadow-1)}.feed-item .when{font-size:12px;color:var(--dim)}.feed-item .what{font-size:14px;font-weight:700}.feed-item .what small{display:block;color:var(--muted);font-weight:500}.feed-day{margin:var(--s4) 0 var(--s3);font-size:12px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--dim)}.profile-card{text-align:center}.profile-card .ava{font-size:58px;line-height:1}.rankbar{height:8px;margin:var(--s3) 0 6px;border-radius:999px;background:var(--track);overflow:hidden}.rankbar>i{display:block;width:100%;height:100%;transform-origin:left;border-radius:999px;background:linear-gradient(90deg,var(--gold),var(--pink));transition:transform .28s var(--ease-out)}.stat{padding:var(--s3);text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);box-shadow:var(--shadow-1)}.stat b{display:block;font-family:var(--font-display);font-size:20px;font-weight:700}.stat small{display:block;margin-top:2px;font-size:12px;color:var(--dim);line-height:1.3}.ach{display:flex;align-items:center;gap:var(--s3);padding:var(--s3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);box-shadow:var(--shadow-1)}.ach.locked{opacity:.45;box-shadow:none}.ach .e{color:var(--accent);line-height:1}.ach.locked .e{color:var(--dim)}.ach b{display:block;font-size:14px}.ach small{color:var(--muted);font-size:12px}.days{display:flex;flex-wrap:wrap;gap:4px}.days i{width:13px;height:13px;border-radius:4px;background:var(--track)}.days i.a1{background:color-mix(in srgb,var(--good) 35%,transparent)}.days i.a2{background:color-mix(in srgb,var(--good) 60%,transparent)}.days i.a3{background:color-mix(in srgb,var(--good) 82%,transparent)}.days i.a4{background:var(--good)}.result{max-width:560px;margin:0 auto;text-align:center;padding-top:var(--s5)}.result>.big{color:var(--gold-2);line-height:1;animation:medal-pop .26s var(--ease-out) both}.result .stars-big{font-size:38px;letter-spacing:8px;color:var(--gold)}.result .stars-big .off{color:var(--line-2)}.result .card{text-align:left;margin-top:var(--s4)}.result-rewards .pill{animation:badge-pop .22s var(--ease-out) both}.result-rewards .pill:nth-child(2){animation-delay:55ms}.result-rewards .pill:nth-child(3){animation-delay:.11s}.result-rewards .pill:nth-child(4){animation-delay:165ms}.boss-result{position:relative;display:flex;align-items:center;gap:var(--s4);min-height:156px;margin-bottom:var(--s4);padding:var(--s4) var(--s4) var(--s4) 150px;overflow:hidden;text-align:left;color:#fff;background:linear-gradient(135deg,#35205f,#6940a5 68%,#9560c1);border:1px solid rgba(255,219,101,.46);border-radius:var(--r4);box-shadow:var(--shadow-2);animation:story-enter .28s var(--ease-out) both}.boss-result.won{background:linear-gradient(135deg,#173f52,#237b78 66%,#48a36e);border-color:#ffe1708c}.boss-result>img{position:absolute;left:4px;bottom:-11px;width:145px;height:145px;object-fit:contain;filter:drop-shadow(0 8px 11px rgba(15,9,35,.3))}.boss-result.won>img{opacity:.7;transform:translateY(9px) rotate(-7deg)}.boss-result>div{position:relative;z-index:1}.boss-result .eyebrow{color:#ffe173}.boss-result h2{margin:3px 0 7px;color:#fff;font-size:20px}.boss-result p{margin:0;color:#ffffffc7;font-size:13px;line-height:1.4}.review-row{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) 0;border-bottom:1px solid var(--line)}.review-row:last-child{border-bottom:0}.review-row .q{flex:1;min-width:0;font-size:14px}.review-row .was{color:var(--dim);text-decoration:line-through;font-size:13px}.review-row .right{color:var(--good-2);font-weight:800}.toast{position:fixed;left:50%;bottom:92px;z-index:60;transform:translate(-50%);display:flex;align-items:center;gap:var(--s2);max-width:min(420px,92vw);padding:var(--s3) var(--s4);background:var(--text);color:#fff;border-radius:var(--r2);box-shadow:var(--shadow-3);font-size:14px;font-weight:700;animation:pop .22s var(--ease-out)}canvas.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50}.ad-slot{width:min(var(--page-w),100%);margin:0 auto 104px;padding:var(--s3) var(--s4) 0;display:flex;justify-content:center;overflow:hidden}.ad-slot:empty{display:none;margin:0}.empty{padding:var(--s5);text-align:center;color:var(--muted);background:var(--surface);border:2px dashed var(--line-2);border-radius:var(--r3)}.loading{padding:var(--s5);text-align:center;color:var(--dim)}@keyframes blink{50%{opacity:0}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-7px)}75%{transform:translate(7px)}}@keyframes pop{0%{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}@keyframes nudge{0%,to{transform:rotate(0)}38%{transform:rotate(-1.4deg)}72%{transform:rotate(1.4deg)}}@keyframes story-enter{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes card-rise{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes hero-reveal{0%{opacity:.68;transform:scale(1.045)}to{opacity:1;transform:scale(1)}}@keyframes hero-shine{0%{opacity:0;transform:translate(0) rotate(16deg)}32%{opacity:.7}to{opacity:0;transform:translate(800%) rotate(16deg)}}@keyframes energy-arrive{0%{opacity:0;transform:translateY(-6px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes guide-arrive{0%{opacity:0;transform:translateY(6px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes guide-cheer{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-7px) rotate(4deg)}to{transform:translateY(0) rotate(0)}}@keyframes guide-encourage{0%,to{transform:rotate(0)}45%{transform:rotate(-4deg)}70%{transform:rotate(3deg)}}@keyframes boss-hit{0%,to{transform:translate(0) rotate(0) scale(1)}45%{transform:translate(-8px) rotate(-5deg) scale(.94)}}@keyframes boss-attack{0%,to{transform:translate(0) scale(1)}52%{transform:translate(7px) scale(1.045)}}@keyframes boss-defeat{0%{opacity:1;transform:translateY(0) rotate(0) scale(1)}to{opacity:.58;transform:translateY(11px) rotate(-7deg) scale(.9)}}@keyframes boss-wave{0%{opacity:.9;transform:scale(.72)}to{opacity:0;transform:scale(1.72)}}@keyframes damage-rise{0%{opacity:0;transform:translateY(5px) scale(.94)}35%{opacity:1}to{opacity:0;transform:translateY(-12px) scale(1.04)}}@keyframes answer-flash{0%,to{opacity:0}36%{opacity:1}}@keyframes feedback-pop{0%{opacity:0;transform:translateY(4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes combo-bump{0%{opacity:.6;transform:translateY(3px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes medal-pop{0%{opacity:0;transform:translateY(5px) rotate(-7deg) scale(.9)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}@keyframes badge-pop{0%{opacity:0;transform:translateY(5px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes reduced-enter{0%{opacity:0}to{opacity:1}}@keyframes reward-fly{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}18%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.7)}}@keyframes chest-open{0%{transform:rotate(0) scale(1)}42%{transform:rotate(-7deg) scale(.94)}to{transform:rotate(5deg) scale(1.12)}}@keyframes chest-flash{0%{opacity:0;transform:scale(.9)}45%{opacity:1}to{opacity:0;transform:scale(1.28)}}@keyframes star-reveal{0%{opacity:0;transform:translateY(5px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes tab-pop{0%{transform:scale(.86)}to{transform:scale(1)}}.pop{animation:pop .22s var(--ease-out)}.nudge{animation:nudge .28s var(--ease-out) .8s both}@media(max-width:760px){.mission-grid{grid-template-columns:1fr 1fr}.trophy-shelf{display:flex;overflow-x:auto;padding-bottom:5px;scroll-snap-type:x proximity;scrollbar-width:none}.trophy-shelf::-webkit-scrollbar{display:none}.trophy-card{flex:0 0 154px;scroll-snap-align:start}.world-hero-copy{width:68%}.world-guide{right:5px;width:158px}}@media(max-width:560px){.mission-grid{grid-template-columns:1fr}.mission-grid .reward{min-height:130px}.level-route{grid-template-columns:1fr}.level-card{min-height:104px}.level-card.boss{min-height:118px;padding-right:72px}.boss-card-art{right:-25px;width:100px}.topic-banner{min-height:220px}.topic-banner-copy{width:84%;padding:18px}.topic-banner h2{max-width:80%;font-size:25px}.topic-banner p{padding-right:22px}.topic-banner>strong{right:12px;bottom:12px;width:64px;height:64px;font-size:19px}.topic-banner>strong small{margin-top:-14px;font-size:7px}.world-hero{min-height:292px}.world-hero-copy{width:100%;padding:20px 16px}.world-hero h2{max-width:78%;font-size:27px}.world-hero p{max-width:31ch;padding-right:50px}.world-guide{right:-18px;bottom:-34px;width:138px;height:168px;opacity:.44}.world-energy{right:11px;top:12px;width:68px;height:68px}.world-energy span{font-size:21px}.world-energy small{margin-top:-15px;font-size:8px}.world-total-progress{gap:8px}.world-total-progress>span{font-size:0}.world-total-progress>span svg{width:16px;height:16px}.boss-arena{min-height:101px;padding-left:98px}.boss-arena>img{width:101px;height:97px}.boss-result{min-height:142px;padding-left:116px}.boss-result>img{left:-8px;width:126px;height:126px}.boss-result h2{font-size:17px}}@media(max-width:430px){:root{--s4: 14px;--s5: 20px}h1{font-size:22px}.page{padding-left:var(--s3);padding-right:var(--s3)}.magic{grid-template-columns:repeat(3,44px)}.magic div{height:44px;font-size:17px}.duelcode{font-size:32px;letter-spacing:7px}.tabbar button{font-size:10px}.world-list{grid-template-columns:1fr 1fr}.world-list{padding-left:var(--s3);padding-right:var(--s3)}.world-hero h2{font-size:25px}.world-kicker{max-width:calc(100% - 78px)}.section-title{align-items:center}.section-title h2{font-size:19px}.mission-streak{padding:6px 8px;font-size:11px}.game-guide{width:56px;height:56px;right:2px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.toast,.pop,.feedback.ok,.result>.big,.result-rewards .pill,.stars-reveal .earned{animation:reduced-enter .16s var(--ease-out) both!important}.play.answer-ok:before,.play.answer-no:before{animation:answer-flash .16s var(--ease-out) both!important}}
