:root{--font:16px;--bg:#f4f8f8;--paper:#fff;--ink:#12333a;--muted:#627c82;--line:#d4e4e7;--teal:#078b98;--teal2:#13aaa8;--orange:#ed6a2f;--soft:#eaf4f5;--code:#0d1d21;--shadow:0 22px 65px rgba(17,52,58,.13)}html[data-theme=dark]{--bg:#061012;--paper:#0d1b1f;--ink:#e8f6f5;--muted:#91aaae;--line:#20383d;--teal:#32bec8;--teal2:#50d3cc;--orange:#ff8750;--soft:#13272b;--code:#071113;--shadow:0 22px 65px rgba(0,0,0,.42)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:var(--font)/1.63 Inter,Segoe UI,Arial,sans-serif}.reading-bar{position:fixed;z-index:100;top:0;left:0;width:0;height:3px;background:linear-gradient(90deg,var(--orange),var(--teal))}.topbar{height:72px;display:flex;justify-content:space-between;align-items:center;padding:0 22px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(16px);position:sticky;top:0;z-index:50}.brand{display:flex;gap:12px;align-items:center;color:var(--ink);text-decoration:none;letter-spacing:.08em}.brand-wave{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,var(--orange),var(--teal));color:#fff;font-size:27px}.brand span:last-child{display:flex;flex-direction:column}.brand small{font-size:.72rem;color:var(--muted);letter-spacing:0}.top-actions{display:flex;align-items:center;gap:7px}.top-btn,.font-box,.menu-btn{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:10px;padding:8px 11px;text-decoration:none;font:inherit;cursor:pointer;white-space:nowrap}.font-box{display:flex;padding:0;overflow:hidden}.font-box button{border:0;background:none;color:inherit;padding:8px;cursor:pointer}.font-box span{min-width:28px;text-align:center;padding:8px 0;color:var(--muted)}.menu-btn{display:none}.page-shell{display:grid;grid-template-columns:300px minmax(0,1fr);max-width:1720px;margin:auto}.side-nav{position:sticky;top:72px;height:calc(100vh - 72px);border-right:1px solid var(--line);padding:34px 24px;overflow:auto}.nav-head{font-size:.7rem;font-weight:900;letter-spacing:.18em;color:var(--muted);margin:0 12px 14px}.side-nav nav{display:flex;flex-direction:column}.side-nav nav a{color:var(--muted);text-decoration:none;border-left:3px solid transparent;padding:7px 12px;border-radius:0 10px 10px 0;font-size:.86rem}.side-nav nav a:hover,.side-nav nav a.active{color:var(--ink);background:var(--soft);border-left-color:var(--teal)}.nav-note{margin:22px 12px;padding:12px;background:var(--soft);border-radius:10px;color:var(--muted);font-size:.76rem}main{min-width:0}.lesson-section{max-width:1280px;margin:auto;padding:85px 5vw;border-bottom:1px solid var(--line)}.hero{max-width:none;min-height:660px;display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.8fr);align-items:center;gap:70px}.kicker{font-size:.75rem;font-weight:900;letter-spacing:.19em;color:var(--teal);margin-bottom:15px}.hero h1{font-size:clamp(3.2rem,6vw,6.5rem);line-height:.92;letter-spacing:-.06em;margin:0;max-width:800px}.lead{font-size:1.18rem;color:var(--muted);max-width:770px}.hero-actions,.finish-card>div{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}.primary-link,.secondary-link{display:inline-flex;align-items:center;padding:12px 17px;border-radius:11px;text-decoration:none;font-weight:750}.primary-link{background:var(--teal);color:#fff}.secondary-link{border:1px solid var(--line);color:var(--ink);background:var(--paper)}.hero-array{height:500px;position:relative;border:1px solid var(--line);border-radius:30px;background:radial-gradient(circle at 75% 18%,rgba(41,205,204,.28),transparent 38%),linear-gradient(145deg,var(--paper),var(--soft));box-shadow:var(--shadow);overflow:hidden}.array-chip{position:absolute;padding:15px 17px;border:1px solid var(--line);border-radius:14px;background:var(--paper);box-shadow:0 15px 35px rgba(22,59,64,.14)}.array-chip b{display:block;color:var(--orange);font-size:.72rem}.array-chip span{font:700 1rem/1.6 ui-monospace,monospace}.array-chip.scalar{left:9%;top:13%;transform:rotate(-4deg)}.array-chip.vector{right:7%;top:10%;transform:rotate(3deg)}.array-chip.matrix{left:30%;top:32%;transform:rotate(-1deg)}.hero-array svg{position:absolute;left:4%;right:4%;bottom:5%;width:92%;height:43%}.hero-array svg path{fill:none;stroke:var(--teal2);stroke-width:7;stroke-linecap:round}.hero-array svg circle{fill:var(--orange);stroke:var(--paper);stroke-width:4}.section-head{display:grid;grid-template-columns:60px minmax(0,1fr) auto;gap:18px;align-items:start;margin-bottom:38px}.section-head>span{font:900 .78rem ui-monospace,monospace;color:var(--teal);border-top:3px solid var(--teal);padding-top:8px}.section-head h2{font-size:clamp(2.1rem,4vw,4rem);line-height:1.02;letter-spacing:-.045em;margin:0}.section-head p{color:var(--muted);margin:9px 0 0;max-width:760px}.source-slide-btn{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:12px;padding:9px 11px;display:grid;grid-template-columns:auto auto;gap:0 7px;align-items:center;cursor:pointer}.source-slide-btn span:first-child{grid-row:1/3;color:var(--teal)}.source-slide-btn small{color:var(--muted);text-align:left}.split-story{display:grid;grid-template-columns:1fr 1fr;gap:22px}.named-box-demo,.shape-stage,.vector-builder,.spacing-demo,.matrix-index-demo,.diary-demo,.precedence-demo,.operation-demo,.broadcast-demo,.assembly-demo,.special-builder,.slice-demo,.flip-demo{border:1px solid var(--line);border-radius:22px;background:var(--paper);padding:25px;box-shadow:0 12px 35px rgba(21,56,61,.05)}.named-box-demo{display:flex;flex-direction:column;gap:13px}.named-box-demo input,.builder-controls input{border:2px solid var(--line);background:var(--bg);color:var(--ink);border-radius:10px;padding:13px;font:700 1.1rem ui-monospace,monospace}.name-rules{display:flex;flex-direction:column;gap:8px}.name-rules span{color:var(--muted);padding:7px 10px;border-radius:8px;background:var(--soft)}.name-rules span.ok{color:#14885d;background:rgba(26,179,117,.11)}.name-rules span.bad{color:#ce4c38;background:rgba(223,77,54,.11)}#nameVerdict{font-weight:800;font-size:1.1rem}.explain-stack{display:grid;gap:12px}.explain-stack article,.concept-grid article,.three-way article{border:1px solid var(--line);border-radius:15px;padding:17px;background:var(--paper)}.explain-stack h3,.three-way h3{margin:0 0 7px}.explain-stack p,.concept-grid p,.three-way p{margin:0;color:var(--muted)}.concept-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.concept-grid b{font-size:1.1rem}.shape-controls,.spacing-toolbar,.op-toolbar,.broadcast-controls,.assembly-controls,.special-controls,.slice-controls,.flip-controls{display:flex;gap:8px;flex-wrap:wrap}.shape-controls button,.spacing-toolbar button,.op-toolbar button,.broadcast-controls button,.assembly-controls button,.special-controls button,.slice-controls button,.flip-controls button,.diary-console button{border:1px solid var(--line);background:var(--soft);color:var(--ink);border-radius:9px;padding:8px 11px;cursor:pointer}.shape-controls button.active,.spacing-toolbar button.active,.op-toolbar button.active,.broadcast-controls button.active,.assembly-controls button.active,.special-controls button.active,.slice-controls button.active,.flip-controls button.active{background:var(--teal);color:#fff;border-color:var(--teal)}.shape-canvas{min-height:210px;display:grid;place-items:center;margin:20px 0}.shape-array{display:grid;gap:6px}.shape-array i,.vector-tiles i,.mini-matrix i,.matrix-grid button,.special-matrix i{display:grid;place-items:center;min-width:48px;min-height:48px;border:1px solid var(--line);background:var(--soft);border-radius:8px;font-style:normal;font-family:ui-monospace,monospace;font-weight:800}.shape-array.scalar{grid-template-columns:48px}.shape-array.row{grid-template-columns:repeat(4,48px)}.shape-array.column{grid-template-columns:48px}.shape-array.matrix{grid-template-columns:repeat(4,48px)}#shapeExplanation{text-align:center;color:var(--muted)}.builder-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.builder-controls label{display:flex;flex-direction:column;gap:5px;color:var(--muted)}.colon-expression{display:flex;align-items:center;gap:20px;margin:25px 0}.colon-expression span{font:900 1.6rem ui-monospace,monospace;color:var(--orange)}.colon-expression small{color:var(--muted)}.vector-tiles{display:flex;gap:7px;flex-wrap:wrap}.vector-tiles i{animation:pop .25s both}@keyframes pop{from{transform:translateY(8px);opacity:0}}.three-way{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.three-way code,.precedence-demo code,.operation-demo>code{display:block;font:800 1rem ui-monospace,monospace;color:var(--orange);margin:9px 0}.spacing-toolbar{align-items:center}.spacing-toolbar label{display:flex;align-items:center;gap:8px;margin-right:auto}.number-line{height:125px;position:relative;margin:25px 0 5px;border-bottom:3px solid var(--line)}.number-line i{position:absolute;bottom:-8px;width:16px;height:16px;border-radius:50%;background:var(--teal);transform:translateX(-50%)}.number-line i b{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);font-size:.65rem;color:var(--muted)}.gap-bars{height:110px;display:flex;align-items:end;gap:8px}.gap-bars i{flex:1;background:linear-gradient(var(--teal2),var(--teal));border-radius:6px 6px 0 0;min-height:5px}.spacing-demo>p,.operation-demo>p,.broadcast-demo>p,.assembly-demo>p,.special-builder>p,.slice-demo>p,.flip-demo>p{color:var(--muted)}.matrix-index-demo{display:grid;grid-template-columns:auto 1fr;gap:35px;align-items:center}.matrix-labels.top{display:grid;grid-template-columns:repeat(3,58px);margin-left:32px}.matrix-labels.side{display:grid;grid-template-rows:repeat(4,58px);width:28px}.matrix-labels i{display:grid;place-items:center;color:var(--muted);font-style:normal}.matrix-with-rows{display:flex}.matrix-grid{display:grid;grid-template-columns:repeat(3,58px);gap:4px}.matrix-grid button{min-width:58px;min-height:58px;color:var(--ink);cursor:pointer}.matrix-grid button.active{background:var(--orange);color:#fff;border-color:var(--orange)}.index-readout code{font:900 1.5rem ui-monospace,monospace;color:var(--teal)}.index-readout strong{display:block;font-size:4rem;color:var(--orange);line-height:1}.index-readout p{color:var(--muted)}.diary-demo{display:grid;grid-template-columns:1fr 1fr;gap:15px}.diary-console,.diary-file{border:1px solid var(--line);border-radius:13px;overflow:hidden}.diary-console{padding:14px;background:var(--code);color:#d7f1ef}.diary-console pre,.diary-file pre{min-height:130px;white-space:pre-wrap;font:600 .9rem/1.6 ui-monospace,monospace}.diary-file>div{padding:9px 13px;background:var(--soft);font-weight:800}.diary-file pre{margin:0;padding:14px}.operator-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin-bottom:18px}.operator-strip span{border:1px solid var(--line);background:var(--paper);border-radius:13px;padding:12px;text-align:center;color:var(--muted)}.operator-strip b{display:block;font-size:1.7rem;color:var(--teal)}.precedence-demo code{font-size:1.3rem}.precedence-demo>div{display:flex;gap:8px;flex-wrap:wrap}.precedence-demo button{border:1px solid var(--line);background:var(--soft);color:var(--ink);border-radius:8px;padding:8px;cursor:pointer}.precedence-demo button.active{background:var(--teal);color:#fff}.precedence-demo strong{display:block;margin-top:18px;font:900 1.8rem ui-monospace,monospace;color:var(--orange)}.op-toolbar{align-items:center}.op-toolbar input{margin-left:auto}.op-matrices,.broadcast-stage,.slice-stage{display:flex;align-items:center;justify-content:center;gap:20px;margin:28px 0;flex-wrap:wrap}.op-matrices>div{text-align:center}.mini-matrix{display:grid;grid-template-columns:repeat(2,54px);gap:4px}.mini-matrix.three{grid-template-columns:repeat(3,48px)}.mini-matrix i.hi{background:var(--orange);color:#fff;border-color:var(--orange)}.op-symbol{font-size:2rem}.transpose-demo{display:flex;align-items:center;justify-content:center;gap:28px;margin:25px 0}.transpose-card{border:1px solid var(--line);border-radius:16px;padding:20px;background:var(--paper);min-width:210px}.transpose-card>span{font-family:ui-monospace,monospace;color:var(--muted)}.row-vector,.column-vector{display:flex;gap:5px;margin-top:12px}.column-vector{flex-direction:column;align-items:start;transition:.5s}.row-vector i,.column-vector i{width:47px;height:47px;display:grid;place-items:center;background:var(--soft);border:1px solid var(--line);border-radius:7px;font-style:normal;font-weight:800}.transpose-demo button{width:85px;height:85px;border-radius:50%;border:1px solid var(--line);background:var(--teal);color:#fff;cursor:pointer}.broadcast-stage>span,.slice-stage>span{font-size:2rem}.broadcast-addend{display:grid;gap:4px}.assembly-stage{min-height:240px;display:grid;place-items:center}.array-block{display:grid;gap:4px;position:relative}.array-block i{display:grid;place-items:center;min-width:45px;height:45px;border-radius:7px;background:var(--soft);border:1px solid var(--line);font-style:normal;font-family:ui-monospace,monospace}.assembly-group{display:flex;align-items:center;gap:22px}.assembly-group.vertical{flex-direction:column}.assembly-arrow{font-size:2rem;color:var(--teal)}.special-builder{margin-top:18px}.special-matrix{display:grid;gap:4px;justify-content:center;margin:25px}.slice-result-vector{display:flex;gap:4px}.slice-result-vector i{display:grid;place-items:center;width:48px;height:48px;background:var(--soft);border:1px solid var(--line);border-radius:7px;font-style:normal}.slice-result-matrix{display:grid;grid-template-columns:repeat(2,48px);gap:4px}.slice-result-matrix i{display:grid;place-items:center;height:48px;background:var(--soft);border:1px solid var(--line);border-radius:7px;font-style:normal}.flip-demo .mini-matrix{margin:25px auto}.summary-flow{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.summary-flow div{width:165px;min-height:120px;border:1px solid var(--line);border-radius:15px;background:var(--paper);padding:16px;text-align:center}.summary-flow b{width:34px;height:34px;margin:auto auto 10px;display:grid;place-items:center;border-radius:50%;background:var(--teal);color:#fff}.summary-flow i{font-style:normal;color:var(--teal);font-size:1.6rem}.finish-card{margin-top:35px;padding:35px;border-radius:22px;background:linear-gradient(135deg,var(--paper),var(--soft));border:1px solid var(--line)}.finish-card h3{font-size:1.8rem;margin:0}.finish-card p{color:var(--muted)}
/* Labs */.matlab-lab{margin:25px 0;border-radius:22px;overflow:hidden;border:1px solid color-mix(in srgb,var(--teal) 45%,var(--line));background:var(--paper);box-shadow:var(--shadow)}.lab-header{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:15px 17px;background:linear-gradient(90deg,#087b8b,#07969d);color:#fff}.lab-header h3{margin:0}.lab-header small{opacity:.82}.lab-actions{display:flex;gap:7px;flex-wrap:wrap}.lab-actions button,.lab-collapse{border:1px solid rgba(255,255,255,.34);background:rgba(255,255,255,.12);color:#fff;border-radius:8px;padding:7px 10px;cursor:pointer}.lab-actions button:disabled{opacity:.45}.lab-body{display:flex;height:380px}.lab-pane{min-width:0;flex:1;display:flex;flex-direction:column}.lab-code-pane{flex-basis:50%;background:var(--code);color:#e0f4f2}.lab-result-pane{background:var(--paper)}.lab-pane-title{height:43px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 14px;font-size:.76rem;letter-spacing:.08em}.lab-code-pane .lab-pane-title{border-color:#294046}.lab-mode-badge,.lab-status{padding:3px 8px;border-radius:999px;background:rgba(255,255,255,.08)}.lab-status.ok{color:#18aa7a}.lab-status.error{color:#e45544}.lab-editor-wrap{position:relative;flex:1}.lab-prompt{position:absolute;left:14px;top:15px;color:#65ddd6;font:800 .9rem ui-monospace,monospace;z-index:2}.lab-editor{width:100%;height:100%;resize:none;border:0;outline:0;background:transparent;color:#e7f6f5;padding:16px 18px;font:650 .93rem/1.65 ui-monospace,Consolas,monospace;tab-size:4}.lab-editor-wrap:has(.lab-prompt) .lab-editor{padding-left:47px}.lab-output{flex:1;overflow:auto;margin:0;padding:16px;white-space:pre-wrap;font:600 .9rem/1.6 ui-monospace,Consolas,monospace}.lab-workspace{min-height:43px;border-top:1px solid var(--line);padding:8px 12px;display:flex;gap:6px;flex-wrap:wrap}.lab-workspace span{background:var(--soft);border-radius:7px;padding:3px 7px;font:600 .72rem ui-monospace,monospace}.lab-splitter{width:10px;background:var(--soft);border-left:1px solid var(--line);border-right:1px solid var(--line);cursor:col-resize}.lab-extension{border-top:1px solid var(--line)}.lab-extension-head{display:flex;justify-content:space-between;padding:12px 16px;background:var(--soft)}.lab-extension-head div{display:flex;flex-direction:column}.lab-extension-subtitle{color:var(--muted)}.lab-collapse{background:var(--teal);border-color:var(--teal)}.lab-large-figures{min-height:0}.lab-extension.has-figure .lab-large-figures{min-height:500px;padding:15px}.lab-large-figures canvas,.lab-large-figures svg{max-width:100%}body.resizing{user-select:none;cursor:col-resize}
/* Original slide viewer */.source-slides-overlay{position:fixed;inset:0;z-index:200;background:rgba(1,10,12,.94);display:none;padding:2vh 3vw}.source-slides-overlay.open{display:block}.source-slides-dialog{height:96vh;display:flex;flex-direction:column;position:relative}.source-slides-close{position:absolute;right:0;top:0;width:46px;height:46px;border-radius:50%;border:1px solid #536063;background:#172125;color:#fff;font-size:1.8rem;cursor:pointer;z-index:5}.source-slides-header{display:flex;justify-content:space-between;align-items:center;color:#fff;padding:7px 70px 10px 0}.source-slides-kicker{font-size:.7rem;letter-spacing:.18em;color:#74ddd8}.source-slides-header h2{margin:0}.source-slides-header p{margin:0;color:#a9bbbf}.source-slides-controls{display:flex;align-items:center;gap:8px}.source-slides-controls button,.source-stage-arrow{border:1px solid #4a595c;background:#182326;color:#fff;border-radius:9px;padding:8px 11px;cursor:pointer}.source-slides-stage{min-height:0;flex:1;display:grid;grid-template-columns:55px 1fr 55px;align-items:center}.source-stage-arrow{font-size:2rem}.source-slide-frame{height:100%;min-height:0;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.source-slide-frame img{max-width:100%;max-height:calc(100% - 35px);object-fit:contain;background:#fff;border-radius:8px;cursor:zoom-in}.source-slide-frame img.zoomed{max-width:none;max-height:none;width:auto;height:auto;cursor:zoom-out}.source-slide-frame figcaption{color:#d5e2e4;margin-top:7px}.source-slide-loading{color:#fff}.source-slide-thumbs{height:74px;display:flex;gap:7px;overflow:auto;justify-content:center}.source-slide-thumbs button{border:2px solid transparent;background:#172125;color:#fff;border-radius:7px;padding:2px;display:flex;align-items:center;gap:5px;cursor:pointer}.source-slide-thumbs button.active{border-color:#52d1ca}.source-slide-thumbs img{height:58px}.source-slides-help{text-align:center;color:#9badaf;margin:7px 0 0;font-size:.76rem}.tooltip{position:fixed;display:none;z-index:300;pointer-events:none;max-width:370px;background:#0b2428;color:#efffff;border:1px solid #315057;border-radius:10px;padding:9px 12px;font-size:.82rem;box-shadow:0 12px 30px rgba(0,0,0,.28)}@media(max-width:1100px){.page-shell{grid-template-columns:1fr}.side-nav{position:fixed;z-index:60;left:-320px;width:300px;background:var(--paper);transition:.25s}.side-nav.open{left:0}.menu-btn{display:block}.hero{grid-template-columns:1fr}.hero-array{height:420px}.concept-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.topbar{padding:0 10px}.brand small,.top-actions>a:nth-child(2),#tipToggle,.font-box{display:none}.top-actions{gap:4px}.top-btn,.menu-btn{padding:7px}.lesson-section{padding:60px 18px}.section-head{grid-template-columns:42px 1fr}.section-head .source-slide-btn{grid-column:2}.split-story,.diary-demo{grid-template-columns:1fr}.concept-grid,.three-way{grid-template-columns:1fr}.builder-controls{grid-template-columns:1fr}.operator-strip{grid-template-columns:repeat(3,1fr)}.matrix-index-demo{grid-template-columns:1fr}.lab-body{height:600px;flex-direction:column}.lab-code-pane{flex-basis:50%!important}.lab-splitter{width:auto;height:10px;cursor:row-resize}.source-slides-header{display:block}.source-slides-controls{margin-top:8px}.source-slides-stage{grid-template-columns:35px 1fr 35px}.transpose-demo{flex-direction:column}.summary-flow i{transform:rotate(90deg)}}

/* v1.2.1 performance and editor readability */
.lesson-section:not(.hero){content-visibility:auto;contain-intrinsic-size:auto 900px;contain:layout paint style}
.lab-editor{white-space:pre!important;overflow:auto!important;overflow-wrap:normal!important;word-break:normal!important}
.topbar{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:var(--paper)!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

/* v1.2.2 light-mode editor */
:root:not([data-theme="dark"]) .lab-code-pane{background:#fff!important;color:#18333a!important}
:root:not([data-theme="dark"]) .lab-code-pane .lab-pane-title{color:#18333a!important;border-color:var(--line)!important}
:root:not([data-theme="dark"]) .lab-editor{background:#fff!important;color:#18333a!important;caret-color:#087f8b!important}
:root:not([data-theme="dark"]) .lab-prompt{color:#087f8b!important}
:root:not([data-theme="dark"]) .lab-mode-badge{background:#edf4f5!important;color:#49646a!important}
