:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light;--bg:#f8f7fc;--surface:#fff;--surface-soft:#f6f3fc;--text:#302b42;--muted:#746e83;--line:#eae6f1;--accent:#7554cf;--accent-hover:#6040b7;--accent-soft:#eee8fa;--mint:#e7f4e6;--mint-text:#426b48;--yellow:#fff1d0;--yellow-text:#866223;--peach:#fce8dc;--peach-text:#975c3d;--blue:#e6edf9;--blue-text:#536ea2;--shadow:0 8px 35px #49346d07;--hero:#eee8f9;--focus:#9a72e7;--sidebar-width:232px;--radius:24px;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
html[data-theme=dark]{color-scheme:dark;--bg:#17151e;--surface:#211e2a;--surface-soft:#292433;--text:#eee9f7;--muted:#b0a8bf;--line:#37313f;--accent:#b097ee;--accent-hover:#c2adf4;--accent-soft:#362b4f;--mint:#233b2e;--mint-text:#b1d8b6;--yellow:#403625;--yellow-text:#ecd195;--peach:#432e28;--peach-text:#e7b69b;--blue:#273247;--blue-text:#b2c7ea;--shadow:0 8px 35px #00000010;--hero:#312744;--focus:#c5a8ff}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,video:focus-visible{outline:3px solid var(--focus);outline-offset:4px}button{border:0}a{color:var(--accent)}svg{display:block;flex-shrink:0}button svg{pointer-events:none}button:disabled:hover{transform:none}img{max-width:100%}[hidden]{display:none!important}.icon{width:21px;height:21px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}.skip-link{position:fixed;top:10px;left:10px;z-index:1000;transform:translateY(-150%);background:var(--surface);padding:14px 20px;border-radius:10px}.skip-link:focus{transform:none}.boot-state{min-height:80vh;display:grid;align-content:center;justify-items:center;color:var(--muted)}.noscript{max-width:600px;margin:40px auto;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:20px}.sidebar{width:var(--sidebar-width);position:fixed;inset:0 auto 0 0;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:30px 19px 20px;z-index:30}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--text);padding:0 11px;margin-bottom:36px}.brand img{width:43px;height:43px}.brand-wordmark{font-size:21px;font-weight:800;letter-spacing:1.2px;line-height:1.05}.brand-subtitle{display:block;font-size:11px;font-weight:600;letter-spacing:2px;margin-top:7px;color:var(--muted);text-transform:uppercase}.sidebar-label{text-transform:uppercase;font-size:10px;letter-spacing:1.65px;font-weight:750;color:var(--muted);padding:0 15px;margin-bottom:12px}.main-nav{display:grid;gap:7px}.nav-button{width:100%;display:flex;align-items:center;gap:13px;border-radius:13px;background:transparent;min-height:49px;padding:11px 16px;text-align:left;font-size:14px;color:var(--muted);transition:background .18s,color .18s}.nav-button:hover{background:var(--surface-soft);color:var(--text)}.nav-button[aria-current=page]{background:var(--accent-soft);color:var(--accent);font-weight:700}.nav-button[aria-current=page] .nav-dot{display:block}.nav-dot{display:none;margin-left:auto;width:6px;height:6px;border-radius:50%;background:var(--accent)}.sidebar-bottom{margin-top:auto;padding-top:36px}.garden-note{margin:0 4px 24px;background:var(--surface-soft);border:1px solid var(--line);padding:18px;border-radius:18px}.garden-note .icon{color:var(--accent);margin-bottom:11px;width:24px;height:24px}.garden-note strong{display:block;font-size:13px;line-height:1.45}.garden-note p{font-size:11px;line-height:1.6;color:var(--muted);margin:7px 0 0}.sidebar-footer{font-size:10px;color:var(--muted);padding:0 15px;line-height:1.8}.main-shell{margin-left:var(--sidebar-width)}.topbar{height:99px;padding:0 42px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);background:var(--bg)}.breadcrumb{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.breadcrumb .icon{width:16px;height:16px}.breadcrumb-current{color:var(--text);font-weight:650}.topbar-actions{display:flex;align-items:center;gap:12px}.theme-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);width:42px;height:42px;border-radius:13px;background:var(--surface);color:var(--muted);flex-shrink:0}.theme-button:hover,.icon-button:hover{background:var(--surface-soft);color:var(--accent)}.classroom-badge{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:650;border:1px solid var(--line);border-radius:13px;padding:11px 15px;background:var(--surface);white-space:nowrap}.classroom-badge .icon{width:16px;height:16px;color:var(--accent)}.main-content{max-width:1480px;margin:0 auto;padding:32px 42px 44px;min-height:calc(100vh - 99px)}.view-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.eyebrow{text-transform:uppercase;letter-spacing:1.6px;font-weight:700;font-size:10px;color:var(--muted);margin:0 0 10px}.page-title{font-weight:750;font-size:27px;letter-spacing:-.8px;line-height:1.2;margin:0}.page-description{color:var(--muted);font-size:13px;line-height:1.7;margin:10px 0 0}.age-switch{display:flex;padding:5px;background:var(--surface);border:1px solid var(--line);border-radius:13px;gap:3px;flex-shrink:0}.age-button{min-height:35px;padding:8px 13px;font-size:12px;font-weight:650;background:transparent;border-radius:9px;color:var(--muted);white-space:nowrap}.age-button[aria-pressed=true]{background:var(--accent);color:#fff}.age-button:hover:not([aria-pressed=true]){background:var(--surface-soft)}html[data-theme=dark] .age-button[aria-pressed=true]{color:#221632}.hero{position:relative;display:grid;grid-template-columns:1.12fr 1fr;gap:10px;overflow:hidden;background:var(--hero);border:1px solid #b6a1df22;border-radius:var(--radius);min-height:309px;padding:34px 37px 30px}.hero-copy{position:relative;z-index:2;align-self:center}.hero-kicker{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:8px;background:var(--surface);font-size:10px;font-weight:700;color:var(--accent);margin:0 0 18px}.hero-kicker .icon{width:13px;height:13px}.hero h2{font-size:clamp(29px,2.65vw,41px);line-height:1.18;letter-spacing:-1.2px;font-weight:760;margin:0 0 15px;max-width:460px}.hero h2 em{font-style:normal;color:var(--accent)}.hero-copy>p{font-size:12px;line-height:1.85;color:var(--muted);max-width:380px;margin:0 0 22px}.hero-art{display:flex;align-items:center;justify-content:center;position:relative;min-width:0}.hero-art img{width:112%;max-width:none;object-fit:contain;transform:rotate(-1deg)}.hero-footer{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.hero-note{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted)}.hero-note .icon{width:14px;height:14px}.button{display:inline-flex;justify-content:center;align-items:center;gap:9px;min-height:43px;padding:11px 18px;border-radius:11px;background:var(--accent);color:#fff;font-size:12px;font-weight:700;text-decoration:none;border:1px solid transparent;line-height:1.4;transition:background .18s,transform .18s}.button:hover{background:var(--accent-hover);transform:translateY(-1px)}.button .icon{width:16px;height:16px}html[data-theme=dark] .button:not(.button-secondary):not(.button-ghost):not(.button-danger){color:#221632}.button-secondary{background:var(--surface);border-color:var(--line);color:var(--text)}.button-secondary:hover{background:var(--surface-soft)}.button-ghost{background:transparent;color:var(--accent);padding-left:0;padding-right:0}.button-ghost:hover{background:transparent}.button-danger{color:#b5484a;background:var(--surface);border-color:var(--line)}.button-danger:hover{background:var(--peach)}.button-small{min-height:35px;padding:8px 12px;font-size:11px;border-radius:9px}.overview-strip{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:var(--surface);border-radius:18px;margin-top:18px;padding:19px 0}.overview-item{display:flex;align-items:center;gap:13px;padding:0 24px}.overview-item+.overview-item{border-left:1px solid var(--line)}.overview-icon{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;background:var(--accent-soft);color:var(--accent);flex-shrink:0}.overview-icon.mint{background:var(--mint);color:var(--mint-text)}.overview-icon.yellow{background:var(--yellow);color:var(--yellow-text)}.overview-item strong{font-size:14px;font-weight:750;display:block;margin-bottom:4px}.overview-item span{display:block;font-size:10px;color:var(--muted);line-height:1.45}.section{margin-top:31px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.section-title{margin:0;font-size:19px;line-height:1.3;font-weight:750;letter-spacing:-.4px}.section-heading .section-description{font-size:12px;color:var(--muted);margin:7px 0 0;line-height:1.6}.week-control{display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:3px}.week-control .icon-button{border:0;width:30px;height:30px;border-radius:8px;background:transparent}.week-control .icon{width:16px;height:16px}.week-select{background:transparent;color:var(--text);border:0;font-size:11px;font-weight:600;padding:6px 5px;max-width:160px;cursor:pointer}.lesson-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.lesson-card{position:relative;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:17px 16px 16px;display:flex;flex-direction:column;min-height:225px;transition:transform .2s,border-color .2s,box-shadow .2s}.lesson-card:hover{transform:translateY(-4px);border-color:#bba4e2;box-shadow:var(--shadow)}.lesson-card[data-complete=true]{border-color:#80b68780}.lesson-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.skill-icon{display:grid;place-items:center;width:42px;height:42px;background:var(--accent-soft);color:var(--accent);border-radius:13px}.skill-icon .icon{width:24px;height:24px}.tone-mint{background:var(--mint);color:var(--mint-text)}.tone-yellow{background:var(--yellow);color:var(--yellow-text)}.tone-peach{background:var(--peach);color:var(--peach-text)}.tone-blue{background:var(--blue);color:var(--blue-text)}.favorite-button{display:grid;place-items:center;background:transparent;color:var(--muted);width:31px;height:31px;border-radius:50%;margin-right:-6px}.favorite-button:hover{background:var(--surface-soft);color:var(--accent)}.favorite-button .icon{width:17px;height:17px}.favorite-button[aria-pressed=true]{color:var(--accent)}.favorite-button[aria-pressed=true] .icon{fill:var(--accent-soft)}.lesson-day{font-size:9px;text-transform:uppercase;letter-spacing:1px;font-weight:700;color:var(--muted);margin:0 0 7px}.lesson-card h3{font-size:14px;line-height:1.4;font-weight:740;letter-spacing:-.15px;margin:0 0 8px}.lesson-card p{font-size:11px;color:var(--muted);line-height:1.55;margin:0 0 15px}.lesson-card-footer{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-top:auto}.lesson-card-meta{font-size:10px;color:var(--muted);white-space:nowrap;display:flex;align-items:center;gap:4px}.lesson-card-meta .icon{width:12px;height:12px}.card-open{font-size:10px;color:var(--accent);font-weight:700;background:var(--accent-soft);padding:8px 9px;border-radius:8px;display:flex;align-items:center;gap:4px;min-height:34px}.card-open .icon{width:12px;height:12px}.card-open:hover{background:var(--accent);color:var(--surface)}.complete-mark{display:inline-flex;align-items:center;gap:4px;color:var(--mint-text);font-size:10px;font-weight:650}.complete-mark .icon{width:13px;height:13px}.bottom-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;margin-top:25px}.teacher-tip{display:flex;align-items:flex-start;gap:17px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px}.teacher-tip .tip-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--yellow);color:var(--yellow-text);flex-shrink:0}.teacher-tip h3{margin:0 0 8px;font-size:14px;font-weight:750}.teacher-tip p{margin:0;font-size:11px;line-height:1.8;color:var(--muted)}.journey-card{background:var(--mint);border:1px solid #7aa18225;border-radius:18px;padding:24px;position:relative}.journey-card h3{font-size:14px;color:var(--mint-text);margin:0 0 9px}.journey-card p{font-size:11px;color:var(--mint-text);opacity:.9;line-height:1.7;margin:0 0 13px}.journey-card .button-ghost{color:var(--mint-text);font-size:11px;min-height:20px;padding:0}.app-footer{margin-top:34px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;color:var(--muted);line-height:1.6}.app-footer span{display:flex;align-items:center;gap:6px}.app-footer .icon{width:13px;height:13px}.mobile-menu{display:none}.mobile-nav-title{display:none}.menu-scrim{display:none}.filter-toolbar{display:flex;align-items:center;gap:12px;margin:23px 0;flex-wrap:wrap}.search-field{position:relative;flex:1;min-width:190px}.search-field .icon{position:absolute;left:15px;top:14px;color:var(--muted);width:17px;height:17px}.search-field input{width:100%;min-height:44px;border:1px solid var(--line);border-radius:11px;padding:11px 14px 11px 42px;background:var(--surface);color:var(--text);font-size:12px}.filter-select{min-height:44px;background:var(--surface);color:var(--text);font-size:12px;border:1px solid var(--line);border-radius:11px;padding:10px 32px 10px 14px;max-width:240px}.filter-chip{display:inline-flex;align-items:center;gap:6px;min-height:40px;background:var(--surface);color:var(--muted);border:1px solid var(--line);padding:9px 12px;border-radius:10px;font-size:11px;font-weight:650}.filter-chip .icon{width:14px;height:14px}.filter-chip[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.week-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.week-tile{border:1px solid var(--line);border-radius:15px;padding:17px 15px;background:var(--surface);text-align:left;display:flex;flex-direction:column;min-height:124px;transition:transform .18s,border-color .18s}.week-tile:hover{transform:translateY(-2px);border-color:var(--accent)}.week-tile[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}.week-number{font-size:10px;color:var(--muted);margin-bottom:8px}.week-tile strong{font-size:12px;line-height:1.45;font-weight:700}.mini-progress{height:4px;background:var(--line);border-radius:5px;overflow:hidden;margin-top:auto}.mini-progress span{height:100%;background:var(--accent);display:block;border-radius:5px;transition:width .3s}.week-tile .mini-progress{margin-top:14px}.week-count{font-size:9px;color:var(--muted);margin-top:6px}.search-results-heading{font-size:12px;color:var(--muted);margin-bottom:18px}.lesson-grid.search-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.empty-state{display:grid;justify-items:center;text-align:center;padding:48px 24px;background:var(--surface);border:1px dashed var(--line);border-radius:20px}.empty-state>.icon{width:34px;height:34px;color:var(--accent);margin-bottom:15px}.empty-state h3{font-size:17px;margin:0 0 9px}.empty-state p{font-size:12px;color:var(--muted);max-width:450px;line-height:1.7;margin:0 0 18px}.video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.video-card{background:var(--surface);border:1px solid var(--line);border-radius:19px;overflow:hidden}.video-cover{aspect-ratio:16/9;position:relative;background:var(--accent-soft);overflow:hidden;width:100%;display:block;padding:0}.video-cover img{width:100%;height:100%;object-fit:cover}.video-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent,#27153b22)}.play-disc{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;display:grid;place-items:center;background:#fffc;color:#6040b7;width:48px;height:48px;border-radius:50%;box-shadow:0 4px 18px #30204218;transition:scale .2s}.video-cover:hover .play-disc{scale:1.1}.play-disc .icon{width:21px;height:21px;margin-left:3px;fill:currentColor;stroke-width:1.2}.video-card-body{padding:18px}.video-card-body .lesson-day{margin-bottom:8px}.video-card-body h3{font-size:15px;margin:0 0 9px;line-height:1.4}.video-card-body p{font-size:11px;color:var(--muted);line-height:1.6;margin:0 0 14px}.video-card-body .button{width:100%;font-size:11px;min-height:36px}.progress-summary{display:grid;grid-template-columns:1fr 1.4fr;gap:20px;margin:25px 0}.progress-feature{padding:28px;background:var(--accent-soft);border-radius:20px;display:flex;align-items:center;gap:25px}.progress-ring{width:96px;height:96px;position:relative;flex-shrink:0}.progress-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.progress-ring circle{fill:none;stroke:var(--line);stroke-width:8}.progress-ring circle:last-child{stroke:var(--accent);stroke-linecap:round}.progress-ring-label{position:absolute;inset:0;display:grid;place-items:center;font-size:24px;font-weight:750;color:var(--accent)}.progress-feature strong{display:block;font-size:18px;margin-bottom:7px;line-height:1.35}.progress-feature p{font-size:11px;line-height:1.7;color:var(--muted);margin:0}.progress-explainer{padding:27px;background:var(--surface);border:1px solid var(--line);border-radius:20px}.progress-explainer h3{font-size:16px;margin:0 0 10px}.progress-explainer p{font-size:12px;color:var(--muted);line-height:1.8;margin:0}.domain-progress{display:grid;grid-template-columns:repeat(5,1fr);gap:15px;margin-top:20px}.domain-progress-card{padding:21px;background:var(--surface);border:1px solid var(--line);border-radius:17px}.domain-progress-card .skill-icon{margin-bottom:16px}.domain-progress-card h3{font-size:13px;margin:0 0 7px;line-height:1.4}.domain-progress-card p{font-size:11px;color:var(--muted);margin:0 0 14px}.recent-list{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden}.recent-row{display:flex;align-items:center;gap:14px;padding:16px 20px}.recent-row+.recent-row{border-top:1px solid var(--line)}.recent-row .skill-icon{width:36px;height:36px;border-radius:11px}.recent-row .skill-icon .icon{width:20px;height:20px}.recent-row-main{flex:1}.recent-row h3{font-size:12px;margin:0 0 5px}.recent-row p{font-size:10px;color:var(--muted);margin:0}.recent-date{font-size:10px;color:var(--muted)}.teacher-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:20px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:27px}.panel h2{font-size:19px;letter-spacing:-.35px;margin:0 0 12px}.panel h3{font-size:14px;margin:0 0 10px}.panel p{font-size:12px;color:var(--muted);line-height:1.8;margin:0 0 17px}.teacher-steps{list-style:none;counter-reset:teacher;display:grid;gap:20px;padding:0;margin:24px 0 0}.teacher-steps li{display:flex;gap:15px}.teacher-steps li:before{counter-increment:teacher;content:counter(teacher);display:grid;place-items:center;width:30px;height:30px;flex-shrink:0;background:var(--accent-soft);color:var(--accent);border-radius:10px;font-size:12px;font-weight:750}.teacher-steps strong{display:block;font-size:13px;margin:1px 0 6px}.teacher-steps p{font-size:11px;line-height:1.7;margin:0}.panel-stack{display:grid;gap:20px;align-content:start}.account-status{display:flex;align-items:center;gap:13px;margin:18px 0}.account-mark{width:43px;height:43px;display:grid;place-items:center;border-radius:13px;background:var(--accent-soft);color:var(--accent);font-weight:750}.account-status strong{font-size:13px;line-height:1.5;display:block}.account-status span{font-size:11px;color:var(--muted);display:block;margin-top:3px}.subscription-badge{display:inline-flex;align-items:center;gap:6px;background:var(--mint);color:var(--mint-text);padding:7px 10px;font-size:10px;font-weight:750;border-radius:8px;margin:0 0 15px}.subscription-badge .icon{width:14px;height:14px}.button-row{display:flex;gap:10px;flex-wrap:wrap}.file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.privacy-note{display:flex;gap:11px;padding:16px;background:var(--surface-soft);border-radius:12px;margin:19px 0 0!important;font-size:11px!important}.privacy-note .icon{width:18px;height:18px;color:var(--accent);margin-top:2px}.teacher-wide{margin-top:20px}.teacher-wide .button-row{margin-top:18px}.parent-note{padding:19px;border-left:3px solid var(--accent);background:var(--surface-soft);border-radius:0 12px 12px 0;font-size:12px;line-height:1.9;color:var(--muted);margin-top:18px}.curriculum-note{font-size:11px;color:var(--muted);line-height:1.8;padding:15px 18px;background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-top:20px}.load-more-wrap{display:flex;justify-content:center;margin-top:23px}.toast{position:fixed;z-index:300;bottom:27px;left:50%;transform:translateX(-50%);background:var(--text);color:var(--surface);border-radius:12px;box-shadow:0 6px 24px #24113820;padding:14px 21px;font-size:12px;line-height:1.5;max-width:min(500px,90vw);text-align:center}
.lesson-backdrop{position:fixed;inset:0;background:#2018338c;z-index:80;padding:24px;display:flex;align-items:center;justify-content:center;animation:fadeIn .18s}.lesson-dialog{width:min(1120px,100%);max-height:calc(100dvh - 48px);overflow:auto;background:var(--bg);border:1px solid var(--line);border-radius:26px;box-shadow:0 30px 100px #17101f40;position:relative;overscroll-behavior:contain}.lesson-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 27px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.lesson-title-meta{font-size:10px;color:var(--muted);margin:0 0 6px}.lesson-header h2{font-size:20px;line-height:1.3;letter-spacing:-.4px;margin:0}.lesson-header-actions{display:flex;align-items:center;gap:9px;flex-shrink:0}.projector-label{font-size:11px;margin-left:6px}.projector-button{width:auto;padding:0 12px}.lesson-steps{display:flex;align-items:center;padding:15px 27px;gap:8px;background:var(--surface);border-bottom:1px solid var(--line);overflow:auto;scrollbar-width:thin}.lesson-step{display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 13px;min-height:37px;flex:1;border-radius:11px;background:transparent;color:var(--muted);font-size:11px;font-weight:650;white-space:nowrap}.lesson-step span{width:21px;height:21px;border-radius:7px;background:var(--surface-soft);display:grid;place-items:center;font-size:10px}.lesson-step[aria-current=step]{background:var(--accent-soft);color:var(--accent)}.lesson-step[aria-current=step] span{background:var(--accent);color:var(--surface)}.lesson-content{padding:26px 28px;min-height:340px}.lesson-video-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,.8fr);gap:23px;align-items:start}.video-player{display:block;aspect-ratio:16/9;width:100%;background:var(--surface-soft);border:1px solid var(--line);border-radius:17px;object-fit:contain}.video-meta{font-size:11px;color:var(--muted);line-height:1.7;margin:13px 0 0}.lesson-aside{background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:21px}.lesson-aside h3{font-size:15px;line-height:1.4;margin:0 0 12px}.lesson-aside p,.lesson-aside li{font-size:12px;color:var(--muted);line-height:1.8}.lesson-aside p{margin:0 0 14px}.lesson-aside ul{padding-left:18px;margin:10px 0 0}.lesson-aside strong{color:var(--text)}.lesson-aside .tag{font-size:10px;display:inline-flex;background:var(--mint);color:var(--mint-text);padding:6px 9px;border-radius:7px;margin-bottom:13px}.lesson-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 27px;border-top:1px solid var(--line);background:var(--surface)}.lesson-footer-note{font-size:11px;color:var(--muted);line-height:1.6}.lesson-footer .button{min-height:43px}.lesson-body-heading{text-align:center;margin-bottom:23px}.lesson-body-heading .eyebrow{margin-bottom:10px}.lesson-body-heading h3{font-size:26px;letter-spacing:-.6px;line-height:1.35;margin:0 0 12px}.lesson-body-heading p{color:var(--muted);font-size:13px;line-height:1.7;max-width:740px;margin:0 auto}.activity-mount{min-height:250px}.teacher-instruction{margin:22px 0 0;padding:16px 18px;background:var(--yellow);color:var(--yellow-text);border-radius:13px;font-size:12px;line-height:1.8;display:flex;gap:11px}.teacher-instruction>.icon{width:19px;height:19px;flex-shrink:0;margin-top:3px}.discussion-panel{max-width:830px;margin:0 auto;padding:31px;background:var(--surface);border:1px solid var(--line);border-radius:22px}.discussion-panel h3{font-size:24px;line-height:1.4;letter-spacing:-.5px;margin:0 0 17px}.discussion-panel p,.discussion-panel li{font-size:15px;color:var(--muted);line-height:1.9}.discussion-panel ol,.discussion-panel ul{padding-left:23px;margin:15px 0}.discussion-panel .reflection-callout{display:flex;gap:13px;background:var(--mint);color:var(--mint-text);border-radius:14px;padding:18px;margin-top:25px;font-size:13px;line-height:1.8}.solution-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--mint);color:var(--mint-text);border-radius:16px;padding:20px;margin-top:24px}.solution-bar p{font-size:12px;line-height:1.7;margin:0}.solution-bar strong{display:block;margin-bottom:5px}.complete-banner{display:flex;align-items:center;justify-content:center;gap:9px;color:var(--mint-text);background:var(--mint);padding:12px;border-radius:11px;font-size:12px;font-weight:700;margin-bottom:20px}.video-only-dialog .lesson-content{max-width:920px;margin:0 auto}.video-only-dialog .video-player{max-height:65vh}.video-only-dialog .lesson-content h3{font-size:17px;margin:22px 0 10px}.video-only-dialog .lesson-content p{font-size:13px;color:var(--muted);line-height:1.8}.projector-mode{width:100vw;height:100dvh;max-height:100dvh;border-radius:0;border:0}.lesson-backdrop:has(.projector-mode){padding:0}.projector-mode .lesson-header{padding:20px 40px}.projector-mode .lesson-header h2{font-size:25px}.projector-mode .lesson-content{max-width:1500px;margin:0 auto;min-height:calc(100dvh - 265px);padding:32px 50px}.projector-mode .lesson-body-heading h3{font-size:37px}.projector-mode .lesson-body-heading p{font-size:19px;max-width:950px}.projector-mode .teacher-instruction,.projector-mode .lesson-aside p,.projector-mode .lesson-aside li{font-size:16px}.projector-mode .discussion-panel{max-width:1000px}.projector-mode .discussion-panel h3{font-size:32px}.projector-mode .discussion-panel p,.projector-mode .discussion-panel li{font-size:23px}.projector-mode .lesson-footer{padding:21px 40px}.projector-mode .lesson-footer .button{font-size:15px;min-height:49px;padding:13px 24px}.projector-mode .lesson-step{font-size:14px;min-height:43px}.projector-mode .lesson-step span{font-size:12px;width:25px;height:25px}.projector-mode .activity-mount{font-size:1.3em}.projector-mode .lesson-aside h3{font-size:20px}.projector-mode .solution-bar p{font-size:16px}.projector-mode .lesson-footer-note{font-size:13px}.projector-mode .video-player{max-height:60vh}.lesson-dialog:fullscreen{width:100vw;max-height:100vh;height:100vh;border:0;border-radius:0}.print-area{display:none}.import-feedback{font-size:11px;color:var(--muted);line-height:1.7;margin-top:12px}.screen-note{background:var(--yellow);color:var(--yellow-text);padding:15px 17px;font-size:11px;line-height:1.75;border-radius:12px;margin-top:20px}.status-error{color:#b5484a}.status-muted{color:var(--muted)}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(min-width:1600px){.hero{min-height:330px}.hero-art img{max-width:490px}.lesson-card{min-height:237px}.lesson-card h3{font-size:16px}.lesson-card p{font-size:12px}.card-open{font-size:11px}}
@media(max-width:1250px){:root{--sidebar-width:205px}.sidebar{padding-left:13px;padding-right:13px}.topbar{padding-left:28px;padding-right:28px}.main-content{padding:28px 28px 38px}.hero{padding:28px}.hero h2{font-size:32px}.lesson-grid{gap:10px}.lesson-card{padding:15px 12px}.lesson-card h3{font-size:13px}.lesson-card-footer{align-items:flex-start;flex-direction:column;gap:8px}.card-open{width:100%;justify-content:center}.lesson-card-meta{font-size:10px}.lesson-card .complete-mark{min-height:13px}.week-grid{grid-template-columns:repeat(4,1fr)}.overview-item{padding:0 18px}.overview-item strong{font-size:13px}.hero-note{display:none}.domain-progress{gap:10px}.domain-progress-card{padding:17px}.teacher-layout{grid-template-columns:1.15fr 1fr}}
@media(max-width:1024px){:root{--sidebar-width:86px}.sidebar{padding:27px 12px 18px}.brand{padding:0;justify-content:center;margin-bottom:34px}.brand-wordmark,.sidebar-label,.nav-button>span,.sidebar-footer,.garden-note{display:none}.brand img{width:42px;height:42px}.nav-button{justify-content:center;padding:13px;min-height:50px}.nav-button .icon{width:23px;height:23px}.nav-dot{display:none!important}.main-nav{gap:13px}.topbar{height:85px}.main-content{min-height:calc(100vh - 85px)}.hero{grid-template-columns:1.2fr 1fr;min-height:282px}.hero h2{font-size:29px}.hero-art img{width:130%;margin-left:-15px}.hero-copy>p{font-size:11px}.view-heading{gap:15px}.age-button{padding:8px 10px;font-size:11px}.page-title{font-size:24px}.lesson-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.lesson-card{min-height:214px;padding:18px}.lesson-card h3{font-size:15px}.lesson-card-footer{flex-direction:row;align-items:center}.card-open{width:auto}.lesson-grid.search-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bottom-grid{grid-template-columns:1fr 1fr}.teacher-tip{padding:20px;gap:12px}.teacher-tip .tip-icon{width:37px;height:37px}.journey-card{padding:20px}.video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.domain-progress{grid-template-columns:repeat(3,1fr)}.progress-summary{grid-template-columns:1fr 1.2fr}.progress-feature{padding:24px;gap:18px}.progress-ring{width:77px;height:77px}.progress-feature strong{font-size:16px}.teacher-layout{grid-template-columns:1fr 1fr}.panel{padding:23px}.lesson-video-layout{grid-template-columns:1.4fr 1fr}}
@media(max-width:800px){.main-content{padding:24px}.topbar{padding:0 24px}.classroom-badge{font-size:10px;padding:11px}.view-heading{align-items:flex-start;flex-direction:column;gap:18px}.age-switch{align-self:flex-start}.hero{grid-template-columns:1.1fr 1fr;padding:27px 25px;min-height:279px}.hero h2{font-size:28px}.hero-kicker{font-size:9px}.hero-copy>p{font-size:11px;margin-bottom:18px}.hero-footer .button{font-size:11px;padding:11px 13px}.overview-strip{padding:17px 0}.overview-item{padding:0 13px;gap:9px}.overview-icon{width:31px;height:31px;border-radius:10px}.overview-icon .icon{width:17px;height:17px}.overview-item strong{font-size:11px;line-height:1.4}.overview-item span{font-size:9px}.section-title{font-size:17px}.lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.lesson-card{min-height:219px}.lesson-card:last-child:nth-child(odd){grid-column:1/-1;min-height:170px}.lesson-grid.search-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.search-grid .lesson-card:last-child:nth-child(odd){grid-column:auto;min-height:219px}.bottom-grid{grid-template-columns:1fr}.week-grid{grid-template-columns:repeat(3,1fr)}.progress-summary{grid-template-columns:1fr}.teacher-layout{grid-template-columns:1fr}.lesson-backdrop{padding:15px}.lesson-dialog{max-height:calc(100dvh - 30px);border-radius:20px}.lesson-header{padding:20px}.lesson-header h2{font-size:17px}.lesson-title-meta{font-size:9px}.lesson-steps{padding:13px 16px;gap:4px}.lesson-step{font-size:10px;padding:8px}.lesson-content{padding:23px 20px}.lesson-video-layout{grid-template-columns:1fr}.lesson-aside{padding:18px}.lesson-footer{padding:17px 20px}.lesson-body-heading h3{font-size:23px}.lesson-body-heading p{font-size:12px}.projector-label{display:none}.projector-button{width:40px;padding:0}.projector-mode .lesson-content{padding:25px}.projector-mode .lesson-header{padding:20px}.projector-mode .lesson-header h2{font-size:21px}.projector-mode .lesson-footer{padding:18px 22px}.projector-mode .lesson-body-heading h3{font-size:30px}.projector-mode .lesson-body-heading p{font-size:16px}.projector-mode .discussion-panel p,.projector-mode .discussion-panel li{font-size:18px}.projector-mode .lesson-step{font-size:11px}.projector-mode .lesson-video-layout{grid-template-columns:1.6fr 1fr}.projector-mode .lesson-aside p,.projector-mode .lesson-aside li{font-size:12px}.projector-mode .lesson-aside h3{font-size:16px}.discussion-panel{padding:24px}.discussion-panel h3{font-size:21px}.discussion-panel p,.discussion-panel li{font-size:13px}.solution-bar{flex-direction:column;align-items:stretch}.solution-bar .button{width:100%}.app-footer{flex-direction:column;align-items:flex-start;gap:5px}}
@media(max-width:600px){:root{--sidebar-width:0px}.sidebar{width:250px;transform:translateX(-102%);transition:transform .2s;padding:27px 19px 22px}.sidebar.is-open{transform:translateX(0)}.sidebar.is-open .brand-wordmark,.sidebar.is-open .sidebar-label,.sidebar.is-open .nav-button>span,.sidebar.is-open .sidebar-footer,.sidebar.is-open .garden-note{display:block}.sidebar.is-open .nav-button{justify-content:flex-start;padding:12px 15px}.sidebar.is-open .brand{justify-content:flex-start;padding:0 10px}.sidebar.is-open .main-nav{gap:8px}.sidebar.is-open .nav-dot{display:none}.menu-scrim.is-open{display:block;position:fixed;inset:0;background:#21193266;z-index:29}.topbar{height:74px;padding:0 20px;gap:10px}.mobile-menu{display:inline-flex;width:36px;height:36px;background:var(--surface);border:1px solid var(--line);border-radius:10px;align-items:center;justify-content:center}.mobile-menu .icon{width:19px;height:19px}.topbar-title{display:flex;align-items:center;gap:10px}.breadcrumb{display:none}.mobile-nav-title{display:block;font-size:13px;font-weight:750}.topbar-actions{gap:8px}.theme-button{width:35px;height:35px;border-radius:10px}.theme-button .icon{width:17px;height:17px}.classroom-badge{font-size:9px;min-height:35px;border-radius:10px;padding:8px 10px;gap:6px}.classroom-badge .icon{width:13px;height:13px}.main-content{padding:24px 20px 30px;min-height:calc(100vh - 74px)}.view-heading{gap:17px;margin-bottom:20px}.page-title{font-size:26px;letter-spacing:-.7px}.eyebrow{font-size:9px;margin-bottom:9px}.page-description{font-size:12px;margin-top:9px}.age-switch{width:100%;justify-content:space-between;padding:5px}.age-button{flex:1;font-size:11px;padding:9px 7px}.hero{grid-template-columns:1fr;min-height:0;padding:27px 25px 18px;gap:0;border-radius:20px}.hero h2{font-size:32px;max-width:300px;line-height:1.17;letter-spacing:-1px}.hero-kicker{margin-bottom:15px;font-size:9px}.hero-copy>p{font-size:12px;line-height:1.8;max-width:300px;margin-bottom:20px}.hero-footer .button{font-size:12px;padding:12px 17px;min-height:44px}.hero-note{display:flex;font-size:9px}.hero-art{height:165px;margin-top:0;overflow:visible}.hero-art img{width:280px;height:189px;margin:0;position:relative;left:23px;bottom:-8px}.overview-strip{grid-template-columns:1fr 1fr 1fr;padding:15px 0;margin-top:14px;border-radius:15px}.overview-item{flex-direction:column;align-items:flex-start;gap:9px;padding:0 13px}.overview-icon{width:30px;height:30px}.overview-item strong{font-size:11px}.overview-item span{font-size:9px}.section{margin-top:26px}.section-heading{gap:12px;align-items:flex-start;margin-bottom:15px}.section-heading .section-description{font-size:11px;max-width:185px;line-height:1.55;margin-top:6px}.section-title{font-size:18px}.week-control{gap:0;margin-top:-3px}.week-control .icon-button{width:24px;height:29px}.week-select{font-size:10px;max-width:91px;padding:5px 1px}.lesson-grid{gap:12px}.lesson-card{min-height:242px;padding:16px 13px;border-radius:16px}.lesson-card h3{font-size:14px;line-height:1.4}.lesson-card p{font-size:10px;margin-bottom:14px}.lesson-card-top{margin-bottom:15px}.skill-icon{width:38px;height:38px;border-radius:12px}.skill-icon .icon{width:22px;height:22px}.lesson-day{font-size:8px;letter-spacing:.8px}.lesson-card-footer{flex-direction:column;align-items:stretch;gap:10px}.lesson-card-meta{font-size:9px}.card-open{font-size:10px;min-height:34px;justify-content:center}.lesson-card:last-child:nth-child(odd){min-height:181px}.lesson-card:last-child:nth-child(odd) .lesson-card-footer{flex-direction:row;align-items:center}.lesson-card:last-child:nth-child(odd) .card-open{padding-left:15px;padding-right:15px}.bottom-grid{margin-top:19px;gap:15px}.teacher-tip{padding:20px}.teacher-tip h3,.journey-card h3{font-size:13px}.teacher-tip p,.journey-card p{font-size:11px}.app-footer{margin-top:26px;font-size:9px}.week-grid{grid-template-columns:repeat(2,1fr);gap:11px}.week-tile{padding:16px;min-height:125px}.filter-toolbar{gap:10px;margin:20px 0}.search-field{flex-basis:100%}.filter-select{flex:1;font-size:11px;max-width:none}.filter-chip{font-size:10px}.video-grid{grid-template-columns:1fr;gap:17px}.video-card-body{padding:19px}.video-card-body h3{font-size:16px}.video-card-body p{font-size:12px}.domain-progress{grid-template-columns:repeat(2,1fr);gap:12px}.domain-progress-card{padding:19px}.progress-feature{padding:25px;gap:22px}.progress-ring{width:83px;height:83px}.progress-feature strong{font-size:18px}.progress-explainer{padding:24px}.recent-row{padding:15px;gap:10px;flex-wrap:wrap}.recent-date{font-size:9px}.recent-row .button-small{min-height:30px;font-size:9px;padding:7px}.recent-row-main{min-width:125px}.panel{padding:23px}.panel h2{font-size:18px}.panel p{font-size:12px}.button-row .button{flex:1;font-size:11px}.teacher-steps{gap:22px}.lesson-backdrop{padding:0}.lesson-dialog{width:100%;height:100dvh;max-height:100dvh;border:0;border-radius:0}.lesson-header{padding:17px 17px;gap:10px}.lesson-header h2{font-size:17px;letter-spacing:-.25px}.lesson-header-actions{gap:6px}.lesson-header-actions .icon-button{width:35px;height:35px;border-radius:10px}.lesson-header-actions .icon{width:17px;height:17px}.lesson-title-meta{font-size:9px;line-height:1.5}.lesson-steps{padding:12px 12px;gap:2px}.lesson-step{min-height:39px;padding:7px 8px;font-size:9px;gap:5px}.lesson-step span{width:18px;height:18px;font-size:9px;border-radius:6px}.lesson-content{padding:23px 18px;min-height:330px}.lesson-video-layout{gap:18px}.lesson-aside{padding:20px}.lesson-aside h3{font-size:15px}.lesson-aside p,.lesson-aside li{font-size:12px}.video-player{border-radius:13px}.lesson-footer{padding:16px 18px;gap:12px;position:sticky;bottom:0;z-index:10}.lesson-footer .button{font-size:11px;padding:11px 14px;min-height:41px}.lesson-footer .button-ghost{padding-left:0;padding-right:0}.lesson-footer-note{font-size:9px;max-width:115px}.lesson-footer .button .icon{width:14px;height:14px}.lesson-body-heading{text-align:left;margin-bottom:23px}.lesson-body-heading h3{font-size:24px;line-height:1.35}.lesson-body-heading p{font-size:12px;line-height:1.8}.teacher-instruction{font-size:11px;padding:15px;gap:8px}.discussion-panel{padding:23px 21px}.discussion-panel h3{font-size:23px}.discussion-panel p,.discussion-panel li{font-size:13px;line-height:1.9}.discussion-panel .reflection-callout{font-size:12px;padding:15px}.solution-bar{padding:18px;gap:16px}.solution-bar p{font-size:11px}.projector-mode .lesson-header{padding:17px}.projector-mode .lesson-header h2{font-size:17px}.projector-mode .lesson-content{padding:23px 18px}.projector-mode .lesson-body-heading h3{font-size:27px}.projector-mode .lesson-body-heading p{font-size:14px}.projector-mode .lesson-video-layout{grid-template-columns:1fr}.projector-mode .lesson-step{font-size:9px;min-height:39px;padding:7px}.projector-mode .lesson-step span{font-size:9px;width:18px;height:18px}.projector-mode .lesson-footer{padding:16px 18px}.projector-mode .lesson-footer .button{font-size:11px;padding:11px 14px;min-height:41px}.projector-mode .lesson-footer-note{font-size:9px}.projector-mode .teacher-instruction{font-size:12px}.projector-mode .discussion-panel h3{font-size:25px}.projector-mode .discussion-panel p,.projector-mode .discussion-panel li{font-size:15px}.toast{font-size:11px;bottom:18px;width:max-content;max-width:calc(100vw - 36px)}.search-grid .lesson-card:last-child:nth-child(odd){min-height:242px}.search-grid .lesson-card:last-child:nth-child(odd) .lesson-card-footer{flex-direction:column;align-items:stretch}}
@media print{@page{margin:17mm}body{background:#fff!important;color:#222!important}.sidebar,.topbar,.main-content,.lesson-backdrop,.toast,.skip-link{display:none!important}.print-area{display:block!important;font-size:11pt;line-height:1.65;color:#222}.print-area h1{font-size:23pt;line-height:1.2;margin:0 0 10pt}.print-area h2{font-size:16pt;margin:22pt 0 10pt}.print-area h3{font-size:13pt;margin:0 0 7pt}.print-area .print-lesson{break-inside:avoid;border-top:1px solid #bbb;padding-top:14pt;margin-top:17pt}.print-area p{margin:7pt 0}.print-area .print-muted{color:#555}.print-area ul,.print-area ol{padding-left:19pt}.print-area .print-footer{font-size:9pt;margin-top:24pt;border-top:1px solid #bbb;padding-top:9pt}}

/* R62: calm classroom surfaces; existing illustration, skill and feedback colors remain. */
@media screen {
  :root { --radius: 30px; --shadow: 0 4px 18px #49346d08; }
  .main-shell, .topbar-title, .view-heading > div, .section-heading > div, .hero-copy { min-width: 0; }
  .sidebar { overflow-y: auto; overscroll-behavior: contain; padding-top: 28px; }
  .brand-wordmark { font-weight: 650; letter-spacing: .5px; }
  .brand-subtitle { letter-spacing: 1.3px; font-weight: 550; }
  .sidebar-label, .eyebrow { letter-spacing: .055em; font-weight: 600; }
  .nav-button { min-height: 50px; border-radius: 16px; font-size: 14px; }
  .nav-button[aria-current=page] { font-weight: 600; }
  .topbar { height: 88px; }
  .topbar-actions { gap: 10px; }
  .theme-button, .icon-button { width: 46px; height: 46px; min-height: 46px; border-radius: 15px; }
  .classroom-badge { min-height: 46px; border-radius: 15px; font-weight: 550; }
  .main-content { max-width: 1360px; min-height: calc(100vh - 88px); }
  .page-title { font-size: clamp(28px, 3vw, 36px); font-weight: 650; letter-spacing: -1.1px; line-height: 1.15; overflow-wrap: break-word; }
  .page-description { font-size: 14px; line-height: 1.65; max-width: 65ch; }
  .view-heading { gap: 20px; margin-bottom: 26px; }
  .age-switch { border-radius: 17px; gap: 4px; padding: 5px; }
  .age-button { min-height: 44px; min-width: 48px; border-radius: 12px; font-size: 13px; font-weight: 550; }
  .hero { border-radius: 30px; background: linear-gradient(125deg, var(--surface-soft), var(--hero)); border-color: var(--line); box-shadow: none; }
  .hero h2 { font-weight: 650; letter-spacing: -1.2px; line-height: 1.14; }
  .hero-copy > p { font-size: 14px; line-height: 1.7; }
  .hero-kicker { font-size: 11px; font-weight: 550; border-radius: 12px; }
  .hero-note { font-size: 11px; }
  .button { min-height: 48px; padding: 12px 18px; border-radius: 15px; font-size: 14px; font-weight: 550; line-height: 1.45; text-align: center; }
  .button-small, .journey-card .button-ghost { min-height: 44px; padding: 10px 12px; font-size: 13px; border-radius: 13px; }
  .button-ghost { padding-inline: 8px; }
  .overview-strip { border-radius: 22px; padding-block: 20px; }
  .overview-icon { width: 42px; height: 42px; border-radius: 14px; }
  .overview-item strong { font-size: 15px; font-weight: 600; line-height: 1.4; }
  .overview-item span { font-size: 12px; line-height: 1.5; }
  .section { margin-top: 34px; }
  .section-heading { flex-wrap: wrap; align-items: center; }
  .section-title { font-size: 22px; font-weight: 600; letter-spacing: -.6px; }
  .section-heading .section-description { font-size: 13px; line-height: 1.6; }
  .week-control { min-width: 0; gap: 2px; border-radius: 15px; padding: 3px; }
  .week-control .icon-button { width: 44px; height: 44px; min-height: 44px; border-radius: 12px; }
  .week-select { min-height: 44px; max-width: 160px; padding: 8px; font-size: 14px; font-weight: 550; }
  .lesson-grid, .lesson-grid.search-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); gap: 16px; }
  .lesson-card { padding: 20px; border-radius: 22px; min-height: 255px; }
  .lesson-card-top { margin-bottom: 18px; gap: 8px; }
  .skill-icon { width: 44px; height: 44px; border-radius: 15px; }
  .favorite-button { width: 44px; height: 44px; min-height: 44px; margin: 0; border-radius: 14px; }
  .favorite-button .icon { width: 20px; height: 20px; }
  .lesson-day { font-size: 11px; font-weight: 550; letter-spacing: .045em; line-height: 1.5; }
  .lesson-card h3 { font-size: 16px; font-weight: 600; line-height: 1.4; letter-spacing: -.2px; }
  .lesson-card p { font-size: 13px; line-height: 1.6; }
  .lesson-card-footer { gap: 12px; flex-wrap: wrap; }
  .lesson-card-meta, .complete-mark { font-size: 12px; white-space: normal; }
  .card-open { min-height: 44px; padding: 11px 14px; border-radius: 13px; font-size: 13px; font-weight: 550; }
  .card-open .icon { width: 15px; height: 15px; }
  .teacher-tip, .journey-card, .panel, .progress-feature, .progress-explainer, .domain-progress-card { border-radius: 24px; }
  .teacher-tip h3, .journey-card h3 { font-size: 17px; font-weight: 600; line-height: 1.4; }
  .teacher-tip p, .journey-card p, .progress-feature p, .progress-explainer p, .panel p { font-size: 14px; line-height: 1.7; }
  .app-footer { font-size: 12px; line-height: 1.6; }
  .search-field { min-width: 0; }
  .search-field input, .filter-select { min-height: 48px; min-width: 0; font-size: 16px; border-radius: 15px; }
  .search-field .icon { top: 16px; }
  .filter-chip { min-height: 46px; border-radius: 14px; font-size: 13px; font-weight: 550; }
  .week-tile { min-width: 0; min-height: 146px; padding: 19px; border-radius: 20px; }
  .week-tile strong { font-size: 14px; font-weight: 550; line-height: 1.5; }
  .week-number, .week-count { font-size: 12px; line-height: 1.5; }
  .search-results-heading { font-size: 14px; }
  .empty-state { border-style: solid; border-radius: 24px; }
  .empty-state h3 { font-size: 23px; font-weight: 600; line-height: 1.3; }
  .empty-state p { font-size: 14px; }
  .video-card { border-radius: 24px; }
  .video-card-body { padding: 22px; }
  .video-card-body h3 { font-size: 18px; font-weight: 600; }
  .video-card-body p { font-size: 14px; line-height: 1.65; }
  .video-card-body .button { min-height: 48px; font-size: 14px; }
  .domain-progress-card h3 { font-size: 15px; font-weight: 600; }
  .domain-progress-card p { font-size: 12px; line-height: 1.6; }
  .recent-list { border-radius: 22px; }
  .recent-row-main { min-width: 0; }
  .recent-row h3 { font-size: 14px; line-height: 1.5; font-weight: 600; }
  .recent-row p, .recent-date { font-size: 12px; line-height: 1.5; }
  .recent-row .button-small { min-height: 44px; font-size: 13px; padding: 10px 12px; }
  .panel h2 { font-size: 23px; font-weight: 600; line-height: 1.3; }
  .panel h3, .teacher-steps strong { font-size: 16px; font-weight: 600; }
  .teacher-steps p { font-size: 14px; line-height: 1.7; }
  .teacher-steps li::before { width: 36px; height: 36px; border-radius: 12px; font-weight: 600; }
  .account-status strong { font-size: 15px; }
  .account-status span, .curriculum-note, .parent-note, .import-feedback { font-size: 13px; line-height: 1.7; }
  .button-row .button { font-size: 14px; }
  .privacy-note, .screen-note { font-size: 13px !important; line-height: 1.65; border-radius: 16px; }
  .lesson-backdrop { background: #201833a3; }
  .lesson-dialog { border-radius: 30px; box-shadow: 0 16px 48px #17101f30; scroll-padding: 120px 0 110px; }
  .lesson-header > div:first-child { min-width: 0; }
  .lesson-header h2 { font-size: 22px; font-weight: 600; line-height: 1.3; overflow-wrap: break-word; }
  .lesson-title-meta { font-size: 12px; line-height: 1.5; }
  .lesson-header-actions { gap: 8px; }
  .lesson-steps { padding-block: 12px; gap: 6px; }
  .lesson-step { min-height: 48px; border-radius: 14px; font-size: 13px; font-weight: 550; }
  .lesson-step span { width: 25px; height: 25px; min-width: 25px; font-size: 12px; border-radius: 9px; }
  .lesson-content { padding: 28px; }
  .lesson-aside, .discussion-panel { border-radius: 24px; }
  .lesson-aside h3 { font-size: 18px; font-weight: 600; }
  .lesson-aside p, .lesson-aside li, .video-meta { font-size: 14px; line-height: 1.7; }
  .video-player { border-radius: 20px; }
  .lesson-footer { gap: 12px; }
  .lesson-footer .button { min-height: 48px; font-size: 14px; padding: 12px 16px; }
  .lesson-footer-note { font-size: 12px; line-height: 1.5; }
  .lesson-body-heading h3 { font-weight: 600; line-height: 1.3; }
  .lesson-body-heading p { font-size: 15px; line-height: 1.7; }
  .teacher-instruction { font-size: 14px; border-radius: 18px; }
  .solution-bar { border-radius: 22px; }
  .solution-bar p, .complete-banner { font-size: 14px; line-height: 1.6; }
  .projector-mode, .lesson-dialog:fullscreen { border-radius: 0; }
}
@media screen and (max-width: 1024px) {
  .topbar { padding-inline: 24px; }
  .lesson-card:last-child:nth-child(odd), .search-grid .lesson-card:last-child:nth-child(odd) { grid-column: auto; min-height: 255px; }
}
@media screen and (max-width: 800px) {
  .view-heading { align-items: stretch; }
  .hero { padding: 28px; }
  .hero-copy > p { font-size: 14px; }
  .overview-item { padding-inline: 14px; }
  .overview-item strong { font-size: 13px; }
  .overview-item span { font-size: 11px; }
  .age-switch { width: 100%; }
  .age-button { flex: 1; }
  .lesson-header h2 { font-size: 20px; }
  .lesson-content { padding: 24px; }
  .projector-button { min-width: 46px; }
}
@media screen and (max-width: 600px) {
  .topbar { min-height: 76px; height: auto; padding: 12px 16px; gap: 8px; }
  .topbar-title { flex: 1; gap: 10px; }
  .mobile-menu, .theme-button { width: 44px; height: 44px; min-width: 44px; min-height: 44px; border-radius: 14px; }
  .mobile-nav-title { font-size: 14px; font-weight: 600; line-height: 1.3; }
  .classroom-badge { min-height: 44px; padding: 8px; }
  .main-content { padding: 22px 16px 30px; }
  .page-title { font-size: 30px; }
  .page-description { font-size: 14px; }
  .age-switch { gap: 2px; }
  .age-button { padding: 10px 5px; font-size: 13px; }
  .hero { padding: 28px 24px 18px; border-radius: 28px; }
  .hero h2 { font-size: 32px; }
  .hero-footer .button { font-size: 14px; min-height: 48px; }
  .hero-art { margin-top: 10px; }
  .hero-art img { width: min(280px, 100%); left: 0; }
  .overview-strip { padding-block: 16px; }
  .overview-item { padding-inline: 10px; }
  .section-heading { flex-direction: column; align-items: stretch; gap: 16px; }
  .section-heading .section-description { max-width: none; font-size: 13px; }
  .week-control { align-self: flex-start; }
  .week-select { min-height: 44px; max-width: 180px; font-size: 16px; padding-inline: 8px; }
  .lesson-grid, .lesson-grid.search-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .lesson-card { min-height: 270px; padding: 16px; }
  .lesson-card-footer, .lesson-card:last-child:nth-child(odd) .lesson-card-footer, .search-grid .lesson-card:last-child:nth-child(odd) .lesson-card-footer { flex-direction: column; align-items: stretch; }
  .card-open { width: 100%; }
  .teacher-tip, .journey-card, .panel { padding: 22px; }
  .app-footer { font-size: 11px; }
  .filter-select { font-size: 16px; width: 100%; }
  .filter-chip { font-size: 13px; }
  .video-card-body { padding: 20px; }
  .recent-row-main { flex: 1 1 150px; }
  .lesson-dialog { border-radius: 0; }
  .lesson-header, .projector-mode .lesson-header { padding: 16px; gap: 12px; }
  .lesson-header h2, .projector-mode .lesson-header h2 { font-size: 18px; }
  .lesson-header-actions .icon-button { width: 44px; height: 44px; min-width: 44px; min-height: 44px; border-radius: 14px; }
  .lesson-header-actions .icon { width: 20px; height: 20px; }
  .lesson-title-meta { font-size: 11px; }
  .lesson-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; padding: 10px 12px; gap: 4px; }
  .lesson-step, .projector-mode .lesson-step { min-height: 46px; padding: 9px; font-size: 12px; white-space: normal; text-align: left; justify-content: flex-start; }
  .lesson-step span, .projector-mode .lesson-step span { width: 24px; height: 24px; min-width: 24px; font-size: 12px; border-radius: 8px; }
  .lesson-content, .projector-mode .lesson-content { padding: 22px 16px; }
  .lesson-footer, .projector-mode .lesson-footer { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px 16px max(12px, env(safe-area-inset-bottom)); gap: 8px 10px; }
  .lesson-footer .button, .projector-mode .lesson-footer .button { min-width: 0; min-height: 48px; padding: 10px 12px; font-size: 13px; }
  .lesson-footer-note, .projector-mode .lesson-footer-note { grid-column: 1 / -1; grid-row: 2; max-width: none; text-align: center; font-size: 11px; }
  .video-only-dialog .lesson-footer .button { grid-column: 1 / -1; }
  .lesson-body-heading p { font-size: 14px; }
  .teacher-instruction, .projector-mode .teacher-instruction { font-size: 13px; }
  .discussion-panel { padding: 24px 20px; }
  .discussion-panel p, .discussion-panel li { font-size: 15px; }
  .solution-bar p { font-size: 14px; }
}
@media screen and (max-width: 420px) {
  .classroom-badge { display: none; }
  .lesson-grid, .lesson-grid.search-grid { grid-template-columns: minmax(0, 1fr); }
  .lesson-card, .lesson-card:last-child:nth-child(odd), .search-grid .lesson-card:last-child:nth-child(odd) { min-height: 230px; padding: 22px; }
  .lesson-card h3 { font-size: 18px; }
  .lesson-card-footer, .lesson-card:last-child:nth-child(odd) .lesson-card-footer { flex-direction: row; align-items: center; }
  .card-open { width: auto; }
  .overview-item strong { font-size: 12px; }
  .overview-item span { font-size: 11px; }
  .week-grid { gap: 10px; }
  .week-tile { padding: 16px; }
  .domain-progress { grid-template-columns: minmax(0, 1fr); }
  .progress-feature { padding: 22px; gap: 16px; }
  .button-row .button { flex-basis: 100%; }
}
@media screen and (max-height: 500px) {
  .sidebar { padding-top: 18px; }
  .sidebar .brand { margin-bottom: 22px; }
  .sidebar-bottom { padding-top: 24px; }
  .lesson-header { position: static; }
}
@media (hover: none) {
  .button:hover, .lesson-card:hover, .week-tile:hover { transform: none; }
  .video-cover:hover .play-disc { scale: 1; }
}
