:root{font-family:Microsoft YaHei,PingFang SC,system-ui,-apple-system,sans-serif;color:#25204a;background:#f7f4ff;font-synthesis:none;text-rendering:optimizeLegibility;--primary: #5b47d6;--primary-dark: #3d2aa5;--accent: #ffb928;--accent-soft: #fff3c9;--teal: #11a89b;--green: #4fab64;--coral: #f3776f;--ink: #25204a;--muted: #6e698b;--surface: #ffffff;--surface-soft: #f1edff;--line: #ded8f6;--shadow: 0 18px 50px rgb(58 43 119 / 14%)}:root[data-theme=ocean]{--primary: #1674c7;--primary-dark: #0b4f98;--accent: #ffb928;--surface-soft: #e8f6ff;--line: #cfe9f8}:root[data-theme=sunset]{--primary: #d65755;--primary-dark: #9d363c;--accent: #ffc340;--surface-soft: #fff0e8;--line: #f5d8ca}*{box-sizing:border-box}html{min-width:320px;background:#f7f4ff}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 8% 8%,rgb(124 103 242 / 12%),transparent 24rem),radial-gradient(circle at 95% 30%,rgb(22 190 167 / 10%),transparent 25rem),#f7f4ff}body,button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:4px solid rgb(255 185 40 / 62%);outline-offset:3px}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:100;padding:.7rem 1rem;border-radius:.75rem;background:#fff;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.app-shell{min-height:100vh;display:flex;flex-direction:column}#main-content{flex:1}.page-frame{width:min(1180px,calc(100% - 2rem));margin-inline:auto}.topbar{position:sticky;top:0;z-index:40;min-height:76px;padding:.7rem max(1rem,calc((100% - 1180px)/2));display:flex;align-items:center;gap:1rem;background:#ffffffe0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid rgb(91 71 214 / 12%)}.brand{display:inline-flex;align-items:center;gap:.65rem;min-height:52px}.brand-mark{width:44px;height:44px;display:grid;place-items:center;border-radius:14px 14px 18px;color:#fff;font-size:1.5rem;background:linear-gradient(145deg,var(--accent),#ff8c42);box-shadow:0 8px 18px #ff992d3d;transform:rotate(-4deg)}.brand>span:last-child{display:grid;line-height:1.05}.brand strong{font-size:1.03rem;font-weight:900}.brand small{color:var(--primary);font-weight:800;letter-spacing:.14em}.main-nav{display:flex;align-items:center;gap:.35rem;margin-left:auto}.main-nav a{min-height:48px;padding:.65rem .85rem;display:inline-flex;align-items:center;gap:.45rem;color:var(--muted);border-radius:14px;font-weight:800}.main-nav a:hover,.main-nav a.active{color:var(--primary);background:var(--surface-soft)}.player-chip{min-height:50px;display:flex;align-items:center;gap:.55rem;padding:.35rem .45rem .35rem .7rem;border:1px solid var(--line);border-radius:16px;background:#fff}.player-chip>span:first-child{font-size:1.65rem}.player-chip>span:nth-child(2){min-width:74px;display:grid;line-height:1.15}.player-chip small{color:var(--muted);font-size:.72rem;font-weight:700}.energy-pill{min-height:36px;display:inline-flex;align-items:center;gap:.25rem;padding:.35rem .55rem;color:#694b00;background:var(--accent-soft);border-radius:11px;font-weight:900}.quick-settings{display:flex;gap:.3rem}.icon-button{width:48px;height:48px;display:grid;place-items:center;color:var(--muted);background:transparent;border:0;border-radius:14px;cursor:pointer}.icon-button:hover,.icon-button[aria-pressed=true]{color:var(--primary);background:var(--surface-soft)}.site-footer{padding:1.5rem;color:var(--muted);text-align:center;font-size:.82rem;font-weight:700}.eyebrow,.panel-kicker{display:inline-flex;align-items:center;color:var(--primary);font-size:.76rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.primary-button,.secondary-button,.danger-button{min-height:52px;padding:.75rem 1.2rem;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;border-radius:16px;border:0;font-weight:900;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.primary-button{color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-dark));box-shadow:0 10px 24px #432fae3d}.primary-button:hover{transform:translateY(-2px);box-shadow:0 14px 30px #432fae4d}.primary-button:disabled{opacity:.48;cursor:not-allowed;transform:none;box-shadow:none}.secondary-button{color:var(--primary-dark);background:#fff;border:2px solid var(--line)}.secondary-button:hover{color:var(--primary);border-color:var(--primary)}.danger-button{color:#a43b3b;background:#fff0f0;border:2px solid #f1cccc}.primary-button.wide{width:100%}.primary-button.compact{min-height:48px;padding-inline:1rem}.onboarding{min-height:calc(100vh - 130px);padding-block:3rem;display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,.78fr);align-items:center;gap:clamp(2rem,7vw,6rem)}.onboarding-copy h1,.hero-copy h1{margin:.65rem 0 1.2rem;font-size:clamp(2.65rem,6vw,5.2rem);line-height:1.04;letter-spacing:-.055em;font-weight:900}.onboarding-copy h1{background:linear-gradient(135deg,var(--ink),var(--primary));-webkit-background-clip:text;background-clip:text;color:transparent}.onboarding-copy>p,.hero-copy>p{max-width:650px;color:var(--muted);font-size:clamp(1.02rem,1.8vw,1.2rem);line-height:1.9;font-weight:600}.trust-row{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.8rem}.trust-row span{min-height:44px;padding:.55rem .8rem;display:inline-flex;align-items:center;gap:.4rem;color:#3f4660;background:#ffffffb8;border:1px solid var(--line);border-radius:13px;font-weight:800}.profile-card{padding:clamp(1.3rem,3vw,2rem);background:#fffffff0;border:1px solid rgb(255 255 255 / 80%);border-radius:28px;box-shadow:var(--shadow)}.mascot-stage{height:118px;margin-top:-70px;display:flex;align-items:center;justify-content:center;gap:.35rem}.mascot-stage img{width:116px;height:116px;object-fit:contain;filter:drop-shadow(0 12px 13px rgb(54 46 91 / 20%));animation:mascot-float 3s ease-in-out infinite}.speech-bubble{padding:.55rem .75rem;color:#4c3b1c;background:var(--accent-soft);border-radius:15px 15px 15px 4px;font-size:.82rem;font-weight:900}.field-label,legend{display:block;margin-bottom:.55rem;color:var(--ink);font-weight:900}.profile-card>input{width:100%;min-height:54px;padding:.7rem 1rem;color:var(--ink);background:#faf9ff;border:2px solid var(--line);border-radius:15px;font-size:1.05rem;font-weight:800}.profile-card>input:focus{border-color:var(--primary)}fieldset{min-width:0;margin:1.25rem 0;padding:0;border:0}.avatar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem}.avatar-option,.theme-option{min-height:72px;padding:.55rem;display:flex;align-items:center;justify-content:center;gap:.35rem;color:var(--muted);background:#faf9ff;border:2px solid transparent;border-radius:15px;cursor:pointer;font-weight:800}.avatar-option{flex-direction:column}.avatar-option>span{font-size:1.9rem}.avatar-option small{font-size:.7rem}.avatar-option input,.theme-option input{position:absolute;opacity:0}.avatar-option.selected,.theme-option.selected{color:var(--primary);background:var(--surface-soft);border-color:var(--primary)}.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem}.theme-option{min-height:50px;font-size:.78rem}.home-hero{min-height:calc(100vh - 132px);position:relative;display:flex;align-items:stretch;overflow:hidden;background:#1e2753}.hero-art{position:absolute;inset:0}.hero-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#151739eb,#1b1e45a8 48%,#141d4024 78%),linear-gradient(0deg,rgb(25 29 65 / 55%),transparent 50%)}.hero-art img{width:100%;height:100%;object-fit:cover}.hero-content{position:relative;z-index:1;padding-block:clamp(3rem,8vw,7rem);display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:4rem}.hero-copy{color:#fff}.hero-copy .eyebrow{color:#ffe584}.hero-copy h1{max-width:780px}.hero-copy>p{color:#ffffffc7}.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}.mission-panel{padding:1.6rem;color:var(--ink);background:#ffffffe5;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid rgb(255 255 255 / 80%);border-radius:24px;box-shadow:0 28px 80px #0d132b61}.mission-panel h2{margin:.35rem 0 1rem;font-size:2rem}.mission-panel>p{color:var(--muted);font-weight:800}.crystal-progress,.mastery-bar{height:12px;overflow:hidden;background:#e9e4f8;border-radius:99px}.crystal-progress>div,.mastery-bar>div{height:100%;background:linear-gradient(90deg,var(--primary),#39c9bb);border-radius:inherit}.mini-stats{margin-top:1.3rem;display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem}.mini-stats span{min-width:0;padding:.7rem .4rem;display:grid;color:var(--muted);text-align:center;background:var(--surface-soft);border-radius:13px;font-size:.68rem;font-weight:800}.mini-stats strong{color:var(--primary-dark);font-size:1.35rem}.map-page{min-height:calc(100vh - 130px)}.map-banner{min-height:290px;position:relative;overflow:hidden;color:#fff;background:#183c48}.map-banner:after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,#142937e0,#1537354d);pointer-events:none}.map-banner-inner{min-height:290px;position:relative;display:flex;align-items:center}.map-banner-inner>div{position:relative;z-index:2;width:56%;padding-block:2rem}.map-banner .eyebrow{color:#ffe682}.map-banner h1{margin:.55rem 0;font-size:clamp(2.4rem,5vw,4.6rem);line-height:1}.map-banner p{max-width:580px;color:#ffffffd1;font-size:1.08rem;font-weight:700}.map-banner img{position:absolute;z-index:0;inset:0 calc((1180px - 100vw)/2);width:100vw;height:100%;object-fit:cover}.world-layout{padding-block:2rem 3rem;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(290px,.7fr);align-items:start;gap:1.5rem}.adventure-path{position:relative;display:grid;gap:1rem}.adventure-path:before{content:"";position:absolute;top:64px;bottom:64px;left:35px;width:4px;background:repeating-linear-gradient(to bottom,var(--line) 0 10px,transparent 10px 18px)}.level-link{display:block}.level-card{min-height:126px;position:relative;padding:1rem 3.5rem 1rem 1rem;display:grid;grid-template-columns:72px 1fr;align-items:center;gap:1rem;overflow:hidden;background:#fff;border:2px solid transparent;border-radius:22px;box-shadow:0 8px 26px #392a7414;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}a.level-link:hover .level-card{transform:translateY(-3px);border-color:var(--primary);box-shadow:var(--shadow)}.level-card.complete{background:linear-gradient(90deg,#f4fff5e5,#fff 55%),#fff;border-color:#c8ead0}.level-card.locked{color:#858198;background:#efedf5;box-shadow:none}.level-number{width:72px;height:72px;position:relative;z-index:1;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,var(--primary),var(--primary-dark));border:6px solid #eeeaff;border-radius:22px;font-size:2rem;box-shadow:0 8px 18px #4230aa33}.level-card.complete .level-number{background:linear-gradient(145deg,#55b76c,#2d8d50);border-color:#e4f6e8}.level-card.locked .level-number{color:#918da6;background:#dcd9e6;border-color:#eceaf1;box-shadow:none}.level-copy h2{margin:.18rem 0;font-size:clamp(1.08rem,2vw,1.28rem)}.level-copy p{margin-bottom:.5rem;color:var(--muted);font-size:.88rem;font-weight:600}.level-step,.level-status{color:var(--primary);font-size:.7rem;font-weight:900;letter-spacing:.08em}.level-card.locked .level-step,.level-card.locked .level-status{color:#858198}.level-arrow{position:absolute;right:1.1rem;color:var(--primary)}.star-row{display:inline-flex;color:#f4aa0e}.journey-panel{position:sticky;top:94px;padding:1.35rem;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 10px 32px #392a7417}.journey-panel h2{margin:.35rem 0 1rem}.future-units{margin:0;padding:0;display:grid;gap:.45rem;list-style:none}.future-units li{min-height:62px;padding:.5rem;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:.55rem;color:#79758c;border-radius:13px}.future-units li>span{font-size:1.4rem;text-align:center}.future-units li div{display:grid;min-width:0}.future-units strong{color:#4d4962;font-size:.84rem}.future-units small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem}.future-units .next-unlocked{color:#936900;background:var(--accent-soft)}.game-page{min-height:calc(100vh - 130px);padding-block:2rem 3rem}.game-card,.body-lab-card,.result-card,.empty-state{width:min(900px,100%);margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow)}.game-card{overflow:hidden}.game-header{min-height:70px;padding:.75rem 1rem;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem}.game-header>div{display:flex;align-items:center;gap:.5rem}.game-header>div span{font-size:1.5rem}.back-link{min-height:48px;display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-weight:800}.question-count{justify-self:end;padding:.4rem .7rem;color:var(--primary);background:var(--surface-soft);border-radius:12px;font-weight:900}.game-progress{height:8px;background:#e7e2f5}.game-progress>div{height:100%;background:linear-gradient(90deg,var(--primary),#2ec3af);transition:width .3s ease}.question-stage{min-height:510px;padding:clamp(1.2rem,4vw,2.4rem)}.question-heading{margin-bottom:1.7rem;display:flex;align-items:center;gap:1rem}.scene-emoji{width:68px;height:68px;flex:0 0 auto;display:grid;place-items:center;background:var(--accent-soft);border-radius:20px;font-size:2.2rem}.question-heading h2{margin:0;font-size:clamp(1.35rem,3vw,2rem);line-height:1.45}.answer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.answer-option{min-height:72px;padding:.8rem 1rem;color:var(--ink);background:#faf9ff;border:2px solid var(--line);border-radius:18px;font-size:1.08rem;font-weight:900;cursor:pointer}.answer-option:hover{color:var(--primary);background:var(--surface-soft);border-color:var(--primary)}.number-answer{display:flex;align-items:center;justify-content:center;gap:.65rem}.number-answer.large{min-height:150px;padding:1.5rem;flex-wrap:wrap;background:#faf9ff;border:2px dashed var(--line);border-radius:20px}.number-answer label{font-weight:900}.number-answer input{width:130px;min-height:58px;padding:.5rem;color:var(--primary-dark);background:#fff;border:3px solid var(--line);border-radius:14px;text-align:center;font-size:1.45rem;font-weight:900}.number-answer>span{font-weight:900}.question-tools{margin-top:1.4rem;display:flex;justify-content:center}.hint-button{min-height:48px;padding:.65rem .9rem;display:inline-flex;align-items:center;gap:.4rem;color:#795800;background:var(--accent-soft);border:0;border-radius:14px;font-weight:900;cursor:pointer}.hint-button:disabled{opacity:.48;cursor:not-allowed}.hint-box,.feedback-box{margin-top:1rem;padding:.95rem 1rem;display:flex;align-items:flex-start;gap:.75rem;border-radius:16px}.hint-box{color:#5b470c;background:#fff8df;border:1px solid #f3dc8d}.feedback-box.correct{color:#256b3a;background:#eaf8ed;border:1px solid #b9e2c3}.feedback-box.wrong{color:#8f4b22;background:#fff1e6;border:1px solid #f3cfb2}.hint-box strong,.feedback-box strong{font-weight:900}.hint-box p,.feedback-box p{margin:.18rem 0 0;line-height:1.55;font-weight:600}.next-row{padding:0 2rem 2rem;display:flex;justify-content:flex-end}.ruler-game{padding:1rem;background:#f9fbff;border:2px dashed #cfdaf2;border-radius:20px}.object-measure-zone{min-height:185px;position:relative;overflow:hidden;background:linear-gradient(#ffffffb8,#ffffffb8),repeating-linear-gradient(90deg,#e7ebf7 0 1px,transparent 1px 5%);border-radius:16px}.measured-object{height:55px;position:absolute;top:27px;display:flex;align-items:center;justify-content:center;gap:.35rem;color:#fff;background:linear-gradient(135deg,#ef7c72,#cc4d6b);border:4px solid #fff;border-radius:16px;box-shadow:0 8px 18px #773a5333;white-space:nowrap}.measured-object span{font-size:1.4rem}.measured-object strong{font-size:.75rem}.ruler{width:80%;height:70px;position:absolute;bottom:18px;left:8%;display:grid;grid-template-columns:repeat(16,1fr);color:#4f3a0e;background:linear-gradient(#f9c648,#ecaa1d);border:4px solid #cc8c12;border-radius:10px;transition:transform .12s ease}.ruler-tick{position:relative;display:flex;justify-content:center}.ruler-tick i{width:2px;height:28px;background:#5d430d}.ruler-tick:nth-child(2n) i{height:18px}.ruler-tick b{position:absolute;bottom:4px;font-size:.66rem}.drag-control{min-height:48px;margin-top:.6rem;display:flex;align-items:center;justify-content:center;gap:.45rem;color:var(--primary);font-weight:900}.ruler-slider{width:100%;min-height:48px;accent-color:var(--primary)}.ruler-game .number-answer{margin-top:.7rem;flex-wrap:wrap}.body-lab-card{padding:clamp(1.2rem,4vw,2.4rem)}.lab-intro h1{margin:.4rem 0;font-size:clamp(2rem,4vw,3rem)}.lab-intro p{color:var(--muted);line-height:1.7;font-weight:650}.safety-note{min-height:48px;padding:.6rem .8rem;display:inline-flex;align-items:center;gap:.45rem;color:#266c49;background:#e9f8ef;border-radius:14px;font-weight:800}.measure-steps{margin:1.5rem 0;display:grid;gap:.8rem}.measure-steps label{min-height:108px;padding:.9rem;display:grid;grid-template-columns:60px minmax(0,1fr) 92px auto;align-items:center;gap:.75rem;background:#faf9ff;border:2px solid var(--line);border-radius:18px}.measure-icon{width:54px;height:54px;display:grid;place-items:center;color:var(--primary);background:var(--surface-soft);border-radius:16px}.measure-steps label>span:nth-child(2){display:grid}.measure-steps small{margin-top:.2rem;color:var(--muted);font-weight:600}.measure-steps input{width:92px;min-height:54px;padding:.5rem;color:var(--primary);background:#fff;border:2px solid var(--line);border-radius:13px;text-align:center;font-size:1.25rem;font-weight:900}.measure-steps b{font-size:.8rem}.result-card,.empty-state{min-height:500px;padding:clamp(1.5rem,5vw,3.5rem);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.result-burst{width:112px;height:112px;margin-bottom:1rem;display:grid;place-items:center;background:radial-gradient(circle,#fff7cb 0 30%,transparent 31%),conic-gradient(from 0deg,transparent,#ffe77d,transparent,#ffe77d,transparent);border-radius:50%;font-size:3.6rem;animation:result-pop .6s ease both}.result-burst.gentle{background:#e8f7ec}.result-card h1{max-width:680px;margin:.45rem 0;font-size:clamp(2rem,5vw,3.5rem);line-height:1.16}.result-card>p{max-width:650px;color:var(--muted);line-height:1.65;font-weight:650}.result-stars{margin:1rem 0;display:flex;gap:.35rem;color:#f2aa0e}.result-stars svg{width:38px;height:38px}.result-actions{margin-top:1rem;display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem}.badge-earned{min-width:280px;margin:.8rem 0;padding:.8rem 1rem;display:flex;align-items:center;justify-content:center;gap:.8rem;background:linear-gradient(135deg,#fff9dd,#fff0bb);border:1px solid #f3d678;border-radius:18px}.badge-earned img{width:84px;height:84px;object-fit:contain}.badge-earned span{display:grid;text-align:left}.badge-earned small{color:#8f6900;font-weight:800}.badge-earned strong{color:#654500;font-size:1.2rem}.body-scale-summary{margin:1rem 0;display:flex;flex-wrap:wrap;justify-content:center;gap:.65rem}.body-scale-summary span{padding:.7rem .9rem;color:var(--primary-dark);background:var(--surface-soft);border-radius:14px;font-weight:900}.empty-state>span{font-size:4rem}.empty-state p{color:var(--muted)}.report-page{padding-block:2.5rem 3rem}.report-header{margin-bottom:1.5rem;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.report-header h1{margin:.45rem 0;font-size:clamp(2rem,4vw,3.4rem)}.report-header p{margin-bottom:0;color:var(--muted);font-weight:650}.rank-medal{min-width:220px;padding:.8rem 1rem;display:flex;align-items:center;gap:.65rem;color:#785600;background:linear-gradient(135deg,#fff5c8,#ffedaf);border-radius:17px}.rank-medal span{display:grid}.rank-medal small{font-weight:700}.rank-medal strong{font-size:1.15rem}.report-stats{margin-bottom:1rem;display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}.report-stats article{min-height:96px;padding:1rem;display:flex;align-items:center;gap:.8rem;background:#fff;border:1px solid var(--line);border-radius:18px}.report-stats svg{width:30px;height:30px;color:var(--primary)}.report-stats span{display:grid;color:var(--muted);font-size:.78rem;font-weight:800}.report-stats strong{color:var(--ink);font-size:1.45rem}.report-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:1rem}.report-card{padding:1.3rem;background:#fff;border:1px solid var(--line);border-radius:20px}.mastery-card{grid-row:span 2}.card-heading{margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.card-heading h2,.report-card h2{margin:.25rem 0}.card-heading>strong{color:var(--primary);font-size:2rem}.mastery-bar{margin-bottom:1rem}.activity-report,.wrong-list{margin:0;padding:0;display:grid;list-style:none}.activity-report li{min-height:74px;padding-block:.65rem;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:.7rem;border-bottom:1px solid #eeeaf7}.activity-report li>span:first-child{font-size:1.5rem}.activity-report li div{display:grid}.activity-report small{color:var(--muted);font-size:.72rem;font-weight:650}.empty-wrong{min-height:170px;display:grid;place-items:center;align-content:center;color:var(--muted);text-align:center}.empty-wrong span{font-size:3rem}.wrong-list{gap:.5rem}.wrong-list li{padding:.6rem;display:grid;grid-template-columns:36px 1fr;gap:.55rem;background:#fff8ef;border-radius:13px}.wrong-list div{display:grid}.wrong-list strong{font-size:.78rem}.wrong-list small{color:#8a6648;font-size:.68rem}.owned-badge{min-height:125px;display:flex;align-items:center;gap:1rem}.owned-badge img{width:105px;height:105px;object-fit:contain}.owned-badge span{display:grid}.owned-badge strong{font-size:1.1rem}.owned-badge small{color:var(--muted)}.locked-badge{min-height:120px;display:flex;align-items:center;gap:.8rem;color:var(--muted)}.locked-badge span{width:72px;height:72px;display:grid;place-items:center;background:#edeaf3;border-radius:50%;font-size:2rem;font-weight:900}.reset-card p{color:var(--muted);line-height:1.55;font-size:.85rem}@keyframes mascot-float{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-7px) rotate(2deg)}}@keyframes result-pop{0%{opacity:0;transform:scale(.65) rotate(-8deg)}to{opacity:1;transform:scale(1) rotate(0)}}:root[data-reduced-motion=true] *,:root[data-reduced-motion=true] *:before,:root[data-reduced-motion=true] *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.world-map-page{padding-bottom:5rem}.world-map-hero{padding:4.5rem 0 3.5rem;color:#fff;background:linear-gradient(110deg,#251c70eb,#237da0c7),url(/art/world-map.webp) center 46% / cover}.world-map-hero .page-frame{display:flex;align-items:center;justify-content:space-between;gap:2rem}.world-map-hero h1{max-width:760px;margin-bottom:1rem;font-size:clamp(2.3rem,6vw,4.5rem);line-height:1.04}.world-map-hero p{max-width:680px;color:#ffffffdb;font-size:1.13rem;line-height:1.8}.map-overview-stat{min-width:190px;padding:1.5rem;display:grid;justify-items:center;gap:.25rem;border:1px solid rgb(255 255 255 / 28%);border-radius:28px;background:#ffffff24;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.map-overview-stat svg{color:var(--accent)}.map-overview-stat strong{font-size:2.25rem}.kingdom-path{position:relative;margin-top:2.25rem;display:grid;gap:1.15rem}.kingdom-path:before{content:"";position:absolute;top:3rem;bottom:3rem;left:106px;width:5px;border-radius:999px;background:linear-gradient(var(--primary),var(--teal),var(--accent));opacity:.22}.unit-node-link{position:relative;display:block}.unit-node{min-height:190px;display:grid;grid-template-columns:210px 1fr auto;align-items:center;overflow:hidden;border:1px solid var(--line);border-radius:28px;background:#fff;box-shadow:0 12px 30px #3a2b7717;transition:transform .18s ease,box-shadow .18s ease}a.unit-node-link:hover .unit-node{transform:translateY(-3px);box-shadow:var(--shadow)}.unit-node.complete{border-color:#4fab6485;background:linear-gradient(100deg,#fff,#f2fff4)}.unit-node.locked{filter:grayscale(.7);opacity:.62}.unit-node-art{position:relative;align-self:stretch;min-height:190px;overflow:hidden}.unit-node-art img{width:100%;height:100%;object-fit:cover}.unit-order{position:absolute;top:1rem;left:1rem;width:46px;height:46px;display:grid;place-items:center;color:#fff;border:3px solid rgb(255 255 255 / 86%);border-radius:50%;background:var(--primary);box-shadow:0 7px 18px #2118583d;font-weight:900}.unit-node.complete .unit-order{background:var(--green)}.unit-node-copy{padding:1.4rem 1.7rem}.unit-node-copy h2{margin:.25rem 0 .45rem;display:flex;align-items:center;gap:.6rem;font-size:clamp(1.25rem,3vw,1.65rem)}.unit-node-copy p{margin-bottom:1rem;color:var(--muted)}.unit-progress-line{display:flex;align-items:center;gap:1rem;color:var(--muted);font-size:.86rem;font-weight:800}.unit-progress-line>div{width:min(280px,46vw);height:9px;overflow:hidden;border-radius:99px;background:var(--surface-soft)}.unit-progress-line i{height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--teal))}.unit-node-status{min-width:155px;padding:1.5rem;color:var(--primary)}.unit-node-status>span{display:inline-flex;align-items:center;gap:.45rem;color:var(--muted);font-size:.82rem;font-weight:800}.unit-node-status .complete-label{color:var(--green)}.unit-page{padding-bottom:5rem}.unit-banner{position:relative;min-height:370px;overflow:hidden;color:#fff}.unit-banner>img,.unit-banner-shade{position:absolute;inset:0;width:100%;height:100%}.unit-banner>img{object-fit:cover}.unit-banner-shade{background:linear-gradient(90deg,#1b145be8,#1b145b2e)}.unit-banner .page-frame{position:relative;z-index:1;min-height:370px;padding-block:2rem;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.back-link.light{margin-bottom:auto;color:#fff;background:#ffffff24}.unit-banner h1{margin:.5rem 0;display:flex;align-items:center;gap:.7rem;font-size:clamp(2rem,6vw,4rem)}.unit-banner p{color:#ffffffd1;font-size:1.15rem}.unit-complete-pill{min-height:42px;padding:.55rem .85rem;display:inline-flex;align-items:center;gap:.45rem;border-radius:99px;background:#4fab64eb;font-weight:900}.unit-activity-list{max-width:900px;margin-top:2.25rem}.lesson-card{max-width:800px;margin:2.5rem auto;padding:clamp(1.35rem,4vw,2.6rem);text-align:center;border:1px solid var(--line);border-radius:32px;background:#fff;box-shadow:var(--shadow)}.lesson-card .back-link{margin-right:auto}.lesson-icon{width:90px;height:90px;margin:.8rem auto;display:grid;place-items:center;border-radius:28px;background:var(--surface-soft);font-size:3rem}.lesson-card h1{margin:.45rem 0 .7rem;font-size:clamp(2rem,6vw,3rem)}.lesson-intro-copy{max-width:620px;margin-inline:auto;color:var(--muted);font-size:1.06rem;line-height:1.8}.lesson-cards{margin:1.5rem 0;display:grid;grid-template-columns:repeat(2,1fr);gap:.85rem;text-align:left}.lesson-cards article{min-height:132px;padding:1rem;display:flex;gap:.85rem;border:1px solid var(--line);border-radius:20px;background:var(--surface-soft)}.lesson-cards article>span{font-size:2rem}.lesson-cards strong{display:block;margin-bottom:.35rem}.lesson-cards p{margin:0;color:var(--muted);line-height:1.65}.keyboard-note,.model-caption{color:var(--muted);font-size:.9rem;font-weight:700}.clock-game,.group-game,.sort-game,.place-value-game,.column-game{display:grid;justify-items:center;gap:1rem}.clock-face{position:relative;width:clamp(190px,42vw,260px);aspect-ratio:1;border:12px solid var(--primary);border-radius:50%;background:repeating-conic-gradient(from -1deg,var(--ink) 0 1deg,transparent 1deg 30deg),#fff;box-shadow:inset 0 0 0 12px #fff,0 12px 24px #31237b24}.clock-number{position:absolute;z-index:2;font-weight:900}.clock-number.n12{top:12px;left:50%;transform:translate(-50%)}.clock-number.n3{top:50%;right:16px;transform:translateY(-50%)}.clock-number.n6{bottom:12px;left:50%;transform:translate(-50%)}.clock-number.n9{top:50%;left:16px;transform:translateY(-50%)}.clock-hand{position:absolute;bottom:50%;left:calc(50% - 3px);z-index:3;width:6px;border-radius:99px;background:var(--ink);transform-origin:50% 100%}.clock-hand.hour{height:28%}.clock-hand.minute{height:39%;background:var(--coral)}.clock-pin{position:absolute;top:calc(50% - 8px);left:calc(50% - 8px);z-index:4;width:16px;height:16px;border:4px solid #fff;border-radius:50%;background:var(--primary)}.target-time,.dial-reading{min-height:42px;padding:.55rem .9rem;display:inline-flex;align-items:center;gap:.45rem;color:var(--primary-dark);border-radius:99px;background:var(--surface-soft);font-weight:900}.dial-reading{font-size:1.35rem}.clock-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem}.clock-controls button,.sort-items button{min-height:48px;padding:.65rem .85rem;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;color:var(--primary-dark);border:2px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;font-weight:850}.clock-pair{display:flex;align-items:center;gap:1.25rem}.clock-pair>div{display:grid;justify-items:center;gap:.6rem}.clock-pair .clock-face{width:clamp(145px,30vw,210px);border-width:9px}.clock-pair>span{color:var(--primary);font-size:2rem;font-weight:900}.equal-groups{display:flex;flex-wrap:wrap;justify-content:center;gap:.65rem}.equal-group{min-width:84px;min-height:70px;padding:.7rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.25rem;border:3px dashed var(--teal);border-radius:18px;background:#effffb;font-size:1.45rem}.loose-items{max-width:580px;padding:1rem;display:flex;flex-wrap:wrap;justify-content:center;gap:.3rem;border-radius:20px;background:var(--surface-soft);font-size:1.4rem}.sort-items{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.sort-items article{padding:1rem;display:grid;justify-items:center;gap:.55rem;border:1px solid var(--line);border-radius:20px;background:#fff}.sort-items article>span{font-size:2.5rem}.sort-items article>div{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem}.sort-items button.selected{color:#fff;border-color:var(--primary);background:var(--primary)}.place-board{width:min(620px,100%);display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden;border:3px solid var(--primary);border-radius:22px}.place-board>div{min-height:150px;padding:.7rem;display:grid;place-items:center;border-right:2px solid var(--line);background:#fff}.place-board>div:last-child{border-right:0}.place-board span{color:var(--muted);font-weight:800}.place-board strong{font-size:clamp(2.4rem,8vw,4.2rem)}.place-board small{min-height:2.6rem;color:var(--teal);overflow-wrap:anywhere;text-align:center}.column-layout{width:190px;padding:1rem 1.5rem;border-radius:22px;background:#fffdf4;box-shadow:inset 0 0 0 2px #f4dda2;font-family:ui-monospace,Cascadia Mono,monospace;font-size:2rem}.column-layout>div{display:grid;grid-template-columns:28px 1fr;text-align:right}.column-layout hr{height:4px;margin:.35rem 0;border:0;border-radius:99px;background:var(--ink)}.column-placeholder{display:block!important;color:var(--primary);text-align:right!important}.geometry-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem}.geometry-options button{min-height:150px;padding:1rem;display:grid;place-items:center;gap:.65rem;color:var(--ink);border:2px solid var(--line);border-radius:20px;background:#fff;cursor:pointer}.shape-token{width:72px;height:72px;display:block;background:linear-gradient(145deg,#70d7c7,var(--primary));box-shadow:8px 8px #3d2aa529}.shape-token.square{border-radius:6px}.shape-token.rectangle,.shape-token.parallelogram{width:96px;height:58px;border-radius:6px}.shape-token.parallelogram{transform:skew(-18deg)}.shape-token.triangle{width:0;height:0;border-right:43px solid transparent;border-bottom:74px solid var(--primary);border-left:43px solid transparent;background:transparent;box-shadow:none}.shape-token.circle,.shape-token.sphere{border-radius:50%}.shape-token.sphere{background:radial-gradient(circle at 32% 28%,#fff,#73d8c8 20%,var(--primary) 70%)}.shape-token.cube,.shape-token.cuboid{transform:rotate(-7deg) skewY(6deg)}.shape-token.cuboid{width:98px;height:58px}.shape-token.cylinder{width:62px;border-radius:50%/15%;background:linear-gradient(90deg,var(--primary),#a89bff,var(--primary))}.full-width-card{grid-column:1 / -1}.unit-report-list,.badge-grid{margin:1rem 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;list-style:none}.unit-report-list li{padding:.85rem;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;border:1px solid var(--line);border-radius:16px}.unit-report-list li>span{font-size:1.55rem}.unit-report-list small{display:block;margin-top:.2rem;color:var(--muted)}.unit-report-list a{min-height:44px;padding:.55rem;display:inline-flex;align-items:center;color:var(--primary);font-weight:900}.mini-mastery{height:6px;margin-top:.45rem;overflow:hidden;border-radius:99px;background:var(--surface-soft)}.mini-mastery i{height:100%;display:block;background:var(--teal)}.badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-badge,.badge-grid .locked-badge{min-height:92px;margin:0;padding:.75rem}.compact-badge img{width:64px;height:64px;object-fit:contain}.estimate-preview{margin-bottom:1rem;padding:1rem;display:flex;justify-content:space-between;gap:1rem;color:var(--primary-dark);border-radius:18px;background:var(--surface-soft)}@media(max-width:760px){.world-map-hero{padding:3rem 0 2.5rem}.world-map-hero .page-frame{align-items:flex-start}.map-overview-stat{min-width:135px}.kingdom-path:before{left:52px}.unit-node{min-height:150px;grid-template-columns:104px 1fr}.unit-node-art{min-height:150px}.unit-node-copy{padding:1rem}.unit-node-status{grid-column:2;min-width:0;padding:0 1rem 1rem}.unit-progress-line{align-items:flex-start;flex-direction:column;gap:.4rem}.unit-progress-line>div{width:100%}.lesson-cards,.unit-report-list,.badge-grid{grid-template-columns:1fr}.clock-pair{gap:.5rem}.clock-pair .clock-face{width:132px}}@media(max-width:520px){.world-map-hero .page-frame{flex-direction:column}.map-overview-stat{width:100%;grid-template-columns:auto auto 1fr;justify-items:start;align-items:center}.unit-node{grid-template-columns:88px 1fr}.unit-node-art{min-height:180px}.unit-node-copy h2{align-items:flex-start;flex-direction:column;gap:.25rem}.sort-items{grid-template-columns:1fr}.place-board>div{min-height:125px;padding:.4rem}.place-board small{font-size:.68rem}.clock-pair .clock-face{width:115px;border-width:7px}.clock-number{font-size:.72rem}}@media(max-width:900px){.topbar{min-height:68px}.brand>span:last-child,.player-chip>span:nth-child(2),.quick-settings{display:none}.main-nav span{display:none}.main-nav a{min-width:48px;padding-inline:.72rem;justify-content:center}.brand{min-width:48px;justify-content:center}.player-chip{min-height:46px}.onboarding{grid-template-columns:1fr;padding-top:2rem;gap:4.5rem}.onboarding-copy{text-align:center}.onboarding-copy>p{margin-inline:auto}.trust-row{justify-content:center}.profile-card{width:min(520px,100%);margin-inline:auto}.hero-content{grid-template-columns:1fr;gap:2rem}.hero-art:after{background:#151739b8}.mission-panel{max-width:520px}.world-layout,.report-grid{grid-template-columns:1fr}.journey-panel{position:static}.report-stats{grid-template-columns:repeat(2,1fr)}.mastery-card{grid-row:auto}}@media(max-width:620px){.page-frame{width:min(100% - 1rem,1180px)}.topbar{padding-inline:.5rem;gap:.35rem}.brand-mark{width:40px;height:40px}.brand{min-width:48px;justify-content:center}.main-nav{gap:.1rem}.main-nav a{min-width:48px;justify-content:center}.player-chip{margin-left:auto;padding-inline:.45rem}.player-chip>span:first-child{display:none}.energy-pill{min-height:34px}.onboarding{padding-top:1.4rem}.onboarding-copy h1,.hero-copy h1{font-size:clamp(2.3rem,14vw,4rem)}.trust-row span{flex:1 1 30%;justify-content:center;font-size:.72rem}.profile-card{border-radius:22px}.mascot-stage{margin-top:-60px}.avatar-grid,.theme-grid{gap:.35rem}.avatar-option,.theme-option{padding-inline:.25rem}.hero-content{padding-block:2.5rem}.hero-copy{text-align:center}.hero-actions{justify-content:center}.mission-panel{padding:1.1rem}.map-banner,.map-banner-inner{min-height:240px}.map-banner-inner>div{width:100%}.map-banner:after{background:#122c34a8}.adventure-path:before{left:27px}.level-card{min-height:112px;padding:.7rem 2.5rem .7rem .7rem;grid-template-columns:56px 1fr;gap:.7rem;border-radius:18px}.level-number{width:56px;height:56px;border-width:4px;border-radius:17px;font-size:1.55rem}.level-copy p{display:none}.game-page{padding-block:.6rem 1.5rem}.game-card,.body-lab-card,.result-card{border-radius:20px}.game-header{grid-template-columns:auto 1fr auto;gap:.5rem}.back-link{width:48px;font-size:0}.game-header>div{justify-content:center}.game-header>div span{display:none}.question-stage{min-height:480px;padding:1rem}.question-heading{align-items:flex-start;gap:.65rem}.scene-emoji{width:54px;height:54px;border-radius:16px;font-size:1.7rem}.answer-grid{grid-template-columns:1fr}.answer-option{min-height:62px}.number-answer.large{flex-direction:column}.object-measure-zone{min-height:170px}.measured-object strong{display:none}.ruler{width:96%;left:2%}.ruler-game .number-answer label{width:100%;text-align:center}.next-row{padding:0 1rem 1rem}.next-row .primary-button{width:100%}.measure-steps label{grid-template-columns:48px 1fr 78px;gap:.5rem}.measure-steps label>b{display:none}.measure-steps small{font-size:.68rem}.measure-steps input{width:78px}.report-header{align-items:stretch;flex-direction:column}.rank-medal{min-width:0}.report-stats{gap:.5rem}.report-stats article{min-height:84px;padding:.75rem}.activity-report li{grid-template-columns:34px 1fr}.activity-report .star-row{grid-column:2}}
