:root{--font-geist-sans:Arial, "Microsoft YaHei", sans-serif;--font-geist-mono:"Cascadia Code", "SFMono-Regular", Consolas, monospace;--paper:#f5f0e6;--paper-light:#fbf8f1;--ink:#1d2524;--muted:#676c68;--teal:#147d79;--teal-dark:#0f6865;--teal-soft:#dbeae5;--rule:#d9d2c5;--editor:#202624;--editor-2:#171c1b}*{box-sizing:border-box}html,body,*{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{width:0;height:0;display:none}body::-webkit-scrollbar{width:0;height:0;display:none}::-webkit-scrollbar{width:0;height:0;display:none}html{background:var(--paper);scroll-behavior:smooth}body{background:radial-gradient(circle at 18% 20%, #ffffff9e 0 1px, transparent 2px) 0 0 / 18px 18px, linear-gradient(100deg, #ffffff2e, transparent 30%, #ffffff29 68%, transparent), var(--paper);color:var(--ink);font-family:var(--font-geist-sans), "Microsoft YaHei", sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;min-height:100vh;margin:0}button,textarea{font:inherit}button{color:inherit}.site-header{border-bottom:1px solid var(--rule);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;background:#f5f0e6db;grid-template-columns:1fr auto 1fr;align-items:center;height:96px;padding:0 clamp(24px,5vw,78px);display:grid;position:sticky;top:0}.brand{color:#126663;letter-spacing:-2px;cursor:pointer;background:0 0;border:0;justify-self:start;font:700 44px/1 Georgia,Times New Roman,serif}nav{align-items:stretch;gap:clamp(44px,7vw,102px);height:100%;display:flex}nav button{cursor:pointer;background:0 0;border:0;padding:5px 4px 0;font-size:18px;position:relative}nav button:after{content:"";background:var(--teal);width:0;height:2px;transition:width .2s;position:absolute;bottom:13px;left:50%;transform:translate(-50%)}nav button:hover:after,nav button.active:after{width:100%}.nav-dot{background:var(--teal);border-radius:50%;width:6px;height:6px;position:absolute;top:29px;right:-8px}.streak-small{color:var(--muted);justify-self:end;align-items:center;gap:7px;font-size:14px;display:flex}.streak-small span{color:var(--teal);font-size:20px;transform:rotate(-12deg)}.hero{grid-template-columns:minmax(440px,.95fr) minmax(520px,1.05fr);align-items:center;gap:clamp(60px,8vw,130px);max-width:1420px;min-height:calc(100vh - 96px);margin:0 auto;padding:clamp(64px,10vh,118px) clamp(24px,5vw,80px) 72px;display:grid}.kicker{color:var(--teal-dark);letter-spacing:.12em;text-transform:uppercase;margin:0 0 22px;font-size:14px;font-weight:700}h1,h2,p{margin-top:0}.hero h1,.inner-page h1,.exercise-copy h1{letter-spacing:-.045em;margin-bottom:22px;font-family:Georgia,Noto Serif SC,Songti SC,serif;font-size:clamp(48px,5.2vw,76px);line-height:1.12}.subtitle{margin-bottom:54px;font-family:Georgia,Noto Serif SC,serif;font-size:clamp(22px,2vw,30px)}.progress-wrap{max-width:430px;margin-bottom:42px}.progress-label{justify-content:space-between;margin-bottom:19px;font-size:16px;font-weight:650;display:flex}.steps{align-items:center;width:100%;display:flex}.step-item{flex:1;align-items:center;display:flex}.step-item:last-child{flex:0}.step{background:var(--paper-light);width:38px;height:38px;color:var(--teal-dark);cursor:pointer;border:1px solid #91bfba;border-radius:50%;flex:none}.step.current,.step.done{border-color:var(--teal);background:var(--teal);color:#fff}.step-line{background:repeating-linear-gradient(90deg, var(--rule) 0 6px, transparent 6px 11px);flex:1;height:2px}.step-line.filled{background:var(--teal)}.primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#248e88,#147672);border:0;border-radius:8px;justify-content:center;gap:30px;min-width:310px;padding:20px 30px;font-size:20px;font-weight:700;transition:transform .18s,box-shadow .18s;display:inline-flex;box-shadow:0 10px 24px #147d7921}.primary:hover{transform:translateY(-2px);box-shadow:0 14px 30px #147d7933}.streak-card{align-items:center;gap:13px;margin-top:26px;display:flex}.flame{color:var(--teal);font-size:32px;transform:rotate(-12deg)}.streak-card strong{font-size:16px;display:block}.streak-card small{color:var(--muted);margin-top:4px;display:block}.preview-card{background:#e9efeb;border:1px solid #aaa89e;border-radius:14px;overflow:hidden;box-shadow:0 18px 44px #32393514}.preview-head{padding:30px 38px 28px}.preview-head span{color:var(--teal);font-size:17px;font-weight:700}.preview-head h2{letter-spacing:-.025em;margin:22px 0 5px;font-size:clamp(25px,2.2vw,35px)}.code-preview{background:linear-gradient(135deg, var(--editor), var(--editor-2));color:#f0f1ed;grid-template-columns:64px 1fr;min-height:330px;display:grid}.line-nums{color:#7e8581;font:18px/1 var(--font-geist-mono), monospace;text-align:right;border-right:1px solid #4d5552;flex-direction:column;gap:26px;padding:38px 20px;display:flex}.code-preview pre{font:20px/1.9 var(--font-geist-mono), monospace;margin:0;padding:38px 26px}.code-preview .string,.code-preview .fn{color:#60beb5}.code-preview .var{color:#e3e6de}.preview-action{background:var(--editor-2);color:#d9e7e2;cursor:pointer;border:0;border-top:1px solid #3a4340;justify-content:space-between;width:100%;padding:17px 30px;display:flex}.preview-action:hover{color:#fff;background:#101514}.workbench,.inner-page{max-width:1320px;min-height:calc(100vh - 160px);margin:0 auto;padding:48px clamp(22px,5vw,72px) 80px}.lesson-bar{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:56px;font-size:14px;display:flex}.back{cursor:pointer;background:0 0;border:0;padding:8px 0}.back:hover{color:var(--teal)}.phase-tabs{align-items:center;max-width:410px;margin:-22px 0 48px;display:flex}.phase-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;padding:8px 0;font-weight:700;display:flex}.phase-tabs button span{border:1px solid #9cb8b3;border-radius:50%;place-items:center;width:27px;height:27px;font-size:12px;display:grid}.phase-tabs button.active{color:var(--teal-dark)}.phase-tabs button.active span,.phase-tabs button.done span{background:var(--teal);border-color:var(--teal);color:#fff}.phase-tabs i{background:var(--rule);flex:1;height:1px;margin:0 15px}.teaching-card{grid-template-columns:.88fr 1.12fr;align-items:start;gap:clamp(48px,7vw,94px);display:grid}.teaching-intro h1{letter-spacing:-.04em;margin-bottom:25px;font-family:Georgia,Noto Serif SC,Songti SC,serif;font-size:clamp(42px,4.6vw,66px);line-height:1.14}.plain-answer{color:#343c39;font-size:19px;line-height:1.85}.analogy-card{background:#dfede77a;border:1px solid #b9c9c3;border-radius:10px;margin-top:31px;padding:24px 25px}.analogy-card span,.takeaway span{color:var(--teal-dark);letter-spacing:.08em;margin-bottom:9px;font-size:12px;font-weight:800;display:block}.analogy-card p{margin:0;line-height:1.75}.takeaway{border-left:3px solid var(--teal);margin-top:31px;padding:2px 0 2px 20px}.takeaway strong{font-family:Georgia,Songti SC,serif;font-size:20px;line-height:1.55}.code-lesson{background:#ffffff42;border:1px solid #aaa89e;border-radius:12px;overflow:hidden;box-shadow:0 18px 45px #32393512}.lesson-code-head{background:#e4ebe6;justify-content:space-between;align-items:center;padding:18px 23px;font-weight:750;display:flex}.lesson-code-head small{color:var(--muted);font-weight:400}.code-lesson>pre{background:linear-gradient(135deg, var(--editor), var(--editor-2));color:#8bd5cd;font:17px/1.8 var(--font-geist-mono), monospace;margin:0;padding:28px 30px;overflow-x:auto}.walkthrough{padding:10px 26px 4px}.walkthrough-row{border-bottom:1px solid var(--rule);grid-template-columns:30px 1fr;gap:13px;padding:19px 0;display:grid}.walkthrough-row:last-child{border-bottom:0}.walk-number{background:var(--teal-soft);width:25px;height:25px;color:var(--teal-dark);font:700 12px/1 var(--font-geist-sans);border-radius:50%;place-items:center;display:grid}.walkthrough-row code{color:var(--teal-dark);font:700 14px/1.5 var(--font-geist-mono), monospace;word-break:break-word}.walkthrough-row p{color:var(--muted);margin:7px 0 0;font-size:14px;line-height:1.65}.pitfall{background:#f2e6d9;border-left:3px solid #b66d3c;border-radius:8px;margin:10px 25px 25px;padding:18px 20px}.pitfall strong{color:#8a4b27;font-size:13px}.pitfall p{margin:7px 0 0;font-size:14px;line-height:1.65}.learn-action{width:calc(100% - 50px);min-width:0;margin:0 25px 27px;padding:16px 22px;font-size:17px}.exercise-layout{grid-template-columns:.8fr 1.2fr;align-items:start;gap:clamp(44px,7vw,96px);display:grid}.exercise-copy h1{font-size:clamp(38px,4vw,58px)}.exercise-copy>p:not(.kicker){color:var(--muted);font-size:18px;line-height:1.8}.concept-note{border-left:3px solid var(--teal);margin:38px 0;padding:3px 0 3px 22px}.concept-note strong{color:var(--teal-dark);font-size:14px}.concept-note p{margin:9px 0 0;line-height:1.75}.hint-button{color:var(--teal-dark);cursor:pointer;background:0 0;border:1px solid #9dbeb8;border-radius:7px;padding:12px 18px}.hint-button:hover{background:#147d790f}.hint{background:#e6eee8;border-radius:8px;margin-top:16px;padding:17px;font-size:14px;line-height:1.65}.hint span{color:var(--teal-dark);margin-bottom:5px;font-weight:700;display:block}.back-to-lesson{color:var(--muted);cursor:pointer;background:0 0;border:0;margin-top:20px;padding:4px 0;font-size:13px;display:block}.back-to-lesson:hover{color:var(--teal-dark)}.editor-card{background:var(--editor-2);border:1px solid #989b93;border-radius:12px;overflow:hidden;box-shadow:0 18px 50px #1e23211f}.editor-top{background:#e5ebe7;justify-content:space-between;align-items:center;height:52px;padding:0 22px;font-size:14px;display:flex}.python-version{color:var(--muted);font-size:12px}.editor-body{background:linear-gradient(135deg, var(--editor), var(--editor-2));grid-template-columns:50px 1fr;min-height:340px;display:grid}.editor-lines{color:#79817e;font:16px/1.55 var(--font-geist-mono), monospace;border-right:1px solid #46504c;flex-direction:column;align-items:center;gap:9px;padding-top:28px;display:flex}.editor-body textarea{resize:vertical;color:#e9efeb;min-height:340px;font:16px/1.55 var(--font-geist-mono), monospace;caret-color:#63c4bb;background:0 0;border:0;outline:0;padding:27px 24px}.editor-actions{color:#909995;background:#141918;border-top:1px solid #39413f;justify-content:space-between;align-items:center;padding:13px 16px;font-size:12px;display:flex}.editor-actions button{background:var(--teal);color:#fff;cursor:pointer;border:0;border-radius:6px;padding:11px 18px;font-weight:700}.editor-actions button:hover{background:#19918b}.editor-actions b{margin-left:8px}.feedback{color:#dfe7e3;border-top:1px solid #3c4542;padding:19px 22px 22px}.feedback.success{background:#17332f}.feedback.error{background:#382723}.feedback-title{margin-bottom:8px;font-weight:800}.feedback p{color:#c5cfca;margin:5px 0 0;line-height:1.55}.feedback .output{background:#00000047;border-radius:5px;margin:11px 0;padding:9px 12px}.feedback button{color:#88d7cf;cursor:pointer;background:0 0;border:0;margin-top:15px;padding:0;font-weight:700}.inner-page{max-width:1100px;padding-top:74px}.inner-page h1{max-width:800px;font-size:clamp(42px,5vw,66px)}.page-intro{max-width:720px;color:var(--muted);font-size:18px;line-height:1.8}.summary-grid{grid-template-columns:repeat(3,1fr);gap:18px;margin:50px 0;display:grid}.summary-grid.progress-summary{grid-template-columns:repeat(4,1fr);margin-bottom:24px}.summary-grid article{border:1px solid var(--rule);background:#ffffff45;border-radius:10px;padding:24px}.summary-grid span{color:var(--muted);font-size:14px;display:block}.summary-grid strong{margin-top:13px;font:48px/1.2 Georgia,serif;display:block}.summary-grid small{font:14px var(--font-geist-sans), sans-serif;color:var(--muted)}.review-list{margin-top:50px}.section-title{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;padding-bottom:15px;display:flex}.section-title h2{margin:0;font-family:Georgia,Songti SC,serif;font-size:26px}.section-title span{color:var(--muted);font-size:12px}.review-list>button{border:0;border-bottom:1px solid var(--rule);text-align:left;cursor:pointer;background:0 0;grid-template-columns:40px 1fr auto;align-items:center;gap:16px;width:100%;padding:21px 6px;display:grid}.review-list>button:hover{background:#ffffff4d}.review-list button strong,.review-list button small{display:block}.review-list button small{color:var(--muted);margin-top:5px}.status{width:28px;height:28px;color:var(--teal);border:1px solid #9ab3ae;border-radius:50%;place-items:center;display:grid}.status.complete{background:var(--teal);color:#fff;border-color:var(--teal)}.map-page{max-width:1000px}.roadmap{border-left:1px solid #9caaa6;margin-top:56px;margin-left:25px}.roadmap-item{opacity:.55;grid-template-columns:55px 1fr auto;align-items:center;gap:18px;margin-left:-25px;padding:20px 16px 20px 0;display:grid;position:relative}.roadmap-item.active{opacity:1}.road-number{background:var(--paper);border:1px solid #a9bcb7;border-radius:50%;place-items:center;width:50px;height:50px;font:15px Georgia,serif;display:grid}.roadmap-item.active .road-number{background:var(--teal);color:#fff;border-color:var(--teal)}.roadmap-item h2{margin:0;font-size:19px}.roadmap-item p{color:var(--muted);margin:5px 0 0;font-size:13px}.road-state{color:var(--teal-dark);border:1px solid #9cb8b3;border-radius:999px;padding:6px 10px;font-size:12px}footer{border-top:1px solid var(--rule);color:var(--muted);justify-content:space-between;padding:26px clamp(24px,5vw,78px);font-size:12px;display:flex}.training-page{max-width:1380px;margin:0 auto;padding:64px clamp(24px,5vw,76px) 90px}.day-switcher{border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:50px;padding-bottom:44px;display:grid}.day-switcher h1{letter-spacing:-.045em;margin:0 0 22px;font-family:Georgia,Noto Serif SC,Songti SC,serif;font-size:clamp(42px,5vw,68px);line-height:1.12}.day-switcher>div:first-child>p:last-child{max-width:780px;color:var(--muted);margin:0;font-size:18px;line-height:1.8}.day-meta{text-align:right;padding-bottom:5px}.day-meta strong,.day-meta span{display:block}.day-meta strong{margin-bottom:9px;font-family:Georgia,serif;font-size:18px}.day-meta span{color:var(--teal-dark);font-size:13px}.knowledge-strip{padding:38px 0 50px}.section-title.compact{max-width:960px;padding-bottom:15px}.knowledge-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:960px;padding-top:18px;display:grid}.knowledge-card{text-align:left;cursor:pointer;background:#ffffff5c;border:1px solid #d1c9bb;border-radius:12px;flex-direction:column;align-items:stretch;min-width:0;min-height:220px;padding:24px;transition:border-color .18s,background .18s,transform .18s,box-shadow .18s;display:flex;box-shadow:0 6px 20px #32393509}.knowledge-card:hover{background:#ffffff94;border-color:#a9c3bc;transform:translateY(-2px);box-shadow:0 10px 26px #32393512}.knowledge-card:focus-visible{outline:2px solid var(--teal);outline-offset:4px}.knowledge-card-head{display:block}.knowledge-grid strong{color:var(--teal-dark);font:24px/1.25 Georgia,Noto Serif SC,Songti SC,serif}.knowledge-grid p{color:var(--muted);margin:12px 0 18px;font-size:14px;line-height:1.7}.knowledge-example{background:#dbeae580;border:1px solid #9ab3ae80;border-radius:8px;padding:13px 15px;display:block}.knowledge-example small{color:var(--teal-dark);letter-spacing:.1em;margin-bottom:6px;font-size:10px;font-weight:800;display:block}.knowledge-grid code{color:#32413e;font:12px/1.6 var(--font-geist-mono), monospace;white-space:nowrap;display:block;overflow-x:auto}.knowledge-card-action{color:var(--teal-dark);margin-top:auto;padding-top:18px;font-size:13px;font-weight:750}.knowledge-card-action em{margin-left:4px;font-style:normal;transition:margin-left .18s}.knowledge-card:hover .knowledge-card-action em{margin-left:8px}.knowledge-overlay{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#131b1975;justify-content:flex-end;animation:.18s ease-out overlay-in;display:flex;position:fixed;inset:0}.knowledge-drawer{background:var(--paper-light);border-left:1px solid #9eaaa5;grid-template-rows:auto 1fr auto;width:min(620px,92vw);height:100%;animation:.22s ease-out drawer-in;display:grid;overflow:hidden;box-shadow:-24px 0 70px #141d1a2e}.drawer-head{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:flex-start;gap:24px;padding:32px 34px 25px;display:flex}.drawer-head span{color:var(--teal-dark);letter-spacing:.09em;font-size:12px;font-weight:800}.drawer-head h2{margin:8px 0 0;font:38px/1.2 Georgia,Songti SC,serif}.drawer-head>button{border:1px solid var(--rule);width:38px;height:38px;color:var(--muted);cursor:pointer;background:0 0;border-radius:50%;font-size:27px;line-height:1}.drawer-head>button:hover{border-color:var(--teal);color:var(--teal)}.drawer-body{padding:30px 34px 42px;overflow-y:auto}.drawer-body section{margin-bottom:29px}.drawer-body small{color:var(--teal-dark);letter-spacing:.1em;margin-bottom:10px;font-size:11px;font-weight:850;display:block}.drawer-body p{color:#37413e;margin:0;line-height:1.8}.detail-plain{background:var(--teal-soft);border-radius:10px;padding:22px 24px}.detail-plain p{font:18px/1.75 Georgia,Songti SC,serif}.drawer-body pre{background:var(--editor);color:#80d1c8;font:14px/1.65 var(--font-geist-mono), monospace;border-radius:8px;margin:0 0 19px;padding:17px 18px;overflow-x:auto}.drawer-body ol{margin:0;padding-left:25px}.drawer-body li{margin-bottom:10px;padding-left:6px;line-height:1.65}.drawer-body li::marker{color:var(--teal);font-weight:800}.detail-warning,.detail-boundary{border-left:3px solid #b66d3c;padding-left:20px}.detail-boundary{border-left-color:var(--teal)}.drawer-actions{border-top:1px solid var(--rule);background:#f5f0e6c7;justify-content:space-between;align-items:center;padding:18px 34px;display:flex}.drawer-actions>span{color:var(--muted);font-size:12px}.drawer-actions>div{gap:9px;display:flex}.drawer-actions button{color:var(--teal-dark);cursor:pointer;background:0 0;border:1px solid #9eb8b2;border-radius:7px;padding:10px 15px;font-weight:700}.drawer-actions button:disabled{opacity:.35;cursor:default}.drawer-actions .drawer-primary{background:var(--teal);border-color:var(--teal);color:#fff}@keyframes overlay-in{0%{opacity:0}}@keyframes drawer-in{0%{opacity:.6;transform:translate(28px)}}.challenge-layout{grid-template-columns:minmax(270px,.62fr) minmax(540px,1.38fr);align-items:start;gap:clamp(30px,5vw,72px);display:grid}.brief-card{border-top:3px solid var(--teal);padding:26px 4px 0;position:sticky;top:130px}.brief-label{color:var(--teal-dark);letter-spacing:.12em;font-size:12px;font-weight:800}.brief-card h2{margin:13px 0 24px;font-family:Georgia,Songti SC,serif;font-size:30px}.brief-card ol{margin:0;padding-left:23px}.brief-card li{margin-bottom:14px;padding-left:7px;line-height:1.65}.brief-card li::marker{color:var(--teal);font-weight:800}.hint-area{border-top:1px solid var(--rule);margin-top:32px;padding-top:25px}.hint-button:disabled{opacity:.55;cursor:default}.hint-area .hint{margin:14px 0 0}.challenge-layout .editor-body,.challenge-layout .editor-body textarea{min-height:430px}.map-progress{background:#ddd6c9;border-radius:999px;height:7px;margin:38px 0 50px;overflow:hidden}.map-progress span{background:var(--teal);border-radius:inherit;height:100%;transition:width .3s;display:block}.current-stage-card{background:#dbeae58f;border:1px solid #a8c1ba;border-radius:12px;justify-content:space-between;align-items:center;gap:30px;margin:0 0 46px;padding:28px 30px;display:flex}.current-stage-card span{color:var(--teal-dark);letter-spacing:.1em;font-size:12px;font-weight:800}.current-stage-card h2{margin:8px 0 7px;font:27px Georgia,Songti SC,serif}.current-stage-card p{color:var(--muted);margin:0;font-size:14px}.current-stage-card button,.empty-state button,.mistake-actions button:first-child{background:var(--teal);color:#fff;cursor:pointer;border:0;border-radius:7px;flex:none;padding:13px 18px;font-weight:750}.stage-accordion{border-top:1px solid var(--rule)}.stage-section{border-bottom:1px solid var(--rule)}.stage-heading{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:52px 1fr auto;align-items:center;gap:18px;width:100%;padding:21px 4px;display:grid}.stage-heading:hover:not(:disabled){background:#ffffff4d}.stage-heading:disabled{cursor:default;opacity:.46}.stage-heading>span:nth-child(2){min-width:0}.stage-heading small,.stage-heading strong,.stage-heading em{display:block}.stage-heading small{color:var(--teal-dark);margin-bottom:4px;font-size:11px}.stage-heading strong{font-size:19px}.stage-heading em{color:var(--muted);margin-top:5px;font-size:13px;font-style:normal}.stage-heading>b{color:var(--teal-dark);font-size:12px;font-weight:700}.stage-section.已完成 .road-number,.stage-section.进行中 .road-number{background:var(--teal);color:#fff;border-color:var(--teal)}.stage-lessons{border-left:1px solid #b8c7c2;margin:0 0 18px 70px}.stage-lessons button{text-align:left;cursor:pointer;background:#ffffff1f;border:0;border-bottom:1px solid #d9d2c5b3;grid-template-columns:78px 1fr auto;align-items:center;gap:16px;width:100%;padding:14px 16px;display:grid}.stage-lessons button:hover:not(:disabled){background:#fff6}.stage-lessons button:disabled{opacity:.42;cursor:default}.stage-lessons span{color:var(--teal-dark);font-size:12px;font-weight:800}.stage-lessons small{color:var(--muted)}.mistakes-page{max-width:1040px}.weakness-panel{background:#dfede775;border:1px solid #aec1bb;border-radius:11px;margin:42px 0 30px;padding:26px 28px}.weakness-panel>span{color:var(--teal-dark);letter-spacing:.1em;font-size:12px;font-weight:800}.weakness-panel ol{counter-reset:weakness;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0 0;padding:0;list-style:none;display:grid}.weakness-panel li{counter-increment:weakness;border-left:2px solid var(--teal);background:#ffffff59;justify-content:space-between;align-items:center;gap:10px;padding:14px 15px;display:flex}.weakness-panel li:before{content:counter(weakness, decimal-leading-zero);color:var(--teal);font:17px Georgia,serif}.weakness-panel li strong{flex:1;font-size:14px}.weakness-panel li small{color:var(--muted)}.weakness-panel>p{color:var(--muted);margin:15px 0 0}.filter-tabs{border-bottom:1px solid var(--rule);gap:8px;padding-bottom:12px;display:flex;overflow-x:auto}.filter-tabs button{white-space:nowrap;border:1px solid var(--rule);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:9px 15px}.filter-tabs button.active{background:var(--teal);border-color:var(--teal);color:#fff}.mistake-list{margin-top:26px}.empty-state{text-align:center;border:1px dashed #b9b3a8;border-radius:12px;padding:64px 25px}.empty-state strong{font:25px Georgia,Songti SC,serif}.empty-state p{color:var(--muted);margin:12px 0 25px}.mistake-card{border:1px solid var(--rule);background:#ffffff3b;border-radius:12px;margin-bottom:20px;overflow:hidden}.mistake-head{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:flex-start;gap:20px;padding:23px 25px;display:flex}.mistake-head span{color:var(--teal-dark);font-size:12px;font-weight:800}.mistake-head h2{margin:7px 0 0;font-size:22px}.mistake-head>b{color:#8a4b27;white-space:nowrap;background:#f2e6d9;border-radius:999px;padding:7px 10px;font-size:11px}.mistake-detail{grid-template-columns:1fr 1fr;display:grid}.mistake-detail section{min-width:0;padding:23px 25px}.mistake-detail section+section{border-left:1px solid var(--rule)}.mistake-detail small{color:var(--muted);margin-bottom:11px;font-size:11px;font-weight:800;display:block}.mistake-detail pre{white-space:pre-wrap;background:var(--editor);color:#dce9e5;max-height:210px;font:12px/1.65 var(--font-geist-mono), monospace;border-radius:7px;margin:0;padding:16px;overflow:auto}.mistake-detail p{margin:0;line-height:1.7}.mistake-detail .review-date{color:var(--teal-dark);margin-top:18px;font-size:13px}.mistake-actions{border-top:1px solid var(--rule);align-items:center;gap:20px;padding:16px 25px;display:flex}.mistake-actions .text-action{color:var(--teal-dark);cursor:pointer;background:0 0;border:0;font-weight:750}.stage-grid{grid-template-columns:repeat(2,1fr);gap:15px;display:grid}.stage-card{border:1px solid var(--rule);opacity:.58;background:#ffffff2e;border-radius:11px;grid-template-columns:56px 1fr;gap:18px;padding:25px;display:grid}.stage-card.active{opacity:1;background:#e0ede761;border-color:#a9bdb7}.stage-card h2{margin:5px 0 8px;font-size:21px}.stage-card small{color:var(--teal-dark);font-weight:750}.stage-card p{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.available-days{margin-top:60px}.available-days>button{border:0;border-bottom:1px solid var(--rule);text-align:left;cursor:pointer;background:0 0;grid-template-columns:82px 1fr auto;align-items:center;gap:20px;width:100%;padding:20px 6px;display:grid}.available-days>button:hover:not(:disabled){background:#ffffff4d}.available-days>button:disabled{opacity:.42;cursor:default}.available-days>button span{color:var(--teal-dark);font-weight:800}.available-days>button small{color:var(--muted)}.review-list>button:disabled{opacity:.42;cursor:default}@media (max-width:900px){.site-header{grid-template-columns:auto 1fr;height:74px;padding:0 20px}.brand{font-size:32px}nav{justify-self:end;gap:25px}nav button{font-size:15px}nav button:after{bottom:8px}.nav-dot{top:20px}.streak-small{display:none}.hero{grid-template-columns:1fr;gap:48px;min-height:auto;padding-top:60px}.hero h1{max-width:620px}.preview-card{width:100%;max-width:660px}.exercise-layout,.teaching-card{grid-template-columns:1fr}.exercise-copy{max-width:700px}.training-page{padding-top:45px}.knowledge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.challenge-layout{grid-template-columns:1fr}.brief-card{position:static}.summary-grid.progress-summary{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.site-header{height:68px;padding:0 15px}.brand{letter-spacing:-1px;font-size:27px}nav{gap:12px}nav button{padding-left:3px;padding-right:3px;font-size:13px}.hero{gap:40px;padding:46px 20px 55px}.kicker{margin-bottom:15px}.hero h1,.inner-page h1{font-size:42px;line-height:1.15}.subtitle{margin-bottom:38px;font-size:20px}.progress-wrap{margin-bottom:32px}.primary{width:100%;min-width:0}.streak-card small{max-width:230px;line-height:1.4}.preview-head{padding:24px 22px 20px}.preview-head h2{margin-top:12px;font-size:24px}.code-preview{grid-template-columns:46px 1fr;min-height:260px}.line-nums{padding:28px 12px;font-size:14px}.code-preview pre{padding:28px 16px;font-size:15px}.workbench,.inner-page{padding:32px 18px 60px}.lesson-bar{margin-bottom:34px}.phase-tabs{max-width:none;margin:-10px 0 34px}.teaching-card{gap:30px}.teaching-intro h1{font-size:38px}.plain-answer{font-size:17px}.analogy-card{padding:20px}.lesson-code-head{padding:16px 18px}.lesson-code-head small{display:none}.code-lesson>pre{padding:23px 19px;font-size:14px}.walkthrough{padding:7px 18px 2px}.pitfall{margin:8px 18px 20px}.learn-action{width:calc(100% - 36px);margin:0 18px 22px}.exercise-copy h1{font-size:38px}.exercise-copy>p:not(.kicker),.page-intro{font-size:16px}.exercise-layout{gap:32px}.editor-body{min-height:290px}.editor-body textarea{min-height:290px;padding:22px 15px;font-size:14px}.editor-lines{padding-top:23px;font-size:14px}.editor-actions span{display:none}.editor-actions{justify-content:flex-end}.summary-grid{grid-template-columns:1fr;gap:10px;margin:36px 0}.summary-grid.progress-summary{grid-template-columns:repeat(2,1fr)}.summary-grid article{justify-content:space-between;align-items:center;padding:18px;display:flex}.summary-grid strong{margin:0;font-size:34px}.section-title span{display:none}.roadmap-item{grid-template-columns:46px 1fr}.road-number{width:42px;height:42px}.road-state{grid-column:2;justify-self:start}footer{flex-direction:column;gap:7px;padding:22px 18px}.training-page{padding:38px 18px 60px}.day-switcher{grid-template-columns:1fr;gap:20px;padding-bottom:30px}.day-switcher h1{font-size:40px}.day-switcher>div:first-child>p:last-child{font-size:16px}.day-meta{text-align:left}.knowledge-strip{padding:30px 0 36px}.section-title.compact{display:block}.section-title.compact span{margin-top:7px;display:block}.knowledge-grid{grid-template-columns:1fr;gap:12px;padding-top:15px}.knowledge-card,.knowledge-card:nth-child(2){min-height:0;padding:21px}.knowledge-grid strong{font-size:22px}.knowledge-drawer{width:100vw}.drawer-head{padding:24px 22px 20px}.drawer-head h2{font-size:32px}.drawer-body{padding:24px 22px 32px}.drawer-actions{padding:14px 22px}.challenge-layout{gap:28px}.brief-card h2{font-size:27px}.challenge-layout .editor-body,.challenge-layout .editor-body textarea{min-height:390px}.editor-top{padding:0 15px}.python-version{display:none}.stage-grid{grid-template-columns:1fr}.stage-card{padding:19px}.available-days>button{grid-template-columns:64px 1fr;gap:12px}.available-days>button small{grid-column:2}.current-stage-card{flex-direction:column;align-items:stretch;padding:22px}.current-stage-card button{width:100%}.stage-heading{grid-template-columns:44px 1fr;gap:12px;padding:18px 2px}.stage-heading>b{grid-column:2;justify-self:start}.stage-heading em{line-height:1.5}.stage-lessons{margin-left:18px}.stage-lessons button{grid-template-columns:58px 1fr;gap:9px}.stage-lessons button small{grid-column:2}.weakness-panel{padding:21px}.weakness-panel ol{grid-template-columns:1fr}.mistake-head{padding:20px}.mistake-detail{grid-template-columns:1fr}.mistake-detail section{padding:20px}.mistake-detail section+section{border-left:0;border-top:1px solid var(--rule)}.mistake-actions{flex-direction:column;align-items:stretch;padding:17px 20px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
