.my-courses{gap:28px;display:grid}.my-courses section{gap:12px;display:grid}.my-courses h2{font-size:var(--text-lg);margin:0;font-weight:700}.my-courses-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:12px;display:grid}.my-courses-card{background:var(--background);border:1px solid var(--border);border-radius:var(--radius-lg);align-content:start;gap:8px;padding:16px;display:grid}.my-courses-card.is-active{outline:2px solid var(--primary);outline-offset:2px}.my-courses-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.my-courses-card h3{font-size:var(--text-lg);margin:0;font-weight:700}.my-courses-badge{font-size:var(--text-sm);color:var(--primary-foreground);background:var(--primary);border-radius:999px;flex:none;padding:2px 10px;font-weight:700}.my-courses-tag,.my-courses-subtitle{font-size:var(--text-sm);color:var(--muted-foreground);margin:0}.my-courses-progress{gap:4px;margin:0;display:grid}.my-courses-progress progress{width:100%;accent-color:var(--primary)}.my-courses-progress progress::-webkit-progress-bar{background:var(--muted);border-radius:999px}.my-courses-progress progress::-webkit-progress-value{background:var(--primary);border-radius:999px}.my-courses-progress progress::-moz-progress-bar{background:var(--primary);border-radius:999px}.my-courses-progress small{font-size:var(--text-sm);color:var(--muted-foreground)}.my-courses-actions{align-items:center;gap:8px;margin-top:4px;display:flex}.my-courses-actions button{font-size:var(--text-base);color:var(--foreground);background:var(--background);border:1px solid var(--border);cursor:pointer;border-radius:10px;padding:8px 14px}.my-courses-actions button:not(:disabled){transition:background .15s,border-color .15s,box-shadow .15s,color .15s,transform .15s}.my-courses-actions .my-courses-remove{color:#7d5261}@media (hover:hover){.my-courses-actions .my-courses-remove:hover:not(:disabled){color:#a33454;background:#fff7f9;border-color:#e5b7c5}}.my-courses-actions button:disabled{opacity:.55;cursor:default}.my-courses-actions .my-courses-open{color:var(--primary-foreground);background:var(--primary);border-color:var(--primary);font-weight:700}.my-courses-actions .my-courses-bookmark{color:var(--muted-foreground);margin-left:auto;padding:8px;line-height:0}.my-courses-actions .my-courses-bookmark.saved{color:var(--primary);border-color:var(--primary)}.my-courses-empty{background:var(--background);border:1px solid var(--border);border-radius:var(--radius-lg);justify-items:start;gap:8px;padding:24px 16px;display:grid}.my-courses-empty h2{font-size:var(--text-xl);margin:0}.my-courses-empty p{font-size:var(--text-base);color:var(--muted-foreground);margin:0}.my-courses-empty button{font-size:var(--text-base);color:var(--primary-foreground);background:var(--primary);border:1px solid var(--primary);cursor:pointer;border-radius:10px;padding:10px 18px;font-weight:700}.progress-rail{flex-direction:column;gap:20px;width:100%;display:flex}.pr-stats-row{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.pr-stat{font-size:var(--text-base);color:var(--foreground);white-space:nowrap;align-items:center;gap:6px;font-weight:700;display:inline-flex}.pr-stat svg{width:22px;height:22px}.pr-card h3{margin-bottom:4px}.pr-card p{margin-top:0;margin-bottom:12px}.pr-shield{background:var(--accent);width:44px;height:44px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;margin-bottom:8px;display:inline-flex}.pr-shield svg{width:22px;height:22px}.pr-card .mini-label{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--muted-foreground);font-weight:700}.pr-card .outline-button{width:100%;margin-top:4px}.pr-quest{align-items:center;gap:12px;padding:10px 0;display:flex}.pr-quest+.pr-quest{border-top:1px solid var(--border)}.pr-quest-icon{background:var(--accent);width:36px;height:36px;color:var(--primary);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.pr-quest-icon svg{width:18px;height:18px}.pr-quest-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.pr-quest-title{font-size:var(--text-base);font-weight:700}.pr-quest-body small{font-size:var(--text-sm);color:var(--muted-foreground)}.pr-reward{font-size:var(--text-base);color:var(--foreground);flex:none;align-items:center;gap:4px;font-weight:700;display:inline-flex}.pr-reward svg{width:17px;height:17px;color:var(--primary)}.progress-stats{border:2px solid var(--border);background:var(--background);border-radius:16px;align-items:center;gap:6px;width:100%;padding:10px;display:flex;overflow-x:auto}.progress-stats .pr-stat svg{width:20px;height:20px}.pr-strip-quest{min-width:0;font-size:var(--text-sm);white-space:nowrap;flex:1;align-items:center;gap:8px;font-weight:700;display:flex}.pr-strip-quest>span:last-child{flex:none}.pr-strip-bar{flex:80px;min-width:24px}.sample-lesson-dialog{width:min(680px,100vw - 24px);max-width:calc(100vw - 24px);max-height:90dvh;font-size:var(--text-base);padding:24px;line-height:1.65;overflow-y:auto}.sample-lesson-dialog h2{font-size:var(--text-xl);padding-right:20px}.sample-lesson-dialog pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f7f2fc;border:1px solid #dfd2ee;border-radius:14px;padding:18px}.sample-lesson-step,.sample-lesson-actions,.sample-lesson-choices{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.sample-lesson-actions{justify-content:space-between;margin-top:16px}.sample-lesson-actions button,.sample-lesson-choices button{border:1px solid #d9d1f3;border-radius:12px;padding:10px 18px}.sample-lesson-choices button[aria-pressed=true]{border-color:var(--primary);background:#eee3ff}.sample-lesson-dialog dl{gap:16px;display:flex}.sample-lesson-dialog dl>div{background:#f7f2fc;border-radius:12px;flex:1;padding:12px}.sample-lesson-dialog dt{font-weight:800}.sample-lesson-dialog dd{margin:0}.learn-tabs{margin-bottom:22px}.learn-tabs [role=tablist]{background:var(--muted);border-radius:14px;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;height:auto;padding:5px;display:grid}.learn-tabs [role=tab]{min-width:0;min-height:42px;font-weight:800;font-size:var(--text-base);color:var(--muted-foreground);white-space:nowrap;border-radius:10px}.learn-tabs [role=tab][aria-selected=true]{background:var(--background);color:var(--primary-dark);box-shadow:0 2px 0 var(--border)}.learn-tabs [role=tab]:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.pp-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.pp-head-text{flex:1;min-width:0}.pp-head h1{margin:4px 0 10px}.pp-tag{font-size:var(--text-sm);color:var(--primary-dark);background:var(--accent);border-radius:999px;padding:3px 10px;font-weight:800;display:inline-block}.pp-progress{font-size:var(--text-sm);color:var(--muted-foreground);align-items:center;gap:12px;font-weight:700;display:flex}.pp-progress progress{background:var(--muted);-webkit-appearance:none;appearance:none;border:0;border-radius:999px;flex:1;max-width:320px;height:12px;overflow:hidden}.pp-progress progress::-webkit-progress-bar{background:var(--muted)}.pp-progress progress::-webkit-progress-value{background:var(--gold);border-radius:999px}.pp-progress progress::-moz-progress-bar{background:var(--gold);border-radius:999px}.pp-head-actions{flex-shrink:0;gap:10px;display:flex}.pp-switch{align-items:center;gap:7px;display:inline-flex}.pp-muted{color:var(--muted-foreground);font-size:var(--text-sm)}.pp-stats-phone{margin-bottom:18px;display:none}.pp-unit{margin-bottom:18px;scroll-margin-top:95px}.pp-banner{z-index:6;background:var(--primary);color:#fff;box-shadow:0 4px 0 var(--primary-dark);border-radius:17px;align-items:center;gap:14px;padding:16px 20px;display:flex;position:sticky;top:93px}.pp-banner h2{font-size:var(--text-xl);color:#fff;margin:2px 0 0}.pp-kicker{font-size:var(--text-sm);letter-spacing:.3px;color:#fff;font-weight:800}.pp-back,.pp-back-spacer{flex-shrink:0;width:36px;height:36px}.pp-back{color:#fff;background:var(--primary-dark);border-radius:10px;place-items:center;display:grid}.pp-back:focus-visible{outline-offset:2px;outline:3px solid #fff}.pp-nodes{flex-direction:column;align-items:center;margin:0;padding:34px 0 10px;list-style:none;display:flex}.pp-row{width:100%;transform:translateX(calc(var(--pp-offset,0) * 46px));justify-content:center;display:flex}.pp-slot{flex-direction:column;align-items:center;width:150px;padding-bottom:14px;display:flex;position:relative}.pp-slot-next{padding-top:36px}.pp-node{cursor:pointer;background:var(--muted);width:70px;height:64px;color:var(--primary-dark);box-shadow:0 7px 0 var(--border);border:0;border-radius:50%;place-items:center;transition:transform .12s,box-shadow .12s;display:grid}.pp-node svg{stroke-width:2.6px;width:28px;height:28px}.pp-node:hover:not(:disabled):not([aria-disabled=true]){box-shadow:0 5px 0 var(--border);transform:translateY(2px)}.pp-node:active:not(:disabled):not([aria-disabled=true]){box-shadow:0 1px 0 var(--border);transform:translateY(6px)}.pp-node:focus-visible{outline:3px solid var(--primary);outline-offset:4px}.pp-node:disabled{cursor:default}.pp-lesson.pp-done,.pp-trophy.pp-done{background:var(--gold);color:#5a3c00;box-shadow:0 7px 0 var(--gold-dark)}.pp-lesson.pp-next{background:var(--primary);color:#fff;width:84px;height:76px;box-shadow:0 8px 0 var(--primary-dark)}.pp-lesson.pp-next:hover:not(:disabled){box-shadow:0 6px 0 var(--primary-dark)}.pp-practice{background:var(--accent)}.pp-chest{color:#8a5b00;background:#fff2cb;border-radius:20px;box-shadow:0 7px #eedaa1}.pp-chest.pp-ready{background:var(--gold);color:#5a3c00;box-shadow:0 7px 0 var(--gold-dark)}.pp-chest.pp-opened{background:var(--muted);color:var(--muted-foreground);box-shadow:0 7px 0 var(--border);cursor:default}.pp-trophy{color:#8a5b00;background:#fff2cb;width:78px;height:70px;box-shadow:0 7px #eedaa1}.pp-label{text-align:center;max-width:150px;font-size:var(--text-sm);color:var(--foreground);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:12px;font-weight:700;line-height:1.3;display:-webkit-box;overflow:hidden}.pp-bubble{z-index:2;white-space:nowrap;border:2px solid var(--border);background:var(--background);color:var(--primary-dark);font-size:var(--text-sm);letter-spacing:.5px;pointer-events:none;border-radius:11px;padding:5px 12px;font-weight:800;animation:1.8s ease-in-out infinite pp-bob;position:absolute;top:0;left:50%;transform:translate(-50%)}.pp-bubble:after{content:"";background:var(--background);border-right:2px solid var(--border);border-bottom:2px solid var(--border);width:10px;height:10px;margin-left:-5px;position:absolute;bottom:-7px;left:50%;transform:rotate(45deg)}.pp-bubble-jump{color:var(--foreground);top:-34px}.pp-chip{pointer-events:none;width:72px;height:72px;position:absolute;top:44px;left:calc(50% + 56px)}.pp-shifted .pp-chip{left:auto;right:calc(50% + 56px)}@keyframes pp-bob{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,-4px)}}.pp-empty{text-align:center;border:2px solid var(--border);border-radius:17px;padding:36px 20px}.pp-empty p{max-width:460px;color:var(--muted-foreground);margin:8px auto 20px}.pp-empty-note{color:var(--muted-foreground);font-size:var(--text-sm);margin-top:17px!important;margin-bottom:0!important}.pp-empty-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.pp-plain,.pp-down{border:2px solid var(--border);border-radius:17px;align-items:center;gap:14px;padding:18px;display:flex}.pp-plain p{margin:0}.pp-down small{color:var(--muted-foreground);font-size:var(--text-sm);display:block}@media (prefers-reduced-motion:reduce){.pp-bubble{animation:none}.pp-node{transition:none}.pp-node:hover:not(:disabled):not([aria-disabled=true]),.pp-node:active:not(:disabled):not([aria-disabled=true]){transform:none}}@media (max-width:960px){.pp-banner{top:81px}.pp-unit{scroll-margin-top:83px}.pp-stats-phone{display:block}}@media (max-width:650px){.pp-head{flex-direction:column;align-items:stretch}.pp-head-actions>*{flex:1}.pp-banner{padding:13px 14px;top:72px}.pp-unit{scroll-margin-top:74px}.pp-row{transform:translateX(calc(var(--pp-offset,0) * 30px))}.pp-slot{width:124px}.pp-label{max-width:124px}.pp-chip{width:56px;height:56px;left:calc(50% + 48px)}.pp-shifted .pp-chip{left:auto;right:calc(50% + 48px)}}.pp-skeleton{gap:12px;padding:4px 0;display:grid}.pp-skeleton-bar{background:linear-gradient(90deg,#eceaf4 25%,#f6f4fb 50%,#eceaf4 75%) 0 0/200% 100%;border-radius:14px;animation:1.4s ease-in-out infinite pp-skeleton-shimmer}.pp-skeleton-banner{height:84px}.pp-skeleton-line{height:18px}.pp-skeleton-line.is-short{width:60%}@keyframes pp-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.pp-skeleton-bar{animation:none}}.question-explanation{color:#262036;background:#fff;border:2px solid #d8c6ef;border-radius:20px;min-width:0;padding:24px;scroll-margin-top:76px}.question-explanation header{align-items:center;gap:14px;display:flex}.question-explanation h3{font-size:var(--text-xl);margin:4px 0 12px}.question-eyebrow{color:#6541a0;margin:0;font-weight:700}.question-answer{max-width:76ch;font-size:var(--text-lg);line-height:1.7}.question-answer p{white-space:pre-wrap;margin:20px 0}.question-code{background:#f7f2fc;border-radius:16px;min-width:0;margin:20px 0;padding:18px}.question-code h4{font-size:var(--text-lg);margin:0 0 12px}.question-code-list{background:#fff;border-radius:12px;padding:12px 12px 12px 52px;overflow-x:auto}.question-code-list li{white-space:pre;min-width:max-content;padding:2px 8px}.question-code-list [aria-current]{background:#ead9ff;font-weight:700}.question-code pre{white-space:pre-wrap;overflow-wrap:anywhere}.question-code-values{flex-wrap:wrap;gap:12px;display:flex}.question-code-values div{background:#fff;border:1px solid #dfd2ee;border-radius:12px;padding:12px}.question-code-values dd{margin:8px 0 0}.question-code-guide{max-width:80ch;font-size:var(--text-lg);scroll-margin-top:76px;line-height:1.7}.question-code-guide h4{font-size:var(--text-xl);margin:18px 0}.question-code-guide pre{white-space:pre;background:#f7f2fc;border-radius:12px;padding:16px;overflow-x:auto}.question-code-reference{margin-top:20px}.question-code-reference>summary{cursor:pointer;font-weight:800}.question-visual{margin:20px 0}.question-diagram{background:#f7f2fc;border-radius:16px;margin:20px 0;padding:18px;overflow-x:auto}.question-diagram figcaption{margin-bottom:14px;font-weight:800}.question-diagram ol{gap:16px;padding-left:24px;display:grid}.question-diagram-comparison ol{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.question-diagram li{background:#fff;border:1px solid #dfd2ee;border-radius:12px;padding:14px}.question-diagram p{margin-bottom:0}.question-explanation form,.question-actions{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.question-explanation label{flex:280px;gap:8px;font-weight:700;display:grid}.question-explanation input{min-width:0;font:inherit;border:2px solid #d8c6ef;border-radius:12px;padding:12px}.question-explanation button{color:#41245e;font:inherit;cursor:pointer;background:#fff;border:2px solid #d8c6ef;border-radius:12px;padding:12px 16px;font-weight:700}.question-explanation .question-resume{color:#fff;background:#8500d6;border-color:#8500d6}.question-explanation button:disabled{opacity:.55;cursor:default}.question-explanation :focus-visible{outline-offset:3px;outline:3px solid #ad62ed}.lesson-original:not([hidden]){display:contents}.lesson-roadmap{background:#fbf9ff;border:1px solid #dfd2ee;border-radius:14px;margin-bottom:16px;padding:14px 18px}.lesson-roadmap summary{cursor:pointer;font-weight:800}.lesson-roadmap ol{gap:8px;padding-left:24px;display:grid}.lesson-roadmap [aria-current]{color:#8500d6;font-weight:800}.teaching-route{font-size:var(--text-sm);flex-wrap:wrap;gap:10px;margin:12px 0;padding:0;list-style:none;display:flex}.teaching-route li{background:#f1edf6;border-radius:999px;padding:5px 10px}.teaching-route [aria-current]{color:#56208a;background:#ead9ff;font-weight:800}@media (max-width:600px){.question-explanation{padding:16px}.question-explanation header{align-items:flex-start}.question-actions{flex-direction:column}}.prepared-diagram{color:#262036;width:100%;min-width:500px;max-width:780px;margin:16px auto;display:block}.prepared-diagram text{fill:currentColor;font:18px sans-serif}.question-notice{color:#615773;font-size:var(--text-sm);background:#f5f1fa;border-radius:12px;margin:12px 0;padding:12px 16px;display:block}.lesson-shell{--lesson-bar:60px}div.lesson-shell{gap:0;padding:0 20px 20px}.lesson-shell>*{max-width:1320px}.lesson-shell .lesson-head{z-index:4;min-height:var(--lesson-bar);border:0;border-bottom:1px solid var(--border);background:#fff;border-radius:0;flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:12px;padding:8px 0;position:sticky;top:0}.lesson-shell .lesson-head-text{flex:0 auto;min-width:0}.lesson-shell .lesson-unit{display:none}.lesson-shell .lesson-title{font-size:var(--text-lg);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.lesson-head-progress{flex:200px;align-items:center;gap:10px;min-width:120px;display:flex}.lesson-close{color:#615773;cursor:pointer;background:0 0;border:0;border-radius:50%;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.lesson-progress{-webkit-appearance:none;appearance:none;background:var(--muted);border:0;border-radius:999px;flex:auto;min-width:0;height:10px;display:block;overflow:hidden}.lesson-progress::-webkit-progress-bar{background:var(--muted);border-radius:999px}.lesson-progress::-webkit-progress-value{background:var(--primary);border-radius:999px}.lesson-progress::-moz-progress-bar{background:var(--primary);border-radius:999px}.lesson-progress-count{font-size:var(--text-sm);color:#615773;flex-shrink:0;font-weight:700}.lesson-shell .lesson-meta{flex-wrap:nowrap;flex:none}.lesson-ask-slim,.lesson-menu,.mobile-ask-chip{display:none}.lesson-shell .lesson-body{grid-template-columns:minmax(0,1fr) minmax(340px,400px);gap:24px;padding-top:16px}.lesson-shell .lesson-stage{gap:16px}.lesson-shell .lesson-body>.course-action-note{grid-column:1/-1;margin:0}.teaching-board{color:#262036}.teaching-example{background:#fbf9ff;border-radius:16px;padding:16px}.teaching-where{font-size:var(--text-sm);color:#615773;margin:0;font-weight:700}.teaching-board h3{font-size:var(--text-xl);margin:4px 0 12px;line-height:1.3}.teaching-caption{align-items:flex-start;gap:12px;margin-top:16px;display:flex}.teaching-caption img{background:#f3f0fb;border-radius:50%;flex-shrink:0}.teaching-passage{font-size:var(--text-lg);flex:auto;min-width:0;max-width:65ch;line-height:1.5;animation:.3s ease-out passage-arrives}.teaching-passage p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 12px}.teaching-passage p:last-of-type{margin-bottom:4px}.teaching-caption-count{font-size:var(--text-sm);color:#615773;margin-left:auto;font-weight:700}.teaching-prompt-slot:not(:empty){margin-top:12px}.teaching-note{color:#615773;font-size:var(--text-sm);flex-basis:100%;margin:0}.teaching-example-context{border-left:3px solid #9675da;margin-bottom:16px;padding:10px 16px;line-height:1.5}.teaching-example-context b{font-size:var(--text-sm);color:#615773}.teaching-example-context p{margin:6px 0}.teaching-board.has-workspace{flex-direction:column;display:flex}.teaching-board.has-workspace>.code-workspace{order:2;margin-top:16px}.teaching-board.has-workspace>.board-drawing{order:3}.board-drawing{margin-top:12px}@media (min-width:1280px){.lesson-shell .teaching-board .scene:has(.scene-controls){grid-template-columns:auto minmax(220px,1fr);align-items:start;column-gap:20px;display:grid}.lesson-shell .teaching-board .scene:has(.scene-controls)>.scene-svg{grid-row:1/span 2}:is(.lesson-shell .teaching-board .scene:has(.scene-controls)>.scene-caption,.lesson-shell .teaching-board .scene:has(.scene-controls)>.scene-controls){grid-column:2}.lesson-shell .teaching-board .scene:has(.scene-controls)>.scene-caption{margin-top:0}.lesson-shell .teaching-board .scene:has(.scene-controls)>.scene-controls{border-top:0;padding-top:0}}.board-drawing summary{cursor:pointer;padding:8px 0;font-weight:700}.practice-reference{border:1px solid #d9d1f3;border-radius:16px;padding:16px}.practice-reference summary{cursor:pointer;font-weight:700}.practice-reference>p{color:#615773;line-height:1.5}.lesson-shell .step-advance{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.lesson-shell .teaching-controls .teaching-next{min-width:7rem;font-size:var(--text-base);margin-left:auto}.lesson-shell .teaching-controls .teaching-caption-count+.teaching-next{margin-left:0}.lesson-shell .teaching-controls button.teaching-icon{border:1px solid var(--border);color:#4b4360;background:#fff;border-radius:50%;place-items:center;width:40px;height:40px;padding:0;display:grid}.lesson-shell .teaching-controls button.teaching-icon:hover:not(:disabled){border-color:var(--primary);color:var(--primary-dark)}.lesson-shell .teaching-controls button.teaching-icon:disabled{opacity:.45;cursor:not-allowed}.lesson-shell .teaching-controls button.teaching-link{color:var(--primary-dark);font-size:var(--text-sm);text-underline-offset:3px;background:0 0;border:0;padding:0 4px;font-weight:700;text-decoration:underline}.lesson-shell .teaching-board .teaching-controls{border:0;border-top:1px solid var(--border);background:0 0;border-radius:0;margin-top:16px;padding:12px 0 0}.lesson-shell .opening-card>p{line-height:1.6}.lesson-shell .opening-card>button{margin:12px 8px 0 0}.lesson-shell .lesson-side{top:calc(var(--lesson-bar) + 16px);height:calc(100dvh - var(--lesson-bar) - 36px);border:1px solid var(--border);border-radius:var(--radius);background:#faf9ff;flex-direction:column;gap:10px;padding:12px;display:flex;position:sticky}.lesson-side-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.lesson-side-head b{font-size:var(--text-base)}.lesson-side-close{display:inline-flex}.lesson-shell .lesson-side[hidden]{display:none}.lesson-shell.is-chat-minimized .lesson-body{grid-template-columns:minmax(0,1fr);max-width:none}.lesson-shell.is-chat-minimized .lesson-ask-slim{flex-shrink:0;display:inline-flex}.return-to-lesson{color:#fff;background:#6541c1;border-radius:14px;width:100%;padding:12px 16px;font-weight:700}.lesson-side .chip-layer{background:0 0;border:0;flex:auto;min-height:0;padding:0}.chat-log{overscroll-behavior:contain;flex-direction:column;flex:auto;gap:8px;min-height:0;margin:0;padding:4px 2px;list-style:none;display:flex;overflow-y:auto}.chat-bubble{max-width:88%;font-size:var(--text-base);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:16px;padding:8px 12px;line-height:1.45}.chat-chip{border:1px solid var(--border);background:#fff;border-bottom-left-radius:4px;align-self:flex-start}.chat-you{background:var(--primary);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.chat-prompt{color:var(--primary-dark);font-weight:800}.chat-bubble.is-now{border-left:3px solid var(--primary);background:#f4f2ff}.chat-now{font-size:var(--text-sm);color:var(--primary-dark);margin-bottom:2px;font-weight:700;display:block}.chat-thinking{color:#615773}@media (max-width:900px){.lesson-shell .lesson-body{grid-template-columns:minmax(0,1fr)}.lesson-shell .lesson-stage{display:contents}.lesson-shell{padding-bottom:88px}.lesson-head .lesson-ask-slim{color:#fff;background:#6541c1;border-color:#6541c1;flex-shrink:0;display:inline-block}.mobile-ask-chip{z-index:5;color:#fff;background:#6541c1;border-radius:999px;padding:12px 20px;font-weight:800;display:block;position:fixed;bottom:16px;right:20px;box-shadow:0 3px 12px #26203633}.lesson-shell .lesson-side{display:none}.lesson-shell .lesson-side.is-open{z-index:70;height:auto;padding:12px 16px calc(12px + env(safe-area-inset-bottom));box-shadow:none;background:#fff;border:0;border-radius:0;display:flex;position:fixed;inset:0}.lesson-side-close{display:inline-block}.lesson-side .chip-layer{box-shadow:none}}@media (max-width:600px){div.lesson-shell{gap:12px;padding:0 12px 24px}.lesson-shell .lesson-head{gap:8px;min-height:52px;padding:6px 4px}.lesson-shell .lesson-head-text,.lesson-shell .lesson-meta,.lesson-phase-word{display:none}.lesson-head-progress{min-width:0}.lesson-menu{flex-shrink:0;display:block;position:relative}.lesson-menu summary{cursor:pointer;color:#615773;border-radius:50%;place-items:center;width:40px;height:40px;list-style:none;display:grid}.lesson-menu summary::-webkit-details-marker{display:none}.lesson-menu-items{z-index:5;border:1px solid var(--border);background:#fff;border-radius:14px;flex-direction:column;gap:8px;min-width:10rem;padding:10px;display:flex;position:absolute;top:44px;right:0;box-shadow:0 6px 18px #26203622}.mobile-ask-chip,.lesson-shell .mobile-ask-chip{display:none}.lesson-shell .lesson-body{padding-top:0}.teaching-board{background:#fff;border:1px solid #d9d1f3;border-radius:16px;padding:14px}.teaching-board h3{margin:4px 0 10px}.teaching-board .scene{padding:6px}.teaching-caption{gap:10px;margin-top:12px}.teaching-caption img{width:36px;height:36px}.teaching-passage{min-height:108px}.lesson-shell .teaching-board .teaching-controls{padding-top:12px}.lesson-shell .teaching-controls .teaching-next{flex:100%;order:-1;min-height:46px;margin-left:0}.lesson-shell .teaching-controls .teaching-caption-count{margin-left:auto}}@keyframes passage-arrives{0%{opacity:.5;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.teaching-passage{animation:none}}.teaching-code-fragment{white-space:pre;font-size:var(--text-base);background:#f7f2fc;border:1px solid #dfd2ee;border-radius:14px;margin:18px 0;padding:20px;line-height:1.7;overflow-x:auto}.teaching-runnable{border-top:1px solid #dfd2ee;margin-top:24px;padding-top:18px}.teaching-runnable>summary{cursor:pointer;color:#6541a0;font-weight:800}.teaching-board{scroll-margin-top:76px}.concept-check{font-size:var(--text-base);background:#faf7ff;border:1px solid #d9d1f3;border-radius:16px;margin:20px 0;padding:18px}.concept-check legend{font-weight:800}.concept-check p{line-height:1.6}.concept-check-choices{flex-wrap:wrap;gap:10px;display:flex}.concept-check button{text-align:left;background:#fff;border:1px solid #d9d1f3;border-radius:12px;padding:10px 14px}.concept-check button[aria-pressed=true]{border-color:var(--primary);background:#eee3ff}.lesson-side-expand{display:none}@media (max-width:900px){.lesson-shell .lesson-side.is-open{border:1px solid #d9d1f3;border-radius:20px;height:min(32dvh,280px);padding:12px;inset:auto 12px 12px;box-shadow:0 4px 22px #26203622}.lesson-shell .lesson-side.is-expanded{height:min(55dvh,480px)}.lesson-shell:has(.lesson-side.is-open){padding-bottom:calc(min(32dvh,280px) + 24px)}.lesson-shell:has(.lesson-side.is-expanded.is-open){padding-bottom:calc(min(55dvh,480px) + 24px)}.lesson-side-expand{display:inline-flex}}@media (max-width:600px){.lesson-shell{--lesson-bar:86px}.lesson-shell .lesson-head{flex-wrap:wrap}.lesson-head-progress{flex:1 1 0;min-width:0}.lesson-shell .lesson-head-text{flex:100%;order:5;display:block}.lesson-shell .lesson-title{font-size:var(--text-sm)}.teaching-board{scroll-margin-top:100px}}.chat-log .chat-bubble{animation:.22s cubic-bezier(.22,1,.36,1) both bubble-in}.chat-chip{transform-origin:0 100%}.chat-you{transform-origin:100% 100%}.chat-typing{align-items:center;gap:5px;min-height:0;padding:12px 14px;display:inline-flex}.typing-dot{background:var(--primary);opacity:.35;border-radius:50%;width:7px;height:7px;animation:1.1s ease-in-out infinite typing-bounce}.typing-dot:nth-of-type(2){animation-delay:.16s}.typing-dot:nth-of-type(3){animation-delay:.32s}@keyframes bubble-in{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes typing-bounce{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.scene-svg .obj,.scene-svg .wire-run{transform-box:fill-box;transform-origin:50%;transition:filter .3s,stroke .3s,stroke-width .3s,opacity .3s;animation:.45s cubic-bezier(.22,1,.36,1) both board-in}.scene-svg .wire-run{animation-name:wire-in}.scene-svg .obj:nth-of-type(2),.scene-svg .wire-run:nth-of-type(2){animation-delay:40ms}.scene-svg .obj:nth-of-type(3),.scene-svg .wire-run:nth-of-type(3){animation-delay:80ms}.scene-svg .obj:nth-of-type(4),.scene-svg .wire-run:nth-of-type(4){animation-delay:.12s}.scene-svg .obj:nth-of-type(5),.scene-svg .wire-run:nth-of-type(5){animation-delay:.16s}.scene-svg .obj:nth-of-type(6),.scene-svg .wire-run:nth-of-type(6){animation-delay:.2s}.scene-svg .obj:nth-of-type(n+7),.scene-svg .wire-run:nth-of-type(n+7){animation-delay:.24s}.scene-svg .obj.is-lit{animation:.45s cubic-bezier(.22,1,.36,1) both board-in,1.1s ease-in-out .3s 2 lit-pulse}@keyframes board-in{0%{opacity:0;transform:translateY(4px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes wire-in{0%{opacity:0}to{opacity:1}}@keyframes lit-pulse{0%,to{filter:drop-shadow(0 0 1.6px color-mix(in srgb, var(--primary) 85%, transparent))}50%{filter:drop-shadow(0 0 3.4px color-mix(in srgb, var(--primary) 95%, transparent))}}.scene-svg circle,.scene-svg rect{transition:cx .35s cubic-bezier(.22,1,.36,1),cy .35s cubic-bezier(.22,1,.36,1),r .3s,width .35s cubic-bezier(.22,1,.36,1),height .35s cubic-bezier(.22,1,.36,1),fill .3s,stroke .3s,opacity .3s}.scene-svg .carrier,.scene-svg .probe-carrier{transition:none}.scene-svg .just-changed{transform-box:fill-box;transform-origin:50%;animation:.8s ease-out value-flash}@keyframes value-flash{0%{filter:drop-shadow(0 0 #0000);transform:scale(1)}25%{filter:drop-shadow(0 0 2.6px color-mix(in srgb, var(--primary) 90%, transparent));transform:scale(1.05)}to{filter:drop-shadow(0 0 #0000);transform:scale(1)}}.scene-svg .wire-run,.scene-svg .plot-trace{stroke-dasharray:1;animation:.7s cubic-bezier(.22,1,.36,1) backwards line-draw}.scene-svg .wire-run.is-lit,.scene-svg .plot-trace{stroke-dasharray:1}@keyframes line-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.code-listing li{transition:background-color .18s,border-color .18s}@media (prefers-reduced-motion:reduce){.scene-svg .just-changed,.scene-svg .wire-run,.scene-svg .plot-trace{animation:none}.chat-log .chat-bubble,.typing-dot,.scene-svg .obj,.scene-svg .wire-run,.scene-svg .obj.is-lit,.scene-svg circle,.scene-svg rect{transition:none;animation:none}.typing-dot{opacity:.7}}.circuit-probe{gap:12px;display:grid}.circuit-probe [data-object]{cursor:pointer}.probe-card{background:#fff;border:1px solid #e4e0ee;border-radius:12px;gap:10px;padding:12px 14px;display:grid}.probe-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.probe-head label{font-size:var(--text-sm);color:#615773;align-items:center;gap:8px;font-weight:700;display:flex}.probe-head select{min-width:12rem;min-height:44px;font-size:var(--text-base);color:inherit;background:#fff;border:1px solid #d8d2e6;border-radius:10px;padding:0 10px}.probe-status{font-size:var(--text-sm);color:#615773}.probe-hint,.probe-refusal{font-size:var(--text-base);margin:0;line-height:1.45}.probe-refusal{color:#8a3b12}.probe-failed{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.probe-retry{min-height:44px;font-size:var(--text-base);cursor:pointer;background:#fff;border:1px solid #d8d2e6;border-radius:10px;padding:0 16px;font-weight:700}.probe-readings{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:8px;margin:0;display:grid}.probe-readings div{background:#f6f4fb;border-radius:10px;padding:8px 10px}.probe-readings dt{font-size:var(--text-sm);color:#615773}.probe-readings dd{font-size:var(--text-lg);margin:2px 0 0;font-weight:700}.probe-stepper{align-items:center;gap:10px;display:flex}.probe-stepper button{width:44px;height:44px;font-size:var(--text-xl);cursor:pointer;background:#fff;border:1px solid #d8d2e6;border-radius:10px;line-height:1}.probe-stepper button:disabled{opacity:.45;cursor:default}.probe-stepper output{text-align:center;min-width:6rem;font-size:var(--text-lg);font-weight:700}.probe-stepper button.probe-flip{width:auto;font-size:var(--text-base);padding:0 16px;font-weight:700}.probe-question{font-size:var(--text-lg);margin:0;font-weight:700;line-height:1.4}.probe-guesses{flex-wrap:wrap;gap:10px;display:flex}.probe-guesses button{min-height:44px;font-size:var(--text-base);cursor:pointer;background:#fff;border:1px solid #d8d2e6;border-radius:10px;padding:0 18px;font-weight:700}.probe-guesses button:disabled{opacity:.5;cursor:default}.probe-verdict{font-size:var(--text-base);color:#8a3b12;margin:0;line-height:1.45}.probe-verdict.is-right{color:#1f6b3a}.code-workspace{color:#30263b;background:#fff;border:2px solid #d9caef;border-radius:22px;min-width:0;margin:22px 0;padding:22px}.code-status{margin:14px 0;display:block}.code-heading{justify-content:space-between;align-items:start;gap:12px;display:flex}.code-heading h3{font-size:var(--text-xl);margin:4px 0 10px}.code-eyebrow{font-size:var(--text-sm);letter-spacing:1.4px;color:#7941b5;font-weight:900}.code-language{background:#f0e8fa;border-radius:8px;padding:6px 12px;font-weight:900}.code-workspace p{line-height:1.6}.code-workspace button{color:#633098;font:inherit;cursor:pointer;background:#f6f1fc;border:1px solid #d9caef;border-bottom-width:3px;border-radius:10px;padding:9px 13px;font-weight:800}.code-workspace button:disabled{opacity:.45;cursor:default}:is(.code-workspace button:focus-visible,.code-workspace input:focus-visible,.code-workspace textarea:focus-visible,.code-workspace select:focus-visible){outline-offset:2px;outline:3px solid #965ada}.code-walkthrough,.code-challenge{background:#f7f2ff;border-radius:12px;margin:14px 0;padding:16px}.code-walkthrough p,.code-challenge p{margin:8px 0}.code-example-picker{align-items:center;gap:12px;margin:18px 0;font-weight:800;display:flex}.code-example-picker select{width:100%;min-width:0;color:inherit;background:#fff;border:1px solid #d9caef;border-radius:8px;padding:10px}.code-file-bar{color:#e2d9ed;background:#262131;border-radius:12px 12px 0 0;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;display:flex}.code-file-bar button{font-size:var(--text-sm)}.code-listing{color:#efedf5;max-height:400px;font:var(--text-sm)/1.8 ui-monospace, SFMono-Regular, Consolas, monospace;background:#191620;border-radius:0 0 12px 12px;margin:0;padding:14px 0;list-style:none;overflow:auto}.code-listing li{white-space:pre;border-left:3px solid #0000;min-width:max-content;padding:1px 16px;display:flex}.code-listing li>span{color:#a69ab8;-webkit-user-select:none;user-select:none;flex-shrink:0;width:30px}.code-listing code{font:inherit;color:inherit}.code-listing .code-current{background:#42304f;border-left-color:#b78bed}.code-editor-label{color:#efedf5;background:#191620;border-radius:0 0 12px 12px;padding:12px;display:block}.code-editor-label>span{font-size:var(--text-sm);margin-bottom:6px;display:block}.code-workspace .code-editor{box-sizing:border-box;resize:vertical;color:#efedf5;width:100%;min-height:320px;font:var(--text-sm)/1.8 ui-monospace, SFMono-Regular, Consolas, monospace;tab-size:4;white-space:pre;background:#191620;border:0;padding:8px;display:block;overflow:auto}.code-input{margin:16px 0;font-weight:800;display:block}.code-input textarea{box-sizing:border-box;width:100%;font:var(--text-sm)/1.5 monospace;border:1px solid #d9caef;border-radius:8px;margin-top:6px;padding:10px;display:block}.code-controls{flex-wrap:wrap;gap:8px;display:flex}.code-controls>button:first-child{color:#fff;background:#793bc0}.code-status{font-size:var(--text-sm);background:#f7f4fb;border-radius:8px;padding:12px}.code-timeline{font-size:var(--text-sm);flex-direction:column;gap:8px;margin:14px 0;display:flex}.code-timeline input{accent-color:#793bc0;width:100%}.code-console{color:#e9dfef;background:#191620;border-radius:12px;padding:16px}.code-console b{font-size:var(--text-sm);color:#beb0d0}.code-console pre,.code-errors pre{white-space:pre-wrap;overflow-wrap:anywhere;font:var(--text-sm)/1.6 monospace;max-height:220px;overflow:auto}.code-errors{color:#8a2831;background:#fff0f0;border-radius:12px;margin-top:12px;padding:14px}.code-state{margin-top:18px}.code-state p{font-size:var(--text-sm)}.code-state label{font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.code-state input{border:1px solid #d9caef;border-radius:8px;max-width:110px;padding:8px}.code-registers{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}.code-registers>div{background:#faf8fc;border:1px solid #e4dcef;border-radius:10px;flex-direction:column;gap:4px;padding:10px;display:flex}.code-registers .code-changed{background:#ece0ff;border-color:#a679d4}.code-registers span{font-size:var(--text-sm)}.code-symbols{flex-wrap:wrap;gap:6px;margin:12px 0;display:flex}.code-symbols button{font-size:var(--text-sm)}.code-memory{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.code-memory>div{font-size:var(--text-sm);background:#f6f3fa;border-radius:8px;flex-direction:column;gap:4px;padding:8px;display:flex}.code-table-scroll{overflow:auto}.code-state table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.code-state th,.code-state td{text-align:left;border-bottom:1px solid #e7dff0;padding:10px}.code-runtime-note{font-size:var(--text-sm);color:#695d75}.code-ask{width:100%}@media (max-width:600px){.code-workspace{border-radius:16px;padding:14px}.code-registers,.code-memory{grid-template-columns:repeat(2,minmax(0,1fr))}.code-heading h3{font-size:var(--text-lg)}.code-controls button{font-size:var(--text-sm);flex:42%}.code-listing,.code-workspace .code-editor{font-size:var(--text-sm)}.code-example-picker{flex-direction:column;align-items:stretch}.code-file-bar{padding:10px}.code-walkthrough{padding:12px}}@media (prefers-reduced-motion:reduce){.code-workspace *{scroll-behavior:auto!important}}.code-note-fragment{white-space:pre;background:#fff;border:1px solid #dfd2ee;border-radius:12px;padding:14px;overflow-x:auto}.code-listing [data-explaining]{background:#f3e8ff;border-left:4px solid #8500d6}.strikes-panel{gap:16px;display:grid}.strikes-intro{font-size:var(--text-sm,13px);color:#655d73;margin:0}.strikes-error{font-size:var(--text-sm,13px);color:#b3261e}.strikes-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.strikes-list li{border:2px solid #e5dff0;border-radius:16px;gap:8px;padding:16px;display:grid}.strikes-list li.strike-reversed{opacity:.6}.strike-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.strike-category{font-weight:700;font-size:var(--text-base,16px);color:#2a2438}.strike-date{font-size:var(--text-sm,13px);color:#655d73}.strike-reversed-badge{font-size:var(--text-sm,13px);color:#1b7a3d;background:#e6f6ec;border-radius:999px;padding:2px 10px;font-weight:700}.strike-reason{font-size:var(--text-base,16px);color:#2a2438;margin:0}.strike-appeal-form{gap:8px;display:grid}.strike-appeal-form textarea{font:inherit;resize:vertical;border:1px solid #e5dff0;border-radius:10px;padding:8px 10px}.strike-appeal-actions{justify-content:flex-end;gap:8px;display:flex}.strike-status{font-size:var(--text-sm,13px);color:#7900cb;margin:0;font-weight:600}.notes-upload-zone{max-width:340px}.notes-list{gap:12px;margin:16px 0;padding:0;list-style:none;display:grid}.notes-list li{align-items:center;gap:12px;margin:0;display:flex}.notes-list li>div{flex:auto;min-width:0}.notes-list li>button{flex-shrink:0}.notes-list input[type=checkbox]{flex-shrink:0;width:22px;height:22px}.notes-chip{color:#6813a6;font-weight:700;font-size:var(--text-sm);background:#f0e5fa;border-radius:8px;padding:4px 8px;display:inline-block}.notes-note{color:var(--community-muted);font-size:var(--text-sm);line-height:1.6}.notes-text{white-space:pre-wrap;overflow-wrap:anywhere;max-height:50vh;line-height:1.65;overflow-y:auto}.notes-result{margin-top:16px;display:block}.notes-result h4{margin:14px 0 6px}.notes-working{margin:8px 0 12px;padding-left:22px;line-height:1.6}.notes-working li+li{margin-top:4px}.notes-image{border:1px solid var(--community-border);border-radius:12px;max-width:100%}@media (prefers-reduced-motion:reduce){.notes-list,.notes-text{scroll-behavior:auto}}.topic-finder{border:2px solid var(--border,#e5dff0);background:var(--card,#fff);border-radius:20px;min-width:0;margin:0 0 24px;padding:24px}.topic-finder header{align-items:center;gap:14px;margin-bottom:16px;display:flex}.topic-finder h2,.topic-finder h3,.topic-finder p{margin:0 0 8px}.topic-finder h2{font-size:var(--text-lg)}.topic-finder h3{font-size:var(--text-base)}.topic-finder form{gap:10px;display:flex}.topic-finder input{border:2px solid var(--border,#e5dff0);background:var(--background,#fff);min-width:0;color:inherit;font:inherit;border-radius:12px;flex:1;padding:14px}.topic-finder button{border:2px solid var(--border,#e5dff0);background:var(--card,#fff);color:inherit;font:inherit;cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-weight:700;display:inline-flex}.topic-finder form button,.topic-actions button:first-child{color:#fff;background:#8500d6;border-color:#8500d6}.topic-finder button:disabled{opacity:.55;cursor:default}.topic-finder .topic-hint{color:var(--muted-foreground,#655d73);font-size:var(--text-sm);margin-top:10px}.topic-turn{overflow-wrap:anywhere;margin-top:22px}.topic-question{background:var(--muted,#f6effc);border-radius:12px;padding:12px 16px}.topic-turn ol{gap:12px;margin:16px 0 0;padding:0;list-style:none;display:grid}.topic-turn li{border:1px solid var(--border,#e5dff0);border-radius:14px;padding:18px}.topic-turn small{color:var(--muted-foreground,#655d73);margin-bottom:6px;display:block}.topic-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.topic-finder :focus-visible{outline-offset:3px;outline:3px solid #ad62ed}@media (max-width:640px){.topic-finder{padding:16px}.topic-finder form,.topic-actions{flex-direction:column}}
