:root{--paper:#f5f2e9;--ink:#213d45;--muted:#536b72;--blue:#255f8f;--green:#286c5b;--line:#ccd5ce;--white:#fffef9}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.55 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--blue)}button,input{font:inherit}button,.button{cursor:pointer;border:1px solid var(--green);background:var(--green);color:white;border-radius:9px;padding:11px 19px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:14px;text-decoration:none;font-weight:650}button:hover,.button:hover{filter:brightness(.94)}button.light,.button.light{color:var(--ink);background:var(--white);border-color:var(--line)}button:disabled{opacity:.5;cursor:default}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #b9691f;outline-offset:4px}[hidden]{display:none!important}.skip{position:fixed;top:-100px;left:15px;z-index:99;background:white;padding:10px}.skip:focus{top:10px}.top{max-width:1320px;margin:auto;padding:23px 30px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{text-decoration:none;color:var(--ink);font:bold 28px Georgia,serif;display:flex;gap:12px}.top nav{display:flex;gap:26px;font-size:17px}.top nav a{text-decoration:none}main{max-width:1320px;margin:auto;padding:0 30px}h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,'Times New Roman',serif;line-height:1.1;letter-spacing:-.035em;font-size:clamp(34px,4.8vw,64px);font-weight:normal;margin-bottom:24px}h2{line-height:1.25}h3{font-size:22px;line-height:1.25}.hero{padding:65px 0 38px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--green);font-size:14px;font-weight:750;margin-bottom:18px}.lead{font-size:23px;max-width:760px;color:var(--muted)}.hero-actions,.actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.hero-actions{margin-top:28px}.text-link{padding:12px}.route-summary{display:flex;gap:45px;margin-top:38px;color:var(--muted);border-top:1px solid var(--line);padding-top:22px}.route-summary b{color:var(--ink);font-size:24px;margin-right:7px}.stage-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:45px}.stage-nav a{border:1px solid var(--line);border-radius:30px;padding:9px 17px;text-decoration:none;font-size:16px;background:#fffcf6}.stage{margin-bottom:48px;scroll-margin-top:20px}.stage-head{display:flex;align-items:center;gap:18px;margin-bottom:20px}.stage-number{border:1px solid var(--line);border-radius:50%;width:50px;height:50px;display:grid;place-items:center;color:var(--green)}.stage-head h2{margin:0 0 5px;font-size:28px}.stage-head p{margin:0;color:var(--muted)}.topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.topic-card{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:22px;display:flex;flex-direction:column}.topic-card .number{font-size:15px;color:var(--green);margin-bottom:12px;display:flex;justify-content:space-between}.topic-card p{color:var(--muted);font-size:17px}.topic-card .go{margin-top:auto;padding-top:12px;display:flex;justify-content:space-between;align-items:center}.topic-card a{text-decoration:none}.badge{font-size:14px;padding:2px 8px;background:#e8f0eb;border-radius:5px}.sources,.report{border-top:1px solid var(--line);padding:25px 0}.sources p{max-width:950px}.sources summary,.report summary{cursor:pointer;font-size:21px;font-weight:650;margin-bottom:18px}.lesson-nav{display:flex;gap:16px;justify-content:space-between;padding-top:25px;font-size:16px;flex-wrap:wrap}.lesson-title{padding-top:30px}.lesson-title h1{font-size:clamp(31px,4vw,48px);margin-bottom:10px}.lesson-title p:last-child{color:var(--muted)}.mode-tabs{display:flex;gap:8px;margin:25px 0 20px;flex-wrap:wrap}.mode-tabs button{background:transparent;color:var(--ink);border:1px solid var(--line)}.mode-tabs button.selected{background:var(--green);border-color:var(--green);color:white}.workspace-tools{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:15px}.workspace-tools b{font-size:25px}.mode-label{display:block;font-size:15px;color:var(--muted)}.camera-tools{display:flex;gap:7px;flex-wrap:wrap;align-items:center;font-size:15px}.camera-tools button{background:var(--white);border-color:var(--line);color:var(--ink);font-size:15px;padding:8px 11px;min-height:44px}.camera-tools button[aria-pressed=true]{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.camera-tools input{width:18px;height:18px;vertical-align:middle}.board-wrap{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fbf8ee}#board{width:100%;height:auto;display:block}#mobile-board{display:none}.step-controls{max-width:930px;margin:18px auto 25px;padding:24px;background:var(--white);border:1px solid var(--line);border-radius:12px}.step-heading{display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:16px;margin-bottom:12px}#question{font-size:25px;margin-bottom:16px}#answer-form label{display:block;margin-bottom:7px;font-size:17px}.answer-row{display:flex;gap:10px;flex-wrap:wrap}#answer{width:220px;min-width:140px;border:2px solid #91a99e;border-radius:8px;padding:8px 14px;font-size:26px;height:52px}#feedback{min-height:28px;margin:10px 0;color:var(--green);font-weight:600}#feedback.error{color:#a14224}#hint-text{border-left:4px solid #b58130;padding:13px 18px;background:#faf2dd;margin:20px 0 0}.answer-options{display:flex;gap:10px;margin:10px 0}#written-solution{margin:25px 0;background:#fffdf5;padding:17px;border-radius:10px}#solution-log li{margin:10px 0;font-size:21px;white-space:pre-wrap}.lesson-note{color:var(--muted);font-size:16px}#video-area{padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--white);margin-bottom:25px}#video{width:100%;max-height:78vh;background:#f7f4eb;border-radius:9px}#notice{margin:15px 0;background:#fff0d2;padding:16px;border-radius:10px}footer{border-top:1px solid var(--line);padding:30px 0 50px;color:var(--muted);font-size:16px}footer p{margin-top:14px}.report-row{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #e1e5dc;padding:10px 0}body.render-mode{background:#f5f2e9}body.render-mode .top,body.render-mode main>*:not(#lesson),body.render-mode #lesson>*:not(#practice-area),body.render-mode #practice-area>*:not(.board-wrap){display:none!important}body.render-mode main{max-width:none;padding:0}body.render-mode .board-wrap{border:0;border-radius:0;width:1280px;height:800px}body.render-mode #board{width:1280px;height:800px}body.render-mode #mobile-board{display:none!important}body.render-mode #lesson,body.render-mode #practice-area{display:block!important}
@media(max-width:900px){.topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.top{padding:18px}.top nav{gap:12px}main{padding:0 18px}.route-summary{gap:20px;flex-wrap:wrap}.hero{padding-top:40px}.camera-tools label{width:100%}}
@media(max-width:600px){body{font-size:18px}.brand{font-size:23px}.top nav{font-size:15px}.top nav a:last-child{display:none}.hero{padding-top:30px}.lead{font-size:20px}.topic-grid{grid-template-columns:1fr}.topic-card{padding:20px}.stage-head{gap:10px}.stage-head h2{font-size:23px}.stage-number{flex-shrink:0}.route-summary{gap:12px;font-size:16px}.route-summary span{width:100%}.hero-actions .button{width:100%}.lesson-nav{font-size:15px}.lesson-title h1{font-size:32px}.mode-tabs{display:grid;grid-template-columns:1fr 1fr}.mode-tabs button{font-size:16px;padding:9px}.mode-tabs button:last-child{grid-column:1/-1}.workspace-tools b{font-size:22px}#board{display:none}#mobile-board{display:flex;flex-direction:column}#mobile-board canvas{display:block;width:100%;height:auto}.step-controls{padding:18px 14px}#question{font-size:22px}.answer-row input{flex:1;width:150px!important}.answer-row button{padding:10px 14px}#video-area{padding:12px}.report-row{flex-direction:column;gap:4px}#solution-log{padding-left:24px}body.render-mode #board{display:block}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.lesson-source{display:grid;gap:.35rem;background:#fffdf7;border-left:3px solid #b8cbbb;padding:1rem 1.2rem;margin:1rem 0 1.4rem;color:#526775;font-size:.92rem;line-height:1.5}.lesson-source a{font-weight:650}.lesson-source small{font-size:.84rem;color:#697983}

#step-explanation{font-size:21px;line-height:1.55;background:#eef4ed;border-left:4px solid var(--green);padding:16px 20px;margin:16px 0;max-width:800px}
#lesson-idea{font-size:21px;line-height:1.5;max-width:980px;margin:12px 0 20px}
