﻿.concept-lesson-intro{margin-bottom:28px}.concept-lesson .concept-section-number,.concept-lesson .arr-demo figcaption,.concept-lesson .arr-demo-caption,.concept-lesson .arr-status span,.concept-lesson .sw-demo figcaption,.concept-lesson .sw-demo-caption,.concept-lesson .sw-status span,.concept-lesson .sw-edge-note b,.concept-lesson .tp-demo figcaption,.concept-lesson .tp-demo-caption,.concept-lesson .tp-status span,.concept-lesson .bfs-demo figcaption,.concept-lesson .bfs-demo-caption,.concept-lesson .bfs-status span,.concept-lesson .hp-demo figcaption,.concept-lesson .hp-demo-caption,.concept-lesson .hp-status span,.concept-lesson .sel-demo figcaption,.concept-lesson .sel-demo-caption,.concept-lesson .sel-status span,.concept-lesson .rec-demo figcaption,.concept-lesson .rec-demo-caption,.concept-lesson .rec-status span{font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .sel-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .sel-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .sel-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .sel-track{position:relative;display:flex;gap:8px;align-items:stretch;width:max-content;min-height:72px;padding:58px 0 8px}.concept-lesson .sel-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:52px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease,color .2s ease}.concept-lesson .sel-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .sel-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .sel-cell.is-sorted{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg))}.concept-lesson .sel-cell.is-min{border-color:#b8860b;background:color-mix(in srgb, #e5c07b 32%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .sel-cell.is-scan{border-color:var(--color-neutral-800);background:color-mix(in srgb, var(--color-neutral-300) 45%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .sel-cell.is-swap{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-400) 35%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .sel-cell.is-dim{opacity:.4}.concept-lesson .sel-pointer{position:absolute;top:2px;left:0;z-index:2;display:grid;width:34px;height:22px;margin-left:-17px;place-items:center;border-radius:11px;background:var(--color-accent-700);color:#fff;font-family:var(--font-heading);font-size:10px;font-weight:700;pointer-events:none;box-shadow:var(--shadow-sm)}.concept-lesson .sel-pointer[data-sel-pointer=scan]{top:28px;background:var(--color-neutral-900)}.concept-lesson .sel-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .sel-status span{color:var(--color-accent-700)}.concept-lesson .sel-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .sel-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .sel-demo{padding:8px 10px}.concept-lesson .concept-split-card .sel-cell{min-width:44px;padding:8px 5px}.concept-lesson .concept-split-card .sel-cell strong{font-size:16px}@media(prefers-reduced-motion: reduce){.concept-lesson .sel-cell{transition:none}}.concept-definition{margin:0;color:var(--color-neutral-900);font-size:clamp(17px,2.4vw,20px);line-height:1.5;text-wrap:pretty}.concept-definition code,.concept-lesson .concept-section-copy code,.concept-lesson .concept-kind>p code,.concept-lesson .concept-kind-copy code,.concept-lesson .concept-callout code{padding:1px 5px;border-radius:3px;background:color-mix(in srgb, var(--color-accent) 10%, transparent);color:var(--color-accent-900);font-family:var(--font-heading);font-size:.92em}.concept-definition-list{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:0;margin:14px 0 0;padding:12px 14px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface)}.concept-definition-list div{min-width:0;padding:10px 14px;border-left:1px solid var(--color-divider)}.concept-definition-list div:nth-child(3n+1){padding-left:0;border-left:0}.concept-definition-list div:nth-child(n+4){border-top:1px solid var(--color-divider);margin-top:4px;padding-top:14px}.concept-definition-list div:nth-child(3n){padding-right:0}.concept-definition-list dt{margin-bottom:4px;color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.concept-definition-list dd{margin:0;color:var(--color-neutral-800);font-size:14px;line-height:1.4}.concept-lesson .concept-section{display:grid;gap:14px;margin:0 0 28px;padding:0 0 0 2.75rem}.concept-lesson .concept-section:last-child{margin-bottom:0}.concept-lesson .concept-section-copy{position:relative;display:block;min-width:0}.concept-lesson .concept-section-number{position:absolute;top:.4em;left:-2.75rem;width:2.25rem;margin:0;color:var(--color-accent-600);text-align:left}.concept-lesson .concept-section-copy p,.concept-lesson .concept-kind-copy p{margin:0;color:var(--color-neutral-700);font-size:15.5px;line-height:1.55;text-wrap:pretty}.concept-lesson .concept-section-copy p+p,.concept-lesson .concept-kind-copy p+p{margin-top:8px}.concept-lesson .concept-media-row{display:grid;grid-template-columns:minmax(0, 0.95fr) minmax(0, 1.05fr);gap:18px 22px;align-items:start}.concept-lesson .concept-media-row>.concept-section-copy,.concept-lesson .concept-media-row>.concept-kind-copy{max-width:none}.concept-lesson .concept-callout{margin:0;padding:10px 12px;border-left:3px solid var(--color-accent-600);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-accent-100) 65%, var(--color-surface));color:var(--color-neutral-800);font-size:14.5px;line-height:1.5}.concept-lesson .concept-callout strong{color:var(--color-neutral-900)}.concept-lesson .concept-kinds{display:grid;gap:18px}.concept-lesson .concept-kind{display:grid;gap:10px;min-width:0}.concept-lesson .concept-kind-copy{min-width:0}.concept-lesson .concept-kind h3{margin:0 0 8px;font-family:var(--font-heading);font-size:clamp(18px,2.4vw,22px);font-weight:var(--font-heading-weight);line-height:1.15;text-transform:uppercase}.concept-lesson .concept-split{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:10px}.concept-lesson .concept-split-card{display:grid;gap:8px;align-content:start;min-width:0;padding:12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface)}.concept-lesson .concept-split-card h3{margin:0;font-family:var(--font-heading);font-size:16px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.concept-lesson .concept-split-card>p{margin:0;color:var(--color-neutral-700);font-size:14px;line-height:1.5}.concept-lesson .concept-split-card-break{border-color:color-mix(in srgb, #a33d35 28%, var(--color-divider));background:color-mix(in srgb, #a33d35 5%, var(--color-surface))}.concept-lesson .arr-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .arr-demo:not(.algo-viz)>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .algo-viz>figcaption{margin:0;color:#fff}.concept-lesson .concept-complexity{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:10px}.concept-lesson .concept-complexity div{display:grid;gap:2px;min-width:72px}.concept-lesson .concept-complexity span{color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.concept-lesson .concept-complexity strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:15px;font-weight:600}.concept-lesson .arr-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .arr-track{position:relative;display:flex;gap:8px;align-items:stretch;width:max-content;min-height:72px;padding:36px 0 8px}.concept-lesson .arr-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:52px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease}.concept-lesson .arr-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .arr-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .arr-cell.is-active{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .arr-cell.is-dim{opacity:.4}.concept-lesson .arr-pointer{position:absolute;top:2px;left:0;z-index:2;display:grid;width:22px;height:22px;margin-left:-11px;place-items:center;border-radius:50%;background:var(--color-accent-700);color:#fff;font-family:var(--font-heading);font-size:11px;font-weight:700;pointer-events:none;box-shadow:var(--shadow-sm)}.concept-lesson .arr-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .arr-status span{color:var(--color-accent-700)}.concept-lesson .arr-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .arr-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .arr-memory-label{color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.concept-lesson .arr-ram{display:grid;grid-template-columns:minmax(140px, 180px) 28px minmax(0, 1fr);gap:8px;align-items:stretch;min-height:180px}.concept-lesson .arr-ram-column{display:grid;grid-template-rows:auto 1fr;gap:8px;min-width:0;padding:10px;border:1px dashed var(--color-divider);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 70%, var(--color-bg))}.concept-lesson .arr-ram-stack-well{display:flex;flex-direction:column;gap:8px;justify-content:flex-end;min-height:130px}.concept-lesson .arr-ram-frame{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,opacity .2s ease}.concept-lesson .arr-ram-frame small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .arr-ram-frame strong{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;font-family:var(--font-heading);font-size:15px;font-weight:600;line-height:1.25}.concept-lesson .arr-ram-frame strong span{color:var(--color-accent-800);font-size:13px}.concept-lesson .arr-ram-frame.is-ghost{opacity:.45;border-style:dashed}.concept-lesson .arr-ram-frame.is-hidden{opacity:0;pointer-events:none}.concept-lesson .arr-ram-frame.is-active,.concept-lesson .arr-ram-frame.is-linked{opacity:1;border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 40%, var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 28%, transparent)}.concept-lesson .arr-ram-beam{align-self:center;height:3px;transform:scaleX(0);transform-origin:left center;opacity:.25}.concept-lesson .arr-ram-beam.is-live{opacity:1}.concept-lesson .arr-ram-beam-core{position:relative;display:block;width:100%;height:3px;border-radius:999px;background:linear-gradient(90deg, var(--color-accent-700), #2f7d57)}.concept-lesson .arr-ram-beam-core::after{content:"";position:absolute;top:50%;right:-1px;width:8px;height:8px;border-right:2px solid #2f7d57;border-bottom:2px solid #2f7d57;transform:translateY(-50%) rotate(-45deg)}.concept-lesson .arr-ram-beam.is-pulse .arr-ram-beam-core{animation:arr-beam-pulse .9s ease-in-out infinite}.concept-lesson .arr-ram-heap-well{display:grid;gap:10px;align-content:center;min-height:130px}.concept-lesson .arr-ram-heap-block{position:relative;overflow:hidden;min-height:72px;border:1px dashed var(--color-divider);border-radius:var(--radius-md);background:repeating-linear-gradient(90deg, color-mix(in srgb, var(--color-divider) 55%, transparent) 0 1px, transparent 1px 18px),var(--color-bg)}.concept-lesson .arr-ram-heap-block.is-live{border-style:solid;border-color:#2f7d57}.concept-lesson .arr-ram-heap-block.is-hot{box-shadow:0 0 0 2px color-mix(in srgb, #2f7d57 35%, transparent)}.concept-lesson .arr-ram-heap-fill{position:absolute;inset:0;transform:scaleX(0);transform-origin:left center;background:linear-gradient(90deg, color-mix(in srgb, #8dd9b8 55%, var(--color-bg)), color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg)))}.concept-lesson .arr-ram-heap-fill.is-hot{filter:saturate(1.25)}.concept-lesson .arr-ram-heap-label{position:absolute;top:50%;left:12px;z-index:1;color:var(--color-neutral-700);font-family:var(--font-heading);font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;transform:translateY(-50%)}.concept-lesson .arr-ram-meta{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}.concept-lesson .arr-ram-meta span{color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .arr-ram-meta strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:14px;font-weight:600}@keyframes arr-beam-pulse{0%,100%{opacity:.55}50%{opacity:1}}@media(max-width: 720px){.concept-lesson .arr-ram{grid-template-columns:1fr;gap:10px}.concept-lesson .arr-ram-beam{width:min(180px,50%);justify-self:center}}@media(prefers-reduced-motion: reduce){.concept-lesson .arr-cell,.concept-lesson .arr-ram-frame{transition:none}.concept-lesson .arr-ram-beam.is-pulse .arr-ram-beam-core{animation:none}}.concept-lesson .sw-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .sw-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .sw-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .sw-track{position:relative;display:flex;gap:8px;align-items:stretch;width:max-content;min-height:72px;padding:4px 0 8px}.concept-lesson .sw-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:52px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800)}.concept-lesson .sw-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .sw-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .sw-cell.is-in{border-color:var(--color-accent-500);background:color-mix(in srgb, var(--color-accent-200) 55%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .sw-cell.is-best{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg))}.concept-lesson .sw-cell.is-bad{border-color:#a33d35;background:color-mix(in srgb, #a33d35 8%, var(--color-bg))}.concept-lesson .sw-cell.is-dim{opacity:.4}.concept-lesson .sw-frame{position:absolute;top:0;left:0;z-index:2;box-sizing:border-box;pointer-events:none;border:2px solid var(--color-accent-700);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-accent-400) 10%, transparent)}.concept-lesson .sw-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .sw-status span{color:var(--color-accent-700)}.concept-lesson .sw-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .sw-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .sw-edge-note{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px;color:var(--color-neutral-700);font-size:13px;line-height:1.35}.concept-lesson .sw-edge-note b{margin-right:4px;color:var(--color-accent-800)}.concept-lesson .concept-split-card .sw-demo{padding:8px 10px}.concept-lesson .concept-split-card .sw-cell{min-width:44px;padding:8px 5px}.concept-lesson .concept-split-card .sw-cell strong{font-size:16px}.concept-lesson .tp-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .tp-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .tp-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .tp-track{position:relative;display:flex;gap:8px;align-items:stretch;width:max-content;min-height:72px;padding:58px 0 8px}.concept-lesson .tp-track-dual{padding-top:34px;margin-bottom:10px}.concept-lesson .tp-track-dual:last-child{margin-bottom:0}.concept-lesson .tp-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:52px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800)}.concept-lesson .tp-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .tp-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .tp-cell.is-left{border-color:var(--color-accent-500);background:color-mix(in srgb, var(--color-accent-200) 55%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .tp-cell.is-right{border-color:var(--color-neutral-800);background:color-mix(in srgb, var(--color-neutral-300) 45%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .tp-cell.is-match{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg))}.concept-lesson .tp-cell.is-bad{border-color:#a33d35;background:color-mix(in srgb, #a33d35 8%, var(--color-bg))}.concept-lesson .tp-cell.is-dim{opacity:.4}.concept-lesson .tp-pointer{position:absolute;top:2px;left:0;z-index:2;display:grid;width:22px;height:22px;margin-left:-11px;place-items:center;border-radius:50%;background:var(--color-accent-700);color:#fff;font-family:var(--font-heading);font-size:11px;font-weight:700;pointer-events:none;box-shadow:var(--shadow-sm)}.concept-lesson .tp-pointer[data-tp-pointer=right],.concept-lesson .tp-pointer[data-tp-pointer=b]{top:28px;background:var(--color-neutral-900)}.concept-lesson .tp-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .tp-status span{color:var(--color-accent-700)}.concept-lesson .tp-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .tp-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .tp-demo{padding:8px 10px}.concept-lesson .concept-split-card .tp-cell{min-width:44px;padding:8px 5px}.concept-lesson .concept-split-card .tp-cell strong{font-size:16px}.concept-lesson .bs-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .bs-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .bs-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .bs-track{position:relative;display:flex;gap:8px;align-items:stretch;width:max-content;min-height:72px;padding:58px 0 8px}.concept-lesson .bs-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:52px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease}.concept-lesson .bs-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .bs-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .bs-cell.is-mid{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .bs-cell.is-match{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg))}.concept-lesson .bs-cell.is-bad{border-color:#a33d35;background:color-mix(in srgb, #a33d35 8%, var(--color-bg))}.concept-lesson .bs-cell.is-dim{opacity:.35}.concept-lesson .bs-pointer{position:absolute;top:2px;left:0;z-index:2;display:grid;width:22px;height:22px;margin-left:-11px;place-items:center;border-radius:50%;background:var(--color-accent-700);color:#fff;font-family:var(--font-heading);font-size:11px;font-weight:700;pointer-events:none;box-shadow:var(--shadow-sm)}.concept-lesson .bs-pointer[data-bs-pointer=high]{top:28px;background:var(--color-neutral-900)}.concept-lesson .bs-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .bs-status span{color:var(--color-accent-700)}.concept-lesson .bs-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .bs-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .bs-demo{padding:8px 10px}.concept-lesson .concept-split-card .bs-cell{min-width:44px;padding:8px 5px}.concept-lesson .concept-split-card .bs-cell strong{font-size:16px}.concept-lesson .bub-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .bub-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .bub-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .bub-track{position:relative;display:flex;gap:8px;align-items:stretch;width:max-content;min-height:72px;padding:58px 0 8px}.concept-lesson .bub-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:52px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease,color .2s ease}.concept-lesson .bub-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .bub-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .bub-cell.is-compare{border-color:var(--color-accent-500);background:color-mix(in srgb, var(--color-accent-200) 55%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .bub-cell.is-swap{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 32%, var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb, #8dd9b8 45%, transparent)}.concept-lesson .bub-cell.is-locked{border-color:var(--color-neutral-500);background:var(--color-surface);color:var(--color-neutral-600);opacity:.55}.concept-lesson .bub-pointer{position:absolute;top:2px;left:0;z-index:2;display:grid;width:22px;height:22px;margin-left:-11px;place-items:center;border-radius:50%;background:var(--color-accent-700);color:#fff;font-family:var(--font-heading);font-size:10px;font-weight:700;pointer-events:none;box-shadow:var(--shadow-sm)}.concept-lesson .bub-pointer[data-bub-pointer=b]{top:28px;background:var(--color-neutral-900)}.concept-lesson .bub-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .bub-status span{color:var(--color-accent-700)}.concept-lesson .bub-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .bub-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .bub-demo{padding:8px 10px}.concept-lesson .concept-split-card .bub-cell{min-width:44px;padding:8px 5px}.concept-lesson .concept-split-card .bub-cell strong{font-size:16px}@media(prefers-reduced-motion: reduce){.concept-lesson .bub-cell{transition:none}}@media(max-width: 900px){.concept-lesson .concept-media-row{grid-template-columns:1fr;gap:12px}}@media(max-width: 820px){.concept-definition-list{grid-template-columns:1fr;gap:10px}.concept-definition-list div,.concept-definition-list div:nth-child(3n+1),.concept-definition-list div:nth-child(3n),.concept-definition-list div:nth-child(n+4){margin-top:0;padding:0;border-left:0;border-top:0}.concept-lesson .concept-section{padding-left:0}.concept-lesson .concept-section-number{position:static;width:auto;margin-bottom:4px}.concept-lesson .concept-split{grid-template-columns:1fr}}@media(prefers-reduced-motion: reduce){.concept-lesson .sw-cell,.concept-lesson .tp-cell,.concept-lesson .bs-cell{transition:none}}.concept-lesson .dp-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .dp-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .dp-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .dp-track{position:relative;display:flex;gap:8px;align-items:stretch;width:max-content;min-height:72px;padding:4px 0 8px}.concept-lesson .dp-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:52px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:border-color .2s ease,background .2s ease,color .2s ease}.concept-lesson .dp-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .dp-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .dp-cell.is-current{border-color:var(--color-accent-500);background:color-mix(in srgb, var(--color-accent-200) 55%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .dp-cell.is-filled{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg))}.concept-lesson .dp-cell.is-cache{border-color:#b8860b;background:color-mix(in srgb, #e5c07b 32%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .dp-cell.is-bad{border-color:#a33d35;background:color-mix(in srgb, #a33d35 8%, var(--color-bg))}.concept-lesson .dp-cell.is-dim{opacity:.4}.concept-lesson .dp-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .dp-status span{color:var(--color-accent-700)}.concept-lesson .dp-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .dp-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .dp-demo{padding:8px 10px}.concept-lesson .concept-split-card .dp-cell{min-width:44px;padding:8px 5px}.concept-lesson .concept-split-card .dp-cell strong{font-size:16px}@media(prefers-reduced-motion: reduce){.concept-lesson .dp-cell{transition:none}}.concept-lesson .bt-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .bt-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .bt-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .bt-track{position:relative;display:flex;gap:8px;align-items:stretch;width:max-content;min-height:72px;padding:34px 0 8px}.concept-lesson .bt-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:52px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease}.concept-lesson .bt-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .bt-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .bt-cell.is-chosen{border-color:var(--color-accent-500);background:color-mix(in srgb, var(--color-accent-200) 55%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .bt-cell.is-undone{border-color:var(--color-neutral-500);background:var(--color-surface);color:var(--color-neutral-500);opacity:.55}.concept-lesson .bt-cell.is-pruned{border-color:#a33d35;border-style:dashed;background:color-mix(in srgb, #a33d35 8%, var(--color-bg));color:var(--color-neutral-600)}.concept-lesson .bt-cell.is-match{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg))}.concept-lesson .bt-cell.is-dim{opacity:.4}.concept-lesson .bt-pointer{position:absolute;top:2px;left:0;z-index:2;display:grid;width:22px;height:22px;margin-left:-11px;place-items:center;border-radius:50%;background:var(--color-accent-700);color:#fff;font-family:var(--font-heading);font-size:12px;font-weight:700;pointer-events:none;box-shadow:var(--shadow-sm)}.concept-lesson .bt-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .bt-status span{color:var(--color-accent-700)}.concept-lesson .bt-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .bt-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .bt-demo{padding:8px 10px}.concept-lesson .concept-split-card .bt-cell{min-width:44px;padding:8px 5px}.concept-lesson .concept-split-card .bt-cell strong{font-size:16px}@media(prefers-reduced-motion: reduce){.concept-lesson .bt-cell{transition:none}}.concept-lesson .gr-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .gr-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700);font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .gr-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .gr-track{position:relative;display:flex;gap:8px;align-items:stretch;width:max-content;min-height:72px;padding:34px 0 8px}.concept-lesson .gr-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:52px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800)}.concept-lesson .gr-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .gr-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .gr-cell.is-current{border-color:var(--color-accent-500);background:color-mix(in srgb, var(--color-accent-200) 55%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .gr-cell.is-taken{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg))}.concept-lesson .gr-cell.is-skipped{border-color:#a33d35;background:color-mix(in srgb, #a33d35 8%, var(--color-bg));opacity:.75}.concept-lesson .gr-cell.is-dim{opacity:.4}.concept-lesson .gr-pointer{position:absolute;top:2px;left:0;z-index:2;display:grid;width:22px;height:22px;margin-left:-11px;place-items:center;border-radius:50%;background:var(--color-accent-700);color:#fff;font-family:var(--font-heading);font-size:11px;font-weight:700;pointer-events:none;box-shadow:var(--shadow-sm)}.concept-lesson .gr-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .gr-status span{color:var(--color-accent-700)}.concept-lesson .gr-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .gr-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .gr-demo{padding:8px 10px}.concept-lesson .concept-split-card .gr-cell{min-width:44px;padding:8px 5px}.concept-lesson .concept-split-card .gr-cell strong{font-size:16px}@media(prefers-reduced-motion: reduce){.concept-lesson .gr-cell{transition:none}}.concept-lesson .dfs-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .dfs-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .dfs-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .dfs-grid{display:grid;gap:6px;width:max-content}.concept-lesson .dfs-track{display:flex;gap:8px;align-items:stretch;width:max-content}.concept-lesson .dfs-track-dual{margin-bottom:10px}.concept-lesson .dfs-track-dual:last-child{margin-bottom:0}.concept-lesson .dfs-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:46px;padding:8px 6px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease,color .2s ease}.concept-lesson .dfs-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .dfs-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .dfs-cell.is-wall{opacity:.3;background:color-mix(in srgb, var(--color-neutral-400) 45%, var(--color-bg));color:var(--color-neutral-500)}.concept-lesson .dfs-cell.is-start{border-color:var(--color-accent-600)}.concept-lesson .dfs-cell.is-end{border-color:var(--color-neutral-900)}.concept-lesson .dfs-cell.is-current{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .dfs-cell.is-visited{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 24%, var(--color-bg))}.concept-lesson .dfs-cell.is-dead-end{border-color:#a33d35;background:color-mix(in srgb, #a33d35 10%, var(--color-bg))}.concept-lesson .dfs-cell.is-cycle{border-color:#a33d35;background:color-mix(in srgb, #a33d35 14%, var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb, #a33d35 35%, transparent)}.concept-lesson .dfs-cell.is-dim{opacity:.4}.concept-lesson .dfs-callstack{display:flex;flex-direction:column-reverse;gap:6px;min-width:180px}.concept-lesson .dfs-frame{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease,color .2s ease}.concept-lesson .dfs-frame small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .dfs-frame strong{font-family:var(--font-heading);font-size:15px;font-weight:600}.concept-lesson .dfs-frame.is-active{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .dfs-frame.is-waiting{opacity:.6}.concept-lesson .dfs-frame.is-empty{opacity:.3;border-style:dashed}.concept-lesson .dfs-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .dfs-status span{color:var(--color-accent-700)}.concept-lesson .dfs-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .dfs-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .dfs-demo{padding:8px 10px}.concept-lesson .concept-split-card .dfs-cell{min-width:40px;padding:7px 5px}.concept-lesson .concept-split-card .dfs-cell strong{font-size:15px}@media(prefers-reduced-motion: reduce){.concept-lesson .dfs-cell,.concept-lesson .dfs-frame{transition:none}}.concept-lesson .bfs-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .bfs-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .bfs-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .bfs-grid{display:grid;grid-template-columns:repeat(var(--bfs-cols, 4), minmax(0, 1fr));gap:6px;width:max-content}.concept-lesson .bfs-rows{display:grid;gap:10px}.concept-lesson .bfs-row{display:flex;justify-content:center;gap:8px}.concept-lesson .bfs-rows-dual .bfs-row+.bfs-row{margin-top:4px;padding-top:10px;border-top:1px dashed var(--color-divider)}.concept-lesson .bfs-node{position:relative;display:grid;gap:3px;align-content:center;justify-items:center;width:44px;height:44px;padding:4px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .25s ease,border-color .25s ease,background .25s ease,color .25s ease}.concept-lesson .bfs-node small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:9px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.concept-lesson .bfs-node strong{font-family:var(--font-heading);font-size:15px;font-weight:600;line-height:1}.concept-lesson .bfs-node.is-visited{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 26%, var(--color-bg))}.concept-lesson .bfs-node.is-frontier{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-400) 38%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .bfs-node.is-dim{opacity:.35}.concept-lesson .bfs-node.is-wall{border-color:#a33d35;background:color-mix(in srgb, #a33d35 14%, var(--color-bg));color:#a33d35;opacity:1}.concept-lesson .bfs-node.is-source{border-color:var(--color-accent-700);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--color-accent-500) 45%, transparent)}.concept-lesson .bfs-node.is-target{border-style:dashed;border-color:var(--color-neutral-900)}.concept-lesson .bfs-node.is-unreached{opacity:.55}.concept-lesson .bfs-node.is-path{border-color:var(--color-accent-700);background:color-mix(in srgb, var(--color-accent-300) 32%, var(--color-bg));box-shadow:var(--shadow-sm)}.concept-lesson .bfs-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .bfs-status span{color:var(--color-accent-700)}.concept-lesson .bfs-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .bfs-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .bfs-demo{padding:8px 10px}.concept-lesson .concept-split-card .bfs-node{width:40px;height:40px}.concept-lesson .concept-split-card .bfs-node strong{font-size:14px}@media(prefers-reduced-motion: reduce){.concept-lesson .bfs-node{transition:none}}.concept-lesson .cs-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .cs-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .cs-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .cs-track{display:flex;gap:8px;align-items:stretch;width:max-content;min-height:60px;padding:4px 0 8px}.concept-lesson .cs-track-result{margin-top:10px;padding-top:10px;border-top:1px dashed var(--color-divider)}.concept-lesson .cs-cell{position:relative;display:grid;gap:4px;align-content:center;justify-items:center;min-width:48px;padding:8px 6px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease,color .2s ease}.concept-lesson .cs-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .cs-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .cs-cell.is-current{border-color:var(--color-accent-500);background:color-mix(in srgb, var(--color-accent-200) 55%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .cs-cell.is-counted{border-color:var(--color-neutral-500);background:var(--color-surface);color:var(--color-neutral-600);opacity:.65}.concept-lesson .cs-cell.is-write{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 40%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .cs-cell.is-match{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg))}.concept-lesson .cs-cell.is-bad{border-color:#a33d35;background:color-mix(in srgb, #a33d35 8%, var(--color-bg))}.concept-lesson .cs-cell.is-dim{opacity:.4}.concept-lesson .cs-buckets{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--color-divider)}.concept-lesson .cs-bucket{display:grid;gap:4px;align-content:center;justify-items:center;min-width:52px;padding:8px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease,opacity .2s ease}.concept-lesson .cs-bucket small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .cs-bucket strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .cs-bucket.is-active{border-color:var(--color-accent-500);background:color-mix(in srgb, var(--color-accent-200) 55%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .cs-bucket.is-reading{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .cs-bucket.is-filled{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 24%, var(--color-bg))}.concept-lesson .cs-bucket.is-bad{border-color:#a33d35;background:color-mix(in srgb, #a33d35 10%, var(--color-bg))}.concept-lesson .cs-bucket.is-dim{opacity:.4}.concept-lesson .cs-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .cs-status span{color:var(--color-accent-700)}.concept-lesson .cs-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .cs-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .cs-demo{padding:8px 10px}.concept-lesson .concept-split-card .cs-cell{min-width:42px;padding:7px 5px}.concept-lesson .concept-split-card .cs-cell strong{font-size:15px}@media(prefers-reduced-motion: reduce){.concept-lesson .cs-cell,.concept-lesson .cs-bucket{transition:none}}.concept-lesson .uf-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .uf-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700);font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .uf-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .uf-track{display:flex;gap:8px;align-items:stretch;width:max-content;min-height:62px;padding:4px 0 8px}.concept-lesson .uf-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:52px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:border-color .25s ease,background .25s ease,color .25s ease}.concept-lesson .uf-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .uf-cell strong{font-family:var(--font-heading);font-size:16px;font-weight:600;line-height:1}.concept-lesson .uf-cell.is-group-a{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .uf-cell.is-group-b{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 30%, var(--color-bg))}.concept-lesson .uf-cell.is-group-c{border-color:#b8860b;background:color-mix(in srgb, #e5c07b 34%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .uf-cell.is-group-d{border-color:#b23a63;background:color-mix(in srgb, #f28ca0 34%, var(--color-bg))}.concept-lesson .uf-cell.is-group-e{border-color:#3b5bdb;background:color-mix(in srgb, #a9c7ff 42%, var(--color-bg))}.concept-lesson .uf-cell.is-group-f{border-color:var(--color-neutral-800);background:color-mix(in srgb, var(--color-neutral-300) 48%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .uf-cell.is-cycle{border-color:#a33d35;background:color-mix(in srgb, #a33d35 16%, var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb, #a33d35 35%, transparent)}.concept-lesson .uf-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .uf-status span{color:var(--color-accent-700)}.concept-lesson .uf-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .uf-status span{font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .uf-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .uf-chain{display:grid;gap:6px}.concept-lesson .uf-link{padding:8px 10px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);font-family:var(--font-heading);font-size:14px;font-weight:600;transition:border-color .25s ease,background .25s ease,color .25s ease}.concept-lesson .uf-link.is-flattened{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 26%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .concept-split-card .uf-demo{padding:8px 10px}.concept-lesson .concept-split-card .uf-cell{min-width:44px;padding:8px 5px}.concept-lesson .concept-split-card .uf-link{padding:6px 9px;font-size:13px}@media(prefers-reduced-motion: reduce){.concept-lesson .uf-cell,.concept-lesson .uf-link{transition:none}}.concept-lesson .dij-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .dij-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .dij-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .dij-track{position:relative;display:flex;gap:8px;align-items:stretch;width:max-content;min-height:72px;padding:34px 0 8px}.concept-lesson .dij-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:52px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease,color .2s ease}.concept-lesson .dij-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .dij-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .dij-cell.is-frontier{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .dij-cell.is-finalized{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 26%, var(--color-bg))}.concept-lesson .dij-cell.is-relaxed{border-color:#b8860b;background:color-mix(in srgb, #e5c07b 32%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .dij-cell.is-path{border-color:var(--color-accent-700);background:color-mix(in srgb, var(--color-accent-300) 32%, var(--color-bg));box-shadow:var(--shadow-sm)}.concept-lesson .dij-cell.is-bad{border-color:#a33d35;background:color-mix(in srgb, #a33d35 10%, var(--color-bg))}.concept-lesson .dij-cell.is-dim{opacity:.45}.concept-lesson .dij-pointer{position:absolute;top:2px;left:0;z-index:2;display:grid;width:22px;height:22px;margin-left:-11px;place-items:center;border-radius:50%;background:var(--color-accent-700);color:#fff;font-family:var(--font-heading);font-size:10px;font-weight:700;opacity:0;pointer-events:none;box-shadow:var(--shadow-sm);transition:opacity .2s ease}.concept-lesson .dij-pointer.is-visible{opacity:1}.concept-lesson .dij-pointer::before{content:"↓"}.concept-lesson .dij-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .dij-status span{color:var(--color-accent-700)}.concept-lesson .dij-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .dij-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .dij-demo{padding:8px 10px}.concept-lesson .concept-split-card .dij-cell{min-width:44px;padding:8px 5px}.concept-lesson .concept-split-card .dij-cell strong{font-size:16px}@media(prefers-reduced-motion: reduce){.concept-lesson .dij-cell,.concept-lesson .dij-pointer{transition:none}}.concept-lesson .ms-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .ms-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700);font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .ms-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .ms-track{position:relative;display:flex;gap:8px;align-items:stretch;width:max-content;min-height:72px;padding:58px 0 8px}.concept-lesson .ms-track-dual{padding-top:34px;margin-bottom:10px}.concept-lesson .ms-track-dual:last-of-type{margin-bottom:0}.concept-lesson .ms-track-out{padding-top:4px;margin-top:4px;border-top:1px dashed var(--color-divider)}.concept-lesson .ms-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:52px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease,color .2s ease}.concept-lesson .ms-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .ms-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .ms-cell.is-a{border-color:var(--color-accent-500);background:color-mix(in srgb, var(--color-accent-200) 55%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .ms-cell.is-b{border-color:var(--color-neutral-800);background:color-mix(in srgb, var(--color-neutral-300) 45%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .ms-cell.is-current{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .ms-cell.is-placed,.concept-lesson .ms-cell.is-match{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg))}.concept-lesson .ms-cell.is-bad{border-color:#a33d35;background:color-mix(in srgb, #a33d35 8%, var(--color-bg))}.concept-lesson .ms-cell.is-dim{opacity:.4}.concept-lesson .ms-cell.is-empty{border-style:dashed;color:var(--color-neutral-400)}.concept-lesson .ms-pointer{position:absolute;top:2px;left:0;z-index:2;display:grid;width:22px;height:22px;margin-left:-11px;place-items:center;border-radius:50%;background:var(--color-accent-700);color:#fff;font-family:var(--font-heading);font-size:11px;font-weight:700;pointer-events:none;box-shadow:var(--shadow-sm)}.concept-lesson .ms-pointer[data-ms-pointer=b]{top:28px;background:var(--color-neutral-900)}.concept-lesson .ms-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .ms-status span{color:var(--color-accent-700)}.concept-lesson .ms-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .ms-status span{font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .ms-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .ms-demo{padding:8px 10px}.concept-lesson .concept-split-card .ms-cell{min-width:44px;padding:8px 5px}.concept-lesson .concept-split-card .ms-cell strong{font-size:16px}@media(prefers-reduced-motion: reduce){.concept-lesson .ms-cell{transition:none}}.concept-lesson .hp-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .hp-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .hp-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .hp-tree{position:relative;display:grid;gap:28px;width:max-content;min-width:100%;justify-items:center;padding:8px 12px 4px}.concept-lesson .hp-edges{position:absolute;inset:0;z-index:0;overflow:visible;pointer-events:none}.concept-lesson .hp-edge{fill:none;stroke:color-mix(in srgb, var(--color-accent-700) 55%, #2f7d57);stroke-width:2.25;stroke-linecap:round;opacity:.85;visibility:hidden;vector-effect:non-scaling-stroke}.concept-lesson .hp-edge.is-on{visibility:visible;opacity:1}.concept-lesson .hp-edge.is-pulse{animation:hp-edge-pulse .9s ease-in-out infinite}@keyframes hp-edge-pulse{0%,100%{opacity:.45}50%{opacity:1}}.concept-lesson .hp-level{position:relative;z-index:1;display:flex;gap:10px;justify-content:center}.concept-lesson .hp-node{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:50px;padding:8px 6px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease}.concept-lesson .hp-node small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .hp-node strong{font-family:var(--font-heading);font-size:16px;font-weight:600;line-height:1}.concept-lesson .hp-node.is-root{border-color:var(--color-accent-700);background:color-mix(in srgb, var(--color-accent-400) 40%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .hp-node.is-parent{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 40%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .hp-node.is-child{border-color:var(--color-neutral-800);background:color-mix(in srgb, var(--color-neutral-300) 45%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .hp-node.is-swap{border-color:#b8860b;background:color-mix(in srgb, #e5c07b 32%, var(--color-bg));color:var(--color-neutral-900);box-shadow:0 0 0 2px color-mix(in srgb, #b8860b 35%, transparent)}.concept-lesson .hp-node.is-match{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg))}.concept-lesson .hp-node.is-bad{border-color:#a33d35;background:color-mix(in srgb, #a33d35 8%, var(--color-bg))}.concept-lesson .hp-node.is-dim{opacity:.35}.concept-lesson .hp-track{position:relative;display:flex;gap:8px;align-items:stretch;width:max-content;min-height:60px;padding:4px 0 8px}.concept-lesson .hp-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:56px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease,color .2s ease}.concept-lesson .hp-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .hp-cell strong{font-family:var(--font-heading);font-size:16px;font-weight:600;line-height:1}.concept-lesson .hp-cell.is-root{border-color:var(--color-accent-700);background:color-mix(in srgb, var(--color-accent-400) 40%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .hp-cell.is-in{border-color:var(--color-accent-500);background:color-mix(in srgb, var(--color-accent-200) 55%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .hp-cell.is-out{border-color:#a33d35;background:color-mix(in srgb, #a33d35 8%, var(--color-bg));opacity:.6}.concept-lesson .hp-cell.is-dim{opacity:.35}.concept-lesson .hp-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .hp-status span{color:var(--color-accent-700)}.concept-lesson .hp-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .hp-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .hp-demo{padding:8px 10px}.concept-lesson .concept-split-card .hp-node,.concept-lesson .concept-split-card .hp-cell{min-width:42px;padding:7px 5px}.concept-lesson .concept-split-card .hp-node strong,.concept-lesson .concept-split-card .hp-cell strong{font-size:14px}@media(prefers-reduced-motion: reduce){.concept-lesson .hp-node,.concept-lesson .hp-cell{transition:none}}.concept-lesson .qs-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .qs-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .qs-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .qs-track{position:relative;display:flex;gap:8px;align-items:stretch;width:max-content;min-height:72px;padding:58px 0 8px}.concept-lesson .qs-track-dual{padding-top:4px;margin-bottom:10px}.concept-lesson .qs-track-dual:last-child{margin-bottom:0}.concept-lesson .qs-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:52px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease,color .2s ease}.concept-lesson .qs-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .qs-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .qs-cell.is-pivot{border-color:var(--color-accent-700);background:color-mix(in srgb, var(--color-accent-400) 40%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .qs-cell.is-less{border-color:var(--color-neutral-800);background:color-mix(in srgb, var(--color-neutral-300) 45%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .qs-cell.is-sorted{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 30%, var(--color-bg))}.concept-lesson .qs-cell.is-dim{opacity:.4}.concept-lesson .qs-pointer{position:absolute;top:2px;left:0;z-index:2;display:grid;width:22px;height:22px;margin-left:-11px;place-items:center;border-radius:50%;background:var(--color-accent-700);color:#fff;font-family:var(--font-heading);font-size:11px;font-weight:700;pointer-events:none;box-shadow:var(--shadow-sm)}.concept-lesson .qs-pointer[data-qs-pointer=j]{top:28px;background:var(--color-neutral-900)}.concept-lesson .qs-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .qs-status span{color:var(--color-accent-700)}.concept-lesson .qs-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .qs-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .qs-demo{padding:8px 10px}.concept-lesson .concept-split-card .qs-cell{min-width:44px;padding:8px 5px}.concept-lesson .concept-split-card .qs-cell strong{font-size:16px}@media(prefers-reduced-motion: reduce){.concept-lesson .qs-cell{transition:none}}.concept-lesson .topo-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .topo-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700);font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .topo-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .topo-track{display:flex;gap:8px;align-items:stretch;width:max-content;min-height:64px;padding:4px 0 8px}.concept-lesson .topo-node{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:58px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease,color .2s ease}.concept-lesson .topo-node small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .topo-node strong{font-family:var(--font-heading);font-size:16px;font-weight:600;line-height:1}.concept-lesson .topo-node.is-blocked{opacity:.55}.concept-lesson .topo-node.is-ready{border-color:var(--color-accent-500);background:color-mix(in srgb, var(--color-accent-200) 55%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .topo-node.is-current{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .topo-node.is-done{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .topo-node.is-cycle{border-color:#a33d35;background:color-mix(in srgb, #a33d35 12%, var(--color-bg));color:var(--color-neutral-900);box-shadow:0 0 0 2px color-mix(in srgb, #a33d35 30%, transparent)}.concept-lesson .topo-order{display:flex;gap:8px;align-items:stretch;width:max-content;margin-top:4px;padding-top:8px;border-top:1px dashed var(--color-divider)}.concept-lesson .topo-order-cell{display:grid;min-width:44px;min-height:34px;padding:6px;place-items:center;border:1px dashed var(--color-divider);border-radius:var(--radius-md);color:var(--color-neutral-800);font-family:var(--font-heading);font-size:14px;font-weight:600;transition:border-color .2s ease,background .2s ease,color .2s ease}.concept-lesson .topo-order-cell.is-empty{opacity:.4}.concept-lesson .topo-order-cell.is-filled{border-style:solid;border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg))}.concept-lesson .topo-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .topo-status span{color:var(--color-accent-700)}.concept-lesson .topo-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .topo-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .topo-demo{padding:8px 10px}.concept-lesson .concept-split-card .topo-node{min-width:48px;padding:8px 5px}.concept-lesson .concept-split-card .topo-node strong{font-size:14px}@media(prefers-reduced-motion: reduce){.concept-lesson .topo-node,.concept-lesson .topo-order-cell{transition:none}}.concept-lesson .ps-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .ps-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700);font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .ps-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .ps-track{position:relative;display:flex;gap:8px;align-items:stretch;width:max-content}.concept-lesson .ps-col{position:relative;z-index:1;display:grid;gap:6px;min-width:52px}.concept-lesson .ps-cell,.concept-lesson .ps-total{display:grid;gap:4px;align-content:center;justify-items:center;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:border-color .2s ease,background .2s ease,color .2s ease}.concept-lesson .ps-total{background:color-mix(in srgb, var(--color-neutral-200) 45%, var(--color-bg))}.concept-lesson .ps-cell small,.concept-lesson .ps-total small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .ps-cell strong,.concept-lesson .ps-total strong{font-family:var(--font-heading);font-size:16px;font-weight:600;line-height:1.15;text-align:center;word-break:break-word}.concept-lesson .ps-col.is-current .ps-cell,.concept-lesson .ps-col.is-current .ps-total{border-color:var(--color-accent-500);background:color-mix(in srgb, var(--color-accent-200) 55%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .ps-col.is-filled .ps-total{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-100) 45%, var(--color-bg));color:var(--color-accent-800)}.concept-lesson .ps-col.is-range .ps-cell,.concept-lesson .ps-col.is-range .ps-total{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 32%, var(--color-bg))}.concept-lesson .ps-col.is-match .ps-cell,.concept-lesson .ps-col.is-match .ps-total{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg))}.concept-lesson .ps-col.is-bad .ps-cell,.concept-lesson .ps-col.is-bad .ps-total{border-color:#a33d35;background:color-mix(in srgb, #a33d35 10%, var(--color-bg))}.concept-lesson .ps-col.is-dim{opacity:.45}.concept-lesson .ps-frame{position:absolute;top:0;left:0;z-index:0;box-sizing:border-box;pointer-events:none;opacity:0;border:2px dashed var(--color-accent-700);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-accent-400) 8%, transparent);transition:opacity .2s ease}.concept-lesson .ps-map{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;margin-top:12px;padding-top:10px;border-top:1px dashed var(--color-divider)}.concept-lesson .ps-map-label{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .ps-map-chips{display:flex;flex-wrap:wrap;gap:6px}.concept-lesson .ps-map-chip{padding:3px 8px;border:1px solid var(--color-divider);border-radius:999px;background:var(--color-surface);color:var(--color-neutral-700);font-family:var(--font-heading);font-size:12px;font-weight:600}.concept-lesson .ps-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .ps-status span{color:var(--color-accent-700)}.concept-lesson .ps-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .ps-status span{font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .ps-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .ps-demo{padding:8px 10px}.concept-lesson .concept-split-card .ps-col{min-width:44px}.concept-lesson .concept-split-card .ps-cell strong,.concept-lesson .concept-split-card .ps-total strong{font-size:14px}@media(prefers-reduced-motion: reduce){.concept-lesson .ps-cell,.concept-lesson .ps-total,.concept-lesson .ps-frame{transition:none}}.concept-lesson .kru-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .kru-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700);font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .kru-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .kru-track{position:relative;display:flex;gap:8px;align-items:stretch;width:max-content;min-height:72px;padding:34px 0 8px}.concept-lesson .kru-track-dual{padding-top:34px;margin-bottom:10px}.concept-lesson .kru-track-dual:last-child{margin-bottom:0}.concept-lesson .kru-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:56px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease,color .2s ease}.concept-lesson .kru-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .kru-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .kru-cell.is-current{border-color:var(--color-accent-500);background:color-mix(in srgb, var(--color-accent-200) 55%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .kru-cell.is-accepted{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg))}.concept-lesson .kru-cell.is-rejected{border-color:#a33d35;background:color-mix(in srgb, #a33d35 8%, var(--color-bg));opacity:.75}.concept-lesson .kru-cell.is-dim{opacity:.4}.concept-lesson .kru-pointer{position:absolute;top:2px;left:0;z-index:2;display:grid;width:22px;height:22px;margin-left:-11px;place-items:center;border-radius:50%;background:var(--color-accent-700);color:#fff;font-family:var(--font-heading);font-size:11px;font-weight:700;pointer-events:none;box-shadow:var(--shadow-sm)}.concept-lesson .kru-pointer[data-kru-pointer=b]{background:var(--color-neutral-900)}.concept-lesson .kru-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .kru-status span{color:var(--color-accent-700)}.concept-lesson .kru-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .kru-status span{font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .kru-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35;font-family:var(--font-heading);font-weight:600;text-transform:uppercase}.concept-lesson .concept-split-card .kru-demo{padding:8px 10px}.concept-lesson .concept-split-card .kru-cell{min-width:48px;padding:8px 5px}.concept-lesson .concept-split-card .kru-cell strong{font-size:16px}@media(prefers-reduced-motion: reduce){.concept-lesson .kru-cell{transition:none}}.concept-lesson .ins-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .ins-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700);font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .ins-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .ins-track{position:relative;display:flex;gap:8px;align-items:stretch;width:max-content;min-height:72px;padding:34px 0 8px}.concept-lesson .ins-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:52px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease,color .2s ease}.concept-lesson .ins-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .ins-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .ins-cell.is-sorted{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg))}.concept-lesson .ins-cell.is-current{border-color:var(--color-accent-500);background:color-mix(in srgb, var(--color-accent-200) 55%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .ins-cell.is-compare{border-color:#b8860b;background:color-mix(in srgb, #e5c07b 32%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .ins-cell.is-dim{opacity:.4}.concept-lesson .ins-pointer{position:absolute;top:2px;left:0;z-index:2;display:grid;width:22px;height:22px;margin-left:-11px;place-items:center;border-radius:50%;background:var(--color-accent-700);color:#fff;font-family:var(--font-heading);font-size:11px;font-weight:700;pointer-events:none;box-shadow:var(--shadow-sm)}.concept-lesson .ins-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .ins-status span{color:var(--color-accent-700)}.concept-lesson .ins-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .ins-status span{font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .ins-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .ins-demo{padding:8px 10px}.concept-lesson .concept-split-card .ins-cell{min-width:44px;padding:8px 5px}.concept-lesson .concept-split-card .ins-cell strong{font-size:16px}@media(prefers-reduced-motion: reduce){.concept-lesson .ins-cell{transition:none}}.concept-lesson .kad-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .kad-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700);font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .kad-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .kad-track{position:relative;display:flex;gap:8px;align-items:stretch;width:max-content;min-height:72px;padding:34px 0 8px}.concept-lesson .kad-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:52px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease,color .2s ease}.concept-lesson .kad-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .kad-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .kad-cell.is-current{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .kad-cell.is-in{border-color:var(--color-accent-500);background:color-mix(in srgb, var(--color-accent-200) 55%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .kad-cell.is-best{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg))}.concept-lesson .kad-cell.is-bad{border-color:#a33d35;background:color-mix(in srgb, #a33d35 8%, var(--color-bg))}.concept-lesson .kad-cell.is-dim{opacity:.4}.concept-lesson .kad-pointer{position:absolute;top:2px;left:0;z-index:2;display:grid;width:22px;height:22px;margin-left:-11px;place-items:center;border-radius:50%;background:var(--color-accent-700);color:#fff;font-family:var(--font-heading);font-size:11px;font-weight:700;pointer-events:none;box-shadow:var(--shadow-sm)}.concept-lesson .kad-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .kad-status span{color:var(--color-accent-700)}.concept-lesson .kad-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .kad-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .kad-demo{padding:8px 10px}.concept-lesson .concept-split-card .kad-cell{min-width:44px;padding:8px 5px}.concept-lesson .concept-split-card .kad-cell strong{font-size:16px}@media(prefers-reduced-motion: reduce){.concept-lesson .kad-cell{transition:none}}.concept-lesson .bf-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .bf-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700);font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .bf-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .bf-track{position:relative;display:flex;gap:8px;align-items:stretch;width:max-content;min-height:72px;padding:4px 0 8px}.concept-lesson .bf-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:52px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:border-color .2s ease,background .2s ease,color .2s ease}.concept-lesson .bf-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .bf-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .bf-cell.is-current{border-color:var(--color-accent-500);background:color-mix(in srgb, var(--color-accent-200) 55%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .bf-cell.is-filled{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg))}.concept-lesson .bf-cell.is-cache{border-color:#b8860b;background:color-mix(in srgb, #e5c07b 32%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .bf-cell.is-bad{border-color:#a33d35;background:color-mix(in srgb, #a33d35 8%, var(--color-bg))}.concept-lesson .bf-cell.is-dim{opacity:.4}.concept-lesson .bf-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .bf-status span{color:var(--color-accent-700)}.concept-lesson .bf-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .bf-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .bf-demo{padding:8px 10px}.concept-lesson .concept-split-card .bf-cell{min-width:44px;padding:8px 5px}.concept-lesson .concept-split-card .bf-cell strong{font-size:16px}@media(prefers-reduced-motion: reduce){.concept-lesson .bf-cell{transition:none}}.concept-lesson .bm-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .bm-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700);font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .bm-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .bm-track{position:relative;display:flex;gap:6px;align-items:stretch;width:max-content;min-height:60px;padding:4px 0 8px}.concept-lesson .bm-track-dual{margin-bottom:8px}.concept-lesson .bm-track-dual:last-child{margin-bottom:0}.concept-lesson .bm-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:40px;padding:8px 4px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease}.concept-lesson .bm-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:9px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.concept-lesson .bm-cell strong{font-family:var(--font-heading);font-size:18px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}.concept-lesson .bm-cell.is-on{border-color:var(--color-accent-500);background:color-mix(in srgb, var(--color-accent-300) 40%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .bm-cell.is-active{border-color:var(--color-accent-700);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 40%, transparent)}.concept-lesson .bm-cell.is-match{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 32%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .bm-cell.is-bad{border-color:#a33d35;background:color-mix(in srgb, #a33d35 12%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .bm-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .bm-status span{color:var(--color-accent-700)}.concept-lesson .bm-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .bm-status span{font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .bm-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .bm-demo{padding:8px 10px}.concept-lesson .concept-split-card .bm-cell{min-width:36px;padding:7px 4px}.concept-lesson .concept-split-card .bm-cell strong{font-size:15px}@media(prefers-reduced-motion: reduce){.concept-lesson .bm-cell{transition:none}}.concept-lesson .prim-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .prim-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700);font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .prim-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .prim-track{display:flex;gap:8px;align-items:stretch;width:max-content;min-height:72px;padding:4px 0 8px}.concept-lesson .prim-cell{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:78px;padding:9px 7px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease,color .2s ease}.concept-lesson .prim-cell small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .prim-cell strong{font-family:var(--font-heading);font-size:15px;font-weight:600;line-height:1.2;text-align:center}.concept-lesson .prim-cell.is-root{border-color:var(--color-neutral-900);background:color-mix(in srgb, var(--color-neutral-300) 45%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .prim-cell.is-tree{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg))}.concept-lesson .prim-cell.is-frontier{border-color:var(--color-accent-500);background:color-mix(in srgb, var(--color-accent-200) 55%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .prim-cell.is-unreached{opacity:.45}.concept-lesson .prim-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .prim-status span{color:var(--color-accent-700)}.concept-lesson .prim-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .prim-status span{font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .prim-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .prim-demo{padding:8px 10px}.concept-lesson .concept-split-card .prim-cell{min-width:64px;padding:7px 5px}.concept-lesson .concept-split-card .prim-cell strong{font-size:13px}@media(prefers-reduced-motion: reduce){.concept-lesson .prim-cell{transition:none}}.concept-lesson .rec-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .rec-demo>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .rec-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .rec-stack{display:flex;flex-direction:column;gap:6px;width:100%;min-width:220px}.concept-lesson .rec-frame{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);opacity:.4;transition:opacity .25s ease,border-color .25s ease,background .25s ease,color .25s ease,transform .25s ease}.concept-lesson .rec-frame small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .rec-frame strong{font-family:var(--font-heading);font-size:15px;font-weight:600}.concept-lesson .rec-frame-value{min-width:2.5em;color:var(--color-neutral-500);font-family:var(--font-heading);font-size:13px;font-weight:600;text-align:right}.concept-lesson .rec-frame.is-pending{opacity:.32;border-style:dashed}.concept-lesson .rec-frame.is-waiting{opacity:.55;border-color:var(--color-neutral-500)}.concept-lesson .rec-frame.is-active{opacity:1;border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent);transform:translateX(4px)}.concept-lesson .rec-frame.is-active .rec-frame-value{color:var(--color-accent-800)}.concept-lesson .rec-frame.is-resolved{opacity:1;border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 24%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .rec-frame.is-resolved .rec-frame-value{color:#2f7d57}.concept-lesson .rec-frame.is-bad{opacity:1;border-color:#a33d35;background:color-mix(in srgb, #a33d35 14%, var(--color-bg));color:#a33d35;box-shadow:0 0 0 2px color-mix(in srgb, #a33d35 35%, transparent)}.concept-lesson .rec-frame.is-bad .rec-frame-value{color:#a33d35}.concept-lesson .rec-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .rec-status span{color:var(--color-accent-700)}.concept-lesson .rec-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .rec-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .concept-split-card .rec-demo{padding:8px 10px}.concept-lesson .concept-split-card .rec-frame{padding:6px 8px}.concept-lesson .concept-split-card .rec-frame strong{font-size:13px}@media(prefers-reduced-motion: reduce){.concept-lesson .rec-frame{transition:none}}.concept-lesson .ll-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .ll-demo:not(.algo-viz)>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .ll-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .ll-chain{position:relative;display:flex;gap:0;align-items:center;width:max-content;min-height:88px;padding:36px 4px 10px}.concept-lesson .ll-cursor{position:absolute;top:2px;left:0;z-index:3;display:grid;width:auto;min-width:28px;height:22px;padding:0 6px;margin-left:-14px;place-items:center;border-radius:999px;background:var(--color-accent-700);color:#fff;font-family:var(--font-heading);font-size:10px;font-weight:700;letter-spacing:.04em;pointer-events:none;box-shadow:var(--shadow-sm)}.concept-lesson .ll-node{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:58px;padding:10px 10px 8px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease}.concept-lesson .ll-node.is-head{border-color:color-mix(in srgb, var(--color-accent-500) 55%, var(--color-divider))}.concept-lesson .ll-node small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .ll-node strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .ll-node-next{color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.06em}.concept-lesson .ll-node.is-active{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .ll-node.is-dim{opacity:.4}.concept-lesson .ll-node.is-blocked{border-color:color-mix(in srgb, #b45309 55%, var(--color-divider));background:color-mix(in srgb, #f59e0b 18%, var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb, #f59e0b 28%, transparent);opacity:.85}.concept-lesson .ll-arrow{display:grid;width:28px;place-items:center;flex-shrink:0;color:var(--color-accent-700);pointer-events:none;opacity:.28;transition:opacity .25s ease}.concept-lesson .ll-arrow.is-on{opacity:1}.concept-lesson .ll-arrow.is-dim{opacity:.22}.concept-lesson .ll-arrow span{display:block;width:100%;height:2px;border-radius:999px;background:linear-gradient(90deg, var(--color-accent-600), #2f7d57);position:relative}.concept-lesson .ll-arrow span::after{content:"";position:absolute;top:50%;right:-1px;width:7px;height:7px;border-right:2px solid #2f7d57;border-bottom:2px solid #2f7d57;transform:translateY(-50%) rotate(-45deg)}.concept-lesson .ll-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .ll-status span{color:var(--color-accent-700)}.concept-lesson .ll-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .ll-status span{font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.concept-lesson .ll-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .ll-memory-label{color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.concept-lesson .ll-ram{display:grid;grid-template-columns:minmax(140px, 180px) 28px minmax(0, 1fr);gap:8px;align-items:stretch;min-height:180px}.concept-lesson .ll-ram-column{display:grid;grid-template-rows:auto 1fr;gap:8px;min-width:0;padding:10px;border:1px dashed var(--color-divider);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 70%, var(--color-bg))}.concept-lesson .ll-ram-stack-well{display:flex;flex-direction:column;gap:8px;justify-content:flex-end;min-height:130px}.concept-lesson .ll-ram-frame{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,opacity .2s ease}.concept-lesson .ll-ram-frame small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .ll-ram-frame strong{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;font-family:var(--font-heading);font-size:15px;font-weight:600;line-height:1.25}.concept-lesson .ll-ram-frame strong span{color:var(--color-accent-800);font-size:13px}.concept-lesson .ll-ram-frame.is-ghost{opacity:.45;border-style:dashed}.concept-lesson .ll-ram-frame.is-hidden{opacity:0;pointer-events:none}.concept-lesson .ll-ram-frame.is-active,.concept-lesson .ll-ram-frame.is-linked{opacity:1;border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 40%, var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 28%, transparent)}.concept-lesson .ll-ram-beam{align-self:center;height:3px;transform:scaleX(0);transform-origin:left center;opacity:.25}.concept-lesson .ll-ram-beam.is-live{opacity:1}.concept-lesson .ll-ram-beam-core{position:relative;display:block;width:100%;height:3px;border-radius:999px;background:linear-gradient(90deg, var(--color-accent-700), #2f7d57)}.concept-lesson .ll-ram-beam-core::after{content:"";position:absolute;top:50%;right:-1px;width:8px;height:8px;border-right:2px solid #2f7d57;border-bottom:2px solid #2f7d57;transform:translateY(-50%) rotate(-45deg)}.concept-lesson .ll-ram-beam.is-pulse .ll-ram-beam-core{animation:ll-beam-pulse .9s ease-in-out infinite}.concept-lesson .ll-ram-heap-well{display:grid;gap:10px;align-content:center;min-height:130px}.concept-lesson .ll-ram-nodes{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}.concept-lesson .ll-ram-node{display:grid;gap:3px;justify-items:center;min-width:56px;padding:8px 10px;border:1px solid #2f7d57;border-radius:var(--radius-md);background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg));color:var(--color-neutral-800);transition:opacity .2s ease,box-shadow .2s ease,border-color .2s ease}.concept-lesson .ll-ram-node.is-hidden{opacity:0;pointer-events:none;border-style:dashed;border-color:var(--color-divider);background:rgba(0,0,0,0)}.concept-lesson .ll-ram-node.is-live{opacity:1}.concept-lesson .ll-ram-node.is-hot{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 30%, transparent)}.concept-lesson .ll-ram-node small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .ll-ram-node strong{font-family:var(--font-heading);font-size:16px;font-weight:600;line-height:1}.concept-lesson .ll-ram-node-next{color:var(--color-accent-800);font-family:var(--font-heading);font-size:11px;font-weight:600}.concept-lesson .ll-ram-meta{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}.concept-lesson .ll-ram-meta span{color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .ll-ram-meta strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:14px;font-weight:600}@keyframes ll-beam-pulse{0%,100%{opacity:.55}50%{opacity:1}}@media(max-width: 720px){.concept-lesson .ll-ram{grid-template-columns:1fr;gap:10px}.concept-lesson .ll-ram-beam{width:min(180px,50%);justify-self:center}}@media(prefers-reduced-motion: reduce){.concept-lesson .ll-node,.concept-lesson .ll-ram-frame,.concept-lesson .ll-ram-node{transition:none}.concept-lesson .ll-ram-beam.is-pulse .ll-ram-beam-core{animation:none}}.concept-lesson .stk-demo figcaption,.concept-lesson .stk-demo-caption,.concept-lesson .stk-status span{font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .stk-dl{grid-template-columns:repeat(4, minmax(0, 1fr))}.concept-lesson .stk-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .stk-demo:not(.algo-viz)>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .stk-stage{overflow:hidden;padding-bottom:2px}.concept-lesson .stk-tower{position:relative;display:flex;flex-direction:column-reverse;gap:6px;align-items:center;justify-content:flex-start;min-height:200px;padding:28px 8px 8px}.concept-lesson .stk-top-badge{position:absolute;top:6px;left:50%;z-index:2;display:grid;place-items:center;min-width:40px;padding:2px 8px;border-radius:999px;background:color-mix(in srgb, var(--color-neutral-400) 35%, var(--color-bg));color:var(--color-neutral-600);font-family:var(--font-heading);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;opacity:.45;transform:translateX(-50%);transition:opacity .2s ease,background .2s ease,color .2s ease}.concept-lesson .stk-stage{position:relative}.concept-lesson .stk-top-badge.is-live{background:var(--color-accent-700);color:#fff;opacity:1}.concept-lesson .stk-plate{position:relative;z-index:1;display:grid;gap:2px;align-content:center;justify-items:center;width:min(160px,70%);padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);box-shadow:0 2px 0 color-mix(in srgb, var(--color-divider) 80%, transparent);transition:opacity .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease}.concept-lesson .stk-plate small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .stk-plate strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .stk-plate.is-empty{opacity:0;pointer-events:none;transform:translateY(12px)}.concept-lesson .stk-plate.is-top{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent),0 3px 0 color-mix(in srgb, var(--color-accent-700) 25%, transparent)}.concept-lesson .stk-plate.is-pushing,.concept-lesson .stk-plate.is-popping{z-index:3}.concept-lesson .stk-base{display:grid;place-items:center;width:min(180px,78%);margin:0 auto;padding:6px 10px;border:1px dashed var(--color-divider);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-surface) 60%, var(--color-bg));color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.concept-lesson .stk-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .stk-status span{color:var(--color-accent-700)}.concept-lesson .stk-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .stk-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .stk-memory-label{color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.concept-lesson .stk-call{display:grid;gap:10px;min-height:200px;padding:10px;border:1px dashed var(--color-divider);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 70%, var(--color-bg))}.concept-lesson .stk-call-well{display:flex;flex-direction:column-reverse;gap:8px;align-items:stretch;justify-content:flex-start;min-height:150px}.concept-lesson .stk-call-frame{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,opacity .2s ease}.concept-lesson .stk-call-frame small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .stk-call-frame strong{font-family:var(--font-heading);font-size:15px;font-weight:600;line-height:1.25}.concept-lesson .stk-call-frame.is-ghost{opacity:.45;border-style:dashed}.concept-lesson .stk-call-frame.is-hidden{opacity:0;pointer-events:none;max-height:0;margin:0;padding-top:0;padding-bottom:0;border-width:0;overflow:hidden}.concept-lesson .stk-call-frame.is-active{opacity:1}.concept-lesson .stk-call-frame.is-top{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 40%, var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 28%, transparent)}.concept-lesson .stk-call-meta{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}.concept-lesson .stk-call-meta span{color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .stk-call-meta strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:14px;font-weight:600}@media(max-width: 720px){.concept-lesson .stk-dl{grid-template-columns:1fr 1fr}.concept-lesson .stk-plate{width:min(140px,80%)}}@media(prefers-reduced-motion: reduce){.concept-lesson .stk-plate,.concept-lesson .stk-call-frame,.concept-lesson .stk-top-badge{transition:none}.concept-lesson .stk-plate.is-empty{transform:none}}.que-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.que-demo:not(.algo-viz)>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.que-stage{overflow-x:auto;padding-bottom:2px}.que-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.que-status span{color:var(--color-accent-700)}.que-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.que-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.que-counter{display:grid;gap:4px;justify-items:center;width:fit-content;margin:0 auto 14px;padding:10px 18px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:linear-gradient(180deg, color-mix(in srgb, var(--color-accent-200) 55%, var(--color-bg)), var(--color-surface));box-shadow:inset 0 1px 0 color-mix(in srgb, #fff 40%, transparent);transition:border-color .25s ease,box-shadow .25s ease}.que-counter.is-busy{border-color:var(--color-accent-600);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 28%, transparent)}.que-counter span{color:var(--color-accent-700);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.que-counter strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:22px;font-weight:700;line-height:1;min-height:1em}.que-line{display:flex;gap:10px;align-items:center;width:max-content;min-width:100%;padding:8px 4px 4px}.que-end-label{flex:0 0 auto;color:var(--color-accent-700);font-family:var(--font-heading);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;writing-mode:vertical-rl;transform:rotate(180deg)}.que-people{display:flex;gap:8px;align-items:stretch;min-height:72px;padding:8px 10px;border:1px dashed var(--color-divider);border-radius:var(--radius-md);background:repeating-linear-gradient(90deg, transparent 0 18px, color-mix(in srgb, var(--color-divider) 35%, transparent) 18px 19px),color-mix(in srgb, var(--color-surface) 80%, var(--color-bg))}.que-person{position:relative;z-index:1;display:grid;gap:4px;align-content:center;justify-items:center;min-width:56px;padding:10px 8px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-neutral-800);transition:opacity .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease}.que-person small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.que-person strong{font-family:var(--font-heading);font-size:16px;font-weight:600;line-height:1}.que-person.is-front{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.que-person.is-back{border-style:dashed}.que-person.is-entering,.que-person.is-leaving{z-index:2}.que-ring{display:grid;gap:12px;min-height:140px}.que-ring-meta{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline}.que-ring-meta span{color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.que-ring-meta strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:14px;font-weight:600}.que-ring-slots{position:relative;display:flex;gap:8px;width:max-content;padding:28px 0 24px}.que-ring-slot{display:grid;gap:4px;align-content:center;justify-items:center;min-width:56px;padding:10px 8px;border:1px dashed var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-500);transition:opacity .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease}.que-ring-slot small{font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.que-ring-slot strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.que-ring-slot.is-filled{border-style:solid;border-color:var(--color-divider);background:var(--color-bg);color:var(--color-neutral-800)}.que-ring-slot.is-head{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 40%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 28%, transparent)}.que-ring-slot.is-tail:not(.is-head){border-color:#2f7d57;box-shadow:0 0 0 2px color-mix(in srgb, #2f7d57 28%, transparent)}.que-ring-marker{position:absolute;top:2px;left:0;z-index:2;display:grid;width:max-content;margin-left:-14px;place-items:center;padding:2px 6px;border-radius:999px;background:var(--color-accent-700);color:#fff;font-family:var(--font-heading);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;pointer-events:none;transform:translateX(0);transition:transform .35s cubic-bezier(0.22, 1, 0.36, 1)}.que-ring-marker.is-tail{top:auto;bottom:2px;background:#2f7d57}@media(max-width: 720px){.que-line{min-width:0}.que-end-label{writing-mode:horizontal-tb;transform:none}}@media(prefers-reduced-motion: reduce){.que-person,.que-ring-slot,.que-counter{transition:none}.que-ring-marker{transition:none}}.ht-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.ht-demo:not(.algo-viz)>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.ht-stage{overflow-x:auto;padding-bottom:2px}.ht-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.ht-status span{color:var(--color-accent-700)}.ht-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.ht-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.ht-flow{display:grid;grid-template-columns:minmax(72px, 100px) minmax(88px, 120px) 24px minmax(0, 1fr);gap:10px;align-items:center;min-height:140px}.ht-key-rail{position:relative;display:grid;gap:10px;justify-items:start;min-height:88px}.ht-key{display:inline-grid;place-items:center;min-width:52px;padding:8px 10px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);font-family:var(--font-heading);font-size:14px;font-weight:600;opacity:.35;translate:0 4px;transition:opacity .25s ease,translate .25s ease,border-color .25s ease,background .25s ease}.ht-key.is-show,.ht-key.is-flying,.ht-key.is-done{opacity:1;translate:0 0}.ht-key.is-flying{z-index:3;border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 50%, var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 30%, transparent)}.ht-key.is-second{border-style:dashed}.ht-hash-box{display:grid;gap:4px;justify-items:center;padding:12px 10px;border:1px dashed var(--color-divider);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 70%, var(--color-bg));transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.ht-hash-box.is-pulse{border-style:solid;border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 40%, var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 28%, transparent)}.ht-hash-box small{color:var(--color-accent-700);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.ht-hash-box strong{font-family:var(--font-heading);font-size:20px;font-weight:600;line-height:1;color:var(--color-neutral-900)}.ht-arrow{position:relative;width:36px;height:2px;margin:18px auto 0;border-radius:999px;background:linear-gradient(90deg, var(--color-accent-600), #2f7d57);color:rgba(0,0,0,0);font-size:0}.ht-arrow::after{content:"";position:absolute;top:50%;right:-1px;width:8px;height:8px;border-right:2px solid #2f7d57;border-bottom:2px solid #2f7d57;transform:translateY(-50%) rotate(-45deg)}.ht-buckets{display:flex;gap:8px;align-items:stretch;width:max-content;min-height:96px}.ht-bucket{display:grid;grid-template-rows:auto 1fr;gap:6px;justify-items:center;min-width:64px;padding:8px 6px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);transition:opacity .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease}.ht-bucket small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.ht-bucket.is-dim{opacity:.4}.ht-bucket.is-active,.ht-bucket.is-hit{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.ht-chain{display:flex;flex-direction:column;gap:4px;align-items:stretch;width:100%;min-height:44px}.ht-chain.is-chained{gap:2px}.ht-entry{display:grid;place-items:center;padding:5px 4px;border-radius:4px;background:color-mix(in srgb, #2f7d57 18%, var(--color-bg));color:var(--color-neutral-900);font-family:var(--font-heading);font-size:11px;font-weight:600;line-height:1.2;text-align:center}.ht-chain.is-chained .ht-entry+.ht-entry{border-top:1px dashed color-mix(in srgb, #2f7d57 45%, var(--color-divider));border-top-left-radius:0;border-top-right-radius:0}.ht-memory-label{color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.ht-ram{display:grid;grid-template-columns:minmax(140px, 180px) 28px minmax(0, 1fr);gap:8px;align-items:stretch;min-height:180px}.ht-ram-column{display:grid;grid-template-rows:auto 1fr;gap:8px;min-width:0;padding:10px;border:1px dashed var(--color-divider);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 70%, var(--color-bg))}.ht-ram-stack-well{display:flex;flex-direction:column;gap:8px;justify-content:flex-end;min-height:130px}.ht-ram-frame{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,opacity .2s ease}.ht-ram-frame small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.ht-ram-frame strong{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;font-family:var(--font-heading);font-size:15px;font-weight:600;line-height:1.25}.ht-ram-frame strong span{color:var(--color-accent-800);font-size:13px}.ht-ram-frame.is-ghost{opacity:.45;border-style:dashed}.ht-ram-frame.is-hidden{opacity:0;pointer-events:none}.ht-ram-frame.is-active,.ht-ram-frame.is-linked{opacity:1;border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 40%, var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 28%, transparent)}.ht-ram-beam{align-self:center;height:3px;transform:scaleX(0);transform-origin:left center;opacity:.25}.ht-ram-beam.is-live{opacity:1}.ht-ram-beam-core{position:relative;display:block;width:100%;height:3px;border-radius:999px;background:linear-gradient(90deg, var(--color-accent-700), #2f7d57)}.ht-ram-beam-core::after{content:"";position:absolute;top:50%;right:-1px;width:8px;height:8px;border-right:2px solid #2f7d57;border-bottom:2px solid #2f7d57;transform:translateY(-50%) rotate(-45deg)}.ht-ram-beam.is-pulse .ht-ram-beam-core{animation:ht-beam-pulse .9s ease-in-out infinite}.ht-ram-heap-well{display:grid;gap:10px;align-content:center;min-height:130px}.ht-ram-buckets{display:flex;flex-wrap:wrap;gap:6px}.ht-ram-bucket{display:grid;gap:4px;justify-items:center;min-width:72px;max-width:120px;padding:8px 6px;border:1px dashed var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg);transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.ht-ram-bucket small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.ht-ram-bucket strong{color:var(--color-neutral-800);font-family:var(--font-heading);font-size:12px;font-weight:600;line-height:1.25;text-align:center;word-break:break-word}.ht-ram-bucket.is-live{border-style:solid;border-color:#2f7d57}.ht-ram-bucket.is-hot,.ht-ram-bucket.is-chained.is-hot{box-shadow:0 0 0 2px color-mix(in srgb, #2f7d57 35%, transparent);background:color-mix(in srgb, #8dd9b8 22%, var(--color-bg))}.ht-ram-meta{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}.ht-ram-meta span{color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.ht-ram-meta strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:14px;font-weight:600}@keyframes ht-beam-pulse{0%,100%{opacity:.55}50%{opacity:1}}@media(max-width: 720px){.ht-flow{grid-template-columns:1fr;justify-items:center;text-align:center}.ht-key-rail{justify-items:center;grid-auto-flow:column;min-height:0}.ht-arrow{transform:rotate(90deg)}.ht-ram{grid-template-columns:1fr;gap:10px}.ht-ram-beam{width:min(180px,50%);justify-self:center}}@media(prefers-reduced-motion: reduce){.ht-key,.ht-bucket,.ht-hash-box,.ht-ram-frame,.ht-ram-bucket{transition:none}.ht-ram-beam.is-pulse .ht-ram-beam-core{animation:none}}.concept-lesson .tr-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .tr-demo:not(.algo-viz)>figcaption{margin:0 0 8px;color:var(--color-accent-700);font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .tr-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .tr-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .tr-status span{color:var(--color-accent-700)}.concept-lesson .tr-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .tr-status span{font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .tr-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .tr-bin{position:relative;width:100%;min-width:260px;min-height:280px;aspect-ratio:5/3.4;max-width:440px;margin-inline:auto}.concept-lesson .tr-edges{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%;overflow:visible;pointer-events:none}.concept-lesson .tr-edge{fill:none;stroke:color-mix(in srgb, var(--color-accent-700) 55%, #2f7d57);stroke-width:2.25;stroke-linecap:round;opacity:0;visibility:hidden;transition:opacity .25s ease;vector-effect:non-scaling-stroke}.concept-lesson .tr-edge.is-on{opacity:1;visibility:visible}.concept-lesson .tr-edge.is-pulse{animation:tr-edge-pulse .9s ease-in-out infinite}.concept-lesson .tr-edge--grown{stroke-dasharray:5 4}.concept-lesson .tr-node{position:absolute;z-index:1;display:grid;gap:2px;justify-items:center;min-width:46px;padding:9px 11px;border:1px solid var(--color-divider);border-radius:999px;background:var(--color-surface);color:var(--color-neutral-800);opacity:0;translate:-50% -50%;transition:opacity .25s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease,color .2s ease}.concept-lesson .tr-node[data-tr-node=n8]{left:50%;top:14%}.concept-lesson .tr-node[data-tr-node=n3]{left:28%;top:42%}.concept-lesson .tr-node[data-tr-node=n10]{left:72%;top:42%}.concept-lesson .tr-node[data-tr-node=n1]{left:14%;top:72%}.concept-lesson .tr-node[data-tr-node=n6]{left:40%;top:72%}.concept-lesson .tr-node[data-tr-node=n14]{left:86%;top:72%}.concept-lesson .tr-node[data-tr-node=n7]{left:44%;top:92%}.concept-lesson .tr-bin--types{min-height:260px;aspect-ratio:5/3.1}.concept-lesson .tr-bin--types .tr-node--type{border-radius:var(--radius-md);min-width:96px;padding:8px 10px}.concept-lesson .tr-bin--types .tr-node--type strong{font-size:14px}.concept-lesson .tr-bin--types .tr-node[data-tr-node=root]{left:50%;top:12%}.concept-lesson .tr-bin--types .tr-node[data-tr-node=binary]{left:28%;top:42%}.concept-lesson .tr-bin--types .tr-node[data-tr-node=nary]{left:72%;top:42%}.concept-lesson .tr-bin--types .tr-node[data-tr-node=bst]{left:28%;top:78%}.concept-lesson .tr-bin--types .tr-node[data-tr-node=balanced]{left:72%;top:78%}.concept-lesson .tr-bin--types .tr-node.is-on,.concept-lesson .tr-bin--see .tr-node.is-on,.concept-lesson .tr-bin--ops .tr-node{opacity:1}.concept-lesson .tr-node.is-on{opacity:1}.concept-lesson .tr-node.is-hidden{display:none}.concept-lesson .tr-node.is-focus{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .tr-node.is-path{border-color:color-mix(in srgb, var(--color-accent-600) 70%, var(--color-divider));background:color-mix(in srgb, var(--color-accent-300) 22%, var(--color-bg))}.concept-lesson .tr-node.is-visited{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 35%, var(--color-bg))}.concept-lesson .tr-node.is-dim{opacity:.38}.concept-lesson .tr-node--grown{border-style:dashed}.concept-lesson .tr-node strong{font-family:var(--font-heading);font-size:16px;font-weight:600;line-height:1}.concept-lesson .tr-node small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .tr-memory-label{color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.concept-lesson .tr-ram{display:grid;grid-template-columns:minmax(140px, 180px) 28px minmax(0, 1fr);gap:8px;align-items:stretch;min-height:200px}.concept-lesson .tr-ram-column{display:grid;grid-template-rows:auto 1fr;gap:8px;min-width:0;padding:10px;border:1px dashed var(--color-divider);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 70%, var(--color-bg))}.concept-lesson .tr-ram-stack-well{display:flex;flex-direction:column;gap:8px;justify-content:flex-end;min-height:140px}.concept-lesson .tr-ram-frame{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,opacity .2s ease}.concept-lesson .tr-ram-frame small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .tr-ram-frame strong{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;font-family:var(--font-heading);font-size:15px;font-weight:600;line-height:1.25}.concept-lesson .tr-ram-frame strong span{color:var(--color-accent-800);font-size:13px}.concept-lesson .tr-ram-frame.is-ghost{opacity:.45;border-style:dashed}.concept-lesson .tr-ram-frame.is-hidden{opacity:0;pointer-events:none}.concept-lesson .tr-ram-frame.is-active,.concept-lesson .tr-ram-frame.is-linked{opacity:1;border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 40%, var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 28%, transparent)}.concept-lesson .tr-ram-beam{align-self:center;height:3px;transform:scaleX(0);transform-origin:left center;opacity:.25}.concept-lesson .tr-ram-beam.is-live{opacity:1}.concept-lesson .tr-ram-beam-core{position:relative;display:block;width:100%;height:3px;border-radius:999px;background:linear-gradient(90deg, var(--color-accent-700), #2f7d57)}.concept-lesson .tr-ram-beam-core::after{content:"";position:absolute;top:50%;right:-1px;width:8px;height:8px;border-right:2px solid #2f7d57;border-bottom:2px solid #2f7d57;transform:translateY(-50%) rotate(-45deg)}.concept-lesson .tr-ram-beam.is-pulse .tr-ram-beam-core{animation:tr-beam-pulse .9s ease-in-out infinite}.concept-lesson .tr-ram-heap-well{display:grid;gap:8px;align-content:start;min-height:140px}.concept-lesson .tr-heap-node{display:grid;gap:4px;padding:8px 10px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);opacity:0;transform:translateY(8px);transition:opacity .25s ease,transform .25s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease}.concept-lesson .tr-heap-node.is-on{opacity:1;transform:none;border-color:#2f7d57}.concept-lesson .tr-heap-node.is-focus{box-shadow:0 0 0 2px color-mix(in srgb, #2f7d57 35%, transparent);background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg))}.concept-lesson .tr-heap-node.is-hidden{display:none}.concept-lesson .tr-heap-node small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .tr-heap-node strong{font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .tr-heap-refs{display:flex;flex-wrap:wrap;gap:6px 12px}.concept-lesson .tr-heap-refs span{display:inline-flex;gap:4px;align-items:baseline;color:var(--color-neutral-600);font-family:var(--font-heading);font-size:11px}.concept-lesson .tr-heap-refs b{color:var(--color-accent-800);font-weight:600}.concept-lesson .tr-ram-meta{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:4px}.concept-lesson .tr-ram-meta span{color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .tr-ram-meta strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:14px;font-weight:600}@keyframes tr-beam-pulse{0%,100%{opacity:.55}50%{opacity:1}}@keyframes tr-edge-pulse{0%,100%{opacity:.45}50%{opacity:1}}@media(max-width: 720px){.concept-lesson .tr-ram{grid-template-columns:1fr;gap:10px}.concept-lesson .tr-ram-beam{width:min(180px,50%);justify-self:center}.concept-lesson .tr-bin{min-height:240px}.concept-lesson .tr-node{min-width:40px;padding:7px 9px}.concept-lesson .tr-node strong{font-size:14px}}@media(prefers-reduced-motion: reduce){.concept-lesson .tr-node,.concept-lesson .tr-heap-node,.concept-lesson .tr-ram-frame,.concept-lesson .tr-edge{transition:none}.concept-lesson .tr-ram-beam.is-pulse .tr-ram-beam-core,.concept-lesson .tr-edge.is-pulse{animation:none}}.concept-lesson .hp-demo.algo-viz>figcaption{color:#fff}.concept-lesson .hp-dual{display:grid;gap:14px;justify-items:center;width:100%}.concept-lesson .hp-dual .hp-tree{position:relative;display:block;width:100%;min-width:260px;min-height:220px;max-width:440px;aspect-ratio:5/3.2;margin-inline:auto;padding:8px 12px 4px}.concept-lesson .hp-dual .hp-node{position:absolute;translate:-50% -50%}.concept-lesson .hp-dual .hp-node[data-hp-node="0"]{left:50%;top:14%}.concept-lesson .hp-dual .hp-node[data-hp-node="1"]{left:28%;top:42%}.concept-lesson .hp-dual .hp-node[data-hp-node="2"]{left:72%;top:42%}.concept-lesson .hp-dual .hp-node[data-hp-node="3"]{left:14%;top:72%}.concept-lesson .hp-dual .hp-node[data-hp-node="4"]{left:40%;top:72%}.concept-lesson .hp-dual .hp-node[data-hp-node="5"]{left:60%;top:72%}.concept-lesson .hp-dual .hp-node[data-hp-node="6"]{left:86%;top:72%}.concept-lesson .hp-dual .hp-track{justify-content:center;width:100%;max-width:100%;padding-top:8px;border-top:1px dashed var(--color-divider)}.concept-lesson .hp-node.is-link,.concept-lesson .hp-cell.is-parent{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 30%, transparent)}.concept-lesson .hp-cell.is-child{border-color:var(--color-neutral-800);background:color-mix(in srgb, var(--color-neutral-300) 40%, var(--color-bg));color:var(--color-neutral-900)}.concept-lesson .hp-cell.is-swap{border-color:#b8860b;background:color-mix(in srgb, #e5c07b 32%, var(--color-bg));color:var(--color-neutral-900);box-shadow:0 0 0 2px color-mix(in srgb, #b8860b 35%, transparent)}.concept-lesson .hp-memory{display:grid;gap:12px;min-height:160px}.concept-lesson .hp-memory-label{color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.concept-lesson .hp-memory-binding,.concept-lesson .hp-memory-array{display:grid;gap:8px;min-width:0;padding:10px;border:1px dashed var(--color-divider);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 70%, var(--color-bg))}.concept-lesson .hp-memory-frame{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,opacity .2s ease}.concept-lesson .hp-memory-frame small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .hp-memory-frame strong{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;font-family:var(--font-heading);font-size:15px;font-weight:600;line-height:1.25}.concept-lesson .hp-memory-frame strong span{color:var(--color-accent-800);font-size:13px}.concept-lesson .hp-memory-frame.is-ghost{opacity:.45;border-style:dashed}.concept-lesson .hp-memory-frame.is-active{opacity:1;border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 40%, var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 28%, transparent)}.concept-lesson .hp-memory-array .hp-track{width:100%;max-width:100%;justify-content:flex-start;flex-wrap:wrap}.concept-lesson .hp-memory-meta{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}.concept-lesson .hp-memory-meta span{color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .hp-memory-meta strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:14px;font-weight:600}@media(max-width: 720px){.concept-lesson .hp-dual .hp-tree{min-height:200px}.concept-lesson .hp-dual .hp-node,.concept-lesson .hp-dual .hp-cell{min-width:42px;padding:7px 5px}.concept-lesson .hp-dual .hp-node strong,.concept-lesson .hp-dual .hp-cell strong{font-size:14px}}.concept-lesson .gr-demo figcaption,.concept-lesson .gr-demo-caption,.concept-lesson .gr-status span{font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .gr-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .gr-demo:not(.algo-viz)>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .gr-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .gr-svg{display:block;width:100%;max-width:420px;height:auto;margin-inline:auto}.concept-lesson .gr-edge{fill:none;stroke:var(--color-divider);stroke-width:2.5;stroke-linecap:round;opacity:0;transition:stroke .25s ease,opacity .25s ease}.concept-lesson .gr-edge.is-on{opacity:1;stroke:color-mix(in srgb, var(--color-accent-700) 75%, #2f7d57)}.concept-lesson .gr-edge.is-active{opacity:1;stroke:var(--color-accent-700);stroke-width:3.5;filter:drop-shadow(0 0 4px color-mix(in srgb, var(--color-accent-500) 55%, transparent))}.concept-lesson .gr-edge.is-dim{opacity:.2}.concept-lesson .gr-node{transform-box:fill-box;transform-origin:center}.concept-lesson .gr-node circle{fill:var(--color-surface);stroke:var(--color-divider);stroke-width:2;transition:fill .2s ease,stroke .2s ease,filter .2s ease}.concept-lesson .gr-node text{fill:var(--color-neutral-700);font-family:var(--font-heading);font-size:13px;font-weight:700;pointer-events:none;transition:fill .2s ease}.concept-lesson .gr-node.is-on circle{stroke:color-mix(in srgb, var(--color-accent-600) 55%, var(--color-divider))}.concept-lesson .gr-node.is-focus circle,.concept-lesson .gr-node.is-visit circle{fill:color-mix(in srgb, var(--color-accent-300) 55%, var(--color-bg));stroke:var(--color-accent-700);filter:drop-shadow(0 0 6px color-mix(in srgb, var(--color-accent-500) 45%, transparent))}.concept-lesson .gr-node.is-focus text,.concept-lesson .gr-node.is-visit text{fill:var(--color-accent-900)}.concept-lesson .gr-node.is-dim{opacity:.35}.concept-lesson .gr-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .gr-status span{color:var(--color-accent-700)}.concept-lesson .gr-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .gr-status strong{text-transform:none;letter-spacing:normal}.concept-lesson .gr-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35;text-transform:none;font-weight:500}.concept-lesson .gr-memory{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1.1fr);gap:12px;align-items:start}.concept-lesson .gr-memory-pane{display:grid;gap:8px;min-width:0;padding:10px;border:1px dashed var(--color-divider);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 70%, var(--color-bg))}.concept-lesson .gr-memory-label{color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.concept-lesson .gr-adj{display:grid;gap:6px}.concept-lesson .gr-adj-row{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:center;padding:7px 8px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg);transition:border-color .2s ease,background .2s ease}.concept-lesson .gr-adj-row.is-hot{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 35%, var(--color-bg))}.concept-lesson .gr-adj-row strong{font-family:var(--font-heading);font-size:15px;font-weight:700;color:var(--color-neutral-800)}.concept-lesson .gr-adj-row span{color:var(--color-neutral-600);font-family:var(--font-heading);font-size:13px;font-weight:600}.concept-lesson .gr-matrix{display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));gap:4px;align-items:stretch}.concept-lesson .gr-matrix-corner{min-height:28px}.concept-lesson .gr-matrix-head{display:grid;place-items:center;min-height:28px;color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:700;letter-spacing:.06em}.concept-lesson .gr-matrix-cell{display:grid;place-items:center;min-height:32px;border:1px solid var(--color-divider);border-radius:6px;background:var(--color-bg);color:var(--color-neutral-500);font-family:var(--font-heading);font-size:14px;font-weight:600;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}.concept-lesson .gr-matrix-cell.is-on{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));color:var(--color-accent-900)}.concept-lesson .gr-matrix-cell.is-hot{box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}@media(max-width: 640px){.concept-lesson .gr-memory{grid-template-columns:1fr}}@media(prefers-reduced-motion: reduce){.concept-lesson .gr-node,.concept-lesson .gr-edge,.concept-lesson .gr-matrix-cell,.concept-lesson .gr-adj-row{transition:none}}.concept-lesson .te-demo{min-width:0;margin:0;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg)}.concept-lesson .te-demo:not(.algo-viz)>figcaption{margin:0 0 8px;color:var(--color-accent-700)}.concept-lesson .te-stage{overflow-x:auto;padding-bottom:2px}.concept-lesson .te-status{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:6px}.concept-lesson .te-status span{color:var(--color-accent-700)}.concept-lesson .te-status strong{color:var(--color-neutral-900);font-family:var(--font-heading);font-size:16px;font-weight:600}.concept-lesson .te-demo-caption{margin:6px 0 0;color:var(--color-neutral-600);font-size:11px;letter-spacing:.06em;line-height:1.35}.concept-lesson .te-bin{position:relative;width:100%;min-width:220px;min-height:260px;aspect-ratio:5/3.6;max-width:360px;margin-inline:auto}.concept-lesson .te-edges{position:absolute;inset:0;z-index:0;overflow:visible;pointer-events:none}.concept-lesson .te-edge{fill:none;stroke:color-mix(in srgb, var(--color-accent-700) 55%, #2f7d57);stroke-width:2.25;stroke-linecap:round;opacity:0;visibility:hidden;transition:opacity .25s ease;vector-effect:non-scaling-stroke}.concept-lesson .te-edge.is-on{opacity:1;visibility:visible}.concept-lesson .te-edge.is-pulse{animation:te-edge-pulse .9s ease-in-out infinite}.concept-lesson .te-edge-label{position:absolute;z-index:2;translate:-50% -50%;padding:0 4px;border-radius:4px;background:var(--color-bg);color:var(--color-neutral-500);font-family:var(--font-heading);font-size:11px;font-weight:700;letter-spacing:.04em;opacity:0;pointer-events:none;transition:opacity .25s ease,color .2s ease}.concept-lesson .te-edge-label.is-on{opacity:1;color:var(--color-accent-700)}.concept-lesson .te-edge-label[data-te-label=root-c]{left:50%;top:23%}.concept-lesson .te-edge-label[data-te-label=c-a]{left:50%;top:45%}.concept-lesson .te-edge-label[data-te-label=a-t]{left:38%;top:69%}.concept-lesson .te-edge-label[data-te-label=a-r]{left:62%;top:69%}.concept-lesson .te-node{position:absolute;z-index:1;display:grid;gap:2px;justify-items:center;min-width:44px;padding:8px 10px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);opacity:0;translate:-50% -50%;transition:opacity .25s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease,color .2s ease}.concept-lesson .te-node[data-te-node=root]{left:50%;top:12%}.concept-lesson .te-node[data-te-node=c]{left:50%;top:34%}.concept-lesson .te-node[data-te-node=a]{left:50%;top:56%}.concept-lesson .te-node[data-te-node=t]{left:32%;top:82%}.concept-lesson .te-node[data-te-node=r]{left:68%;top:82%}.concept-lesson .te-node.is-on{opacity:1}.concept-lesson .te-node.is-lit{border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 45%, var(--color-bg));color:var(--color-accent-900);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 35%, transparent)}.concept-lesson .te-node.is-end-on{border-color:#2f7d57;box-shadow:0 0 0 2px color-mix(in srgb, #2f7d57 32%, transparent)}.concept-lesson .te-node.is-end-on small{color:#2f7d57}.concept-lesson .te-node strong{font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1}.concept-lesson .te-node small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .te-root{min-width:56px}.concept-lesson .te-memory-label{color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.concept-lesson .te-ram{display:grid;grid-template-columns:minmax(140px, 180px) 28px minmax(0, 1fr);gap:8px;align-items:stretch;min-height:200px}.concept-lesson .te-ram-column{display:grid;grid-template-rows:auto 1fr;gap:8px;min-width:0;padding:10px;border:1px dashed var(--color-divider);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 70%, var(--color-bg))}.concept-lesson .te-ram-stack-well{display:flex;flex-direction:column;gap:8px;justify-content:flex-end;min-height:140px}.concept-lesson .te-ram-frame{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-neutral-800);transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,opacity .2s ease}.concept-lesson .te-ram-frame small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .te-ram-frame strong{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;font-family:var(--font-heading);font-size:15px;font-weight:600;line-height:1.25}.concept-lesson .te-ram-frame strong span{color:var(--color-accent-800);font-size:13px}.concept-lesson .te-ram-frame.is-ghost{opacity:.45;border-style:dashed}.concept-lesson .te-ram-frame.is-hidden{opacity:0;pointer-events:none}.concept-lesson .te-ram-frame.is-active,.concept-lesson .te-ram-frame.is-linked{opacity:1;border-color:var(--color-accent-600);background:color-mix(in srgb, var(--color-accent-300) 40%, var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-500) 28%, transparent)}.concept-lesson .te-ram-beam{align-self:center;height:3px;transform:scaleX(0);transform-origin:left center;opacity:.25}.concept-lesson .te-ram-beam.is-live{opacity:1}.concept-lesson .te-ram-beam-core{position:relative;display:block;width:100%;height:3px;border-radius:999px;background:linear-gradient(90deg, var(--color-accent-700), #2f7d57)}.concept-lesson .te-ram-beam-core::after{content:"";position:absolute;top:50%;right:-1px;width:8px;height:8px;border-right:2px solid #2f7d57;border-bottom:2px solid #2f7d57;transform:translateY(-50%) rotate(-45deg)}.concept-lesson .te-ram-beam.is-pulse .te-ram-beam-core{animation:te-beam-pulse .9s ease-in-out infinite}.concept-lesson .te-ram-heap-well{display:grid;gap:8px;align-content:start;min-height:140px}.concept-lesson .te-heap-node{display:grid;grid-template-columns:auto 1fr auto;gap:6px 10px;align-items:baseline;padding:8px 10px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);transition:opacity .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease}.concept-lesson .te-heap-node.is-hidden{opacity:0;pointer-events:none;max-height:0;padding-top:0;padding-bottom:0;margin:0;border-width:0;overflow:hidden}.concept-lesson .te-heap-node.is-live{opacity:1}.concept-lesson .te-heap-node.is-hot{border-color:#2f7d57;background:color-mix(in srgb, #8dd9b8 28%, var(--color-bg));box-shadow:0 0 0 2px color-mix(in srgb, #2f7d57 28%, transparent)}.concept-lesson .te-heap-node small{color:var(--color-neutral-500);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.concept-lesson .te-heap-node code{color:var(--color-neutral-600);font-size:12px}.concept-lesson .te-heap-node strong{color:var(--color-accent-900);font-family:var(--font-heading);font-size:13px;font-weight:600}@keyframes te-beam-pulse{0%,100%{opacity:.55}50%{opacity:1}}@keyframes te-edge-pulse{0%,100%{opacity:.45}50%{opacity:1}}@media(max-width: 720px){.concept-lesson .te-bin{min-height:240px}.concept-lesson .te-node{min-width:40px;padding:7px 9px}.concept-lesson .te-node strong{font-size:16px}.concept-lesson .te-ram{grid-template-columns:1fr;gap:10px}.concept-lesson .te-ram-beam{width:min(180px,50%);justify-self:center}}@media(prefers-reduced-motion: reduce){.concept-lesson .te-node,.concept-lesson .te-edge,.concept-lesson .te-edge-label,.concept-lesson .te-ram-frame,.concept-lesson .te-heap-node{transition:none}.concept-lesson .te-edge.is-pulse{animation:none}.concept-lesson .te-ram-beam.is-pulse .te-ram-beam-core{animation:none}}.algorithm-guide{max-width:980px;margin:0 auto;padding-bottom:24px}.algorithm-section+.algorithm-section{margin-top:clamp(56px,9vw,96px);padding-top:clamp(40px,6vw,64px);border-top:1px solid var(--color-divider)}.algorithm-section-number{display:block;color:var(--color-accent-700);font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.algorithm-section h2{max-width:780px;margin:12px 0 18px;font-family:var(--font-heading);font-size:clamp(28px,5vw,44px);font-weight:var(--font-heading-weight);line-height:1.05;text-transform:uppercase;text-wrap:balance}.algorithm-section h3{margin:28px 0 12px;font-family:var(--font-heading);font-size:14px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.algorithm-description{margin:0;color:var(--color-neutral-800);font-size:clamp(17px,2.5vw,20px);line-height:1.7;text-wrap:pretty}.algo-hint{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--color-accent)}.algorithm-guide sup{font-size:.72em;line-height:0;vertical-align:super}.algorithm-guide sub{font-size:.72em;line-height:0;vertical-align:sub}.algorithm-term-definitions{margin-top:14px;padding:12px 14px;border:1px solid color-mix(in srgb, var(--color-accent) 35%, var(--color-divider));border-left:3px solid var(--color-accent);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-accent-100) 30%, var(--color-surface))}.algorithm-term-definitions h3{margin:0 0 8px;color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.algorithm-term-definitions dl{display:grid;grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));gap:8px 24px;margin:0}.algorithm-term-definitions dt{margin:0 0 2px;color:var(--color-accent-900);font-family:var(--font-heading);font-size:.82rem;font-weight:600;text-transform:capitalize}.algorithm-term-definitions dd{margin:0;color:var(--color-neutral-800);font-size:.84rem;line-height:1.45}.algorithm-define-grid{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1.15fr);gap:12px;align-items:start;margin-top:18px}.algorithm-define-col{min-width:0;padding:12px 14px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface)}.algorithm-constraints-panel{border-left:3px solid var(--color-neutral-500)}.algorithm-define-col h3{margin:0 0 8px;font-size:11px;letter-spacing:.14em}.algorithm-constraints{margin:0;padding:0;list-style:none;color:var(--color-neutral-800)}.algorithm-constraints li{position:relative;padding:4px 0 4px 12px;border-bottom:1px solid color-mix(in srgb, var(--color-divider) 70%, transparent);font-family:var(--font-heading);font-size:.82rem;line-height:1.35}.algorithm-constraints li::before{content:"";position:absolute;top:.7em;left:0;width:4px;height:4px;background:var(--color-accent)}.algorithm-constraints li:last-child{padding-bottom:0;border-bottom:0}.algorithm-example{border-left:3px solid var(--color-accent)}.algorithm-example-io{display:grid;grid-template-columns:minmax(0, 1.4fr) minmax(0, 0.8fr);gap:8px}.algorithm-example-pair,.algorithm-example-explanation{display:grid;gap:3px;min-width:0;padding:8px 10px;border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-accent-100) 35%, var(--color-bg))}.algorithm-example-label{color:var(--color-neutral-600);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.algorithm-example-io code{overflow-wrap:anywhere;color:var(--color-accent-900);font-family:var(--font-heading);font-size:.84rem;line-height:1.35}.algorithm-example-explanation{margin:8px 0 0;color:var(--color-neutral-700);font-size:.84rem;line-height:1.4}.algo-viz{overflow:hidden;margin:8px 0 0;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:linear-gradient(color-mix(in srgb, var(--color-accent) 8%, transparent) 1px, transparent 1px),linear-gradient(90deg, color-mix(in srgb, var(--color-accent) 8%, transparent) 1px, transparent 1px),var(--color-surface);background-size:24px 24px;box-shadow:var(--shadow-md)}.algo-viz>figcaption{padding:13px 18px;background:var(--color-accent-900);color:var(--color-accent-100);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.algo-viz-stage{position:relative;overflow-x:auto;padding:22px 18px 8px}.algo-viz-track{position:relative;display:flex;gap:10px;align-items:stretch;min-height:84px;width:max-content;min-width:100%;padding:8px 2px}.algo-viz-cell{position:relative;z-index:1;display:flex;min-width:68px;flex:1 1 0;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 10px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg);transition:opacity 200ms ease,border-color 200ms ease,background-color 200ms ease,transform 200ms ease}.algo-viz-cell small{color:var(--color-neutral-600);font-family:var(--font-heading);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.algo-viz-cell strong{font-family:var(--font-heading);font-size:1.1rem;font-weight:600;line-height:1}.algo-viz-cell.is-in{border-color:color-mix(in srgb, var(--color-accent) 55%, var(--color-divider));background:color-mix(in srgb, var(--color-accent) 14%, var(--color-bg));transform:translateY(-2px)}.algo-viz-cell.is-dim{opacity:.42}.algo-viz-frame{position:absolute;top:0;left:0;z-index:0;box-sizing:border-box;border:2px solid var(--color-accent);border-radius:var(--radius-md);pointer-events:none}.algo-viz-status{display:flex;gap:10px;align-items:baseline;margin:0;padding:0 18px;font-size:.95rem}.algo-viz-status span{color:var(--color-neutral-600);font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.algo-viz-status strong{font-family:var(--font-heading);font-weight:600}.algo-viz-note{margin:8px 0 0;padding:0 18px 14px;color:var(--color-neutral-700);line-height:1.55}.algo-viz-detail{margin:0 18px 14px;padding:12px 14px;border:1px solid var(--color-divider);border-left:3px solid var(--color-accent);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-accent) 5%, var(--color-bg))}.algo-viz-detail h4{margin:0 0 6px;color:var(--color-neutral-600);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.algo-viz-detail-body{overflow-x:auto;margin:0;color:var(--color-neutral-800);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.algorithm-walkthrough .algorithm-section-lede{margin:0 0 12px}.algo-viz-code{display:grid;gap:0;margin:0 18px 12px;padding:8px 10px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:#15202b;color:var(--color-accent-100);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.4;overflow-x:auto}.algo-viz-code-line{padding:0 4px;border-radius:2px;white-space:pre;transition:opacity .2s ease,background .2s ease}.algo-viz-code-line.is-dim{opacity:.34}.algo-viz-code-line.is-active{opacity:1;background:color-mix(in srgb, var(--color-accent-400) 22%, transparent)}.algo-viz-code-line code{background:rgba(0,0,0,0);color:inherit;font:inherit;padding:0}.algo-viz-controls{display:flex;align-items:center;gap:14px;margin:0 18px 18px}.algo-viz-step{appearance:none;padding:8px 14px;border:1px solid var(--color-divider);border-radius:4px;background:var(--color-surface);color:var(--color-neutral-800);cursor:pointer;font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.algo-viz-step:hover:not(:disabled),.algo-viz-step:focus-visible:not(:disabled){border-color:var(--color-accent-500);color:var(--color-accent-900);outline:none}.algo-viz-step:disabled{cursor:not-allowed;opacity:.4}.algo-viz-step-count{color:var(--color-neutral-600);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.algo-viz-guide{margin-top:18px}.algo-viz-guide h3{margin:0 0 10px;color:var(--color-accent-700);font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.algo-viz-guide-list{margin:0;padding:0;list-style:none;counter-reset:viz-step}.algo-viz-guide-list li{position:relative;counter-increment:viz-step;margin:0;padding:9px 0 9px 2.25rem;border-bottom:1px solid var(--color-divider);color:var(--color-neutral-800);font-size:.95rem;line-height:1.5}.algo-viz-guide-list li::before{content:counter(viz-step, decimal-leading-zero);position:absolute;top:.85em;left:0;color:var(--color-accent-700);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.06em}.algo-viz-guide-list li:last-child{padding-bottom:0;border-bottom:0}.algorithm-code{margin-top:8px}.algorithm-solution-actions{display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:flex-end;margin:0;padding:14px 16px;border-top:1px solid color-mix(in srgb, var(--color-accent-100) 12%, transparent);background:color-mix(in srgb, #0f1720 55%, #1d2d3d)}.algorithm-complexity dl{display:flex;gap:18px;margin:0}.algorithm-complexity dl>div{display:grid;gap:2px}.algorithm-complexity dt{color:color-mix(in srgb, var(--color-accent-100) 55%, transparent);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.algorithm-complexity dd{margin:0;color:var(--color-accent-100);font-family:var(--font-heading);font-size:14px;font-weight:600}.algorithm-test-table-wrap{overflow-x:auto;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface)}.algorithm-test-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.9rem}.algorithm-test-col-input{width:44%}.algorithm-test-col-expected{width:18%}.algorithm-test-col-covers{width:38%}.algorithm-test-table th,.algorithm-test-table td{padding:12px 14px;border-bottom:1px solid var(--color-divider);text-align:left;vertical-align:top}.algorithm-test-table thead th{border-bottom-color:color-mix(in srgb, var(--color-accent-100) 18%, transparent);background:var(--color-accent-900);color:var(--color-accent-100);font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;vertical-align:middle}.algorithm-test-table tbody tr:nth-child(even){background:color-mix(in srgb, var(--color-accent-100) 20%, transparent)}.algorithm-test-table tbody tr:hover{background:color-mix(in srgb, var(--color-accent) 9%, var(--color-surface))}.algorithm-test-table tbody tr:last-child td{border-bottom:0}.algorithm-test-table td{color:var(--color-neutral-800);line-height:1.45}.algorithm-test-table code{display:block;overflow-wrap:anywhere;color:var(--color-accent-900);font-family:var(--font-heading);font-size:.88rem;font-weight:500;line-height:1.45;white-space:pre-wrap}.algorithm-test-table td:last-child{color:var(--color-neutral-700);font-size:.88rem}.problem-card-difficulty{flex:none;padding:4px 8px;border:1px solid currentcolor;border-radius:var(--radius-md);font-family:var(--font-heading);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.problem-card-difficulty.is-easy{color:#287a57}.problem-card-difficulty.is-medium{color:#93630d}.problem-card-difficulty.is-hard{color:#a33d35}@media(max-width: 720px){.algorithm-define-grid,.algorithm-example-io{grid-template-columns:1fr}.algorithm-test-table{table-layout:auto}.algorithm-test-col-input,.algorithm-test-col-expected,.algorithm-test-col-covers{width:auto}.algorithm-test-table th,.algorithm-test-table td{min-width:140px}.algo-viz-cell{min-width:56px;padding:10px 6px}.algorithm-solution-actions{align-items:flex-start;flex-direction:column}}@media(prefers-reduced-motion: reduce){.algo-viz-cell{transition:none}}@keyframes problem-rise-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.problem-library{display:flex;max-width:980px;margin:0 auto;flex-direction:column;gap:48px;animation:problem-rise-in 320ms ease both}.problem-library-group{min-width:0}.problem-library-heading{display:flex;align-items:center;gap:16px;margin-bottom:18px}.problem-library-heading h2{margin:0;font-family:var(--font-heading);font-size:24px;font-weight:var(--font-heading-weight);letter-spacing:.04em;text-transform:uppercase}.problem-library-dot{width:10px;height:10px;flex:none;background:var(--color-accent)}.problem-library-dot.is-easy{background:#5f9e6e}.problem-library-dot.is-medium{background:#c08a3e}.problem-library-dot.is-hard{background:#a8555a}.problem-library-count{color:var(--color-neutral-600);font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.1em}.problem-library-rule{height:1px;flex:1;background:var(--color-divider)}.problem-card-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(min(320px, 100%), 1fr));gap:16px;margin:0;padding:0;list-style:none}.problem-card{min-width:0}.problem-card a{display:flex;height:100%;align-items:center;gap:18px;padding:18px 20px;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);color:inherit;text-decoration:none;transition:border-color 140ms ease,box-shadow 140ms ease,transform 140ms ease}.problem-card a:hover,.problem-card a:focus-visible{border-color:var(--color-accent);box-shadow:var(--shadow-md);outline:none;transform:translateY(-2px)}.problem-card-order{flex:none;color:var(--color-neutral-600);font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.1em}.problem-card-copy{min-width:0;flex:1}.problem-card h3{margin:0;font-family:var(--font-heading);font-size:18px;font-weight:600;line-height:1.2}.problem-card p{margin:3px 0 0;color:var(--color-neutral-700);font-size:14px;line-height:1.4}.problem-card-arrow{flex:none;color:var(--color-accent-700);font-size:16px}@media(prefers-reduced-motion: reduce){.problem-library{animation:none}.problem-card a{transition:none}.problem-card a:hover,.problem-card a:focus-visible{transform:none}}.concept-lesson .concept-code-file,.concept-lesson .concept-code-lang,.concept-lesson .concept-code-copy,.algorithm-guide .concept-code-file,.algorithm-guide .concept-code-lang,.algorithm-guide .concept-code-copy{font-family:var(--font-heading);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.concept-lesson .concept-code,.algorithm-guide .concept-code{overflow:hidden;margin:0;grid-column:1/-1;border:1px solid color-mix(in srgb, var(--color-accent-800) 80%, #000);border-radius:var(--radius-md);background:#15202b;box-shadow:var(--shadow-sm)}.concept-lesson .concept-code figcaption,.algorithm-guide .concept-code figcaption{display:grid;grid-template-columns:auto minmax(0, 1fr) auto;gap:12px;align-items:center;min-height:40px;padding:6px 10px 6px 12px;border-bottom:1px solid color-mix(in srgb, var(--color-accent-100) 12%, transparent);background:color-mix(in srgb, #0f1720 70%, #1d2d3d)}.concept-lesson .concept-code-chrome,.algorithm-guide .concept-code-chrome{display:flex;gap:6px;align-items:center}.concept-lesson .concept-code-dot,.algorithm-guide .concept-code-dot{width:9px;height:9px;border-radius:50%;background:color-mix(in srgb, var(--color-accent-100) 28%, transparent)}.concept-lesson .concept-code-dot:nth-child(1),.algorithm-guide .concept-code-dot:nth-child(1){background:#ef6b73}.concept-lesson .concept-code-dot:nth-child(2),.algorithm-guide .concept-code-dot:nth-child(2){background:#e5c07b}.concept-lesson .concept-code-dot:nth-child(3),.algorithm-guide .concept-code-dot:nth-child(3){background:#98c379}.concept-lesson .concept-code-meta,.algorithm-guide .concept-code-meta{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;min-width:0}.concept-lesson .concept-code-file,.algorithm-guide .concept-code-file{overflow:hidden;color:var(--color-accent-100);text-overflow:ellipsis;white-space:nowrap;letter-spacing:.08em}.concept-lesson .concept-code-lang,.algorithm-guide .concept-code-lang{color:color-mix(in srgb, var(--color-accent-100) 55%, transparent);letter-spacing:.1em}.concept-lesson .concept-code-copy,.algorithm-guide .concept-code-copy{padding:5px 9px;border:1px solid color-mix(in srgb, var(--color-accent-100) 28%, transparent);border-radius:4px;background:color-mix(in srgb, var(--color-accent-100) 8%, transparent);color:var(--color-accent-100);cursor:pointer;letter-spacing:.1em}.concept-lesson .concept-code-copy:hover,.concept-lesson .concept-code-copy:focus-visible,.algorithm-guide .concept-code-copy:hover,.algorithm-guide .concept-code-copy:focus-visible{border-color:var(--color-accent-300);background:color-mix(in srgb, var(--color-accent-300) 16%, transparent);outline:none}.concept-lesson .concept-code pre,.algorithm-guide .concept-code pre{overflow-x:auto;margin:0;padding:14px 16px;color:var(--color-accent-100);font-family:var(--font-heading);font-size:13px;line-height:1.65;tab-size:2}.concept-lesson .concept-code code,.algorithm-guide .concept-code code{white-space:pre}.concept-lesson .concept-code .hljs-keyword,.concept-lesson .concept-code .hljs-selector-tag,.concept-lesson .concept-code .hljs-literal,.algorithm-guide .concept-code .hljs-keyword,.algorithm-guide .concept-code .hljs-selector-tag,.algorithm-guide .concept-code .hljs-literal,.algo-viz-code .hljs-keyword,.algo-viz-code .hljs-selector-tag,.algo-viz-code .hljs-literal,.array-tip-snippet .hljs-keyword,.array-tip-snippet .hljs-selector-tag,.array-tip-snippet .hljs-literal{color:#f28ca0}.concept-lesson .concept-code .hljs-title,.concept-lesson .concept-code .hljs-title.function_,.concept-lesson .concept-code .hljs-built_in,.algorithm-guide .concept-code .hljs-title,.algorithm-guide .concept-code .hljs-title.function_,.algorithm-guide .concept-code .hljs-built_in,.algo-viz-code .hljs-title,.algo-viz-code .hljs-title.function_,.algo-viz-code .hljs-built_in,.array-tip-snippet .hljs-title,.array-tip-snippet .hljs-title.function_,.array-tip-snippet .hljs-built_in{color:#f6c768}.concept-lesson .concept-code .hljs-string,.concept-lesson .concept-code .hljs-attr,.algorithm-guide .concept-code .hljs-string,.algorithm-guide .concept-code .hljs-attr,.algo-viz-code .hljs-string,.algo-viz-code .hljs-attr,.array-tip-snippet .hljs-string,.array-tip-snippet .hljs-attr{color:#8dd9b8}.concept-lesson .concept-code .hljs-number,.concept-lesson .concept-code .hljs-variable,.algorithm-guide .concept-code .hljs-number,.algorithm-guide .concept-code .hljs-variable,.algo-viz-code .hljs-number,.algo-viz-code .hljs-variable,.algo-viz-code .hljs-template-variable,.array-tip-snippet .hljs-number,.array-tip-snippet .hljs-variable,.array-tip-snippet .hljs-template-variable{color:#a9c7ff}.concept-lesson .concept-code .hljs-type,.concept-lesson .concept-code .hljs-params,.algorithm-guide .concept-code .hljs-type,.algorithm-guide .concept-code .hljs-params,.algo-viz-code .hljs-type,.algo-viz-code .hljs-params,.array-tip-snippet .hljs-type,.array-tip-snippet .hljs-params{color:#c4b5fd}.concept-lesson .concept-code .hljs-comment,.algorithm-guide .concept-code .hljs-comment,.algo-viz-code .hljs-comment,.array-tip-snippet .hljs-comment{color:color-mix(in srgb, var(--color-accent-100) 48%, transparent)}