:root{--ink: #16123a;--night: #231c5c;--night-2: #2e2670;--night-3: #0f0b2e;--on-night: #ffffff;--on-night-dim: #c9c2f5;--bg: #fff7ea;--surface: #ffffff;--surface-2: #f3efff;--surface-3: #e4dcff;--line: rgba(22, 18, 58, .12);--line-2: rgba(22, 18, 58, .24);--track: #ede8ff;--text: #16123a;--muted: #554d80;--dim: #6e6799;--accent: #5b3fe0;--accent-2: #3f28b8;--good: #3ddc97;--good-2: #0b7a4b;--bad: #ff5c7a;--bad-2: #c2183b;--gold: #ffc53d;--gold-2: #9a6400;--flame: #ff7a45;--ice: #7be3ff;--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: 22px;--r4: 28px;--shadow-1: 0 2px 6px rgba(22, 18, 58, .08);--shadow-2: 0 10px 24px rgba(22, 18, 58, .16);--shadow-3: 0 20px 46px rgba(22, 18, 58, .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: "Unbounded", "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: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:12px;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)}@media(max-width:360px){.topbar-in{gap:6px;padding-left:var(--s3);padding-right:var(--s3)}.brand{font-size:15px;gap:6px;min-width:0}.topbar .pill{padding:5px 8px;gap:4px}.tabbar{padding-left:4px;padding-right:4px}.tabbar-in{gap:0}.tabbar .tabbar-in button{padding:0;font-size:12px;letter-spacing:-.2px}}@media(max-width:340px){.tabbar .tabbar-in button{font-size:11px;letter-spacing:-.4px}}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:12px;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:12px;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:12px}.level-card>.stars{position:absolute;z-index:1;right:12px;top:10px;font-size:12px}.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:12px;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:12px;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:12px;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:12px}.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:12px;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:12px}.trophy-card small{margin-top:3px;color:var(--dim);font-size:12px}.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;grid-template-columns:minmax(0,1fr);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{min-width:0;display:flex;align-items:center;gap:var(--s3);padding:calc(var(--s3) + env(safe-area-inset-top)) var(--s4) var(--s3)}.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)}.sound-toggle{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(--accent)}.sound-toggle[aria-pressed=false]{color:var(--muted)}@media(max-width:420px){.play-top .sound-toggle,.play-top .quit{width:36px;height:36px;flex-basis:36px}}.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;overscroll-behavior:contain;overflow-anchor:none}.question-heading{display:flex;align-items:center;justify-content:center;gap:var(--s3);width:100%;min-width:0}.question-heading:has(.game-guide){justify-content:space-between;text-align:left}.question-heading .q-label{min-width:0;max-width:100%;overflow-wrap:anywhere}.game-guide{position:relative;flex:0 0 auto;width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 6px 7px rgba(47,38,94,.16));pointer-events:none}.game-guide>.character-avatar,.game-guide>.emoji-avatar{width:100%;height:100%;max-width:100%;max-height:100%}.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:12px;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:12px;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-body);font-size:24px;font-weight:800;letter-spacing:0;line-height:1.4;width:100%;max-width:32ch;overflow-wrap:anywhere}.q-unit{font-size:13px;color:var(--dim)}.answers{display:flex;gap:var(--s3);justify-content:center;width:min(100%,340px)}.answer-slot{text-align:center;min-width:0;flex:0 1 148px}.answer-slot .label{margin-bottom:5px;font-size:12px;color:var(--dim)}.answer-box{min-width:0;width:100%;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{min-width:0;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,minmax(0,1fr));gap:var(--s2)}.choices button{min-width:0;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;min-height:62px;padding:var(--s2);background:var(--surface);border:3px solid var(--line);border-radius:var(--r2);font-family:var(--font-display);font-size:clamp(16px,3vw,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}.legend i.m0{box-shadow:inset 0 0 0 1px var(--line-2)}.heat .m1,.legend .m1{background:color-mix(in srgb,var(--orange) 26%,var(--surface-2));color:#7a3d0f}.heat .m2,.legend .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,.legend .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}.profile-actions{justify-content:center;margin:var(--s3) 0 var(--s2)}.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:12px}.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:12px}.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:12px}.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:12px}.game-guide{width:56px;height:56px}.game-guide>.emoji-avatar{font-size:40px!important}}@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}}.lesson-page{padding-top:28px}.lesson-card{max-width:640px;margin:0 auto;padding:24px}.lesson-card h1{margin:12px 0 18px}.lesson-card p{line-height:1.65}.lesson-card .muted{font-size:14px}.lesson-example{padding:18px;border-radius:16px;background:var(--surface-2);font-size:19px;font-weight:800;line-height:1.5}.place-demo{display:flex;gap:12px;justify-content:center;margin:18px 0}.place-demo>div{display:flex;flex-direction:column;align-items:center;padding:12px 22px;border-radius:18px;background:#eee7ff;color:#493286}.place-demo>div:last-child{background:#def5e9;color:#21664d}.place-demo strong{font-size:48px;line-height:1.1}.first-guide{border:1px solid #c5b3f3;background:#f3eeff;color:#483675;border-radius:16px;padding:12px;animation:guide-enter .5s ease-out both}.first-guide small{display:block;margin-top:6px;font-weight:800;animation:guide-nudge .9s ease-in-out 3}.hintline{display:flex;flex-direction:column;align-items:center;gap:6px}.hintline>small{color:var(--muted);font-size:12px}.feedback{height:auto;min-height:26px;font-size:14px}.duel-action{display:flex;align-items:center;justify-content:center;gap:20px;color:#6650ae;margin:8px 0}.duel-action svg:last-child{transform:scaleX(-1)}.duel-action.ok svg:first-child{animation:duel-strike .5s ease-out both}.duel-action.ok svg:last-child{animation:duel-strike-right .5s ease-out both}.duel-action.no{color:#a04d34}.duel-victory{padding:18px;border:1px solid #e8bd48;border-radius:18px;background:linear-gradient(120deg,#fff6cf,#ffe4a2,#fff4cf);color:#6d4309;font-size:26px;font-weight:900;text-align:center;animation:victory-arrive .65s cubic-bezier(.16,1,.3,1) both}.character-avatar{display:inline-block;vertical-align:middle;flex-shrink:0}.row-btn:has(.character-avatar) .num{width:60px;height:64px;flex-shrink:0}@keyframes guide-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes guide-nudge{50%{transform:translateY(4px)}}@keyframes duel-strike{40%{transform:translate(16px) rotate(20deg)}}@keyframes duel-strike-right{40%{transform:scaleX(-1) translate(16px) rotate(20deg)}}@keyframes victory-arrive{0%{opacity:0;transform:translateY(20px) scale(.85) rotate(-3deg)}to{opacity:1;transform:none}}@media(max-width:420px){.lesson-card{padding:18px}.play-top{gap:6px}.play-top .pill{padding:5px 7px}}@media(prefers-reduced-motion:reduce){.first-guide,.first-guide small,.duel-action svg,.duel-victory{animation:none!important}}.review-explanation{display:block;color:var(--muted);font-size:13px;line-height:1.5;margin-top:6px}.lesson-tabs{margin:16px 0}.lesson-card li,.tutorial-card li{margin:10px 0;line-height:1.6}.tutorial-card{max-width:640px;margin:20px auto;padding:24px}.tutorial-card header{align-items:center}.tutorial-card h1{font-size:24px;margin-top:8px}.tutorial-steps{display:flex;gap:8px;margin:24px 0}.tutorial-steps span{flex:1;padding:10px 6px;border-radius:12px;background:var(--surface-2);text-align:center;color:var(--muted);font-weight:800}.tutorial-steps .active{color:#fff;background:var(--accent)}.tutorial-content{min-height:230px;line-height:1.6}.tutorial-card footer{margin-top:22px}.demo-board{background:var(--surface-2);border-radius:20px;padding:24px 16px;text-align:center;margin:16px 0}.demo-board>strong{font-size:26px}.demo-slots,.demo-keys{display:flex;justify-content:center;gap:12px;margin:20px 0}.demo-slots>span,.demo-keys>span{position:relative;display:grid;place-items:center;min-width:58px;min-height:52px;padding:6px;background:var(--surface);border:2px solid var(--line);border-radius:12px;font-size:24px;font-weight:900}.demo-board .demo-lit{border-color:#42a77a;color:#176f4b;background:#e3f8ee}.demo-tap:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border:3px solid #48b18d;border-radius:18px;animation:demo-tap .7s ease-out both}.demo-caption{min-height:48px;color:var(--text)}.selected-guide{display:grid;place-items:center;font-size:50px}.teach-input .keypad,.teach-input .choices,.teach-input .shapepick,.teach-submit .go{outline:3px solid #a599f4;outline-offset:4px;animation:controls-glow 1.3s ease-in-out 3}.duel-arena{position:relative;isolation:isolate;display:grid;grid-template-columns:1fr 1.2fr 1fr;align-items:center;width:min(100%,480px);padding:18px 14px 10px;margin:8px auto 16px;border-radius:24px;color:#fff;background:linear-gradient(135deg,#29234d,#554388);overflow:hidden;box-shadow:0 8px #211c3e,0 14px 24px #26203922}.arena-fighter{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;font-size:42px}.arena-fighter b{font-size:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arena-center{display:flex;flex-direction:column;align-items:center;gap:5px}.arena-center strong{font-size:15px;line-height:1.2}.arena-center small,.arena-note{color:#e0daff;font-size:12px}.arena-sigil{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#ffffff1c;color:#ffe498}.arena-glow{position:absolute;z-index:-1;width:200px;height:200px;border-radius:50%;background:#9581ff33;left:-100px;top:-60px}.arena-progress{grid-column:1 / -1;height:5px;background:#fff2;border-radius:5px;margin:12px 6px 8px;overflow:hidden}.arena-progress i{display:block;height:100%;width:100%;transform-origin:left;background:linear-gradient(90deg,#98f5d0,#ffe192);transition:transform .4s ease}.arena-note{grid-column:1 / -1;text-align:center}.duel-arena.ok .hero{animation:hero-strike .55s cubic-bezier(.2,.8,.2,1)}.duel-arena.ok .rival{animation:rival-impact .55s ease}.duel-arena.ok .arena-sigil{animation:victory-arrive .45s ease}.arena-trail{position:absolute;pointer-events:none;left:25%;top:45%;width:50%;height:4px;opacity:0;background:linear-gradient(90deg,transparent,#ffe89a,white);border-radius:99px}.duel-arena.ok .arena-trail{animation:strike-trail .5s ease-out}.duel-arena.no .hero{animation:rival-impact .45s ease}.victory-scene{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:8px;margin:16px 0;padding:24px 12px}.victory-scene>strong{font-size:clamp(23px,5vw,34px);line-height:1.15}.victory-scene>span:last-of-type{font-size:13px;font-weight:700}.victory-hero{display:flex;flex-direction:column;align-items:center;animation:victory-arrive .7s .1s both;font-size:64px}.victory-hero>svg:first-child{transform:rotate(-12deg)}.victory-rays{position:absolute;z-index:-1;width:300px;height:300px;left:50%;top:104px;margin:-150px 0 0 -150px;background:repeating-conic-gradient(from 0deg,#fff8 0deg 12deg,transparent 12deg 30deg);border-radius:50%;-webkit-mask-image:radial-gradient(circle,#000 30%,transparent 68%);mask-image:radial-gradient(circle,#000 30%,transparent 68%);animation:rays-turn 8s linear 1;pointer-events:none}.victory-sparks{position:absolute;inset:30px 10px auto;display:flex;justify-content:space-around;color:#b98516;font-size:24px;pointer-events:none;animation:sparks-rise .9s 2 ease-out}.victory-sparks span{display:none}@keyframes demo-tap{0%{opacity:1;transform:scale(.85)}to{opacity:0;transform:scale(1.2)}}@keyframes controls-glow{50%{outline-color:#cfc8ff}}@keyframes hero-strike{40%{transform:translate(18px) rotate(10deg)}}@keyframes rival-impact{45%{transform:translate(7px) rotate(-6deg)}65%{transform:translate(-3px)}}@keyframes strike-trail{20%{opacity:1;transform:scaleX(.2)}65%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:translate(25px)}}@keyframes rays-turn{to{transform:rotate(60deg)}}@keyframes sparks-rise{0%{opacity:0;transform:translateY(15px) scale(.7)}40%{opacity:1}to{opacity:0;transform:translateY(-12px)}}@media(max-width:420px){.tutorial-card{padding:18px}.tutorial-card header .character-avatar{width:54px;height:54px}.tutorial-card h1{font-size:21px}.duel-arena{padding:12px 8px 8px}.arena-fighter .character-avatar{width:56px;height:56px}}@media(prefers-reduced-motion:reduce){.demo-tap:after,.teach-input .keypad,.teach-input .choices,.teach-input .shapepick,.teach-submit .go,.duel-arena .hero,.duel-arena .rival,.duel-arena .arena-sigil,.duel-arena .arena-trail,.victory-hero,.victory-rays,.victory-sparks{animation:none!important}.arena-progress i{transition:none}}.play{height:100dvh;min-height:0}.question{min-height:0;justify-content:flex-start}.question>*{flex-shrink:0}.question:has(.duel-arena){gap:10px}@media(max-height:740px){.keypad button{min-height:48px}.pad{padding-top:8px;padding-bottom:max(10px,env(safe-area-inset-bottom))}.duel-arena{margin-bottom:8px}}@media(orientation:landscape)and (max-height:500px)and (min-width:560px){.play{width:min(900px,100%);grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.play-top{grid-column:1 / -1}.question{grid-column:1;grid-row:2;gap:var(--s2)}.pad{grid-column:2;grid-row:2;align-self:center;max-height:100%;overflow-y:auto}.game-guide{width:40px;height:40px}.game-guide>.emoji-avatar{font-size:28px!important}}.field .hint{display:block;margin-top:6px;font-size:13px;line-height:1.4;color:var(--muted);font-weight:600}.consent{display:flex;gap:10px;align-items:flex-start;margin:4px 0 10px;font-size:13px;line-height:1.45;color:var(--muted);cursor:pointer}.consent input{flex:none;width:20px;height:20px;margin-top:1px;accent-color:var(--accent)}.consent a{color:var(--accent)}.legal-note{margin-top:10px;font-size:12px;color:var(--dim)}.legal-note a{color:var(--dim);text-decoration:underline}.academy-hero{display:flex;align-items:center;gap:var(--s4);padding:var(--s4);margin-bottom:var(--s4);border-radius:var(--r3);background:linear-gradient(135deg,#fff,var(--surface-2));border:1px solid var(--line);box-shadow:var(--shadow-1)}.academy-hero-icon{flex:none;display:grid;place-items:center;width:54px;height:54px;border-radius:18px;background:var(--surface-3);color:var(--accent)}.academy-hero h2{font-size:19px;margin:2px 0 4px}.academy-hero p{color:var(--muted);font-size:13px;line-height:1.45;margin:0}.academy-count{flex:none;display:grid;place-items:center;gap:2px;min-width:76px;font-size:26px;color:var(--accent)}.academy-count small{font-size:12px;font-weight:700;color:var(--muted);text-align:center}.guide-list{display:grid;gap:var(--s2);margin-top:var(--s3)}.guide-card{display:flex;align-items:center;gap:var(--s3);width:100%;padding:var(--s3);text-align:left;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--c, var(--accent));border-radius:var(--r2);box-shadow:var(--shadow-1);transition:transform .12s var(--ease-out),box-shadow .12s}.guide-card:active{transform:translateY(1px)}.guide-card.read{background:linear-gradient(90deg,rgba(255,255,255,1),var(--surface-2))}.guide-ico{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--surface-2);color:var(--c, var(--accent))}.guide-copy{flex:1;min-width:0;display:grid;gap:2px}.guide-copy b{font-size:15px}.guide-copy small{color:var(--muted);font-size:12px;line-height:1.35}.guide-state{flex:none;display:flex;align-items:center;gap:var(--s2);color:var(--dim)}.guide-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;background:#29c07a24;color:var(--good-2);font-size:12px;font-weight:800}.guide-badge.ghost{background:var(--surface-2);color:var(--muted)}.guide-hero{display:flex;align-items:center;gap:var(--s3);padding:var(--s4);margin-bottom:var(--s4);border-radius:var(--r3);background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--c, var(--accent));box-shadow:var(--shadow-1)}.guide-hero-ico{flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:var(--surface-2);color:var(--c, var(--accent))}.guide-hero p{margin:0;font-size:15px;font-weight:700;line-height:1.45}.guide-section{margin-bottom:var(--s3)}.guide-section h3{display:flex;align-items:center;gap:var(--s2);margin:0 0 var(--s3);font-size:16px;color:var(--text)}.guide-section h3 svg{color:var(--accent)}.guide-section>p{line-height:1.55;margin:0 0 var(--s3)}.guide-steps{margin:0 0 var(--s3);padding-left:22px}.guide-steps li{margin:8px 0;line-height:1.55}.mistake-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2)}.mistake-list li{display:grid;gap:4px;padding:var(--s3);border-radius:var(--r1);background:var(--surface-2)}.m-wrong{color:var(--bad-2);font-weight:800;text-decoration:line-through}.m-right{color:var(--good-2);font-weight:800}.mistake-list small{color:var(--muted);line-height:1.45}.trick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--s2)}.trick-card{display:grid;gap:6px;align-content:start;min-height:96px;padding:var(--s3);text-align:left;border:2px dashed var(--line-2);border-radius:var(--r2);background:var(--surface-2);transition:background .15s,border-color .15s,transform .12s var(--ease-out)}.trick-card b{font-size:14px}.trick-card span{font-size:13px;line-height:1.45;color:var(--muted)}.trick-card.open{border-style:solid;border-color:var(--accent);background:var(--surface)}.trick-card.open span{color:var(--text)}.trick-card:active{transform:scale(.985)}.quiz-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--s2);font-weight:800;font-size:13px}.quiz-head small{color:var(--muted);font-weight:700}.quiz-q{font-size:17px;font-weight:800;margin:var(--s3) 0;line-height:1.4}.quiz-options{display:grid;gap:var(--s2)}.quiz-opt{padding:14px var(--s3);text-align:left;font-size:16px;font-weight:800;background:var(--surface-2);border:2px solid transparent;border-radius:var(--r2);transition:background .15s,border-color .15s}.quiz-opt.right{background:#29c07a29;border-color:var(--good);color:var(--good-2)}.quiz-opt.wrong{background:#ff547024;border-color:var(--bad);color:var(--bad-2)}.quiz-opt.dim{opacity:.5}.quiz-why{display:grid;gap:6px;justify-items:start;margin-top:var(--s3);padding:var(--s3);border-radius:var(--r2);background:var(--surface-2);border-left:4px solid var(--bad)}.quiz-why.ok{border-left-color:var(--good)}.quiz-why span{color:var(--muted);line-height:1.5}.quiz-done{text-align:center}.quiz-score{display:block;font-size:30px;color:var(--accent);margin:var(--s2) 0}.guide-practice{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;padding:var(--s4);margin-top:var(--s4);border-radius:var(--r3);background:var(--surface-2)}.guide-practice small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.topic-lesson{display:flex;align-items:center;gap:var(--s3);width:100%;padding:var(--s3);margin:var(--s3) 0;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);box-shadow:var(--shadow-1)}.topic-lesson-ico{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#ffb7032e;color:var(--gold-2)}.topic-lesson-copy{flex:1;min-width:0}.topic-lesson-copy small{display:block;color:var(--muted);font-size:12px;line-height:1.35}.toy{margin:var(--s3) 0 0;padding:var(--s3);border-radius:var(--r2);background:var(--surface-2)}.toy-stage{display:grid;place-items:center;min-height:120px;overflow-x:auto}.toy-caption{min-height:40px;margin:var(--s2) 0 0;text-align:center;font-weight:700;line-height:1.45}.toy-actions{display:flex;flex-wrap:wrap;gap:var(--s2);justify-content:center;margin-top:var(--s2)}.numline{display:flex;gap:2px;padding:18px 2px 4px}.nl-cell{position:relative;display:grid;place-items:center;min-width:26px;height:34px;border-radius:8px;background:var(--surface);font-size:12px;font-weight:800;color:var(--muted)}.nl-cell.ten{color:var(--accent);background:var(--surface-3)}.nl-cell.from{box-shadow:inset 0 0 0 2px var(--line-2)}.nl-cell.here{background:var(--accent);color:#fff}.nl-token{position:absolute;top:-16px;width:12px;height:12px;border-radius:50%;background:var(--gold);box-shadow:0 2px 6px #0003;animation:nl-hop .25s var(--ease-out)}@keyframes nl-hop{0%{transform:translateY(-10px)}to{transform:none}}.tenframe{display:grid;grid-template-columns:repeat(5,42px);gap:6px}.tf-cell{height:42px;border-radius:10px;background:var(--surface);border:2px solid var(--line-2);transition:background .15s,border-color .15s,transform .1s}.tf-cell.on{background:var(--accent);border-color:var(--accent-2)}.tf-cell:active{transform:scale(.94)}.bridge{display:grid;gap:6px;justify-items:center}.bridge-line{padding:6px 14px;border-radius:10px;font-size:19px;font-weight:900;color:var(--dim);background:var(--surface);opacity:.45;transition:opacity .2s,color .2s}.bridge-line.on{opacity:1;color:var(--text)}.bridge-split{display:flex;align-items:center;gap:var(--s2);margin-top:4px}.bridge-split span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--surface);border:2px dashed var(--line-2);font-weight:900;color:var(--dim)}.bridge-split span.on{border-style:solid;border-color:var(--good);color:var(--good-2);background:#29c07a1f}.bridge-split i{width:26px;height:2px;background:var(--line-2)}.places{display:flex;gap:var(--s2)}.place-col{display:grid;gap:2px;justify-items:center;min-width:64px;padding:var(--s2);border-radius:var(--r1);background:var(--surface);border:2px solid transparent}.place-col small{font-size:12px;color:var(--muted);font-weight:800}.place-col b{font-size:26px}.place-col span{font-size:12px;color:var(--dim);font-weight:800}.place-col.on{border-color:var(--accent)}.place-col.on span{color:var(--accent)}.groups{display:grid;gap:6px}.group-row{display:flex;gap:6px}.group-row i{width:22px;height:22px;border-radius:50%;background:var(--accent);animation:dot-pop .22s var(--ease-out) both;animation-delay:calc(var(--i) * 40ms)}@keyframes dot-pop{0%{transform:scale(0)}to{transform:none}}.multable{display:grid;grid-template-columns:repeat(10,1fr);gap:2px;width:100%;max-width:340px}.mt-head{display:grid;place-items:center;font-size:12px;font-weight:900;color:var(--muted)}.mt-cell{aspect-ratio:1;display:grid;place-items:center;border-radius:6px;background:var(--surface);font-size:12px;font-weight:800;color:var(--muted)}.mt-cell.sq{background:var(--surface-3);color:var(--accent)}.mt-cell.on{background:var(--accent);color:#fff}.fingers{display:flex;gap:5px;align-items:flex-end}.fingers .gap{margin-right:16px}.finger{width:26px;height:66px;border-radius:13px;background:var(--surface);border:2px solid var(--line-2);font-size:12px;font-weight:800;color:var(--dim);display:grid;align-items:end;justify-items:center;padding-bottom:4px;transition:height .18s var(--ease-out),background .15s}.finger.tens{background:#5b67f22e;border-color:var(--accent);color:var(--accent-2)}.finger.ones{background:#ffb70333;border-color:var(--gold);color:var(--gold-2)}.finger.bent{height:34px;background:var(--surface-3);border-style:dashed}.share{display:grid;gap:var(--s3);justify-items:center}.share-pool{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;max-width:220px;min-height:24px}.share-pool i,.plate i,.share-rest i{width:18px;height:18px;border-radius:50%;background:var(--gold);display:inline-block}.share-plates{display:flex;gap:var(--s2);flex-wrap:wrap;justify-content:center}.plate{display:flex;flex-wrap:wrap;gap:4px;align-content:center;justify-content:center;min-width:62px;min-height:62px;padding:6px;border-radius:50%;background:var(--surface);border:2px solid var(--line-2)}.share-rest{display:flex;align-items:center;gap:6px;font-weight:800;color:var(--bad-2)}.share-rest i{background:var(--bad)}.colwork{display:grid;justify-items:end;gap:2px;padding:var(--s3) var(--s4);border-radius:var(--r1);background:var(--surface);font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;letter-spacing:2px}.col-top{min-height:18px;font-size:14px;color:var(--accent);letter-spacing:0}.col-op{margin-right:10px;color:var(--muted)}.col-rule{width:100%;height:2px;background:var(--text);margin:4px 0}.col-num.res{color:var(--good-2);min-height:32px}.longdiv{display:grid;grid-template-columns:auto auto auto;align-items:center;gap:4px 8px;padding:var(--s3) var(--s4);border-radius:var(--r1);background:var(--surface);font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:24px;font-weight:700}.longdiv .ld-bar{color:var(--muted)}.longdiv .ld-q{grid-column:3;color:var(--good-2)}.longdiv small{grid-column:1 / -1;font-family:inherit;font-size:12px;color:var(--muted);font-weight:700}.orderwork{display:grid;gap:6px;justify-items:center;font-family:var(--font-display)}.order-line{padding:6px 14px;border-radius:10px;background:var(--surface);font-size:22px;font-weight:800;opacity:.55}.order-line.on{opacity:1;color:var(--accent)}.pie-toy{display:flex;align-items:center;gap:var(--s4)}.pie-slice{fill:var(--surface);stroke:#fff;stroke-width:2;cursor:pointer;transition:fill .15s}.pie-slice.on{fill:var(--gold)}.frac-badge{display:grid;justify-items:center;gap:2px;font-size:26px;font-weight:900}.frac-badge i{width:34px;height:3px;background:var(--text);border-radius:2px}.shape-toy .shape-body{fill:var(--surface);stroke:var(--line-2);stroke-width:2}.shape-toy .shape-side{stroke:var(--line-2);stroke-width:4;stroke-linecap:round;transition:stroke .2s}.shape-toy .shape-side.on{stroke:var(--accent)}.shape-toy .shape-vertex{fill:var(--line-2);transition:fill .2s}.shape-toy .shape-vertex.on{fill:var(--gold)}.rect-toy{display:grid;gap:2px;padding:4px;border:3px solid transparent;border-radius:8px;transition:border-color .2s}.rect-toy .rt-cell{width:26px;height:26px;border-radius:4px;background:var(--surface);border:1px solid var(--line);transition:background .2s}.rect-toy.show-p{border-color:var(--accent)}.rect-toy.show-s .rt-cell{background:#ffb7038c}.clock-toy .clock-face{fill:var(--surface);stroke:var(--line-2);stroke-width:2}.clock-toy .clock-num{font-size:13px;font-weight:800;fill:var(--text)}.clock-toy .clock-min{font-size:8px;font-weight:700;fill:var(--dim)}.clock-toy .clock-hand{stroke-linecap:round;transition:transform .2s}.clock-toy .clock-hand.h{stroke:var(--text);stroke-width:6}.clock-toy .clock-hand.m{stroke:var(--accent);stroke-width:4}.clock-toy .clock-pin{fill:var(--gold)}.stairs{display:grid;gap:4px}.stair{display:flex;align-items:center;gap:var(--s2);margin-left:calc(var(--i) * 18px);padding:8px 14px;border-radius:var(--r1);background:var(--surface);border:2px solid transparent;text-align:left}.stair small{color:var(--muted);font-weight:700}.stair.on{border-color:var(--accent)}.tri{display:grid;gap:6px;justify-items:center;padding:var(--s3) var(--s4);border-radius:var(--r1);background:var(--surface);min-width:220px}.tri button{padding:8px 14px;border-radius:10px;background:var(--surface-2);font-weight:800;transition:background .15s,color .15s}.tri button.hidden{background:var(--text);color:transparent}.tri-rule{width:180px;height:3px;background:var(--text);border-radius:2px}.tri-bottom{display:flex;align-items:center;gap:var(--s2)}.tri-bottom span{font-weight:900;color:var(--muted)}.keywords{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--s2);width:100%}.kw{display:grid;gap:4px;padding:var(--s3);border-radius:var(--r1);background:var(--surface);border:2px dashed var(--line-2);text-align:left}.kw-front{font-weight:800;font-size:13px}.kw-back{font-size:12px;color:var(--dim)}.kw.open{border-style:solid;border-color:var(--good)}.kw.open .kw-back{color:var(--good-2);font-weight:800}.seq{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}.seq-num{display:grid;place-items:center;min-width:46px;height:46px;border-radius:var(--r1);background:var(--surface);font-size:20px;font-weight:900}.seq-num.next{border:2px dashed var(--line-2)}.seq-num.next.on{border-style:solid;border-color:var(--good);color:var(--good-2)}.seq-gap{font-size:12px;font-weight:800;color:var(--dim)}.seq-gap.on{color:var(--accent)}@media(max-width:420px){.academy-hero{flex-wrap:wrap}.academy-count{min-width:0}.tenframe{grid-template-columns:repeat(5,36px)}.tf-cell{height:36px}.numline{gap:1px}.nl-cell{min-width:22px;font-size:12px}}@media(prefers-reduced-motion:reduce){.nl-token,.group-row i{animation:none}.finger,.clock-toy .clock-hand{transition:none}}.emoji-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1;vertical-align:middle}.character-avatar{flex-shrink:0;vertical-align:middle}.hero-eyes{transform-origin:48px 51px;transition:transform .18s cubic-bezier(.23,1,.32,1)}.mood-ok .hero-eyes{transform:scaleY(.8)}.avatar-preview{display:grid;grid-template-columns:140px 1fr;align-items:center;gap:24px;margin:16px 0;background:linear-gradient(125deg,#f1ebff,#fff9ed)}.avatar-preview h2,.avatar-preview p{margin:0}.avatar-podium{display:grid;place-items:center;padding:16px 0}.avatar-collection{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.avatar-tile{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 8px;border:2px solid var(--line,#e5e0ee);border-radius:20px;background:var(--card,#fff);color:var(--text);cursor:pointer;font:inherit;transition:border-color .16s,background-color .16s}.avatar-tile[aria-pressed=true]{border-color:#7c5ce0;background:#f1ebff}.avatar-tile:focus-visible{outline:3px solid #7c5ce0;outline-offset:3px}.avatar-tile small{color:var(--muted)}@media(hover:hover)and (pointer:fine){.avatar-tile:hover{border-color:#a58ce8}}@media(max-width:480px){.avatar-preview{grid-template-columns:1fr;gap:8px;text-align:center}.avatar-podium{padding:0}}@media(prefers-reduced-motion:reduce){.hero-eyes{transition:none}}.portrait-avatar{display:inline-block;object-fit:contain;border-radius:24%;box-shadow:0 3px 10px #2f23481a;transition:transform .18s cubic-bezier(.23,1,.32,1)}.portrait-avatar.mood-ok{transform:rotate(-3deg) scale(1.035)}.portrait-avatar.mood-no{transform:rotate(3deg)}.avatar-preview{grid-template-columns:180px 1fr}.avatar-preview h2{font-size:24px;color:var(--text);text-transform:none;letter-spacing:0}@media(max-width:480px){.avatar-preview{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.portrait-avatar{transition:none;transform:none!important}}.multiplication-columns{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s4)}.column-card{display:flex;flex-direction:column;gap:var(--s4);min-width:0;padding:var(--s5);text-align:left;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--r3);box-shadow:0 4px 0 var(--line),var(--shadow-1);cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s var(--ease-out)}.column-card-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s2)}.column-factor{font-family:var(--font-display);font-size:40px;line-height:1.15;font-weight:800;letter-spacing:-1px;white-space:nowrap;font-variant-numeric:tabular-nums}.column-factor>span{color:var(--accent);font-size:28px}.column-card-arrow{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;border-radius:50%;color:var(--accent-2);background:var(--surface-2)}.column-mastery{display:flex;flex-direction:column;gap:var(--s1)}.column-mastery strong{font-size:20px;line-height:1.2;font-variant-numeric:tabular-nums}.column-mastery strong span{color:var(--muted);font-size:14px;font-weight:600}.column-mastery>span{color:var(--muted);font-size:14px;line-height:1.4}.column-segments{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:3px;margin-top:auto}.column-segments i{height:8px;border-radius:3px;background:var(--track)}.column-segments i.filled{background:var(--accent)}.column-action{color:var(--accent-2);font-size:14px;line-height:1.4;font-weight:800}.column-card.mastered{border-color:var(--good-2)}.column-card.mastered .column-segments i.filled{background:var(--good-2)}.column-card:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.column-card:active{transform:translateY(2px);box-shadow:0 1px 0 var(--line)}@media(hover:hover)and (pointer:fine){.column-card:hover{border-color:var(--accent);box-shadow:0 4px 0 var(--surface-3),var(--shadow-2)}}@media(max-width:900px){.multiplication-columns{grid-template-columns:repeat(4,minmax(0,1fr))}.column-card{padding:var(--s4)}}@media(max-width:700px){.multiplication-columns{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:520px){.multiplication-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}}@media(max-width:340px){.column-card{padding:var(--s3)}.column-factor{font-size:34px}}@media(prefers-reduced-motion:reduce){.column-card{transition:none}.column-card:active{transform:none}}.dressed-avatar{position:relative;display:inline-block;max-width:100%;aspect-ratio:1;border-radius:24%;background-size:cover;background-position:center;vertical-align:middle;overflow:hidden}.dressed-portrait{position:absolute;top:0;right:0;bottom:0;left:0}.dressed-portrait.framed{top:12%;right:12%;bottom:12%;left:12%;border:2px solid #ffffffb3;border-radius:24%;overflow:hidden;box-shadow:0 3px 12px #20184455}.dressed-portrait>.character-avatar,.dressed-portrait>.emoji-avatar{width:100%;height:100%;max-width:100%;max-height:100%}.wardrobe>header{margin:24px 0}.wardrobe>header h2{font-size:26px;color:var(--text);letter-spacing:0;text-transform:none;margin-bottom:8px}.wardrobe-heroes{display:flex;flex-wrap:nowrap;gap:10px;margin-bottom:20px;max-width:100%;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x proximity}.wardrobe-heroes>button{display:flex;flex:0 0 auto;align-items:center;gap:10px;padding:10px 14px;border:2px solid var(--line);border-radius:16px;background:var(--surface);text-align:left;scroll-snap-align:start}.wardrobe-heroes small{display:block;font-size:12px;color:var(--muted)}.wardrobe-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);gap:24px;align-items:start}.wardrobe-preview{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;min-width:0;background:linear-gradient(150deg,#f0eaff,#fff8e6)}.wardrobe-preview p,.wardrobe-preview h3{margin:0}.wardrobe-preview small{max-width:32ch;font-size:12px}.wardrobe-preview-label{padding:5px 12px;background:#fff9;border-radius:99px;font-size:12px;font-weight:800;color:var(--accent)}.wardrobe-stage{display:grid;place-items:center;width:min(240px,100%);aspect-ratio:1}.wardrobe-stage>.character-avatar{width:100%!important;height:auto!important;aspect-ratio:1}.wardrobe-wallet{font-size:14px}.wardrobe-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.wardrobe-tabs button{border:1px solid var(--line);border-radius:12px;min-height:44px;padding:8px 12px;background:var(--surface);font-size:13px;font-weight:800}.wardrobe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.wardrobe-item{min-width:0;display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 8px;border:2px solid var(--line);border-radius:18px;background:var(--surface)}.wardrobe-item b{font-size:13px;line-height:1.35;overflow-wrap:anywhere}.wardrobe-item small{margin-top:auto;color:var(--muted);font-size:12px}.wardrobe-item>.character-avatar{width:min(96px,100%)!important;height:auto!important;aspect-ratio:1}.wardrobe [aria-pressed=true]{border-color:var(--accent);background-color:#efedff;box-shadow:0 0 0 1px var(--accent)}.wardrobe button:disabled{opacity:.6}.wardrobe-none{height:96px;max-width:100%;display:grid;place-items:center;font-size:36px;color:var(--dim)}.wardrobe-note{margin-top:16px;font-size:13px}.wardrobe-error{color:var(--bad-2)}@media(max-width:700px){.wardrobe-layout{grid-template-columns:minmax(0,1fr);gap:20px}.wardrobe-stage{width:200px}.wardrobe-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}}@media(max-width:520px){.wardrobe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.btn{border:2px solid var(--ink);box-shadow:0 4px 0 var(--ink);font-weight:900}.btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}.btn.ghost{background:var(--surface);color:var(--text);box-shadow:0 3px 0 var(--ink)}.btn.ghost:active:not(:disabled){box-shadow:0 0 0 var(--ink)}.btn.good,.btn.gold{background:var(--gold);color:var(--ink);box-shadow:0 4px 0 var(--ink)}.btn.good:active:not(:disabled),.btn.gold:active:not(:disabled){box-shadow:0 1px 0 var(--ink)}.btn.sm{border-width:2px;box-shadow:0 2px 0 var(--ink)}.btn.sm.ghost{box-shadow:0 2px 0 var(--ink)}.pill{border:2px solid var(--ink);font-weight:900}.pill.gold{color:var(--ink);background:var(--gold);border-color:var(--ink)}.pill.streak{color:var(--ink);background:var(--flame);border-color:var(--ink)}.pill.good{color:var(--ink);background:var(--good);border-color:var(--ink)}.card{border:2px solid var(--ink);box-shadow:0 4px 0 var(--ink)}h2{color:var(--muted)}.eyebrow{color:var(--accent)}.segmented{border:2px solid var(--ink);box-shadow:none}.segmented button{font-weight:800}.segmented button.on{background:var(--ink);color:var(--gold)}.input:focus,.codeinput:focus{border-color:var(--ink);box-shadow:0 0 0 3px var(--gold)}.topbar{background:#fff7eae6;border-bottom:2px solid var(--ink)}.brand{font-weight:800;font-size:16px}.brand .logo{background:var(--ink);color:var(--gold)}.tabbar{background:var(--surface);border-top:2px solid var(--ink);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.tabbar button{color:var(--muted);font-weight:700}.tabbar button.on{color:var(--gold);background:var(--ink);font-weight:800;letter-spacing:-.2px}.home-page{padding-top:0}.world-map{margin:0 calc(-1 * var(--s4)) var(--s5);background:var(--ink)}.map-stage{position:relative;aspect-ratio:390 / 540;overflow:hidden;isolation:isolate}.map-art{position:absolute;top:0;max-width:none;z-index:-1;-webkit-user-select:none;user-select:none;pointer-events:none}.map-path{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;fill:none}.map-path path{stroke-linecap:round;vector-effect:non-scaling-stroke}.map-path .done-shadow{stroke:var(--ink);stroke-width:12px}.map-path .done{stroke:var(--gold);stroke-width:6px}.map-path .rest-shadow{stroke:#16123a73;stroke-width:9px}.map-path .rest{stroke:#fff;stroke-width:4px;stroke-dasharray:1 11}.map-hud{position:absolute;left:var(--s4);right:var(--s4);top:var(--s3);display:flex;align-items:center;gap:var(--s2)}.hud-player,.hud-pill,.hud-daily{background:#16123acc;border:2px solid rgba(255,255,255,.22);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.hud-player{flex:1;min-width:0;display:flex;align-items:center;gap:var(--s2);padding:3px 12px 3px 3px;border-radius:999px}.hud-player .character-avatar,.hud-player>:first-child{flex-shrink:0}.hud-player>span{display:flex;flex-direction:column;min-width:0}.hud-player b{font-size:15px;font-weight:900;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hud-player small{font-size:12px;font-weight:700;line-height:1.2;color:var(--on-night-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hud-pill{display:inline-flex;align-items:center;gap:5px;height:44px;padding:0 12px;border-radius:999px;font-size:15px;font-weight:900}.hud-pill svg{color:var(--ice)}.hud-pill.flame{background:var(--flame);border-color:var(--ink);color:var(--ink)}.hud-pill.flame svg{color:var(--ink)}.hud-daily{position:absolute;left:var(--s4);top:70px;display:flex;align-items:center;gap:var(--s2);max-width:min(62%,240px);min-height:44px;padding:5px 14px 5px 5px;border-radius:var(--r2);font:inherit;text-align:left}.hud-daily-ico{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;border-radius:50%;background:var(--good);color:var(--ink)}.hud-daily>span:last-child{display:flex;flex-direction:column;min-width:0}.hud-daily b{font-size:14px;font-weight:900;line-height:1.15}.hud-daily small{font-size:12px;font-weight:700;color:var(--on-night-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:3px;padding:0;border:0;background:none;color:var(--ink);-webkit-tap-highlight-color:transparent}.map-node .disc{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:3px solid var(--ink);background:#fff;box-shadow:0 4px 0 var(--ink);font-family:var(--font-display);font-size:18px;font-weight:800;transition:transform .14s var(--ease-out)}.map-node:active:not(:disabled) .disc{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}.map-node.done .disc{background:var(--good)}.map-node.locked .disc{width:46px;height:46px;background:#16123ad1;border-color:#ffffffd9;box-shadow:none;color:#fff}.map-node.boss .disc{background:var(--bad);color:var(--gold)}.map-node.boss.locked .disc{background:#16123ad1;color:#fff}.map-node.boss.done .disc{background:var(--gold);color:var(--ink)}.map-node.current .disc{width:78px;height:78px;background:var(--gold);font-size:28px;box-shadow:0 0 0 6px #fff,0 0 0 12px #ffc53d8c,0 10px 0 6px #16123a8c;animation:node-breathe 2.4s ease-in-out infinite}.map-node.current.boss .disc{background:var(--bad);color:var(--gold)}.node-stars{display:flex;gap:1px;padding:2px 6px;border-radius:999px;background:var(--ink);color:var(--gold)}.node-stars svg{flex-shrink:0;color:#6f66b8}.node-stars svg.on{color:var(--gold)}.node-stars svg.on path{fill-opacity:1}.node-tag{padding:2px 9px;border-radius:999px;background:var(--ink);color:#fff;font-size:12px;font-weight:900}@keyframes node-breathe{50%{box-shadow:0 0 0 6px #fff,0 0 0 17px #ffc53d4d,0 10px 0 6px #16123a8c}}@media(hover:hover)and (pointer:fine){.map-node:hover:not(:disabled) .disc{transform:translateY(-2px)}}.map-guide{position:absolute;right:1%;bottom:3%;width:26%;pointer-events:none;filter:drop-shadow(0 6px 10px rgba(22,18,58,.35))}.map-sheet{position:relative;margin-top:-22px;padding:var(--s4) var(--s4) var(--s4);border-radius:var(--r4) var(--r4) 0 0;border-top:2px solid var(--ink);background:var(--bg);display:flex;flex-direction:column;gap:var(--s3)}.map-sheet-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s3)}.map-sheet-head h2{margin:2px 0 0;font-family:var(--font-display);font-size:24px;font-weight:800;line-height:1.1;letter-spacing:0;text-transform:none;color:var(--text)}.map-sheet-stats{display:flex;align-items:center;gap:var(--s3);font-weight:900;font-size:15px;white-space:nowrap}.map-sheet-stats span{display:inline-flex;align-items:center;gap:4px}.map-sheet-stats span svg{color:var(--gold-2)}.map-sheet-stats b{font-family:var(--font-display);font-size:18px}.map-sheet-stats b small{font-size:15px;color:var(--muted)}.map-bar{height:12px;border:2px solid var(--ink);border-radius:999px;background:var(--track);overflow:hidden}.map-bar i{display:block;height:100%;background:var(--good);transform-origin:left;transition:transform .5s var(--ease-out)}.map-play{display:flex;align-items:center;gap:var(--s3);width:100%;min-height:64px;padding:8px 8px 8px 16px;border:2px solid var(--ink);border-radius:var(--r3);background:var(--surface);box-shadow:0 5px 0 var(--ink);color:var(--text);font:inherit;text-align:left;transition:transform .12s var(--ease-out)}.map-play:active{transform:translateY(3px);box-shadow:0 2px 0 var(--ink)}.map-play-copy{flex:1;min-width:0;display:flex;flex-direction:column}.map-play-copy small{font-size:12px;font-weight:800;color:var(--accent);text-transform:uppercase;letter-spacing:.05em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-play-copy b{font-size:17px;font-weight:900;line-height:1.2}.map-play-go{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;min-height:46px;padding:0 16px 0 10px;border:2px solid var(--ink);border-radius:var(--r2);background:var(--gold);font-family:var(--font-display);font-size:15px;font-weight:800}.map-worlds{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s2)}.map-world{position:relative;height:56px;padding:0;border:2px solid var(--line-2);border-radius:14px;overflow:hidden;background:var(--ink)}.map-world img{width:100%;height:100%;object-fit:cover;display:block}.map-world span{position:absolute;left:4px;bottom:4px;padding:1px 6px;border-radius:999px;background:#16123ad1;color:#fff;font-size:12px;font-weight:900}.map-world.on{border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink)}.map-world.on span{background:var(--gold);color:var(--ink)}.map-all{align-self:center;display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0 var(--s3);border:0;background:none;color:var(--accent);font:inherit;font-weight:800;font-size:14px}@media(min-width:600px){.world-map{max-width:440px;margin:var(--s4) auto var(--s5);border:2px solid var(--ink);border-radius:var(--r4);overflow:hidden;box-shadow:0 6px 0 var(--ink)}.map-sheet{border-radius:var(--r4) var(--r4) 0 0}}@media(min-width:900px){.world-map{max-width:none;margin-left:0;margin-right:0}.map-stage.wide .map-guide{width:13%}.map-stage.wide .map-hud{right:auto;width:min(460px,50%)}}@media(prefers-reduced-motion:reduce){.map-node.current .disc{animation:none}}.play{background:var(--ink);color:var(--on-night);box-shadow:0 0 0 100vmax var(--ink);clip-path:inset(0 -100vmax)}.play .play-top .quit,.play .sound-toggle{border:0;background:var(--night-2);color:#fff;border-radius:14px}.play .sound-toggle[aria-pressed=false]{color:var(--on-night-dim)}.play .counter{color:var(--on-night-dim);font-size:14px}.play .combo{color:var(--ink);background:var(--flame);padding:3px 9px;border-radius:999px}.play .pill.gold{border-color:transparent}.play .progress{background:var(--night-2);height:10px}.play .progress>i{background:var(--gold)}.progress-cells{flex:1;min-width:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px}.progress-cells i{height:10px;border-radius:999px;background:var(--night-2);transition:background .2s}.progress-cells i.ok{background:var(--good)}.progress-cells i.no{background:var(--bad)}.progress-cells i.now{background:var(--gold);box-shadow:0 0 0 3px #ffc53d4d}.play .q-label{color:var(--on-night-dim)}.play .q-text{font-family:var(--font-display);font-size:clamp(22px,6vw,30px);font-weight:700;line-height:1.3;color:#fff}.play .q-unit,.play .answer-slot .label{color:var(--on-night-dim)}.play .answer-box{min-height:72px;background:#fff;color:var(--ink);border:3px solid var(--gold);border-radius:var(--r3);box-shadow:0 0 0 6px #ffc53d33;font-size:36px;font-weight:800}.play .answer-box.idle{border-color:var(--night-2);box-shadow:none;opacity:.75}.play .answer-box.ok{border-color:var(--good);color:var(--good-2);box-shadow:0 0 0 6px #3ddc9740}.play .answer-box.no{border-color:var(--bad);color:var(--bad-2);box-shadow:0 0 0 6px #ff5c7a40}.play .feedback.ok{color:var(--good)}.play .feedback.no{color:#ff8da2}.play .hintline .text,.play .hintline>small{color:var(--on-night-dim)}.play .hintline .first-guide{background:var(--night-2);border:2px solid var(--gold);color:#fff}.play .hintline .first-guide b,.play .hintline .first-guide small{color:var(--gold)}.play .hintline .btn.sm.ghost{background:var(--night-2);color:#fff;border-color:transparent;box-shadow:0 2px 0 var(--night-3)}.play .visual,.play .colwork,.play .longdiv,.play .orderwork{background:var(--surface);color:var(--text);border-radius:var(--r2);padding:var(--s3)}.play .pad{background:var(--night-3);border-radius:var(--r4) var(--r4) 0 0}.play .keypad{gap:10px}.play .keypad button{min-height:60px;background:var(--night-2);color:#fff;border:0;border-radius:18px;box-shadow:0 5px 0 var(--night);font-size:26px;font-weight:800}.play .keypad button:active{transform:translateY(4px);box-shadow:0 1px 0 var(--night)}.play .keypad button.del{background:var(--night);color:var(--on-night-dim);box-shadow:0 5px #1a1548}.play .keypad button.go{background:var(--gold);color:var(--ink);box-shadow:0 5px #b57b00;font-size:22px}.play .choices button{background:var(--night-2);color:#fff;border:3px solid transparent;border-radius:18px;box-shadow:0 5px 0 var(--night)}.play .choices button:active{transform:translateY(4px);box-shadow:0 1px 0 var(--night)}.play .choices button.ok{background:var(--good);color:var(--ink);border-color:#fff}.play .choices button.no{background:var(--bad);color:var(--ink);border-color:#fff}.play .shapepick button{border-radius:18px;box-shadow:0 5px 0 var(--night);border-color:transparent}.play .shapepick button.ok{border-color:var(--good)}@media(max-height:740px){.play .keypad button{min-height:50px}.play .answer-box{min-height:60px;font-size:30px}}.result-page{min-height:100dvh;background:var(--ink);color:var(--on-night);box-shadow:0 0 0 100vmax var(--ink);clip-path:inset(0 -100vmax);padding-bottom:calc(var(--s5) + env(safe-area-inset-bottom))}.result-page .result{display:flex;flex-direction:column;gap:var(--s4);padding-top:var(--s5)}.result-page h1{font-size:30px;font-weight:800;color:#fff}.result-page .sub{margin-top:calc(-1 * var(--s3));color:var(--on-night-dim);font-size:16px;font-weight:700}.result-page .big{color:var(--gold)}.result-page .error{color:#ff8da2}.result-stars{display:flex;justify-content:center;align-items:flex-end;gap:4px;height:118px}.result-stars svg{width:84px;height:84px;fill:var(--night-2);stroke:#5a4fa6;stroke-width:1.4;stroke-linejoin:round}.result-stars svg.mid{width:112px;height:112px;margin-bottom:18px}.result-stars svg.on{fill:var(--gold);stroke:var(--night-3);animation:star-drop .42s var(--ease-out) var(--d) both}@keyframes star-drop{0%{transform:scale(.3) rotate(-30deg);opacity:0}70%{transform:scale(1.12) rotate(6deg);opacity:1}to{transform:none}}.result-tiles{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:10px}.result-tiles>div{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 6px;border-radius:var(--r3);background:var(--night);color:var(--ice);animation:card-rise .26s var(--ease-out) both}.result-tiles>div.xp{color:var(--good);animation-delay:60ms}.result-tiles>div.time{color:var(--flame);animation-delay:.12s}.result-tiles b{font-family:var(--font-display);font-size:22px;font-weight:800;color:#fff}.result-tiles small{font-size:13px;font-weight:700;color:var(--on-night-dim)}.result-note{margin:0;font-size:13px;font-weight:700;color:var(--on-night-dim)}.result-page .card,.result-page .world-result{text-align:left;border:2px solid var(--night-3);box-shadow:none;color:var(--text)}.result-page .world-result{background:var(--surface)}.result-page .card h3{font-size:17px;font-weight:900}.result-page .review-row .q{font-family:var(--font-display);font-size:16px;font-weight:700}.result-page .review-row .was{color:var(--bad-2);font-family:var(--font-display);font-size:15px}.result-page .review-row .right{padding:2px 10px;border-radius:10px;background:#d6f7e7;color:var(--good-2);font-family:var(--font-display);font-size:16px}.result-page .review-explanation{font-family:var(--font-body);font-weight:700;color:var(--muted)}.result-actions{display:flex;flex-direction:column;gap:var(--s3);margin-top:var(--s2)}.result-actions .btn.lg{min-height:60px;font-family:var(--font-display);font-size:18px;box-shadow:0 5px #b57b00;border-color:var(--night-3)}.result-secondary{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:var(--s3)}.result-page .result-share{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:transparent;color:var(--good);border:2px solid var(--good)}.result-page .result-secondary .btn.ghost{background:var(--night);color:#fff;border-color:transparent;box-shadow:0 3px 0 var(--night-3)}@media(prefers-reduced-motion:reduce){.result-stars svg.on,.result-tiles>div{animation:none}}.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:var(--s2);margin-top:var(--s4);padding:0 var(--s2)}.podium-col{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}.podium-crown{color:var(--gold-2)}.podium-av{display:grid;place-items:center;border:3px solid var(--ink);border-radius:50%;background:var(--surface);overflow:hidden}.podium-name{max-width:100%;font-size:14px;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.podium-step{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:2px solid var(--ink);border-bottom:0;border-radius:18px 18px 0 0;background:var(--surface-3)}.podium-step strong{font-family:var(--font-display);font-size:24px;font-weight:800;line-height:1}.podium-step small{display:inline-flex;align-items:center;gap:3px;font-size:13px;font-weight:800;color:var(--muted)}.podium-col.p1 .podium-step{height:118px;background:var(--accent);color:#fff}.podium-col.p1 .podium-step strong{font-size:30px}.podium-col.p1 .podium-step small{color:#ede8ff}.podium-col.p2 .podium-step{height:86px}.podium-col.p3 .podium-step{height:66px;background:#ffd9c7}.podium-col.me .podium-name{color:var(--accent)}.podium+.card.lb{border-top-left-radius:var(--r2);border-top-right-radius:var(--r2)}.lb-row .pos{font-family:var(--font-display);font-size:15px;color:var(--muted)}.lb-row .val{font-family:var(--font-display);font-size:15px}.lb-row.me{background:#fff3cf}.lb-me{position:sticky;bottom:calc(78px + env(safe-area-inset-bottom));z-index:5;background:var(--ink);color:#fff;border:0;border-radius:var(--r3);box-shadow:0 5px 0 var(--accent)}.lb-me .pos{font-family:var(--font-display);font-size:18px;color:var(--gold);width:auto;flex:0 0 auto}.lb-me .nm b{color:#fff}.lb-me .nm small{color:var(--on-night-dim)}.lb-me .val{font-family:var(--font-display);color:#fff}.tile,.row-btn,.level-card,.reward,.guide-card,.topic-lesson,.column-card,.trophy-card.won,.wardrobe-heroes>button,.wardrobe-item,.avatar-tile{background:var(--surface);border:2px solid var(--ink);border-radius:var(--r3);box-shadow:0 4px 0 var(--ink);transition:transform .12s var(--ease-out),box-shadow .12s var(--ease-out)}.tile:active,.row-btn:active:not(:disabled),.level-card:active:not(:disabled),.reward:active,.guide-card:active,.topic-lesson:active,.column-card:active,.trophy-card.won:active,.wardrobe-heroes>button:active,.wardrobe-item:active,.avatar-tile:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}@media(hover:hover)and (pointer:fine){.tile:hover,.row-btn:hover:not(:disabled),.level-card:hover:not(:disabled),.reward:hover,.guide-card:hover,.topic-lesson:hover,.column-card:hover,.trophy-card.won:hover,.wardrobe-heroes>button:hover,.wardrobe-item:hover,.avatar-tile:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--ink);border-color:var(--ink)}}.guide-card{border-left-width:2px}.guide-hero{border:2px solid var(--ink);border-top-width:2px;box-shadow:0 4px 0 var(--ink);border-radius:var(--r3)}.stat,.ach,.duelscore .side{background:var(--surface);border:2px solid var(--ink);border-radius:var(--r2);box-shadow:0 3px 0 var(--ink)}.stat b,.stat .v,.stat>:first-child{font-family:var(--font-display)}.ach .e{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;border-radius:12px;background:var(--gold);color:var(--ink);border:2px solid var(--ink)}.ach.locked{opacity:1;background:var(--surface-2);border:2px dashed var(--line-2);box-shadow:none;color:var(--muted)}.ach.locked .e{background:transparent;border-color:var(--line-2);color:var(--dim)}.empty,.trick-card,.trophy-card{background:var(--surface-2);border:2px dashed var(--line-2);box-shadow:none}.trick-card{border-radius:var(--r2)}.wardrobe-heroes>button[aria-pressed=true],.wardrobe-heroes>button.on,.wardrobe-item[aria-pressed=true],.wardrobe-item.on,.avatar-tile[aria-pressed=true]{background:#fff3cf;border-color:var(--ink);box-shadow:0 0 0 3px var(--gold),0 4px 0 var(--ink)}.wardrobe-tabs button{border:2px solid var(--ink);font-weight:800}.wardrobe-tabs button[aria-pressed=true],.wardrobe-tabs button.on,.wardrobe-tabs button[aria-selected=true]{background:var(--ink);color:var(--gold)}.bar{height:12px;border:2px solid var(--ink);box-sizing:content-box;background:var(--track)}.bar>i{border-radius:0;background:var(--c, var(--good))}.rankbar{height:12px;border:2px solid var(--ink);border-radius:999px;background:var(--track);overflow:hidden}.rankbar>i{display:block;height:100%;background:var(--gold);transform-origin:left}.section-title h2{font-family:var(--font-display);font-size:20px;font-weight:800;letter-spacing:0;text-transform:none;color:var(--text)}.mission-streak,.trophy-total{border:2px solid var(--ink);background:var(--flame);color:var(--ink);font-weight:900}.trophy-total{background:var(--gold)}.daily-mission{background:var(--surface);color:var(--text);border-color:var(--ink)}.reward .big{display:grid;place-items:center;flex-shrink:0;width:52px;height:52px;border-radius:16px;border:2px solid var(--ink);background:var(--gold);color:var(--ink)}.mission-action{color:var(--accent);font-weight:900}.tile-visual{background:color-mix(in srgb,var(--c) 30%,var(--surface))}.tile-art{border-bottom:2px solid var(--ink)}.tile-count{background:var(--ink)!important;border:0!important;font-size:12px}.tile .name{font-weight:900}.trophy-card.won{background:var(--surface);color:var(--text)}.trophy-emblem{border:2px solid var(--ink);background:var(--surface);box-shadow:none}.trophy-card.won .trophy-emblem{background:var(--gold);color:var(--ink)}.level-number{width:48px;height:48px;flex-basis:48px;border-radius:50%;border:3px solid var(--ink);background:var(--surface);color:var(--ink)}.level-card.done .level-number{background:var(--good)}.level-card.active{background:#fff3cf;box-shadow:0 0 0 3px var(--gold),0 4px 0 var(--ink)}.level-card.active .level-number{background:var(--gold)}.level-card:disabled{background:var(--surface-2);border-style:dashed;border-color:var(--line-2);box-shadow:none}.level-card:disabled .level-number{background:var(--ink);color:#fff;border-color:var(--ink)}.level-card.boss .level-number{background:var(--bad);color:var(--gold)}.level-card .stars,.level-card .level-go{color:var(--gold-2)}.level-copy small{color:var(--accent)}.level-card.done .level-copy small{color:var(--good-2)}.topic-banner{border:2px solid var(--ink);box-shadow:0 5px 0 var(--ink)}.topic-progress .bar{flex:1}.feed:before{background:var(--ink);width:2px}.feed-item .marker{border:2px solid var(--ink);background:var(--gold);color:var(--ink);box-shadow:none}.feed-day,.feed h3{font-family:var(--font-display)}.days i{border-radius:4px;background:var(--track)}.wallet-line{display:flex;align-items:center;gap:var(--s3);margin:var(--s3) 0;color:var(--muted);font-size:14px;font-weight:700}.wallet-line .pill{flex-shrink:0;font-size:15px}.profile-card .ava{border-radius:24px}.avatar-preview{background:var(--surface)}.btn:disabled{opacity:1;background:var(--surface-2);color:var(--muted);border-color:var(--line-2);box-shadow:none}.auth .logo,.auth-logo{background:var(--ink)!important;color:var(--gold)!important;border-radius:24px}.toast{background:var(--ink);color:#fff;border:2px solid var(--gold);box-shadow:0 5px 0 var(--night-3);font-weight:800}.level-card:after{display:none}.level-card.done{border-color:var(--ink)}.level-card:disabled{opacity:1}.level-card.boss{background:var(--ink);border-color:var(--ink);box-shadow:0 4px 0 var(--accent)}.level-card.boss .level-number{background:var(--bad);color:var(--gold);border-color:#fff;box-shadow:none}.level-card.boss.done .level-number{background:var(--gold);color:var(--ink)}.level-card.boss .level-copy small{color:var(--gold)}.level-card.boss:disabled{background:var(--night);border:2px dashed rgba(255,255,255,.35)}.level-card.boss:disabled .level-number{background:var(--night-2);color:#fff}.mission-grid .reward:before{display:none}.mission-grid .reward .big,.reward .big{width:52px;height:52px;border-radius:16px;border:2px solid var(--ink);background:var(--gold);color:var(--ink)}.reward.goal .big{background:var(--good)}.reward.chest .big{background:var(--flame)}.goalbar{height:12px;border:2px solid var(--ink);background:var(--track);box-sizing:content-box}.goalbar>i{background:var(--good)!important}.lesson-page,.tutorial-page{min-height:100dvh;background:var(--ink);box-shadow:0 0 0 100vmax var(--ink);clip-path:inset(0 -100vmax);padding-bottom:calc(var(--s5) + env(safe-area-inset-bottom))}.lesson-page .lesson-card,.tutorial-page .tutorial-card{border:0;border-radius:var(--r4);box-shadow:0 6px 0 var(--night-3)}.lesson-card h1,.tutorial-card h1{font-size:26px}.lesson-example{background:#fff3cf;border:2px solid var(--ink);font-size:18px}.lesson-tabs .btn.sm:not(.ghost){background:var(--ink);color:var(--gold)}.btn.sm[aria-pressed=true]:not(.ghost){background:var(--ink);color:var(--gold);border-color:var(--ink);box-shadow:0 2px 0 var(--ink)}.btn.sm.ghost[aria-pressed=true]{background:var(--surface)}.boss-arena{background:var(--night);border:2px solid var(--gold);box-shadow:0 5px 0 var(--night-3)}.boss-health{background:var(--night-3);border:2px solid rgba(255,255,255,.2)}.boss-health>i{background:var(--bad)}.boss-result{background:var(--night);border:2px solid var(--gold);color:#fff}.boss-result.won{background:var(--night);border-color:var(--good)}.reward.prize{background:var(--surface);border-color:var(--ink)}.reward.goal.ready{background:#e3f8ee;border-color:var(--ink)}.reward.duel-ticket{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 5px 0 var(--accent)}.reward.duel-ticket .muted{color:var(--on-night-dim)}.reward.duel-ticket .duelcode{color:var(--gold);font-size:40px;font-weight:800;padding:6px 0;border-top:2px dashed rgba(255,255,255,.25);border-bottom:2px dashed rgba(255,255,255,.25)}.reward.duel-ticket .btn.ghost{background:transparent;color:#fff;border-color:#ffffff80;box-shadow:none}.reward.duel-ticket .btn:not(.ghost){background:var(--gold);color:var(--ink);border-color:var(--gold);box-shadow:0 4px #b57b00}.duelcode{color:var(--ink)}.codeinput{border:2px solid var(--ink);background:var(--surface);font-family:var(--font-display)}.quiz-opt{background:var(--surface);border:2px solid var(--ink);border-radius:var(--r2);box-shadow:0 3px 0 var(--ink);font-weight:800;transition:transform .12s var(--ease-out)}.quiz-opt:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}.quiz-opt.right{background:var(--good);border-color:var(--ink);color:var(--ink)}.quiz-opt.wrong{background:#ffd6de;border-color:var(--ink);color:var(--bad-2)}.quiz-opt.dim{opacity:.55;box-shadow:none}.guide-practice{background:var(--ink);color:#fff;border:0;border-radius:var(--r3);box-shadow:0 5px 0 var(--accent)}.guide-practice small{color:var(--on-night-dim)}.guide-practice .btn{background:var(--gold);color:var(--ink);border-color:var(--gold);box-shadow:0 4px #b57b00}.guide-badge{border:2px solid var(--ink);background:var(--gold);color:var(--ink)}.duel-arena{background:var(--night);border:2px solid rgba(255,255,255,.12);box-shadow:0 5px 0 var(--night-3)}.heat .m0,.legend .m0{background:var(--surface-2);color:var(--dim)}.heat .m1,.legend .m1{background:#ffd6de;color:var(--bad-2)}.heat .m2,.legend .m2{background:#ffe9a8;color:var(--gold-2)}.heat .m3{background:#c9f3de;color:var(--good-2)}.heat .m4,.legend .m4{background:var(--good);color:var(--ink)}.boss-controls{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.boss-chip{display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:4px 11px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:#10092473;color:#fff;font:inherit;font-size:12px;font-weight:800}.boss-chip[aria-expanded=true]{border-color:var(--gold);color:var(--gold)}.boss-chip[aria-pressed=false]{color:var(--on-night-dim)}.boss-rules{width:min(440px,100%);margin-top:8px;padding:10px 14px 12px;text-align:left;color:#fff;background:var(--night-2);border:2px solid var(--gold);border-radius:var(--r3)}.boss-rules ul{margin:0 0 10px;padding-left:18px;font-size:14px;line-height:1.45}.boss-rules li{margin:3px 0}
