:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-primary:#2563eb;--color-primary-strong:#1d4ed8;--color-on-primary:#fff;--color-secondary:#f59e0b;--color-on-secondary:#0f172a;--color-accent:#ec4899;--color-background:#eff6ff;--color-surface:#fff;--color-surface-soft:#f8fbff;--color-foreground:#0f172a;--color-muted:#526078;--color-border:#dbe7fa;--color-success:#168a43;--color-success-soft:#e8f8ee;--color-warning:#b45309;--color-warning-soft:#fff4d8;--color-danger:#c52222;--color-danger-soft:#fff0f0;--color-info-soft:#e7f5ff;--color-locked:#64748b;--font-display:"Baloo 2", "Noto Sans SC", "PingFang SC", "Microsoft YaHei UI", sans-serif;--font-body:"Noto Sans SC", "PingFang SC", "Microsoft YaHei UI", system-ui, sans-serif;--font-number:"DIN Alternate", "Arial Rounded MT Bold", "Microsoft YaHei UI", sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:clamp(2rem, 5vw, 2.75rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-control:10px;--radius-panel:12px;--radius-object:18px;--shadow-sm:0 2px 8px #0f172a12;--shadow-md:0 8px 22px #0f172a17;--shadow-clay:inset 0 2px 0 #ffffffc7, inset 0 -3px 0 #0f172a14, 0 7px 16px #2563eb24;--header-height:68px;--nav-height:76px}*{box-sizing:border-box}html{background:var(--color-background);min-width:320px;scroll-padding-top:calc(var(--header-height) + 16px)}body{min-height:100vh;color:var(--color-foreground);background:var(--color-background);font-family:var(--font-body);font-size:var(--text-md);margin:0;line-height:1.55}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--color-primary);outline-offset:3px}button:disabled{cursor:not-allowed}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--font-display);line-height:1.18}h1{margin-bottom:var(--space-3);font-size:var(--text-3xl)}h2{margin-bottom:var(--space-3);font-size:var(--text-2xl)}h3{margin-bottom:var(--space-2);font-size:var(--text-lg)}p{color:var(--color-muted)}.skip-link{z-index:1000;color:var(--color-on-primary);background:var(--color-primary);border-radius:var(--radius-control);padding:10px 14px;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:30;height:var(--header-height);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#eff6fff2;border-bottom:1px solid #dbe7faf2;position:sticky;top:0}.site-header__inner{justify-content:space-between;align-items:center;gap:var(--space-4);width:min(1240px,100%);height:100%;margin:0 auto;padding:0 16px;display:flex}.brand{align-items:center;gap:10px;min-height:48px;text-decoration:none;display:inline-flex}.brand__mark{width:42px;height:42px;color:var(--color-on-primary);background:var(--color-primary);border-radius:var(--radius-control);box-shadow:var(--shadow-clay);place-items:center;display:inline-grid}.brand__text{line-height:1.05;display:grid}.brand__text strong{font-family:var(--font-display);font-size:1.15rem}.brand__text small{color:var(--color-muted);letter-spacing:0;font-size:.68rem;font-weight:700}.world-badge{color:#194185;background:var(--color-info-soft);min-width:0;min-height:44px;font-size:var(--text-sm);border:1px solid #b9ddff;border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 14px;font-weight:800;display:inline-flex}.world-badge select{min-width:0;max-width:260px;min-height:34px;color:inherit;font:inherit;text-overflow:ellipsis;cursor:pointer;background:0 0;border:0;padding:0;font-weight:800}.world-badge select:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px}.world-badge__dot{background:var(--color-primary);border-radius:999px;width:8px;height:8px}main{width:100%;padding:var(--space-6) 16px calc(var(--nav-height) + var(--space-8) + env(safe-area-inset-bottom))}.page-shell{width:min(1180px,100%);margin:0 auto}.page-shell--loading{opacity:.9}.narrow-shell{width:min(760px,100%)}.eyebrow{color:var(--color-primary-strong);font-size:var(--text-sm);align-items:center;gap:6px;margin-bottom:4px;font-weight:900;display:inline-flex}.page-intro{justify-content:space-between;align-items:end;gap:var(--space-6);margin-bottom:var(--space-8);display:flex}.page-intro>div:first-child{max-width:680px}.page-intro h1{margin-bottom:var(--space-2)}.page-intro p{margin-bottom:0}.page-intro__aside{flex:none}.world-summary{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-sm);display:flex;overflow:hidden}.world-summary>div{min-width:112px;padding:12px 16px}.world-summary>div+div{border-left:1px solid var(--color-border)}.world-summary span,.world-summary strong{display:block}.world-summary span{color:var(--color-muted);font-size:var(--text-xs);font-weight:700}.world-summary strong{font-family:var(--font-number);font-size:1.35rem;line-height:1.2}.status-pill{color:#334155;width:fit-content;min-height:32px;font-size:var(--text-xs);background:#f1f5f9;border:1px solid #d8e1ed;border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:5px 10px;font-weight:900;line-height:1.25;display:inline-flex}.status-pill[data-tone=success]{color:#135c31;background:var(--color-success-soft);border-color:#a7e5bf}.status-pill[data-tone=warning]{color:#8a3f07;background:var(--color-warning-soft);border-color:#f6c76e}.status-pill[data-tone=info]{color:#16568c;background:var(--color-info-soft);border-color:#a9d9ff}.button{justify-content:center;align-items:center;gap:var(--space-2);min-height:48px;color:var(--color-foreground);background:var(--color-surface);border-radius:var(--radius-control);cursor:pointer;text-align:center;border:2px solid #0000;padding:11px 18px;font-weight:900;text-decoration:none;transition:transform .16s,box-shadow .16s,background-color .16s,border-color .16s;display:inline-flex}.button:hover:not(:disabled){box-shadow:var(--shadow-md);transform:translateY(-1px)}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{opacity:.58}.button--primary{color:var(--color-on-primary);background:var(--color-primary);border-color:var(--color-primary);box-shadow:var(--shadow-clay)}.button--secondary{color:var(--color-primary-strong);background:var(--color-surface);border-color:var(--color-primary)}.button--quiet{color:var(--color-foreground);border-color:var(--color-border);background:0 0}.button--success{color:#fff;background:var(--color-success);border-color:var(--color-success)}.button--danger{color:#fff;background:var(--color-danger);border-color:var(--color-danger)}.button--wide{width:100%}.icon-button{width:44px;height:44px;color:var(--color-foreground);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);cursor:pointer;place-items:center;padding:0;text-decoration:none;display:inline-grid}.back-link{min-height:44px;margin-bottom:var(--space-4);color:var(--color-primary-strong);font-size:var(--text-sm);align-items:center;gap:7px;font-weight:900;text-decoration:none;display:inline-flex}.section-heading{justify-content:space-between;align-items:end;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.section-heading h2{margin-bottom:0}.section-count{color:var(--color-muted);font-size:var(--text-sm);font-weight:800}.map-layout{gap:var(--space-6);grid-template-columns:minmax(0,1.45fr) minmax(330px,.72fr);align-items:start;display:grid}.map-panel,.milestone-panel,.detail-panel,.target-panel,.boss-card,.result-panel,.growth-card,.growth-list-panel,.settings-panel,.practice-panel,.remediation-sidebar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-sm)}.map-panel{padding:var(--space-6)}.map-board{border-radius:var(--radius-panel);background:#dcecff;border:1px solid #bdd8fb;min-height:610px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 8px #ffffff57}.map-board:before,.map-board:after{content:"";pointer-events:none;position:absolute}.map-board:before{background:#c9f5d7;border:5px solid #8ed9a8;border-radius:58% 42% 46% 54%;width:190px;height:150px;bottom:-36px;right:-38px}.map-board:after{background:#ffe6a7;border:5px solid #f4c759;border-radius:44% 56% 52% 48%;width:180px;height:140px;top:-52px;left:-40px}.map-thread{width:100%;height:100%;position:absolute;inset:0}.map-thread path{fill:none;stroke:#2563eb54;stroke-width:1.4px;stroke-linecap:round;stroke-dasharray:1 3.5;vector-effect:non-scaling-stroke}.map-node-layer{position:absolute;inset:0}.map-node{z-index:2;top:var(--node-y);left:var(--node-x);min-width:66px;color:var(--color-foreground);cursor:pointer;background:0 0;border:0;justify-items:center;gap:3px;padding:0;text-decoration:none;display:grid;position:absolute;transform:translate(-50%,-50%)}.map-node:disabled{cursor:not-allowed}.map-node__core{width:58px;height:58px;color:var(--color-on-primary);background:var(--color-primary);box-shadow:var(--shadow-clay);font-family:var(--font-number);border:3px solid #fff;border-radius:999px;place-items:center;font-size:1.2rem;font-weight:900;transition:transform .16s,box-shadow .16s;display:grid}.map-node:hover .map-node__core{transform:translateY(-3px)}.map-node[data-state=current] .map-node__core{width:72px;height:72px;color:var(--color-on-secondary);background:var(--color-secondary);box-shadow:var(--shadow-clay), 0 0 0 8px #f59e0b2e;font-size:1.45rem}.map-node[data-state=done] .map-node__core{background:var(--color-success)}.map-node[data-state=locked] .map-node__core{color:var(--color-locked);background:#e4ebf4;box-shadow:0 5px 12px #0f172a14}.map-node__label{text-align:center;background:#ffffffe6;border-radius:999px;max-width:96px;padding:2px 7px;font-size:.69rem;font-weight:900;line-height:1.25}.map-node__meta{color:#526078;font-size:.65rem;font-weight:900}.milestone-panel{top:calc(var(--header-height) + 16px);padding:var(--space-6);position:sticky}.milestone-panel__top{justify-content:space-between;align-items:start;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.stage-number{color:#c2d3ec;font-family:var(--font-number);font-size:2.2rem;font-weight:900;line-height:.9}.node-brief{align-items:center;gap:var(--space-3);margin:var(--space-5) 0;padding:var(--space-4);color:#194185;background:var(--color-info-soft);border-radius:var(--radius-control);border:1px solid #b9ddff;display:flex}.node-brief span,.node-brief strong{display:block}.node-brief span{font-size:var(--text-xs)}.node-brief strong{font-size:var(--text-sm)}.mastery-meter{margin:var(--space-5) 0}.mastery-meter__labels{justify-content:space-between;align-items:center;gap:var(--space-3);font-size:var(--text-sm);margin-bottom:6px;font-weight:900;display:flex}.mastery-meter__track,.lesson-progress__track,.boss-health__track{background:#e5edf8;border-radius:999px;height:12px;overflow:hidden}.mastery-meter__track>span,.lesson-progress__track>span,.boss-health__track>span{background:var(--color-primary);border-radius:inherit;height:100%;transition:width .24s;display:block}.chapter-mini-list{margin:var(--space-5) 0;gap:8px;padding:0;list-style:none;display:grid}.chapter-mini-list li{color:var(--color-muted);font-size:var(--text-sm);grid-template-columns:24px minmax(0,1fr);align-items:center;gap:8px;font-weight:800;display:grid}.chapter-mini-list li[data-done=true]{color:#135c31}.coming-soon{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);color:#8a3f07;background:var(--color-warning-soft);border-radius:var(--radius-control);border:1px solid #f6c76e;display:flex}.coming-soon strong,.coming-soon span{display:block}.coming-soon span{font-size:var(--text-sm);margin-top:2px}.boss-preview{align-items:center;gap:var(--space-2);margin-top:var(--space-5);padding-top:var(--space-4);color:var(--color-muted);border-top:1px solid var(--color-border);font-size:var(--text-sm);font-weight:800;display:flex}.boss-preview span{flex:1}.milestone-detail-layout{gap:var(--space-6);grid-template-columns:minmax(0,1.5fr) minmax(310px,.72fr);align-items:start;display:grid}.detail-panel{padding:var(--space-6)}.chapter-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.chapter-row{align-items:center;gap:var(--space-3);min-height:88px;padding:var(--space-4);background:var(--color-surface-soft);border:1px solid var(--color-border);border-radius:var(--radius-control);grid-template-columns:42px minmax(0,1fr) auto;display:grid}.chapter-row[data-state=current]{border-color:var(--color-secondary);box-shadow:0 0 0 3px #f59e0b21}.chapter-row[data-state=locked]{opacity:.74}.chapter-row__index{width:38px;height:38px;color:var(--color-primary-strong);font-family:var(--font-number);background:#dcecff;border-radius:999px;place-items:center;font-weight:900;display:grid}.chapter-row[data-state=done] .chapter-row__index{color:#fff;background:var(--color-success)}.chapter-row__body{min-width:0;display:grid}.chapter-row__body strong,.chapter-row__body span{overflow-wrap:anywhere}.chapter-row__body span{color:var(--color-muted);font-size:var(--text-sm)}.chapter-row__body small{color:#6b7280;align-items:center;gap:4px;margin-top:4px;font-weight:700;display:inline-flex}.detail-sidebar{gap:var(--space-5);display:grid}.target-panel,.boss-card{padding:var(--space-5)}.target-panel>svg{color:var(--color-primary)}.target-panel h2,.boss-card h2{font-size:var(--text-xl)}.target-panel ul{margin:var(--space-4) 0 0;gap:8px;padding:0;list-style:none;display:grid}.target-panel li{color:var(--color-muted);font-size:var(--text-sm);grid-template-columns:20px minmax(0,1fr);gap:8px;display:grid}.target-panel li svg{color:var(--color-success);margin-top:2px}.boss-card__icon{width:58px;height:58px;margin-bottom:var(--space-4);color:#8a3f07;background:var(--color-warning-soft);border-radius:var(--radius-object);box-shadow:var(--shadow-sm);border:2px solid #f6c76e;place-items:center;display:grid}.notice-banner{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);padding:var(--space-4);color:#16568c;background:var(--color-info-soft);border-radius:var(--radius-panel);border:1px solid #a9d9ff;display:flex}.notice-banner--warning{color:#8a3f07;background:var(--color-warning-soft);border-color:#f6c76e}.notice-banner>div{flex:1;display:grid}.notice-banner span{font-size:var(--text-sm)}.empty-state{align-content:center;place-items:center;gap:var(--space-3);min-height:420px;padding:var(--space-8);color:var(--color-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-sm);text-align:center;display:grid}.empty-state h1{color:var(--color-foreground);margin:0}.empty-state p{max-width:480px;margin-bottom:var(--space-3)}.empty-state--soft{background:#fbfdff}.lesson-header{justify-content:space-between;align-items:end;gap:var(--space-6);margin-bottom:var(--space-6);display:flex}.lesson-header>div:first-child{max-width:660px}.lesson-header p{margin-bottom:0}.lesson-layout{gap:var(--space-6);grid-template-columns:280px minmax(0,1fr);align-items:start;display:grid}.lesson-steps{top:calc(var(--header-height) + 16px);padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-sm);position:sticky}.lesson-progress{margin-bottom:var(--space-5)}.lesson-progress>span,.lesson-progress>strong{font-size:var(--text-sm);margin-bottom:6px;display:inline-block}.lesson-progress>strong{float:right;color:var(--color-primary-strong)}.lesson-progress__track{clear:both}.lesson-steps ol{gap:4px;margin:0;padding:0;list-style:none;display:grid}.lesson-step{gap:var(--space-3);min-height:54px;color:var(--color-muted);border-radius:var(--radius-control);grid-template-columns:34px minmax(0,1fr);padding:8px;display:grid}.lesson-step[data-state=current]{color:var(--color-primary-strong);background:var(--color-info-soft)}.lesson-step[data-state=done]{color:#135c31}.lesson-step__marker{background:#e8eef7;border-radius:999px;place-items:center;width:32px;height:32px;display:grid}.lesson-step[data-state=current] .lesson-step__marker{color:var(--color-on-secondary);background:var(--color-secondary)}.lesson-step[data-state=done] .lesson-step__marker{color:#fff;background:var(--color-success)}.lesson-step strong,.lesson-step span{display:block}.lesson-step strong{font-size:var(--text-sm)}.lesson-step div>span{font-size:var(--text-xs);line-height:1.35}.lesson-card{min-height:560px;padding:var(--space-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-sm)}.lesson-card h2{max-width:760px}.lesson-copy{max-width:720px;font-size:var(--text-lg)}.fraction-visual{--fraction-visual-bar-height:88px;width:min(520px,100%);margin:var(--space-6) 0;gap:12px;display:grid}.fraction-visual__row{gap:6px;display:grid}.fraction-visual__row--compare{opacity:.9}.fraction-visual__label{font-size:var(--text-sm);color:var(--color-muted);font-weight:600}.fraction-visual__bar{height:var(--fraction-visual-bar-height);border-radius:var(--radius-object);border:3px solid #fff;width:100%;display:flex;overflow:hidden;box-shadow:0 6px #0f172a0f}.fraction-visual__part{background:#dfe7f0;border-right:2px solid #fff;flex:1;min-width:18px}.fraction-visual__part:last-child{border-right:0}.fraction-visual__part[data-active=true]{background:var(--color-secondary)}.fraction-visual--compact{--fraction-visual-bar-height:64px;width:min(280px,100%);margin:var(--space-3) 0}.answer-grid{gap:var(--space-3);margin-top:var(--space-5);display:grid}.lesson-question{max-width:720px;font-size:var(--text-lg);font-weight:600}.answer-option{align-items:center;gap:var(--space-3);min-height:58px;padding:var(--space-3) var(--space-4);color:var(--color-foreground);text-align:left;background:var(--color-surface-soft);border:2px solid var(--color-border);border-radius:var(--radius-control);cursor:pointer;grid-template-columns:38px minmax(0,1fr);transition:border-color .16s,background-color .16s,transform .16s;display:grid}.answer-option:hover:not(:disabled){border-color:var(--color-primary);transform:translateY(-1px)}.answer-option:disabled{cursor:default}.answer-option[data-selected=true]{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1f}.answer-option[data-result=correct]{background:var(--color-success-soft);border-color:var(--color-success)}.answer-option[data-result=wrong]{background:var(--color-danger-soft);border-color:var(--color-danger)}.answer-option--large{min-height:68px;font-size:var(--text-lg);font-weight:800}.answer-option__key{width:36px;height:36px;color:var(--color-primary-strong);font-family:var(--font-number);background:#dcecff;border-radius:999px;place-items:center;font-weight:900;display:grid}.feedback{gap:var(--space-3);margin-top:var(--space-5);padding:var(--space-4);color:#334155;border:1px solid var(--color-border);border-radius:var(--radius-control);background:#f7fafc;border-left-width:6px;grid-template-columns:26px minmax(0,1fr);display:grid}.feedback[data-tone=success]{background:var(--color-success-soft);border-color:#a7e5bf;border-left-color:var(--color-success)}.feedback[data-tone=error]{background:var(--color-danger-soft);border-color:#f2b7b7;border-left-color:var(--color-danger)}.feedback strong,.feedback p{display:block}.feedback p{color:inherit;margin:4px 0 0}.lesson-actions{align-items:center;gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.lesson-actions__hint{color:var(--color-muted);font-size:var(--text-sm)}.boss-brief-page{max-width:1050px}.boss-brief-layout{gap:var(--space-6);grid-template-columns:minmax(0,.95fr) minmax(360px,1.05fr);align-items:stretch;display:grid}.boss-hero-panel,.mode-panel{padding:var(--space-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-sm)}.boss-hero-panel{background:#fff9ed;border-color:#f5d18a;flex-direction:column;justify-content:center;align-items:flex-start;display:flex}.boss-emblem{width:126px;height:126px;margin-bottom:var(--space-5);color:#8a3f07;box-shadow:var(--shadow-clay);background:#ffe5aa;border:4px solid #fff;border-radius:36px;place-items:center;display:grid;position:relative}.boss-emblem span{color:#fff;background:var(--color-danger);width:42px;height:42px;font-family:var(--font-number);border:3px solid #fff;border-radius:999px;place-items:center;font-weight:900;display:grid;position:absolute;bottom:-8px;right:-8px}.boss-rules{gap:var(--space-3);width:100%;margin-top:var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}.boss-rules>div{min-width:0;padding:var(--space-3);border-radius:var(--radius-control);text-align:center;background:#ffffffb8;border:1px solid #f5d18a;justify-items:center;gap:3px;display:grid}.boss-rules span{color:var(--color-muted);font-size:var(--text-xs)}.boss-rules strong{font-family:var(--font-number);font-size:var(--text-lg)}.mode-options{gap:var(--space-3);margin:var(--space-5) 0;display:grid}.mode-option{align-items:center;gap:var(--space-3);min-height:76px;padding:var(--space-4);background:var(--color-surface-soft);border:2px solid var(--color-border);border-radius:var(--radius-control);cursor:pointer;grid-template-columns:32px minmax(0,1fr);display:grid;position:relative}.mode-option[data-selected=true]{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1f}.mode-option input{opacity:0;position:absolute}.mode-option>svg{color:var(--color-primary)}.mode-option span{display:grid}.mode-option strong{font-size:var(--text-md)}.mode-option small{color:var(--color-muted);font-size:var(--text-sm)}.boss-tip{gap:var(--space-3);margin-bottom:var(--space-5);padding:var(--space-4);color:#16568c;background:var(--color-info-soft);border-radius:var(--radius-control);font-size:var(--text-sm);border:1px solid #a9d9ff;font-weight:800;display:flex}.inline-error{margin-bottom:var(--space-4);padding:var(--space-3);color:#831d1d;background:var(--color-danger-soft);border-radius:var(--radius-control);border:1px solid #f2b7b7;font-weight:800}.battle-page{width:min(980px,100%);margin:0 auto}.battle-topbar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:48px minmax(0,1fr) auto;display:grid}.battle-topbar>div{display:grid}.battle-topbar>div span{color:var(--color-muted);font-size:var(--text-xs);font-weight:800}.battle-topbar>div strong{font-size:var(--text-lg)}.boss-hud,.question-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-md)}.boss-hud{gap:var(--space-5);margin-bottom:var(--space-4);padding:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(220px,.8fr) auto;align-items:center;display:grid}.boss-hud__name{align-items:center;gap:var(--space-3);display:flex}.boss-hud__avatar{color:#8a3f07;background:var(--color-warning-soft);border-radius:var(--radius-object);border:2px solid #f6c76e;place-items:center;width:54px;height:54px;display:grid}.boss-hud__name>div:last-child{display:grid}.boss-hud__name strong{font-size:var(--text-lg)}.boss-health__labels{font-size:var(--text-sm);justify-content:space-between;align-items:center;margin-bottom:6px;font-weight:800;display:flex}.boss-health__labels span{align-items:center;gap:5px;display:inline-flex}.boss-health__track>span{background:var(--color-danger)}.boss-distance{align-items:center;gap:var(--space-2);color:#8a3f07;display:flex}.boss-distance div{display:grid}.boss-distance span{font-size:var(--text-xs)}.boss-distance strong{font-size:var(--text-sm)}.distance-track{background:#f1f5f9;border-radius:999px;grid-column:1/-1;justify-content:space-between;align-items:center;height:32px;padding:0 7px;display:flex;position:relative}.distance-track>span{z-index:1;background:#cbd5e1;border:2px solid #fff;border-radius:999px;width:10px;height:10px;position:relative}.distance-track>span[data-danger=true]{background:var(--color-danger)}.distance-track__boss{z-index:2;color:#8a3f07;transition:right .22s;position:absolute;top:3px}.boss-hud__stats{gap:var(--space-5);color:var(--color-muted);font-size:var(--text-sm);grid-column:1/-1;display:flex}.boss-hud__stats strong{color:var(--color-foreground);font-family:var(--font-number)}.question-panel{padding:var(--space-8)}.question-meta{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.timer{color:#16568c;background:var(--color-info-soft);min-height:38px;font-family:var(--font-number);border:1px solid #a9d9ff;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-weight:900;display:inline-flex}.timer[data-danger=true]{color:#831d1d;background:var(--color-danger-soft);border-color:#f2b7b7}.question-panel h1{max-width:820px;margin-top:var(--space-5);font-size:clamp(1.55rem,4vw,2.2rem)}.feedback--battle{grid-template-columns:30px minmax(0,1fr) auto;align-items:center}.feedback--battle small{margin-top:5px;font-weight:800;display:block}.submitting-row{align-items:center;gap:var(--space-2);margin-top:var(--space-4);color:var(--color-muted);font-size:var(--text-sm);font-weight:800;display:flex}.result-page{max-width:980px}.result-hero{margin-bottom:var(--space-6);padding:var(--space-10) var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-md);text-align:center;justify-items:center;display:grid}.result-badge{width:86px;height:86px;margin-bottom:var(--space-4);color:#8a3f07;background:var(--color-warning-soft);box-shadow:var(--shadow-clay);border:3px solid #fff;border-radius:28px;place-items:center;display:grid}.result-badge[data-tone=success]{color:#fff;background:var(--color-success)}.result-hero h1{margin-top:var(--space-4)}.result-hero p{max-width:600px}.result-stars{margin-top:var(--space-2);gap:4px;display:flex}.result-stars svg{color:#d8dee8}.result-stars svg[data-filled=true]{color:var(--color-secondary);fill:var(--color-secondary)}.result-layout{gap:var(--space-5);grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);display:grid}.result-panel{padding:var(--space-6)}.result-stats{gap:var(--space-3);margin:var(--space-4) 0;grid-template-columns:repeat(3,1fr);display:grid}.result-stats>div{padding:var(--space-3);background:var(--color-surface-soft);border:1px solid var(--color-border);border-radius:var(--radius-control)}.result-stats span,.result-stats strong{display:block}.result-stats span{color:var(--color-muted);font-size:var(--text-xs)}.result-stats strong{font-family:var(--font-number);font-size:var(--text-xl)}.mistake-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.mistake-list li{gap:var(--space-3);padding:var(--space-3);background:var(--color-danger-soft);border-radius:var(--radius-control);border:1px solid #f2b7b7;grid-template-columns:24px minmax(0,1fr);display:grid}.mistake-list strong,.mistake-list span{display:block}.mistake-list span{color:var(--color-muted);font-size:var(--text-sm)}.clean-result{align-items:center;gap:var(--space-3);padding:var(--space-4);color:#135c31;background:var(--color-success-soft);border-radius:var(--radius-control);border:1px solid #a7e5bf;font-weight:800;display:flex}.result-actions{justify-content:center;gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.remediation-layout{gap:var(--space-6);grid-template-columns:300px minmax(0,1fr);align-items:start;display:grid}.remediation-sidebar{top:calc(var(--header-height) + 16px);padding:var(--space-5);position:sticky}.remediation-sidebar>svg{color:var(--color-primary)}.remediation-sidebar h2{font-size:var(--text-xl)}.remediation-sidebar ul{margin:var(--space-4) 0 0;color:var(--color-muted);font-size:var(--text-sm);gap:8px;padding-left:20px;display:grid}.practice-panel{padding:var(--space-6)}.practice-dots{gap:6px;display:flex}.practice-dots span{background:#dbe4ef;border-radius:999px;width:10px;height:10px}.practice-dots span[data-active=true]{background:var(--color-primary);width:24px}.growth-grid{gap:var(--space-5);grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);display:grid}.growth-card,.growth-list-panel{padding:var(--space-6)}.mastery-breakdown{gap:var(--space-3);grid-template-columns:repeat(4,1fr);display:grid}.mastery-breakdown>div{padding:var(--space-3);background:var(--color-surface-soft);border:1px solid var(--color-border);border-radius:var(--radius-control);gap:3px;display:grid}.mastery-breakdown svg{color:var(--color-primary)}.mastery-breakdown span{color:var(--color-muted);font-size:var(--text-xs)}.mastery-breakdown strong{font-family:var(--font-number)}.growth-list-panel{margin-top:var(--space-5)}.mastery-list{gap:var(--space-3);display:grid}.mastery-row{align-items:center;gap:var(--space-3);min-height:68px;padding:var(--space-3) var(--space-4);background:var(--color-surface-soft);border:1px solid var(--color-border);border-radius:var(--radius-control);grid-template-columns:18px minmax(0,1fr) auto;display:grid}.mastery-row__dot{background:#cbd5e1;border-radius:999px;width:12px;height:12px}.mastery-row__dot[data-done=true]{background:var(--color-success)}.mastery-row div{display:grid}.mastery-row div span{color:var(--color-muted);font-size:var(--text-sm)}.mastery-row>strong{font-family:var(--font-number);font-size:var(--text-xl)}.settings-panel{padding:var(--space-6)}.settings-panel+.settings-panel{margin-top:var(--space-5)}.settings-panel__heading{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);display:flex}.settings-panel__heading h2,.settings-panel__heading p{margin-bottom:0}.setting-row{align-items:center;gap:var(--space-3);min-height:76px;padding:var(--space-3) 0;border-top:1px solid var(--color-border);cursor:pointer;grid-template-columns:42px minmax(0,1fr) 52px;display:grid;position:relative}.setting-row__icon{width:40px;height:40px;color:var(--color-primary);background:var(--color-info-soft);border-radius:var(--radius-control);place-items:center;display:grid}.setting-row__copy{display:grid}.setting-row__copy small{color:var(--color-muted)}.setting-row input{opacity:0;position:absolute}.toggle{background:#cbd5e1;border-radius:999px;width:50px;height:30px;transition:background-color .16s;display:block;position:relative}.toggle>span{background:#fff;border-radius:999px;width:24px;height:24px;transition:transform .16s;position:absolute;top:3px;left:3px;box-shadow:0 2px 6px #0f172a2e}.setting-row input:checked+.toggle{background:var(--color-primary)}.setting-row input:checked+.toggle>span{transform:translate(20px)}.setting-row input:focus-visible+.toggle{outline:3px solid var(--color-primary);outline-offset:3px}.danger-panel{border-color:#f2b7b7}.bottom-nav{z-index:40;padding:8px 16px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--color-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;position:fixed;bottom:0;left:0;right:0}.bottom-nav__inner{grid-template-columns:repeat(3,minmax(0,1fr));width:min(520px,100%);margin:0 auto;display:grid}.bottom-nav__link{min-height:56px;color:var(--color-muted);border-radius:var(--radius-control);font-size:var(--text-xs);align-content:center;place-items:center;gap:2px;font-weight:900;text-decoration:none;display:grid}.bottom-nav__link[data-active=true]{color:var(--color-primary-strong);background:var(--color-info-soft)}.admin-page{max-width:1280px}.admin-toolbar,.admin-panel,.admin-metric{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-sm)}.admin-toolbar{align-items:end;gap:var(--space-3);margin-bottom:var(--space-5);padding:var(--space-4);grid-template-columns:minmax(190px,1fr) minmax(180px,.8fr) auto auto;display:grid}.admin-toolbar label,.draft-form label{color:var(--color-muted);font-size:var(--text-xs);gap:6px;font-weight:800;display:grid}.admin-toolbar input,.draft-form input,.draft-form select,.draft-form textarea,.draft-card__actions input{width:100%;min-height:42px;color:var(--color-text);background:var(--color-surface-soft);border:1px solid var(--color-border);border-radius:var(--radius-control);font:inherit;padding:9px 11px}.admin-auth-card{width:min(100%,520px);padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);box-shadow:var(--shadow-sm);margin:0 auto}.admin-operator{align-items:center;gap:var(--space-3);min-width:0;display:flex}.admin-operator>svg{color:var(--color-primary);flex:none}.admin-operator>div{min-width:0;display:grid}.admin-operator strong,.admin-operator span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-operator span{color:var(--color-muted);font-size:var(--text-xs)}.draft-form textarea{resize:vertical;min-height:220px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.8rem}.admin-metrics{gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.admin-metric{align-items:center;gap:var(--space-3);padding:var(--space-4);display:flex}.admin-metric>span{width:42px;height:42px;color:var(--color-primary);background:var(--color-info-soft);border-radius:var(--radius-control);flex:none;place-items:center;display:grid}.admin-metric div{min-width:0;display:grid}.admin-metric small{color:var(--color-muted);font-size:var(--text-xs);font-weight:800}.admin-metric strong{font-family:var(--font-number);font-size:var(--text-2xl)}.admin-grid{gap:var(--space-5);grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);align-items:start;display:grid}.admin-grid--wide{margin-top:var(--space-5);grid-template-columns:minmax(0,1.45fr) minmax(340px,.75fr)}.admin-panel{padding:var(--space-6)}.curriculum-list,.issue-list,.draft-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.curriculum-list li,.issue-list>div{align-items:center;gap:var(--space-3);min-height:66px;padding:var(--space-3);background:var(--color-surface-soft);border:1px solid var(--color-border);border-radius:var(--radius-control);grid-template-columns:42px minmax(0,1fr) auto;display:grid}.curriculum-list li>span{width:38px;height:38px;color:var(--color-primary-strong);font-family:var(--font-number);background:#dcecff;border-radius:999px;place-items:center;font-weight:900;display:grid}.curriculum-list li>div,.issue-list>div>div,.draft-card__head>div,.draft-card__history{min-width:0;display:grid}.curriculum-list small,.draft-card span{color:var(--color-muted);font-size:var(--text-sm)}.issue-list>div{grid-template-columns:22px minmax(0,1fr)}.issue-list>div[data-severity=error]>svg{color:var(--color-danger)}.issue-list>div[data-severity=warning]>svg{color:var(--color-warning)}.issue-list span{color:var(--color-muted);font-size:var(--text-sm)}.draft-card{gap:var(--space-3);padding:var(--space-4);background:var(--color-surface-soft);border:1px solid var(--color-border);border-radius:var(--radius-control);display:grid}.draft-card__head,.draft-card__actions{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.draft-card__history{gap:3px}.draft-card__actions input{flex:1;min-width:120px}.draft-form{gap:var(--space-4);display:grid}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}html[data-reduced-motion=true] *,html[data-reduced-motion=true] :before,html[data-reduced-motion=true] :after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}@media (max-width:960px){.map-layout,.milestone-detail-layout,.lesson-layout,.boss-brief-layout,.result-layout,.growth-grid,.remediation-layout,.admin-grid,.admin-grid--wide{grid-template-columns:1fr}.admin-toolbar,.admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.milestone-panel,.lesson-steps,.remediation-sidebar{position:static}.boss-hud{grid-template-columns:minmax(0,1fr) minmax(190px,.8fr)}.boss-distance{grid-column:1/-1}}@media (max-width:680px){main{padding-left:12px;padding-right:12px}.site-header__inner{padding:0 12px}.world-badge{max-width:min(330px,100vw - 150px);font-size:var(--text-xs)}.world-badge select{max-width:230px}.page-intro,.lesson-header{align-items:start;gap:var(--space-4);display:grid}.page-intro__aside,.world-summary{width:100%}.world-summary>div{flex:1;min-width:0}.map-panel,.milestone-panel,.detail-panel,.lesson-card,.boss-hero-panel,.mode-panel,.question-panel,.result-panel,.growth-card,.growth-list-panel,.settings-panel,.practice-panel,.remediation-sidebar,.admin-panel,.admin-toolbar{padding:var(--space-5)}.admin-toolbar,.admin-metrics{grid-template-columns:1fr}.draft-card__head,.draft-card__actions{flex-direction:column;align-items:stretch}.draft-card__actions .button{width:100%}.map-board{min-height:760px}.map-node__core{width:48px;height:48px}.map-node[data-state=current] .map-node__core{width:60px;height:60px}.map-node__label{max-width:78px;font-size:.62rem}.map-node__meta{font-size:.58rem}.chapter-row{grid-template-columns:38px minmax(0,1fr)}.chapter-row .button{grid-column:1/-1;width:100%}.boss-hud{padding:var(--space-4);grid-template-columns:1fr}.boss-distance,.distance-track,.boss-hud__stats{grid-column:1}.question-panel h1{font-size:var(--text-xl)}.feedback--battle{grid-template-columns:26px minmax(0,1fr)}.feedback--battle .button{grid-column:1/-1;width:100%}.boss-rules,.result-stats,.mastery-breakdown{grid-template-columns:1fr}.boss-rules>div{text-align:left;grid-template-columns:24px minmax(0,1fr) auto;justify-items:start}.result-actions .button{width:100%}.fraction-visual__part{min-width:10px}}@media (max-width:430px){:root{--text-3xl:1.85rem;--text-2xl:1.45rem}.brand__text small{display:none}.world-badge{max-width:calc(100vw - 96px)}.world-badge select{max-width:210px}.map-board{min-height:720px}.map-node__meta{display:none}.distance-track{margin-top:2px}}
