/* Concept-aligned classroom workbench. School artwork is kept in local assets. */
:root{--forest:#285b48;--ink:#243f36;--muted:#6a776d;--line:#dce2d6;--paper:#fffdf8;color:var(--ink);background:#f7f7ef;font-family:system-ui,-apple-system,"Microsoft JhengHei",sans-serif}
body{background:linear-gradient(#f7f7efdf,#f7f7efdf),url('../assets/paper-watercolor-seamless.png') repeat;background-size:700px;color:var(--ink)}
button,input,select,textarea{font:inherit}button{transition:background .18s,border-color .18s}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid #819c4b;outline-offset:3px}button:hover{border-color:#648675}button:disabled{cursor:not-allowed;opacity:.4}
.activity-header{max-width:1680px;min-height:100px;margin:auto;padding:18px 28px;display:flex;align-items:center;gap:18px;position:relative}.activity-header:after{content:'';position:absolute;inset:0 280px 0 auto;width:270px;background:url('../assets/lotus-corner-watercolor.png') center/contain no-repeat;opacity:.15;pointer-events:none}.activity-crest{width:62px;height:70px;object-fit:contain;mix-blend-mode:multiply}.activity-header p{margin:0 0 5px;font-size:13px;font-weight:650;letter-spacing:1px}.activity-header h1{margin:0;font-size:32px;font-weight:800;letter-spacing:3px;color:#174e40}.top-actions{display:flex;align-items:center;gap:9px;margin-left:auto;position:relative;z-index:1}.top-text-button,.icon-button{border:1px solid #becbbf;border-radius:11px;background:#fffdf8;min-height:44px;color:var(--forest);font-size:13px;padding:10px 15px}.icon-button{width:42px;height:44px;padding:0;font-size:23px}.stage-number{display:none}
.journey{max-width:1120px;margin:0 auto 18px;padding:0 24px}.lesson-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;list-style:none;margin:0;padding:9px 12px;background:#fffdf8c9;border:1px solid #e8ebe1;border-radius:40px;counter-reset:steps}.lesson-progress li{counter-increment:steps;border:0;padding:0 12px;display:flex;align-items:center;gap:12px;font-size:15px;font-weight:650;color:#7e847c;text-align:left;position:relative;min-height:43px;border-radius:28px}.lesson-progress li:before{content:counter(steps);width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#e7e8e0;color:#767f75;flex:none;font-size:17px}.lesson-progress li.active{background:var(--forest);color:#fff}.lesson-progress li.active:before{background:#ffffff20;color:white}.lesson-progress li.done{color:var(--forest)}.lesson-progress li.done:before{background:#e1ecdb;color:var(--forest)}
.app-shell{max-width:1680px;margin:auto;padding:0 24px;min-height:0;display:grid;grid-template-columns:260px minmax(300px,1fr) 330px;align-items:stretch;gap:18px;place-items:stretch}.control-panel,.atelier,.lesson-panel{border:1px solid #e0e5da;border-radius:18px;background:var(--paper);box-shadow:0 4px 18px #27412e06;min-width:0;height:calc(100dvh - 275px);min-height:580px}
.control-panel{position:relative;inset:auto;display:block;grid-column:1;grid-row:1;padding:20px 17px;overflow-y:auto;max-height:none}.step-heading{margin:0 0 18px;display:block}.step-heading h2{font:750 19px/1.4 system-ui,sans-serif;letter-spacing:0;color:var(--forest)}.diamond{display:none}.controls-group{display:flex;align-items:stretch;min-height:0;width:100%}.shape-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.shape-choice{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;background:#f8f7f0;border:1px solid #d6dcd1;border-radius:12px;padding:8px;font-size:13px;color:var(--ink);min-height:126px;white-space:normal}.shape-choice svg{height:82px;width:66px}.shape-choice.active{background:#e7efdf;border:2px solid var(--forest);color:var(--forest);padding:7px;box-shadow:none}.shape-choice.active:after{content:'✓';position:absolute;right:7px;top:7px;background:var(--forest);color:white;border-radius:50%;width:20px;height:20px;line-height:20px;font-size:12px}.help-text,#shapeControls .help-text{font:12px/1.65 system-ui,sans-serif;letter-spacing:0;color:#6a776d;text-align:left;margin:14px 0}.precision-controls{text-align:left;border-top:1px solid var(--line);padding-top:16px;margin-top:4px;font-size:13px}.precision-controls summary{font-size:15px;font-weight:750;color:var(--forest);text-decoration:none;list-style:none}.precision-controls summary:after{content:' −';float:right}.precision-controls:not([open]) summary:after{content:' ＋'}.precision-controls>div{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.precision-controls label{align-self:center;font-size:12px;color:var(--muted)}.precision-controls select,.precision-controls button,.reset-shape{border:1px solid #cdd7c9;background:#fffef9;color:var(--forest);border-radius:10px;font-size:13px;min-height:40px;padding:7px}.reset-shape{margin-top:12px;width:100%;background:#f1f3eb}
.atelier{position:relative;grid-column:2;grid-row:1;width:100%;display:grid;grid-template-rows:62px minmax(0,1fr) 80px;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 65% 55%,#dee6d5 0%,#edf1e5 42%,#fafbf2 85%)}.paper-grain{opacity:.045;z-index:0;background-image:url('../assets/paper-watercolor-seamless.png');background-size:600px}.masthead{position:relative;inset:auto;z-index:2;display:flex;align-items:center;margin:0 20px;gap:10px;pointer-events:none}.brand h2{font:750 20px/1.3 system-ui,sans-serif;margin:0;color:var(--forest)}.studio-label{display:none}.height-readout{font:600 12px system-ui,sans-serif;letter-spacing:0;margin:0 0 0 auto;padding:9px 10px;background:#fffdf8b8;border-radius:9px;color:var(--forest);white-space:nowrap}.scene-wrap{position:relative;inset:auto;min-height:0;width:100%;height:100%;grid-row:2;overflow:hidden}.scene-wrap canvas{position:relative;z-index:1}.lotus-scene{position:absolute;left:-40px;bottom:-30px;width:200px;opacity:.13;pointer-events:none}.scene-tools{z-index:2;text-align:center;padding:2px 12px 12px}.wheel-toggle{margin:0;background:var(--forest);color:white;border:2px solid white;border-radius:25px;min-height:40px;padding:8px 22px;box-shadow:0 3px 12px #31583c17;font-size:13px}.wheel-toggle[aria-pressed="false"]{background:#eef2e7;color:var(--forest)}.scene-tools p{margin:7px 0 0;font-size:12px;color:#536957}.atelier:not([data-step="0"]) .height-readout,.atelier:not([data-step="0"]):not([data-step="1"]) .wheel-toggle{display:none}.atelier:not([data-step="0"]) .scene-tools{display:grid;place-items:center}
.lesson-panel{grid-column:3;grid-row:1;width:100%;padding:20px;overflow-y:auto;scrollbar-color:#c7d4be transparent;display:flex;flex-direction:column}.lesson-header{padding:0;border:0;align-items:center}.lesson-header h2{font:750 21px/1.4 system-ui,sans-serif;letter-spacing:0;margin:6px 0 0;color:var(--forest)}.eyebrow{font:11px system-ui,sans-serif;letter-spacing:1px;color:var(--muted)}.lesson-welcome{display:flex;gap:9px;align-items:center;min-height:125px;margin:16px 0}.lesson-welcome img{width:95px;height:112px;object-fit:contain;flex:none}.lesson-welcome>div{background:#eaf0df;border-radius:18px;padding:12px;position:relative;flex:1}.welcome-kicker{font-size:12px;font-weight:750;color:var(--forest)}.lesson-intro{font:600 13px/1.75 system-ui,sans-serif;color:#3b5946;margin:6px 0 0}.lesson-content{min-height:0}.lesson-content h3{font:650 13px system-ui,sans-serif;letter-spacing:0;margin:0 0 12px;color:#6a7b68}.lesson-content .task{border:1px solid #eee5d3;background:#fbf7eb;border-radius:13px;padding:14px;font:13px/1.85 system-ui,sans-serif;color:#495643}.task strong{font-size:15px;color:var(--forest)}.lesson-content p,.lesson-content li{font:12px/1.8 system-ui,sans-serif;color:#61705e}.lesson-content ul{padding-left:18px;margin:12px 0}.lesson-content .fact{padding:15px 0 0;background:none;border:0;border-top:1px solid var(--line);margin-top:18px}.lesson-content .fact strong{color:var(--forest);font-size:14px}.lesson-content .fact p{margin:8px 0}.lesson-content .mini-note{font-size:11px;color:#86907e}.lesson-content label{font-size:13px;color:var(--forest)}.lesson-content textarea{min-height:82px;border-color:#cbd6c1;border-radius:10px;font-size:13px}.lesson-content a{color:var(--forest)}.lesson-footer{margin-top:auto;padding-top:18px;display:flex;flex-direction:column-reverse;align-items:stretch;border:0;gap:10px}.lesson-footer p{font-size:10px;text-align:center;color:#83907c}.lesson-footer button{min-height:44px;border:1px solid var(--forest);background:#fffdf8;color:var(--forest);border-radius:10px;font-size:13px;font-weight:650}.lesson-footer button:hover{background:#eaf0df}
.bottom-bar{max-width:1680px;margin:16px auto 0;padding:0 24px 16px}.navigation{background:#fffdf8;border:1px solid #e0e5da;border-radius:15px;display:flex;gap:12px;align-items:center;padding:12px 18px;height:auto;min-height:72px;margin:0}.nav-back{font-size:18px;border:1px solid #c4d1c0;background:#fffdf8;color:var(--forest);border-radius:10px;min-height:44px;padding:8px 15px}.nav-back span{font-size:13px}.nav-next{width:auto;min-width:220px;min-height:46px;height:auto;border:0;background:var(--forest);color:#fff;border-radius:12px;font:650 15px system-ui,sans-serif;padding:12px 22px;margin-left:auto;box-shadow:none}.nav-next:hover{background:#174936}.footer-line{position:static;display:block;text-align:left;letter-spacing:0;font-size:12px;color:#7e887a;margin:0 8px}
.paint-tools{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tool-choice,.pill-button{border:1px solid #cad6c1;background:#f5f7ee;border-radius:11px;font:600 13px system-ui,sans-serif;min-height:44px;color:var(--forest);padding:10px}.tool-choice.active,.compare-controls button.active{background:var(--forest);color:white;border-color:var(--forest)}.swatches{flex-wrap:wrap;gap:14px;margin:24px 3px}.swatch{width:30px;height:30px}.swatch.active{box-shadow:0 0 0 2px var(--forest)}.brush-size{font-size:13px;justify-content:space-between;margin-bottom:20px}.brush-size input{accent-color:var(--forest);width:140px;max-width:75%}.quick-patterns{display:flex;flex-wrap:wrap;gap:8px}.quick-patterns span{width:100%}.quick-patterns button{font-size:12px;min-height:38px;border-color:#cbd7c2;color:var(--forest)}.fire-options{display:flex;flex-direction:column;gap:12px}.fire-choice{width:100%;height:100px;border:1px solid #d4ddcb;background:#faf8ee;border-radius:14px;color:var(--forest)}.fire-choice.active{border:2px solid var(--forest);background:#eaf0df;box-shadow:none;color:var(--forest)}.fire-choice strong{font-size:15px;letter-spacing:1px}.fire-choice small{font-size:12px;color:#748067}.result-verse{font:650 16px/1.7 system-ui,sans-serif;letter-spacing:1px;color:var(--forest)}.result-actions{display:flex;flex-direction:column;gap:10px}.result-actions .pill-button:first-child{background:var(--forest);border-color:var(--forest)}.compare-controls{flex-wrap:wrap;margin:15px 0}.compare-controls span{width:100%;text-align:center}.compare-controls button{min-height:40px}.signature-label{font-size:13px;justify-content:center;margin:15px 0 20px}
.help-dialog,.poster-dialog,.gallery-dialog{border:1px solid var(--line);border-radius:18px;background:var(--paper);color:var(--ink);padding:24px;max-height:90dvh}.help-dialog{width:min(92vw,560px)}.help-dialog::backdrop{background:#19382b88}.help-dialog img{width:100%;height:160px;object-fit:contain}.help-dialog li{font-size:14px;line-height:1.9;margin:10px 0}.help-dialog p{font-size:12px;line-height:1.8;color:var(--muted)}.dialog-top{letter-spacing:0;color:var(--forest)}.dialog-actions button{border-radius:9px}.rubric-row{flex-wrap:wrap}.rubric-row label{margin:0}.score-total{color:var(--forest)}
@media(min-width:901px){#lessonToggle,.lesson-header button{display:none}}
@media(max-width:1200px) and (min-width:901px){.app-shell{grid-template-columns:215px minmax(260px,1fr) 285px;gap:12px;padding:0 18px}.control-panel,.lesson-panel{padding:16px 13px}.lesson-welcome{gap:6px}.lesson-welcome img{width:70px;height:100px}.lesson-welcome>div{padding:10px}.brand h2{font-size:17px}.masthead{margin:0 14px}.shape-choice{min-height:116px}.shape-choice svg{height:72px}.height-readout{font-size:10px;padding:7px}.bottom-bar{padding:0 18px 16px}}
@media(max-width:900px){.activity-header{padding:15px 18px;min-height:90px;gap:12px}.activity-header h1{font-size:26px}.activity-header p{font-size:11px}.activity-crest{width:46px;height:55px}.activity-header:after{display:none}.journey{padding:0 16px;margin-bottom:12px}.lesson-progress{gap:4px;padding:7px}.lesson-progress li{font-size:12px;gap:6px;padding:0 7px}.lesson-progress li:before{width:27px;height:27px;font-size:13px}.app-shell{grid-template-columns:210px minmax(0,1fr);gap:12px;padding:0 16px}.control-panel,.atelier{height:calc(100dvh - 270px);min-height:550px}.control-panel{padding:17px 12px}.lesson-panel{position:fixed;z-index:22;top:0;right:0;bottom:0;display:flex;width:min(94vw,390px);height:100dvh;min-height:0;border-radius:18px 0 0 18px;transform:translateX(105%);padding:22px;transition:transform .25s}.lesson-panel.open{transform:translateX(0)}.lesson-header button{display:block}.bottom-bar{padding:0 16px 12px}.top-text-button{font-size:12px;padding:9px 10px}.icon-button{display:none}.brand h2{font-size:17px}.masthead{margin:0 14px}.lesson-welcome img{width:100px}}
@media(max-width:600px){.activity-header{padding:12px;flex-wrap:wrap;gap:10px}.activity-header h1{font-size:24px}.activity-header p{font-size:10px;letter-spacing:0}.activity-crest{width:38px;height:48px}.top-actions{width:100%;justify-content:flex-end;margin:0;gap:7px}.top-text-button{min-height:38px;padding:7px 12px}.journey{padding:0 10px}.lesson-progress{border-radius:14px;gap:2px}.lesson-progress li{flex-direction:column;gap:5px;font-size:10px;padding:7px 2px;border-radius:10px}.lesson-progress li:before{width:24px;height:24px}.app-shell{display:flex;flex-direction:column;padding:0 10px;gap:12px}.atelier{order:0;height:420px;min-height:420px;grid-template-rows:52px minmax(0,1fr) 75px;border-radius:16px}.control-panel{order:1;height:auto;min-height:0;padding:16px}.step-heading{margin-bottom:12px}.step-heading h2{font-size:18px}.shape-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.shape-choice{min-height:105px;padding:6px;font-size:11px}.shape-choice.active{padding:5px}.shape-choice svg{width:50px;height:68px}.shape-choice.active:after{width:16px;height:16px;line-height:16px;right:3px;top:3px;font-size:10px}.precision-controls>div{grid-template-columns:repeat(2,1fr)}.precision-controls label{display:none}.precision-controls select{grid-column:1/-1}.precision-controls summary{font-size:14px}.help-text,#shapeControls .help-text{font-size:11px;margin:10px 0}.bottom-bar{position:sticky;bottom:0;z-index:10;margin-top:12px;padding:8px 10px;background:#f7f7efe8;backdrop-filter:blur(8px)}.navigation{gap:7px;min-height:66px;padding:9px}.nav-next{min-width:0;padding:11px 13px;font-size:12px}.nav-back{padding:8px 10px;font-size:15px}.nav-back span{font-size:11px}.footer-line{display:none}.fire-options{flex-direction:row;gap:8px}.fire-choice{width:33.333%;height:100px}.fire-choice strong{font-size:13px}.fire-choice small{font-size:10px}.paint-tools{grid-template-columns:repeat(4,1fr)}.result-actions{flex-direction:row;flex-wrap:wrap}.lesson-panel{order:2}.swatches{margin:18px 3px}.scene-tools p{font-size:11px}.height-readout{font-size:11px}.brand h2{font-size:17px}}

/* Keep long reflections in the scroll flow; flex items must not overlap the download footer. */
.lesson-header,.lesson-welcome,.lesson-content,.lesson-footer{flex-shrink:0}

/* Reference calibration: 1600 × 1000, matching the approved 16:10 concept. */
:root{--forest:#195a48;--ink:#173f39;--paper:#fffdfa;--line:#dedfd6;font-family:"Microsoft JhengHei","Noto Sans TC",system-ui,sans-serif}
body{background:linear-gradient(#faf9f3ef,#faf9f3ef),url('../assets/paper-watercolor-seamless.png');background-size:auto,700px}
.activity-header{max-width:1600px;height:100px;min-height:100px;padding:8px 40px 8px 52px;gap:28px;background:#fffefa85}
.activity-crest{width:76px;height:84px}.activity-header p{font-size:18px;margin:0 0 3px;letter-spacing:1px}.activity-header h1{font-size:42px;line-height:1.2;letter-spacing:3px;font-weight:850;color:#103f38}
.activity-header:after{right:345px;width:350px;opacity:.16;background-position:left center}
.activity-header .header-motto{position:relative;z-index:1;margin-left:auto;text-align:center;color:#95a38c;font:italic 18px/1.6 "KaiTi","Microsoft JhengHei",serif;transform:rotate(-6deg)}
.top-actions{margin-left:auto;gap:18px}.top-text-button{font-size:16px;font-weight:650;height:56px;padding:12px 22px;display:flex;align-items:center;gap:14px;background:#ffffffb3;border-color:#aebfb5;border-radius:12px}.top-text-button svg{width:27px;height:27px;stroke:currentColor;fill:none;stroke-width:2;stroke-linejoin:round}.help-symbol{display:grid;place-items:center;border:2px solid currentColor;border-radius:50%;width:25px;height:25px;font-size:19px;line-height:1}
.journey{width:1132px;max-width:calc(100% - 48px);height:60px;padding:0;margin:10px auto 14px}.lesson-progress{height:60px;border:0;padding:6px 16px;gap:0;box-shadow:0 3px 14px #233c2510}.lesson-progress li{font-size:20px;padding:0 10px 0 0;gap:15px;height:48px;min-height:48px}.lesson-progress li:before{width:46px;height:46px;font-size:25px;color:white;background:#aaa9a3;border:3px solid #fff}.lesson-progress li.active:before{background:var(--forest);box-shadow:0 0 0 2px #fff}.lesson-progress li.active{background:linear-gradient(90deg,var(--forest) 83%,transparent 83%);border-radius:28px 0 0 28px}.lesson-progress li:not(:last-child):after{content:'';height:2px;background:#aeb1a6;width:42px;position:absolute;right:12px;top:24px}.lesson-progress li.done:before{background:#678c73;color:white}
.app-shell{max-width:1600px;padding:0 24px;gap:16px;grid-template-columns:minmax(0,23fr) minmax(0,50fr) minmax(0,27fr)}
.control-panel,.atelier,.lesson-panel{height:calc(100dvh - 290px);min-height:710px;border:1px solid #e5e5dc;border-radius:17px;box-shadow:0 3px 14px #343b2510}
.control-panel{padding:15px 14px 18px}.step-heading{margin:0 3px 16px}.step-heading h2{font-size:24px;line-height:29px;font-weight:800}.shape-options{gap:12px}.shape-choice{min-height:149px;padding:6px 8px 10px;gap:0;font-size:18px;line-height:26px;border-color:#d8ddd5;border-radius:13px;background:linear-gradient(135deg,#f6f4ee,#faf9f5)}.shape-choice.active{padding:5px 7px 9px;background:linear-gradient(125deg,#dfe9d8,#f3f6e8)}.shape-thumbnail{width:100%;height:107px;object-fit:contain}.shape-choice.active:after{width:27px;height:27px;line-height:27px;right:8px;top:8px;font-size:18px;box-shadow:0 0 0 2px #fff}.shape-choice span{font-weight:600}
#shapeControls>.help-text{display:none}.precision-controls{border-top:1px solid #d5dbd0;margin-top:20px;padding-top:16px}.precision-controls summary{font-size:22px;line-height:30px;cursor:default;pointer-events:none}.precision-controls summary:after{display:none}.zone-options{display:flex;min-width:0;padding:0;border:1px solid #c4cec6;border-radius:24px;margin:12px 0 0;background:#f6f6ef;overflow:hidden}.zone-options label{flex:1;min-width:0;position:relative;font-size:18px;cursor:pointer}.zone-options input{position:absolute;opacity:0;width:100%;height:100%;inset:0;margin:0;cursor:pointer}.zone-options span{display:block;text-align:center;padding:8px 0;border-radius:24px;color:#29473c;line-height:23px}.zone-options input:checked+span{background:var(--forest);color:white}.zone-options input:focus-visible+span{outline:3px solid #92a94f;outline-offset:-4px}.precision-controls .precision-actions{margin-top:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.precision-actions button{min-height:50px;font-size:18px;display:flex;justify-content:center;align-items:center;gap:15px;border-radius:11px}.precision-actions b{font-size:26px;font-weight:650}.reset-shape{font-size:18px;height:57px;margin-top:17px;background:linear-gradient(#f4f4ed,#eaece4);border-color:#c7cec2;border-radius:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.atelier{grid-template-rows:58px minmax(0,1fr);border:10px solid #fffdfa;background:radial-gradient(ellipse at 40% 23%,#f9faf3,#dee5d7 64%,#d1dbcd);border-radius:18px}.masthead{margin:0 6px;z-index:3;align-items:flex-start;padding-top:9px}.brand h2{font-size:25px;line-height:31px;font-weight:800}.height-readout{font-size:16px;padding:9px 13px;line-height:23px;border-radius:11px;background:#fafcf5c9}.scene-wrap{grid-row:2;overflow:hidden}.lotus-scene{width:210px;opacity:.08;left:-45px;bottom:-15px}.scene-tools{position:absolute;left:0;right:0;bottom:0;padding:0 10px 10px;z-index:4;background:linear-gradient(transparent,#faf9efe6);pointer-events:none}.scene-tools button{pointer-events:auto}.wheel-toggle{height:54px;min-width:210px;font-size:21px;font-weight:700;border:3px solid #fff;border-radius:30px;padding:6px 24px;box-shadow:0 3px 10px #30412d29}.scene-tools p{font-size:18px;line-height:26px;margin:9px 0 0;color:#36594b}.atelier:not([data-step="0"]) .scene-tools{display:block}.scene-wrap canvas{cursor:grab}.scene-wrap canvas:active{cursor:grabbing}
.gesture-hints{position:absolute;inset:0;z-index:2;pointer-events:none;transition:opacity .2s;color:#fff;font-size:17px;font-weight:600}.hint-horizontal{position:absolute;left:50%;top:53%;transform:translateX(-50%);text-align:center;text-shadow:0 1px 4px #54351f4d}.hint-horizontal span{display:block;font:64px/35px Arial,sans-serif;width:135px;margin-bottom:8px;transform:scaleX(1.8)}.hint-vertical{position:absolute;left:65%;top:14%;display:flex;align-items:center;color:#3b6660;gap:14px;white-space:nowrap}.hint-vertical span{font:72px/1 Arial,sans-serif;transform:scaleY(1.3)}.gesture-hints.dismissed,.atelier:not([data-step="0"]) .gesture-hints{opacity:0;visibility:hidden}
.lesson-panel{padding:15px 14px 18px}.lesson-header{gap:8px;min-height:30px;margin:0 3px}.lesson-header h2{font-size:24px;line-height:29px;font-weight:800;margin:0;white-space:nowrap}.eyebrow{font-size:15px;letter-spacing:0;white-space:nowrap;color:#223f37}.lesson-welcome{height:183px;min-height:183px;gap:0;margin:29px 0 17px;align-items:center}.lesson-welcome img{width:42%;height:178px;object-fit:contain;z-index:1}.lesson-welcome>div{padding:20px 12px 20px 18px;border-radius:55px 42px 48px 18px;background:#e9eedc;margin-left:-5px;align-self:center}.welcome-kicker{font-size:21px;font-weight:750;white-space:nowrap}.lesson-intro{font-size:21px;line-height:1.65;font-weight:500;margin:6px 0 0}.lesson-content .task{border:1px solid #efe7d4;border-radius:13px;padding:15px 18px;font-size:20px;line-height:1.8;background:linear-gradient(135deg,#fcf8ee,#faf5e7)}.task strong{font-size:23px;font-weight:750;display:flex;align-items:center;gap:7px;color:#164f41}.task-symbol{font-size:38px;line-height:1;color:#b3533e}.lesson-content .task p{font-size:20px;line-height:1.8;color:#394f47;margin:8px 0 0}.symmetry-fact{display:flex;align-items:center;gap:5px;min-height:167px}.lesson-content .fact{margin-top:22px;padding:24px 14px 10px;border-top:1px solid #d8ded1}.lesson-content .fact strong{font-size:19px;line-height:1.5;white-space:nowrap}.lesson-content .fact strong span{color:#ba8b38;font-size:29px}.lesson-content .fact p{font-size:19px;line-height:1.75;color:#3c5149;margin:10px 0 0}.symmetry-diagram{width:85px;height:130px;flex:none;fill:none;stroke:#788378;stroke-width:1.5}.lesson-content .symmetry-fact>div{flex:1;min-width:0}.lesson-footer{padding-top:16px;gap:0;margin-top:auto}.lesson-footer button{height:68px;min-height:68px;font-size:22px;letter-spacing:1px;font-weight:650;background:#fffdfa;border-radius:12px}.lesson-footer p{margin:8px 0 0;font-size:11px;min-height:0}.lesson-panel[data-step="0"] .lesson-footer p{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}.lesson-content h3{font-size:19px}.lesson-content ul,.lesson-content>p{font-size:16px}.lesson-content li{font-size:16px}.lesson-content label{font-size:17px}.lesson-content textarea{font-size:16px;min-height:90px}.lesson-content .mini-note{font-size:13px}.lesson-panel:not([data-step="0"]) .lesson-welcome{height:auto;min-height:145px;margin:20px 0}.lesson-panel:not([data-step="0"]) .lesson-welcome img{height:140px}.lesson-panel:not([data-step="0"]) .lesson-intro{font-size:17px}.lesson-panel:not([data-step="0"]) .task{font-size:17px}.lesson-panel:not([data-step="0"]) .fact strong{white-space:normal}.lesson-panel:not([data-step="0"]) .fact p{font-size:16px}
.bottom-bar{max-width:1600px;margin:16px auto 0;padding:0 24px 10px}.navigation{height:80px;min-height:80px;padding:10px 24px 10px 42px;gap:22px;border:1px solid #ecebdf;background:#fffdfa}.nav-back{min-height:56px;min-width:155px;font-size:28px;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:12px}.nav-back span{font-size:20px;font-weight:600}.nav-back:disabled{opacity:.5}.footer-line{font-size:16px;margin:0;white-space:nowrap}.nav-next{height:58px;min-width:310px;font-size:22px;border-radius:13px;padding:10px 28px}.device-note{font-size:14px;white-space:nowrap;color:#8b9189}.rubric-row select{font-size:15px;max-width:100%;border-radius:8px}.tool-choice,.pill-button{font-size:18px}.paint-tools{gap:12px}.swatches{gap:22px}.swatch{width:39px;height:39px}.brush-size{font-size:18px}.brush-size input{width:190px}.quick-patterns{font-size:17px;gap:12px}.quick-patterns button{font-size:16px;min-height:44px}.help-text{font-size:16px}.fire-choice{height:130px}.fire-choice strong{font-size:21px}.fire-choice small{font-size:16px}.result-verse{font-size:23px}.compare-controls,.signature-label{font-size:17px}.compare-controls button{font-size:17px}.signature-label input{font-size:20px}.result-actions .pill-button{min-height:50px}
@media(min-width:1601px){.app-shell,.activity-header,.bottom-bar{max-width:1600px}.control-panel,.atelier,.lesson-panel{height:min(810px,calc(100dvh - 290px))}}
@media(min-width:901px) and (max-width:1399px){.activity-header{padding:10px 28px;gap:18px}.activity-header h1{font-size:35px}.activity-header p{font-size:14px}.activity-header .header-motto{font-size:15px}.top-actions{gap:10px}.top-text-button{font-size:15px;padding:10px 16px}.app-shell{gap:14px;grid-template-columns:minmax(0,23fr) minmax(0,50fr) minmax(0,27fr)}.control-panel,.atelier,.lesson-panel{min-height:650px}.step-heading h2,.brand h2,.lesson-header h2{font-size:21px}.shape-choice{min-height:135px;font-size:17px}.shape-thumbnail{height:93px}.lesson-header{flex-wrap:wrap;row-gap:3px}.eyebrow{font-size:13px}.lesson-welcome{height:155px;min-height:155px;margin:18px 0}.lesson-welcome img{height:150px}.lesson-welcome>div{padding:14px 12px}.welcome-kicker{font-size:18px}.lesson-intro{font-size:18px}.lesson-content .task{padding:13px}.task strong{font-size:20px}.lesson-content .task p{font-size:17px}.lesson-content .fact{padding:18px 6px 8px;margin-top:18px}.lesson-content .fact strong{font-size:16px;white-space:normal}.lesson-content .fact p{font-size:16px}.symmetry-diagram{width:65px;height:110px}.lesson-footer button{height:58px;min-height:58px;font-size:19px}.height-readout{font-size:13px;padding:8px}.precision-controls summary{font-size:20px}.zone-options label,.precision-actions button,.reset-shape{font-size:16px}.precision-controls{margin-top:18px;padding-top:12px}.precision-actions button{min-height:44px}.reset-shape{height:50px}.scene-tools p{font-size:16px}.wheel-toggle{font-size:18px;min-width:185px;height:49px}.hint-vertical{left:66%;gap:6px;font-size:14px}.hint-horizontal{font-size:14px}.nav-next{min-width:270px;font-size:19px}.device-note{font-size:12px}.nav-back{min-width:120px}.navigation{padding-left:20px;gap:16px}}
@media(max-width:900px){.activity-header{height:100px;min-height:100px;padding:12px 20px;gap:15px}.activity-crest{width:53px;height:64px}.activity-header h1{font-size:31px}.activity-header p{font-size:12px}.activity-header .header-motto{display:none}.top-actions{gap:8px}.top-text-button{font-size:13px;padding:9px 12px;height:44px;gap:7px}.top-text-button svg{width:20px;height:20px}.help-symbol{width:20px;height:20px;font-size:15px}.journey{max-width:calc(100% - 32px);height:55px;margin:8px auto 14px}.lesson-progress{height:55px;padding:6px 10px}.lesson-progress li{font-size:14px;height:43px;min-height:43px;gap:8px;padding-right:4px}.lesson-progress li:before{width:33px;height:33px;font-size:18px;border-width:2px}.lesson-progress li:not(:last-child):after{display:none}.lesson-progress li.active{background:var(--forest);border-radius:24px}.app-shell{padding:0 16px;gap:14px;grid-template-columns:240px minmax(0,1fr)}.control-panel,.atelier{height:calc(100dvh - 285px);min-height:650px}.control-panel{padding:16px 12px}.step-heading h2{font-size:21px}.shape-choice{min-height:131px;font-size:15px}.shape-thumbnail{height:91px}.shape-options{gap:9px}.precision-controls summary{font-size:20px}.zone-options label{font-size:16px}.precision-actions button{font-size:16px}.reset-shape{font-size:16px}.atelier{border-width:7px;grid-template-rows:58px minmax(0,1fr)}.brand h2{font-size:19px}.height-readout{font-size:12px;padding:7px}.masthead{margin:0 5px;gap:8px;flex-wrap:wrap;align-content:flex-start}.wheel-toggle{font-size:17px;min-width:180px;height:46px}.scene-tools p{font-size:14px}.hint-vertical{left:68%;gap:2px;font-size:12px}.hint-vertical span{font-size:58px}.hint-horizontal{font-size:13px}.hint-horizontal span{font-size:48px;width:100px}.lesson-panel{width:min(94vw,430px);height:100dvh;min-height:0;padding:20px;max-height:none}.lesson-header h2{font-size:22px}.eyebrow{font-size:13px}.lesson-header button{margin-left:auto}.lesson-welcome{margin:22px 0 18px}.lesson-welcome img{height:165px}.lesson-content .task p{font-size:18px}.lesson-content .fact p{font-size:17px}.lesson-content .fact strong{font-size:17px}.lesson-footer button{font-size:19px;min-height:55px;height:55px}.bottom-bar{padding:0 16px 12px;margin-top:14px}.navigation{height:76px;min-height:76px;padding:10px 14px;gap:10px}.nav-back{min-width:110px;font-size:24px}.nav-back span{font-size:17px}.nav-next{font-size:18px;min-width:235px;padding:10px 20px}.footer-line{font-size:13px;white-space:normal}.device-note{display:none}.scene-tools{padding-bottom:8px}.lesson-panel.open{transform:translateX(0)}}
@media(max-width:600px){.activity-header{height:auto;min-height:122px;gap:10px;padding:10px 14px}.activity-crest{width:44px;height:54px}.activity-header h1{font-size:29px}.activity-header p{font-size:11px}.top-actions{width:100%;justify-content:flex-end;margin:0;gap:7px}.top-text-button{height:39px;min-height:39px;padding:7px 12px;font-size:13px}.journey{max-width:calc(100% - 20px);height:69px;margin:6px auto 12px}.lesson-progress{height:69px;padding:5px;border-radius:14px}.lesson-progress li{height:59px;min-height:59px;flex-direction:column;padding:4px 0;gap:4px;font-size:11px;border-radius:10px}.lesson-progress li:before{width:26px;height:26px;font-size:15px}.lesson-progress li.active{border-radius:10px}.app-shell{padding:0 10px;display:flex;gap:12px}.atelier{height:450px;min-height:450px;grid-template-rows:45px minmax(0,1fr)}.brand h2{font-size:19px;line-height:25px}.masthead{padding-top:5px;flex-wrap:nowrap}.height-readout{font-size:12px;padding:5px 7px;line-height:20px}.scene-tools p{font-size:12px;margin-top:6px}.wheel-toggle{font-size:15px;height:42px;min-width:165px}.hint-horizontal{top:50%;font-size:12px}.hint-horizontal span{font-size:43px;width:90px;margin-bottom:2px}.hint-vertical{top:13%;left:67%;font-size:11px;gap:3px}.hint-vertical span{font-size:51px}.control-panel{height:auto;min-height:0;padding:15px 12px}.step-heading{margin-bottom:12px}.step-heading h2{font-size:21px}.shape-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.shape-choice{min-height:107px;padding:5px 2px;font-size:12px;line-height:20px}.shape-choice.active{padding:4px 1px}.shape-thumbnail{height:75px}.shape-choice.active:after{width:18px;height:18px;line-height:18px;font-size:12px;top:4px;right:4px}.precision-controls{margin-top:15px;padding-top:12px}.precision-controls summary{font-size:19px}.zone-options{margin-top:10px}.zone-options label{display:block;font-size:16px}.zone-options span{padding:8px 0}.precision-controls .precision-actions{margin-top:10px;gap:8px}.precision-actions button{min-height:46px}.reset-shape{height:46px;margin-top:10px}.bottom-bar{padding:8px 10px;margin-top:10px}.navigation{height:auto;min-height:65px;padding:8px;gap:7px}.nav-back{min-width:0;min-height:45px;font-size:21px;padding:7px 10px;gap:6px}.nav-back span{font-size:13px}.nav-next{min-width:0;height:45px;min-height:45px;font-size:14px;padding:8px 13px}.footer-line{display:none}.lesson-panel{padding:18px;min-height:0}.lesson-header{flex-wrap:wrap;row-gap:5px}.lesson-header h2{font-size:23px}.eyebrow{font-size:12px}.lesson-welcome{height:auto;min-height:150px;margin:18px 0}.lesson-welcome img{height:155px}.lesson-welcome>div{padding:16px 10px 16px 16px}.welcome-kicker{font-size:19px}.lesson-intro{font-size:19px}.lesson-content .task{padding:15px;font-size:17px}.task strong{font-size:21px}.lesson-content .task p{font-size:17px}.symmetry-diagram{width:68px}.lesson-content .fact strong{font-size:16px;white-space:normal}.lesson-content .fact p{font-size:16px}.tool-choice,.pill-button{font-size:15px}.fire-choice{height:110px}.fire-choice strong{font-size:16px}.fire-choice small{font-size:12px}.result-actions .pill-button{min-height:45px}.scene-tools{padding:0 5px 8px}}
/* Allow the reference-height panels to fit without internal scrollbars on step one. */
@media(min-width:1400px){.control-panel{padding-bottom:15px}.lesson-panel[data-step="0"] .lesson-welcome{margin-top:23px;height:178px;min-height:178px}.lesson-panel[data-step="0"] .lesson-footer{padding-top:12px}}
.lesson-progress li.active{background:none;border-radius:28px;isolation:isolate}.lesson-progress li.active:after{z-index:-2}.lesson-progress li.active:before{z-index:1}.lesson-progress li.active{background:linear-gradient(var(--forest),var(--forest)) left center/83% 100% no-repeat;clip-path:inset(-3px -1px -3px -3px round 28px)}
.precision-controls h3{font:750 22px/30px "Microsoft JhengHei",system-ui,sans-serif;color:var(--forest);margin:0}
.lesson-progress li.active{background:none;clip-path:none}.lesson-progress .step-name:before{content:'';position:absolute;inset:0 44px 0 0;border-radius:28px;z-index:-1}.lesson-progress li.active .step-name:before{background:var(--forest)}
@media(max-width:900px){.lesson-progress .step-name:before{right:0}.precision-controls h3{font-size:20px}}
@media(max-width:600px){.lesson-progress .step-name:before{border-radius:10px}.precision-controls h3{font-size:19px}}
