.lesson-heading {padding:18px 0 22px;}
.lesson-heading h1 {font-size:clamp(2.8rem,4.4vw,3.8rem);margin-top:12px;}
.lesson-heading .lesson-meta {margin-top:13px;}
.visual-lesson {border:1px solid #826c7b;border-radius:17px 11px 19px 12px;background:#2d293266;padding:24px 28px;margin:0 0 26px;}
.visual-intro {margin-bottom:24px;}
.visual-intro .lesson-eyebrow {margin:0 0 7px;}
.visual-intro h2 {font-size:2.15rem;line-height:1.16;max-width:45ch;}
.visual-intro>p:last-child {font-size:.9rem;margin-top:12px;}
.visual-workspace {display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);gap:24px;align-items:start;}
.visual-board {position:relative;margin:0;min-width:0;background:var(--canvas);border:1px solid var(--line);border-radius:12px 8px 13px 9px;overflow:hidden;}
.visual-zoom-trigger {position:absolute;right:6px;top:6px;z-index:2;width:44px;height:44px;background:#2d2932dd;border:1px solid var(--line);color:var(--text);font-size:1.45rem;border-radius:7px;cursor:pointer;}
.visual-zoom {width:min(1100px,calc(100vw - 28px));max-width:calc(100vw - 28px);max-height:calc(100vh - 28px);padding:20px;border:1px solid var(--violet);border-radius:12px;background:var(--bg);}
.visual-zoom::backdrop {background:#121015dc;}
.visual-zoom>header {display:flex;justify-content:space-between;align-items:center;gap:20px;}
.visual-zoom h2 {font-size:2rem;line-height:1.2;}
.visual-zoom .button {font-size:1.2rem;min-height:44px;}
.visual-zoom>p {font-size:.8rem;margin:12px 0;}
.visual-zoom-drawing {overflow:auto;max-height:calc(100vh - 165px);background:var(--canvas);border:1px solid var(--line);border-radius:9px;overscroll-behavior:contain;}
.visual-zoom-drawing svg {display:block;width:900px;max-width:none;height:auto;}
.visual-scene {min-width:0;overflow:hidden;}
.visual-scene svg {display:block;width:100%;height:auto;aspect-ratio:1.9;}
.visual-board figcaption {font-size:.77rem;line-height:1.75;color:var(--muted);padding:14px 18px;border-top:1px solid #6a596755;min-height:70px;}
.visual-board .visual-scene-reading {padding:8px 16px;min-height:0;}
.visual-scene-reading summary {cursor:pointer;min-height:36px;align-content:center;color:var(--muted);}
.visual-scene-reading details>p {margin:9px 0;line-height:1.85;}
.visual-board:has(.visual-scene-reading details[open]) {position:relative;top:auto;}
.visual-explanation {padding:6px 2px;min-width:0;}
.visual-step-count {font-size:.77rem;color:var(--mint);letter-spacing:.06em;text-transform:uppercase;}
.visual-explanation h3 {font-size:2.3rem;line-height:1.15;margin:12px 0 15px;}
.visual-explanation>p:not(.visual-step-count) {font-size:.93rem;line-height:1.85;}
.visual-equation {font-family:Georgia,'Times New Roman',serif;font-size:1.25rem;line-height:1.8;color:var(--text);border-left:2px solid var(--mint);padding:12px 15px;margin:19px 0;background:#d3a46f08;overflow-wrap:anywhere;}
.visual-equation:empty {display:none;}
.visual-metrics {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:17px 0 0;}
.visual-metrics>div {padding:11px 12px;border:1px solid #6a596788;border-radius:7px 10px 6px 8px;min-width:0;}
.visual-metrics dt {font-size:.73rem;line-height:1.5;color:var(--muted);margin-bottom:6px;}
.visual-metrics dd {margin:0;font-size:1.02rem;font-weight:650;line-height:1.6;color:var(--text);overflow-wrap:anywhere;}
.visual-navigation {display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin:23px 0;}
.visual-transport {display:flex;align-items:center;gap:10px;}
.visual-transport .button {font-size:1.2rem;padding:9px 15px;min-height:44px;}
.visual-lesson button:disabled {opacity:.4;cursor:default;transform:none;}
.visual-foundation {margin:0 0 22px;border-left:2px solid var(--cyan);padding:3px 0 3px 20px;max-width:900px;}
.visual-foundation>p:not(.lesson-eyebrow) {font-size:.87rem;line-height:1.9;margin:9px 0;}
.visual-foundation summary {font-size:.84rem;cursor:pointer;min-height:44px;display:list-item;align-content:center;color:var(--cyan);}
.visual-foundation details>p {font-size:.83rem;line-height:1.9;margin:8px 0 17px;}
.visual-foundation dl {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 24px;margin-bottom:17px;}
.visual-foundation dt {font-size:.9rem;color:var(--text);font-weight:650;margin-bottom:6px;}
.visual-foundation dd {font-size:.8rem;line-height:1.8;color:var(--muted);margin:0;}
.visual-foundation .visual-base-links {font-size:.76rem!important;line-height:1.9;}
.visual-base-links a {text-decoration:underline;text-underline-offset:4px;}
.visual-explanation .visual-watch {font-size:.82rem!important;line-height:1.8!important;padding:9px 13px;border-left:2px solid var(--mint);background:#d3a46f08;color:var(--text);margin:0 0 15px;}
.visual-tempo {font-size:.73rem;color:var(--muted);display:flex;flex-direction:column;gap:7px;max-width:260px;}
.visual-tempo select {font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:9px;min-height:44px;width:100%;}
.visual-tempo>span {font-size:.66rem;line-height:1.7;}
@media(max-width:700px){.visual-foundation {padding-left:15px;}.visual-foundation dl {grid-template-columns:1fr;}.visual-tempo {max-width:none;margin-top:5px;}}
.visual-step-dots {display:flex;gap:7px;}
.visual-step-dots button {background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:7px 9px 6px 8px;min-width:36px;min-height:44px;font-family:var(--hand);font-size:1.4rem;padding:4px 10px;}
.visual-step-dots button[aria-pressed=true] {background:var(--violet);color:#29232d;border-color:var(--violet);}
.visual-parameters {border-top:1px solid var(--line);padding-top:21px;}
.visual-parameters>h3 {font-size:1.9rem;margin-bottom:17px;}
.visual-parameter-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:25px;}
.visual-parameter {min-width:0;}
.visual-parameter label {display:flex;justify-content:space-between;gap:13px;font-size:.87rem;color:var(--muted);align-items:start;}
.visual-parameter output {color:var(--text);font-weight:650;font-size:.94rem;text-align:right;}
.visual-parameter input[type=range] {appearance:none;-webkit-appearance:none;width:100%;height:7px;display:block;margin:22px 0 15px;border-radius:8px;cursor:pointer;}
.visual-parameter input[type=range]::-webkit-slider-thumb {appearance:none;-webkit-appearance:none;width:23px;height:23px;border-radius:50%;background:var(--cyan);border:2px solid #e7e9dc;}
.visual-parameter input[type=range]::-moz-range-thumb {width:21px;height:21px;border-radius:50%;background:var(--cyan);border:2px solid #e7e9dc;}
.visual-range-ends {display:flex;justify-content:space-between;gap:12px;font-size:.71rem;color:var(--subtle);}
.visual-reset {background:transparent;border:0;min-height:44px;display:inline-flex;align-items:center;font-size:1.25rem;margin:12px 0 0;padding:0;cursor:pointer;}
.visual-try {display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:26px;border-top:1px solid var(--line);margin-top:15px;padding-top:22px;align-items:start;}
.visual-try h3 {font-family:Inter,system-ui,sans-serif;font-size:.98rem;line-height:1.8;margin:8px 0 12px;}
.visual-try details {font-size:.86rem;line-height:1.85;}
.visual-try summary {cursor:pointer;min-height:44px;color:var(--mint);padding-top:6px;}
.visual-try details p {margin-top:10px;}
.visual-study-action {padding-top:9px;}
.visual-study-action .button {font-size:1.3rem;width:100%;}
.visual-study-action p {font-size:.73rem;line-height:1.7;margin-top:12px;}
.visual-study-links {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:0 0 30px;}
.visual-study-links a {display:flex;align-items:center;min-height:60px;border:1px solid var(--line);border-radius:9px 12px 8px 11px;padding:14px 18px;font-size:.88rem;color:var(--muted);line-height:1.65;}
.visual-study-links a:hover {color:var(--text);border-color:var(--violet);}
.lesson-reading {margin:0 0 45px;}
.lesson-reading>summary {list-style-position:outside;cursor:pointer;border:1px solid var(--line);border-radius:12px 8px 13px 10px;padding:23px 28px;background:#c6aecf07;}
.lesson-reading>summary strong {font-family:var(--hand);font-weight:600;font-size:2rem;line-height:1.2;}
.lesson-reading>summary span {display:block;font-size:.85rem;color:var(--muted);margin:11px 0 0;line-height:1.8;}
.lesson-reading[open]>summary {margin-bottom:32px;}
.visual-static-steps {padding-top:25px;}
.visual-static-steps li {margin-top:20px;}
.visual-static-steps p {margin-top:6px;}
.visual-card-preview {margin:0 0 20px;background:var(--canvas);border:1px solid var(--line);border-radius:9px 6px 10px 7px;overflow:hidden;}
.visual-card-preview svg {display:block;width:100%;height:auto;aspect-ratio:1.9;}
.lesson-card .visual-card-preview {margin-bottom:18px;}
.lesson-card .learning-card-status {font-size:.75rem!important;color:var(--cyan)!important;min-height:1.4em;margin-bottom:12px!important;}
.home-visual-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;}
.home-visual-card {display:block;padding:15px;border:1px solid #826c7b;border-radius:12px 8px 14px 9px;background:var(--surface);min-width:0;}
.home-visual-card>span {font-size:.76rem;color:var(--subtle);}
.home-visual-card h3 {font-size:1.9rem;line-height:1.2;margin:10px 0;}
.home-visual-card>p {font-size:.85rem;line-height:1.85;margin:0 0 16px;}
.home-visual-card>strong {font-family:var(--hand);font-size:1.35rem;color:var(--mint);font-weight:550;}
.home-visual-card:hover {border-color:var(--violet);}
.visual-progress {margin-bottom:34px;border-bottom:1px solid var(--line);}
.visual-progress .section-heading {align-items:center;}
.visual-progress-summary {display:grid;grid-template-columns:1fr 1fr;gap:25px;padding:24px 0;}
.visual-progress-summary strong {font-family:var(--hand);color:var(--cyan);font-size:3.7rem;line-height:1.1;display:block;}
.visual-progress-summary span {color:var(--muted);font-size:.86rem;display:block;margin-top:12px;}
.visual-progress>p {font-size:.86rem;line-height:1.9;}
.visual-grade-progress {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;margin:26px 0;}
.visual-grade-progress a {border:1px solid var(--line);border-radius:9px 12px 8px 10px;padding:16px;}
.visual-grade-progress strong {display:block;font-family:var(--hand);font-size:1.6rem;line-height:1.3;}
.visual-grade-progress span {display:block;color:var(--muted);font-size:.72rem;margin-top:8px;line-height:1.7;}
.learning-progress-row {display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding:23px 0;}
.learning-progress-row h3 {font-size:1.8rem;line-height:1.3;}
.learning-progress-row p {font-size:.8rem;line-height:1.8;margin-top:8px;}
.learning-progress-row>.text-link {white-space:nowrap;}
@keyframes visual-ink {from {stroke-dasharray:1200;stroke-dashoffset:1200;opacity:.3;}to {stroke-dasharray:1200;stroke-dashoffset:0;opacity:1;}}
@keyframes visual-appear {from {opacity:.3;}to {opacity:1;}}
.visual-scene.is-stepping .visual-trace {animation:visual-ink 900ms ease-out;}
.visual-scene.is-stepping svg>text {animation:visual-appear 500ms ease-out;}
@media(min-width:1400px){.visual-workspace {grid-template-columns:minmax(0,1.7fr) minmax(310px,1fr);}.visual-lesson {padding:30px 34px;}}
@media(max-width:1000px){.visual-workspace {grid-template-columns:1fr;gap:20px;}.visual-explanation {display:grid;grid-template-columns:1fr 1fr;column-gap:25px;}.visual-explanation .visual-step-count,.visual-explanation h3,.visual-explanation>p {grid-column:1;}.visual-equation {grid-column:1;margin-bottom:0;}.visual-metrics {grid-column:2;grid-row:1/5;align-self:start;margin:0;}.visual-intro h2 {font-size:2.3rem;}.visual-grade-progress {grid-template-columns:repeat(3,minmax(0,1fr));}.home-visual-grid {gap:16px;}}
@media(max-width:700px){
 .visual-lesson {padding:20px 17px;border-radius:12px 8px 13px 9px;}.visual-intro {margin-bottom:20px;}.visual-intro h2 {font-size:2rem;line-height:1.2;}.visual-intro>p:last-child {font-size:.84rem;line-height:1.85;}.lesson-heading {padding-bottom:23px;}.lesson-heading h1 {font-size:3.1rem;}.lesson-heading>p:not(.lesson-meta) {font-size:.92rem;line-height:1.8;}.visual-workspace {gap:21px;}.visual-board figcaption {font-size:.75rem;padding:12px 14px;line-height:1.8;}.visual-explanation {display:block;padding:0;}.visual-explanation h3 {font-size:2rem;margin:10px 0 13px;}.visual-explanation>p:not(.visual-step-count) {font-size:.9rem;}.visual-equation {font-size:1.16rem;margin:17px 0;}.visual-metrics {margin-top:17px;gap:10px;}.visual-metrics dd {font-size:.98rem;}.visual-metrics dt {font-size:.7rem;}.visual-navigation {display:flex;flex-direction:column;align-items:stretch;gap:17px;}.visual-transport {display:grid;grid-template-columns:1fr 1fr;gap:11px;}.visual-transport #visual-play {grid-column:1/-1;grid-row:1;}.visual-transport .button {font-size:1.25rem;padding:10px 12px;}.visual-step-dots {justify-content:center;gap:7px;}.visual-step-dots button {flex:1;max-width:50px;}.visual-parameters {padding-top:18px;}.visual-parameter-grid {grid-template-columns:1fr;gap:23px;}.visual-parameter label {font-size:.84rem;}.visual-parameter output {font-size:.88rem;}.visual-try {grid-template-columns:1fr;gap:21px;}.visual-study-action {padding-top:0;}.visual-study-action .button {width:auto;}.visual-study-links {grid-template-columns:1fr;gap:11px;margin-bottom:25px;}.visual-study-links a {min-height:51px;padding:13px 17px;font-size:.85rem;}.lesson-reading>summary {padding:20px;}.lesson-reading>summary strong {font-size:1.8rem;}.lesson-reading>summary span {font-size:.8rem;}.home-visual-grid {grid-template-columns:1fr;gap:20px;}.home-visual-card {padding:16px;}.home-visual-card h3 {font-size:2rem;}.visual-progress-summary strong {font-size:3rem;}.visual-progress-summary span {font-size:.75rem;}.visual-grade-progress {grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;}.visual-grade-progress a {padding:15px;}.visual-grade-progress strong {font-size:1.5rem;}.learning-progress-row {align-items:start;gap:15px;flex-direction:column;}.learning-progress-row h3 {font-size:1.8rem;}
}
@media(prefers-reduced-motion:reduce){.visual-scene * {animation:none!important;transition:none!important;}}
@media(max-width:700px) and (min-height:600px){
 .visual-workspace {display:contents;}
 .visual-board {position:sticky;top:8px;z-index:3;box-shadow:0 8px 18px #211e25cc;}
 .visual-explanation {margin-top:23px;}
}
