.lesson-page{min-height:100svh;color:var(--ink);background:radial-gradient(circle at 74% 18%,#9dff3a14,#0000 27%),radial-gradient(circle at 18% 82%,#2d622b1f,#0000 28%),#030604;position:relative;overflow:hidden}.lesson-grid-bg{pointer-events:none;background-image:linear-gradient(#8dcd750b 1px,#0000 1px),linear-gradient(90deg,#8dcd750b 1px,#0000 1px);background-size:48px 48px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 92%);mask-image:linear-gradient(#000,#0000 92%)}.lesson-topbar{border-bottom:1px solid var(--line);z-index:5;grid-template-columns:1fr auto 1fr auto auto;align-items:center;gap:26px;height:74px;padding:0 clamp(20px,4vw,64px);display:grid;position:relative}.lesson-back,.lesson-brand{color:#869287;font-family:var(--font-geist-mono), monospace;letter-spacing:.12em;font-size:9px;text-decoration:none}.lesson-back{justify-self:start;align-items:center;gap:10px;display:flex}.lesson-back:hover{color:var(--green)}.lesson-brand{color:var(--ink);justify-self:center}.lesson-brand strong{color:var(--green)}.lesson-identity{text-align:right;font-family:var(--font-geist-mono), monospace;letter-spacing:.1em;justify-self:end;gap:3px;display:grid}.lesson-identity span{color:var(--green);font-size:7px}.lesson-identity strong{font-size:9px;font-weight:500}.lesson-page[data-locale=zh-CN] .lesson-identity{letter-spacing:.035em}.lesson-page[data-locale=zh-CN] .lesson-identity strong{font-size:10px;font-weight:580}.lesson-reading-entry{justify-self:end;position:relative}.lesson-reading-link{color:#879489;min-height:34px;font-family:var(--font-geist-mono), monospace;letter-spacing:.1em;border:1px solid #9dff3a38;align-items:center;gap:9px;padding:0 11px;font-size:8px;text-decoration:none;transition:color .15s,border-color .15s,background .15s;display:flex}.lesson-reading-entry[data-open=true] .lesson-reading-link{color:var(--green);border-color:#9dff3a7a}.lesson-reading-link:hover{border-color:var(--green);color:var(--green);background:#9dff3a0f}.lesson-reading-link i{color:var(--green);font-size:12px;font-style:normal}.lesson-reading-hint{z-index:8;width:294px;min-height:68px;color:var(--ink);font-family:var(--font-geist-mono), monospace;background:#050c07f7;border:1px solid #9dff3a6b;grid-template-columns:1fr auto;gap:13px;padding:14px 13px 14px 16px;animation:.24s ease-out both lesson-reading-hint-in;display:grid;position:absolute;top:calc(100% + 16px);right:0;box-shadow:0 14px 40px #00000057,0 0 22px #9dff3a12}.lesson-reading-hint:before{content:"";background:#050c07;border-top:1px solid #9dff3a6b;border-left:1px solid #9dff3a6b;width:9px;height:9px;position:absolute;top:-6px;right:17px;transform:rotate(45deg)}.lesson-reading-hint>div{gap:7px;display:grid}.lesson-reading-hint strong{color:var(--green);letter-spacing:.11em;font-size:8px;font-weight:550}.lesson-reading-hint p{color:#b2bdb4;font-family:var(--font-geist-sans), Arial, sans-serif;text-wrap:pretty;margin:0;font-size:13px;line-height:1.55}.lesson-reading-hint button{color:#7f8c81;cursor:pointer;background:0 0;border:1px solid #9dff3a2e;place-items:center;width:28px;height:28px;padding:0;font-size:17px;line-height:1;display:grid}.lesson-reading-hint button:hover{color:var(--green);border-color:#9dff3a80}.lesson-reading-hint button:focus-visible{outline-offset:3px;outline:2px solid #fff}.lesson-topbar:has(.lesson-reading-entry[data-open=true])+.lesson-progress{margin-top:104px}.lesson-progress{transition:margin-top .2s}@keyframes lesson-reading-hint-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.lesson-progress{z-index:2;grid-template-columns:repeat(4,1fr);width:min(1100px,100% - 40px);margin:22px auto 0;padding:0;list-style:none;display:grid;position:relative}.lesson-progress:before{content:"";background:#9dff3a24;height:1px;position:absolute;top:13px;left:4%;right:4%}.lesson-progress li{color:#465148;font-family:var(--font-geist-mono), monospace;letter-spacing:.1em;justify-items:center;gap:7px;font-size:7px;display:grid}.lesson-progress li>span{z-index:1;background:#050806;border:1px solid #263127;place-items:center;width:27px;height:27px;display:grid;position:relative}.lesson-progress li strong{font-size:7px;font-weight:500}.lesson-progress li.is-active{color:var(--green)}.lesson-progress li.is-active>span{border-color:var(--green);background:var(--green);color:#071005;box-shadow:0 0 16px #9dff3a40}.lesson-progress li.is-complete{color:#8ba181}.lesson-progress li.is-complete>span{color:var(--green);border-color:#9dff3a73}.lesson-stage{z-index:1;width:min(1260px,100% - 40px);margin:0 auto;padding:clamp(36px,6vh,70px) 0 58px;animation:.32s cubic-bezier(.16,.75,.24,1) lesson-stage-in;position:relative}.lesson-stage-heading,.completion-heading{padding-left:clamp(16px,1.8vw,24px);position:relative}.lesson-stage-heading{max-width:1040px;margin-bottom:34px}.lesson-stage-heading:before,.completion-heading:before{content:"";background:linear-gradient(180deg, var(--green), #9dff3a14 72%, transparent);width:2px;position:absolute;top:2px;bottom:4px;left:0;box-shadow:0 0 13px #9dff3a2e}.lesson-stage-heading>p,.completion-heading>p{color:var(--green);font-family:var(--font-geist-mono), monospace;letter-spacing:.16em;margin:0 0 14px;font-size:8px}.lesson-stage-heading h1,.completion-heading h1{max-width:16ch;font-family:var(--font-geist-sans), Arial, sans-serif;font-kerning:normal;letter-spacing:-.052em;text-wrap:balance;margin:0;font-size:clamp(40px,5.3vw,74px);font-weight:640;line-height:.94}.lesson-page[data-locale=en] .lesson-stage-heading h1,.lesson-page[data-locale=en] .completion-heading h1{text-transform:uppercase}.lesson-page[data-locale=zh-CN] .lesson-stage-heading h1,.lesson-page[data-locale=zh-CN] .completion-heading h1{letter-spacing:-.042em;line-break:strict;max-width:13em;font-size:clamp(38px,5vw,66px);font-weight:670;line-height:1.08}.lesson-stage-heading>span,.completion-heading>span{color:#8b978d;max-width:720px;margin-top:20px;font-size:14px;line-height:1.72;display:block}.lesson-stage-heading--center{text-align:center;margin-left:auto;margin-right:auto;padding-left:0}.lesson-stage-heading--center:before{display:none}.lesson-stage-heading--center h1,.lesson-stage-heading--center>span{margin-left:auto;margin-right:auto}.observe-workspace,.code-transfer{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:16px;display:grid}.lesson-panel{border:1px solid var(--line);background:#070d09d1;min-width:0;box-shadow:inset 0 0 52px #9dff3a05}.lesson-panel>header{border-bottom:1px solid var(--line);min-height:44px;font-family:var(--font-geist-mono), monospace;letter-spacing:.1em;justify-content:space-between;align-items:center;gap:12px;padding:0 16px;display:flex}.lesson-panel>header span{color:var(--ink);font-size:8px}.lesson-panel>header small{color:#59655b;font-size:7px}.lesson-code{--code-indent:clamp(14px,1.45vw,22px);background:#00000029;gap:9px;padding:22px 18px;display:grid;overflow-x:auto}.lesson-code-line{grid-template-columns:26px minmax(0,1fr);align-items:center;min-width:max-content;min-height:22px;display:grid}.lesson-code-line>span{color:#3f4a41;font-family:var(--font-geist-mono), monospace;font-size:8px}.lesson-code-line code,.lesson-code-line button{box-sizing:border-box;font-family:var(--font-geist-mono),monospace;font-size:clamp(10px,1.1vw,13px);transition:padding-left .14s}.lesson-code-line code{color:#b8c2b8;white-space:nowrap}.lesson-code-line--indent-1 code,.lesson-code-line--indent-1 button{padding-left:var(--code-indent)}.lesson-code-line--indent-2 code,.lesson-code-line--indent-2 button{padding-left:calc(var(--code-indent) * 2)}.lesson-code-line code b{color:#d3a9ff;font-weight:500}.lesson-code-line code em{color:#73c9ff;font-style:normal}.lesson-code-line code mark{color:var(--green);background:#9dff3a1f;padding:3px 5px}.cpu-worker{background:#050906;border:1px solid #253127;align-items:center;gap:14px;margin:0 18px 18px;padding:15px;display:flex}.cpu-worker__core{color:#849187;width:48px;height:48px;font-family:var(--font-geist-mono), monospace;border:1px solid #3c4a3e;place-items:center;font-size:9px;display:grid}.cpu-worker>div{gap:5px;display:grid}.cpu-worker small{color:#59665c;font-family:var(--font-geist-mono), monospace;letter-spacing:.12em;font-size:7px}.cpu-worker strong{font-family:var(--font-geist-mono), monospace;font-size:12px;font-weight:500}.cpu-worker--running{border-color:#9dff3a73}.cpu-worker--running .cpu-worker__core{border-color:var(--green);color:var(--green);animation:.7s ease-in-out infinite cpu-pulse;box-shadow:0 0 18px #9dff3a1f}.data-panel{padding-bottom:18px;position:relative}.lesson-data-grid{aspect-ratio:1;grid-template-columns:repeat(16,1fr);gap:3px;width:min(100% - 36px,490px);margin:18px auto 14px;display:grid}.data-cell{background:#4f5b5014;border:1px solid #85a07e1c;min-width:0;transition:background 80ms linear,border-color 80ms linear,box-shadow 80ms linear}.data-cell--block-1{background:#67735b13}.data-cell--block-2{background:#39553e17}.data-cell--block-3{background:#685a430f}.data-cell--filled{background:#9dff3a73;border-color:#9dff3a57}.data-cell--active{background:var(--green);border-color:var(--green);box-shadow:0 0 9px #9dff3abf}.lesson-data-grid--parallel .data-cell--block-1.data-cell--filled{background:#bcff618c}.lesson-data-grid--parallel .data-cell--block-2.data-cell--filled{background:#70eb5d80}.lesson-data-grid--parallel .data-cell--block-3.data-cell--filled{background:#4ccd6f80}.serial-meter{background:#182019;height:2px;margin:0 18px;overflow:hidden}.serial-meter span{background:var(--green);height:100%;box-shadow:0 0 8px var(--green);transition:width 50ms linear;display:block}.serial-count{font-family:var(--font-geist-mono), monospace;justify-content:flex-end;align-items:baseline;gap:5px;margin:8px 18px 0;display:flex}.serial-count strong{color:var(--green);font-size:17px;font-weight:500}.serial-count span{color:#566159;font-size:8px}.lesson-action-row{grid-template-columns:auto 1fr auto;align-items:stretch;gap:14px;margin-top:16px;display:grid}.lesson-button{color:#b0bdb1;cursor:pointer;min-height:48px;font-family:var(--font-geist-mono), monospace;letter-spacing:.1em;background:0 0;border:1px solid #9dff3a59;justify-content:space-between;align-items:center;gap:28px;padding:0 18px;font-size:8px;text-decoration:none;display:inline-flex}.lesson-button i{color:var(--green);font-size:13px;font-style:normal}.lesson-button--primary,.lesson-button--launch{border-color:var(--green);background:var(--green);color:#071005;font-weight:650}.lesson-button--primary i,.lesson-button--launch i{color:#071005}.lesson-button:hover:not(:disabled){border-color:var(--green);transform:translateY(-1px)}.lesson-button:disabled{color:#465047;cursor:not-allowed;opacity:.58;border-color:#222b24}.lesson-button:focus-visible{outline-offset:3px;outline:2px solid #fff}.code-token:focus-visible{outline-offset:3px;outline:2px solid #fff}.kernel-drop:focus-visible{outline-offset:3px;outline:2px solid #fff}.block-options button:focus-visible{outline-offset:3px;outline:2px solid #fff}.text-action:focus-visible{outline-offset:3px;outline:2px solid #fff}.observation-result{border:1px solid var(--line);background:#9dff3a06;padding:12px 17px}.observation-result span{color:var(--green);font-family:var(--font-geist-mono), monospace;letter-spacing:.12em;font-size:7px}.observation-result p{color:#818d83;margin:6px 0 0;font-size:11px;line-height:1.55}.code-transfer{grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);align-items:stretch}.transfer-arrow{place-items:center;display:grid}.transfer-arrow span{width:35px;height:35px;color:var(--green);border:1px solid #9dff3a47;place-items:center;display:grid}.lesson-code--transfer{align-content:start;min-height:186px}.code-token,.kernel-drop{border:1px solid var(--green);width:100%;min-height:31px;color:var(--green);cursor:grab;text-align:left;background:#9dff3a1f;padding:6px 9px}.code-token:active{cursor:grabbing}.code-placeholder{font-style:italic;color:#566159!important}.kernel-drop{color:#657067;cursor:pointer;letter-spacing:.06em;background:#ffffff03;border-style:dashed;font-size:9px!important}.kernel-drop--filled{color:var(--green);letter-spacing:0;background:#9dff3a1f;border-style:solid;font-size:clamp(10px,1.1vw,13px)!important}.text-action{color:#738076;cursor:pointer;font-family:var(--font-geist-mono), monospace;background:0 0;border:0;margin:0 18px 15px auto;font-size:7px;text-decoration:underline;display:block}.thread-config{border:1px solid var(--line);opacity:.55;background:#070d09b8;grid-template-columns:minmax(220px,.72fr) minmax(360px,1.35fr) minmax(170px,.5fr);align-items:center;gap:20px;margin-top:18px;padding:21px;transition:opacity .18s,border-color .18s;display:grid}.thread-config--ready{opacity:1;border-color:#9dff3a47}.thread-config__intro>span{color:var(--green);font-family:var(--font-geist-mono), monospace;letter-spacing:.12em;font-size:8px}.thread-config__intro p{color:#7c887e;margin:8px 0 0;font-size:11px;line-height:1.55}.block-options{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.block-options button{color:#748076;cursor:pointer;text-align:left;background:#050906;border:1px solid #263128;align-content:center;justify-items:start;gap:4px;min-height:83px;padding:10px;display:grid}.block-options button strong{color:var(--ink);font-family:var(--font-geist-mono), monospace;font-size:18px;font-weight:500}.block-options button span,.block-options button small{font-family:var(--font-geist-mono), monospace;letter-spacing:.07em;font-size:6px}.block-options button small{color:#505b52}.block-options button.is-selected{border-color:var(--green);color:var(--green);background:#9dff3a13}.block-options button:disabled{cursor:not-allowed;opacity:.48}.mapping-equation{font-family:var(--font-geist-mono), monospace;gap:6px;display:grid}.mapping-equation span{color:#657168;font-size:8px}.mapping-equation strong{color:var(--ink);font-size:12px;font-weight:500}.mapping-equation i{color:var(--green);font-size:7px;font-style:normal}.mapping-feedback{color:#ffb25f;grid-column:1/3;margin:0;font-size:10px;line-height:1.5}.mapping-feedback.is-correct{color:var(--green)}.lesson-button--launch{grid-area:2/3}.kernel-visualizer{background:#050a07c7;border:1px solid #9dff3a42;padding:24px}.block-rack{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:18px;display:grid}.gpu-block{background:#060a07;border:1px solid #2b372d;gap:5px;min-height:68px;padding:12px;display:grid;position:relative;overflow:hidden}.gpu-block:before{content:"";width:var(--block-fill);background:linear-gradient(90deg,#9dff3a29,#9dff3a0a);transition:width 60ms linear;position:absolute;inset:0}.gpu-block span,.gpu-block strong{z-index:1;font-family:var(--font-geist-mono),monospace;position:relative}.gpu-block span{color:var(--green);letter-spacing:.12em;font-size:7px}.gpu-block strong{font-size:10px;font-weight:500}.gpu-block i{z-index:1;background:#182119;height:2px;position:relative}.gpu-block i:after{content:"";height:100%;width:var(--block-fill);background:var(--green);box-shadow:0 0 8px var(--green);display:block}.kernel-data>header{font-family:var(--font-geist-mono),monospace;justify-content:space-between;gap:16px;margin-bottom:13px;display:flex}.kernel-data>header span{color:var(--green);letter-spacing:.12em;font-size:8px}.kernel-data>header strong{color:#738075;font-size:8px;font-weight:500}.kernel-data .lesson-data-grid{aspect-ratio:2;grid-template-columns:repeat(32,1fr);width:min(100%,620px);margin:0 auto}.model-note{color:#5e6a60;text-align:center;max-width:680px;margin:15px auto 0;font-size:10px;line-height:1.55}.completion-heading{max-width:1120px;margin-bottom:34px}.completion-heading h1{max-width:23ch;font-size:clamp(36px,4.45vw,61px);line-height:.98}.lesson-page[data-locale=zh-CN] .completion-heading h1{max-width:18em;font-size:clamp(36px,4.45vw,58px);line-height:1.12}.model-comparison{grid-template-columns:1fr 50px 1fr;align-items:stretch;display:grid}.model-comparison>article{border:1px solid var(--line);background:#070d09bf;padding:25px}.model-comparison>article.is-gpu{background:#9dff3a0a;border-color:#9dff3a6e}.model-comparison>div{color:var(--green);place-items:center;font-size:20px;display:grid}.model-comparison article>span{color:#667268;font-family:var(--font-geist-mono),monospace;letter-spacing:.14em;font-size:7px}.model-comparison h2{margin:8px 0 21px;font-size:20px;font-weight:500}.model-comparison strong{color:var(--green);font-family:var(--font-geist-mono),monospace;font-size:18px;font-weight:500}.model-comparison p{color:#7e8a80;margin:8px 0 0;font-size:11px}.core-principle{border:1px solid var(--line);background:#050906;grid-template-columns:110px minmax(290px,1fr) 1fr;align-items:center;gap:18px;margin-top:16px;padding:22px;display:grid}.core-principle>span{color:var(--green);font-family:var(--font-geist-mono),monospace;letter-spacing:.12em;font-size:8px}.core-principle code{color:var(--green);font-family:var(--font-geist-mono),monospace;background:#9dff3a14;padding:10px 12px;font-size:11px}.core-principle p{color:#89958b;margin:0;font-size:11px;line-height:1.55}.core-principle small{color:#58635a;grid-column:2/-1;font-size:9px;line-height:1.5}.lesson-research{margin-top:28px}.lesson-research>h2{color:#7f8c81;font-family:var(--font-geist-mono),monospace;letter-spacing:.14em;margin:0 0 12px;font-size:8px;font-weight:500}.lesson-research>div{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.lesson-research details{border:1px solid var(--line);background:#070d09b3}.lesson-research summary{cursor:pointer;min-height:54px;font-family:var(--font-geist-mono),monospace;grid-template-columns:30px 1fr auto;align-items:center;gap:10px;padding:0 15px;font-size:9px;list-style:none;display:grid}.lesson-research summary::-webkit-details-marker{display:none}.lesson-research summary span{color:var(--green);font-size:7px}.lesson-research summary i{color:var(--green);font-size:14px;font-style:normal;transition:transform .16s}.lesson-research details[open] summary i{transform:rotate(45deg)}.lesson-research details p{color:#7d897f;margin:0;padding:0 16px 17px 55px;font-size:11px;line-height:1.65}.completion-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}@keyframes lesson-stage-in{0%{opacity:0;transform:translateY(10px)}}@keyframes cpu-pulse{0%,to{opacity:.55}50%{opacity:1}}@media (max-width:980px){.lesson-topbar{grid-template-columns:1fr auto auto auto}.lesson-brand{display:none}.observe-workspace{grid-template-columns:.75fr 1.25fr}.thread-config{grid-template-columns:1fr 1.5fr}.mapping-equation{grid-column:1}.mapping-feedback{grid-column:2}.lesson-button--launch{grid-area:3/2;justify-self:end}.core-principle{grid-template-columns:100px 1fr}.core-principle p,.core-principle small{grid-column:1/-1}}@media (max-width:760px){.lesson-topbar{grid-template-columns:1fr auto auto;gap:8px;height:66px;padding:0 16px}.lesson-identity,.lesson-back span{display:none}.lesson-reading-link{min-height:35px;padding:0 9px}.lesson-reading-link span{display:none}.lesson-reading-hint{width:auto;min-height:70px;position:fixed;top:76px;left:14px;right:14px}.lesson-reading-hint:before{right:84px}.lesson-topbar:has(.lesson-reading-entry[data-open=true])+.lesson-progress{margin-top:112px}.lesson-progress{width:calc(100% - 28px);margin-top:16px}.lesson-progress li strong{font-size:6px}.lesson-stage{width:calc(100% - 28px);padding-top:35px}.lesson-stage-heading,.completion-heading{padding-left:15px}.lesson-stage-heading--center{padding-left:0}.lesson-stage-heading h1{max-width:18ch;font-size:clamp(36px,10.8vw,54px);line-height:.98}.completion-heading h1{max-width:24ch;font-size:clamp(32px,9.4vw,48px);line-height:1.02}.lesson-page[data-locale=zh-CN] .lesson-stage-heading h1{max-width:12em;font-size:clamp(35px,10vw,49px);line-height:1.12}.lesson-page[data-locale=zh-CN] .completion-heading h1{max-width:15em;font-size:clamp(32px,8.9vw,44px);line-height:1.15}.lesson-stage-heading>span,.completion-heading>span{font-size:12px}.observe-workspace,.lesson-action-row{grid-template-columns:1fr}.lesson-button{width:100%}.code-transfer{grid-template-columns:1fr}.transfer-arrow{min-height:36px;transform:rotate(90deg)}.lesson-code--transfer{min-height:0}.thread-config{grid-template-columns:1fr;padding:16px}.block-options{grid-template-columns:repeat(3,minmax(0,1fr))}.block-options button{padding:8px}.block-options button strong{font-size:16px}.mapping-equation,.mapping-feedback,.lesson-button--launch{grid-area:auto/1}.lesson-button--launch{justify-self:stretch}.block-rack{grid-template-columns:repeat(2,1fr)}.kernel-data>header{flex-direction:column;align-items:flex-start}.kernel-data .lesson-data-grid{aspect-ratio:1;grid-template-columns:repeat(16,1fr)}.model-comparison{grid-template-columns:1fr}.model-comparison>div{min-height:40px;transform:rotate(90deg)}.core-principle{grid-template-columns:1fr}.core-principle code{white-space:nowrap;overflow-x:auto}.core-principle p,.core-principle small{grid-column:1}.lesson-research>div{grid-template-columns:1fr}.completion-actions{flex-direction:column;align-items:stretch}}@media (max-width:420px){.lesson-code{--code-indent:13px}.lesson-code-line{grid-template-columns:20px minmax(0,1fr)}.lesson-code-line code,.lesson-code-line button{font-size:9px}.lesson-data-grid{gap:2px}.block-options button span{display:none}.block-options button small{line-height:1.4}}@media (prefers-reduced-motion:reduce){.lesson-stage,.cpu-worker--running .cpu-worker__core{animation:none}.data-cell,.serial-meter span,.gpu-block:before,.lesson-code-line code,.lesson-code-line button{transition:none}}
