/* Guided lessons share the site's colours and keep teaching controls usable. */
.ls-page {overflow-wrap:anywhere}
.ls-page [hidden] {display:none!important}
.ls-hero {padding-top:calc(var(--nav-h) + 68px);padding-bottom:48px;display:grid;grid-template-columns:1.6fr 1fr;gap:50px;align-items:start}
.ls-eyebrow {font:500 .7rem/1.7 var(--mono);letter-spacing:.08em;color:var(--accent-ink);margin-bottom:16px}
.ls-hero h1 {font-size:clamp(2.5rem,5.5vw,4.6rem);line-height:1.09;letter-spacing:-.05em;margin-bottom:26px}
.ls-lead {font-size:1.06rem;line-height:1.85;color:var(--text-dim)}
.ls-page .ls-small {font-size:.8rem;color:var(--text-dim);line-height:1.75;margin-top:14px}
.ls-actions {display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-block:20px 12px}
.ls-page button,.ls-page .ls-resource-row a {min-height:44px;padding:11px 15px;border:1px solid var(--text-faint);border-radius:7px;background:var(--surface);color:var(--text);font:600 .82rem/1.5 var(--font);cursor:pointer}
.ls-page button:hover {border-color:var(--accent-ink)}
.ls-page button:disabled {opacity:.6;cursor:default}
.ls-page p a,.ls-page li a,.ls-sources a,.ls-next-grid a,.ls-progress-card a,.ls-page .ls-actions>a:not(.btn) {color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px}
.ls-page :is(input,select,textarea,button,pre,details,article,section,div) {min-width:0}
.ls-progress-card {padding:30px;background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--accent-ink);border-radius:12px}
.ls-progress-card h2 {font-size:1.6rem;line-height:1.4;margin-bottom:22px}
.ls-progress-card progress {display:block;width:100%;height:10px;border:0;border-radius:5px;accent-color:var(--accent-ink);margin:12px 0 20px}
.ls-progress-card label {font-size:.85rem}
.ls-progress-card a {display:inline-flex;min-height:44px;align-items:center;font-weight:600;font-size:.87rem}
.ls-section {padding-block:38px}
.ls-section-head {margin-bottom:28px;max-width:780px}
.ls-section h2 {font-size:clamp(1.65rem,3vw,2.1rem);line-height:1.3;margin-bottom:18px;letter-spacing:-.025em}
.ls-section-head>p:not(.ls-eyebrow) {color:var(--text-dim);line-height:1.8}
.ls-path-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.ls-path-card {padding:22px;border:1px solid var(--border);border-radius:12px;background:var(--surface);display:flex;flex-direction:column;align-items:start}
.ls-path-card h3 {font-size:1.05rem;line-height:1.4;margin-bottom:14px}
.ls-path-card p:not(.ls-eyebrow) {font-size:.84rem;line-height:1.8;color:var(--text-dim);margin-bottom:20px}
.ls-path-card .ls-eyebrow {font-size:.61rem;letter-spacing:.03em}
.ls-path-card button {margin-top:auto;width:100%}
.ls-controls {background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px}
.ls-filter-grid {display:grid;grid-template-columns:1.2fr 1fr 1.2fr .9fr;gap:16px}
.ls-page label:not(.ls-choice) {display:block;font-size:.84rem;font-weight:600;margin-bottom:8px}
.ls-page input:not([type=radio],[type=checkbox]),.ls-page select,.ls-page textarea {width:100%;min-height:46px;border:1px solid var(--text-faint);background:var(--bg);color:var(--text);border-radius:6px;padding:11px;font:inherit;font-size:.88rem}
.ls-page textarea {resize:vertical;min-height:100px}
#ls-count {margin:20px 0;color:var(--text-dim);font-size:.86rem}
#ls-empty {padding:24px;border:1px dashed var(--text-faint);border-radius:10px}
.ls-lesson {margin:0 0 15px;border:1px solid var(--border);border-radius:12px;background:var(--surface);scroll-margin-top:calc(var(--nav-h) + 22px)}
.ls-lesson>summary {display:flex;gap:20px;align-items:center;list-style:none;cursor:pointer;padding:25px;min-height:90px}
.ls-lesson>summary::-webkit-details-marker {display:none}
.ls-number {font:500 1.1rem/1.5 var(--mono);color:var(--accent-ink);flex-shrink:0}
.ls-lesson>summary>div {flex:1}
.ls-title {font-size:1.14rem;line-height:1.45;margin:0 0 6px}
.ls-lesson>summary p {font-size:.75rem;color:var(--text-dim);line-height:1.7}
.ls-disclosure {font-size:1.6rem;color:var(--accent-ink);padding:4px;flex-shrink:0}
.ls-lesson[open] .ls-disclosure {transform:rotate(45deg)}
.ls-lesson[open]>summary {border-bottom:1px solid var(--border)}
.ls-body {padding:28px}
.ls-intro {color:var(--text-dim);font-size:.98rem;line-height:1.85;max-width:800px}
.ls-objective {padding:18px 20px;background:var(--bg);border-left:3px solid var(--accent-ink);margin:22px 0;font-size:.91rem;line-height:1.8}
.ls-practice-grid {display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-block:28px}
.ls-body h4 {font-size:1rem;margin-bottom:16px;line-height:1.5}
.ls-body h5 {font-size:.95rem;margin-block:10px}
.ls-body h6 {font-size:.88rem;margin-block:10px}
.ls-body ol,.ls-team {list-style:decimal;padding-left:24px}
.ls-body li,.ls-team li {padding-left:4px;margin-bottom:12px;font-size:.9rem;line-height:1.8}
.ls-task>p {font-size:.88rem;margin-top:22px;color:var(--text-dim);line-height:1.8}
.ls-demo {padding:24px;border:1px solid var(--border);border-radius:10px;background:var(--bg)}
.ls-demo p {font-size:.88rem;line-height:1.8;margin-bottom:16px}
.ls-demo label {margin-top:16px}
.ls-demo button {margin-top:12px}
.ls-demo .ls-actions button {margin-top:0}
.ls-demo ul {list-style:disc;padding-left:20px;margin-top:15px}
.ls-demo .ls-error:empty {display:none}
.ls-feedback:empty {border:0;padding:0;margin:0;min-height:1px}
.ls-demo input {margin-bottom:8px}
.ls-errors,.ls-error {color:var(--bad-ink)}
.ls-errors {border:2px solid var(--bad-ink);border-radius:7px;padding:16px;margin-bottom:20px}
.ls-errors ul {margin:0}
.ls-errors p {font-weight:600}
.ls-swatches {display:flex;gap:14px;margin-block:20px}
.ls-swatches span {width:72px;height:48px;border:1px solid var(--text-faint);border-radius:8px}
.ls-image-sample {margin-block:24px}
.ls-image-sample img {max-width:100%;height:auto}
.ls-image-sample>a {display:inline-block}
.ls-outline {border-left:2px solid var(--accent-ink);padding-left:18px}
.ls-code {border:1px solid var(--border);border-radius:8px;padding:0 18px;margin-block:22px}
.ls-code>summary,.ls-stage details>summary {min-height:44px;padding-block:13px;cursor:pointer;font-size:.85rem;font-weight:600}
.ls-code-grid {display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:18px}
.ls-code pre {white-space:pre-wrap;overflow-wrap:anywhere;font:400 .74rem/1.9 var(--mono);background:var(--bg);color:var(--text);border:1px solid var(--border);padding:18px;border-radius:7px}
.ls-code>.ls-small {margin-bottom:18px}
.ls-misconception {padding:18px 20px;border:1px solid var(--border);border-radius:8px;font-size:.87rem;color:var(--text-dim);line-height:1.8;margin-block:22px}
.ls-knowledge {border-top:1px solid var(--border);padding-top:24px;margin-top:28px}
.ls-check fieldset {border:0;margin-bottom:12px}
.ls-check legend {font-size:.92rem;line-height:1.8;font-weight:500;margin-bottom:14px}
.ls-choice {display:flex;align-items:flex-start;gap:12px;padding:12px;border:1px solid var(--border);border-radius:7px;font-size:.85rem;line-height:1.75;margin-bottom:10px;cursor:pointer;min-height:44px}
.ls-choice input {flex:0 0 18px;width:18px;height:18px;margin-top:4px;accent-color:var(--accent-ink)}
.ls-choice:has(input:checked) {border-color:var(--accent-ink);background:var(--bg)}
.ls-feedback {font-size:.9rem;line-height:1.85;border-left:3px solid var(--accent-ink);padding:12px 18px;margin-top:16px}
.ls-application {margin-top:28px;padding:22px;background:var(--bg);border-radius:9px}
.ls-application textarea {margin:12px 0 16px;background:var(--surface)}
.ls-application button[aria-pressed=true] {border-color:var(--accent-ink);color:var(--accent-ink)}
.ls-sources {border-top:1px solid var(--border);padding-top:22px;margin-top:28px;font-size:.78rem;line-height:1.85}
.ls-links {display:flex;flex-wrap:wrap;gap:4px 22px;list-style:none;margin-top:16px}
.ls-links li {font-size:.83rem;margin-bottom:0}
.ls-permalink {display:inline-flex;min-height:44px;align-items:center;font-size:.78rem}
.ls-reflow-example {margin-top:20px;padding:16px;width:100%;border:1px solid var(--text-faint);border-radius:6px}
.ls-reflow-example p,.ls-reflow-example h5,.ls-reflow-example a,.ls-reflow-example dl {font-size:1em;line-height:1.7}
.ls-reflow-example h5 {font-size:1.1em}
.ls-reflow-example dl>div {margin-bottom:12px}
.ls-reflow-example dt {font-weight:600}
.ls-reflow-example a {text-decoration:underline;color:var(--accent-ink)}
.ls-reflow-example.ls-text-double {font-size:200%}
.ls-motion-track {height:55px;border:1px solid var(--border);border-radius:7px;margin-block:18px;padding:10px;position:relative}
.ls-motion-track span {display:block;width:28px;height:28px;background:var(--accent-ink);border-radius:50%;position:relative}
.ls-motion-track.is-running span {animation:ls-slide 3s ease-in-out infinite alternate}
@keyframes ls-slide {from {left:0} to {left:calc(100% - 28px)}}
.ls-copy-pair>div {padding:12px;border:1px solid var(--border);border-radius:6px;margin-top:12px}
.ls-next-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.ls-next-grid article {padding:24px;border:1px solid var(--border);border-radius:10px}
.ls-next-grid h3 {font-size:1.1rem;margin-bottom:16px}
.ls-next-grid p {font-size:.87rem;color:var(--text-dim);line-height:1.85;margin-bottom:15px}
.ls-next-grid a {display:flex;min-height:44px;align-items:center;font-size:.85rem}
.ls-team {margin-bottom:24px;max-width:850px}
.ls-resource-row {display:flex;flex-wrap:wrap;gap:12px}
.ls-resource-row a {display:flex;align-items:center;text-decoration:underline;text-underline-offset:3px}
.ls-page dialog {margin:auto;max-width:min(560px,calc(100% - 40px));max-height:calc(100% - 40px);overflow:auto;padding:28px;background:var(--surface);color:var(--text);border:1px solid var(--text-faint);border-radius:12px}
.ls-page dialog::backdrop {background:rgba(0,0,0,.7)}
.ls-page dialog h2 {font-size:1.5rem;line-height:1.4;margin-bottom:20px}
.ls-page dialog p {line-height:1.8;margin-bottom:20px;font-size:.9rem}
.ls-print-context {display:none}
@media(max-width:1000px) {.ls-path-grid,.ls-filter-grid {grid-template-columns:1fr 1fr}.ls-hero {gap:30px;grid-template-columns:1.3fr 1fr}.ls-progress-card {padding:24px}}
@media(max-width:760px) {.ls-hero,.ls-practice-grid,.ls-next-grid {grid-template-columns:1fr}.ls-hero {padding-top:calc(var(--nav-h) + 38px)}.ls-progress-card {max-width:none}.ls-code-grid {grid-template-columns:1fr}.ls-body {padding:22px}.ls-lesson>summary {padding:22px;gap:14px}}
@media(max-width:480px) {.ls-path-grid,.ls-filter-grid {grid-template-columns:1fr}.ls-controls,.ls-demo,.ls-application {padding:18px}.ls-lesson>summary {padding:18px}.ls-title {font-size:1.03rem}.ls-body {padding:18px}.ls-number {font-size:.9rem}.ls-hero h1 {font-size:2.6rem}.ls-page .btn {white-space:normal;text-align:center}.ls-progress-card h2 {font-size:1.45rem}}
@media(prefers-reduced-motion:reduce) {.ls-motion-track span {animation:none!important}.ls-disclosure {transition:none}}
@media print {.ls-js,.ls-disclosure,.ls-permalink,.ls-path-grid,.ls-controls,.ls-code,.ls-stage,.ls-progress-card,.ls-application,.ls-resource-row {display:none!important}.ls-page [hidden] {display:none!important}.ls-hero {display:block;padding:0}.ls-hero h1 {font-size:26pt}.ls-section {padding-block:14px}.ls-print-context {display:block;font-size:10pt;margin-bottom:20px}.ls-body {padding:12px}.ls-lesson {break-before:auto;margin-bottom:20px}.ls-lesson>summary {padding:12px}.ls-practice-grid {display:block}.ls-demo {display:none}.ls-source a::after {content:" (" attr(href) ")"}.ls-page p,.ls-page li,.ls-page label,.ls-page span {color:#111!important}.ls-sources a {color:#111!important}.ls-sources a::after {content:" (" attr(href) ")";font-size:8pt}.ls-page .ls-static-answer {display:block!important}.ls-next-grid {display:block}.ls-static-answer>* {display:block}.ls-page h3,.ls-page h4 {break-after:avoid}}

.ls-note-print{display:none}@media print{.ls-note-print{display:block;white-space:pre-wrap;font-size:10pt;margin-block:15px}}

@media print{#why,#testing,#next,section[aria-labelledby="ls-paths-title"],.ls-hero .ls-actions,.ls-hero .ls-lead,.ls-hero .ls-small{display:none!important}}
