:root{--bg:#f6f0e6;--bg-deep:#efe6d8;--surface:#fffcf7;--surface-soft:#f3eadc;--ink:#2c261f;--muted:#6d6256;--line:#e4d6c4;--navy:#3f6f64;--navy-soft:#46766a;--accent:#3f6f64;--accent-soft:#e7f1ec;--accent-border:#7eb8a6;--warm:#c45c5c;--shadow:0 10px 28px #2c261f12;--radius:20px;--card-radius:var(--radius);--track-sidebar-width:260px;--track-sidebar-padding:.75rem .9rem 1rem;--track-sidebar-gap:.55rem;--track-nav-gap:.25rem;--track-nav-item-padding:.48rem .7rem;--track-nav-font:.84rem;--track-nav-icon:24px;--track-content-padding:1rem 1.4rem 1.5rem;--track-content-padding-mobile:1rem;--track-topbar-gap:.75rem;--track-topbar-margin:.75rem;--track-title-size:clamp(1.35rem, 2.4vw, 1.75rem);--track-hero-title-size:clamp(1.22rem, 2.6vw, 1.5rem);--track-header-min-height:56px;--track-header-padding-y:.35rem;--track-chrome-gutter-x:1rem;--hub-card-gap:1.25rem;--font-sans:"Zen Kaku Gothic New", "Segoe UI", sans-serif;--font-display:"Shippori Mincho", "Times New Roman", serif;--focus-ring-color:var(--navy);--focus-ring-width:3px;--focus-ring-offset:2px;--focus-ring:var(--focus-ring-width) solid var(--focus-ring-color);--touch-min:44px;--btn-primary-bg:#2f5c4e;--btn-primary-fg:#fff;--btn-primary-hover-bg:color-mix(in srgb, var(--btn-primary-bg) 82%, black);--on-navy:#fffcf7;--hub-badge-status:#1d4ed8;--week-heat-on:#022c22;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--bg);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--ink)}button,select,textarea,input:not([type=checkbox]):not([type=radio]){font:inherit;color:inherit;min-height:var(--touch-min)}button{cursor:pointer;background:0 0;border:none}h1,h2,h3,h4,strong{font-family:var(--font-display);letter-spacing:.01em;font-weight:700}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--navy-soft);margin:0 0 .35rem;font-size:.72rem;font-weight:700}.app-shell{grid-template-columns:var(--track-sidebar-width) minmax(0, 1fr);width:100%;max-width:100%;height:100vh;min-height:100vh;max-height:100vh;display:grid;overflow:hidden}.sidebar-top-actions{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:.35rem;margin-bottom:.6rem;display:grid}.sidebar-top-actions .hub-back{border-color:var(--line);background:var(--surface-soft);min-height:44px;margin:0}.sidebar-track-select,.sidebar-track-select select{width:100%;min-width:0}.sidebar-track-select select{border:1px solid var(--line);background:var(--surface);border-radius:10px;min-height:44px;padding:.45rem .55rem}.brand-button{text-align:left;width:100%}.skip-link{z-index:2000;color:#fffcf7;background:#3f6f64;border-radius:10px;padding:.65rem .85rem;position:fixed;top:.5rem;left:.5rem;transform:translateY(-160%)}.skip-link:focus,.skip-link:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset);transform:translateY(0)}.hub{max-width:1180px;min-height:100vh;margin:0 auto;padding:2.4rem 1.75rem 3.2rem}@media (width<=480px){.hub{padding:1.25rem 1rem 2.5rem}}.hub-hero{margin-bottom:1.5rem}.hub-hero h1{color:var(--navy);text-wrap:balance;margin:.25rem 0 .6rem;font-size:clamp(2rem,4vw,2.8rem)}.hub-primary-cta{background:var(--btn-primary-bg);min-height:44px;color:var(--btn-primary-fg);border-radius:999px;align-items:center;margin-top:.75rem;padding:.65rem 1rem;font-weight:800;text-decoration:none;display:inline-flex;box-shadow:0 8px 20px #1f4d632e}.hub-primary-cta:hover{background:var(--btn-primary-hover-bg)}.hub-stat-banner{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--card-radius);flex-direction:column;height:100%;padding:1.15rem 1.25rem;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 12px #00000008}.stat-card .stat-icon{font-size:1.5rem}.stat-info{flex-direction:column;gap:.15rem;margin-bottom:auto;display:flex}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;font-weight:700}.stat-info strong{color:var(--ink);font-size:1.4rem}.stat-info small{color:var(--muted);font-size:.8rem}.stat-progress-bar{background:var(--line);border-radius:999px;width:100%;height:6px;margin-top:.75rem;overflow:hidden}.stat-progress-bar i{background:linear-gradient(90deg,#3f6f64,#7eb8a6);border-radius:999px;height:100%;transition:width .4s;display:block}.hub-section-block{margin-top:2.25rem}.section-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.section-header-row h2{color:var(--navy);margin:0;font-size:1.45rem}.section-subtext{letter-spacing:.1em;color:var(--muted);font-size:.75rem;font-weight:700}.hub-search{flex-direction:column;gap:.35rem;max-width:22rem;margin:0 0 1rem;display:flex}.hub-search input[type=search]{border:1.5px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:8px;padding:.45rem .75rem}.hub-search-empty{padding:1rem 0 .5rem}.hub-search-empty-links{flex-wrap:wrap;gap:.45rem;margin-top:.75rem;display:flex}.three-track-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.25rem;display:grid}.four-track-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.25rem;display:grid}@media (width>=1080px){.four-track-grid{grid-template-columns:repeat(4,1fr)}}@media (width<=1079px) and (width>=580px){.four-track-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=579px){.four-track-grid{grid-template-columns:1fr}}.hub-card{text-align:left;border-radius:var(--card-radius);background:var(--surface);border:1px solid var(--line);cursor:pointer;flex-direction:column;gap:0;height:100%;padding:0;display:flex;overflow:hidden;box-shadow:0 8px 22px #2c261f0d}.hub-card:hover{border-color:var(--accent-border);box-shadow:0 14px 28px #3f6f641f}.hub-card-header{justify-content:space-between;align-items:center;margin-bottom:.25rem;display:flex}.track-status-pill{border-radius:999px;padding:.2rem .6rem;font-size:.75rem;font-weight:700}.track-status-pill.math{color:#2f5c4e;background:#e8f0ea}.track-status-pill.calculus{color:#4a3f63;background:#ece8f3}.track-status-pill.ja{color:#6b3a42;background:#f6e8ea}.track-status-pill.en{color:#6b5428;background:#f6eedc}.track-status-pill.cs{color:#355a68;background:#e6eef2}.track-status-pill.zh{color:#6b4428;background:#f4e8dc}.track-desc{color:var(--muted);min-height:0;margin:0;font-size:.88rem;line-height:1.5}.toeic-listening-stem,.toeic-listening-question,.toeic-part3-stem,.toeic-part4-stem{max-width:72ch;line-height:1.72}.track-highlight-badges{flex-wrap:wrap;gap:.35rem;margin:.25rem 0;display:flex}.track-highlight-badges span{background:var(--surface-alt,#f3eadc);border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:.2rem .5rem;font-size:.78rem}.track-user-progress{color:var(--muted);border-top:1px dashed var(--line);margin-top:auto;padding-top:.5rem;font-size:.82rem}.track-user-progress strong{color:var(--ink)}.launch-action{color:var(--navy);align-items:center;gap:.25rem;margin-top:.5rem;padding-top:.5rem;font-size:.92rem;display:flex}.hub-card-mark{color:#fffcf7;width:48px;height:48px;font-family:var(--font-display);background:linear-gradient(145deg,#5a8a7e,#3f6f64);border-radius:14px;place-items:center;font-size:1.4rem;font-weight:800;display:grid}.hub-card-mark.math-mark{background:linear-gradient(145deg,#6d8f9a,#3f6b78)}.hub-card-mark.calculus-mark{background:linear-gradient(145deg,#8b7aa8,#5c5278)}.hub-card-mark.toeic{background:linear-gradient(145deg,#c4a06a,#a07d48)}.radar-tab-switcher{flex-wrap:wrap;gap:.4rem;display:flex}@media (width<=600px){.radar-tab-switcher{scrollbar-width:thin;flex-wrap:nowrap;width:100%;padding-bottom:.25rem;overflow-x:auto}.radar-tab-btn{white-space:nowrap;flex-shrink:0}}.radar-tab-btn{background:var(--surface);border:1px solid var(--line);color:var(--muted);cursor:pointer;border-radius:8px;padding:.4rem .75rem;font-size:.82rem;font-weight:700;transition:all .15s}.radar-tab-btn:hover{color:var(--ink);background:var(--surface-alt,#efe6d8)}.radar-tab-btn.active{background:var(--navy);color:#fffcf7;border-color:var(--navy)}.hub-radar-display-wrapper{grid-template-columns:minmax(280px,360px) 1fr;align-items:center;gap:1.5rem;max-width:960px;margin:0 auto;display:grid}@media (width<=820px){.hub-radar-display-wrapper{grid-template-columns:1fr;max-width:540px}}.hub-badges-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.85rem;display:grid}.hub-badge-item{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:.75rem;padding:.85rem 1rem;transition:transform .2s;display:flex;position:relative}.hub-badge-item.unlocked{background:linear-gradient(135deg, var(--surface) 0%, #eff6ff99 100%);border-color:#93c5fd}.hub-badge-item.locked{opacity:1;filter:none;background:var(--surface-soft)}.badge-status-text{color:var(--muted);font-size:.72rem;font-weight:700}.hub-badge-item.unlocked .badge-status-text{color:var(--hub-badge-status)}.badge-item-icon{font-size:1.6rem}.badge-item-text{flex-direction:column;flex:1;gap:.15rem;display:flex}.badge-item-text strong{color:var(--ink);font-size:.88rem}.badge-item-text small{color:var(--muted);font-size:.75rem;line-height:1.35}.badge-xp-tag{color:#059669;background:#efe6d8;border:1px solid #cbd5e1;border-radius:4px;padding:.15rem .45rem;font-size:.72rem;font-weight:700}.lang-switch{background:var(--surface-soft);border:1px solid var(--line);border-radius:12px;grid-template-columns:1fr 1fr;gap:.3rem;margin:0 0 .45rem;padding:.25rem;display:grid}.lang-switch.three-ways{grid-template-columns:1fr 1fr 1fr}.lang-switch.four-ways{grid-template-columns:1fr 1fr;gap:.3rem;padding:.3rem}.lang-switch.four-ways button{justify-content:center;align-items:center;gap:.25rem;padding:.42rem .5rem;font-size:.78rem;display:flex}.lang-switch button{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;padding:.42rem .35rem;font-size:.76rem;font-weight:700;transition:all .15s}.unified-breadcrumbs{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin-bottom:.35rem;padding:.2rem .55rem;font-size:.75rem}.breadcrumbs-list{flex-wrap:wrap;align-items:center;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.crumb-item{color:var(--muted);align-items:center;gap:.4rem;display:inline-flex}.crumb-item.active .crumb-current{color:var(--ink);font-weight:700}.crumb-link-btn{font-size:inherit;color:#3f6f64;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.crumb-link-btn:hover{color:#2f5c4e}.crumb-separator{color:var(--line-strong,#cbd5e1);font-size:.75rem}.lang-switch button:hover:not(:disabled){color:var(--ink);background:#ffffffb3}.lang-switch button.active,.lang-switch button[aria-current=true]{color:var(--navy);border-color:var(--accent-border);box-shadow:0 1px 2px color-mix(in srgb, var(--ink) 6%, transparent);background:#fff}.lang-switch button:disabled{cursor:default}.hub-back{text-align:left;width:100%;color:var(--muted);border:1px solid #0000;border-radius:12px;margin-bottom:.35rem;padding:.55rem .75rem;display:block}.hub-back:hover{background:var(--surface-soft);color:var(--ink)}.module-fallback{min-height:100vh;color:var(--muted);place-items:center;font-size:.95rem;display:grid}.level-badge{background:color-mix(in srgb, var(--level-color,var(--accent)) 14%, white);border:1px solid color-mix(in srgb, var(--level-color,var(--accent)) 35%, white);border-radius:14px;padding:.7rem .8rem}.level-badge strong{align-items:baseline;gap:.45rem;font-size:1.1rem;display:flex}.level-badge small{font-family:var(--font-sans);color:var(--muted);font-size:.78rem;font-weight:700}.level-badge>span{color:var(--muted);margin-top:.2rem;font-size:.8rem;display:block}.phonics-grid{border-radius:var(--card-radius);background:var(--surface);border:1px solid var(--line);grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:.45rem;padding:1rem;display:grid}.toeic-cert-visual{place-items:center;display:grid}.toeic-cert-visual>div{aspect-ratio:1.4;width:min(100%,200px);box-shadow:var(--shadow);border:2px solid;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;display:flex}.toeic-cert-visual strong{font-size:1.35rem}.toeic-cert-visual span{color:var(--muted);letter-spacing:.04em;font-weight:700}.cert-pick{grid-template-columns:repeat(2,1fr);gap:.5rem;display:grid}.cert-pick button{border:1px solid var(--line);background:var(--surface-soft);border-radius:14px;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.75rem;transition:all .2s;display:flex}.cert-pick button span{color:var(--muted);font-size:.85rem}.cert-pick button small{color:var(--muted);font-size:.75rem}.cert-pick button.active{box-shadow:0 0 0 1px #0000000a}@media (width<=860px){.hub-grid{grid-template-columns:1fr}}.sidebar{overscroll-behavior-y:contain;box-sizing:border-box;height:100vh;max-height:100vh;padding:var(--track-sidebar-padding);border-right:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);gap:var(--track-sidebar-gap);scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#94847066 transparent;background:#fffcf7eb;flex-direction:column;min-width:0;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar::-webkit-scrollbar{width:5px}.math-sidebar::-webkit-scrollbar{width:5px}.sidebar::-webkit-scrollbar-track{background:0 0}.math-sidebar::-webkit-scrollbar-track{background:0 0}.sidebar::-webkit-scrollbar-thumb{background:#94a3b866;border-radius:999px}.math-sidebar::-webkit-scrollbar-thumb{background:#94a3b866;border-radius:999px}.sidebar::-webkit-scrollbar-thumb:hover{background:#64748bb3}.math-sidebar::-webkit-scrollbar-thumb:hover{background:#64748bb3}.brand{flex-shrink:0;align-items:center;gap:.5rem;padding:.15rem .25rem .25rem;display:flex}.brand-mark{background:linear-gradient(145deg, var(--navy), var(--navy-soft));color:#f4faf7;width:32px;height:32px;font-family:var(--font-display);border-radius:8px;flex-shrink:0;place-items:center;font-size:1rem;display:grid;box-shadow:0 4px 10px #1f4d632e}.brand strong,.mobile-brand strong{font-size:.95rem;line-height:1.25;display:block}.brand span{color:var(--muted);font-size:.7rem}.sidebar nav{gap:var(--track-nav-gap);flex-direction:column;flex-shrink:0;min-width:0;display:flex}.sidebar nav button{padding:var(--track-nav-item-padding);color:var(--muted);font-size:var(--track-nav-font);text-align:left;box-sizing:border-box;border-radius:10px;align-items:center;gap:.55rem;width:100%;transition:background .15s,color .15s,transform .15s;display:flex}.sidebar nav button .nav-icon,.sidebar nav button>span:first-child:not(.nav-label):not(.unit-nav-label){width:var(--track-nav-icon);height:var(--track-nav-icon);background:var(--surface-soft);color:var(--navy);border-radius:7px;flex-shrink:0;place-items:center;font-size:.78rem;font-weight:700;display:grid}.sidebar nav button .nav-label,.sidebar nav button>span:last-child:not(.nav-icon),.sidebar nav button .unit-nav-label{width:auto;height:auto;color:inherit;font-size:inherit;font-weight:inherit;text-align:left;white-space:normal;background:0 0;flex:1;line-height:1.25;display:inline-block}.sidebar nav button:hover{color:var(--ink);background:#2f9e6b14;transform:translate(1px)}.sidebar nav button.active{background:var(--accent-soft);color:var(--ink);font-weight:700;box-shadow:inset 0 0 0 1px #2f9e6b40}.course-summary{border:1px solid var(--line);background:linear-gradient(160deg,#f7f1e6,#e7f1ec);border-radius:14px;flex-shrink:0;margin-top:auto;padding:.9rem}.course-summary strong{margin-bottom:.25rem;display:block}.course-summary>span{color:var(--muted);margin-bottom:.85rem;font-size:.82rem;display:block}.unit-dots{grid-template-columns:repeat(6,1fr);gap:.35rem;display:grid}.unit-dots i{aspect-ratio:1;color:var(--navy);background:linear-gradient(var(--accent), var(--accent)) 0 / var(--fill,0%) 100% no-repeat, #e5edf4;border-radius:999px;place-items:center;font-size:.72rem;font-style:normal;font-weight:700;display:grid}.unit-dots i.current{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}.content{overscroll-behavior-y:contain;box-sizing:border-box;height:100vh;max-height:100vh;padding:var(--track-content-padding);scrollbar-width:thin;scrollbar-color:#94a3b866 transparent;width:100%;min-width:0;max-width:100%;overflow-y:auto}.cs-main-viewport,.math-content,.calculus-content,.physics-content,.chemistry-content{padding:var(--track-content-padding);box-sizing:border-box}.content::-webkit-scrollbar{width:6px}.content::-webkit-scrollbar-track{background:0 0}.content::-webkit-scrollbar-thumb{background:#94a3b866;border-radius:999px}.content::-webkit-scrollbar-thumb:hover{background:#64748bb3}.mobile-brand{align-items:center;gap:.45rem;margin-bottom:.35rem;display:none}.topbar{justify-content:space-between;gap:var(--track-topbar-gap);min-height:var(--track-header-min-height);padding-block:var(--track-header-padding-y);margin-bottom:var(--track-topbar-margin);flex-wrap:wrap;align-items:center;display:flex}.topbar h1{font-size:var(--track-title-size);margin:0;line-height:1.25}.header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.35rem;display:flex}.audio-status{color:var(--muted);border:1px solid var(--line);background:#eef4f8;border-radius:999px;padding:.3rem .6rem;font-size:.76rem}.audio-attribution{color:var(--muted);opacity:.85;white-space:nowrap;margin-left:.25rem;font-size:.65rem}.unit-select{color:var(--muted);flex-direction:column;gap:.08rem;font-size:.65rem;display:flex}.unit-select select,.field input,.field select,.field textarea,.preset-row input,.preset-row select{border:1px solid var(--line);background:var(--surface);border-radius:8px;outline:none;min-width:120px;padding:.28rem .5rem;font-size:.78rem;transition:border-color .2s,box-shadow .2s}.unit-select select:focus,.field input:focus,.field select:focus,.field textarea:focus,.preset-row input:focus,.preset-row select:focus{border-color:var(--accent-border);box-shadow:0 0 0 var(--focus-ring-width) color-mix(in srgb, var(--focus-ring-color) 15%, transparent);outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}.xp{color:#8a5a18;background:linear-gradient(135deg,#fff7e8,#ffe8c8);border:1px solid #f0d2a0;border-radius:999px;align-items:center;gap:.25rem;padding:.28rem .55rem;font-size:.76rem;display:flex}.alignment-note{background:#ffffffa6;border:1px solid #c9d6e3cc;border-radius:14px;flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.alignment-note span{color:var(--muted);font-size:.9rem}.unit-banner{--unit-color:#3f8f7a;background:linear-gradient(135deg, color-mix(in srgb, var(--unit-color) 18%, white), #fff 55%), var(--surface);border:1px solid color-mix(in srgb, var(--unit-color) 28%, white);box-shadow:var(--shadow);border-radius:24px;grid-template-columns:1.4fr .9fr auto;align-items:center;gap:1rem;padding:1.35rem 1.4rem;animation:.55s both rise;display:grid;position:relative;overflow:hidden}.unit-banner:before{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--unit-color) 22%, transparent), transparent 65%);pointer-events:none;height:160%;position:absolute;inset:auto -20% -40% 40%}.unit-pill{background:color-mix(in srgb, var(--unit-color) 16%, white);color:var(--navy);border-radius:999px;padding:.3rem .7rem;font-size:.78rem;font-weight:700;display:inline-flex}.unit-banner h2{margin:.55rem 0 .4rem;font-size:clamp(1.8rem,3vw,2.4rem)}.unit-banner p{color:var(--muted);max-width:36ch;margin:0 0 1rem;line-height:1.55}.banner-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.banner-actions button,.primary-btn{background:var(--btn-primary-bg);color:var(--btn-primary-fg);border-radius:999px;padding:.7rem 1.1rem;font-weight:700;transition:transform .2s,background .2s}.banner-actions button:hover,.primary-btn:hover{background:var(--btn-primary-hover-bg);transform:translateY(-1px)}.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-fg);border-radius:999px;padding:.55rem 1rem;font-weight:700}.btn-primary:hover{background:var(--btn-primary-hover-bg)}.banner-actions span{color:var(--muted);font-size:.88rem}.hero-art{filter:drop-shadow(0 10px 18px #1f4d631f);justify-self:end;width:min(100%,240px)}.progress-ring{background:conic-gradient(var(--unit-color) var(--progress), #e4ebf2 0);border-radius:50%;place-items:center;width:92px;height:92px;display:grid;box-shadow:inset 0 0 0 8px #ffffffbf}.progress-ring>div{text-align:center;background:#fff;border-radius:50%;place-items:center;width:68px;height:68px;display:grid}.progress-ring strong{font-size:1.1rem;line-height:1}.progress-ring small{color:var(--muted);font-size:.68rem}.daily-review{border-radius:var(--card-radius);background:var(--surface);border:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding:1rem 1.15rem;animation:.6s 50ms both rise;display:flex}.daily-review h2{margin:.15rem 0}.daily-review span{color:var(--muted)}.daily-review button:disabled{background:var(--accent-soft);color:var(--accent);cursor:default;border:1px solid #2f9e6b4d;border-radius:999px;padding:.55rem .9rem}.section-heading{justify-content:space-between;align-items:end;gap:1rem;margin:1.25rem 0 .75rem;display:flex}.section-heading h2{margin:0}.section-heading>span{color:var(--muted);font-size:.9rem}.task-grid{grid-template-columns:repeat(3,1fr);gap:.8rem;display:grid}.task-grid button{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1rem;transition:transform .2s,border-color .2s,box-shadow .2s;animation:.65s both rise;box-shadow:0 8px 24px #1f4d630a}.task-grid button:nth-child(2){animation-delay:60ms}.task-grid button:nth-child(3){animation-delay:.12s}.task-grid button:hover{border-color:var(--accent-border);transform:translateY(-3px);box-shadow:0 14px 28px #2f9e6b1f}.task-grid i{background:var(--surface-soft);width:36px;height:36px;color:var(--navy);border-radius:12px;place-items:center;margin-bottom:.7rem;font-style:normal;font-weight:700;display:grid}.task-grid span{color:var(--muted);letter-spacing:.08em;font-size:.72rem}.task-grid h3{margin:.3rem 0;font-size:1.15rem}.task-grid p{color:var(--muted);margin:0 0 .9rem;font-size:.9rem}.task-grid b{color:var(--navy-soft);font-size:.9rem}.result-panel{border-radius:var(--card-radius);border:1px solid var(--line);background:linear-gradient(145deg,#f8fbfc,#eef5f1);grid-template-columns:auto 1fr;gap:.85rem 1.25rem;margin-top:1rem;padding:1.1rem 1.2rem;display:grid}.result-panel strong{font-size:2rem;line-height:1;display:block}.result-panel ul{color:var(--muted);margin:0;padding-left:1.1rem}.result-panel p{color:var(--ink);grid-column:1/-1;margin:0}.text-link{color:var(--navy-soft);grid-column:1/-1;justify-self:start;font-weight:700}.unit-test-card{border-radius:var(--card-radius);background:var(--surface);border:1px dashed color-mix(in srgb, var(--navy) 35%, white);text-align:left;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;width:100%;margin-top:.9rem;padding:1rem 1.15rem;transition:border-color .2s,transform .2s;display:grid}.unit-test-card:hover{border-color:var(--accent);transform:translateY(-2px)}.unit-test-card span{letter-spacing:.1em;color:var(--muted);font-size:.72rem;font-weight:700}.unit-test-card strong{display:block}.unit-test-card small{color:var(--muted)}.unit-test-card b{color:var(--navy)}.unit-map{border-radius:var(--card-radius);background:var(--surface);border:1px solid var(--line);margin-top:1.2rem;padding:1.1rem 1.15rem}.unit-map h3{margin:0 0 .3rem}.unit-map>p{color:var(--muted);margin:0 0 .9rem}.unit-map>div{grid-template-columns:repeat(6,1fr);gap:.5rem;display:grid}.unit-map button{background:var(--surface-soft);border:1px solid #0000;border-radius:14px;flex-direction:column;gap:.25rem;padding:.7rem .55rem;font-weight:700;transition:border-color .2s,background .2s;display:flex}.unit-map button small{color:var(--muted);font-size:.72rem;font-weight:500}.unit-map button.active,.unit-map button:hover{background:var(--accent-soft);border-color:var(--accent-border)}.builder-hero{grid-template-columns:1.4fr .8fr;align-items:center;gap:1rem;margin-bottom:1.1rem;animation:.5s both rise;display:grid}.builder-hero h1{color:var(--navy);margin:.2rem 0 .55rem;font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.25}.lede{color:var(--muted);max-width:52ch;margin:0;line-height:1.65}.builder-grid{grid-template-columns:1.45fr .9fr;align-items:start;gap:1rem;display:grid}.builder-steps{flex-direction:column;gap:.85rem;display:flex;position:relative}.builder-steps:before{content:"";background:linear-gradient(180deg, var(--line), transparent);width:2px;position:absolute;top:28px;bottom:28px;left:22px}.step{grid-template-columns:48px 1fr;gap:.85rem;animation:.55s both rise;display:grid;position:relative}.step:nth-child(2){animation-delay:50ms}.step:nth-child(3){animation-delay:.1s}.step:nth-child(4){animation-delay:.15s}.step-index{background:var(--surface);border:2px solid var(--line);width:44px;height:44px;color:var(--navy);z-index:1;font-weight:700;font-family:var(--font-display);border-radius:50%;place-items:center;display:grid}.step-body{border-radius:var(--card-radius);background:var(--surface);border:1px solid var(--line);padding:1.1rem 1.15rem 1.2rem;box-shadow:0 10px 28px #1f4d630d}.step-kicker{letter-spacing:.12em;color:var(--muted);margin:0;font-size:.72rem;font-weight:700}.step-body h3{margin:.2rem 0 .85rem;font-size:1.25rem}.field{flex-direction:column;gap:.3rem;margin-bottom:.7rem;display:flex}.field span{color:var(--muted);font-size:.8rem}.field textarea{resize:vertical;min-height:72px}.pill-row{flex-wrap:wrap;gap:.45rem;display:flex}.pill-row button{background:var(--surface-soft);color:var(--muted);border:1px solid #0000;border-radius:999px;padding:.45rem .8rem;transition:all .2s}.pill-row button.active,.pill-row button:hover{background:var(--accent-soft);border-color:var(--accent-border);color:var(--ink)}.segmented{grid-template-columns:repeat(5,1fr);gap:.45rem;display:grid}.segmented button{border:1px solid var(--line);background:var(--surface-soft);border-radius:14px;flex-direction:column;align-items:center;gap:.15rem;padding:.7rem .35rem;transition:all .2s;display:flex}.segmented button i{font-style:normal;font-family:var(--font-display);color:var(--navy)}.segmented button small{color:var(--muted);font-size:.68rem}.segmented button.active{background:var(--accent-soft);border-color:var(--accent-border);box-shadow:0 0 0 1px #2f9e6b33}.mode-grid{grid-template-columns:repeat(2,1fr);gap:.55rem;display:grid}.mode-grid button{text-align:left;border:1px solid var(--line);background:var(--surface-soft);border-radius:16px;flex-direction:column;gap:.15rem;padding:.85rem;transition:all .2s;display:flex}.mode-grid button svg{width:64px;height:28px;color:var(--navy-soft);margin-bottom:.25rem}.mode-grid button span{color:var(--muted);font-size:.78rem}.mode-grid button small{color:var(--muted);font-size:.78rem;line-height:1.4}.mode-grid button.active{border-color:var(--accent-border);background:#f4fcf7;box-shadow:0 0 0 1px #2f9e6b40}.hosts{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}.host-card{border-radius:var(--card-radius);background:var(--surface-soft);border:1px solid var(--line);padding:.85rem}.host-card h4{margin:0 0 .65rem}.builder-side{flex-direction:column;gap:.8rem;display:flex;position:sticky;top:1rem}.panel{border-radius:var(--card-radius);background:var(--surface);border:1px solid var(--line);padding:1rem 1.05rem;animation:.6s 80ms both rise;box-shadow:0 10px 28px #1f4d630d}.panel h3{margin:.15rem 0 .75rem}.panel-head{justify-content:space-between;align-items:start;gap:.5rem;display:flex}.output-panel{background:linear-gradient(160deg,#eef6fb,#f7fbf9);min-height:220px}.generate-empty{border:1px dashed color-mix(in srgb, var(--navy) 30%, white);background:#ffffff8c;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;width:100%;min-height:180px;transition:border-color .2s,transform .2s;display:flex}.generate-empty:hover{border-color:var(--accent);transform:translateY(-2px)}.spark{color:var(--navy-soft);font-size:1.4rem;animation:2.2s ease-in-out infinite pulse}.generate-empty small{color:var(--muted)}.prompt-box{border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;max-height:320px;font-size:.84rem;line-height:1.55;font-family:var(--font-sans);background:#fffc;border-radius:14px;margin:0;padding:.85rem;overflow:auto}.primary-btn{width:100%;margin-top:.75rem}.ghost{border:1px solid var(--line);color:var(--navy);background:#ffffffb3;border-radius:999px;padding:.4rem .7rem}.preset-row{grid-template-columns:1fr auto;gap:.45rem;margin-bottom:.55rem;display:grid}.preset-row button,.action-row button{background:var(--surface-soft);border:1px solid var(--line);white-space:nowrap;border-radius:12px;padding:.55rem .75rem}.preset-row button:hover,.action-row button:hover{border-color:var(--accent-border);background:var(--accent-soft)}.action-row{flex-wrap:wrap;gap:.4rem;display:flex}.hint{color:var(--muted);margin:0;font-size:.82rem}.template-list{flex-direction:column;gap:.4rem;display:flex}.template-list button{text-align:left;background:var(--surface-soft);border:1px solid #0000;border-radius:14px;grid-template-columns:44px 1fr;align-items:center;gap:.65rem;padding:.65rem;transition:all .2s;display:grid}.template-list button:hover{border-color:var(--accent-border);background:var(--accent-soft)}.template-list i{width:44px;height:44px;color:var(--navy);border:1px solid var(--line);background:#fff;border-radius:12px;place-items:center;font-size:.78rem;font-style:normal;font-weight:700;display:grid}.template-list strong{font-size:.95rem;display:block}.template-list span{color:var(--muted);font-size:.8rem}.status-line{background:var(--accent-soft);color:#1f6b49;border:1px solid #2f9e6b40;border-radius:12px;margin:0;padding:.65rem .8rem;font-size:.85rem}.practice-view{animation:.45s both rise}.practice-view .back{margin-bottom:.8rem}.practice-view h2{align-items:baseline;gap:.6rem;margin:.2rem 0 .5rem;display:flex}.practice-view h2 span{color:var(--muted);font-size:.95rem;font-family:var(--font-sans)}.practice-card{border-radius:var(--card-radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);max-width:560px;margin-top:1rem;padding:1.25rem}.flash-face{background:linear-gradient(160deg,#f4faf7,#eef4f8);border-radius:16px;flex-direction:column;justify-content:center;gap:.45rem;min-height:180px;margin-bottom:1rem;padding:1rem;display:flex}.flash-face strong{font-size:2rem}.flash-face span{color:var(--muted)}.flash-face p{margin:.4rem 0 0;line-height:1.6}.flash-face .flash-meta{flex-wrap:wrap;gap:.4rem;margin-top:.35rem;display:flex}.flash-face .flash-meaning{color:var(--ink);font-size:.95rem}.flash-face .flash-sentence-zh{color:var(--muted);font-size:.88rem}.flash-face .flash-scenario{color:var(--muted);margin:.15rem 0 0;font-size:.82rem}.register-chip,.scenario-chip{font-size:.72rem;font-family:var(--font-sans);letter-spacing:.02em;border:1px solid var(--line);background:var(--surface-soft,#f3f6f8);color:var(--navy);border-radius:999px;align-items:center;padding:.15rem .55rem;display:inline-flex}.register-chip[data-register=sonkeigo],.register-chip[data-register=kenjougo]{border-color:var(--accent-border,#c9a227);background:#fff8e8}.register-chip[data-register=business]{background:#eef4f8;border-color:#7a9bb8}.speak-btn{border:1px solid var(--line);background:var(--surface);color:var(--navy);cursor:pointer;border-radius:999px;padding:.4rem .75rem;font-size:.85rem;transition:border-color .15s,background .15s}.speak-btn:hover:not(:disabled){border-color:var(--accent-border,#3f8f7a);background:var(--surface-soft,#f3f6f8)}.speak-btn:disabled{opacity:.65;cursor:not-allowed}.practice-nav{color:var(--muted);font-size:.85rem;font-family:var(--font-sans);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.practice-nav .nav-btns{gap:.4rem;display:flex}.practice-empty{color:var(--muted);background:linear-gradient(160deg,#f4faf7,#eef4f8);border-radius:16px;padding:1.25rem;line-height:1.6}.practice-empty strong{color:var(--ink);margin-bottom:.35rem;font-size:1.15rem;display:block}.empty-state-card{border-radius:var(--card-radius);text-align:center;background:linear-gradient(160deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;max-width:480px;margin:2rem auto;padding:2rem}.empty-state-card h2{color:var(--ink);margin-bottom:.5rem;font-size:1.25rem}.empty-state-card p{color:var(--muted);margin-bottom:1.25rem;line-height:1.6}.exercise-session .practice-card{max-width:720px}.progress-bar-track{background:#e5edf4;border-radius:999px;max-width:720px;height:8px;overflow:hidden}.progress-bar-fill{border-radius:inherit;background:linear-gradient(90deg, var(--navy-soft), var(--accent));height:100%;transition:width .25s;display:block}.choice-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.6rem;margin:.9rem 0;display:grid}.choice-btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;border-radius:14px;padding:.75rem .85rem;transition:border-color .15s,background .15s,transform .15s}.choice-btn:hover:not(:disabled){border-color:var(--accent-border,#3f8f7a);background:var(--surface-soft,#f3f6f8);transform:translateY(-1px)}.choice-btn.selected,.choice-btn[aria-pressed=true],.choice-btn.selected:hover:not(:disabled),.choice-btn[aria-pressed=true]:hover:not(:disabled){border-color:var(--navy);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--navy)}.choice-btn:disabled{cursor:not-allowed}.choice-btn.correct{background:#eaf7ef;border-color:#2f9e6b99}.choice-btn.wrong{background:#fff0ee;border-color:#c64a4a8c}.choice-result-mark{color:var(--ink);margin-left:.4rem;font-size:.72rem;font-weight:800;display:inline-block}.choice-btn.wrong .choice-result-mark{color:#8f3030}.practice-state-prefix{margin-right:.35rem;font-weight:800;display:inline-block}.order-bank{border:1px dashed var(--line);background:var(--surface-soft,#f3f6f8);min-height:3rem;color:var(--muted);border-radius:14px;flex-wrap:wrap;align-items:center;gap:.45rem;margin:.75rem 0;padding:.65rem;display:flex}footer{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-top:1.5rem;font-size:.78rem;line-height:1.5;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes pulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.kana-progress-bar{background:#e5edf4;border-radius:999px;height:8px;margin:.55rem 0 .25rem;overflow:hidden}.kana-progress-bar i{background:linear-gradient(90deg, var(--navy-soft), var(--accent));border-radius:inherit;height:100%;transition:width .35s;display:block}.kana-lab{animation:.45s both rise}.kana-hero{grid-template-columns:1.4fr auto;align-items:start;gap:1rem;margin-bottom:1rem;display:grid}.kana-hero h2{color:var(--navy);margin:.2rem 0 .5rem;font-size:clamp(1.5rem,2.6vw,2.1rem)}.kana-stats{flex-wrap:wrap;gap:.45rem;margin-top:.85rem;display:flex}.kana-stats span{background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.35rem .7rem;font-size:.82rem}.kana-stats span.live{background:var(--accent-soft);border-color:var(--accent-border);color:#1f6b49}.kana-pitch-tip{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:10px;max-width:42rem;margin-top:.75rem;padding:.65rem .8rem;font-size:.8rem;line-height:1.45}.kana-pitch-tip strong{color:var(--navy);margin-bottom:.2rem;font-size:.82rem;font-weight:700;display:block}.kana-pitch-tip p{margin:.2rem 0 0}.kana-script-toggle{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.kana-script-toggle button{background:var(--surface);border:1px solid var(--line);border-radius:18px;flex-direction:column;align-items:center;gap:.2rem;min-width:110px;padding:.85rem 1rem;transition:all .2s;display:flex}.kana-script-toggle button strong{font-size:1.8rem;line-height:1}.kana-script-toggle button span{color:var(--muted);font-size:.82rem}.kana-script-toggle button.active{background:var(--accent-soft);border-color:var(--accent-border);box-shadow:0 0 0 1px #2f9e6b33}.kana-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.55rem;display:flex}.mode-tabs{flex-wrap:wrap;gap:.4rem;display:flex}.mode-tabs button{background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.55rem .9rem;transition:all .2s}.mode-tabs button.active{background:var(--navy);border-color:var(--navy);color:#f7fcf9}.row-select{color:var(--muted);flex-direction:column;gap:.15rem;font-size:.72rem;display:flex}.unlock-line,.hint-line{color:var(--muted);margin:0 0 .85rem;font-size:.88rem}.kana-chart-wrap{border-radius:var(--card-radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);padding:1rem;overflow-x:auto}.kana-chart-head,.kana-chart-row{grid-template-columns:88px repeat(5,minmax(64px,1fr));align-items:stretch;gap:.4rem;margin-bottom:.4rem;display:grid}.kana-chart-head span{text-align:center;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:700}.row-label{flex-direction:column;justify-content:center;gap:.1rem;padding:.35rem;display:flex}.row-label small{color:var(--muted);font-size:.72rem}.row-label em{color:var(--warm);font-size:.68rem;font-style:normal}.kana-cell{border:1px solid var(--line);background:var(--surface-soft);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:.1rem;min-height:72px;transition:transform .18s,border-color .18s,background .18s;display:flex}.kana-cell b{font-family:var(--font-display);font-size:1.65rem;line-height:1}.kana-cell span{color:var(--muted);font-size:.75rem}.kana-cell:hover:not(.empty){border-color:var(--accent-border);transform:translateY(-2px)}.kana-cell.selected,.kana-cell.speaking{background:var(--accent-soft);border-color:var(--accent-border);box-shadow:0 0 0 2px #2f9e6b33}.kana-cell.mastered{background:linear-gradient(160deg,#f4fbf7,#eef5f8)}.kana-cell.mastered:after{content:"✓";position:absolute}.kana-cell.empty{opacity:.35;cursor:default;background:0 0;border-style:dashed}.kana-flash,.kana-listen,.kana-guide{border-radius:var(--card-radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);padding:1.25rem}.flash-stage{border-radius:var(--card-radius);background:linear-gradient(160deg,#eef6fb,#f4faf7);flex-direction:column;align-items:center;gap:.75rem;margin-bottom:1rem;padding:1.5rem 1rem;display:flex}.flash-kana{font-family:var(--font-display);color:var(--navy);border-radius:20px;padding:.5rem 1.5rem;font-size:clamp(4.5rem,12vw,6.5rem);line-height:1;transition:transform .2s}.flash-kana:hover{transform:scale(1.04)}.kana-flash-meta{text-align:center;opacity:.35;transition:opacity .25s}.kana-flash-meta.show{opacity:1}.kana-flash-meta strong{font-size:1.4rem;display:block}.kana-flash-meta span{color:var(--muted)}.flash-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.primary-btn.inline{width:auto;margin-top:0}.check{color:var(--muted);align-items:center;gap:.4rem;margin-right:.5rem;font-size:.88rem;display:flex}.listen-prompt{text-align:center;margin-bottom:1rem}.listen-prompt h3{margin:.2rem 0 .85rem}.speak-big{background:var(--btn-primary-bg);color:var(--btn-primary-fg);border-radius:999px;padding:.9rem 1.4rem;font-size:1.05rem;font-weight:700}.speak-big:hover{background:var(--btn-primary-hover-bg)}.listen-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;max-width:420px;margin:0 auto;display:grid}.listen-opt{border:1px solid var(--line);background:var(--surface-soft);min-height:88px;font-family:var(--font-display);border-radius:18px;font-size:2.4rem;transition:all .2s}.listen-opt:hover:not(:disabled){border-color:var(--accent-border);transform:translateY(-2px)}.listen-opt.correct{background:var(--accent-soft);border-color:var(--accent-border);color:#1f6b49}.listen-opt.wrong{color:#8f3030;background:#fdeeee;border-color:#e7a0a0}.listen-opt.dim{opacity:.45}.status-line.warn{color:#8f3030;background:#fdeeee;border-color:#e7a0a0}.guide-strip{flex-wrap:wrap;gap:.45rem;margin:1rem 0;display:flex}.guide-strip .kana-cell{flex:72px;min-width:72px}.kana-detail{border:1px solid var(--line);background:linear-gradient(145deg,#f8fbfc,#eef5f1);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:.9rem;padding:.9rem 1rem;display:flex}.kana-detail>div{align-items:center;gap:.85rem;display:flex}.detail-char{font-family:var(--font-display);color:var(--navy);font-size:2.6rem;line-height:1}.kana-detail p{color:var(--muted);margin:.15rem 0 0;font-size:.88rem}.kana-reset-row{margin-top:.85rem}.audio-status.live{background:var(--accent-soft);border-color:var(--accent-border);color:#1f6b49}.daily-review .primary-btn.inline{flex-shrink:0}.daily-review-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:.55rem .75rem;display:flex}.srs-guide-link{min-height:44px;color:var(--navy-soft);text-underline-offset:.2em;align-items:center;font-size:.86rem;font-weight:700;text-decoration:underline;text-decoration-thickness:1px;display:inline-flex}.srs-guide-link:hover{color:var(--navy)}.srs-guide-mobile-note{color:var(--muted);font-size:.82rem;font-weight:650;display:none}.practice-view,.content>.mode-tabs{width:min(100%,860px);margin-inline:auto}.practice-view .practice-card,.exercise-session .practice-card,.practice-view .progress-bar-track{width:100%;max-width:none}.practice-view{--workspace-accent:#2f9e6b;--workspace-accent-strong:#216d4d;--workspace-accent-soft:#eaf6ef;--workspace-prompt-from:#edf8f2;--workspace-prompt-to:#f8fcfa;--workspace-shadow:#2f9e6b21}.practice-view.placement-test,.practice-view.mock-exam{--workspace-accent:#1f4d63;--workspace-accent-strong:#17394a;--workspace-accent-soft:#e8f0f4;--workspace-prompt-from:#edf4f9;--workspace-prompt-to:#f8fbfd;--workspace-shadow:#1f4d6324}.practice-view.scenario-player,.practice-view.speaking-lab{--workspace-accent:#b86a19;--workspace-accent-strong:#74420f;--workspace-accent-soft:#f8ecdf;--workspace-prompt-from:#faf3ea;--workspace-prompt-to:#fffdf9;--workspace-shadow:#b86a1924}.practice-view>.eyebrow{color:var(--workspace-accent-strong)}.practice-view .practice-card{border-color:color-mix(in srgb, var(--workspace-accent) 24%, var(--line));background:linear-gradient(180deg, #fff 0%, color-mix(in srgb, var(--workspace-accent-soft) 18%, #fff) 100%);box-shadow:0 16px 40px #1f4d631a, 0 3px 10px var(--workspace-shadow);position:relative;overflow:hidden}.practice-view .practice-card:before{content:"";background:linear-gradient(90deg, var(--workspace-accent), color-mix(in srgb, var(--workspace-accent) 35%, white));pointer-events:none;height:4px;position:absolute;inset:0 0 auto}.practice-view .flash-face{border:1px solid color-mix(in srgb, var(--workspace-accent) 24%, white);border-left:4px solid var(--workspace-accent);background:linear-gradient(160deg, var(--workspace-prompt-from), var(--workspace-prompt-to));word-break:break-word;position:relative;box-shadow:inset 0 1px #ffffffd9}.practice-view .scenario-chip{border-color:color-mix(in srgb, var(--workspace-accent) 38%, white);background:var(--workspace-accent-soft);color:var(--workspace-accent-strong);font-weight:700}.practice-view .progress-bar-track{background:color-mix(in srgb, var(--workspace-accent) 12%, #edf2f6);box-shadow:inset 0 1px 2px #1f4d6314}.practice-view .progress-bar-fill{background:linear-gradient(90deg, var(--workspace-accent-strong), var(--workspace-accent))}.choice-grid{counter-reset:learning-choice}.practice-view .choice-grid .choice-btn{border-color:color-mix(in srgb, var(--workspace-accent) 16%, var(--line));min-height:48px;padding-left:3rem;line-height:1.5;position:relative;box-shadow:0 3px 12px #1f4d630e}.practice-view .choice-grid .choice-btn:before{counter-increment:learning-choice;content:counter(learning-choice, upper-alpha);background:var(--workspace-accent-soft);width:28px;height:28px;color:var(--workspace-accent-strong);font-family:var(--font-sans);border-radius:9px;place-items:center;font-size:.76rem;font-weight:700;line-height:1;display:grid;position:absolute;top:50%;left:.72rem;transform:translateY(-50%)}.practice-view .choice-grid .choice-btn:hover:not(:disabled){border-color:var(--workspace-accent);background:color-mix(in srgb, var(--workspace-accent-soft) 62%, white);box-shadow:0 7px 18px var(--workspace-shadow)}.practice-view .choice-grid .choice-btn.selected,.practice-view .choice-grid .choice-btn[aria-pressed=true],.practice-view .choice-grid .choice-btn.selected:hover:not(:disabled),.practice-view .choice-grid .choice-btn[aria-pressed=true]:hover:not(:disabled){border-color:var(--workspace-accent);background:var(--workspace-accent-soft);box-shadow:inset 0 0 0 1px var(--workspace-accent), 0 5px 16px var(--workspace-shadow)}.practice-view .choice-grid .choice-btn.selected:before,.practice-view .choice-grid .choice-btn[aria-pressed=true]:before{background:var(--workspace-accent);color:#fff}.practice-view.scenario-player .choice-grid .choice-btn,.practice-view.speaking-lab .choice-grid .choice-btn{padding-block:.65rem}.alignment-note{position:relative;overflow:hidden;box-shadow:0 7px 20px #1f4d630e}.alignment-note:before{content:"";background:linear-gradient(180deg, var(--navy), var(--accent));width:4px;position:absolute;inset:0 auto 0 0}.daily-review{border-color:color-mix(in srgb, var(--navy) 16%, var(--line));position:relative;overflow:hidden;box-shadow:0 9px 24px #1f4d6311}.daily-review:before{content:"";background:linear-gradient(180deg, var(--navy), var(--accent));width:4px;position:absolute;inset:0 auto 0 0}.task-grid button{--task-accent:#2f9e6b;--task-accent-strong:#216d4d;--task-accent-soft:#eaf6ef;border-color:color-mix(in srgb, var(--task-accent) 20%, var(--line));position:relative;overflow:hidden;box-shadow:0 9px 24px #1f4d6312}.task-grid button:nth-child(2){--task-accent:#4779bd;--task-accent-strong:#315f9f;--task-accent-soft:#eaf1fb}.task-grid button:nth-child(3){--task-accent:#b86a19;--task-accent-strong:#74420f;--task-accent-soft:#f8ecdf}.task-grid button:before{content:"";background:linear-gradient(90deg, var(--task-accent), color-mix(in srgb, var(--task-accent) 32%, white));height:4px;position:absolute;inset:0 0 auto}.task-grid button:hover{border-color:var(--task-accent);box-shadow:0 14px 30px color-mix(in srgb, var(--task-accent) 16%, transparent)}.task-grid i{background:var(--task-accent-soft);color:var(--task-accent-strong);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--task-accent) 18%, white)}.task-grid b{color:var(--task-accent-strong)}@media (width<=1100px){.kana-hero,.builder-grid,.unit-banner,.builder-hero,.hosts,.task-grid{grid-template-columns:1fr}.segmented,.unit-map>div{grid-template-columns:repeat(3,1fr)}.builder-side{position:static}.unit-banner .progress-ring{justify-self:start}}.auth-panel{border-radius:var(--card-radius);background:color-mix(in srgb, var(--surface) 88%, var(--accent-soft));border:1px solid var(--line);margin:1.35rem 0;padding:1rem 1.1rem}.auth-panel.signed-in{background:var(--surface)}.auth-user-row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.auth-email{word-break:break-all;margin:.15rem 0 .35rem;font-weight:600}.auth-sync{color:var(--muted);margin:0;font-size:.85rem}.auth-sync.synced{color:var(--navy-soft)}.auth-sync.syncing{color:var(--navy)}.auth-sync.error{color:var(--warm)}.auth-mode{background:var(--surface-soft);border:1px solid var(--line);border-radius:10px;gap:.25rem;margin-bottom:.65rem;padding:.2rem;display:inline-flex}.auth-mode button{color:var(--muted);border-radius:8px;padding:.35rem .75rem;font-size:.85rem;font-weight:600}.auth-mode button.active{color:var(--navy);border:1px solid var(--accent-border);background:#fff}.auth-hint{color:var(--muted);margin:0 0 .75rem;font-size:.9rem;line-height:1.5}.auth-form{gap:.65rem;max-width:420px;display:grid}.auth-form label{color:var(--navy);gap:.3rem;font-size:.85rem;font-weight:600;display:grid}.auth-form input{border:1px solid var(--line);background:#fff;border-radius:10px;padding:.55rem .7rem}.auth-btn{background:var(--navy);color:#f4faf7;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;padding:.55rem .95rem;font-weight:600;text-decoration:none;display:inline-flex}.auth-btn:hover:not(:disabled){background:var(--navy-soft)}.auth-btn:disabled{opacity:.65;cursor:default}.auth-btn.ghost{background:var(--surface);color:var(--navy);border-color:var(--line)}.auth-btn.ghost:hover:not(:disabled){border-color:var(--accent-border);background:var(--surface-soft)}.auth-btn.danger{background:color-mix(in srgb, var(--warm) 88%, #3a1010)}.auth-message{color:var(--navy-soft);margin:.65rem 0 0;font-size:.88rem}.data-controls{border-top:1px solid var(--line);margin-top:1.75rem;padding-top:1.25rem}.data-controls h2{margin:.2rem 0 .45rem;font-size:1.25rem}.data-controls-lede{color:var(--muted);max-width:52rem;margin:0 0 .85rem;line-height:1.55}.data-controls-actions{flex-wrap:wrap;gap:.5rem;display:flex}.hub-footer{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;margin-top:2rem;font-size:.9rem;display:flex}.hub-link{color:var(--navy-soft);text-underline-offset:.15em;font-weight:600;text-decoration:underline}.hub-link:hover{color:var(--navy)}.privacy-page{max-width:720px;min-height:100vh;margin:0 auto;padding:2.5rem 1.5rem 3rem}.privacy-back{margin-bottom:1rem}.privacy-block{margin-bottom:1.35rem}.privacy-block h2{margin:0 0 .45rem;font-size:1.2rem}.privacy-block p,.privacy-block ul{color:var(--muted);margin:0;line-height:1.6}.privacy-block ul{margin-top:.45rem;padding-left:1.15rem}.error-boundary{max-width:560px;min-height:50vh;margin:0 auto;padding:2.5rem 1.5rem}.error-boundary-toolbar{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.35rem;display:flex}.error-boundary h1{margin:.2rem 0 .6rem;font-size:1.6rem}.error-boundary-detail{background:var(--surface-soft);border:1px solid var(--line);color:var(--warm);word-break:break-word;border-radius:10px;margin:.75rem 0 1rem;padding:.65rem .8rem;font-size:.85rem}.error-boundary-actions{flex-wrap:wrap;gap:.5rem;display:flex}@media (width<=860px){.app-shell,.math-shell,.calculus-shell,.physics-shell,.chemistry-shell,.cs-shell,.toeic-shell,.chinese-app-shell{min-height:100vh;overflow-y:visible;grid-template-columns:minmax(0,1fr)!important;height:auto!important;max-height:none!important}.sidebar,.math-sidebar,.calculus-sidebar,.physics-sidebar,.chemistry-sidebar,.cs-sidebar,.chinese-sidebar{z-index:30;border-right:none;border-bottom:1px solid var(--line);width:100%;max-width:100vw;padding:var(--track-header-padding-y) var(--track-chrome-gutter-x);overscroll-behavior:auto;scrollbar-gutter:auto;gap:.35rem;position:sticky;top:0;overflow-y:visible;height:auto!important;max-height:none!important}.sidebar>.brand,.math-sidebar>.brand,.calculus-sidebar>.brand,.physics-sidebar>.brand,.chemistry-sidebar>.brand{display:none}.lang-switch,.hub-back{margin-bottom:0}.sidebar nav,.math-sidebar nav,.calculus-sidebar nav,.physics-sidebar nav,.chemistry-sidebar nav,.chinese-sidebar nav{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;align-items:center;width:100%;max-width:100%;padding-bottom:.2rem;overflow-x:auto;flex-direction:row!important}.sidebar .nav-heading,.math-sidebar .nav-heading,.calculus-sidebar .nav-heading,.physics-sidebar .nav-heading,.chemistry-sidebar .nav-heading{display:none}.sidebar nav button,.math-sidebar nav button,.calculus-sidebar nav button,.physics-sidebar nav button,.chemistry-sidebar nav button,.chinese-sidebar nav button{white-space:nowrap;width:auto;min-height:var(--touch-min);min-width:var(--touch-min);flex:none}.sidebar nav button .nav-label,.math-sidebar nav button .nav-label,.calculus-sidebar nav button .nav-label,.physics-sidebar nav button .nav-label,.chemistry-sidebar nav button .nav-label{white-space:nowrap}.stage-block,.grades-pill-grid,.grades-nav-group,.course-summary{display:none!important}.mobile-brand{margin-bottom:.5rem;display:flex}.mobile-brand .brand-mark{border-radius:12px;width:38px;height:38px;font-size:1.15rem}.topbar{gap:var(--track-topbar-gap);margin-bottom:var(--track-topbar-margin);flex-direction:column;position:relative}.topbar>div:first-child{min-width:0;padding-right:6.5rem}.header-actions{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:flex-start;gap:.45rem;width:100%;display:grid}.header-actions .audio-status.idle{display:none}.header-actions .audio-status.live{grid-column:1/-1;justify-self:start}.header-actions .unit-select,.header-actions .unit-select select{width:100%;min-width:0}.header-actions .xp{white-space:nowrap;min-height:44px;position:absolute;top:0;right:0}.alignment-note{align-items:flex-start;gap:.25rem;margin-bottom:.75rem;padding:.65rem .8rem}.alignment-note strong,.alignment-note span{width:100%}.alignment-note span{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.45;display:-webkit-box;overflow:hidden}.unit-banner{padding:1.05rem;display:block}.unit-banner>div:first-child{padding-right:0}.unit-banner h2{max-width:calc(100% - 4.5rem);margin:.45rem 0 .35rem;font-size:clamp(1.55rem,7vw,1.8rem);line-height:1.2}.unit-banner p{-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:.75rem;line-height:1.45;display:-webkit-box;overflow:hidden}.unit-banner .hero-art,.unit-banner .toeic-cert-visual{display:none}.unit-banner .progress-ring{width:64px;height:64px;position:absolute;top:1rem;right:1rem;box-shadow:inset 0 0 0 6px #ffffffbf}.unit-banner .progress-ring>div{width:46px;height:46px}.unit-banner .progress-ring strong{font-size:.88rem}.unit-banner .progress-ring small{font-size:.56rem}.task-grid{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;grid-template-columns:repeat(3,minmax(260px,82vw));padding-bottom:.55rem;overflow-x:auto}.task-grid button{scroll-snap-align:start}.practice-view .back{margin-bottom:.55rem}.practice-view h2{font-size:clamp(1.55rem,7vw,1.9rem);line-height:1.2}.practice-card{margin-top:.75rem;padding:1rem}.practice-view .choice-grid .choice-btn{padding-left:2.85rem}.daily-review{flex-wrap:wrap;padding-left:1.25rem}.daily-review-actions{justify-content:flex-start;width:100%}.content,.calculus-content,.math-content,.physics-content,.chemistry-content,.cs-main-viewport{padding:var(--track-content-padding-mobile);overscroll-behavior-y:auto;max-width:100vw;height:auto;max-height:none;overflow-y:visible}.calculus-units-nav{display:none!important}.stage-switch-pills{flex-wrap:wrap;width:100%}.stage-switch-pills>*{flex:9rem;min-width:0}.builder-steps:before{display:none}.mode-grid,.segmented{grid-template-columns:1fr 1fr}}@media (width<=720px){.srs-guide-link{display:none}.srs-guide-mobile-note{display:inline}}:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.hub-hero,.hub-card,.hub-card:hover,.hero-art,.hub-primary-cta,.btn-a11y-trigger{transform:none!important}}@media (prefers-reduced-motion:no-preference){.hub-hero{animation:.5s both rise}.hero-art{animation:5s ease-in-out infinite floaty}.hub-card{transition:transform .2s,border-color .2s,box-shadow .2s}.hub-card:hover{transform:translateY(-4px)}}.hub-card.math{border-top:4px solid #5a8a7e}.hub-card.math:hover{border-color:#3f6f64;box-shadow:0 12px 24px -4px #2563eb26}.hub-card-mark.math-mark,.brand-mark.math-mark{color:#fff;background:linear-gradient(135deg,#3f6f64,#5a8a7e);font-family:KaTeX_Math,serif,sans-serif;font-weight:700}.math-shell{grid-template-columns:var(--track-sidebar-width) minmax(0, 1fr);background:var(--bg);height:100vh;max-height:100vh;display:grid;overflow:hidden}.math-sidebar{background:var(--surface);border-right:1px solid var(--line);padding:var(--track-sidebar-padding);gap:var(--track-sidebar-gap);box-sizing:border-box;flex-direction:column;height:100vh;max-height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.nav-heading{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:.2rem 0 .3rem;font-size:.72rem;font-weight:700}.stage-block{margin-bottom:.45rem}.stage-title{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.28rem;font-size:.72rem;font-weight:700;display:block}.grades-pill-grid{grid-template-columns:repeat(3,1fr);gap:.3rem;display:grid}.grade-pill-btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;text-align:center;border-radius:8px;min-height:36px;padding:.35rem .2rem;font-size:.75rem;font-weight:600;transition:all .15s}.grade-pill-btn:hover{background:var(--surface-soft);border-color:#93c5fd}.grade-pill-btn.selected{color:#fff;background:#3f6f64;border-color:#3f6f64;box-shadow:0 1px 4px #2563eb40}.math-hero-card.compact-hero{color:#fff;background:linear-gradient(135deg,#2f5c4e,#3f6f64);border-radius:14px;flex-direction:column;gap:.7rem;margin-bottom:1rem;padding:1.05rem 1.2rem;display:flex;box-shadow:0 2px 8px #1e3a8a26}.hero-header-line{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.55rem;display:flex}.hero-title-group{flex-wrap:wrap;align-items:center;gap:.45rem;min-width:0;max-width:100%;display:flex}.hero-title-group h2{font-size:var(--track-hero-title-size);color:#fff;word-break:break-word;margin:0;line-height:1.3}.hero-desc-inline{color:#ffffffe6;word-break:break-word;max-width:100%;font-size:.86rem;line-height:1.5}.stage-pill{white-space:nowrap;background:#fff3;border-radius:999px;padding:.2rem .55rem;font-size:.74rem;font-weight:600}.exam-target-pill{color:#78350f;white-space:nowrap;background:#fbbf24;border-radius:999px;padding:.2rem .55rem;font-size:.74rem;font-weight:700}.hero-quick-actions{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.btn-hero-primary{color:var(--btn-primary-bg);cursor:pointer;white-space:nowrap;background:#fff;border:none;border-radius:8px;justify-content:center;align-items:center;min-height:40px;padding:.45rem .85rem;font-size:.82rem;font-weight:700;transition:transform .15s,box-shadow .15s;display:inline-flex}.btn-hero-primary:hover{transform:translateY(-1px);box-shadow:0 2px 6px #00000026}.btn-hero-secondary{color:#fff;cursor:pointer;white-space:nowrap;background:#ffffff26;border:1px solid #ffffff4d;border-radius:8px;justify-content:center;align-items:center;min-height:40px;padding:.45rem .75rem;font-size:.8rem;font-weight:600;transition:background .15s;display:inline-flex}.btn-hero-secondary:hover{background:#ffffff40}@media (width<=480px){.hero-quick-actions{grid-template-columns:1fr 1fr;gap:.35rem;width:100%;display:grid}.hero-quick-actions .btn-hero-primary{grid-column:1/-1}.btn-hero-primary,.btn-hero-secondary{text-align:center;width:100%}}.unit-map-section{margin-bottom:.85rem}.section-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.45rem;margin-bottom:.45rem;display:flex}.section-title-row h3{color:var(--ink);margin:0;font-size:.95rem}.unit-count-badge{color:var(--muted);background:var(--surface-soft);border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:.15rem .45rem;font-size:.72rem}.unit-cards-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:.55rem;margin:.25rem 0 .55rem;display:grid}.unit-map-card{background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:10px;flex-direction:column;min-width:0;padding:.7rem .85rem;transition:all .15s;display:flex}.unit-map-card:hover{border-color:#5a8a7e;transform:translateY(-1px);box-shadow:0 2px 6px #0000000d}.unit-map-card.active{background:#f8faff;border-color:#3f6f64;box-shadow:0 2px 6px #2563eb1a}.unit-card-header{justify-content:space-between;align-items:center;margin-bottom:.2rem;display:flex}.unit-seq{color:#3f6f64;font-size:.72rem;font-weight:700}.unit-strand{background:var(--surface-soft);color:var(--muted);white-space:nowrap;border-radius:4px;padding:.08rem .35rem;font-size:.65rem}.unit-map-card h4{color:var(--ink);word-break:break-word;margin:0 0 .08rem;font-size:.82rem}.unit-sub{color:var(--muted);word-break:break-word;flex-grow:1;margin:0 0 .25rem;font-size:.68rem;line-height:1.2}.unit-progress-bar-wrap{background:#e2e8f0;border-radius:999px;height:3px;margin-bottom:.2rem;overflow:hidden}.unit-progress-bar-fill{background:#10b981;border-radius:999px;height:100%;transition:width .3s}.unit-meta-footer{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:.2rem;font-size:.65rem;display:flex}.current-indicator{color:#3f6f64;white-space:nowrap;font-weight:700}.concepts-section h3,.labs-section h3{color:var(--ink);margin:.3rem 0 .18rem;font-size:.86rem}.concept-cards-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:.3rem;margin:.18rem 0 .35rem;display:grid}.concept-item-card{background:var(--surface);border:1px solid var(--line);border-left:3px solid #5a8a7e;border-radius:6px;min-width:0;padding:.35rem .55rem}.concept-idx{color:#3f6f64;white-space:nowrap;margin-bottom:.05rem;font-size:.65rem;font-weight:700;display:block}.concept-text{color:var(--ink);word-break:break-word;font-size:.76rem;line-height:1.25}.labs-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:.3rem;margin-top:.18rem;display:grid}@media (width<=480px){.unit-cards-grid,.concept-cards-grid,.labs-grid{grid-template-columns:1fr}}.lab-entry-card{background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:8px;align-items:center;gap:.45rem;padding:.35rem .55rem;transition:all .15s;display:flex}.lab-entry-card:hover{border-color:#8b5cf6;transform:translateY(-1px);box-shadow:0 2px 8px #8b5cf61f}.lab-icon{background:#f5f3ff;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:1.1rem;display:flex}.btn-enter-lab{border:1px solid var(--line);background:var(--surface);color:#8b5cf6;cursor:pointer;border-radius:5px;flex-shrink:0;margin-left:auto;padding:.2rem .45rem;font-size:.68rem;font-weight:600}.lab-info h4{color:var(--ink);margin:0 0 .25rem;font-size:1rem}.lab-info p{color:var(--muted);margin:0;font-size:.82rem;line-height:1.4}.btn-enter-lab{color:#6d28d9;cursor:pointer;white-space:nowrap;background:#faf5ff;border:1px solid #ddd6fe;border-radius:8px;margin-left:auto;padding:.45rem .85rem;font-size:.8rem;font-weight:600}.math-formula{max-width:100%;font-family:KaTeX_Main,Times New Roman,serif}.math-formula.inline-mode{vertical-align:middle;scrollbar-width:none;max-width:100%;display:inline-block;overflow:auto hidden}.math-formula.inline-mode::-webkit-scrollbar{display:none}.math-formula.block-mode{box-sizing:border-box;width:100%;max-width:100%;display:block;overflow:auto hidden}.katex-block-wrapper{box-sizing:border-box;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#94a3b866 transparent;max-width:100%;margin:.75rem 0;padding:.5rem .25rem;overflow:auto hidden}.katex-display{-webkit-overflow-scrolling:touch;scrollbar-width:thin;max-width:100%!important;margin:.5em 0!important;padding:.25rem 0!important;overflow:auto hidden!important}.katex-display>.katex{text-align:center;max-width:100%}.math-practice-shell{width:100%;max-width:820px;margin:0 auto}.practice-top-bar{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.practice-progress-pill{background:var(--surface-soft);border:1px solid var(--line);border-radius:999px;padding:.35rem .85rem;font-size:.9rem;font-weight:600}.practice-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--card-radius);overflow-wrap:break-word;word-break:break-word;min-width:0;margin-bottom:.75rem;padding:1.15rem 1.35rem;box-shadow:0 4px 12px #00000008}.question-header{justify-content:space-between;align-items:center;margin-bottom:.65rem;display:flex}.diff-badge{color:#d97706;background:#fef3c7;border-radius:6px;padding:.15rem .5rem;font-size:.75rem;font-weight:700}.question-body{color:var(--ink);overflow-wrap:break-word;word-break:break-word;margin-bottom:1rem;font-size:1.15rem;line-height:1.6}.options-grid{grid-template-columns:minmax(0,1fr);gap:.5rem;width:100%;display:grid}.option-btn{border:2px solid var(--line);background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;box-sizing:border-box;overflow-wrap:break-word;word-break:break-word;border-radius:10px;align-items:center;gap:.75rem;width:100%;min-width:0;padding:.65rem 1rem;font-size:.95rem;transition:all .15s;display:flex}.option-btn:hover:not(:disabled){background:#f8faff;border-color:#93c5fd}.option-btn.selected{background:#e7f1ec;border-color:#3f6f64}.option-btn.correct-opt{color:#065f46;background:#ecfdf5;border-color:#10b981}.option-btn.wrong-opt{color:#991b1b;background:#fef2f2;border-color:#ef4444}.opt-letter{background:var(--surface-soft);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.75rem;font-weight:700;display:flex}.opt-content{overflow-wrap:break-word;word-break:break-word;flex:1;min-width:0}.fill-input-group{flex-direction:column;align-items:stretch;gap:.35rem;display:flex}.practice-answer-label{color:var(--ink);font-size:.82rem;font-weight:650}.fill-text-input{border:1.5px solid var(--line);background:var(--surface);width:100%;color:var(--ink);box-sizing:border-box;border-radius:8px;outline:none;padding:.4rem .75rem;font-size:.9rem}.fill-text-input:focus{border-color:var(--accent-border);outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}.action-buttons-row{justify-content:flex-end;align-items:center;gap:.4rem;margin-top:.4rem;display:flex}.btn-hint-toggle{color:#b45309;cursor:pointer;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:.28rem .6rem;font-size:.78rem;font-weight:600}.btn-submit-answer,.btn-next-question{color:#fff;cursor:pointer;background:#3f6f64;border:none;border-radius:8px;padding:.32rem 1.1rem;font-size:.84rem;font-weight:700;transition:opacity .15s}.btn-submit-answer:disabled{opacity:.5;cursor:not-allowed}.hint-card{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;margin-top:.4rem;padding:.4rem .7rem;font-size:.78rem;line-height:1.35}.solution-card{border:1px solid var(--line);box-sizing:border-box;overflow-wrap:break-word;word-break:break-word;border-radius:8px;max-width:100%;margin-top:.4rem;padding:.5rem .75rem}.solution-card.sol-correct{background:#ecfdf5;border-color:#a7f3d0}.solution-card.sol-wrong{background:#fef2f2;border-color:#fecaca}.solution-status{margin-bottom:.2rem;font-size:.85rem;font-weight:700}.solution-content{color:var(--ink);overflow-wrap:break-word;word-break:break-word;white-space:normal;max-width:100%;font-size:.8rem;line-height:1.4}.solution-content p,.solution-content div,.solution-content span{overflow-wrap:break-word;word-break:break-word;white-space:normal}.competency-note{color:var(--muted);border-top:1px dashed var(--line);margin-top:.4rem;padding-top:.3rem;font-size:.72rem}.math-mock-shell{max-width:860px;margin:0 auto}.mock-nav-tabs{border-bottom:2px solid var(--line);gap:.5rem;margin-bottom:1.5rem;padding-bottom:.5rem;display:flex}.mock-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.6rem 1.25rem;font-size:.95rem;font-weight:700}.mock-tab.active{color:#3f6f64;background:#e7f1ec}.mock-intro-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--card-radius);padding:2rem}.exam-meta-grid{background:var(--surface-soft);border-radius:12px;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.5rem 0;padding:1rem;display:grid}.meta-cell span{color:var(--muted);font-size:.8rem;display:block}.meta-cell strong{color:var(--ink);font-size:1rem}.mock-q-item{background:var(--surface);border:1px solid var(--line);border-radius:16px;margin-bottom:1.5rem;padding:1.5rem}.mock-q-num{color:#3f6f64;margin-bottom:.5rem;font-size:.85rem;font-weight:700}.mock-q-text{margin-bottom:1rem;font-size:1.1rem;line-height:1.6}.mock-options{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.mock-opt-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;border-radius:10px;align-items:center;gap:.5rem;padding:.75rem;display:flex}.mock-opt-btn.selected{background:#e7f1ec;border-color:#3f6f64}.score-hero{border-radius:var(--card-radius);background:#f8faff;align-items:center;gap:2rem;margin:1.5rem 0;padding:2rem;display:flex}.score-circle{color:#fff;background:#3f6f64;border-radius:50%;justify-content:center;align-items:center;width:100px;height:100px;font-size:2rem;font-weight:800;display:flex}.scale-badge{color:#1e40af;background:#dbeafe;border-radius:8px;padding:.35rem .75rem;font-size:1.2rem;font-weight:700;display:inline-block}.vault-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;margin-top:1.5rem;display:grid}.vault-item-card{background:var(--surface);border-radius:var(--card-radius);border:1px solid #fecaca;flex-direction:column;padding:1.25rem;display:flex}.modal-overlay{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--surface);border-radius:var(--card-radius);width:90%;max-width:600px;max-height:85vh;padding:2rem;overflow-y:auto}.math-lab{background:var(--surface);border:1px solid var(--line);border-radius:var(--card-radius);margin-top:1rem;padding:1.5rem}.lab-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.lab-header h3{margin:0 0 .25rem;font-size:1.25rem}.lab-desc{color:var(--muted);margin:0;font-size:.9rem}.labs-sub-bar{align-items:center;gap:1rem;margin-bottom:1rem;display:flex;overflow-x:auto}.pill-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:999px;padding:.4rem .85rem;font-size:.85rem;font-weight:600}.blocks-canvas{grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem;display:grid}.place-column{background:var(--surface-soft);border:1px solid var(--line);border-radius:16px;padding:1rem}.tens-grid{flex-wrap:wrap;gap:.5rem;min-height:120px;display:flex}.block-ten{background:#5a8a7e;border:1px solid #2f5c4e;border-radius:4px;flex-direction:column;width:18px;height:120px;display:flex}.block-ten .segment{border-bottom:1px solid #fff6;flex:1}.ones-grid{flex-wrap:wrap;align-content:flex-start;gap:.5rem;min-height:120px;display:flex}.block-one{background:#10b981;border:1px solid #047857;border-radius:4px;width:18px;height:18px}.mult-table-grid{background:#cbd5e1;border-radius:8px;grid-template-columns:repeat(10,1fr);gap:2px;max-width:500px;margin:0 auto;padding:2px;display:grid}.mult-cell,.mult-header-cell,.mult-corner-cell{aspect-ratio:1;cursor:pointer;background:#fff;border:none;justify-content:center;align-items:center;font-size:.85rem;font-weight:600;display:flex}.mult-header-cell{color:#475569;background:#efe6d8;font-weight:700}.mult-cell.selected{color:#fff;background:#5a8a7e}.mult-cell.highlighted{background:#e7f1ec}.fraction-layout,.coord-layout,.pythagoras-layout,.unit-circle-layout,.calculus-layout{grid-template-columns:1fr 1fr;align-items:center;gap:1.5rem;display:grid}.fraction-math-box{flex-direction:column;align-items:center;font-size:2.5rem;font-weight:700;display:inline-flex}.fraction-bar{background:var(--ink);width:60px;height:4px;margin:2px 0}.toeic-chunk-lab,.toeic-story-review,.signal-decision-view{flex-direction:column;gap:1.25rem;animation:.3s both rise;display:flex}.chunk-top-bar,.review-top-bar,.signal-top-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.btn-story-mode{color:#166534;cursor:pointer;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:.45rem .9rem;font-size:.9rem;font-weight:600;transition:all .2s}.btn-story-mode:hover{background:#dcfce7;border-color:#86efac}.chunk-hero-box,.review-hero-card,.signal-hero-card{border:1px solid var(--border);background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 4px 12px #00000008}.week-badge-row{gap:.5rem;margin-bottom:.5rem;display:flex}.week-pill{color:#2f5c4e;background:#e7f1ec;border-radius:999px;padding:.2rem .6rem;font-size:.8rem;font-weight:700}.cert-pill{color:#b45309;background:#fef3c7;border-radius:999px;padding:.2rem .6rem;font-size:.8rem;font-weight:700}.chunks-tabs-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin-top:1.25rem;display:grid}.chunk-tab-card{text-align:left;cursor:pointer;background:#f3eadc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:.25rem;padding:.85rem;transition:all .2s;display:flex}.chunk-tab-card:hover{background:#efe6d8;border-color:#cbd5e1}.chunk-tab-card.active{background:#e7f1ec;border-color:#5a8a7e;box-shadow:0 2px 8px #3f6f6426}.chunk-num{color:#64748b;font-size:.75rem;font-weight:600}.chunk-en{color:#0f172a;font-size:1rem}.chunk-tab-card.active .chunk-en{color:#2f5c4e}.chunk-zh{color:#475569;font-size:.85rem}.chunk-detail-container{flex-direction:column;gap:1.25rem;display:flex}.chunk-header-card{border:1px solid var(--border);background:#fff;border-radius:12px;grid-template-columns:1.4fr 1fr;gap:1.5rem;padding:1.5rem;display:grid}@media (width<=768px){.chunk-header-card{grid-template-columns:1fr}}.chunk-main-title h1{color:#0f172a;margin:.4rem 0 .2rem;font-size:2rem}.chunk-meaning-lg{color:#047857;margin-bottom:.6rem;font-size:1.2rem;font-weight:600}.action-signal-note{color:#334155;background:#f0fdf4;border-left:4px solid #22c55e;border-radius:8px;padding:.6rem .8rem;font-size:.95rem}.rhythm-card{background:#fafaf9;border:1px solid #e7e5e4;border-radius:10px;flex-direction:column;justify-content:center;padding:1rem;display:flex}.rhythm-tag{color:#ea580c;letter-spacing:.05em;margin-bottom:.35rem;font-size:.75rem;font-weight:700}.rhythm-stress{color:#c2410c;margin:.2rem 0;font-family:monospace;font-size:1.35rem;font-weight:700}.rhythm-desc{color:#78716c;font-size:.85rem}.shadowing-console-card{border:1px solid var(--border);background:#fff;border-radius:12px;padding:1.5rem}.console-head{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.audio-speed-controls{gap:.35rem;display:flex}.btn-speed{cursor:pointer;background:#efe6d8;border:1px solid #cbd5e1;border-radius:6px;padding:.3rem .6rem;font-size:.85rem}.btn-speed.active{color:#fff;background:#1e293b;border-color:#1e293b}.steps-cards-row{grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.25rem;display:grid}@media (width<=640px){.steps-cards-row{grid-template-columns:1fr}}.step-card{cursor:pointer;background:#f3eadc;border:1px solid #e2e8f0;border-radius:10px;padding:1rem;transition:all .2s;position:relative}.step-card.active{background:#e7f1ec;border-color:#5a8a7e}.step-num{color:#334155;text-align:center;background:#cbd5e1;border-radius:50%;width:24px;height:24px;margin-bottom:.5rem;font-size:.85rem;font-weight:700;line-height:24px;display:inline-block}.step-card.active .step-num{color:#fff;background:#5a8a7e}.step-card h4{margin:0 0 .25rem;font-size:.95rem}.step-card p{color:#64748b;margin:0;font-size:.82rem}.audio-action-row{align-items:center;gap:1rem;display:flex}.btn-play-chunk{color:#fff;cursor:pointer;background:#3f6f64;border:none;border-radius:8px;padding:.75rem 1.5rem;font-size:1rem;font-weight:700}.btn-play-chunk:hover{background:#2f5c4e}.action-hint{color:#64748b;font-size:.85rem}.examples-section{border:1px solid var(--border);background:#fff;border-radius:12px;padding:1.5rem}.examples-list{flex-direction:column;gap:.85rem;margin-top:1rem;display:flex}.example-item-card{background:#f3eadc;border:1px solid #e2e8f0;border-radius:10px;align-items:flex-start;gap:1rem;padding:1rem;display:flex}.ex-num{text-align:center;color:#475569;background:#e2e8f0;border-radius:50%;width:26px;height:26px;font-size:.85rem;font-weight:700;line-height:26px}.ex-text-content{flex:1}.ex-en{color:#0f172a;margin:0 0 .25rem;font-size:1.05rem}.ex-zh{color:#475569;margin:0;font-size:.9rem}.ex-note{color:#0369a1;margin-top:.35rem;font-size:.82rem}.btn-play-ex,.btn-play-mini{cursor:pointer;background:#efe6d8;border:1px solid #cbd5e1;border-radius:6px;padding:.4rem .7rem;font-size:.85rem}.btn-play-ex:hover,.btn-play-mini:hover{background:#e2e8f0}.variations-pitfall-grid{grid-template-columns:1.2fr 1fr;gap:1rem;display:grid}@media (width<=768px){.variations-pitfall-grid{grid-template-columns:1fr}}.variations-card,.pitfall-card{border:1px solid var(--border);background:#fff;border-radius:12px;padding:1.25rem}.var-list{flex-direction:column;gap:.6rem;margin-top:.75rem;display:flex}.var-row{background:#f3eadc;border-radius:6px;justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.var-en{color:#1e293b;font-size:.95rem}.var-zh{color:#64748b;font-size:.85rem}.pitfall-card{background:#fff5f5;border-color:#fecaca}.pitfall-tag{color:#dc2626;font-size:.85rem;font-weight:700}.pitfall-wrong{color:#991b1b;margin:.5rem 0;font-size:1rem;font-weight:700}.pitfall-reason{color:#7f1d1d;font-size:.85rem;line-height:1.45}.mini-dialog-section{border:1px solid var(--border);background:#fff;border-radius:12px;padding:1.5rem}.dialog-box{flex-direction:column;gap:.85rem;margin-top:1rem;display:flex}.turn-a,.turn-b{align-items:flex-start;gap:.75rem;display:flex}.avatar{color:#fffcf7;background:#3f6f64;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:.85rem;font-weight:700;display:flex}.turn-b .avatar{background:#3f6f64}.bubble{background:#efe6d8;border-radius:10px;flex:1;padding:.75rem 1rem}.d-en{color:#0f172a;margin:0 0 .2rem;font-weight:600}.d-zh{color:#64748b;margin:0;font-size:.85rem}.production-section{border:1px solid var(--border);background:#fff;border-radius:12px;padding:1.5rem}.prod-list{flex-direction:column;gap:.75rem;margin-top:1rem;display:flex}.prod-accordion{background:#f3eadc;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem 1rem}.prod-summary{cursor:pointer;color:#1e293b;font-weight:600}.prod-answer-reveal{color:#059669;border-top:1px dashed #cbd5e1;justify-content:space-between;align-items:center;margin-top:.75rem;padding-top:.75rem;font-size:1.05rem;display:flex}.story-sentences-card,.decision-table-card{border:1px solid var(--border);background:#fff;border-radius:12px;padding:1.5rem}.story-list{flex-direction:column;gap:.85rem;margin-top:1rem;display:flex}.story-sentence-item{background:#f3eadc;border:1px solid #e2e8f0;border-radius:10px;align-items:flex-start;gap:1rem;padding:.85rem 1rem;display:flex}.st-seq{color:#5a8a7e;font-size:1.1rem;font-weight:700}.st-en{color:#0f172a;margin:0 0 .25rem;font-size:1rem;font-weight:600}.st-zh{color:#475569;margin:0;font-size:.9rem}.decision-table-wrap,.table-responsive{margin-top:1rem;overflow-x:auto}.decision-table{border-collapse:collapse;text-align:left;width:100%}.decision-table th,.decision-table td{border-bottom:1px solid #e2e8f0;padding:.85rem 1rem}.decision-table th{color:#475569;background:#f3eadc;font-size:.85rem;font-weight:700}.decision-table tbody th{color:inherit;font-size:inherit;text-align:left;background:0 0}.rule-pill{color:#92400e;background:#fef3c7;border-radius:6px;padding:.3rem .6rem;font-size:.85rem;font-weight:600}.signal-group-pills{gap:.5rem;display:flex}.pill-btn{cursor:pointer;background:#efe6d8;border:1px solid #cbd5e1;border-radius:999px;padding:.4rem .85rem;font-size:.85rem;font-weight:600}.pill-btn.active{color:#fff;background:#1e293b;border-color:#1e293b}.signals-deep-list{flex-direction:column;gap:1.25rem;display:flex}.signal-item-card{border:1px solid var(--border);background:#fff;border-radius:12px;flex-direction:column;gap:1rem;padding:1.5rem;display:flex}.item-header{align-items:center;gap:.75rem;display:flex}.pattern-badge{color:#c2410c;background:#fff7ed;border:1px solid #ffedd5;border-radius:8px;padding:.3rem .75rem;font-size:1.25rem;font-weight:700}.meaning-tag{color:#475569;font-size:1rem;font-weight:600}.contrast-box{background:#f3eadc;border:1px solid #e2e8f0;border-radius:8px;padding:1rem}.ja-sent{color:#0f172a;margin:.3rem 0 .15rem;font-size:1.1rem;font-weight:700}.kana-sent{color:#64748b;margin:0 0 .25rem;font-size:.85rem}.zh-sent{color:#334155;margin:0;font-size:.95rem}.pitfall-box{background:#fff5f5;border-left:4px solid #ef4444;border-radius:0 8px 8px 0;padding:.75rem 1rem}.pitfall-alert{color:#dc2626;font-size:.85rem;font-weight:700}.wrong-text{color:#b91c1c;margin:.2rem 0;font-weight:700}.reason-text{color:#7f1d1d;margin:0;font-size:.85rem}.signal-quiz-box{background:#fafaf9;border:1px solid #e7e5e4;border-radius:8px;padding:1rem}.quiz-options-grid{grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.75rem;display:grid}@media (width<=640px){.quiz-options-grid{grid-template-columns:1fr}}.quiz-opt-btn{text-align:left;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:.6rem .85rem;font-size:.9rem;transition:all .2s}.quiz-opt-btn:hover{background:#efe6d8}.quiz-opt-btn.correct{color:#15803d;background:#dcfce7;border-color:#22c55e;font-weight:700}.quiz-opt-btn.wrong{color:#b91c1c;background:#fee2e2;border-color:#ef4444}.quiz-feedback{border-radius:6px;margin-top:.75rem;padding:.6rem .85rem}.quiz-feedback.correct{color:#166534;background:#dcfce7}.quiz-feedback.wrong{color:#991b1b;background:#fee2e2}.solving-signals-container{border:1px solid var(--border);background:#fff;border-radius:12px;flex-direction:column;gap:1.25rem;padding:1.5rem;display:flex}.signals-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.signals-sub{color:#64748b;margin:.25rem 0 0;font-size:.88rem}.stage-switch-pills{gap:.45rem;display:flex}.signals-cards-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem;display:grid}.signal-card-item{background:#f3eadc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:.75rem;padding:1.2rem;display:flex}.signal-card-top{justify-content:space-between;align-items:center;display:flex}.signal-topic-badge{color:#2f5c4e;font-size:.95rem;font-weight:700}.signal-grade-tag{color:#3730a3;background:#e0e7ff;border-radius:999px;padding:.2rem .5rem;font-size:.75rem;font-weight:600}.signal-trigger-box{background:#fff;border-left:3px solid #5a8a7e;border-radius:0 6px 6px 0;padding:.5rem .75rem}.trigger-icon{color:#3f6f64;font-size:.8rem;font-weight:700}.trigger-text{color:#1e293b;margin:.2rem 0 0;font-size:.85rem}.signal-rule-box{background:#fffbeb;border-left:3px solid #f59e0b;border-radius:0 6px 6px 0;padding:.5rem .75rem}.rule-icon{color:#d97706;font-size:.8rem;font-weight:700}.rule-text{color:#92400e;margin:.2rem 0 0;font-size:.85rem;font-weight:600}.signal-formula-box{background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:.5rem .75rem}.formula-label{color:#64748b;font-size:.75rem;font-weight:600}.formula-math{text-align:center;margin-top:.25rem}.example-details{background:#efe6d8;border-radius:6px;padding:.5rem .75rem;font-size:.85rem}.example-summary{color:#475569;cursor:pointer;font-weight:600}.example-content{border-top:1px dashed #cbd5e1;margin-top:.5rem;padding-top:.5rem}.quick-solve{color:#047857;margin-top:.25rem}.math-visual-hub{flex-direction:column;gap:1.25rem;animation:.35s both rise;display:flex}.hub-top-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.hub-tag{color:#be185d;background:#fdf2f8;border:1px solid #fbcfe8;border-radius:999px;padding:.35rem .8rem;font-size:.85rem;font-weight:700}.visual-nav-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;display:grid}.visual-tab-card{border:1px solid var(--border);text-align:left;cursor:pointer;background:#fff;border-radius:12px;flex-direction:column;gap:.35rem;padding:1rem;transition:all .2s;display:flex}.visual-tab-card:hover{border-color:#93c5fd;transform:translateY(-2px);box-shadow:0 4px 12px #0000000a}.visual-tab-card.active{background:#e7f1ec;border-color:#5a8a7e;box-shadow:0 4px 12px #3f6f6426}.tab-card-top{justify-content:space-between;align-items:center;display:flex}.tab-icon{font-size:1.4rem}.tab-name{color:#0f172a;font-size:.95rem}.visual-tab-card.active .tab-name{color:#2f5c4e}.tab-desc{color:#64748b;font-size:.78rem;line-height:1.35}.balance-solver-card,.bar-model-card,.algebra-tiles-card,.matrix-transform-card,.riemann-calculus-card,.geometric-proofs-card{border:1px solid var(--border);background:#fff;border-radius:12px;flex-direction:column;gap:1.25rem;padding:1.5rem;display:flex;box-shadow:0 4px 14px #00000008}.solver-top-bar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.solver-title-block h3{color:#0f172a;margin:0 0 .25rem;font-size:1.25rem}.solver-title-block p{color:#64748b;margin:0;font-size:.88rem}.preset-tabs{flex-wrap:wrap;gap:.4rem;display:flex}.solver-main-grid{grid-template-columns:1.4fr 1fr;gap:1.5rem;display:grid}@media (width<=768px){.solver-main-grid{grid-template-columns:1fr}}.balance-visual-box{background:#f3eadc;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;align-items:center;padding:1rem;display:flex;position:relative}.current-eq-badge{background:#fff;border:1px solid #cbd5e1;border-radius:999px;margin-bottom:.5rem;padding:.35rem .85rem;font-size:.9rem}.balance-svg{width:100%;max-width:460px;height:auto}.solved-banner{color:#15803d;background:#dcfce7;border:1px solid #86efac;border-radius:8px;margin-top:.5rem;padding:.5rem 1rem;font-weight:700}.balance-controls-panel{background:#fafaf9;border:1px solid #e7e5e4;border-radius:10px;flex-direction:column;gap:.85rem;padding:1.2rem;display:flex}.action-buttons-stack{flex-direction:column;gap:.5rem;display:flex}.op-btn{cursor:pointer;text-align:left;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:.55rem .85rem;font-size:.88rem;font-weight:600;transition:all .2s}.op-btn:hover:not(:disabled){color:#2f5c4e;background:#e7f1ec;border-color:#5a8a7e}.op-btn.highlight{color:#166534;background:#f0fdf4;border-color:#86efac}.op-btn:disabled{opacity:.45;cursor:not-allowed}.steps-history-box{background:#fff;border:1px solid #e2e8f0;border-radius:6px;max-height:140px;padding:.75rem;font-size:.82rem;overflow-y:auto}.steps-history-box h5{margin:0 0 .4rem}.steps-history-box ol{margin:0;padding-left:1.2rem}.story-question-banner{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:.85rem 1.2rem}.story-badge{color:#166534;font-size:.75rem;font-weight:700}.story-text{color:#14532d;margin:.25rem 0 0;font-size:.95rem;font-weight:600}.bar-model-workspace-grid{grid-template-columns:1.3fr 1fr;gap:1.5rem;display:grid}@media (width<=768px){.bar-model-workspace-grid{grid-template-columns:1fr}}.bar-visual-container{background:#f3eadc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.bars-stack{flex-direction:column;gap:1rem;margin-top:.5rem;display:flex}.bar-row{align-items:center;gap:.75rem;display:flex}.person-label{color:#334155;width:90px;font-size:.9rem;font-weight:700}.bar-track{border:1px solid #cbd5e1;border-radius:6px;flex:1;height:36px;display:flex;overflow:hidden}.bar-segment{color:#fff;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;transition:all .3s;display:flex}.bar-segment.ghost{color:#64748b;background:repeating-linear-gradient(45deg,#efe6d8,#efe6d8 6px,#e2e8f0 6px 12px);border-left:2px dashed #94a3b8}.total-bracket-box{text-align:center;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:.5rem;font-size:.95rem}.solution-steps-panel{background:#fafaf9;border:1px solid #e7e5e4;border-radius:10px;flex-direction:column;gap:1rem;padding:1.2rem;display:flex}.steps-flow{flex-direction:column;gap:.75rem;display:flex}.step-flow-item{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem}.step-flow-item.locked{opacity:.5}.step-flow-item.active{border-color:#5a8a7e;box-shadow:0 2px 6px #3f6f641a}.step-badge{color:#2f5c4e;background:#e7f1ec;border-radius:4px;padding:.15rem .5rem;font-size:.75rem;font-weight:700}.step-exp{color:#334155;margin:.25rem 0 .5rem;font-size:.85rem}.step-actions-row{gap:.5rem;display:flex}.btn-next-step{color:#fff;cursor:pointer;background:#3f6f64;border:none;border-radius:6px;flex:1;padding:.6rem;font-weight:700}.btn-next-step:hover:not(:disabled){background:#2f5c4e}.tiles-header-box{background:#e7f1ec;border:1px solid #bfdbfe;border-radius:8px;padding:.75rem 1.25rem}.formula-display{flex-wrap:wrap;align-items:center;gap:.75rem;font-size:1.1rem;display:flex}.arrow-sep{color:#64748b;font-weight:700}.factored-highlight{color:#15803d}.tiles-workspace-grid{grid-template-columns:1.3fr 1fr;gap:1.5rem;display:grid}@media (width<=768px){.tiles-workspace-grid{grid-template-columns:1fr}}.tiles-canvas-box{background:#f3eadc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem;display:flex}.tiles-legend{gap:1rem;font-size:.85rem;display:flex}.legend-item i{vertical-align:middle;border-radius:3px;width:14px;height:14px;margin-right:4px;display:inline-block}.color-x2{background:#5a8a7e}.color-x{background:#10b981}.color-1{background:#f59e0b}.puzzle-grid-layout{align-items:center;gap:.75rem;display:flex}.dim-label{color:#1e40af;font-size:.9rem;font-weight:700}.top-dim{text-align:center;margin-bottom:.5rem}.tile-assembly-quad{background:#e2e8f0;border-radius:8px;grid-template-rows:120px auto;grid-template-columns:120px auto;gap:4px;padding:4px;display:grid}.tile-block{color:#fff;border-radius:4px;justify-content:center;align-items:center;font-weight:700;display:flex}.tile-x2{background:#5a8a7e;width:120px;height:120px;font-size:1.2rem}.tile-col-x{gap:4px;display:flex}.tile-x-vert{background:#10b981;width:24px;height:120px;font-size:.85rem}.tile-row-x{flex-direction:column;gap:4px;display:flex}.tile-x-horiz{background:#10b981;width:120px;height:24px;font-size:.85rem}.tile-grid-units{gap:4px;display:grid}.tile-unit{background:#f59e0b;width:24px;height:24px;font-size:.75rem}.tiles-explanation-panel{background:#fafaf9;border:1px solid #e7e5e4;border-radius:10px;padding:1.2rem}.parts-sum-card{background:#fff;border:1px solid #e2e8f0;border-radius:6px;margin:1rem 0;padding:.75rem;font-size:.85rem}.parts-sum-card ul{margin:.25rem 0 0;padding-left:1.2rem}.matrix-workspace-grid,.riemann-workspace-grid,.proof-workspace-grid{grid-template-columns:1.3fr 1fr;gap:1.5rem;display:grid}@media (width<=768px){.matrix-workspace-grid,.riemann-workspace-grid,.proof-workspace-grid{grid-template-columns:1fr}}.canvas-container{background:#f3eadc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;align-items:center;gap:.75rem;padding:1rem;display:flex}.canvas-badges,.riemann-badges{flex-wrap:wrap;gap:.5rem;font-size:.8rem;font-weight:700;display:flex}.badge-i{color:#dc2626;background:#fee2e2;border-radius:4px;padding:.2rem .5rem}.badge-j{color:#16a34a;background:#dcfce7;border-radius:4px;padding:.2rem .5rem}.badge-det{color:#3f6f64;background:#e7f1ec;border-radius:4px;padding:.2rem .5rem}.badge-det.flipped{color:#b91c1c;background:#fef2f2}.matrix-canvas,.riemann-canvas{background:#fff;border:1px solid #cbd5e1;border-radius:8px;width:100%;max-width:450px;height:auto}.matrix-controls-panel,.riemann-controls-panel,.proof-controls-panel{background:#fafaf9;border:1px solid #e7e5e4;border-radius:10px;flex-direction:column;gap:1rem;padding:1.2rem;display:flex}.matrix-display-box{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem}.matrix-bracket{color:#1e293b;align-items:center;margin-top:.25rem;font-family:monospace;font-size:1.4rem;font-weight:700;display:inline-flex}.m-values{flex-direction:column;gap:2px;padding:0 6px;display:flex}.m-values div{gap:1.2rem;display:flex}.sliders-stack{flex-direction:column;gap:.6rem;display:flex}.slider-row{flex-direction:column;gap:.25rem;font-size:.85rem;font-weight:600;display:flex}.det-insight-card,.convergence-card,.values-comparison-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem;font-size:.85rem}.btn-group{gap:.35rem;margin-top:.35rem;display:flex}.btn-mode{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;flex:1;padding:.4rem;font-size:.8rem;font-weight:600}.btn-mode.active{color:#fff;background:#3f6f64;border-color:#3f6f64}.stat-row,.val-row{justify-content:space-between;margin-bottom:.35rem;display:flex}.err-pill{color:#dc2626;font-weight:700}.err-pill.good{color:#16a34a}.proof-svg-box{background:#f3eadc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;align-items:center;padding:1rem;display:flex}.proof-svg{width:100%;max-width:480px;height:auto}.optimal-banner{color:#15803d;background:#dcfce7;border-radius:6px;margin-top:.5rem;padding:.45rem .85rem;font-size:.85rem;font-weight:700}.proof-explanation-box{background:#e7f1ec;border:1px solid #bfdbfe;border-radius:8px;padding:.85rem;font-size:.85rem}.combo-banner{background:linear-gradient(135deg,#e7f1ec 0%,#dbeafe 100%);border:1px solid #93c5fd;border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.6rem 1rem;animation:.3s bounceIn;display:flex}.combo-banner.super-combo{background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);border-color:#f59e0b}.combo-left{align-items:center;gap:.5rem;display:flex}.combo-icon{font-size:1.3rem;animation:1s infinite alternate pulse}.combo-text{color:#2f5c4e;font-size:.95rem;font-weight:700}.multiplier-pill{color:#fff;background:#3f6f64;border-radius:999px;padding:.15rem .5rem;font-size:.75rem;font-weight:700}.combo-right{align-items:center;gap:.6rem;display:flex}.xp-gain-anim{color:#059669;font-size:.9rem;font-weight:700;animation:.8s forwards floatUp}.level-badge{color:#475569;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:.2rem .6rem;font-size:.8rem;font-weight:700}.knowledge-radar-card{border:1px solid var(--border);background:#fff;border-radius:12px;flex-direction:column;align-items:center;padding:1.25rem;display:flex;box-shadow:0 4px 12px #00000008}.radar-header{justify-content:space-between;align-items:center;width:100%;margin-bottom:.5rem;display:flex}.radar-header h3{color:#0f172a;margin:0;font-size:1.05rem}.radar-avg-badge{color:#2f5c4e;background:#e7f1ec;border-radius:999px;padding:.25rem .65rem;font-size:.8rem;font-weight:700}.radar-svg-container{justify-content:center;align-items:center;margin:.5rem 0;display:flex}.radar-svg{max-width:100%;height:auto}.radar-insights-row{grid-template-columns:1fr 1fr;gap:.75rem;width:100%;margin-top:.75rem;display:grid}.insight-badge{background:#f3eadc;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:.2rem;padding:.5rem .75rem;font-size:.8rem;display:flex}.insight-badge.strong{border-left:3px solid #10b981}.insight-badge.weak{border-left:3px solid #f59e0b}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#090d16;--bg-deep:#05080e;--surface:#111827;--surface-soft:#172033;--surface-alt:#1f2937;--ink:#f3f4f6;--muted:#9ca3af;--line:#2d3748;--line-strong:#4b5563;--navy:#38bdf8;--navy-soft:#7dd3fc;--accent:#34d399;--accent-soft:#10b98126;--accent-border:#059669;--warm:#f87171;--border:#374151;--shadow:#0000008c;--focus-ring-color:#7dd3fc;--on-navy:#0f172a;--hub-badge-status:#93c5fd}.radar-weakness-plan{background:linear-gradient(135deg,#2563eb14,#10b98114);border:1px solid #2563eb40;border-radius:14px;flex-wrap:wrap;align-items:center;gap:1.25rem;margin-top:1.25rem;padding:1.15rem 1.35rem;display:flex;box-shadow:0 4px 14px #2563eb0f}.radar-weakness-plan .plan-icon{background:var(--surface);border-radius:12px;flex-shrink:0;place-items:center;width:48px;height:48px;font-size:2.2rem;display:grid;box-shadow:0 2px 8px #0000000f}.radar-weakness-plan .plan-info{flex:1;min-width:260px}.radar-weakness-plan .plan-tag{color:var(--navy);letter-spacing:.04em;margin-bottom:.25rem;font-size:.76rem;font-weight:700;display:inline-block}.radar-weakness-plan strong{color:var(--ink);margin-bottom:.25rem;font-size:1.05rem;display:block}.radar-weakness-plan p{color:var(--muted);margin:0;font-size:.88rem;line-height:1.45}.radar-weakness-plan .btn-plan-action{background:var(--btn-primary-bg);color:var(--btn-primary-fg);cursor:pointer;box-shadow:0 4px 12px color-mix(in srgb, var(--btn-primary-bg) 28%, transparent);border:none;border-radius:10px;flex-shrink:0;padding:.65rem 1.2rem;font-size:.88rem;font-weight:700;transition:transform .15s,box-shadow .15s,background .15s}.radar-weakness-plan .btn-plan-action:hover{background:var(--btn-primary-hover-bg);box-shadow:0 6px 16px color-mix(in srgb, var(--btn-primary-bg) 38%, transparent);transform:translateY(-2px)}button:active:not(:disabled),.hub-card:active,.btn-plan-action:active,.pill-btn:active{transform:scale(.97)!important}[data-theme=dark] .balance-solver-card,[data-theme=dark] .bar-model-card,[data-theme=dark] .algebra-tiles-card,[data-theme=dark] .matrix-transform-card,[data-theme=dark] .riemann-calculus-card,[data-theme=dark] .geometric-proofs-card,[data-theme=dark] .knowledge-radar-card,[data-theme=dark] .radar-weakness-plan{background:#111827;border-color:#374151}[data-theme=dark] .balance-visual-box,[data-theme=dark] .bar-visual-container,[data-theme=dark] .tiles-canvas-box,[data-theme=dark] .canvas-container,[data-theme=dark] .proof-svg-box{background:#1f2937;border-color:#374151}[data-theme=dark] .insight-badge,[data-theme=dark] .steps-history-box,[data-theme=dark] .det-insight-card{background:#111827;border-color:#374151}@keyframes bounceIn{0%{opacity:.7;transform:scale(.95)}50%{transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@keyframes floatUp{0%{opacity:1;transform:translateY(0)}to{opacity:.9;transform:translateY(-8px)}}.math-keypad-panel{background:#f3eadc;border:1px solid #cbd5e1;border-radius:12px;margin-top:1rem;padding:.85rem;box-shadow:0 8px 24px #00000014}.keypad-top-bar{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;margin-bottom:.6rem;padding-bottom:.5rem;display:flex}.keypad-preview-box{align-items:center;gap:.5rem;font-size:.9rem;display:flex}.btn-close-keypad{color:#64748b;cursor:pointer;background:0 0;border:none;font-size:.85rem}.keypad-tabs-row{gap:.35rem;margin-bottom:.6rem;display:flex;overflow-x:auto}.keypad-tab-btn{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:.35rem .65rem;font-size:.8rem;font-weight:700}.keypad-tab-btn.active{color:#fff;background:#3f6f64;border-color:#3f6f64}.keypad-keys-grid{flex-direction:column;gap:.4rem;display:flex}.keypad-row{gap:.4rem;display:flex}.key-btn{color:#1e293b;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;flex:1;min-height:42px;padding:.6rem .3rem;font-size:.95rem;font-weight:700;transition:all .15s}.key-btn:hover{background:#efe6d8;border-color:#94a3b8}.key-btn:active{transform:scale(.96)}.key-btn.action{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.key-btn.special{color:#fff;background:#3f6f64;border-color:#3f6f64;flex:1.5}.toeic-audio-player-card{border:1px solid var(--border);background:#fff;border-radius:12px;flex-direction:column;gap:.85rem;padding:1.2rem;display:flex;box-shadow:0 4px 12px #00000008}.accent-picker-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.picker-label{color:#334155;font-size:.88rem;font-weight:700}.accent-buttons-group{flex-wrap:wrap;gap:.35rem;display:flex}.accent-chip{cursor:pointer;background:#efe6d8;border:1px solid #cbd5e1;border-radius:999px;align-items:center;gap:.3rem;padding:.3rem .65rem;font-size:.8rem;font-weight:600;display:flex}.accent-chip.active{color:#2f5c4e;background:#e7f1ec;border-color:#5a8a7e}.accent-feature-tip{color:#475569;background:#f3eadc;border-left:3px solid #5a8a7e;padding:.45rem .75rem;font-size:.82rem}.captions-display-box{background:#f3eadc;border:1px solid #e2e8f0;border-radius:8px;padding:1rem}.english-words-stream{color:#0f172a;font-size:1.1rem;font-weight:600;line-height:1.6}.word-span.highlight{color:#854d0e;background:#fef08a;border-radius:3px;padding:0 2px}.rhythm-hint-row,.translation-row{color:#475569;margin-top:.5rem;font-size:.85rem}.player-controls-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.playback-buttons{gap:.5rem;display:flex}.btn-play-primary{background:var(--btn-primary-bg);color:var(--btn-primary-fg);cursor:pointer;border:none;border-radius:6px;padding:.55rem 1rem;font-weight:700}.btn-play-primary:hover{background:var(--btn-primary-hover-bg)}.btn-stop{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:6px;padding:.55rem 1rem;font-weight:700}.btn-shadowing-toggle{cursor:pointer;background:#efe6d8;border:1px solid #cbd5e1;border-radius:6px;padding:.55rem .85rem;font-size:.82rem;font-weight:600}.btn-shadowing-toggle.active{color:#166534;background:#dcfce7;border-color:#86efac}.speed-controls{align-items:center;gap:.25rem;display:flex}.speed-pill{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:4px;padding:.25rem .5rem;font-size:.78rem;font-weight:700}.speed-pill.active{color:#fff;background:#3f6f64;border-color:#3f6f64}.a11y-floating-dock{z-index:999;position:fixed;bottom:1.5rem;right:1.5rem}.btn-a11y-trigger{color:#fff;cursor:pointer;background:#1e293b;border:2px solid #38bdf8;border-radius:999px;align-items:center;gap:.4rem;padding:.55rem .95rem;font-size:.85rem;font-weight:700;transition:all .2s;display:flex;box-shadow:0 4px 16px #00000040}.btn-a11y-trigger:hover{background:#0f172a;transform:scale(1.05)}.a11y-settings-dialog{color:#0f172a;background:#fff;border:0;border-radius:12px;width:100%;max-width:480px;max-height:min(90dvh,720px);padding:1.5rem;overflow-y:auto;box-shadow:0 20px 40px #0003}.a11y-settings-dialog::backdrop{background:#00000094}.auth-warning{color:#92400e;background:#fffbeb;border:1px solid #f59e0b;border-radius:10px;grid-column:1/-1;margin:0;padding:.65rem .75rem;font-size:.82rem;line-height:1.5}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}@media (width<=860px){.a11y-floating-dock{z-index:40;background:var(--surface);border-bottom:1px solid var(--line);justify-content:flex-end;padding:.35rem .75rem;display:flex;position:relative;inset:auto}.btn-a11y-trigger{width:var(--touch-min);height:var(--touch-min);min-height:var(--touch-min);min-width:var(--touch-min);border-radius:12px;justify-content:center;padding:0}.btn-a11y-trigger .a11y-text{display:none}.sidebar-top-actions{margin-bottom:0}}.a11y-dialog-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.a11y-dialog-header h3{color:#0f172a;margin:0;font-size:1.15rem}.a11y-settings-body{flex-direction:column;gap:1rem;display:flex}.setting-row{flex-direction:column;gap:.4rem;display:flex}.setting-row.toggle-row{flex-direction:row;justify-content:space-between;align-items:center}.setting-label{color:#1e293b;font-size:.9rem;font-weight:700}.setting-desc{color:#64748b;margin:.2rem 0 0;font-size:.78rem}.segmented-btn-group{gap:.35rem;display:flex}.seg-btn{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;flex:1;padding:.45rem;font-size:.82rem;font-weight:600}.seg-btn.active{color:#fff;background:#3f6f64;border-color:#3f6f64}.shortcuts-info-box{background:#f3eadc;border:1px solid #e2e8f0;border-radius:8px;margin-top:.5rem;padding:.75rem}.btn-show-shortcuts{color:#3f6f64;cursor:pointer;background:0 0;border:none;font-size:.85rem;font-weight:700}.shortcuts-list{color:#475569;margin:.5rem 0 0;padding-left:1.2rem;font-size:.82rem}html.font-large{font-size:115%}html.font-xlarge{font-size:130%}html.distraction-free *{transition:none!important;animation:none!important}html.distraction-free .hero-art,html.distraction-free .combo-icon{display:none!important}html.high-contrast{filter:contrast(125%)}html.layout-dense{--track-sidebar-padding:.5rem .65rem .75rem;--track-sidebar-gap:.35rem;--track-nav-gap:.12rem;--track-nav-item-padding:.32rem .55rem;--track-content-padding:.7rem 1rem 1.1rem;--track-content-padding-mobile:.7rem;--track-topbar-gap:.45rem;--track-topbar-margin:.45rem;--hub-card-gap:.7rem}html.layout-dense .hub{padding:1.35rem 1.15rem 2rem}html.layout-dense .hub-hero{margin-bottom:.85rem}html.layout-dense .hub-section-block{margin-top:1.15rem}html.layout-dense .section-header-row{gap:.45rem;margin-bottom:.7rem}html.layout-dense .skip-link,html.layout-dense .btn-a11y-trigger,html.layout-dense .hub-primary-cta,html.layout-dense .hub-topbar-tools .locale-toggle button,html.layout-dense .hub-topbar-tools .hub-shortcut-trigger,html.layout-dense .hub .pill-btn.audio-toggle,html.layout-dense .hub .radar-tab-btn,html.layout-dense .a11y-settings-dialog .btn-close,html.layout-dense .a11y-settings-dialog .seg-btn,html.layout-dense .a11y-settings-dialog .a11y-toggle{min-height:var(--touch-min);min-width:var(--touch-min)}.hub-topbar-tools .locale-toggle button,.hub-topbar-tools .hub-shortcut-trigger,.hub .pill-btn.audio-toggle,.hub .radar-tab-btn,.hub .hub-link,.hub-shortcut-dialog .btn-close,.a11y-floating-dock .btn-a11y-trigger,.a11y-settings-dialog .btn-close,.a11y-settings-dialog .seg-btn,.a11y-settings-dialog .a11y-toggle,.a11y-settings-dialog .btn-show-shortcuts{min-height:var(--touch-min);min-width:var(--touch-min);box-sizing:border-box}.hub-shortcut-dialog .btn-close,.a11y-settings-dialog .btn-close{justify-content:center;align-items:center;padding:0;display:inline-flex}.a11y-settings-dialog .a11y-toggle{width:var(--touch-min);height:var(--touch-min)}html.layout-dense{--focus-ring-width:3px;--focus-ring-offset:2px}.hub .hub-primary-cta:focus-visible,.hub .hub-secondary-cta:focus-visible,.hub .locale-toggle button:focus-visible,.hub .pill-btn:focus-visible,.hub .hub-link:focus-visible,.hub .audio-toggle:focus-visible,.hub .hub-shortcut-trigger:focus-visible,.hub .radar-tab-btn:focus-visible,.hub .track-lang-toggle button:focus-visible,.hub .hub-bottom-nav-item:focus-visible,.hub .hub-search input:focus-visible,.btn-a11y-trigger:focus-visible,.a11y-settings-dialog .seg-btn:focus-visible,.a11y-settings-dialog .a11y-toggle:focus-visible,.a11y-settings-dialog .btn-close:focus-visible,.a11y-settings-dialog .btn-show-shortcuts:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.hub-card:has(.hub-card-hit:focus-visible){outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);z-index:1}.hub .hub-card-hit:focus-visible{outline:none}.hub .hub-primary-cta:focus-visible{box-shadow:0 0 0 2px var(--btn-primary-bg);outline-color:#fffcf7}html.layout-dense .hub .locale-toggle button:focus-visible,html.layout-dense .btn-a11y-trigger:focus-visible,html.layout-dense .a11y-settings-dialog .a11y-toggle:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}html.layout-dense .hub-card:has(.hub-card-hit:focus-visible){outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.calculus-studio-container{flex-direction:column;gap:1.25rem;width:100%;display:flex}.calc-prereq-graph{background:var(--surface);border:1px solid var(--line);border-radius:var(--card-radius);padding:.85rem 1rem}.calc-prereq-graph h3{color:var(--ink);margin:0;font-size:.95rem}.calc-prereq-graph ol{gap:.35rem;margin:.45rem 0 0;padding:0;list-style:none;display:grid}.calc-prereq-graph li{color:var(--ink);flex-wrap:wrap;align-items:baseline;gap:.25rem .7rem;font-size:.85rem;display:flex}.calc-prereq-edge,.calc-prereq-unknown{color:var(--muted);font-size:.78rem}.calc-prereq-unknown{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.calc-grad-card{border:1px solid var(--line);background:var(--surface);border-radius:14px;margin:.85rem 0 0;padding:1rem 1.1rem}.calc-grad-card h2{color:var(--navy);margin:0;font-size:1rem;font-weight:700}.calc-grad-body{grid-template-columns:minmax(7rem,9.5rem) 1fr;align-items:center;gap:.9rem;margin-top:.55rem;display:grid}.calc-grad-svg{width:100%;height:auto;display:block}.calc-grad-svg ellipse{fill:none;stroke:var(--muted);stroke-width:1.4px}.calc-grad-svg line,.calc-grad-svg polygon{fill:var(--navy);stroke:var(--navy);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.calc-grad-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:.75rem;padding:.32rem 0;font-size:.8rem;display:flex}.calc-grad-rows .calc-grad-row:last-child{border-bottom:none}.calc-grad-row strong{color:var(--navy);font-weight:700}@media (width<=640px){.calc-grad-body{grid-template-columns:1fr}.calc-grad-svg{max-width:11rem;margin:0 auto}}.physics-formula-sheet{flex-direction:column;gap:.85rem;display:flex}.wave-interference-figure{max-width:36rem;color:var(--ink);margin:0}.wave-interference-svg{border:1px solid var(--line);background:var(--surface);border-radius:10px;width:100%;height:auto;display:block}.wave-interference-figure figcaption{color:var(--muted);flex-direction:column;gap:.2rem;margin-top:.4rem;font-size:.82rem;display:flex}.physics-formula-unit{background:var(--surface);border:1px solid var(--line);border-radius:var(--card-radius);margin:.45rem 0;padding:.75rem .9rem}.physics-formula-unit h4{color:var(--ink);margin:0 0 .45rem;font-size:.9rem}@media print{body:has(.formula-sheet){color:#111;background:#fff}:is(body:has(.formula-sheet) .physics-sidebar,body:has(.formula-sheet) .a11y-floating-dock,body:has(.formula-sheet) .floating-scratchpad-btn,body:has(.formula-sheet) .hub-shortcut-trigger,body:has(.formula-sheet) .btn-back,body:has(.formula-sheet) .sidebar-chrome){display:none!important}.formula-sheet,.physics-formula-sheet{color:#111;background:#fff;gap:.4rem}.formula-sheet .section-subtext,.formula-sheet .physics-formula-unit,.formula-sheet .concept-item-card,.formula-sheet .katex{color:#111}.formula-sheet .physics-formula-unit,.formula-sheet .concept-item-card,.formula-sheet .wave-interference-figure{break-inside:avoid;page-break-inside:avoid;box-shadow:none;background:#fff;border:1px solid #ccc}.formula-sheet .concept-cards-grid{display:block}.formula-sheet .wave-interference-svg{background:#fff;max-width:100%}}.calculus-studio-header{background:var(--surface);border:1px solid var(--line);box-shadow:0 4px 16px var(--shadow);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex}.calculus-studio-header .title-group h2{color:var(--ink);margin:.25rem 0;font-size:1.35rem}.studio-tag{color:var(--navy);letter-spacing:.05em;text-transform:uppercase;font-size:.75rem;font-weight:700}.subtitle{color:var(--muted);margin:0;font-size:.88rem}.studio-tabs-row{background:var(--surface-soft);border:1px solid var(--line);border-radius:10px;gap:.5rem;padding:.35rem;display:flex}.studio-tab-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.55rem 1rem;font-size:.86rem;font-weight:700;transition:all .15s}.studio-tab-btn.active{color:#fff;background:#3f6f64;box-shadow:0 2px 8px #2563eb4d}@media (width<=900px){.calculus-studio-workspace{grid-template-columns:1fr}}.studio-left-pane,.studio-right-pane{flex-direction:column;gap:1rem;display:flex}.calculus-canvas-card{background:var(--surface);border:1px solid var(--line);box-shadow:0 4px 16px var(--shadow);border-radius:14px;padding:1.15rem}.canvas-header-bar{justify-content:space-between;align-items:center;margin-bottom:.75rem;font-size:.8rem;display:flex}.canvas-badge{color:#10b981;background:#10b9811a;border-radius:6px;padding:.2rem .6rem;font-weight:700}.canvas-coord-info{color:var(--muted)}.canvas-probe-readout{font-variant-numeric:tabular-nums;color:var(--text);margin:0 0 .65rem;font-size:.92rem;font-weight:600}.canvas-probe-readout.canvas-probe-error,.canvas-parse-error{color:#b45309}.canvas-parse-error{margin:0 0 .65rem;font-size:.8rem}.canvas-svg-container{background:#090d16;border:1px solid #1e293b;border-radius:10px;overflow:hidden}.calc-interactive-svg{width:100%;height:auto;display:block}.canvas-footer-legend{color:var(--muted);flex-wrap:wrap;gap:.85rem;margin-top:.85rem;font-size:.8rem;display:flex}.legend-item{align-items:center;gap:.35rem;display:flex}.legend-item .dot.blue{background:#38bdf8;border-radius:50%;width:8px;height:8px}.legend-item .line.green-dash{background:#10b981;border-style:dashed;width:14px;height:2px}.legend-item .line.red{background:#f43f5e;width:14px;height:2px}.legend-item .line.orange{background:#f59e0b;width:14px;height:2px}.legend-item .line.purple-dash{background:#a855f7;width:14px;height:2px}.legend-item .box.blue-fill{background:#3f6f6480;border:1px solid #3f6f64;width:10px;height:10px}.step-by-step-solver-panel{background:var(--surface);border:1px solid var(--line);box-shadow:0 4px 16px var(--shadow);border-radius:14px;padding:1.25rem}.solver-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.solver-header h4{color:var(--ink);margin:0;font-size:1.05rem}.problem-title-display{color:var(--muted);margin:.25rem 0 0;font-size:.85rem}.step-progress-indicator{background:var(--surface-soft);color:var(--navy);border-radius:6px;padding:.25rem .6rem;font-size:.78rem;font-weight:700}.steps-stream-list{flex-direction:column;gap:.85rem;display:flex}.formula-step-card{background:var(--surface-soft);border:1px solid var(--line);border-radius:10px;padding:1rem;transition:all .15s}.formula-step-card.active{background:#2563eb0a;border-color:#3f6f64}.step-card-header{align-items:center;gap:.6rem;margin-bottom:.6rem;display:flex}.step-number-badge{color:#fff;background:#3f6f64;border-radius:4px;padding:.15rem .45rem;font-size:.72rem;font-weight:700}.step-rule-name{color:var(--ink);font-size:.92rem}.step-check-icon{color:#10b981;margin-left:auto;font-weight:700}.step-formula-box{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin-bottom:.65rem;padding:.75rem;font-size:.95rem}.formula-row{align-items:center;gap:.5rem;display:flex}.formula-arrow{color:#64748b;margin:.35rem 0;font-size:.82rem}.step-explanation{color:var(--muted);margin:0 0 .5rem;font-size:.86rem;line-height:1.45}.step-insight-badge{color:#d97706;background:#f59e0b1a;border-left:3px solid #f59e0b;border-radius:0 6px 6px 0;padding:.4rem .6rem;font-size:.8rem}.step-checkpoint-box{background:var(--surface);border:1px solid #cbd5e1;border-radius:8px;margin-top:.75rem;padding:.75rem}.checkpoint-prompt{color:var(--ink);margin:0 0 .5rem;font-size:.85rem}.checkpoint-options{flex-direction:column;gap:.35rem;display:flex}.btn-checkpoint-opt{text-align:left;border:1px solid var(--line);background:var(--surface-soft);cursor:pointer;color:var(--ink);border-radius:6px;padding:.45rem .75rem;font-size:.82rem}.btn-checkpoint-opt.correct{color:#15803d;background:#dcfce7;border-color:#22c55e}.btn-checkpoint-opt.wrong{color:#b91c1c;background:#fee2e2;border-color:#ef4444}.checkpoint-hint{color:#64748b;margin:.4rem 0 0;font-size:.78rem}.btn-reveal-next-step{color:#fff;cursor:pointer;background:#3f6f64;border:none;border-radius:8px;width:100%;margin-top:1rem;padding:.65rem;font-size:.88rem;font-weight:700}.derivation-complete-banner{color:#065f46;background:#10b9811a;border:1px solid #10b9814d;border-radius:8px;align-items:center;gap:.75rem;margin-top:1rem;padding:.85rem;display:flex}.calculus-lab-control-card,.calculus-assessment-widget{background:var(--surface);border:1px solid var(--line);box-shadow:0 4px 16px var(--shadow);border-radius:14px;padding:1.25rem}.lab-mode-grid{grid-template-columns:repeat(2,1fr);gap:.4rem;margin-bottom:1rem;display:grid}.btn-mode-tab{background:var(--surface-soft);border:1px solid var(--line);color:var(--ink);cursor:pointer;border-radius:8px;padding:.5rem;font-size:.82rem;font-weight:600}.btn-mode-tab.active{color:#fff;background:#3f6f64;border-color:#3f6f64}.assessment-topbar{border-bottom:1px solid var(--line);flex-direction:column;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.theta-gauge-box{align-items:center;gap:.5rem;font-size:.85rem;display:flex}.gauge-value{color:#3f6f64;font-size:1.15rem}.gauge-tag{color:#3f6f64;background:#2563eb1a;border-radius:4px;padding:.15rem .5rem;font-size:.75rem;font-weight:700}.tier-pills-row{flex-wrap:wrap;gap:.35rem;display:flex}.btn-tier-pill{background:var(--surface-soft);border:1px solid var(--line);cursor:pointer;color:var(--ink);border-radius:6px;align-items:center;gap:.35rem;padding:.35rem .65rem;font-size:.78rem;display:flex}.btn-tier-pill.active{color:#fffcf7;background:#3f6f64;border-color:#0f172a}.tier-badge{color:#fff;background:#5a8a7e;border-radius:3px;padding:.05rem .3rem;font-size:.7rem;font-weight:700}.problem-options-list{flex-direction:column;gap:.45rem;margin:1rem 0;display:flex}.btn-prob-option{text-align:left;border:1px solid var(--line);background:var(--surface-soft);cursor:pointer;color:var(--ink);border-radius:8px;align-items:center;gap:.65rem;padding:.65rem .85rem;font-size:.88rem;display:flex}.btn-prob-option.correct{color:#15803d;background:#dcfce7;border-color:#22c55e}.btn-prob-option.wrong{color:#b91c1c;background:#fee2e2;border-color:#ef4444}.opt-letter{background:var(--surface);border:1px solid var(--line);border-radius:50%;place-items:center;width:24px;height:24px;font-size:.78rem;font-weight:700;display:grid}.answer-feedback-box{border-radius:8px;gap:.75rem;padding:.85rem;font-size:.86rem;line-height:1.45;display:flex}.answer-feedback-box.success{color:#14532d;background:#dcfce7;border:1px solid #86efac}.answer-feedback-box.warn{color:#78350f;background:#fef3c7;border:1px solid #fde68a}.calculus-badge-modal-overlay{z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000a6;place-items:center;display:grid;position:fixed;inset:0}.calculus-badge-modal-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--card-radius);text-align:center;width:90%;max-width:440px;padding:2rem;box-shadow:0 16px 40px #0000004d}.badge-unlock-animation{margin-bottom:.5rem;font-size:3rem;animation:.5s bounceIn}.unlocked-badge-detail{background:var(--surface-soft);border:1px solid var(--line);text-align:left;border-radius:10px;align-items:center;gap:.85rem;margin:1rem 0;padding:.85rem;display:flex}.badge-icon-lg{font-size:2.2rem}.reward-tag{color:#fff;background:#f59e0b;border-radius:4px;margin-top:.3rem;padding:.1rem .4rem;font-size:.75rem;font-weight:700;display:inline-block}.btn-close-modal{color:#fff;cursor:pointer;background:#3f6f64;border:none;border-radius:8px;width:100%;padding:.75rem;font-weight:700}.brand-mark.calculus-mark{color:#fff;font-family:var(--font-display);background:linear-gradient(145deg,#8b5cf6,#6d28d9);font-size:1.4rem;font-weight:700}.calculus-sidebar{box-sizing:border-box;max-height:100vh;padding:var(--track-sidebar-padding);gap:var(--track-sidebar-gap);overflow-y:auto}.calculus-shell{grid-template-columns:var(--track-sidebar-width) minmax(0, 1fr);min-height:100vh;display:grid}.calculus-content{box-sizing:border-box;width:100%;max-width:1300px}.formula-select select{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:.4rem .75rem;font-size:.85rem;font-weight:600}.theta-indicator{background:var(--surface-soft);border:1px solid var(--line);border-radius:10px;flex-direction:column;align-items:flex-end;padding:.35rem .75rem;display:flex}.theta-indicator small{color:var(--muted);text-transform:uppercase;font-size:.7rem;font-weight:700}.theta-indicator strong{color:#8b5cf6;font-size:1.05rem}.calculus-units-nav .unit-item{padding:var(--track-nav-item-padding);text-align:left;border-radius:10px;align-items:flex-start;gap:.55rem;display:flex}.calculus-units-nav .unit-item .unit-nav-label{flex-direction:column;gap:.18rem;display:flex}.calculus-units-nav .unit-item .unit-nav-label strong{font-size:var(--track-nav-font);line-height:1.25}.calculus-units-nav .unit-item .unit-nav-label small{color:var(--muted);font-size:.72rem;line-height:1.3}.calculus-badges-gallery-view{margin-top:.5rem;animation:.4s both rise}.badges-grid-catalog{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;margin-top:1rem;display:grid}.badge-card-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--card-radius);box-shadow:0 4px 16px var(--shadow);flex-direction:column;gap:.6rem;padding:1.25rem;transition:transform .2s,box-shadow .2s;display:flex}.badge-card-item:hover{box-shadow:0 8px 24px var(--shadow);border-color:#8b5cf6;transform:translateY(-4px)}.badge-card-header{justify-content:space-between;align-items:center;display:flex}.badge-icon-display{font-size:2.2rem}.badge-reward-pill{color:#fff;background:#f59e0b;border-radius:999px;padding:.2rem .5rem;font-size:.75rem;font-weight:700}.badge-card-item h3{color:var(--ink);margin:0;font-size:1.15rem}.badge-card-desc{color:var(--muted);margin:0;font-size:.86rem;line-height:1.45}.badge-criteria-box{background:var(--surface-soft);border:1px solid var(--line);color:var(--ink);border-radius:8px;flex-direction:column;gap:.2rem;padding:.5rem .75rem;font-size:.78rem;display:flex}.badge-criteria-box small{color:var(--muted);font-weight:700}.btn-badge-challenge{color:#fff;cursor:pointer;background:linear-gradient(135deg,#8b5cf6,#6d28d9);border:none;border-radius:8px;margin-top:auto;padding:.6rem;font-size:.85rem;font-weight:700;transition:opacity .15s}.btn-badge-challenge:hover{opacity:.9}.calculus-footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-top:2rem;padding-top:1.25rem;font-size:.8rem;display:flex}.calculus-studio-workspace{grid-template-columns:minmax(0,1.05fr) minmax(0,1.35fr);align-items:start;gap:1.25rem;display:grid}@media (width<=1040px){.calculus-studio-workspace{grid-template-columns:1fr}}.studio-left-pane{flex-direction:column;gap:1rem;min-width:0;display:flex}.studio-right-pane{flex-direction:column;gap:1rem;min-width:0;display:flex;position:sticky;top:1rem}@media (width<=1040px){.studio-right-pane{position:static}}.steps-stream-list{scrollbar-width:thin;scrollbar-color:#94a3b866 transparent;flex-direction:column;gap:.85rem;max-height:calc(100vh - 270px);padding-right:.35rem;display:flex;overflow:hidden auto}.step-formula-box{scrollbar-width:thin;max-width:100%;overflow-x:auto}.formula-row{align-items:center;gap:.5rem;min-width:0;display:flex}.formula-row .math-formula{max-width:100%;overflow-x:auto}@media (width<=768px){.fraction-layout,.coord-layout,.pythagoras-layout,.unit-circle-layout,.blocks-canvas{gap:1.25rem;grid-template-columns:1fr!important}.mock-options{grid-template-columns:1fr!important}}.slider-item{background:var(--surface-soft);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:.4rem;margin-top:.5rem;padding:.75rem 1rem;display:flex}.slider-item label{color:var(--ink);justify-content:space-between;align-items:center;font-size:.88rem;font-weight:600;display:flex}.slider-item input[type=range]{accent-color:#3f6f64;cursor:pointer;border-radius:999px;width:100%;height:6px}.btn-lab-reset{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:8px;padding:.4rem .8rem;font-size:.82rem;font-weight:600;transition:all .15s}.btn-lab-reset:hover{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.btn-preset-pill{border:1px solid var(--line);background:var(--surface);color:var(--navy);cursor:pointer;border-radius:999px;padding:.25rem .6rem;font-size:.75rem;font-weight:700;transition:all .15s}.btn-preset-pill:hover{color:#2f5c4e;background:#e7f1ec;border-color:#5a8a7e}.kana-cell{position:relative}.kana-cell.mastered:after{content:"✓";color:var(--accent,#059669);font-size:.7rem;font-weight:700;position:absolute;top:4px;right:6px}.word-span{border-radius:4px;padding:0 2px;transition:background-color .15s,transform .15s;display:inline-block}.word-span.highlight{color:#854d0e;background-color:#fef08a;font-weight:700;transform:translateY(-1px);box-shadow:0 2px 6px #facc1559}[data-theme=dark] .sidebar.calculus-sidebar{background:#111827eb;border-right-color:#374151}[data-theme=dark] .track-status-pill.math{color:#93c5fd;background:#2563eb33}[data-theme=dark] .track-status-pill.calculus{color:#c4b5fd;background:#8b5cf633}[data-theme=dark] .track-status-pill.ja{color:#f472b6;background:#ec489933}[data-theme=dark] .track-status-pill.en{color:#fcd34d;background:#f59e0b33}[data-theme=dark] .launch-action{color:#7eb8a6}[data-theme=dark] .hub-badge-item.unlocked{background:linear-gradient(135deg,#111827 0%,#1e3a8a59 100%);border-color:#5a8a7e}[data-theme=dark] .badge-xp-tag{color:#34d399;background:#10b98126;border-color:#10b9814d}[data-theme=dark] .answer-feedback-box.success{color:#6ee7b7;background:#10b98126;border:1px solid #10b98166}[data-theme=dark] .answer-feedback-box.warn{color:#fcd34d;background:#f59e0b26;border:1px solid #f59e0b66}[data-theme=dark] .step-insight-badge{color:#fbbf24;background:#f59e0b2e;border-left-color:#f59e0b}[data-theme=dark] .derivation-complete-banner{color:#34d399;background:#10b98126;border-color:#10b98166}[data-theme=dark] .theta-indicator strong{color:#a78bfa}.eight-track-grid{gap:var(--hub-card-gap);grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));display:grid}@media (width<=580px){.eight-track-grid{grid-template-columns:1fr}}@media (width>=680px) and (width<=1023px){.eight-track-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.eight-track-grid{grid-template-columns:repeat(3,1fr)}}.hub-card-mark.physics-mark{background:linear-gradient(145deg,#0284c7,#38bdf8)}.hub-card-mark.chemistry-mark{background:linear-gradient(145deg,#059669,#10b981)}.track-status-pill.physics{color:#0369a1;background:#e0f2fe}.track-status-pill.chemistry{color:#065f46;background:#d1fae5}.launch-action.physics-action{color:#0284c7}.launch-action.chemistry-action{color:#059669}.hub-card.physics-track-card:hover{border-color:#38bdf8;transform:translateY(-4px);box-shadow:0 14px 28px #0284c71f}.hub-card.chemistry-track-card:hover{border-color:#34d399;transform:translateY(-4px);box-shadow:0 14px 28px #0596691f}.physics-sidebar .nav-group button.active{color:#0369a1;background:#f0f9ff;border-left:3px solid #0284c7}.chemistry-sidebar .nav-group button.active{color:#065f46;background:#ecfdf5;border-left:3px solid #059669}.physics-shell,.chemistry-shell{grid-template-columns:var(--track-sidebar-width) minmax(0, 1fr)}.physics-lab .lab-header h3{color:#0369a1;margin-bottom:.2rem;font-size:.95rem}.chemistry-lab .lab-header h3{color:#065f46;margin-bottom:.2rem;font-size:.95rem}.signal-rule-box{color:#0369a1;word-break:break-word;background:#f0f9ff;border:1px solid #0369a126;border-radius:4px;margin-bottom:.25rem;padding:.25rem .45rem;font-size:.75rem;line-height:1.4}.signal-rule-box.chemistry{color:#065f46;background:#ecfdf5;border-color:#065f4626}.lab-workspace-grid{box-sizing:border-box;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));align-items:start;gap:.75rem;width:100%;min-width:0;max-width:100%;display:grid}@media (width<=680px){.lab-workspace-grid{grid-template-columns:1fr!important}}.lab-workspace-grid svg,.canvas-container svg,.proof-svg-box svg{max-width:100%;height:auto;display:block}.error-vault-container{box-sizing:border-box;flex-direction:column;gap:.75rem;width:100%;max-width:100%;display:flex}.vault-stats-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.5rem;display:grid}.vault-stat-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.vault-stat-icon{font-size:1.3rem;line-height:1}.vault-stat-meta{flex-direction:column;display:flex}.vault-stat-label{color:var(--muted);font-size:.7rem;font-weight:600}.vault-stat-value{color:var(--ink);font-size:1.1rem;font-weight:700}.vault-toolbar{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:.5rem;padding:.6rem .75rem;display:flex}.vault-toolbar-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.vault-search-input{border:1px solid var(--line);background:var(--surface-soft);min-width:180px;color:var(--ink);border-radius:6px;outline:none;flex:1;padding:.4rem .65rem;font-size:.8rem;transition:border-color .15s}.vault-search-input:focus{border-color:var(--accent-border);outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}.vault-select-filter{border:1px solid var(--line);background:var(--surface-soft);color:var(--ink);cursor:pointer;border-radius:6px;padding:.4rem .65rem;font-size:.78rem}.vault-chips-row{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.vault-chip-btn{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;white-space:nowrap;border-radius:999px;padding:.22rem .55rem;font-size:.72rem;font-weight:600;transition:all .15s}.vault-chip-btn:hover{color:var(--ink);border-color:#94a3b8}.vault-chip-btn.active{color:#fff;background:#0284c7;border-color:#0284c7}.vault-chip-btn.chemistry-active{color:#fff;background:#059669;border-color:#059669}.vault-card-item{background:var(--surface);border:1px solid var(--line);box-shadow:0 2px 8px var(--shadow,#0000000a);box-sizing:border-box;border-radius:12px;flex-direction:column;gap:.65rem;max-width:100%;padding:.85rem 1rem;transition:border-color .15s,box-shadow .15s;display:flex}.vault-card-item:hover{border-color:#94a3b8}.vault-card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;display:flex}.vault-tag-group{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.vault-source-badge{background:var(--surface-soft);border:1px solid var(--line);color:var(--ink);border-radius:4px;padding:.15rem .45rem;font-size:.7rem;font-weight:700}.vault-strand-badge{color:#0284c7;background:#0284c71a;border-radius:4px;padding:.15rem .45rem;font-size:.7rem;font-weight:700}.vault-strand-badge.chemistry{color:#059669;background:#0596691a}.vault-diff-stars{color:#f59e0b;letter-spacing:.05em;font-size:.7rem}.vault-btn-mastered{color:#059669;cursor:pointer;white-space:nowrap;background:#10b98114;border:1px solid #10b981;border-radius:6px;align-items:center;gap:.25rem;padding:.25rem .6rem;font-size:.72rem;font-weight:700;transition:all .15s;display:inline-flex}.vault-btn-mastered:hover{color:#fff;background:#10b981}.vault-question-content{flex-direction:column;gap:.35rem;display:flex}.vault-question-title{color:var(--ink);word-break:break-word;margin:0;font-size:.95rem;font-weight:700;line-height:1.35}.vault-question-text{color:var(--ink);word-break:break-word;max-width:100%;font-size:.86rem;line-height:1.5;overflow-x:auto}.vault-options-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:.4rem;margin-top:.2rem;display:grid}.vault-option-item{background:var(--surface-soft);border:1px solid var(--line);color:var(--ink);word-break:break-word;border-radius:6px;align-items:center;gap:.4rem;min-width:0;padding:.35rem .6rem;font-size:.8rem;display:flex}.vault-option-item.correct{color:#047857;background:#10b9811a;border-color:#10b981;font-weight:600}.vault-solution-wrapper{background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:.45rem;min-width:0;padding:.65rem .85rem;display:flex}.vault-solution-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.3rem;display:flex}.vault-solution-title{color:#0284c7;align-items:center;gap:.25rem;font-size:.78rem;font-weight:700;display:flex}.vault-solution-title.chemistry{color:#059669}.vault-toggle-steps-btn{color:#3f6f64;cursor:pointer;background:0 0;border:none;align-items:center;gap:.2rem;padding:0;font-size:.74rem;font-weight:700;display:inline-flex}.vault-toggle-steps-btn:hover{text-decoration:underline}.vault-solution-body{color:var(--ink);word-break:break-word;max-width:100%;font-size:.84rem;line-height:1.5;overflow-x:auto}.vault-steps-accordion{border-top:1px dashed var(--line);flex-direction:column;gap:.45rem;margin-top:.45rem;padding-top:.55rem;display:flex}.vault-step-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:.25rem;min-width:0;padding:.5rem .7rem;display:flex}.vault-step-title-line{color:var(--navy);flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.76rem;font-weight:700;display:flex}.vault-step-title-line.chemistry{color:#059669}.vault-step-num{color:#fff;background:#0284c7;border-radius:50%;flex-shrink:0;place-items:center;width:18px;height:18px;font-size:.65rem;display:grid}.vault-step-num.chemistry{background:#059669}.vault-step-content-text{color:var(--ink);word-break:break-word;max-width:100%;font-size:.8rem;line-height:1.45;overflow-x:auto}.vault-pitfall-box{color:#b45309;word-break:break-word;background:#f59e0b14;border-left:3px solid #f59e0b;border-radius:0 6px 6px 0;padding:.35rem .6rem;font-size:.76rem;line-height:1.4}.vault-teleport-footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-top:.2rem;padding-top:.45rem;display:flex}.vault-teleport-hint{color:var(--muted);flex:1;min-width:160px;font-size:.74rem}.vault-lab-teleport-btn{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#0284c7 0%,#0369a1 100%);border:1px solid #38bdf8;border-radius:8px;justify-content:center;align-items:center;gap:.45rem;padding:.45rem .95rem;font-size:.78rem;font-weight:700;transition:all .15s;display:inline-flex;box-shadow:0 2px 6px #0284c740}.vault-lab-teleport-btn:hover{background:linear-gradient(135deg,#0369a1 0%,#075985 100%);transform:translateY(-1px);box-shadow:0 4px 12px #0284c759}.vault-lab-teleport-btn.chemistry{background:linear-gradient(135deg,#059669 0%,#047857 100%);border-color:#34d399;box-shadow:0 2px 6px #05966940}.vault-lab-teleport-btn.chemistry:hover{background:linear-gradient(135deg,#047857 0%,#065f46 100%);box-shadow:0 4px 12px #05966959}.katex-scroll-protection,.math-formula,.katex-block-wrapper{-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#94a3b866 transparent;word-break:break-word;max-width:100%;overflow:auto hidden}.katex-scroll-protection .katex-display,.math-formula .katex-display{margin:.4em 0;overflow:auto hidden}@media (width<=640px){.vault-stats-grid{grid-template-columns:repeat(2,1fr)}.vault-card-item{padding:.75rem .8rem}.vault-options-list{grid-template-columns:1fr}.vault-teleport-footer{flex-direction:column;align-items:stretch}.vault-lab-teleport-btn{width:100%}}[data-theme=dark] .physics-sidebar .nav-group button.active{color:#38bdf8;background:#0284c726}[data-theme=dark] .chemistry-sidebar .nav-group button.active{color:#34d399;background:#05966926}[data-theme=dark] .physics-lab .lab-header h3{color:#38bdf8}[data-theme=dark] .chemistry-lab .lab-header h3{color:#34d399}[data-theme=dark] .track-status-pill.physics{color:#38bdf8;background:#0284c733}[data-theme=dark] .track-status-pill.chemistry{color:#34d399;background:#05966933}[data-theme=dark] .launch-action.physics-action{color:#38bdf8}[data-theme=dark] .launch-action.chemistry-action{color:#34d399}[data-theme=dark] .signal-rule-box{color:#38bdf8;background:#0284c72e;border-color:#38bdf84d}[data-theme=dark] .signal-rule-box.chemistry{color:#34d399;background:#0596692e;border-color:#34d3994d}[data-theme=dark] .physics-today-view .unit-seq,[data-theme=dark] .physics-today-view .current-indicator,[data-theme=dark] .physics-today-view .concept-idx,[data-theme=dark] .physics-today-view .btn-enter-lab{color:#38bdf8!important}[data-theme=dark] .physics-today-view .concept-item-card{background:#111827;border-left-color:#38bdf8!important}[data-theme=dark] .physics-today-view .lab-icon{color:#38bdf8;background:#0284c733!important}[data-theme=dark] .chemistry-today-view .unit-seq,[data-theme=dark] .chemistry-today-view .current-indicator,[data-theme=dark] .chemistry-today-view .concept-idx,[data-theme=dark] .chemistry-today-view .btn-enter-lab{color:#34d399!important}[data-theme=dark] .chemistry-today-view .concept-item-card{background:#111827;border-left-color:#34d399!important}[data-theme=dark] .chemistry-today-view .lab-icon{color:#34d399;background:#05966933!important}[data-theme=dark] .unit-map-card{background:#111827;border-color:#374151}[data-theme=dark] .unit-map-card:hover{border-color:#38bdf8}[data-theme=dark] .unit-map-card.active{background:#1e293b;border-color:#38bdf8}[data-theme=dark] .chemistry-today-view .unit-map-card.active{border-color:#34d399}[data-theme=dark] .lab-entry-card{background:#111827;border-color:#374151}[data-theme=dark] .lab-entry-card:hover{border-color:#38bdf8;box-shadow:0 4px 14px #0284c733}[data-theme=dark] .chemistry-today-view .lab-entry-card:hover{border-color:#34d399;box-shadow:0 4px 14px #05966933}[data-theme=dark] .exam-target-pill{color:#fcd34d;background:#f59e0b40;border:1px solid #f59e0b66}[data-theme=dark] .vault-chip-btn.active{color:#fff;background:#0284c7}[data-theme=dark] .vault-chip-btn.chemistry-active{color:#fff;background:#059669}[data-theme=dark] .vault-pitfall-box{color:#fcd34d;background:#f59e0b26}[data-theme=dark] .vault-btn-mastered{color:#34d399;background:#10b98126;border-color:#059669}[data-theme=dark] .vault-solution-wrapper,[data-theme=dark] .vault-step-card{background:#1f2937;border-color:#374151}[data-theme=dark] .vault-solution-title{color:#38bdf8}[data-theme=dark] .vault-solution-title.chemistry{color:#34d399}[data-theme=dark] .vault-step-title-line{color:#7dd3fc}[data-theme=dark] .vault-step-title-line.chemistry{color:#34d399}.hub-topbar{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.35rem;display:flex}.hub-topbar-tools{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.hub-hero-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.85rem;display:flex}.hub-secondary-cta{color:var(--navy);align-items:center;min-height:44px;font-weight:700;text-decoration:none;display:inline-flex}.hub-secondary-cta:hover{text-decoration:underline}.hub-card-hit{text-align:left;background:0 0;flex-direction:column;gap:.7rem;width:100%;height:100%;min-height:44px;padding:1.35rem 1.3rem 1.1rem;display:flex}.hub-card h3{color:var(--navy);margin:0;font-size:1.25rem}.hub-card-mark.cs-mark{color:#fff;background:linear-gradient(145deg,#3f6f64,#5a8a7e)}.hub-card-mark.zh-mark{color:#fff;background:linear-gradient(145deg,#f59e0b,#ef4444)}.track-lang-toggle{gap:.35rem;padding:0 1.25rem 1rem;display:flex}.track-lang-toggle button{min-height:var(--touch-min);border:1px solid var(--line);background:var(--surface-soft);color:var(--muted);border-radius:999px;flex:1;font-size:.78rem;font-weight:700}.track-lang-toggle button.is-active{background:var(--navy);color:#fff;border-color:var(--navy)}.fsrs-memory-dashboard{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:.75rem 0;padding:.85rem 1rem;display:flex}.fsrs-copy{flex:1;align-items:center;gap:.75rem;min-width:220px;display:flex}.fsrs-icon{background:var(--accent-soft);width:42px;height:42px;color:var(--navy);border-radius:10px;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex}.fsrs-title-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.fsrs-chip{color:#047857;background:#d1fae5;border-radius:999px;padding:.15rem .45rem;font-size:.76rem;font-weight:700}.fsrs-copy p{color:var(--muted);margin:.15rem 0 0;font-size:.74rem}.week-heat{align-items:center;gap:.4rem;display:flex}.week-heat-day{flex-direction:column;align-items:center;gap:.2rem;display:flex}.week-heat-cell{background:var(--surface-soft);border:1px solid var(--line);border-radius:4px;justify-content:center;align-items:center;width:1.7rem;height:1.7rem;display:flex}.week-heat-mark{color:var(--muted);font-size:.62rem;font-weight:700;line-height:1}.week-heat-cell.is-active{background:#10b981;border-color:#059669}.week-heat-cell.is-active .week-heat-mark{color:var(--week-heat-on)}.week-heat-day span{color:var(--muted);font-size:.62rem}.hub-more{border:1px solid var(--line);background:var(--surface);border-radius:14px;margin-top:2rem;padding:.25rem 1rem .85rem}.hub-more>summary{cursor:pointer;min-height:44px;color:var(--navy);align-items:center;font-weight:700;display:flex}.hub-more .auth-panel{margin:.75rem 0 1rem}.auth-panel.is-compact{background:var(--surface);border:1px solid var(--line);border-radius:12px;min-width:12rem;margin:0;padding:.35rem .7rem}.auth-panel.is-compact summary{cursor:pointer;min-height:36px;font-size:.82rem;font-weight:700;list-style:none}.auth-panel.is-compact .auth-form{margin-top:.5rem}.auth-panel.is-compact .auth-email{margin:0;font-size:.82rem}.pill-btn.audio-toggle{margin-top:.2rem;padding:.15rem .45rem;font-size:.72rem}.stat-icon{letter-spacing:.04em;color:var(--navy);background:var(--surface-soft);border-radius:8px;place-items:center;width:2rem;height:2rem;font-weight:700;display:grid;font-size:.72rem!important}.cs-shell{width:100%;max-width:100%;height:100vh;color:var(--ink);background:#fff;flex-direction:column;overflow:hidden;grid-template-columns:none!important;display:flex!important}.cs-top-nav{justify-content:space-between;align-items:center;gap:var(--track-topbar-gap);width:100%;min-height:var(--track-header-min-height);padding:var(--track-header-padding-y) var(--track-chrome-gutter-x);color:var(--ink);border-bottom:1px solid var(--line);z-index:50;background:#fff;flex-shrink:0;display:flex}.cs-nav-brand .eyebrow{margin:0}.cs-nav-brand-sub{color:var(--muted);font-size:.72rem;display:block}.cs-nav-list{flex:1;align-items:center;gap:.2rem;min-width:0;display:flex;overflow-x:auto}.cs-nav-item{min-height:var(--touch-min);color:var(--muted);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:8px;padding:.35rem .7rem;font-size:.84rem;font-weight:700}.cs-nav-item.is-active{color:var(--navy);background:var(--surface-soft);border-color:var(--line)}.cs-nav-menu{position:relative}.cs-nav-dropdown{z-index:80;border:1px solid var(--line);background:var(--surface);min-width:220px;box-shadow:var(--shadow);border-radius:10px;flex-direction:column;padding:.35rem;display:flex;position:absolute;top:calc(100% + 6px);left:0}.cs-nav-dropdown button{text-align:left;border-radius:8px;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;min-height:44px;padding:.45rem .65rem;display:flex}.cs-nav-dropdown button:hover{background:var(--surface-soft)}.cs-nav-dropdown strong{align-items:center;gap:.35rem;font-size:.82rem;display:inline-flex}.cs-nav-dropdown span{color:var(--muted);font-size:.72rem;font-weight:500}.cs-nav-badge{background:var(--warm);color:#fff;border-radius:999px;justify-content:center;min-width:1.1rem;margin-left:.3rem;padding:0 .3rem;font-size:.68rem;font-weight:700;display:inline-flex}.cs-advanced-tag{border:1px solid var(--line);background:var(--surface-soft);color:var(--muted);letter-spacing:.04em;border-radius:999px;margin-left:.35rem;padding:.05rem .4rem;font-size:.66rem;font-weight:700;display:inline-flex}.cs-today{flex-direction:column;gap:1.25rem;max-width:720px;display:flex}.cs-today-hero h1{color:var(--navy);margin:.2rem 0 .45rem;font-size:clamp(1.45rem,3vw,2rem)}.cs-today-progress-line{color:var(--muted);margin:.35rem 0 0;font-size:.84rem}.cs-today-secondary{flex-wrap:wrap;gap:.75rem;margin-top:.85rem;display:flex}.cs-today-secondary button{min-height:40px;color:var(--navy);font-size:.84rem;font-weight:700}.cs-today-radar{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:1rem 1.1rem}.cs-radar-row{margin-bottom:.7rem}.cs-radar-row-top{justify-content:space-between;margin-bottom:.25rem;font-size:.8rem;display:flex}.cs-radar-bar{background:var(--line);border-radius:999px;height:6px;overflow:hidden}.cs-radar-bar i{background:var(--navy);border-radius:999px;height:100%;display:block}.cs-bigo-card{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:1rem 1.1rem}.cs-bigo-card h2{color:var(--navy);margin:0;font-size:1rem;font-weight:700}.cs-bigo-group h3{color:var(--muted);margin:.7rem 0 .15rem;font-size:.72rem;font-weight:700}.cs-bigo-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:.75rem;padding:.32rem 0;font-size:.8rem;display:flex}.cs-bigo-group .cs-bigo-row:last-child{border-bottom:none}.cs-bigo-row strong{color:var(--navy);font-weight:700}.cs-httptcp-card{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:1rem 1.1rem}.cs-httptcp-card h2{color:var(--navy);margin:0;font-size:1rem;font-weight:700}.cs-httptcp-unit{color:var(--muted);margin:0 0 .35rem;font-size:.72rem;font-weight:700}.cs-httptcp-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:.75rem;padding:.32rem 0;font-size:.8rem;display:flex}.cs-httptcp-row:last-child{border-bottom:none}.cs-httptcp-row strong{color:var(--navy);font-weight:700}.cs-main-viewport{background:var(--bg)}@media (width<=900px){.cs-top-nav{min-height:var(--track-header-min-height);padding:var(--track-header-padding-y) var(--track-chrome-gutter-x);flex-wrap:wrap;align-items:flex-start}.cs-nav-list{order:3;width:100%;padding-bottom:.15rem}.cs-nav-dropdown{left:auto;right:0}}@media (width<=720px){.hub-stat-banner{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-topbar{flex-direction:column}.auth-panel.is-compact{width:100%}}.content-provenance{color:var(--muted);margin:.35rem 0 0;font-size:.72rem;line-height:1.45}.locale-toggle{border:1px solid var(--line);background:var(--surface);border-radius:999px;flex-shrink:0;align-items:center;gap:.15rem;padding:.18rem;display:inline-flex}.locale-toggle button{min-height:var(--touch-min);min-width:var(--touch-min);color:var(--muted);border-radius:999px;padding:.2rem .7rem;font-size:.78rem;font-weight:700}.locale-toggle button.is-active{background:var(--navy);color:var(--on-navy)}.locale-toggle.is-compact button{min-height:var(--touch-min);min-width:var(--touch-min);padding:.15rem .5rem;font-size:.72rem}.sidebar-chrome{flex-direction:column;gap:.5rem;margin-bottom:.85rem;display:flex}.sidebar-chrome-row{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:.35rem;display:grid}.sidebar-chrome .hub-back{border:1px solid var(--line);background:var(--surface-soft);text-align:left;border-radius:10px;min-height:44px;margin:0;padding:.35rem .65rem;font-size:.82rem}.privacy-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.35rem;display:flex}.hub-today-block{border:1px solid var(--line);border-radius:var(--card-radius);background:var(--surface);padding:1.15rem 1.2rem 1.25rem;box-shadow:0 6px 18px #2c261f0a}.hub-hero .lede{max-width:42rem;color:var(--muted);line-height:1.65}.hub-card-hit{gap:.7rem}.track-desc{min-height:2.7em;line-height:1.6}.chinese-app-shell{background:var(--bg);width:100%;height:100vh;display:flex;overflow:hidden}.chinese-main-content{min-width:0;height:100vh;padding:var(--track-content-padding);background:var(--bg);flex:1;overflow-y:auto}.chinese-lang-toolbar{min-height:var(--track-header-min-height);margin-bottom:var(--track-topbar-margin);padding-block:var(--track-header-padding-y);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:var(--track-topbar-gap);flex-wrap:wrap;display:flex}.chinese-nav{flex-direction:column;gap:.25rem;padding:.6rem;display:flex}.zh-nav-title{font-size:.84rem;line-height:1.2}.zh-nav-sub{color:var(--muted);font-size:.65rem;line-height:1.2}.chinese-sidebar,.cs-sidebar{width:var(--track-sidebar-width);min-width:var(--track-sidebar-width);flex-shrink:0}.hub-bottom-nav{display:none}@media (width<=860px){.hub-bottom-nav{z-index:45;min-height:var(--touch-min);padding-bottom:env(safe-area-inset-bottom,0px);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffcf7f5;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.hub-bottom-nav-item{min-height:var(--touch-min);min-width:var(--touch-min);color:var(--muted);touch-action:manipulation;flex-direction:column;justify-content:center;align-items:center;gap:.08rem;padding:.3rem .35rem;font-size:.72rem;font-weight:700;text-decoration:none;display:inline-flex}.hub-bottom-nav-item.is-current,.hub-bottom-nav-item[aria-current=page]{color:var(--navy)}.hub-bottom-nav-mark{font-family:var(--font-display);font-size:.95rem;line-height:1}.hub{padding-bottom:calc(1.25rem + var(--touch-min) + env(safe-area-inset-bottom,0px))}}.sidebar-brand-box{border-bottom:1px solid var(--line);padding:.85rem 1rem}@media (width<=390px){.hub{padding:1rem .85rem calc(1.25rem + var(--touch-min) + env(safe-area-inset-bottom,0px))}.hub-hero h1{font-size:1.7rem;line-height:1.25}.hub-card-hit{padding:1.05rem 1rem .9rem}.privacy-page{padding:1.25rem 1rem 2.25rem}.hub-today-block{padding:.95rem .9rem 1.05rem}.stat-card{padding:.95rem 1rem}}@media (width<=860px){.chinese-app-shell{flex-direction:column;height:auto;min-height:100vh;overflow:visible}.chinese-main-content{height:auto;padding:1rem .85rem 4.5rem;overflow:visible}.chinese-sidebar,.cs-sidebar{flex-shrink:1;width:100%;min-width:0;max-width:100%}.chinese-sidebar .sidebar-brand-box,.zh-nav-sub{display:none}.sidebar-chrome-row{grid-template-columns:1fr}}.limiting-reagent-example{color:var(--ink);flex-direction:column;gap:.45rem;display:flex}.limiting-reagent-title{margin:0;font-size:.92rem}.limiting-reagent-given,.limiting-reagent-honesty{color:var(--muted);margin:0;font-size:.82rem}.limiting-reagent-table{border-collapse:collapse;width:100%;font-size:.8rem}.limiting-reagent-table caption{text-align:left;margin-bottom:.3rem;font-weight:650}.limiting-reagent-table th,.limiting-reagent-table td{border:1px solid var(--line);text-align:left;padding:.3rem .45rem}.limiting-reagent-steps{margin:0;padding-left:1.2rem;font-size:.82rem}.why-this-next{color:var(--muted);flex-direction:column;gap:.15rem;margin:.35rem 0 0;font-size:.78rem;line-height:1.4;display:flex}.hub-shortcut-trigger{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:999px;padding:.28rem .7rem;font-size:.78rem;font-weight:650}.hub-shortcut-dialog{border:1px solid var(--line);width:min(28rem,100vw - 2rem);color:var(--ink);background:var(--surface);border-radius:12px;padding:1rem 1.1rem}.hub-shortcut-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.hub-shortcut-header h2{margin:0;font-size:1.05rem}.hub-shortcut-table{border-collapse:collapse;width:100%;margin-top:.65rem;font-size:.85rem}.hub-shortcut-table caption{text-align:left;margin-bottom:.35rem;font-weight:650}.hub-shortcut-table th,.hub-shortcut-table td{border-bottom:1px solid var(--line);text-align:left;padding:.35rem .2rem}.hub-shortcut-table kbd{font-family:inherit;font-weight:700}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2)format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff)format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2)format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff)format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2)format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff)format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2)format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff)format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2)format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff)format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2)format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff)format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2)format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff)format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2)format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff)format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2)format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff)format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2)format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff)format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2)format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff)format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff)format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff)format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff)format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2)format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff)format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2)format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff)format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2)format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff)format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC)format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff)format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2)format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff)format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2)format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff)format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf)format("truetype")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,Times New Roman,serif;position:relative}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.18.4"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.katex-newline{display:block}.katex .katex-base{white-space:nowrap;width:min-content;position:relative}.katex .katex-base,.katex .katex-strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .katex-vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .katex-thinbox{flex-direction:row;width:0;max-width:0;display:inline-flex}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline,.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-rule,.katex .katex-underline .underline-line,.katex .mfrac .frac-line{min-height:1px}.katex .mspace{display:inline-block}.katex .katex-smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.katex-inner,.katex .llap>.katex-inner,.katex .rlap>.katex-inner{position:absolute}.katex .clap>.katex-fix,.katex .llap>.katex-fix,.katex .rlap>.katex-fix{display:inline-block}.katex .llap>.katex-inner{right:0}.katex .clap>.katex-inner,.katex .rlap>.katex-inner{left:0}.katex .clap>.katex-inner>span{margin-left:-50%;margin-right:50%}.katex .katex-rule{border:0 solid;display:inline-block;position:relative}.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.katex-root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .katex-sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .katex-sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .katex-sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .katex-sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .katex-sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .katex-sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .katex-sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .katex-sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .katex-sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .katex-sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .katex-sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .katex-sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .katex-sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .katex-sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .katex-sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .katex-sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .katex-sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .katex-sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .katex-sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .katex-sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .katex-sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .katex-sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .katex-sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .katex-sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .katex-sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .katex-sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .katex-sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .katex-sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .katex-sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .katex-sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .katex-sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .katex-sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .katex-sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .katex-sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .katex-sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .katex-sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .katex-sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .katex-sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .katex-sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .katex-sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .katex-sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .katex-sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .katex-sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .katex-sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .katex-sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .katex-sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .katex-sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .katex-sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .katex-sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .katex-sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .katex-sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .katex-sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .katex-sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .katex-sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .katex-sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .katex-sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .katex-sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .katex-sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .katex-sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .katex-sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .katex-sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .katex-sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .katex-sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .katex-sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .katex-sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .katex-sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .katex-sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .katex-sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .katex-sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .katex-sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .katex-sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .katex-sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .katex-sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .katex-sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .katex-sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .katex-sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .katex-sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .katex-sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .katex-sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .katex-sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .katex-sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .katex-sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .katex-sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .katex-sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .katex-sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .katex-sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .katex-sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .katex-sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .katex-sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .katex-sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .katex-sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .katex-sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .katex-sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .katex-sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .katex-sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .katex-sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .katex-sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .katex-sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .katex-sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .katex-sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .katex-sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .katex-sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .katex-sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .katex-sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .katex-sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .katex-sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .katex-sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .katex-sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .katex-sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .katex-sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .katex-sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .katex-sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .katex-sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .katex-sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .katex-sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .katex-sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .katex-sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .katex-sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .katex-sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .katex-sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .katex-sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .katex-accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .katex-accent .accent-body{position:relative}.katex .katex-accent .accent-body:not(.accent-full){width:0}.katex .katex-overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .katex-stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .katex-stretchy:after,.katex .katex-stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .katex-sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.katex-tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.katex-tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}
