:root{font-family:Segoe UI,Arial,sans-serif;color:#223c3a;background:#f7f5ef;font-synthesis:none;--green:#235e51;--orange:#ad4829;--ink:#223c3a;--muted:#536562;--line:#d9ded3}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button{cursor:pointer;min-height:44px}button:disabled{cursor:default;opacity:.5}button:focus-visible,input:focus-visible{outline:3px solid #b95330;outline-offset:4px}button{transition:background .15s,transform .15s}button:hover:not(:disabled){filter:brightness(.96)}p{line-height:1.6}h1,h2,p{overflow-wrap:anywhere}button,input{max-width:100%}h1{letter-spacing:-.055em;line-height:1.06;font-size:clamp(38px,5vw,66px);font-weight:750}h2{letter-spacing:-.03em}a{color:var(--green)}.app-shell{width:min(100%,1240px);min-height:100dvh;margin:auto;padding:24px 40px 32px}.lesson-header{display:grid;grid-template-columns:1fr auto 160px;gap:36px;align-items:center;min-height:56px;padding-bottom:20px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;border:0;background:transparent;font-size:26px;font-weight:750;letter-spacing:-1px;color:var(--ink);padding:0;justify-self:start}.brand>span{display:grid;place-items:center;background:var(--green);color:#fff7e7;width:44px;height:44px;border-radius:14px 14px 14px 3px;font-size:28px}.nav-link{background:none;border:0;color:var(--ink);font-weight:600}.nav-link span{margin-left:12px}.header-progress{display:flex;align-items:center;gap:12px;font-size:13px;font-variant-numeric:tabular-nums}.progress-track{height:7px;background:#dce2d8;border-radius:20px;overflow:hidden;flex:1}.progress-track i{display:block;height:100%;background:var(--green);border-radius:inherit;transition:width .35s}.header-progress b{white-space:nowrap}.back-button{width:44px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--ink);font-size:24px}.screen-lesson .lesson-header{grid-template-columns:44px 1fr 180px;gap:16px}.topic-label span{display:block;font-size:12px;color:var(--muted);margin-bottom:3px}.topic-label strong{font-size:16px}.eyebrow,.lesson-number{color:var(--orange);font-size:14px;font-weight:650;margin:0 0 14px}.home-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:72px 64px;padding:80px 0 32px;align-items:center}.home-copy h1{margin:18px 0 24px}.home-description{font-size:18px;color:var(--muted);max-width:470px;margin-bottom:30px}.primary-button,.sheet-primary{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:56px;padding:14px 24px;border:0;border-radius:12px;background:var(--green);color:#fff;font-size:16px;font-weight:650;text-align:left}.primary-button:active,.sheet-primary:active{transform:translateY(1px)}.small-note{font-size:13px;color:var(--muted);margin:14px 0}.resume-label{font-size:14px;color:var(--muted)}.resume-label strong{display:block;font-size:20px;color:var(--ink);margin-top:4px}.learning-illustration{position:relative;min-width:0;min-height:360px;padding:40px 30px 32px;border:1px solid #d4dccf;border-radius:36px;background:#edf0e5;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;transform:rotate(2deg)}.illustration-caption{font-size:14px;color:var(--muted);margin-bottom:24px}.demo-block{padding:16px 14px;background:var(--green);color:#fff;border-radius:10px;font-size:15px;box-shadow:0 5px #184437;transform:rotate(-4deg);white-space:nowrap}.demo-block span{background:#e3efdf;color:#234b41;padding:7px;border-radius:6px;margin-left:6px;font-size:14px}.bridge-arrow{font-size:32px;color:var(--orange);align-self:center;padding:14px}.demo-code{background:#223c3a;color:#eef5e9;border-radius:12px;padding:22px 14px;font:14px/1.6 Consolas,monospace;white-space:nowrap;align-self:flex-end}.demo-code span{color:#f3b18e}.demo-code b{font-weight:400;color:#c7dfaa}.bottom-caption{margin:20px 0 0;align-self:flex-end}.illustration-seal{position:absolute;right:-14px;top:-25px;display:grid;place-items:center;width:66px;height:66px;border-radius:50%;background:#e8ac80;border:7px solid #f7f5ef;font:700 20px Consolas,monospace;transform:rotate(9deg)}.learning-steps{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:32px;border-top:1px solid var(--line);padding-top:28px}.learning-steps p{margin:0;display:grid;grid-template-columns:36px 1fr;gap:5px 12px}.learning-steps b{grid-row:span 2;font:16px Consolas,monospace;color:var(--orange);padding-top:3px}.learning-steps strong{font-size:18px}.learning-steps span{font-size:14px;color:var(--muted)}.site-footer{display:flex;justify-content:space-between;gap:20px;margin-top:48px;font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:20px}.course-path{max-width:720px;margin:56px auto}.course-path h1{font-size:48px;margin:12px 0 18px}.path-intro{color:var(--muted);font-size:17px}.course-path ol{list-style:none;padding:0;margin:36px 0}.course-path li{position:relative;padding-bottom:14px}.course-path li:not(:last-child):before{content:"";position:absolute;left:39px;top:50px;bottom:0;border-left:2px solid var(--line)}.course-path li>button{position:relative;display:flex;align-items:center;width:100%;gap:20px;text-align:left;padding:18px;border:1px solid transparent;border-radius:14px;color:var(--ink);background:transparent}.course-path .current>button{border-color:var(--green);background:#eaf0e5}.path-number{flex:0 0 42px;display:grid;place-items:center;height:42px;background:#f7f5ef;border:1px solid #acbab0;border-radius:50%;font-weight:650}.complete .path-number{background:var(--green);color:#fff;border:0}.path-arrow{margin-left:auto;font-size:22px}.course-path small,.course-path strong,.course-path em{display:block}.course-path small{font-size:12px;color:var(--muted);margin-bottom:5px}.course-path strong{font-size:18px}.course-path em{font-style:normal;font-size:12px;margin-top:6px;color:var(--muted)}.finish-screen{max-width:620px;text-align:center;margin:80px auto}.finish-screen h1{font-size:54px}.finish-screen p{color:var(--muted);font-size:18px}.finish-screen button{margin:32px auto}.finish-mark{display:grid;place-items:center;width:80px;height:80px;background:var(--green);color:#fff;border-radius:50%;font-size:36px;margin:0 auto 26px}.screen-lesson{padding-bottom:110px}.lesson-flow{display:grid;grid-template-columns:340px minmax(0,1fr);gap:40px;margin-top:44px;align-items:start}.task-intro{padding-top:6px}.task-intro h1{font-size:40px;margin:14px 0 20px}.instruction{font-size:15px;color:var(--muted);margin-bottom:20px}.task-copy{font-size:19px;font-weight:650;line-height:1.5;margin:0}.step-callout{margin-top:22px;padding:16px 18px;border-left:3px solid var(--green);background:#eaf0e5;border-radius:0 10px 10px 0}.step-callout span{font-size:12px;font-weight:700;color:var(--green)}.step-callout p{margin:4px 0 0;font-size:14px;color:#384e47}.hint-area{margin-top:16px}.text-button{padding:8px 0;border:0;background:none;color:var(--green);text-decoration:underline;text-underline-offset:4px;font-size:14px}.hint-text{font-size:14px;color:var(--muted);margin:6px 0}.workspace-section{padding:18px;border:1px solid var(--line);border-radius:20px;background:#fffcf5;min-width:0}.workspace-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px}.workspace-heading h2{font-size:18px;margin:0}.quiet-button{border:0;background:#ebece3;color:#4c6058;padding:8px 12px;border-radius:8px;font-size:13px}.blockly-host{width:100%;height:390px;position:relative;overflow:hidden;border:1px solid #e0e1d6;border-radius:12px}.blocklyMainBackground{stroke:none}.blocklyText{font-family:Segoe UI,Arial,sans-serif!important;font-size:14px!important}.blocklyScrollbarHandle{fill:#b5c3b9}.editor-tools{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin-top:8px}.editor-tools button{min-width:44px;border:0;border-radius:8px;background:transparent;color:#435f55;padding:8px;font-size:13px}.editor-tools button:last-child{margin-left:auto}.editor-note{font-size:12px;color:var(--muted);line-height:1.4;margin:8px 2px 14px;min-height:34px}.workspace-actions{display:flex;gap:10px;flex-wrap:wrap}.workspace-actions button{flex:1;min-height:48px;border-radius:10px;padding:10px 12px;font-size:13px;font-weight:650;white-space:nowrap}.add-block-button{background:var(--green);border:1px solid var(--green);color:#fff}.add-block-button span{font-size:20px;margin-right:5px}.code-button{background:none;border:1px solid #becbbe;color:var(--green)}.code-button span{font:16px Consolas,monospace;margin-right:5px}.primary-action{position:fixed;z-index:5;bottom:0;left:0;right:0;display:flex;justify-content:center;align-items:center;gap:40px;border-top:1px solid var(--line);padding:16px 24px max(16px,env(safe-area-inset-bottom));background:#f7f5ef}.primary-action>span{color:var(--muted);font-size:14px}.primary-action button{min-width:270px;min-height:52px;border:0;border-radius:11px;background:var(--orange);color:#fff;font-weight:650;font-size:16px}.lesson-storage{text-align:right;font-size:12px;color:var(--muted);margin-top:18px}.network-note{border-left:3px solid var(--orange);padding:10px 15px;background:#f8e9d8;font-size:13px}.native-dialog{width:min(600px,calc(100% - 40px));max-height:85dvh;margin:auto;border:0;border-radius:22px;padding:32px;background:#fffcf5;color:var(--ink);box-shadow:0 20px 80px #132f3a33;overflow:auto}.native-dialog::backdrop{background:#17363066}.native-dialog h2{font-size:28px;margin:4px 42px 20px 0}.sheet-close{position:absolute;right:14px;top:14px;width:44px;height:44px;border:0;background:#edf0e6;border-radius:12px;font-size:25px;color:var(--ink)}.modal-intro{font-size:14px;color:var(--muted);margin-bottom:20px}.category-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 18px}.category-tabs button{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:30px;padding:8px 12px;font-size:13px}.category-tabs button.active{background:var(--green);color:#fff;border-color:var(--green)}.block-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.block-options button{position:relative;padding:14px 30px 14px 14px;min-height:76px;border:1px solid var(--line);border-radius:12px;background:none;text-align:left;color:var(--ink)}.block-options strong{font-size:14px;display:block}.block-options span{font-size:12px;display:block;margin-top:5px;color:var(--muted)}.block-options i{position:absolute;right:12px;top:23px;font-size:20px;font-style:normal}.variable-form{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.variable-form label{display:block;font-size:14px;margin-bottom:10px}.variable-form>div{display:flex;gap:8px}.variable-form input{min-width:0;flex:1;padding:10px;border:1px solid #a5b5a9;border-radius:8px;background:#fff;font-size:16px}.variable-form button{border:0;border-radius:8px;background:var(--green);color:#fff;padding:10px 14px}.variable-form p{font-size:13px}.python-code{border-radius:12px;background:#223c3a;color:#edf2e5;padding:22px 16px;overflow:auto;font:14px/1.8 Consolas,monospace;tab-size:4;min-height:170px}.code-line{display:flex;white-space:pre}.line-number{-webkit-user-select:none;user-select:none;min-width:30px;text-align:right;margin-right:18px;color:#a4b7aa}.syntax-keyword{color:#ffbc91}.syntax-string{color:#c7e4a7}.syntax-number{color:#a6dcee}.sheet-note{font-size:12px;color:var(--muted)}.feedback-message{font-size:16px;line-height:1.6;margin-bottom:24px}.output-preview{border:1px solid var(--line);border-radius:12px;padding:16px;margin:20px 0;background:#f1f1e8}.output-preview>span{font-size:12px;color:var(--muted)}.output-preview pre{font:15px/1.6 Consolas,monospace;margin:10px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;max-height:200px;overflow:auto}.sheet-primary{width:100%;justify-content:center;margin-top:20px;min-height:52px}.is-success{border-top:5px solid var(--green)}.result-mark{display:grid;place-items:center;background:var(--green);color:#fff;width:46px;height:46px;font-size:24px;border-radius:50%;margin-bottom:20px;animation:pop .25s ease-out}@keyframes pop{0%{transform:scale(.6)}to{transform:scale(1)}}@media(min-width:1600px){.app-shell{padding-top:40px}.home-layout{padding-top:110px}.lesson-flow{margin-top:70px;grid-template-columns:370px minmax(0,1fr)}.blockly-host{height:470px}}@media(max-width:1000px){.app-shell{padding-left:26px;padding-right:26px}.home-layout{gap:40px 30px}.home-copy h1{font-size:48px}.learning-illustration{padding:30px 16px;min-height:340px}.demo-block,.demo-block span,.demo-code{font-size:12px}.lesson-flow{grid-template-columns:260px minmax(0,1fr);gap:24px}.task-intro h1{font-size:34px}.task-copy{font-size:17px}.workspace-actions button{font-size:12px;padding:10px 8px}}@media(max-width:760px){.app-shell{padding:18px 20px 26px}.lesson-header{gap:16px;grid-template-columns:1fr auto}.header-progress{display:none}.screen-lesson .header-progress{display:flex}.brand{font-size:23px}.home-layout{grid-template-columns:1fr;gap:36px;padding-top:40px}.home-copy h1{font-size:clamp(42px,9vw,58px);max-width:550px;margin:14px 0 22px}.home-description{font-size:17px;max-width:580px;margin-bottom:24px}.home-copy .primary-button{width:100%}.small-note{text-align:center}.learning-illustration{margin:0 8px;min-height:300px;padding:30px;max-width:500px;width:calc(100% - 16px);justify-self:center}.demo-block{font-size:14px}.demo-block span,.demo-code{font-size:13px}.learning-steps{grid-template-columns:1fr;gap:22px;padding-top:26px}.site-footer{flex-direction:column;gap:10px;margin-top:32px}.course-path{margin-top:38px}.course-path h1{font-size:40px}.course-path li>button{padding:14px 8px;gap:14px}.course-path li:not(:last-child):before{left:29px}.course-path strong{font-size:17px}.path-arrow{font-size:18px}.finish-screen{margin:50px auto}.finish-screen h1{font-size:42px}.screen-lesson{padding:12px 16px 110px}.screen-lesson .lesson-header{grid-template-columns:44px 1fr 90px;gap:10px;padding-bottom:12px}.topic-label strong{font-size:14px}.header-progress{gap:8px;font-size:12px}.lesson-flow{display:block;margin-top:26px}.task-intro{padding:0}.task-intro h1{font-size:36px;margin:10px 0 14px}.lesson-number{font-size:13px;margin-bottom:8px}.instruction{font-size:14px;margin:0 0 16px}.task-copy{font-size:18px}.step-callout{margin-top:16px;padding:12px 14px}.hint-area{margin-top:8px;margin-bottom:18px}.workspace-section{padding:12px;border-radius:16px}.blockly-host{height:300px}.workspace-heading h2{font-size:16px}.workspace-actions{gap:8px}.workspace-actions button{font-size:12px;flex-basis:130px;white-space:normal}.editor-tools{gap:0}.editor-tools button{padding:8px 5px;font-size:12px}.editor-note{margin-bottom:10px}.primary-action{padding:12px 16px max(12px,env(safe-area-inset-bottom))}.primary-action>span{display:none}.primary-action button{width:100%;min-width:0;max-width:550px}.lesson-storage{font-size:11px;text-align:center}.native-dialog{width:100%;max-height:88dvh;max-width:none;margin:auto 0 0;border-radius:22px 22px 0 0;padding:28px 20px max(28px,env(safe-area-inset-bottom))}.native-dialog h2{font-size:25px}.block-options{grid-template-columns:1fr}.block-options button{min-height:68px}.python-code{font-size:13px;padding:16px 10px}.line-number{margin-right:10px;min-width:22px}.feedback-message{font-size:15px}}.workspace-section{position:relative;isolation:isolate;z-index:0}.primary-action{z-index:30}.compact-code-toggle{display:none}.code-reveal{display:block}.practice-intro{margin:0 0 14px;padding:11px 13px;border-left:3px solid var(--orange);background:#f8e9d8;border-radius:0 9px 9px 0;font-size:13px;line-height:1.45;color:#4f5149}.editor-loading{display:grid;place-items:center;color:var(--muted)}html{scroll-padding-bottom:105px}.live-mirror{scroll-margin-bottom:110px}.first-command .blockly-host{height:140px!important}.stars{display:inline-flex;gap:3px;font-size:20px;color:#788377;white-space:nowrap}.stars .earned{color:#9a5a15}.total-stars{white-space:nowrap;color:#8c5013;font-size:13px}.screen-lesson .lesson-header{grid-template-columns:44px 1fr 200px}.exercise-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;color:var(--muted)}.novice-flow{grid-template-columns:310px minmax(0,1fr);gap:36px}.novice-flow .task-intro h1{font-size:36px}.next-action{font-size:14px;color:var(--muted);border-left:3px solid var(--green);padding-left:14px}.help-row{margin-top:14px}.help-row span,.hint-area small{display:block;font-size:12px;color:var(--muted)}.learning-work{min-width:0}.coach{border-left:4px solid var(--green);border-radius:0 12px 12px 0;background:#e6edde;padding:14px 18px;margin-bottom:14px}.coach>span{font-size:12px;font-weight:700;color:var(--green)}.coach p{margin:5px 0 0;font-size:15px;line-height:1.5}.coach-target{outline:3px solid #bc622c!important;outline-offset:3px;box-shadow:0 0 0 6px #efdac1!important}.tutorial-focus>.blocklyPath{stroke:#b55627!important;stroke-width:3!important}.tutorial-focus .blocklyFieldRect{stroke:#b55627!important;stroke-width:3!important}.new-block{display:block;color:#9a4a24;font-size:12px;margin-bottom:4px}.live-mirror{margin-top:16px}.live-mirror>div:first-child{display:flex;align-items:center;justify-content:space-between}.live-mirror h2{font-size:17px;margin:0}.live-mirror .python-code{min-height:65px;max-height:230px;margin:4px 0 8px}.live-mirror>p{font-size:13px;color:var(--muted);margin:6px 0}.code-highlight{background:#45694c;outline:1px solid #b9d3a4;border-radius:3px}.live-mirror .slot-explanation{color:var(--orange)}.tools-compact button:nth-child(n+3){display:none}.is-guided .editor-note{display:none}.is-guided .blockly-host{height:245px}.intro-complete{color:var(--green);font-weight:650}.native-dialog>.stars{font-size:34px}.native-dialog .python-code{min-height:70px;max-height:230px}.ui-help{padding-left:22px;line-height:1.7}.ui-help li{margin-bottom:12px}.text-exercise{background:#fffcf5;border:1px solid var(--line);border-radius:18px;padding:24px;min-width:0}.block-meaning{background:var(--green);color:#fff;border-radius:10px;padding:18px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:24px;font-weight:600}.block-meaning>span{background:#e9efdf;color:var(--green);border-radius:8px;padding:8px;font-size:14px}.code-choices{border:0;padding:0;margin:20px 0}.code-choices legend{margin-bottom:16px;font-size:15px}.code-choices label{display:flex;gap:14px;align-items:center;min-height:58px;padding:16px 14px;border:1px solid #bdc8b6;border-radius:12px;margin-bottom:10px;cursor:pointer}.code-choices label.chosen{border:2px solid var(--green);background:#e6edde;padding:15px 13px}.code-choices code{white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px}.code-choices input{accent-color:var(--green);width:20px;height:20px;flex-shrink:0}.code-label{display:block;font-weight:650;margin-bottom:14px}.text-exercise textarea{display:block;width:100%;resize:vertical;min-height:130px;border:1px solid #9daf9d;border-radius:12px;padding:18px;font:16px/1.7 Consolas,monospace;color:#223c3a;background:#fffef8}.text-exercise textarea:focus-visible{outline:3px solid #bc622c;outline-offset:3px}.token-result,.token-options{display:flex;flex-wrap:wrap;gap:8px;padding:14px 0;min-height:70px}.token-result{background:#eaf0e5;border:1px dashed #759478;border-radius:10px;padding:12px;margin:20px 0}.token-result>span{font-size:14px;color:var(--muted)}.token-result button,.token-options button{min-width:44px;padding:10px 14px;border:1px solid #8a9f8e;border-radius:8px;background:#fff;font:16px Consolas,monospace;color:var(--ink)}.rating-rules{font-size:14px;line-height:1.6;margin:24px 0}.rating-rules summary{cursor:pointer;min-height:44px;color:var(--green);font-weight:650}.chapter{margin-top:36px}.chapter-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:24px}.chapter-heading p{margin:0;font-size:13px;color:var(--orange)}.chapter-heading h2{font-size:25px;margin:6px 0}.chapter-heading>span{white-space:nowrap;font-weight:650;color:#8c5013}.chapter-description{font-size:15px;color:var(--muted);margin:8px 0}.chapter .stars{margin-top:7px}.chapter ol{margin-top:18px}.gate-message,.chapter-threshold{background:#eceee1;color:#3d5347;border-left:3px solid #5c7559;padding:14px 16px;border-radius:0 8px 8px 0;font-size:14px;line-height:1.6}.site-footer details{max-width:280px}.site-footer summary{cursor:pointer;min-height:44px}.site-footer details p{font-size:12px}.screen-lesson .header-progress{gap:8px}.screen-lesson .header-progress .progress-track{min-width:28px}.is-guided .hint-area{margin-bottom:10px}@media(max-width:1000px){.novice-flow{grid-template-columns:250px minmax(0,1fr);gap:22px}.novice-flow .task-intro h1{font-size:32px}}@media(max-width:760px){.screen-lesson .lesson-header{grid-template-columns:44px 1fr 128px;gap:8px}.screen-lesson .topic-label strong{font-size:12px}.screen-lesson .header-progress{font-size:11px;gap:5px}.total-stars{font-size:12px}.novice-flow{display:block;margin-top:20px}.novice-flow .task-intro h1{font-size:30px;line-height:1.1;margin:8px 0 12px}.novice-flow .task-copy{font-size:16px;line-height:1.45}.novice-flow .instruction{font-size:14px;margin-bottom:12px}.is-guided .instruction{display:none}.exercise-meta{font-size:12px}.is-guided .help-row{display:none}.help-row{margin-top:8px}.is-guided .task-intro{margin-bottom:16px}.coach{padding:10px 14px;margin-bottom:12px}.coach p{font-size:14px;line-height:1.4}.coach>span{font-size:12px}.is-guided .blockly-host{height:170px}.is-guided .workspace-heading{margin-bottom:8px}.is-guided .workspace-heading h2{font-size:15px}.is-guided .workspace-section{padding:10px}.is-guided .editor-tools{margin-top:2px;height:44px}.is-guided .workspace-actions button{min-height:46px}.live-mirror{margin-top:14px}.live-mirror .python-code{font-size:13px;min-height:58px;padding:12px 10px;max-height:200px}.live-mirror>p{font-size:12px}.text-exercise{padding:18px 14px}.code-choices code,.block-meaning{font-size:14px}.chapter-heading h2{font-size:22px}.chapter-heading>span{font-size:14px}.chapter .path-arrow{display:none}.chapter .path-number{flex-basis:36px;height:36px}.chapter li:not(:last-child):before{left:26px}.native-dialog .python-code{max-height:180px}.novice-flow .hint-area{margin-bottom:18px}}@media(max-width:760px){.compact-code-toggle{display:inline-block;text-align:right}.desktop-code-toggle,.code-compact .code-reveal{display:none}.live-mirror>div:first-child{align-items:flex-start}.live-mirror h2{flex:0 0 auto}.code-expanded .code-reveal{animation:code-reveal .18s ease-out}}@keyframes code-reveal{0%{opacity:.25;transform:translateY(-4px)}to{opacity:1;transform:none}}@media(min-width:761px)and (max-height:850px){.blockly-host{height:290px}.lesson-flow{margin-top:30px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.screen-lesson{width:min(100%,1180px);padding-bottom:108px}.screen-lesson .lesson-header{grid-template-columns:44px auto minmax(100px,1fr);gap:14px;min-height:50px;padding-bottom:12px}.screen-lesson .back-button{height:44px;border-color:#cdd5ca;border-radius:11px}.lesson-position{display:flex;align-items:baseline;gap:7px;white-space:nowrap}.lesson-position span{font-size:12px;color:var(--muted)}.lesson-position strong{font-size:15px;font-variant-numeric:tabular-nums}.screen-lesson .lesson-progress{display:flex;justify-self:end;width:min(100%,260px)}.screen-lesson .lesson-progress .progress-track{height:5px;min-width:80px}.screen-lesson .lesson-flow{display:block;margin:22px auto 0;max-width:1120px}.task-intro{max-width:880px;padding:0}.task-intro .exercise-meta{font-size:12px}.task-intro h1,.novice-flow .task-intro h1{font-size:clamp(24px,3vw,34px);line-height:1.12;margin:6px 0 8px;letter-spacing:-.035em}.task-copy,.novice-flow .task-copy{font-size:clamp(17px,2vw,21px);line-height:1.38;margin:0;font-weight:680}.task-details{margin-top:8px;color:var(--muted);font-size:13px}.task-details summary{display:inline-flex;align-items:center;min-height:36px;color:var(--green);font-weight:650;cursor:pointer}.task-details .instruction{margin:4px 0 8px;max-width:720px;font-size:14px}.task-details .next-action{margin:8px 0 4px}.lesson-help{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:3px}.lesson-help .text-button{min-height:36px;text-decoration:none}.lesson-help .hint-button{color:#8f452a}.hint-area{margin:6px 0 0;max-width:720px}.hint-text{display:flex;gap:12px;align-items:flex-start;margin:0;padding:10px 12px;border-left:3px solid #aa684a;background:#f5e9df;border-radius:0 8px 8px 0;line-height:1.45}.hint-text span{flex:0 0 auto;color:#8f452a;font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.learning-work{margin-top:14px}.coach{margin:0 0 10px;padding:10px 14px;border-left-width:3px;border-radius:0 10px 10px 0}.coach p{font-size:14px;line-height:1.4;margin-top:3px}.block-workspace-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.75fr);gap:14px;align-items:start}.workspace-section{padding:13px;border-radius:16px;background:#fffdf8}.workspace-heading{min-height:36px;margin-bottom:8px}.workspace-heading h2{font-size:16px}.workspace-menu,.editor-menu{position:relative}.workspace-menu summary,.editor-menu summary{display:grid;place-items:center;min-width:44px;min-height:36px;border-radius:8px;color:var(--muted);cursor:pointer;list-style:none;font-weight:700}.workspace-menu summary::-webkit-details-marker,.editor-menu summary::-webkit-details-marker{display:none}.workspace-menu[open] summary,.editor-menu[open] summary{background:#e9ece4}.workspace-menu button,.editor-menu>div{position:absolute;z-index:20;right:0;top:42px;width:max-content;max-width:240px;border:1px solid var(--line);border-radius:10px;background:#fffdf8}.workspace-menu button{padding:9px 13px;color:#8f452a}.editor-menu>div{display:grid;padding:5px}.editor-menu button{min-width:190px;text-align:left;padding:8px 10px}.blockly-host{height:350px;border-color:#dde1d8;border-radius:11px}.first-command .blockly-host{height:300px!important}.editor-tools{justify-content:space-between;min-height:40px;margin:2px 0 0}.editor-tools button{min-height:38px}.undo-button span{font-size:12px}.editor-note{min-height:0;margin:0 2px 8px;font-size:11px}.tools-compact .editor-menu{display:none}.workspace-actions{display:block}.workspace-actions .add-block-button{width:100%;min-height:48px;border-radius:10px;font-size:14px}.add-block-button span{font-size:18px}.python-focus>.blocklyPath{stroke:#bc5d38!important;stroke-width:4px!important;animation:block-focus .65s ease-out}@keyframes block-focus{0%{stroke-width:7px}to{stroke-width:3px}}.is-guided .editor-tools{display:none}.live-mirror{margin:0;border:1px solid var(--line);border-radius:14px;background:#fffdf8;padding:12px}.live-mirror>div:first-child{min-height:36px}.live-mirror h2{font-size:16px}.compact-code-toggle{display:inline-block;text-align:right;text-decoration:none}.desktop-code-toggle,.code-compact .code-reveal{display:none}.code-expanded .code-reveal{display:block;animation:code-reveal .18s ease-out}.live-mirror .python-code{margin:7px 0 8px;min-height:0;max-height:300px;padding:13px 10px;font-size:13px}.live-mirror .code-reveal>p{margin:5px 2px;font-size:12px;line-height:1.45;color:var(--muted)}.interactive-code .code-line[role=button]{cursor:pointer;border-radius:4px}.interactive-code .code-line[role=button]:hover,.interactive-code .code-line[role=button]:focus-visible{background:#365b53;outline:2px solid #d1dfc7;outline-offset:1px}.code-highlight{background:#3d6759;outline:1px solid #bfd3b6}.text-exercise{max-width:860px;padding:20px;border-radius:16px}.support-guided_code .text-exercise,.support-free_code .text-exercise{border-color:#b9c5bb}.support-free_code .exercise-meta,.support-free_code .task-details{opacity:.78}.feedback-panel{position:fixed;z-index:29;left:50%;bottom:82px;transform:translate(-50%);width:min(720px,calc(100% - 32px));max-height:42dvh;overflow:auto;padding:14px 16px;border:1px solid #cfdbcf;border-radius:14px;background:#fffdf8}.feedback-error{border-color:#d9b5a5}.feedback-summary{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:start}.feedback-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--green);color:#fff;font-weight:800}.feedback-error .feedback-mark{background:var(--orange)}.feedback-summary h2{font-size:17px;margin:1px 0 2px}.feedback-message{font-size:13px;line-height:1.45;margin:0;color:var(--muted)}.feedback-summary .stars{font-size:18px}.feedback-panel .intro-complete{margin:7px 0 0 44px;font-size:12px}.feedback-details{margin:8px 0 0 44px}.feedback-details summary{min-height:34px;color:var(--green);font-size:12px;font-weight:650;cursor:pointer}.feedback-details .python-code{min-height:0;max-height:180px;margin:6px 0}.feedback-details .output-preview{margin:7px 0;padding:9px}.primary-action{min-height:76px;padding:10px 20px max(10px,env(safe-area-inset-bottom));background:#f7f5ef}.primary-action button{min-height:50px;border-radius:10px}.primary-action.action-success button{background:var(--green)}.primary-action.action-retry button{background:var(--orange)}.native-dialog{border-radius:18px;padding:25px}.native-dialog h2{font-size:24px}.block-options{gap:8px}.block-options button{min-height:66px;padding:12px 34px 12px 13px}.variable-option{border-color:#a8b8aa!important;background:#eef2e9!important}.sheet-note{line-height:1.45}.lesson-storage{display:none}@media(max-width:760px){.screen-lesson{padding:8px 14px 100px}.screen-lesson .lesson-header{grid-template-columns:44px auto minmax(70px,1fr);gap:9px;padding-bottom:8px}.lesson-position span{display:none}.lesson-position strong{font-size:14px}.screen-lesson .lesson-progress{width:100%}.screen-lesson .lesson-progress .progress-track{min-width:50px}.screen-lesson .lesson-flow,.novice-flow{margin-top:11px}.task-intro h1,.novice-flow .task-intro h1{font-size:23px;margin:3px 0 5px}.task-copy,.novice-flow .task-copy{font-size:16px;line-height:1.35}.task-intro .exercise-meta{font-size:11px}.task-intro .stars{font-size:16px}.task-details{margin-top:3px}.task-details summary{min-height:32px}.lesson-help{gap:14px;margin-top:0}.lesson-help .text-button{min-height:32px;padding:4px 0;font-size:12px}.hint-area{margin-top:3px}.hint-text{padding:8px 10px;font-size:12px}.hint-text span{display:none}.learning-work{margin-top:8px}.coach{padding:8px 11px;margin-bottom:8px}.coach>span{font-size:10px}.coach p{font-size:12px;line-height:1.35}.block-workspace-grid{grid-template-columns:1fr;gap:8px}.workspace-section{padding:9px;border-radius:13px}.workspace-heading{min-height:30px;margin-bottom:5px}.workspace-heading h2{font-size:14px}.workspace-menu summary{min-height:32px}.blockly-host{height:255px}.first-command .blockly-host{height:220px!important}.is-guided .blockly-host{height:220px}.is-guided.first-command .blockly-host{height:205px!important}.editor-tools{min-height:34px}.editor-tools button{min-height:34px;padding:5px}.undo-button span,.editor-note{display:none}.workspace-actions .add-block-button{min-height:46px}.live-mirror{padding:8px 10px;border-radius:11px}.live-mirror>div:first-child{min-height:32px}.live-mirror h2{font-size:14px}.live-mirror .text-button{min-height:32px;padding:4px 0;font-size:12px}.text-exercise{padding:14px 12px}.text-exercise textarea{min-height:120px;padding:13px}.code-choices{margin:12px 0}.code-choices label{min-height:52px;padding:11px}.token-result{margin:12px 0}.feedback-panel{bottom:72px;width:calc(100% - 20px);max-height:38dvh;padding:11px 12px;border-radius:12px}.feedback-summary{grid-template-columns:30px minmax(0,1fr);gap:8px}.feedback-summary .stars{grid-column:2}.feedback-mark{width:28px;height:28px}.feedback-summary h2{font-size:15px}.feedback-message{font-size:12px}.feedback-panel .intro-complete,.feedback-details{margin-left:38px}.primary-action{min-height:68px;padding:8px 14px max(8px,env(safe-area-inset-bottom))}.primary-action button{min-height:48px;max-width:520px}.primary-action>span{display:none}.native-dialog{max-height:82dvh;padding:24px 16px max(20px,env(safe-area-inset-bottom));border-radius:18px 18px 0 0}.native-dialog:before{content:"";display:block;width:38px;height:4px;margin:-13px auto 15px;border-radius:4px;background:#ccd3c9}.native-dialog h2{font-size:21px;margin-bottom:12px}.modal-intro{margin-bottom:12px}.category-tabs{margin-bottom:12px;overflow-x:auto;flex-wrap:nowrap}.category-tabs button{flex:0 0 auto}.block-options button{min-height:60px}}@media(min-width:761px)and (max-height:850px){.screen-lesson .lesson-flow{margin-top:12px}.blockly-host{height:230px}.first-command .blockly-host{height:220px!important}.task-intro h1,.novice-flow .task-intro h1{font-size:29px}.task-details{margin-top:3px}.lesson-help{margin-top:0}.learning-work{margin-top:9px}}:root{--surface:#fffdf8;--success-soft:#eaf0e5;--attention-soft:#f5e9df;--radius-control:10px;--space-1:8px;--space-2:16px;--space-3:24px;--motion:.2s}.format-explanation{font-size:14px;line-height:1.4;color:var(--muted);margin:8px 0 0;max-width:740px}.support-message{padding:12px 16px;margin:0 0 12px;border-left:3px solid var(--green);border-radius:0 var(--radius-control) var(--radius-control) 0;background:var(--success-soft);font-size:14px;line-height:1.45}.lesson-lock-reason{margin:0 12px 6px 80px;font-size:14px;color:var(--muted);line-height:1.4}.feedback-message,.live-mirror .code-reveal>p,.hint-text,.coach p,.sheet-note,.block-options span{font-size:14px}.lesson-help .text-button,.live-mirror .text-button,.task-details summary,.feedback-details summary,.workspace-menu summary,.editor-tools button{min-height:44px}.token-result button,.token-options button{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}.progress-track i{transition:width var(--motion)}.python-focus>.blocklyPath{animation-duration:.25s}.feedback-panel{animation:feedback-arrive var(--motion) ease-out}@keyframes feedback-arrive{0%{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}@media(max-width:760px){.lesson-lock-reason{margin-left:66px}.lesson-help .text-button,.live-mirror .text-button{font-size:14px}.coach>span,.task-intro .exercise-meta{font-size:12px}.feedback-message,.coach p,.hint-text{font-size:14px}.format-explanation{margin-top:6px}.is-guided.first-command .blockly-host{height:175px!important}.feedback-panel{bottom:calc(72px + env(safe-area-inset-bottom))}}@media(min-width:768px){.code-compact .code-reveal{display:block}.compact-code-toggle{display:none}.live-mirror .python-code{font-size:14px}}.support-blocks .code-compact .code-reveal{display:none}.support-blocks .compact-code-toggle{display:inline-block}.text-exercise>.python-code{min-height:64px;margin:16px 0}@media(max-width:760px){.is-guided .first-command .blockly-host{height:175px!important}}@media(min-width:761px)and (max-height:900px){.is-guided .first-command .blockly-host{height:190px!important}}@media(prefers-reduced-motion:reduce){.feedback-panel,.python-focus>.blocklyPath,.code-expanded .code-reveal{animation:none}.progress-track i,button{transition:none}}.ai-tutor-status{margin:6px 0;color:var(--muted);font-size:13px}.ai-tutor-answer{max-width:720px;margin:8px 0;padding:10px 12px;border-left:3px solid var(--green);border-radius:0 8px 8px 0;background:var(--success-soft);font-size:14px}.ai-tutor-answer p{margin:4px 0}.ai-tutor-answer code{display:block;white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0}.ai-error-button{margin:6px 0 0 44px}.ai-feedback-answer{margin:4px 0 0 44px;font-size:14px;line-height:1.45}@media(max-width:760px){.ai-error-button,.ai-feedback-answer{margin-left:38px}}.mobile-only{display:none}.lesson-position strong .desktop-only{display:inline;font-size:inherit;color:inherit;margin:0}.sheet-heading{position:sticky;top:0;z-index:1;display:flex;align-items:start;gap:12px;background:var(--surface);padding:20px 22px 12px}.native-dialog{padding:0;overflow:hidden}.native-dialog .sheet-heading h2{flex:1;margin:8px 0;font-size:24px}.sheet-heading .sheet-close{position:static;flex:0 0 44px}.sheet-body{padding:0 22px 22px;max-height:calc(85dvh - 96px);overflow:auto;overscroll-behavior:contain}.minimal-code-editor{position:relative;display:flex;overflow:hidden;border:1px solid #b9c5bb;border-radius:12px;background:var(--surface)}.minimal-code-editor .editor-line-numbers{position:absolute;z-index:1;left:0;top:0;margin:0;padding:16px 7px;width:36px;color:#71827a;background:var(--surface);font:16px/1.6 Consolas,monospace;text-align:right;transform:translateY(var(--editor-scroll, 0));pointer-events:none}.text-exercise .minimal-code-editor textarea{flex:1;width:0;margin:0;border:0;border-radius:0;resize:vertical;font:16px/1.6 Consolas,monospace;padding:16px 12px 16px 42px;background:transparent;color:var(--ink)}.minimal-code-editor:focus-within{outline:2px solid var(--green);outline-offset:2px}.feedback-panel{position:static;transform:none;translate:none;width:min(720px,100%);max-height:none;overflow:visible;margin:18px auto 0;scroll-margin-bottom:110px}@media(min-width:768px)and (min-height:851px)and (max-height:950px){.screen-lesson .blockly-host{height:300px}.screen-lesson .editor-note{display:none}}@media(max-width:767px){.mobile-only{display:block}.desktop-only{display:none!important}.screen-lesson{width:100%;padding:8px 16px calc(var(--lesson-action-height, 80px) + var(--lesson-keyboard-bottom, 0px) + 16px);min-height:100dvh}.screen-lesson .lesson-header{grid-template-columns:44px minmax(0,1fr) auto;min-height:52px;gap:14px;padding:0 0 8px;border:0}.screen-lesson .back-button{border:0;border-radius:10px;background:transparent}.screen-lesson .lesson-position{grid-column:3;grid-row:1}.lesson-position>span{display:none}.lesson-position strong,.lesson-position strong .mobile-only{display:inline;font-size:14px;color:var(--muted);font-weight:600;margin:0}.screen-lesson .lesson-progress{grid-column:2;grid-row:1;width:100%}.screen-lesson .lesson-progress .progress-track{height:5px;min-width:40px}.screen-lesson .lesson-flow{display:flex;flex-direction:column;align-items:stretch;gap:0;margin:8px 0 0;min-height:calc(var(--lesson-viewport-height, 100dvh) - var(--lesson-action-height, 80px) - 84px)}.task-intro{padding:0}.task-intro .exercise-meta,.task-intro .format-explanation,.task-intro .task-details{display:none}.task-intro h1,.novice-flow .task-intro h1{font-size:14px;font-weight:400;color:var(--muted);letter-spacing:0;line-height:1.35;margin:0 0 6px}.task-copy,.novice-flow .task-copy{font-size:22px;line-height:1.3;font-weight:600;letter-spacing:-.025em;margin:0}.lesson-help{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:20px;margin:4px 0 0}.lesson-help .text-button{min-height:44px;font-size:15px;padding:6px 0;text-decoration:none}.lesson-help .help-button{color:var(--muted)}.hint-area{margin:4px 0 12px}.hint-text{font-size:16px;padding:0 0 0 12px;border-radius:0;background:transparent;line-height:1.45}.hint-text>span{display:none}.practice-intro,.support-message{font-size:16px;padding:0 0 0 12px;border-radius:0;background:transparent;margin:0 0 10px;line-height:1.4}.learning-work{display:flex;flex-direction:column;flex:1;margin-top:8px;min-height:0}.coach{background:transparent;border:0;border-radius:0;padding:0;margin:0 0 12px}.coach>span{display:none}.coach p{font-size:16px;font-weight:400;line-height:1.4;margin:0}.block-workspace-grid{display:flex;flex-direction:column;align-items:stretch;flex:1;gap:8px;min-height:0;width:100%}.screen-lesson .workspace-section{position:relative;display:flex;flex-direction:column;flex:1;padding:0;border:1px solid var(--line);border-radius:14px;background:var(--surface);min-height:0;overflow:clip}.workspace-heading{position:absolute;right:8px;top:4px;z-index:3;margin:0;min-height:44px}.workspace-heading h2,.is-guided .workspace-heading{display:none}.workspace-menu summary{min-height:44px}.workspace-menu button{max-width:calc(100vw - 60px)}.screen-lesson .blockly-host,.screen-lesson .first-command .blockly-host,.screen-lesson .is-guided .first-command .blockly-host{flex:0 0 auto;height:var(--lesson-workspace-height, 320px)!important;min-height:0;border:0;border-radius:14px 14px 0 0}.screen-lesson .blocklySvg{position:absolute;inset:0;width:100%;height:100%}.workspace-section .editor-tools{position:absolute;top:5px;left:6px;z-index:2;min-height:44px;margin:0}.workspace-section .editor-tools .editor-menu{margin-left:6px}.workspace-section .editor-tools .editor-menu>div{left:0;right:auto}.workspace-section .editor-tools button{min-height:44px}.workspace-section .undo-button span,.workspace-section .editor-note{display:none}.workspace-actions{display:flex;justify-content:center;padding:8px 12px 12px}.workspace-actions .add-block-button{flex:0 1 auto;min-width:106px;width:auto;min-height:44px;border-radius:22px;padding:8px 18px;font-size:16px;font-weight:600;background:#eaf0e5;border:1px solid #b5c6b8;color:var(--green)}.workspace-actions .add-block-button.coach-target{box-shadow:none!important;outline:2px solid #839e8c!important;outline-offset:2px}.live-mirror{flex:0 0 auto;margin:0;padding:0;border:0;border-radius:0;background:transparent}.live-mirror>div:first-child{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:0 2px}.live-mirror h2{font-size:16px;font-weight:500}.live-mirror .compact-code-toggle{display:inline-block;font-size:15px;min-height:44px;padding:8px 0}.live-mirror .code-reveal,.live-mirror.code-expanded .code-reveal{display:none!important}.live-mirror .python-nudge{font-size:13px;margin:-2px 2px 6px;color:var(--muted);line-height:1.4}.python-cue .compact-code-toggle{text-decoration:underline;text-underline-offset:4px}.text-exercise{width:100%;max-width:none;flex:1;padding:16px 12px;border-radius:14px;background:var(--surface)}.text-exercise>p{margin:0 0 14px;font-size:16px;line-height:1.45}.block-meaning{font-size:16px;padding:14px 12px}.code-choices{border:0;padding:0;margin:16px 0}.code-choices legend,.code-label{font-size:15px;font-weight:500}.code-choices label{font-size:16px;min-height:52px}.code-choices code{white-space:pre-wrap;overflow-wrap:anywhere}.token-result{padding:12px 6px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;min-height:72px}.token-result button,.token-options button{font:16px/1.45 Consolas,monospace;min-height:44px}.text-exercise>.python-code{min-height:0;font-size:16px;padding:12px;margin:16px 0}.text-exercise:has(.minimal-code-editor){background:transparent;border:0;padding:12px 0}.text-exercise .minimal-code-editor textarea{height:clamp(140px,calc(var(--lesson-viewport-height, 100dvh) - var(--lesson-action-height, 80px) - 200px),260px);min-height:clamp(100px,calc(var(--lesson-viewport-height, 100dvh) - var(--lesson-action-height, 80px) - 120px),200px);padding:16px 12px 16px 42px;resize:none;scroll-margin-top:16px;scroll-margin-bottom:calc(var(--lesson-action-height, 80px) + 16px)}.minimal-code-editor{margin:10px 0}.feedback-panel{position:static;transform:none;translate:none;width:100%;max-height:none;overflow:visible;margin:14px 0 0;padding:12px 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;scroll-margin-bottom:calc(var(--lesson-action-height, 80px) + 16px)}.feedback-summary{grid-template-columns:28px minmax(0,1fr) auto;gap:10px}.feedback-summary h2{font-size:17px;font-weight:600}.feedback-message{font-size:16px;line-height:1.4}.feedback-summary .stars{grid-column:auto;font-size:15px}.feedback-error .feedback-mark{background:#dcb29d;color:#633d2d}.feedback-panel .intro-complete{margin:8px 0 0 38px;font-size:14px}.feedback-result-button{margin-left:38px;min-height:44px;font-size:15px}.primary-action{z-index:30;bottom:var(--lesson-keyboard-bottom, 0px);min-height:76px;gap:0;padding:10px 16px max(10px,env(safe-area-inset-bottom))}.primary-action>span{display:none}.primary-action>button{width:100%;max-width:520px;min-width:0;min-height:56px;border-radius:14px;font-size:18px;font-weight:600;background:var(--green)}.primary-action.action-retry>button{background:var(--green)}.native-dialog{width:100%;max-width:100%;max-height:calc(var(--lesson-viewport-height, 100dvh) - 20px);position:fixed;inset:auto 0 var(--lesson-keyboard-bottom, 0px);margin:0;border-radius:22px 22px 0 0;animation:mobile-sheet-arrive .2s ease-out}.native-dialog:before{display:none}.sheet-heading{padding:16px 16px 8px}.native-dialog .sheet-heading h2{font-size:21px;line-height:1.25}.sheet-body{padding:0 16px max(20px,env(safe-area-inset-bottom));max-height:calc(var(--lesson-viewport-height, 100dvh) - 108px);font-size:16px}.sheet-body p,.sheet-note,.block-options span{font-size:16px;line-height:1.45}.block-options{grid-template-columns:1fr}.block-options button{min-height:70px}.block-options strong{font-size:17px}.category-tabs{flex-wrap:nowrap;overflow-x:auto;margin-bottom:12px}.category-tabs button{flex:0 0 auto;min-height:44px}.variable-form>div{display:flex;flex-wrap:wrap;gap:10px}.variable-form input{flex:1 1 160px;min-width:0;min-height:48px;font-size:16px}.variable-form button{min-height:48px}.sheet-body .python-code{min-height:0;font:16px/1.6 Consolas,monospace;padding:12px 8px;max-height:none}.interactive-code .code-line[role=button]{min-height:44px;display:flex;align-items:center}.interactive-code .code-line[role=button]>span:last-child{white-space:pre}.code-line .line-number{flex:0 0 26px}.output-preview pre{font-size:16px;overflow-x:auto}.blocklyWidgetDiv,.blocklyDropDownDiv{z-index:40}@media(max-height:600px){.screen-lesson .blockly-host,.screen-lesson .first-command .blockly-host,.screen-lesson .is-guided .first-command .blockly-host{min-height:170px}.text-exercise .minimal-code-editor textarea{min-height:140px}}}@keyframes mobile-sheet-arrive{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.native-dialog{animation:none}}:root{--canvas: #f8f7f2;--surface: #fffefa;--surface-alt: #edf0e8;--ink: #17352e;--muted: #5f6e67;--green: #17463a;--green-soft: #e7ede4;--orange: #c77c5d;--accent-text: #a85b40;--line: #e2e5dd;--success-soft: #e8f1e9;--error-soft: #fbefea;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--canvas)}body{background:var(--canvas)}button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:3px}.app-shell{background:var(--canvas)}.lesson-header{border-color:var(--line)}.brand{color:var(--green);font-weight:800;letter-spacing:-.055em}.brand>span{display:none}.back-button{border-color:var(--line);background:var(--surface-alt);border-radius:50%}.progress-track{background:#e0e3dc}.progress-track i{background:var(--green)}.primary-button,.sheet-primary{background:var(--green);color:#fff;border-radius:18px}.eyebrow,.section-label,.lesson-number{color:var(--accent-text);font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.text-button{color:var(--green)}.home-overview{max-width:760px;margin:34px auto 80px}.home-greeting h1{max-width:700px;margin:9px 0 10px;font-size:clamp(32px,6vw,52px);line-height:1.12}.home-greeting>p:last-child{color:var(--muted);font-size:18px;margin:0 0 25px}.home-progress-card{display:flex;align-items:center;gap:24px;padding:24px;background:var(--surface-alt);border:1px solid var(--line);border-radius:25px}.progress-ring{flex:0 0 90px;width:90px;height:90px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--green) var(--progress),#d9ddd5 0);position:relative}.progress-ring:before{content:"";position:absolute;inset:9px;border-radius:inherit;background:var(--surface-alt)}.progress-ring strong{position:relative;font-size:18px;font-variant-numeric:tabular-nums}.home-progress-card h2{margin:0 0 5px;font-size:22px}.home-progress-card p{color:var(--muted);margin:0;line-height:1.4}.home-resume-card{width:100%;display:flex;align-items:center;gap:16px;margin-top:16px;padding:16px;text-align:left;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:22px}.home-resume-card>span:nth-child(2){flex:1;min-width:0}.home-resume-card strong{display:block;font-size:18px;line-height:1.3}.home-resume-card small{display:block;margin-top:4px;color:var(--muted);font-size:14px;line-height:1.35}.resume-icon{flex:0 0 58px;display:grid;place-items:center;height:58px;border-radius:17px;background:var(--green-soft);color:var(--green);font-size:34px;font-weight:300}.card-chevron{font-size:29px;font-weight:300;color:var(--green)}.home-practice-note{padding:0 6px;color:var(--muted);font-size:14px}.home-main-action{width:100%;margin-top:18px;padding:17px 22px;font-size:18px}.home-path-preview{margin-top:38px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:12px}.section-heading .section-label{margin:0 0 5px}.section-heading h2{margin:0;font-size:26px}.section-heading .text-button{flex:0 0 auto;text-decoration:none;font-weight:650}.home-path-preview>p{margin:8px 0 18px;color:var(--muted)}.home-path-preview ol{list-style:none;padding:0;margin:0}.home-path-preview li{display:flex;gap:13px;align-items:stretch;position:relative;min-height:82px}.home-path-preview li:not(:last-child):before{content:"";position:absolute;left:21px;top:40px;bottom:-4px;border-left:2px solid #c3d2c4}.preview-marker{flex:0 0 44px;z-index:1;display:grid;place-items:center;align-self:center;height:44px;border:2px solid #a9b4ad;background:var(--canvas);color:var(--muted);border-radius:50%;font-weight:700}.home-path-preview .complete .preview-marker{background:#4b925f;border-color:#4b925f;color:#fff}.home-path-preview .current .preview-marker{background:var(--green);border-color:#7aa385;color:#fff;box-shadow:0 0 0 4px var(--canvas),0 0 0 6px #7aa385}.home-path-preview li>button{flex:1;min-width:0;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:5px 0 8px;padding:13px 17px;text-align:left;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:18px}.home-path-preview li.current>button{background:var(--surface-alt)}.home-path-preview li>button strong,.home-path-preview li>button small{display:block}.home-path-preview li>button strong{font-size:16px;line-height:1.25}.home-path-preview li>button small{margin-top:4px;color:var(--muted);font-size:13px}.home-path-preview li>button>span:last-child{color:var(--green);font-size:25px}.bottom-navigation{display:none}.course-path{margin-top:38px;padding-bottom:70px}.course-path h1{color:var(--ink);margin-bottom:7px}.path-intro{margin:0 0 24px}.path-progress-card{padding:22px;border:1px solid var(--line);border-radius:23px;background:var(--surface-alt);scroll-margin-top:24px}.path-progress-card>div:first-child{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-bottom:15px}.path-progress-card span{color:var(--muted)}.path-progress-card strong{font-size:20px;font-variant-numeric:tabular-nums}.path-progress-card .progress-track{height:9px}.path-progress-card small{display:block;margin-top:8px;color:var(--muted)}.path-continue{width:100%;margin-top:14px}.course-path-fixed{display:flex;flex-direction:column;max-width:720px;margin:34px auto 80px}.path-fixed-head h1{margin:5px 0 14px;font-size:clamp(32px,5vw,46px)}.path-fixed-head .path-progress-card{margin-bottom:22px}.chapter-switcher{display:flex;align-items:center;justify-content:space-between;gap:14px}.chapter-switcher button{flex:0 0 44px;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--green);font-size:27px}.chapter-switcher>div{flex:1;text-align:center}.chapter-switcher small{display:block;color:var(--accent-text);font-size:12px;font-weight:700;text-transform:uppercase}.chapter-switcher h2{margin:3px 0 0;font-size:23px;line-height:1.2}.path-chapter-description{color:var(--muted);text-align:center;margin:9px 0 17px;font-size:14px}.path-fixed-lessons{display:grid;gap:9px;list-style:none;margin:0;padding:0}.path-fixed-lessons li button{display:flex;align-items:center;gap:14px;width:100%;min-height:76px;padding:12px 15px;text-align:left;border:1px solid var(--line);border-radius:17px;background:var(--surface);color:var(--ink)}.path-fixed-lessons li.current button{background:var(--surface-alt);border-color:#c7d5c9}.path-fixed-lessons li.locked button{opacity:.58}.path-fixed-lessons .path-number{flex:0 0 40px;width:40px;height:40px}.path-fixed-lessons .path-lesson-copy{flex:1;min-width:0}.path-fixed-lessons .path-lesson-copy small{display:block;color:var(--muted);font-size:12px}.path-fixed-lessons .path-lesson-copy strong{display:block;font-size:16px;line-height:1.25}.path-fixed-lessons .path-arrow{font-size:26px;color:var(--green)}.path-gate-note{color:var(--muted);font-size:13px;text-align:center}.path-page-controls{display:flex;align-items:center;justify-content:space-between;margin-top:14px;font-size:13px;color:var(--muted)}.path-page-controls button{min-width:90px;min-height:40px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--green)}.path-page-controls button:disabled{opacity:.35}.path-fixed-continue{width:100%;margin-top:17px}.rating-rules{margin:18px 0 26px}.chapter{margin-top:27px}.chapter-heading{border-top:1px solid var(--line);padding-top:23px}.chapter-heading p{color:var(--accent-text);font-weight:700}.chapter-heading h2{color:var(--ink)}.chapter-description{line-height:1.45}.course-path ol{margin:16px 0 26px}.course-path li{padding-bottom:5px}.course-path li:not(:last-child):before{border-color:#c9d9cb}.course-path li>button{background:var(--surface);border:1px solid var(--line);border-radius:18px;min-height:82px;margin-bottom:7px}.course-path .current>button{background:var(--surface-alt);border-color:#cdd9cf}.path-number{background:var(--canvas);border-color:#aab8ad}.complete .path-number{background:#4e945e}.course-path small{color:var(--muted)}.course-path em{color:var(--green)}.course-path li button:disabled{opacity:.68}.gate-message,.chapter-threshold{background:var(--surface-alt);border-color:#9eb6a0;border-radius:8px}.finish-screen{background:var(--surface-alt);padding:38px;border-radius:25px}.finish-mark{background:var(--green)}.screen-lesson .task-intro h1{color:var(--green)}.task-copy{color:#172c27}.lesson-help .hint-button{color:var(--green);font-weight:600}.workspace-section,.live-mirror{background:var(--surface);border-color:var(--line)}.python-inline-preview{display:none}.text-exercise{background:var(--surface);border-color:var(--line)}.minimal-code-editor{background:var(--surface);border-color:#c8d3c9}.minimal-code-editor .editor-line-numbers{color:#8e9a94;background:var(--surface);border-right:1px solid var(--line)}.python-code{background:#f3f5ef;color:var(--ink);border:1px solid var(--line)}.python-code .line-number{color:#98a49c}.python-code .syntax-keyword{color:#2c6a59}.python-code .syntax-string{color:#b6542d}.python-code .syntax-number{color:#8b6334}.python-code .code-highlight{background:#dcebdd;outline-color:#9fc3a5}.interactive-code .code-line[role=button]:hover,.interactive-code .code-line[role=button]:focus-visible{background:#e1ede2;outline-color:#a3c1a6}.editor-active-line{position:absolute;left:36px;right:0;height:25.6px;background:#edf3eb;pointer-events:none}.minimal-code-editor textarea{position:relative;z-index:1;caret-color:var(--green)}.minimal-code-editor.is-typing{border-color:var(--green);box-shadow:0 0 0 3px #dce9dd}.minimal-code-editor:focus-within{outline:0}.feedback-success{background:var(--success-soft);border-color:#bfd5c4}.feedback-error{background:var(--error-soft);border-color:#e5cfc5}.feedback-error .feedback-mark{background:#bf765d}.native-dialog{background:var(--surface);border-color:var(--line)}.native-dialog::backdrop{background:#172a2366}.sheet-heading{background:var(--surface)}.block-options button{background:var(--surface);border-color:var(--line)}.kodik-keyboard{position:fixed;z-index:100;left:0;right:0;bottom:0;padding:12px 12px max(18px,env(safe-area-inset-bottom));background:var(--surface-alt);border-top:1px solid #cbd8cd;box-shadow:0 -8px 28px #183a2d24;color:var(--ink)}.kodik-keyboard-heading{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:700;padding:0 3px 7px}.kodik-keyboard-heading button{width:35px;min-height:34px;border:0;border-radius:50%;background:var(--surface);color:var(--green);font-size:22px}.kodik-keyboard-heading .keyboard-clear{margin-left:auto;margin-right:10px;width:auto;padding:4px 10px;border-radius:8px;font-size:13px}.kodik-keyboard-value{min-height:48px;max-height:88px;overflow:auto;padding:10px 12px;background:var(--surface);border:1px solid #a8c1ae;border-radius:12px;font:19px/1.3 Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.kodik-keyboard-value span{color:var(--muted)}.kodik-keyboard-value i{display:inline-block;height:21px;border-left:2px solid var(--green);vertical-align:-4px}.keyboard-error{margin:6px 3px 0;color:var(--accent-text);font-size:14px}.kodik-keyboard-keys{display:grid;gap:6px;margin-top:10px}.kodik-keyboard-row{display:flex;justify-content:center;gap:4px}.kodik-keyboard-row button{min-width:0;flex:1;min-height:44px;padding:4px 1px;border:1px solid #d4ddd4;border-radius:8px;background:var(--surface);color:var(--ink);font-size:17px;font-weight:600}.kodik-keyboard-controls button{background:#d9e4d9;font-size:14px}.kodik-keyboard-controls .keyboard-space{flex:3}.kodik-keyboard-controls .keyboard-done{flex:2;background:var(--green);color:#fff;border-color:var(--green)}.drawing-preview{margin-top:16px}.drawing-preview svg{display:block;width:100%;height:240px;margin-top:10px;background:var(--green-soft);border:1px solid var(--line);border-radius:16px}.drawing-preview line{stroke:var(--green);stroke-width:3px;stroke-linecap:round;vector-effect:non-scaling-stroke}@media(max-width:767px){html,body,#root{height:100%;overflow:hidden;overscroll-behavior:none}.app-shell{height:100dvh;min-height:0;overflow:hidden}.app-shell:not(.screen-lesson){padding:17px 20px 100px}.screen-home .lesson-header,.screen-path .lesson-header,.screen-finish .lesson-header{border:0;padding:0;min-height:52px}.screen-home .brand,.screen-path .brand,.screen-finish .brand{font-size:34px}.screen-home .nav-link,.screen-path .nav-link,.screen-finish .nav-link{font-size:14px}.home-overview{height:calc(100dvh - 158px);overflow:hidden;margin:15px auto 0}.home-greeting .eyebrow{margin-bottom:5px}.home-greeting h1{font-size:clamp(31px,8.4vw,42px);line-height:1.12}.home-greeting>p:last-child{font-size:15px;line-height:1.35;margin-bottom:13px}.home-progress-card{gap:17px;padding:14px;border-radius:22px}.progress-ring{flex-basis:76px;width:76px;height:76px}.progress-ring strong{font-size:16px}.home-progress-card h2{font-size:19px}.home-progress-card p{font-size:14px}.section-heading h2{font-size:22px}.home-path-preview{margin-top:18px}.home-path-preview>p{display:none}.home-path-preview li:nth-child(n+2){display:none}.home-resume-card{min-height:70px;margin-top:10px;padding:10px 13px}.home-main-action{min-height:52px;margin-top:10px;padding:10px 17px}.bottom-navigation{position:fixed;z-index:20;display:grid;grid-template-columns:repeat(3,1fr);left:0;right:0;bottom:0;padding:8px 8px max(9px,env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line)}.bottom-navigation button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:0;min-height:54px;padding:2px;border:0;border-radius:15px;background:transparent;color:var(--muted);font-size:11px;white-space:nowrap}.bottom-navigation button.active{color:var(--green);font-weight:700}.bottom-navigation button span{font-size:25px;line-height:1.2}.bottom-navigation button.active span{padding:0 12px;border-radius:15px;background:var(--green-soft)}.site-footer{padding-bottom:12px}.course-path{margin-top:28px}.course-path-fixed{height:calc(100dvh - 155px);min-height:0;margin:10px auto 0;overflow:hidden}.path-fixed-head .eyebrow{margin-bottom:2px}.path-fixed-head h1{font-size:28px;margin:0 0 8px}.path-fixed-head .path-progress-card{padding:10px 15px;margin-bottom:9px;border-radius:16px}.path-fixed-head .path-progress-card>div:first-child{display:flex;margin-bottom:6px}.path-fixed-head .path-progress-card strong{margin:0;font-size:16px}.path-fixed-head .path-progress-card .progress-track{height:6px}.chapter-switcher h2{font-size:19px}.path-chapter-description{margin:4px 0 9px;line-height:1.3}.path-fixed-lessons{flex:1;min-height:0;grid-template-rows:repeat(4,minmax(0,1fr));gap:7px}.path-fixed-lessons li{min-height:0}.path-fixed-lessons li button{height:100%;min-height:0;padding:6px 12px}.path-fixed-lessons .path-lesson-copy strong{font-size:14px}.path-fixed-lessons .path-number{width:36px;height:36px;flex-basis:36px}.path-page-controls{margin-top:7px}.path-fixed-continue{min-height:48px;margin-top:8px;padding:9px 14px}.course-path h1{font-size:36px}.path-intro{font-size:16px}.path-progress-card{padding:18px}.path-progress-card>div:first-child{display:block}.path-progress-card strong{display:block;margin-top:3px;font-size:20px}.chapter-heading h2{font-size:21px}.course-path li>button{padding:13px 12px;gap:12px}.course-path strong{font-size:16px}.course-path .path-arrow{display:block}.screen-lesson{position:fixed;top:var(--lesson-viewport-top, 0px);left:0;right:0;display:flex;flex-direction:column;height:var(--lesson-viewport-height, 100dvh);min-height:0;background:var(--canvas);padding:12px 18px calc(var(--lesson-action-height, 80px) + 12px)}.screen-lesson .lesson-header{gap:12px;min-height:55px}.screen-lesson .back-button{background:var(--surface-alt);width:44px;height:44px}.lesson-position strong,.lesson-position strong .mobile-only{color:var(--green);font-size:16px}.screen-lesson .lesson-progress .progress-track{height:7px}.screen-lesson .lesson-header{flex:0 0 auto}.screen-lesson .lesson-flow{flex:1;height:auto;min-height:0;margin-top:12px;overflow:hidden}.screen-lesson .task-intro{flex:0 0 auto;max-height:43%;overflow:auto;overscroll-behavior:contain}.task-intro h1,.novice-flow .task-intro h1{margin:0 0 10px;font-size:22px;font-weight:700;line-height:1.25;color:var(--green)}.task-intro h1:before{content:"▤";display:inline-grid;place-items:center;width:34px;height:34px;margin-right:10px;border-radius:50%;background:var(--orange);color:#fff;font-size:18px;vertical-align:middle}.task-copy,.novice-flow .task-copy{font-size:clamp(22px,6vw,27px);line-height:1.34;font-weight:500;letter-spacing:-.025em}.lesson-help{flex-wrap:wrap;gap:3px 19px;margin-top:13px}.lesson-help .text-button{font-size:14px}.lesson-help .hint-button:before{content:"✧";margin-right:7px;font-size:21px;color:var(--orange);vertical-align:-2px}.hint-area{margin:2px 0 11px}.hint-text{padding:9px 12px;background:var(--green-soft);border-radius:10px;color:var(--ink)}.learning-work{margin-top:9px;overflow:hidden}.coach{margin-bottom:14px;padding:12px 14px;background:var(--green-soft);border-radius:13px}.coach p{font-size:14px}.screen-lesson .workspace-section{border-radius:20px;min-height:0}.screen-lesson .blockly-host,.screen-lesson .first-command .blockly-host,.screen-lesson .is-guided .first-command .blockly-host{border-radius:20px 20px 0 0}.screen-lesson .blockly-host,.screen-lesson .first-command .blockly-host,.screen-lesson .is-guided .first-command .blockly-host{flex:1 1 0;height:auto!important;min-height:80px}.workspace-actions{flex:0 0 auto}.workspace-actions{padding:12px}.workspace-actions .add-block-button{width:100%;min-height:56px;border:0;border-radius:16px;background:var(--green-soft);color:var(--green);font-size:17px}.workspace-actions .add-block-button span{font-size:27px;font-weight:300;vertical-align:-2px}.live-mirror{margin-top:7px;padding:8px 13px;border:1px solid var(--line);border-radius:17px;background:var(--surface)}.live-mirror>div:first-child{padding:0}.live-mirror h2{font-size:17px;font-weight:650}.live-mirror .compact-code-toggle{color:var(--green);font-size:14px}.python-inline-preview{display:block;margin:4px 0 0;padding:10px 0 1px;border-top:1px solid var(--line);color:var(--green);font:15px/1.45 Consolas,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.python-inline-preview code{white-space:nowrap}.text-exercise,.text-exercise:has(.minimal-code-editor){margin-top:2px;padding:15px 12px;background:var(--surface);border:1px solid var(--line);border-radius:20px}.text-exercise .python-code{border-radius:14px}.code-choices label{border-color:var(--line);background:var(--surface);border-radius:14px}.code-choices label.chosen{background:var(--green-soft)}.minimal-code-editor{border-radius:14px}.text-exercise{min-height:0;overflow:auto;overscroll-behavior:contain}.text-exercise:has(.minimal-code-editor){display:flex;flex-direction:column;overflow:hidden}.text-exercise .minimal-code-editor{flex:1;min-height:0}.text-exercise .minimal-code-editor textarea{height:100%;min-height:0}.text-exercise>.text-button{flex:0 0 auto}.feedback-panel{position:static;flex:0 0 auto;width:100%;max-height:30%;overflow:auto;margin:10px 0 0;padding:12px;border:1px solid;border-radius:18px;background:var(--surface)}.feedback-success{background:var(--success-soft)}.feedback-error{background:var(--error-soft)}.feedback-summary h2{font-size:18px}.feedback-message{font-size:14px}.primary-action{min-height:82px;padding:11px 18px max(11px,env(safe-area-inset-bottom));border-color:var(--line);background:var(--canvas)}.primary-action>button{min-height:58px;border-radius:18px;background:var(--green);font-size:18px}.primary-action.action-retry>button{background:var(--green)}.native-dialog{background:var(--surface);border-radius:26px 26px 0 0}.screen-lesson:has(.kodik-keyboard) .primary-action{display:none}.native-dialog:before{content:"";display:block;width:38px;height:4px;margin:10px auto 0;border-radius:9px;background:#bac4bb}.sheet-heading{padding-top:10px}.block-options button{border-radius:17px}[data-compact-lesson] .screen-lesson .task-intro h1{display:none}[data-compact-lesson] .screen-lesson .task-copy{font-size:16px;line-height:1.35}[data-compact-lesson] .screen-lesson .lesson-help{margin-top:0}[data-compact-lesson] .screen-lesson .lesson-help .text-button{min-height:32px;padding:3px 0}[data-compact-lesson] .screen-lesson .live-mirror{display:none}[data-compact-lesson] .screen-lesson .coach{padding:6px 10px;margin-bottom:6px}[data-compact-lesson] .screen-lesson .text-exercise{padding:8px}[data-compact-lesson] .screen-lesson .text-exercise>.text-button{display:none}[data-compact-lesson] .screen-lesson .minimal-code-editor{margin:6px 0}[data-compact-lesson] .screen-lesson .code-label{margin-bottom:0}}@media(max-width:380px){.app-shell:not(.screen-lesson){padding-left:15px;padding-right:15px}.screen-lesson{padding-left:14px;padding-right:14px}.home-progress-card{gap:12px;padding:15px}.progress-ring{flex-basis:67px;width:67px;height:67px}.home-progress-card h2{font-size:17px}.home-progress-card p{font-size:13px}}@media(max-width:767px)and (max-height:720px){.home-greeting h1{font-size:28px}.home-path-preview{display:none}.home-progress-card{padding:11px 14px}.progress-ring{flex-basis:60px;width:60px;height:60px}.path-fixed-head h1{font-size:23px}.path-fixed-head>.eyebrow,.path-chapter-description{display:none}.path-fixed-lessons .path-lesson-copy small{display:none}}@font-face{font-family:Nunito;src:url(/fonts/Nunito.ttf) format("truetype");font-weight:200 900;font-style:normal;font-display:swap}:root{font-family:Nunito,Segoe UI,sans-serif}body,button,input,select,summary{font-family:Nunito,Segoe UI,sans-serif}.app-icon{display:inline-block;flex:0 0 auto;vertical-align:middle}.icon-button{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:12px;background:var(--surface-alt);color:var(--green)}.nav-link,.text-button,.add-block-button,.primary-button,.sheet-close,.back-button,.undo-button{align-items:center;justify-content:center;gap:8px}.nav-link,.text-button,.add-block-button,.sheet-close,.back-button,.undo-button{display:inline-flex}.primary-button{display:flex;justify-content:space-between}.chapter-switcher button,.path-number,.path-page-controls button{display:inline-grid;place-items:center}.stars{display:inline-flex;gap:3px}.insights-screen,.account-screen{max-width:720px;margin:28px auto 100px}.insights-heading h1{margin:0;font-size:34px;line-height:1.1;letter-spacing:-.025em}.insights-heading .eyebrow{margin:0 0 6px}.insights-heading>p:last-child:not(.eyebrow){margin:6px 0 0;color:var(--muted);font-size:14px}.insights-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.metric-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:18px;border:1px solid var(--line);border-radius:22px;background:var(--surface);color:var(--ink);text-align:left}.metric-primary{background:var(--green-soft)}.metric-card>.app-icon{color:var(--green)}.metric-card>strong{margin:6px 0;font-size:34px;line-height:1.1;font-weight:800}.metric-card small{font-size:16px;font-weight:600;color:var(--muted)}.metric-card>span{font-size:13px;line-height:1.25;color:var(--muted)}.metric-card .metric-info{position:absolute;top:17px;right:15px}.history-heading{display:flex;justify-content:space-between;align-items:center;margin-top:24px;gap:12px}.history-heading h2{font-size:21px;margin:0}.history-heading p{margin:4px 0 0;font-size:13px;color:var(--muted)}.history-filters{display:flex;gap:7px;margin:14px 0}.history-filters button{flex:1;min-height:38px;padding:5px;color:var(--muted);border:1px solid var(--line);border-radius:12px;background:transparent;font-size:13px}.history-filters button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff;font-weight:700}.history-list{display:flex;flex-direction:column;gap:9px}.history-row{display:flex;align-items:center;text-align:left;gap:11px;padding:13px;border:1px solid var(--line);border-radius:17px;background:var(--surface);color:var(--ink)}.history-status{flex:0 0 36px;height:36px;display:grid;place-items:center;border-radius:12px;background:var(--error-soft);color:#b3664c}.history-row.is-fixed .history-status{color:var(--green);background:var(--green-soft)}.history-copy{flex:1;min-width:0}.history-copy strong,.history-copy small,.history-copy>span{display:block}.history-copy strong{font-size:14px;line-height:1.3}.history-copy small{color:var(--muted);font-size:12px;margin:2px 0}.history-copy>span{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-empty{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:15px;border:1px dashed #cdd7cb;border-radius:22px;min-height:160px}.history-empty>span{display:grid;place-items:center;width:58px;height:58px;border-radius:19px;background:var(--green-soft);color:var(--green)}.history-empty h3{font-size:18px;margin:12px 0 6px}.history-empty p{margin:0;color:var(--muted);font-size:13px;line-height:1.4;max-width:300px}.history-date{color:var(--muted);font-size:13px}.account-identity{text-align:center;margin:20px 0}.account-avatar{display:inline-grid;place-items:center;width:80px;height:80px;border-radius:28px;background:var(--green-soft);color:var(--green)}.account-identity h2{font-size:23px;margin:10px 0 2px;overflow-wrap:anywhere}.account-identity p{font-size:13px;color:var(--muted);margin:0}.account-name-card{padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:20px}.account-name-card label{font-size:15px;font-weight:700}.account-name-card>div{display:flex;gap:8px;margin-top:9px}.account-name-card input{flex:1;width:0;min-width:0;height:44px;padding:8px 12px;font-size:16px;color:var(--ink);border:1px solid var(--line);border-radius:12px;background:var(--canvas)}.account-name-card p{color:var(--muted);font-size:12px;margin:8px 0 0;min-height:17px}.account-note{display:flex;gap:13px;align-items:flex-start;padding:16px;margin-top:12px;background:var(--green-soft);border-radius:19px}.account-note>.app-icon{margin-top:2px}.account-note h3{font-size:15px;margin:0 0 5px}.account-note p{color:var(--muted);font-size:13px;line-height:1.4;margin:0}.account-soon{background:transparent;border:1px solid var(--line)}.account-soon h3 span{display:inline-block;font-size:12px;padding:2px 7px;margin-left:4px;border-radius:6px;background:#f4e4d8;color:#995735;vertical-align:1px}.bottom-navigation{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;z-index:20;bottom:0;background:var(--surface);border-top:1px solid var(--line);padding:8px}.bottom-navigation button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:54px;border:0;background:transparent;color:var(--muted);font-size:13px}.bottom-navigation button>span{display:grid;place-items:center;width:48px;height:30px;border-radius:14px}.bottom-navigation button.active{color:var(--green);font-weight:800}.bottom-navigation button.active>span{background:var(--green-soft)}@media(min-width:768px){.bottom-navigation{width:560px;left:50%;transform:translate(-50%);border:1px solid var(--line);border-bottom:0;border-radius:20px 20px 0 0}}@media(max-width:767px){.site-footer{display:none}.app-shell:not(.screen-lesson){display:flex;flex-direction:column;padding:12px 18px calc(82px + env(safe-area-inset-bottom))}.app-shell:not(.screen-lesson) .lesson-header{flex:0 0 50px;min-height:50px;padding:0;border:0}.app-shell:not(.screen-lesson) .brand{font-size:32px}.app-shell:not(.screen-lesson) .nav-link{font-size:13px}.app-shell:not(.screen-lesson) .header-progress{display:none}.bottom-navigation{left:0;right:0;padding:7px 5px max(8px,env(safe-area-inset-bottom))}.bottom-navigation button{min-width:0;font-size:13px}.bottom-navigation button.active span{padding:0}.home-overview{display:flex;flex-direction:column;flex:1;width:100%;height:auto;min-height:0;margin:10px 0 0}.home-greeting{flex:0 0 auto}.home-greeting h1{font-size:30px;line-height:1.08;letter-spacing:-.035em;margin:8px 0}.home-greeting>p:last-child{font-size:14px;margin-bottom:13px}.home-greeting .eyebrow{font-size:11px;margin:0}.home-progress-card{flex:0 0 auto;padding:12px 15px;border-radius:21px}.progress-ring{width:64px;height:64px;flex-basis:64px}.progress-ring strong{font-size:15px}.home-resume-card{flex:0 0 auto;gap:12px}.home-resume-card strong{font-size:17px}.home-resume-card small{font-size:13px}.resume-icon{width:48px;height:48px;flex-basis:48px}.home-main-action{flex:0 0 auto;min-height:50px;font-size:17px}.home-path-preview{display:flex;flex-direction:column;justify-content:flex-end;flex:1 1 auto;min-height:116px;margin-top:14px;padding-bottom:6px}.home-path-preview .section-heading{align-items:center}.home-path-preview h2{font-size:18px}.home-path-preview .section-label{font-size:11px;margin-bottom:1px}.home-path-preview .text-button{font-size:12px;min-height:38px}.home-path-preview ol{margin-top:7px}.home-path-preview li{min-height:72px}.home-path-preview li:not(:last-child):before{display:none}.home-path-preview li>button{margin:0;padding:10px 12px}.home-practice-note{margin:6px 0 0;font-size:12px}.course-path-fixed{flex:1;width:100%;height:auto;margin:10px 0 0}.path-fixed-head,.chapter-switcher,.path-chapter-description,.path-page-controls,.path-fixed-continue,.path-gate-note{flex:0 0 auto}.path-fixed-head .eyebrow{display:none}.path-fixed-head h1{font-size:26px}.chapter-switcher{min-height:60px;padding:5px 0}.chapter-switcher>div{min-width:0}.chapter-switcher h2{font-size:18px;line-height:1.2;overflow-wrap:anywhere}.chapter-switcher button{padding:0}.path-chapter-description{display:none}.path-fixed-lessons{grid-template-rows:repeat(var(--path-rows, 3),minmax(0,1fr));margin-top:12px;gap:8px}.path-fixed-lessons li button{padding:9px 12px;min-height:58px;gap:11px}.path-fixed-lessons .path-lesson-copy strong{font-size:15px}.path-page-controls button{min-height:40px}.path-gate-note{margin:6px 0 0;font-size:12px}.path-fixed-continue{font-size:16px;margin-bottom:2px}.insights-screen,.account-screen{flex:1;display:flex;flex-direction:column;width:100%;min-height:0;margin:14px 0 0;overflow:hidden}.insights-heading,.insights-metrics,.history-heading,.history-filters,.history-pages{flex:0 0 auto}.insights-heading h1{font-size:29px}.insights-metrics{margin-top:14px;gap:9px}.metric-card{padding:13px 15px;border-radius:18px}.metric-card>strong{font-size:30px;margin:4px 0}.metric-card>span{font-size:12px}.metric-card>.app-icon{width:21px;height:21px}.history-heading{margin-top:17px}.history-heading h2{font-size:19px}.history-filters{margin:10px 0}.history-list{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding-bottom:3px}.history-row{flex:0 0 auto;min-height:73px;padding:10px}.history-empty{min-height:120px}.history-pages{margin-top:5px}.account-screen{overflow:auto;overscroll-behavior:contain;padding-bottom:8px}.account-screen>*{flex:0 0 auto}.account-identity{margin:16px 0}.account-screen .account-identity{margin:10px 0}.account-screen .account-avatar{width:54px;height:54px;border-radius:19px}.account-screen .account-identity h2{font-size:21px;margin-top:7px}.account-screen .account-name-card{padding:12px}.account-screen .account-note{margin-top:9px;padding:11px 12px}.account-avatar{width:66px;height:66px;border-radius:23px}.account-note{padding:13px}.screen-lesson .lesson-header{min-height:48px}.screen-lesson .lesson-flow{margin-top:6px}.screen-lesson .is-guided .task-intro{margin-bottom:0}.task-intro h1:before,.lesson-help .hint-button:before{display:none}.task-intro h1,.novice-flow .task-intro h1{display:flex;align-items:center;gap:9px;font-size:18px;margin-bottom:8px;line-height:1.2}.task-icon{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--orange);color:#fff}.task-copy,.novice-flow .task-copy{font-size:20px;line-height:1.3;letter-spacing:-.01em}.lesson-help{margin-top:3px;gap:3px 15px}.lesson-help .text-button{min-height:44px;font-size:13px;padding:4px 0}.learning-work{margin-top:5px}.coach{padding:8px 11px;margin-bottom:8px}.coach p{font-size:13px}.workspace-heading,.is-guided .workspace-heading{display:flex;gap:3px;top:4px;right:5px}.workspace-heading .icon-button{background:#fffefaed;border:1px solid var(--line)}.is-guided .workspace-menu{display:none}.workspace-menu summary{display:grid;place-items:center;width:44px;padding:0}.workspace-actions{padding:8px}.workspace-actions .add-block-button{min-height:46px;font-size:16px}.live-mirror{margin-top:0;padding:0 12px}.live-mirror>div:first-child{min-height:42px}.live-mirror h2{font-size:15px;margin:0}.live-mirror .compact-code-toggle{min-height:44px;font-size:13px}.python-inline-preview,.live-mirror .python-nudge{display:none}.block-workspace-grid{gap:7px}.block-workspace-grid.is-expanded{position:fixed;z-index:25;top:calc(var(--lesson-viewport-top, 0px) + 12px);bottom:calc(var(--lesson-keyboard-bottom, 0px) + var(--lesson-action-height, 80px) + 12px);left:14px;right:14px;width:auto;padding:0;border-radius:20px;background:var(--surface);box-shadow:0 0 0 80vmax var(--canvas)}.block-workspace-grid.is-expanded .live-mirror{display:none}.primary-action{min-height:74px;padding-top:8px;padding-bottom:max(8px,env(safe-area-inset-bottom))}.primary-action>button{min-height:56px}[data-compact-lesson] .screen-lesson .workspace-heading{display:flex}}@media(max-width:767px)and (max-height:620px){.home-greeting h1{font-size:25px}.home-greeting>p:last-child{margin-bottom:9px;font-size:12px}.home-progress-card{padding:9px 12px;gap:12px}.progress-ring{width:50px;height:50px;flex-basis:50px}.progress-ring strong{font-size:12px}.progress-ring:before{inset:6px}.home-progress-card h2{font-size:17px}.home-progress-card p{font-size:12px}.home-resume-card{margin-top:8px;padding:8px 10px;min-height:62px}.home-resume-card strong{font-size:15px}.resume-icon{width:40px;height:40px;flex-basis:40px}.home-path-preview{min-height:103px;margin-top:8px}.home-path-preview li{min-height:58px}.home-path-preview h2{font-size:16px}.home-path-preview li>button strong{font-size:14px}.home-path-preview .section-label,.insights-heading .eyebrow{display:none}.metric-card>.app-icon:not(.metric-info){display:none}.history-empty>span{display:none}.history-empty{padding:10px}.account-identity{margin:10px 0}.account-avatar{width:50px;height:50px;border-radius:18px}}.minimal-code-editor{padding-bottom:46px}.minimal-code-editor .editor-highlight{position:absolute;pointer-events:none;inset:0 0 46px;margin:0;padding:16px 12px 16px 42px;font:16px/1.6 Consolas,monospace;white-space:pre;overflow:hidden;color:var(--ink);transform:translate(var(--editor-scroll-x, 0px),var(--editor-scroll, 0px))}.minimal-code-editor textarea{color:transparent!important;caret-color:var(--ink);background:transparent}.minimal-code-editor textarea::placeholder{color:var(--muted)}.text-exercise textarea:focus-visible{outline-color:var(--green)}.minimal-code-editor textarea::selection{color:transparent;background:#acc8ad66}.editor-highlight .syntax-keyword{color:#2c6a59;font-weight:700}.editor-highlight .syntax-string{color:#b6542d}.editor-highlight .syntax-number{color:#8b6334}.editor-highlight .syntax-comment{color:var(--muted)}.code-accessory{position:absolute;z-index:3;bottom:0;left:0;right:0;height:46px;display:flex;gap:7px;padding:4px 7px;background:var(--surface-alt);border-top:1px solid var(--line)}.code-accessory button{flex:1;min-height:36px;border:1px solid var(--line);background:var(--surface);border-radius:9px;color:var(--ink);font:16px/1 Consolas,monospace}@media(forced-colors:active){.minimal-code-editor textarea{color:CanvasText!important}.editor-highlight{display:none}}.progress-tabs{display:flex;gap:6px;margin-top:16px;flex:0 0 auto}.progress-tabs button{flex:1;min-height:44px;padding:5px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--muted);font-size:13px}.progress-tabs button[aria-pressed=true]{color:var(--green);background:var(--green-soft);font-weight:800}.skills-journey{display:flex;align-items:center;gap:12px;padding:14px;margin:14px 0;background:var(--green-soft);border-radius:18px}.skills-journey strong{font-size:15px}.skills-journey p,.score-note{font-size:13px;color:var(--muted);margin:5px 0 0}.skill-cards{display:flex;flex-direction:column;gap:10px;min-height:0;flex:1}.skill-card{padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:18px}.skill-card>div{display:flex;justify-content:space-between;align-items:center;gap:8px}.skill-card h2{font-size:16px;margin:0}.skill-card span{font-size:12px;color:var(--green)}.skill-card meter{width:100%;height:12px;margin-top:7px}.skill-card p{font-size:12px;color:var(--muted);margin:4px 0 0}.skill-pages{margin-top:10px}@media(max-width:767px){.skills-journey{flex:0 0 auto;padding:10px 12px;margin:10px 0}.skill-card{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;padding:8px 12px}.skill-card h2{font-size:15px}.skill-cards{gap:7px}.skill-pages{flex:0 0 auto}.score-note{line-height:1.5;margin-top:18px}}@media(max-width:767px)and (max-height:620px){.skills-journey p,.skill-card p{display:none}.skills-journey strong{font-size:13px}}.minimal-code-editor .editor-highlight{padding:0;transform:none}.minimal-code-editor .editor-highlight pre{width:max-content;min-width:100%;margin:0;padding:16px 12px 16px 42px;font:16px/1.6 Consolas,monospace;white-space:pre;transform:translate(var(--editor-scroll-x, 0px),var(--editor-scroll, 0px))}.code-accessory{padding-top:1px;padding-bottom:1px}.code-accessory button{min-height:44px}
