.mnist-demo{--page:#252525;--ink:#fff;--green:#74ff74;--pink:#ff8ce5;background:var(--page);width:100%;color:var(--ink);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border:1px solid #ffffff1f;border-radius:18px;margin:64px 0 24px;font-family:Arial,Helvetica,sans-serif;overflow:clip}@scope(.mnist-demo){*{box-sizing:border-box}button,canvas{touch-action:none}.lesson-page{background:var(--page);min-height:0}.app-shell{width:100%;max-width:680px;margin:0 auto;padding:40px 20px 96px}.conv-primer{background:radial-gradient(circle at 88% 8%,#ff8ce51f,#0000 30%),radial-gradient(circle at 8% 94%,#74ff741a,#0000 32%),#1d1d1d;border:1px solid #74ff7438;border-radius:18px;margin-bottom:54px;padding:28px;position:relative;overflow:hidden}.conv-primer:before{content:"";pointer-events:none;opacity:.45;background-image:linear-gradient(#ffffff06 1px,#0000 1px);background-size:100% 8px;position:absolute;inset:0}.conv-primer>*{position:relative}.primer-heading{max-width:560px}.primer-kicker{color:var(--green);letter-spacing:.16em;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:800}.primer-heading h2{color:#fff;letter-spacing:-.025em;margin:0 0 12px;font-size:28px;font-weight:900;line-height:1.28}.primer-heading>p:last-child{color:#c7c7c7;margin:0;font-size:14px;line-height:1.75}.primer-workbench{border-top:1px solid #ffffff1a;margin-top:24px;padding-top:24px}.primer-visual{flex-wrap:wrap;justify-content:center;align-items:center;gap:22px;display:flex}.primer-grid-block{flex-direction:column;align-items:center;gap:10px;display:flex}.primer-label{color:#f7f7f7;flex-direction:column;align-items:center;gap:2px;font-size:13px;font-weight:800;display:flex}.primer-label small{color:#858585;font-size:10px;font-weight:500}.primer-image-grid{grid-template-columns:repeat(5,32px);gap:4px;width:176px;height:176px;display:grid;position:relative}.primer-input-cell{color:#777;background:#292929;border:1px solid #ffffff14;border-radius:5px;place-items:center;width:32px;height:32px;font-family:SFMono-Regular,Consolas,monospace;font-size:12px;transition:color .2s,background .2s;display:grid}.primer-input-cell.lit{color:#252525;background:#e7e7e7}.primer-input-cell.selected{box-shadow:inset 0 0 0 1px #74ff7459}.primer-scan-frame{z-index:2;border:3px solid var(--green);pointer-events:none;border-radius:8px;width:104px;height:104px;transition:left .42s cubic-bezier(.22,1,.36,1),top .42s cubic-bezier(.22,1,.36,1);position:absolute;box-shadow:0 0 0 2px #1d1d1d,0 0 18px #74ff7466}.primer-operation{color:#777;font-size:28px;font-weight:300}.primer-kernel-grid{grid-template-columns:repeat(3,36px);gap:4px;display:grid}.primer-kernel-cell{border-radius:6px;place-items:center;width:36px;height:36px;font-family:SFMono-Regular,Consolas,monospace;font-size:13px;font-weight:800;display:grid}.primer-kernel-cell.positive{color:var(--green);background:#74ff7429;border:1px solid #74ff746b}.primer-kernel-cell.negative{color:var(--pink);background:#ff8ce524;border:1px solid #ff8ce561}.primer-kernel-cell.neutral{color:#777;background:#ffffff09;border:1px solid #ffffff1a}.primer-calculation{background:#00000038;border:1px solid #ffffff1a;border-radius:14px;margin-top:22px;padding:18px}.primer-calc-head{justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px;display:flex}.primer-step{color:var(--pink);letter-spacing:.08em;font-size:11px;font-weight:800}.primer-calc-head h3{color:#fff;margin:3px 0 0;font-size:16px;line-height:1.35}.primer-next{border:1px solid var(--green);color:#eaffea;cursor:pointer;background:#74ff741a;border-radius:999px;flex:none;min-width:110px;padding:9px 13px;font-size:12px;font-weight:800;transition:transform .15s,background .15s}.primer-next:hover{background:#74ff7433;transform:translateY(-1px)}.primer-terms{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.primer-terms span{color:#aaa;text-align:center;white-space:nowrap;background:#ffffff0b;border-radius:6px;padding:7px 5px;font-family:SFMono-Regular,Consolas,monospace;font-size:11px}.primer-terms b{color:#fff}.primer-result-row{justify-content:center;align-items:center;gap:12px;margin-top:16px;display:flex}.primer-result-card{background:#232323;border:1px solid #ffffff21;border-radius:10px;flex-direction:column;align-items:center;min-width:92px;padding:10px 14px;display:flex}.primer-result-card small{color:#8c8c8c;font-size:10px}.primer-result-card strong{color:#fff;margin-top:2px;font-family:SFMono-Regular,Consolas,monospace;font-size:24px}.primer-result-card.final{background:#74ff7417;border-color:#74ff745c}.primer-result-card.final strong{color:var(--green)}.primer-result-arrow{color:#8a8a8a;text-align:center;font-size:11px}.primer-explanation{color:#c9c9c9;text-align:center;margin:14px 0 0;font-size:13px;line-height:1.7}.primer-output{color:#8e8e8e;justify-content:center;align-items:center;gap:6px;margin-top:12px;font-size:11px;display:flex}.primer-output b{color:#aaa;border:1px solid #ffffff1f;border-radius:5px;place-items:center;width:26px;height:26px;font-family:SFMono-Regular,Consolas,monospace;transition:border-color .2s,color .2s,background .2s;display:grid}.primer-output b.active{border-color:var(--green);color:var(--green);background:#74ff741f}.primer-note{border-left:3px solid var(--pink);color:#bbb;background:#ff8ce50f;border-radius:0 10px 10px 0;margin-top:18px;padding:13px 15px;font-size:12.5px;line-height:1.75}.primer-note b{color:#fff}.kernel-learning{background:linear-gradient(145deg,#ff8ce511,#ffffff06 48%,#74ff740e);border:1px solid #ff8ce538;border-radius:18px;margin-bottom:54px;padding:28px}.learning-heading{max-width:560px}.learning-heading h2{color:#fff;letter-spacing:-.025em;margin:0 0 12px;font-size:28px;font-weight:900;line-height:1.28}.learning-heading>p:last-child{color:#c7c7c7;margin:0;font-size:14px;line-height:1.75}.learning-loop{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:24px 0 0;padding:0;list-style:none;display:grid}.learning-loop li{background:#0000002e;border:1px solid #ffffff17;border-radius:10px;min-width:0;padding:11px 9px}.learning-loop li>b{background:linear-gradient(135deg, var(--pink), var(--green));color:#1f1f1f;border-radius:7px;place-items:center;width:22px;height:22px;margin-bottom:8px;font-size:11px;display:grid}.learning-loop li span{flex-direction:column;gap:4px;display:flex}.learning-loop strong{color:#f3f3f3;font-size:11px;line-height:1.35}.learning-loop small{color:#858585;font-size:9.5px;line-height:1.45}.learning-example{background:#0000003d;border:1px solid #74ff7433;border-radius:15px;margin-top:24px;padding:20px}.learning-example-head{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.learning-example-head h3,.actual-kernel-copy h3{color:#fff;margin:4px 0 0;font-size:17px;line-height:1.4}.learning-step-button{border:1px solid var(--green);color:#efffef;cursor:pointer;background:#74ff741a;border-radius:999px;flex:none;min-width:112px;padding:10px 14px;font-size:12px;font-weight:800;transition:transform .15s,background .15s}.learning-step-button:hover{background:#74ff7430;transform:translateY(-1px)}.learning-example-intro{color:#aaa;margin:12px 0 0;font-size:12.5px;line-height:1.75}.learning-example-intro code,.normalization-note code{color:#fff;background:#ffffff12;border-radius:5px;padding:2px 5px;font-family:SFMono-Regular,Consolas,monospace;font-size:.9em}.learning-matrices{flex-wrap:wrap;justify-content:center;align-items:center;gap:22px;margin-top:20px;display:flex}.learning-matrix-block,.actual-kernel-visual{flex-direction:column;align-items:center;gap:8px;display:flex}.learning-matrix-label{color:#aaa;font-size:11px;font-weight:700}.learning-matrix{grid-template-columns:repeat(3,44px);gap:5px;display:grid}.learning-matrix>span{border:1px solid #ffffff1a;border-radius:8px;place-items:center;width:44px;height:44px;font-family:SFMono-Regular,Consolas,monospace;font-size:11px;font-weight:800;transition:color .24s,border-color .24s,background .24s;display:grid}.learning-matrix>span.positive{color:var(--green);background:#74ff7426;border-color:#74ff7461}.learning-matrix>span.negative{color:var(--pink);background:#ff8ce524;border-color:#ff8ce561}.learning-matrix>span.neutral{color:#777;background:#ffffff09}.learning-matrix.patch>span.positive{color:#242424;background:#e9e9e9}.learning-matrix.patch>span.negative{color:#bbb;background:#111}.learning-times{color:#777;font-size:24px}.learning-metrics{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:20px;display:flex}.learning-metrics>div{background:#ffffff0b;border-radius:9px;flex-direction:column;align-items:center;min-width:78px;padding:8px 10px;display:flex}.learning-metrics>div.loss{background:#ff8ce514;border:1px solid #ff8ce538}.learning-metrics small{color:#888;font-size:9px}.learning-metrics strong{color:#fff;margin-top:2px;font-family:SFMono-Regular,Consolas,monospace;font-size:15px}.learning-metrics>span{color:#666;font-size:12px}.learning-update-rule{color:#898989;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 10px;margin-top:14px;font-size:10.5px;display:flex}.learning-update-rule code{color:var(--green);font-family:SFMono-Regular,Consolas,monospace}.learning-round-note{border-left:3px solid var(--green);color:#c5c5c5;background:#74ff740e;border-radius:0 8px 8px 0;min-height:44px;margin:14px 0 0;padding:11px 13px;font-size:12px;line-height:1.75}.actual-kernel-card{background:#ffffff06;border:1px solid #ffffff1a;border-radius:15px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:26px;margin-top:22px;padding:20px;display:grid}.actual-kernel-copy p{color:#aaa;margin:10px 0 0;font-size:12px;line-height:1.75}.learning-matrix.actual>span{width:46px;height:46px}.actual-kernel-visual>small{color:var(--green);font-family:SFMono-Regular,Consolas,monospace;font-size:10px}.actual-kernel-loading{color:#777;border:1px dashed #ffffff24;border-radius:12px;place-items:center;width:148px;height:148px;font-size:11px;display:grid}.normalization-note{background:#ff8ce50e;border:1px solid #ff8ce529;border-radius:12px;margin-top:18px;padding:14px 16px}.normalization-note>b{color:#fff;font-size:12.5px}.normalization-note p{color:#b9b9b9;margin:7px 0 0;font-size:11.5px;line-height:1.8}.draw-panel{flex-direction:column;align-items:center;padding:14px 0 20px;display:flex}.draw-hint{color:#cfcfcf;letter-spacing:.02em;margin:0 0 12px;font-size:15px}.model-error{color:#ffd7f6;text-align:center;background:#ff8ce51a;border:1px solid #ff8ce56b;border-radius:8px;margin:0 0 14px;padding:9px 12px;font-size:13px;line-height:1.55}.drawing-area{flex-direction:column;align-items:center;width:300px;display:flex}.drawing-area canvas{cursor:crosshair;border-radius:12px;width:300px;height:300px;display:block;box-shadow:0 0 0 2px #ffffff24,0 12px 34px #00000073}.clear-button{outline-offset:-7px;color:#fff;cursor:pointer;background:#252525;border:3px solid #fff;border-radius:8px;outline:2px solid #fff;width:120px;height:52px;margin-top:14px;font-size:22px;font-weight:800;line-height:1;display:block}.clear-button:active{transform:translateY(2px)}.presets{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:14px;display:flex}.presets-label{color:#a6a6a6;font-size:13px}.preset-button{color:#fff;cursor:pointer;background:#ffffff0d;border:2px solid #ffffff47;border-radius:9px;width:42px;height:42px;font-size:20px;font-weight:800;line-height:1;transition:border-color .12s,background .12s,transform 60ms}.preset-button:hover{border-color:var(--green);background:#74ff741f}.preset-button:active{transform:translateY(1px)}.cv-pipeline{margin-top:8px}.pipeline-intro h2{margin:0 0 10px;font-size:26px;font-weight:800;line-height:1.3}.pipeline-intro h2 em{color:var(--green);font-style:normal}.pipeline-intro p{color:#d0d0d0;margin:0 0 8px;font-size:15px;line-height:1.7}.pipeline-intro strong{color:var(--pink);font-weight:700}.stage{background:#ffffff08;border:1px solid #ffffff1a;border-radius:16px;margin-top:26px;padding:18px 18px 20px}.stage-head{align-items:center;gap:12px;margin-bottom:14px;display:flex}.stage-no{background:linear-gradient(135deg, var(--green), var(--pink));color:#1c1c1c;border-radius:10px;flex:none;place-items:center;width:34px;height:34px;font-size:18px;font-weight:900;display:grid}.stage-head h3{margin:0;font-size:18px;font-weight:800}.stage-body{flex-direction:column;gap:14px;display:flex}.stage-visual{justify-content:center;min-height:44px;display:flex}.stage-detail{color:#cbcbcb;margin:0;font-size:14.5px;line-height:1.75}.stage-why{border-left:3px solid var(--green);color:#d0d0d0;background:#74ff740f;border-radius:0 10px 10px 0;margin:12px 0 0;padding:12px 14px;font-size:14px;line-height:1.85}.why-tag{color:var(--green);white-space:nowrap;margin-right:8px;font-weight:800;display:inline-block}.pipeline-why-lead{color:#d0d0d0;margin:16px 0 10px;font-size:15px;line-height:1.7}.pipeline-why-lead strong{color:var(--green);font-weight:800}.feature-ladder{flex-wrap:wrap;align-items:center;gap:8px;font-size:15px;font-weight:800;display:flex}.feature-ladder span{background:#ffffff0f;border:1px solid #ffffff24;border-radius:8px;padding:5px 12px}.feature-ladder i{color:var(--pink);font-style:normal;font-weight:700}.kernel-note .k-fixed{color:var(--green);font-weight:800}.stage-empty{color:#7d7d7d;border:1px dashed #ffffff29;border-radius:10px;place-items:center;width:100%;min-height:60px;font-size:14px;display:grid}.fmap-grid{flex-wrap:wrap;justify-content:center;gap:7px;margin:0 auto;display:flex}.fmap-grid.single{max-width:160px}.fmap-grid.cols4{max-width:344px}.fmap-grid.cols8{max-width:520px}.fmap-grid.labeled{gap:10px 12px}.fmap-cell{flex-direction:column;align-items:center;gap:5px;margin:0;display:flex}.fmap-label{color:#a6a6a6;white-space:nowrap;font-size:11px;line-height:1}.fmap-cell.selectable{cursor:pointer;border:1px solid #0000;border-radius:8px;padding:4px;transition:border-color .12s,background .12s}.fmap-cell.selectable:hover{background:#ffffff0d}.fmap-cell.selectable.selected{border-color:var(--green);background:#74ff741a}.conv1-wrap{flex-direction:column;align-items:center;gap:12px;display:flex}.fmap-tip{color:#8f8f8f;margin:0;font-size:12.5px}.kernel-panel{background:#ffffff0a;border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;align-items:center;gap:18px;max-width:520px;padding:16px;display:flex}.kernel-top{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;display:flex}.conv-demo{border-top:1px dashed #ffffff24;flex-direction:column;align-items:center;gap:12px;width:100%;padding-top:16px;display:flex}.conv-io{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;display:flex}.conv-input-wrap{border-radius:6px;flex:none;position:relative;box-shadow:0 0 0 1px #ffffff24}.conv-window{pointer-events:none;box-shadow:0 0 0 2px var(--green), 0 0 10px #74ff74cc;will-change:transform;border-radius:2px;position:absolute;top:0;left:0}.conv-out{box-shadow:0 0 0 1px #ff8ce54d}.conv-arrow{color:#a0a0a0;text-align:center;flex:none;max-width:96px;font-size:12px;line-height:1.5}.conv-demo-foot{text-align:center;color:#c2c2c2;flex-direction:column;align-items:center;gap:8px;font-size:13px;line-height:1.7;display:flex}.conv-demo-foot em{color:#8f8f8f;font-size:12px;font-style:normal}.mini-btn{color:#eaffea;cursor:pointer;background:#74ff741a;border:2px solid #74ff7480;border-radius:20px;padding:6px 16px;font-size:13px;font-weight:700;transition:background .12s}.mini-btn:hover{background:#74ff7433}.kernel-grid{flex:none;grid-template-columns:repeat(3,40px);grid-auto-rows:40px;gap:3px;display:grid}.kernel-cell{font-variant-numeric:tabular-nums;color:#f2f2f2;text-shadow:0 1px 2px #000c;background:#111;border-radius:5px;place-items:center;font-size:12px;display:grid}.kernel-note{color:#cfcfcf;flex:1;min-width:190px;margin:0;font-size:13.5px;line-height:1.7}.kernel-note .k-green{color:var(--green)}.kernel-note .k-pink{color:var(--pink)}.fmap-probe{cursor:crosshair;touch-action:none;position:relative}.probe-highlight{pointer-events:none;border-radius:1px;position:absolute;box-shadow:0 0 0 1.5px #fff}.probe-chip{color:#fff;font-variant-numeric:tabular-nums;pointer-events:none;z-index:2;background:#000;border-radius:5px;padding:1px 5px;font-size:11px;position:absolute;top:-9px;right:-6px;box-shadow:0 0 0 1px #ffffff40}.input-pixels{flex-direction:column;align-items:center;gap:12px;display:flex}.input-canvas-wrap{cursor:crosshair;touch-action:none;border-radius:8px;position:relative;box-shadow:0 0 0 2px #ffffff29}.input-canvas{border-radius:8px;display:block}.pixel-highlight{pointer-events:none;box-shadow:0 0 0 2px var(--green), 0 0 8px #74ff74b3;border-radius:1px;position:absolute}.pixel-readout{text-align:center;color:#b9b9b9;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:4px 10px;min-height:22px;font-size:13.5px;display:flex}.pixel-readout b{color:var(--green);font-variant-numeric:tabular-nums;font-size:15px}.pixel-scale{color:#8a8a8a;font-size:12px}.pixel-hint{color:#9a9a9a}.learn-box{background:#ff8ce512;border:1px solid #ff8ce538;border-radius:16px;margin-top:30px;padding:18px 20px}.learn-box h3{margin:0 0 8px;font-size:18px;font-weight:800}.learn-box p{color:#d3d3d3;margin:0;font-size:14.5px;line-height:1.8}.learn-box strong{color:var(--pink);font-weight:700}.fmap{image-rendering:pixelated;background:#0d0d0d;border-radius:4px;display:block;box-shadow:0 0 0 1px #ffffff1f}.fmap-grid.single .fmap{border-radius:8px;box-shadow:0 0 0 2px #ffffff29}.flatten-strip{width:100%;max-width:520px;height:22px;image-rendering:pixelated;background:#0d0d0d;border-radius:5px;display:block;box-shadow:0 0 0 1px #ffffff24}.prob-bars{align-items:flex-end;gap:6px;width:100%;max-width:460px;margin:0 auto;display:flex}.prob-col{flex-direction:column;flex:1;align-items:center;gap:5px;display:flex}.prob-pct{color:#8f8f8f;font-variant-numeric:tabular-nums;font-size:11px}.prob-track{background:#ffffff0d;border-radius:5px;align-items:flex-end;width:100%;height:132px;display:flex;overflow:hidden}.prob-fill{background:#ffffff38;border-radius:5px 5px 0 0;width:100%;transition:height 90ms linear}.prob-digit{color:#b6b6b6;font-size:16px;font-weight:700}.prob-col.win .prob-fill{background:linear-gradient(180deg, var(--green), var(--pink));box-shadow:0 0 12px #ff8ce58c}.prob-col.win .prob-pct{color:var(--green);font-weight:800}.prob-col.win .prob-digit{color:#fff;transform:scale(1.18)}.prob-col.probing .prob-track{box-shadow:inset 0 0 0 2px #ffffff8c}.prob-block{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.score-readout{color:#bcbcbc;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:4px 12px;min-height:20px;font-size:13.5px;display:flex}.score-readout b{color:#fff}.score-num{color:var(--green);font-variant-numeric:tabular-nums}.score-arrow{color:var(--pink);font-size:12.5px}.pipeline-note{color:#d6d6d6;background:#74ff740f;border:1px solid #74ff7429;border-radius:14px;margin-top:30px;padding:16px 18px;font-size:14px;line-height:1.7}.pipeline-note span{color:#9a9a9a;margin-top:6px;font-size:12.5px;display:block}@media (width<=560px){.app-shell{padding:20px 14px 72px}.conv-primer,.kernel-learning{margin-bottom:40px;padding:20px 14px}.primer-heading h2,.learning-heading h2{font-size:23px}.primer-visual{gap:14px}.primer-operation{display:none}.primer-calculation{padding:14px 10px}.primer-calc-head{align-items:flex-start}.primer-terms{gap:4px}.primer-terms span{padding:6px 2px;font-size:10px}.primer-result-row{flex-wrap:wrap;gap:8px}.primer-result-arrow{flex-basis:100%;order:2}.primer-result-card.final{order:3}.learning-loop{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-example{padding:16px 10px}.learning-example-head{flex-direction:column}.learning-metrics{gap:6px}.learning-metrics>div{min-width:66px;padding:7px 6px}.actual-kernel-card{grid-template-columns:1fr;padding:16px 12px}.pipeline-intro h2{font-size:22px}.prob-track{height:108px}.fmap-grid.cols8{max-width:300px}}}
