:root{--color-primary:#475569;--color-secondary:#64748b;--color-cta:#2563eb;--color-background:#f8fafc;--color-text:#1e293b;--bg:var(--color-background);--surface:#ffffffeb;--surface-strong:#fff;--text:var(--color-text);--muted:#64748b;--line:#0f172a14;--brand:var(--color-primary);--brand-deep:#334155;--cta:var(--color-cta);--cta-deep:#1d4ed8;--math:#dbeafe;--physics:#e0e7ff;--chemistry:#d1fae5;--shadow-sm:0 1px 2px #0000000a;--shadow:0 4px 12px #0000000f;--shadow-md:0 2px 8px #0000000f;--shadow-lg:0 8px 24px #00000014;--shadow-xl:0 16px 32px #0000001a;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;--fs-md:1.125rem;--fs-lg:1.25rem;--fs-xl:clamp(1.5rem,2.4vw,2rem);--fs-2xl:clamp(2rem,4.8vw,3.5rem);--fs-display:clamp(1.75rem,3.8vw,2.5rem);--font-main:"Plus Jakarta Sans",system-ui,sans-serif;--lh-display:.98;--lh-tight:1.15;--lh-snug:1.35;--lh-normal:1.55;--lh-relaxed:1.65;--lh-loose:1.7;--ls-tighter:-.04em;--ls-tight:-.03em;--ls-normal:0;--ls-wide:.08em;--ls-wider:.16em}*{box-sizing:border-box}.skip-link{z-index:9999;background:var(--brand);color:#fff;border-radius:8px;padding:12px 20px;font-weight:600;text-decoration:none;transition:top .2s;position:absolute;top:-100%;left:16px}.skip-link:focus{top:16px}html{scroll-behavior:smooth}body{min-height:100vh;font-size:var(--fs-base);line-height:var(--lh-relaxed);color:var(--text);background:var(--bg);margin:0}a{color:inherit;text-decoration:none}button,a{transition:transform .18s,box-shadow .18s,background-color .18s}a:hover,button:hover{transform:translateY(-1px)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #2563eb4d}.shell{width:min(1180px,100vw - 32px);margin:0 auto}.topbar{justify-content:space-between;align-items:center;gap:20px;padding:22px 0;display:flex}.brand{cursor:pointer;align-items:center;gap:14px;display:flex}.brand-mark{color:#fff;background:linear-gradient(135deg,#3b82f6 0%,#6366f1 50%,#8b5cf6 100%);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;font-weight:800;line-height:1;display:flex;box-shadow:0 2px 8px #6366f159}.brand-copy{white-space:nowrap;gap:2px;display:grid}.brand-title{font-size:var(--fs-base);letter-spacing:.02em;font-weight:700}.brand-kicker{font-size:var(--fs-2xs,11px);color:var(--muted);letter-spacing:.03em}.nav--desktop{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.mobile-toggle{border:1px solid var(--line);background:var(--surface-strong);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:none}.mobile-drawer{z-index:900;background:var(--bg);flex-direction:column;padding:16px 20px 32px;animation:.2s ease-out drawer-in;display:flex;position:fixed;inset:80px 0 0;overflow-y:auto}@keyframes drawer-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.mobile-drawer__links{flex-direction:column;flex:1;gap:4px;display:flex}.mobile-drawer__link{font-size:var(--fs-base);color:var(--text);font-weight:500;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;transition:background .15s;display:flex}.mobile-drawer__link:hover,.mobile-drawer__link--active{color:var(--brand-deep);background:#2563eb0f}.mobile-drawer__footer{border-top:1px solid var(--line);flex-direction:column;gap:8px;margin-top:16px;padding-top:16px;display:flex}.nav-link-active{color:var(--brand-deep);background:#2563eb14;border-color:#2563eb33}.nav-divider{background:var(--line);width:1px;height:22px;margin:0 4px}.nav-link,.ghost-link,.cta-link,.soft-link,.nav-button,.cta-button{border:1px solid var(--line);font:inherit;cursor:pointer;background:#ffffffc7;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-weight:500;transition:all .2s;display:inline-flex}.cta-link{background:var(--color-cta);color:#fff;border-color:#0000;font-weight:600;box-shadow:0 10px 28px #2563eb33}.cta-link:hover{opacity:.9}.ghost-link{color:var(--color-primary);border:2px solid var(--color-primary);background:0 0;font-weight:600}.ghost-link:hover{background:#6366f10f}.cta-button{background:var(--color-cta);color:#fff;border-color:#0000;font-weight:600;box-shadow:0 10px 28px #2563eb33}.cta-button:hover{opacity:.9}.nav-button{color:var(--muted)}.hero{grid-template-columns:1.15fr .85fr;gap:24px;padding:22px 0 48px;display:grid}.hero.hero-simple{text-align:center;grid-template-columns:1fr;max-width:680px;margin:0 auto;padding:48px 0 56px}.hero-simple .hero-copy{padding:48px 40px}.hero-simple .hero-actions{justify-content:center}.panel{background:var(--surface);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow);border:1px solid #ffffff80;border-radius:16px}.hero-copy{padding:34px}.eyebrow{border:1px solid var(--line);color:var(--brand-deep);font-size:var(--fs-sm);background:#f1f5f9e6;border-radius:999px;align-items:center;gap:8px;padding:7px 12px;display:inline-flex}.hero h1,.page-hero h1,.detail-hero h1{font-size:var(--fs-2xl);line-height:var(--lh-display);letter-spacing:var(--ls-tighter);margin:18px 0 14px}.hero p,.page-hero p,.detail-hero p,.card p,.status p,.feature-list li,.spec-list li,.meta-row,.aside-note,.empty-note{color:var(--muted);line-height:var(--lh-loose)}.hero-actions,.meta-actions,.detail-actions,.play-actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.launch-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:28px;display:grid}.launch-pill{background:#ffffffad;border:1px solid #4c38231a;border-radius:18px;gap:8px;padding:14px 16px;display:grid}.launch-pill span,.console-label,.filter-group-label{font-size:var(--fs-sm);color:var(--muted)}.launch-pill strong{font-size:var(--fs-md)}.hero-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:18px;display:grid}.metric-card,.card,.status,.content-stage,.play-stage,.info-card,.offline-card,.module-card,.placeholder-card{background:var(--surface-strong);border:1px solid var(--line);box-shadow:var(--shadow-md);border-radius:12px;transition:all .2s}.card:hover,.info-card:hover,.offline-card:hover,.module-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.metric-card{align-content:space-between;min-height:180px;padding:22px;display:grid}.metric-label{font-size:var(--fs-sm);color:var(--muted)}.metric-value{font-size:var(--fs-display);letter-spacing:var(--ls-tighter);font-weight:700}.page-section{padding:18px 0 48px}.section-head{justify-content:space-between;align-items:end;gap:16px;margin-bottom:20px;display:flex}.section-head h2,.section-head h3{font-size:var(--fs-xl);letter-spacing:var(--ls-tight);margin:0}.card-grid,.subject-grid,.path-grid,.spec-grid,.offline-grid,.module-grid{gap:18px;display:grid}.card-grid,.path-grid,.offline-grid,.module-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.subject-grid,.spec-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.card,.offline-card,.module-card,.placeholder-card,.info-card{padding:22px}.pill-row,.chip-row{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.pill,.chip,.tag{font-size:var(--fs-xs);border-radius:999px;align-items:center;padding:7px 10px;display:inline-flex}.pill{color:var(--brand-deep);background:#2563eb14}.chip{color:var(--muted);background:#3b82f614}.tag{color:#166534;background:#22c55e24}.subject-card{border:1px solid var(--line);min-height:180px;box-shadow:var(--shadow);border-radius:26px;padding:22px}.subject-card.math{background:linear-gradient(#bfdbfe80,#fffffff5)}.subject-card.physics{background:linear-gradient(#c7d2fe80,#fffffff5)}.subject-card.chemistry{background:linear-gradient(#bbf7d080,#fffffff5)}.subject-card.language{background:linear-gradient(#fed7aa6b,#fffffff5)}.page-hero,.detail-hero{padding:24px 0 30px}.filter-bar{flex-wrap:wrap;gap:10px;margin:18px 0 28px;display:flex}.filter-bar.compact{margin:0}.filter-pill{border:1px solid var(--line);color:var(--muted);background:#ffffffa8;border-radius:999px;padding:9px 14px}.filter-pill.interactive{font:inherit;cursor:pointer}.filter-pill.active{color:var(--brand-deep);background:#2563eb1f;border-color:#2563eb40}.detail-layout,.play-layout{grid-template-columns:1.25fr .75fr;gap:20px;padding-bottom:44px;display:grid}.content-stage,.play-stage{padding:24px}.stage-head{justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;display:flex}.stage-visual{background:radial-gradient(circle at 20% 20%,#fffffff2,#0000 30%),linear-gradient(135deg,#dbeafeb3,#fffffff0);border:1px dashed #2563eb3d;border-radius:22px;gap:18px;min-height:420px;padding:22px;display:grid}.module-placeholder{background:#ffffffad;border:1px dashed #4c38232e;border-radius:22px;align-content:center;gap:14px;min-height:260px;padding:24px;display:grid}.teacher-console,.planner-grid,.math-explorer-head,.math-explorer-summary{gap:18px;display:grid}.teacher-console,.planner-grid{grid-template-columns:1.1fr .9fr}.console-card,.planner-card,.math-explorer{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffdf9d1;border-radius:24px;padding:24px}.console-primary,.planner-highlight{background:linear-gradient(#fffffffa,#f8fafcf5)}.console-list{gap:14px;margin:16px 0 0;padding:0;list-style:none;display:grid}.console-list li{border-bottom:1px solid #4c382314;gap:4px;padding-bottom:14px;display:grid}.console-list li:last-child{border-bottom:0;padding-bottom:0}.console-list span{color:var(--muted)}.status-badge{font-size:var(--fs-xs);border-radius:999px;align-items:center;padding:7px 10px;display:inline-flex}.status-badge.published{color:#166534;background:#22c55e24}.status-badge.testing{color:var(--brand-deep);background:#f973161f}.status-badge.draft{color:#475569;background:#94a3b826}.status-badge.archived{color:#6b7280;background:#6b72801f}.content-card-emphasis{background:var(--surface-strong)}.math-explorer{margin-bottom:22px}.math-explorer-head{grid-template-columns:1fr auto;align-items:start;margin-bottom:18px}.math-explorer-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-card{background:#ffffffbd;border:1px solid #4c38231a;border-radius:18px;gap:6px;min-width:140px;padding:16px;display:grid}.summary-card span{color:var(--muted);font-size:var(--fs-sm)}.summary-card strong,.planner-price-row strong,.step-index{font-size:var(--fs-display);letter-spacing:var(--ls-tighter)}.filter-cluster,.filter-group{gap:12px;display:grid}.planner-price-row{border-bottom:1px solid #4c382314;justify-content:space-between;align-items:end;gap:16px;margin-bottom:16px;padding-bottom:14px;display:flex}.planner-note{background:#ffffff94;border-radius:18px;margin-top:18px;padding:16px 18px}.compact-head{margin-bottom:18px}.step-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.step-card{align-content:start;gap:14px;display:grid}.step-index{color:var(--brand-deep)}.math-console{grid-template-columns:1.2fr .8fr}.math-page-hero{grid-template-columns:1.05fr .95fr;align-items:stretch;gap:18px;display:grid}.math-hero-copy,.math-hero-stats{gap:16px;display:grid}.math-hero-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.math-stat-card,.teacher-kpi-card{background:linear-gradient(#fffffffa,#f8fafcf5);border:2px solid #2563eb1a;border-radius:24px;padding:18px;box-shadow:0 14px 24px #2563eb0d,inset 0 -6px #2563eb0f}.math-stat-card span,.teacher-kpi-card span{font-size:var(--fs-sm);color:var(--muted);margin-bottom:8px;display:block}.math-stat-card strong,.teacher-kpi-card strong{font-size:var(--fs-display);letter-spacing:var(--ls-tighter)}.math-content-card{border-width:2px;border-color:#2563eb14;box-shadow:0 16px 28px #2563eb0d,inset 0 -5px #2563eb0d}.teacher-kpi-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px;display:grid}.teacher-action-card,.teacher-record-card{background:var(--surface-strong);border-width:2px}.status{padding:20px}.status strong{margin-bottom:8px;display:block}.feature-list,.spec-list{margin:0;padding-left:18px}.meta-stack{gap:16px;margin:0;padding:0;display:grid}.meta-row{border-bottom:1px solid #4c382314;justify-content:space-between;gap:16px;padding:12px 0;display:flex}.meta-row dt{color:var(--muted)}.meta-row dd{margin:0;font-weight:600}.meta-row:last-child{border-bottom:0}.site-footer{padding:var(--space-3xl)0;margin-top:var(--space-2xl);border-top:1px solid var(--line);background:var(--surface);color:var(--text)}.site-footer__grid{gap:var(--space-2xl);grid-template-columns:1.5fr 1fr 1fr auto 1.5fr;align-items:start;display:grid}.site-footer__brand-name{font-size:var(--fs-xl);color:var(--brand);margin-bottom:var(--space-xs);font-weight:700;display:block}.site-footer__brand-subtitle{font-size:var(--fs-sm);color:var(--muted);margin:0}.site-footer__heading{margin:0 0 var(--space-md);font-size:var(--fs-sm);color:var(--text);text-transform:uppercase;letter-spacing:var(--ls-wide);font-weight:600}.site-footer__list{margin:0;padding:0;list-style:none}.site-footer__list li{margin-bottom:var(--space-sm)}.site-footer__list a:hover{color:var(--brand)}.site-footer__desc{margin:0 0 var(--space-md);font-size:var(--fs-sm);color:var(--muted);line-height:var(--lh-normal)}.site-footer__copyright{font-size:var(--fs-xs);color:var(--muted);margin:0}.auth-page,.account-page{padding-bottom:48px}.auth-card,.account-hero{margin:14px 0 28px;padding:28px}.auth-card{grid-template-columns:1fr .9fr;gap:22px;display:grid}.auth-intro{flex-direction:column;justify-content:center;padding-right:12px;display:flex}.auth-brand-icon{width:72px;height:72px;color:var(--cta);background:#2563eb0f;border-radius:18px;place-items:center;margin-bottom:20px;display:grid}.auth-features{flex-direction:column;gap:12px;margin-top:24px;display:flex}.auth-feature-item{font-size:var(--fs-sm);color:var(--muted);align-items:center;gap:10px;display:flex}.auth-feature-dot{background:var(--cta);border-radius:50%;flex-shrink:0;width:8px;height:8px}.field-input-wrap{position:relative}.field-icon{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.field-input-wrap input{width:100%;font:inherit;font-size:var(--fs-base);background:#ffffffd6;border:1px solid #e2e8f0;border-radius:8px;padding:12px 16px 12px 42px;transition:border-color .2s}.field-input-wrap input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2563eb14}.auth-form{align-content:start;gap:16px;display:grid}.field,.role-group{gap:8px;display:grid}.field span,.role-group legend{font-size:var(--fs-sm);color:var(--muted)}.field input{width:100%;font:inherit;font-size:var(--fs-base);background:#ffffffd6;border:1px solid #e2e8f0;border-radius:8px;padding:12px 16px;transition:border-color .2s}.field input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb14}.field select,.field textarea{width:100%;font:inherit;font-size:var(--fs-base);resize:vertical;background:#ffffffd6;border:1px solid #e2e8f0;border-radius:8px;padding:12px 16px;transition:border-color .2s}.field select:focus,.field textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb14}.role-group{border:0;margin:0;padding:0}.role-options,.auth-helper,.role-option{align-items:center;display:flex}.role-option{border:1px solid var(--line);background:#ffffffb8;border-radius:16px;gap:8px;padding:12px 14px}.role-group{flex-wrap:wrap;gap:12px;display:flex}.auth-helper{color:var(--muted);gap:8px}.auth-helper a{color:var(--brand-deep);font-weight:600}.error-note,.success-note{border-radius:14px;margin:0;padding:12px 14px}.error-note{color:#9a3412;background:#f973161f}.success-note{color:#166534;background:#22c55e24}.account-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:24px;display:grid}.request-layout{grid-template-columns:1.1fr .9fr;gap:18px;display:grid}.request-form{gap:16px;display:grid}.journey-grid,.detail-journey-strip{gap:18px;display:grid}.journey-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.journey-card,.detail-progress-card,.detail-journey-card{border:1px solid var(--line);box-shadow:var(--shadow-md);background:#ffffffdb;border-radius:22px}.journey-card{gap:12px;padding:22px;display:grid}.journey-index{background:linear-gradient(135deg,var(--brand),var(--cta));color:#fff;width:44px;height:44px;box-shadow:var(--shadow-md);border-radius:14px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.detail-hero-upgraded{grid-template-columns:1.15fr .85fr;gap:20px;padding:24px 0 28px;display:grid}.detail-hero-copy{align-content:start;display:grid}.detail-progress-card{background:radial-gradient(circle at 100% 0,#3b82f629,#0000 24%),linear-gradient(#fffffffa,#eff6fff5);padding:24px}.detail-journey-strip{grid-template-columns:repeat(3,minmax(0,1fr));padding-bottom:26px}.detail-journey-card{gap:12px;padding:20px;display:grid}.content-status-card{background:radial-gradient(circle at 100% 0,#f9731624,#0000 20%),#fffffff0}.sticky-cta-card{position:sticky;top:18px}.content-intro{padding:24px 0 60px}.content-intro__back{color:var(--muted);font-size:var(--fs-sm);align-items:center;gap:6px;margin-bottom:24px;text-decoration:none;transition:color .15s;display:inline-flex}.content-intro__back:hover{color:var(--text)}.content-intro__header{max-width:640px;margin-bottom:36px}.content-intro__header h1{font-size:var(--fs-2xl);line-height:var(--lh-tight);margin:10px 0 12px}.content-intro__desc{color:var(--muted);line-height:var(--lh-normal);margin-bottom:24px}.content-intro__actions{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.content-intro__start{background:var(--color-cta);color:#fff;border-radius:10px;align-items:center;gap:10px;padding:14px 32px;font-size:1.05rem;font-weight:600;text-decoration:none;transition:background .15s,transform .15s;display:inline-flex}.content-intro__start:hover{background:var(--cta-deep);transform:translateY(-1px)}.content-intro__mode-badge{background:var(--surface);border:1px solid var(--border);font-size:var(--fs-sm);color:var(--muted);border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-weight:600;display:inline-flex}.content-intro__details{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:36px;display:grid}.content-intro__card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px}.content-intro__card h2{font-size:var(--fs-sm);color:var(--muted);text-transform:uppercase;letter-spacing:var(--ls-wide);margin:0 0 10px}.content-intro__card p{line-height:var(--lh-normal);margin:0}.content-intro__scene{color:var(--text);align-items:center;gap:14px;display:flex}.content-intro__scene strong{margin-bottom:2px;display:block}.content-intro__scene p{font-size:var(--fs-sm);color:var(--muted)}.content-intro__modes{flex-wrap:wrap;gap:6px;display:flex}.content-intro__offline{background:var(--surface);border:1px solid var(--border);border-radius:10px;align-items:center;gap:16px;padding:20px;display:flex}.content-intro__offline p{font-size:var(--fs-sm);color:var(--muted);margin:4px 0 0}.content-intro__offline .ghost-link{white-space:nowrap;margin-left:auto}:is(body:has(.play-wrapper) .site-header,body:has(.play-wrapper) .site-footer,body:has(.play-wrapper) .skip-link){display:none!important}body:has(.play-wrapper) #main-content{padding:0}.play-page{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.play-page:fullscreen{background:#fff}.play-header{border-bottom:1px solid var(--border);background:var(--surface);z-index:50;flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 20px;display:flex;position:relative}.play-header__back{color:var(--text);align-items:center;gap:8px;font-weight:500;text-decoration:none;display:flex}.play-header__title{font-size:var(--fs-base)}.play-header__actions{align-items:center;gap:12px;display:flex}.play-header__info{font-size:var(--fs-sm);color:var(--muted)}.play-header__btn{border:1px solid var(--border);cursor:pointer;color:var(--text);font-size:var(--fs-sm);background:0 0;border-radius:8px;align-items:center;gap:5px;padding:6px 10px;text-decoration:none;transition:background .15s;display:flex}.play-header__btn:hover{background:var(--border)}.play-header__btn-label{font-weight:500}.play-stage{flex:1;justify-content:center;align-items:center;padding:20px;display:flex;overflow:auto}.play-stage>*{width:100%;max-width:960px}.play-loading{min-height:60vh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}@media (max-width:980px){.content-intro__details{grid-template-columns:1fr}.content-intro__offline{text-align:left;flex-direction:column;align-items:flex-start}.content-intro__offline .ghost-link{margin-left:0}.hero,.detail-layout,.play-layout,.detail-hero-upgraded,.math-page-hero,.fraction-demo,.auth-card,.account-grid,.fraction-controls-grid,.request-layout,.teacher-console,.planner-grid,.math-explorer-head,.math-console,.step-grid,.journey-grid,.detail-journey-strip,.site-footer__grid{grid-template-columns:1fr}.card-grid,.path-grid,.offline-grid,.module-grid,.subject-grid,.spec-grid,.account-grid,.launch-strip,.math-hero-stats,.teacher-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1100px){.nav--desktop{display:none}.mobile-toggle{display:flex}.brand-kicker{display:none}}@media (max-width:640px){.shell{width:min(100vw - 20px,1180px)}.section-head{flex-direction:column;align-items:start}.hero-copy,.card,.info-card,.content-stage,.play-stage,.offline-card,.module-card,.placeholder-card,.subject-card,.metric-card,.status{padding:18px}.card-grid,.path-grid,.offline-grid,.module-grid,.subject-grid,.spec-grid,.hero-grid,.account-grid,.launch-strip,.math-explorer-summary,.math-hero-stats,.teacher-kpi-strip{grid-template-columns:1fr}.planner-price-row,.math-explorer-head{align-items:start}}.pg-head{max-width:600px;padding:48px 0 32px}.pg-head h1{font-size:var(--fs-2xl);letter-spacing:var(--ls-tight);line-height:var(--lh-tight);margin:0 0 8px}.pg-head__sub{color:var(--muted);font-size:var(--fs-md);line-height:var(--lh-normal);margin:0}.hp-hero{max-width:640px;padding:64px 0 48px}.hp-hero__title{font-size:clamp(1.75rem,4vw,2.75rem);font-weight:700;line-height:var(--lh-tight);letter-spacing:var(--ls-tight);color:var(--text);margin:0 0 16px}.hp-hero__sub{color:var(--muted);font-size:var(--fs-md);line-height:var(--lh-loose);margin:0 0 28px}.hp-hero__sub strong{color:var(--text)}.hp-hero__actions{flex-wrap:wrap;gap:12px;display:flex}.hp-features{background:var(--line);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:1px;margin-bottom:48px;display:flex;overflow:hidden}.hp-feat-card{background:var(--surface-strong);color:inherit;cursor:pointer;align-items:center;gap:16px;padding:20px 24px;text-decoration:none;transition:background .15s;display:flex}.hp-feat-card:hover{background:#f8fafc;transform:none}.hp-feat-icon{color:var(--muted);flex-shrink:0}.hp-feat-title{font-size:var(--fs-base);margin:0 0 2px;font-weight:600}.hp-feat-desc{font-size:var(--fs-sm);color:var(--muted);line-height:var(--lh-normal);margin:0}.hp-feat-arrow{color:var(--muted);opacity:.4;flex-shrink:0;margin-left:auto;transition:opacity .15s,transform .15s}.hp-feat-card:hover .hp-feat-arrow{opacity:1;transform:translate(2px)}.hp-latest{padding-bottom:48px}.hp-latest__head{justify-content:space-between;align-items:baseline;margin-bottom:16px;display:flex}.hp-latest__head h2{font-size:var(--fs-lg);margin:0;font-weight:600}.hp-latest__all{font-size:var(--fs-sm);color:var(--muted);align-items:center;gap:4px;display:inline-flex}.hp-latest__all:hover{color:var(--text);transform:none}.hp-latest__grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.hp-content-card{border:1px solid var(--line);background:var(--surface-strong);color:inherit;border-radius:10px;padding:20px;text-decoration:none;transition:box-shadow .15s,border-color .15s;display:block}.hp-content-card:hover{box-shadow:var(--shadow-md);border-color:#2563eb26;transform:none}.hp-content-subject{font-size:var(--fs-xs);color:var(--cta);margin-bottom:6px;font-weight:500;display:inline-block}.hp-content-title{font-size:var(--fs-base);font-weight:600;line-height:var(--lh-snug);margin:0 0 6px}.hp-content-desc{font-size:var(--fs-sm);color:var(--muted);line-height:var(--lh-normal);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.hp-bottom-cta{font-size:var(--fs-sm);color:var(--muted);border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:32px 0 64px;display:flex}.hp-bottom-cta .cta-link{font-size:var(--fs-sm);padding:8px 16px}.hp-bottom-sep{color:var(--line)}.res-filter{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:14px;margin-bottom:32px;padding:20px;display:flex}.res-filter__search{align-items:center;display:flex;position:relative}.res-filter__search-icon{color:var(--muted);pointer-events:none;position:absolute;left:12px}.res-filter__input{border:1px solid var(--border);width:100%;font-size:var(--fs-base);background:var(--bg);color:var(--text);border-radius:8px;outline:none;padding:10px 36px;transition:border-color .2s}.res-filter__input:focus{border-color:var(--color-cta)}.res-filter__input::placeholder{color:var(--muted)}.res-filter__clear{color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;padding:4px;display:flex;position:absolute;right:10px}.res-filter__row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.res-filter__label{font-size:var(--fs-sm);color:var(--muted);flex-shrink:0;min-width:36px}.res-filter__tabs{flex-wrap:wrap;gap:6px;display:flex}.res-filter__tab{border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:var(--fs-sm);cursor:pointer;white-space:nowrap;border-radius:6px;padding:5px 14px;transition:all .15s}.res-filter__tab:hover{border-color:var(--color-cta);color:var(--color-cta)}.res-filter__tab.active{background:var(--color-cta);color:#fff;border-color:var(--color-cta)}.res-filter__status{font-size:var(--fs-sm);color:var(--muted);border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding-top:4px;display:flex}.res-filter__reset{color:var(--color-cta);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:none;text-decoration:underline}.res-empty{text-align:center;color:var(--muted);padding:60px 20px}.res-empty p{margin-bottom:16px}.res-group{margin-bottom:40px}.res-group__title{font-size:var(--fs-lg);flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;display:flex}.res-group__more{font-size:var(--fs-sm);color:var(--color-cta);margin-left:auto;font-weight:600;text-decoration:none}.res-group__count{font-size:var(--fs-xs);color:var(--muted);background:#2563eb0f;border-radius:999px;padding:2px 8px;font-weight:500}.res-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.res-card{border:1px solid var(--line);background:var(--surface-strong);color:inherit;border-radius:10px;padding:20px;text-decoration:none;transition:box-shadow .15s,border-color .15s;display:block}.res-card:hover{box-shadow:var(--shadow-md);border-color:#2563eb26;transform:none}.res-card__top{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.res-card__subject,.res-card__grade{font-size:var(--fs-xs);border-radius:4px;padding:2px 8px}.res-card__subject{color:var(--cta);background:#2563eb0f}.res-card__grade{color:var(--muted);background:#0f172a0a}.res-card__offline{font-size:var(--fs-xs);color:#16a34a;background:#22c55e1a;border-radius:4px;padding:2px 8px}.res-card__title{font-size:var(--fs-base);font-weight:600;line-height:var(--lh-snug);margin:0 0 6px}.res-card__desc{font-size:var(--fs-sm);color:var(--muted);line-height:var(--lh-normal);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.ainav-search{max-width:360px;margin-top:16px;position:relative}.ainav-search__icon{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.ainav-search__input{border:1px solid var(--line);background:var(--surface-strong);width:100%;font:inherit;font-size:var(--fs-sm);color:var(--text);border-radius:8px;padding:10px 14px 10px 38px;transition:border-color .15s}.ainav-search__input:focus{border-color:var(--cta);outline:none;box-shadow:0 0 0 3px #2563eb14}.ainav-group{margin-bottom:36px}.ainav-group__title{font-size:var(--fs-lg);margin:0 0 12px;font-weight:600}.ainav-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.ainav-card{border:1px solid var(--line);background:var(--surface-strong);color:inherit;border-radius:10px;flex-direction:column;padding:20px;text-decoration:none;transition:box-shadow .15s,border-color .15s;display:flex}.ainav-card:hover{box-shadow:var(--shadow-md);border-color:#2563eb26;transform:none}.ainav-card__head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.ainav-card__icon{color:var(--muted);flex-shrink:0}.ainav-card__badge{color:var(--cta);background:#2563eb14;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:500}.ainav-card__desc{font-size:var(--fs-sm);color:var(--muted);line-height:var(--lh-normal);margin:0 0 auto;padding-bottom:12px}.ainav-card__url{font-size:var(--fs-xs);color:var(--muted);border-top:1px solid var(--line);align-items:center;gap:4px;padding-top:10px;display:flex}.kb-cats{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:40px;display:grid}.kb-cat-card{border:1px solid var(--line);background:var(--surface-strong);border-radius:10px;align-items:flex-start;gap:14px;padding:20px;display:flex}.kb-cat-icon{color:var(--muted);flex-shrink:0;margin-top:2px}.kb-cat-title{font-size:var(--fs-base);margin:0 0 4px;font-weight:600}.kb-cat-desc{font-size:var(--fs-sm);color:var(--muted);margin:0}.kb-faq-section{margin-bottom:32px}.kb-faq-section h2{font-size:var(--fs-lg);margin:0 0 14px;font-weight:600}.kb-notice{border:1px dashed var(--line);color:var(--muted);font-size:var(--fs-sm);border-radius:8px;align-items:center;gap:10px;margin-bottom:24px;padding:16px 20px;display:flex}.kb-notice p{margin:0}.kb-contact{font-size:var(--fs-sm);color:var(--muted);border-top:1px solid var(--line);align-items:center;gap:10px;padding:24px 0 64px;display:flex}.kb-contact__link{color:var(--cta);align-items:center;gap:4px;font-weight:500;display:inline-flex}.kb-faq-list{background:var(--line);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.kb-faq-item,.kb-faq-item-open{background:var(--surface-strong)}.kb-faq-trigger{width:100%;font:inherit;font-size:var(--fs-base);color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;font-weight:500;transition:background .15s;display:flex}.kb-faq-trigger:hover{background:#00000004;transform:none}.kb-faq-chevron{color:var(--muted);flex-shrink:0;transition:transform .2s}.kb-faq-item-open .kb-faq-chevron{color:var(--cta);transform:rotate(180deg)}.kb-faq-content{max-height:0;transition:max-height .25s;overflow:hidden}.kb-faq-item-open .kb-faq-content{max-height:300px}.kb-faq-content p{font-size:var(--fs-sm);color:var(--muted);line-height:var(--lh-relaxed);margin:0;padding:0 20px 16px}.empty-note{color:var(--muted);text-align:center;padding:48px 0}@media (max-width:980px){.hp-latest__grid,.res-grid,.ainav-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:1100px){.pg-head{padding:32px 0 24px}.pg-head h1{font-size:var(--fs-xl)}.hp-hero{padding:40px 0 32px}.hp-hero__title{font-size:clamp(1.5rem,5vw,2rem)}.hp-hero__sub{font-size:var(--fs-sm)}.hp-feat-card{gap:12px;padding:16px 18px}.hp-features,.hp-latest{margin-bottom:32px}.hp-bottom-cta{padding:24px 0}.ainav-search__input{font-size:var(--fs-sm)}.kb-faq-section{padding:24px 0}}@media (max-width:640px){.res-filter{gap:10px;padding:14px}.res-filter__row{flex-direction:column;align-items:flex-start;gap:6px}.res-filter__tabs{gap:4px}.res-filter__tab{padding:4px 10px;font-size:.8rem}.hp-latest__grid,.res-grid,.ainav-grid,.kb-cats{grid-template-columns:1fr}.hp-feat-card{flex-wrap:wrap}.hp-hero__actions{flex-direction:column}.hp-hero__actions .cta-link,.hp-hero__actions .ghost-link{justify-content:center;width:100%}.hp-bottom-cta{flex-direction:column;align-items:flex-start;gap:8px}.hp-bottom-sep{display:none}.res-group__title{font-size:var(--fs-base)}.ainav-card{padding:16px}.kb-cat-card{padding:14px 16px}.kb-notice,.kb-contact{flex-direction:column;align-items:flex-start;gap:8px}.site-footer{padding:32px 0 24px}.site-footer__grid{grid-template-columns:1fr;gap:24px}}.skeleton-pulse{background:linear-gradient(90deg,var(--border)25%,#e2e8f099 50%,var(--border)75%);background-size:200% 100%;animation:1.5s ease-in-out infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.fade-in-up{opacity:0;animation:.5s ease-out forwards fade-in-up;transform:translateY(20px)}.fade-in-up:nth-child(2){animation-delay:60ms}.fade-in-up:nth-child(3){animation-delay:.12s}.fade-in-up:nth-child(4){animation-delay:.18s}.fade-in-up:nth-child(5){animation-delay:.24s}@keyframes fade-in-up{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.fade-in-up{opacity:1;animation:none;transform:none}}
