*{box-sizing:border-box}body{margin:0;background:#f0f2f3;color:#1e292d;font-family:Inter,Arial,sans-serif;font-size:16px}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer;border:1px solid #ccd3d6;background:white;border-radius:7px;padding:10px 12px;color:inherit}button:hover{background:#eef5f0}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #20885d;outline-offset:3px}header{height:78px;display:flex;align-items:center;gap:35px;padding:0 30px;background:#fff;border-bottom:1px solid #d9dfe1}.brand{text-decoration:none;color:#182e25;font-size:26px;letter-spacing:-1px;font-weight:800;display:flex;align-items:center;gap:7px}.brand>span:last-child{font-weight:400}.mark{font-family:Georgia;font-style:italic;background:#183e2e;color:#ceff93;display:grid;place-items:center;width:37px;height:40px;border-radius:10px;font-size:35px;margin-right:7px}.subtitle{font-size:14px;color:#697579}.tag{margin-left:auto;font-size:12px;letter-spacing:1.8px;border:1px solid #d5ddda;padding:7px 10px;border-radius:5px}main{display:grid;grid-template-columns:275px minmax(350px,1fr) 282px;max-width:1900px;margin:auto;min-height:calc(100vh - 78px)}aside{padding:27px 23px;background:#fff}aside:first-child{border-right:1px solid #d9dfe1}.section-title{display:flex;align-items:center;gap:10px;margin:0 0 17px}.section-title:not(:first-child){margin-top:28px}.section-title span{font-size:12px;color:#697f72;border:1px solid #dbe3df;border-radius:50%;padding:5px}h1,h2,h3,p{margin-top:0}.section-title h1,.section-title h2{font-size:16px;margin:0;font-weight:600}.upload{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:15px;border:1px dashed #a3b6aa;background:#f6f9f6;border-radius:8px;cursor:pointer}.upload input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.upload:focus-within{outline:3px solid #20885d}.upload-icon{font-size:24px}.upload small,.hint{font-size:13px;color:#6b7873;line-height:1.5}#filename{font-size:13px;overflow-wrap:anywhere;margin:12px 0}.examples{display:flex;gap:6px;flex-wrap:wrap}.examples button{font-size:12px;flex:1;min-width:85px;padding:9px 5px}.selected{background:#e8f1ea;border-color:#8cab95}.hint{margin:11px 0 0}.field{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:13px 0;font-size:14px}.field>div{display:flex;align-items:center;border:1px solid #d2dad6;border-radius:6px;padding-right:8px;color:#7c8982;font-size:13px}.field input{width:65px;border:0;background:transparent;padding:9px 4px 9px 9px;font-size:14px;color:#263c30;min-width:0}.range-label{font-size:14px;display:flex;justify-content:space-between;margin:16px 0 8px}input[type=range]{width:100%;accent-color:#2a6745;height:17px}.primary{background:#193f2d;color:#fff;border-color:#193f2d;width:100%;display:flex;justify-content:space-between;align-items:center;margin-top:18px}.primary:hover{background:#2a5940}.workspace{display:flex;flex-direction:column;min-width:0;background:#e9eded}.canvas-heading{display:flex;justify-content:space-between;align-items:center;padding:27px 28px 0;gap:10px}.eyebrow{font-size:12px;letter-spacing:1.8px;color:#6d7a75;margin:0 0 10px}.canvas-heading h2{font-size:25px;font-weight:500;letter-spacing:-.7px;margin:0}.badge{font-size:12px;border:1px solid #becdc5;padding:7px 10px;border-radius:20px;white-space:nowrap;color:#3e6651}#viewport{position:relative;min-height:440px;flex:1;overflow:hidden;background:radial-gradient(ellipse at center,#f8faf8 0,#e9eded 73%)}canvas{width:100%;height:100%;display:block;touch-action:none;position:absolute;inset:0}.view-tools{position:absolute;z-index:2;top:18px;left:28px;display:flex;gap:5px}.view-tools button{font-size:12px;padding:8px 10px;background:#ffffffa8}.view-caption{position:absolute;bottom:20px;left:28px;font-size:12px;color:#74817a}.scale{position:absolute;right:24px;bottom:20px;font-size:10px;letter-spacing:1px;color:#74817a}.movement{display:flex;align-items:center;gap:12px;padding:17px 28px;border-top:1px solid #d4ddda;font-size:13px;flex-wrap:wrap;background:#f6f8f7}.movement button{font-size:13px;min-width:125px}.movement input{width:100px}.movement span{font-size:12px;color:#6b7771;margin-left:auto}.stats{display:grid;grid-template-columns:1.4fr 1fr 1fr;padding:23px 28px;gap:15px;background:#fff;border-top:1px solid #d9dfdc}.stats small{display:block;font-size:10px;letter-spacing:1.1px;color:#7b8981;margin-bottom:10px}.stats strong{font-size:16px;font-weight:500}#message{font-size:13px;line-height:1.5;padding:14px 28px;background:#e1eae4;color:#35543f;min-height:65px}#message.error{background:#fff0de;color:#8c4c1f}.right{border-left:1px solid #d9dfe1;padding-top:31px}.right h2{font-family:Georgia,serif;font-weight:400;font-size:29px;line-height:1.17;letter-spacing:-.5px}.right p{font-size:14px;color:#6a7770;line-height:1.6}.joint-key{display:flex;gap:12px;margin:22px 0}.joint-key>span{width:22px;height:22px;border-radius:5px;background:#73a744}.joint-key.alt>span{background:#aac35d}.joint-key strong{display:block;font-size:14px;font-weight:500}.joint-key small{display:block;font-size:12px;color:#77847b;margin-top:5px}.note{border:1px solid #dbe2de;border-radius:9px;padding:15px;margin:25px 0}.note strong{font-size:14px}.note p{font-size:13px;margin:8px 0 12px}.note button{font-size:13px;width:100%}.export{border-top:1px solid #dde3df;padding-top:22px}.export h3{font-size:16px;font-weight:500}.export p{font-size:13px}.export>button:last-child{width:100%;font-size:13px;margin-top:9px;border:none}details{margin-top:25px;font-size:13px;color:#718077}summary{cursor:pointer}details p{margin:12px 0;font-size:13px!important}details a{color:#2b6546}#canvasFallback{position:absolute;top:40%;padding:40px;line-height:1.6}@media(min-width:1450px){main{grid-template-columns:300px minmax(350px,1fr) 310px}#viewport{min-height:540px}}@media(max-width:1100px){main{grid-template-columns:250px minmax(330px,1fr)}.right{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:16px 30px;border-top:1px solid #d9dfe1}.right>.eyebrow,.right>h2,.right>p{grid-column:1}.right .note{grid-column:2;grid-row:1/5;margin:0}.right .export{grid-column:2;grid-row:5/8}.right details{grid-column:1/-1}}@media(max-width:650px){header{padding:0 16px;height:68px;gap:10px}.brand{font-size:23px}.subtitle{display:none}.tag{font-size:10px}main{display:flex;flex-direction:column}.workspace{order:0}aside:first-child{order:1}.right{order:2;display:block}#viewport{min-height:380px}.canvas-heading{padding:20px 18px 0}.canvas-heading h2{font-size:22px}.badge{font-size:10px}.stats{padding:20px 18px;gap:10px}.stats strong{font-size:13px}.movement{padding:12px 18px}.movement span{width:100%;margin:0}.scale{display:none}aside{padding:23px}.view-tools{left:18px}.right .note{margin:20px 0}.field input{width:90px}}

.import-status{font-size:14px;line-height:1.5;color:#315942;margin:12px 0}.auto{display:flex;gap:9px;align-items:center;font-size:14px;line-height:1.4;margin-top:18px}.auto input{width:17px;height:17px;accent-color:#2a6745}.stage-tabs{display:flex;gap:6px;margin:22px 28px 0;padding:5px;border:1px solid #cbd6cf;border-radius:9px;align-self:flex-start;background:#f4f7f5}.stage-tabs button{border:0;background:transparent;font-size:14px;padding:10px 18px}.stage-tabs button[aria-pressed=true]{background:#193f2d;color:white}.stage-tabs button:disabled{cursor:default}#cancel{margin-top:10px;width:100%;font-size:14px}#cancel[hidden]{display:none}.examples button,.view-tools button{font-size:14px}.scale,.stats small{font-size:12px}.movement label,.movement button,.field,.range-label{font-size:14px}@media(max-width:650px){.stage-tabs{margin:18px 18px 0}.stage-tabs button{padding:10px 14px}}

html{scroll-behavior:smooth}.header-actions{margin-left:auto;display:flex;align-items:center;gap:18px}.unit-toggle{display:flex;border:1px solid #bdcfc3;border-radius:8px;padding:3px;background:#f3f7f4}.unit-toggle button{font-size:14px;border:0;background:transparent;padding:7px 10px}.unit-toggle button[aria-pressed=true]{background:#193f2d;color:white}.how-link{font-size:14px;color:#23593c;text-decoration:none;white-space:nowrap}.how-link:hover{text-decoration:underline}.field input{width:92px}.field>div{flex-shrink:0}.size-label{position:absolute;z-index:3;transform:translate(-50%,-50%);background:#f8fcffeb;border:1px solid #95b0c5;border-radius:5px;padding:4px 7px;color:#214f70;font-size:13px;font-weight:600;pointer-events:none;white-space:nowrap}.size-label[hidden]{display:none}.footprint-readout{margin:0;padding:10px 28px;font-size:14px;color:#315f83;background:#edf3f6;border-top:1px solid #cddce6}.view-tools{flex-wrap:wrap;right:20px}.view-tools button[aria-pressed=true]{background:#e2edf5;border-color:#8caec5}.scale{font-size:12px;bottom:14px}.view-caption{bottom:34px}.how-section{scroll-margin-top:20px;padding:65px max(28px,calc((100vw - 1080px)/2));background:#fff;border-top:1px solid #d0ddd4}.how-heading{display:flex;align-items:flex-start;gap:40px;margin-bottom:35px}.how-heading>div{flex:1}.how-heading h2{font-size:36px;font-weight:500;letter-spacing:-1px;line-height:1.15}.how-heading p:not(.eyebrow){font-size:17px;line-height:1.65;color:#53685b;max-width:700px}.how-heading>a{color:#285e40;white-space:nowrap;font-size:14px}.code-steps{list-style:none;padding:0;margin:0}.code-steps>li{display:flex;gap:24px;padding:25px 0;border-top:1px solid #dbe5de}.step-number{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;background:#e6f0e8;border-radius:10px;color:#315b3f;font-size:14px}.code-steps h3{font-size:22px;font-weight:500;margin:4px 0 12px}.code-steps p{font-size:16px;line-height:1.7;color:#435c4d;max-width:850px}.code-steps code{background:#edf2ee;border-radius:4px;padding:2px 5px;font-size:14px;color:#25452f}.code-steps .step-result{font-size:14px;border-left:3px solid #84a893;padding-left:14px;color:#315941;margin-bottom:0}.how-notes{display:grid;grid-template-columns:1fr 1fr;gap:25px;background:#eef4ef;border-radius:12px;padding:25px;margin-top:25px}.how-notes p{font-size:15px;line-height:1.7;margin:0}.how-notes strong{display:block;color:#284c36;margin-bottom:7px}@media(max-width:850px){header .subtitle{display:none}.how-heading{display:block}.how-heading>a{display:inline-block;margin:8px 0}.how-heading h2{font-size:30px}.how-notes{grid-template-columns:1fr}}@media(max-width:650px){header{height:auto;min-height:75px;flex-wrap:wrap;padding:12px 16px;gap:12px}.header-actions{gap:12px}.brand{font-size:21px}.how-link{font-size:13px}.unit-toggle button{padding:7px;font-size:13px}.how-section{padding:38px 20px}.code-steps>li{gap:14px}.step-number{width:32px;height:32px}.code-steps h3{font-size:20px}.footprint-readout{padding:10px 18px;font-size:13px}.field input{width:110px}.view-tools button{padding:7px 8px;font-size:12px}.scale{display:block;right:18px}.how-notes{padding:18px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.worked-example{border:1px solid #bdcfc2;border-radius:16px;overflow:hidden;margin:35px 0 55px;background:#f8fbf9}.worked-heading{padding:28px;display:flex;gap:25px;align-items:flex-start}.worked-heading>div{flex:1}.worked-heading h3{font-size:26px;line-height:1.2;margin-bottom:12px;font-weight:500;letter-spacing:-.6px}.worked-heading p:not(.eyebrow){font-size:16px;line-height:1.6;color:#526d5a;max-width:650px;margin-bottom:0}.worked-heading button{font-size:14px;max-width:180px;line-height:1.4}.demo-settings{display:flex;gap:20px;flex-wrap:wrap;align-items:center;padding:0 28px 25px}.demo-settings label{font-size:14px;font-weight:500}.demo-settings select{display:block;padding:9px 12px;margin-top:7px;font:inherit;border:1px solid #b9cbbf;border-radius:6px;background:#fff;color:#25482f}.demo-settings p{font-size:14px;color:#5d7667;margin:16px 0 0;flex:1}.demo-steps{display:flex;gap:6px;flex-wrap:wrap;background:#e2ece5;padding:12px 20px;border-block:1px solid #c8d8ce}.demo-steps button{font-size:14px;border:0;background:transparent;padding:9px 12px}.demo-steps button[aria-pressed=true]{background:#193f2d;color:white}.demo-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.demo-visual{min-width:0;border-right:1px solid #d0ded5}.demo-visual>p{font-size:15px;line-height:1.55;padding:0 24px;margin:18px 0 12px;color:#385b44}.demo-visual .demo-orbit{font-size:12px;color:#708577;margin-top:0}#demoCanvas{position:relative;height:370px;background:#eaf0ed;overflow:hidden}#demoCanvas canvas{position:absolute;inset:0;touch-action:none}#demoWire{position:absolute;z-index:2;top:15px;left:18px;font-size:13px}#demoWire[aria-pressed=true]{background:#204c37;color:white}#demoVisualFallback{position:relative;padding:70px 24px;font-size:15px;line-height:1.6}.demo-data{min-width:0;padding:25px}.demo-data h4{font-size:22px;font-weight:500;line-height:1.25;margin:0 0 12px;letter-spacing:-.4px}.demo-route{color:#416551;font:13px/1.6 ui-monospace,monospace;overflow-wrap:anywhere}.data-box{border:1px solid #d2ddd5;background:white;border-radius:8px;margin:15px 0 0;overflow:hidden}.data-box h5{margin:0;padding:9px 13px;font-size:12px;letter-spacing:.5px;background:#edf2ee;color:#5e7465;font-weight:500}.data-box pre{font:13px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;padding:12px;margin:0;white-space:pre-wrap;overflow-wrap:anywhere;max-height:230px;overflow:auto;tab-size:2;color:#1b4730}.data-box.result{border-color:#a4c6b0}.data-box.result h5{background:#dfede2;color:#305c3e}.demo-explain{margin:0;padding:22px 28px;font-size:16px;line-height:1.7;background:#edf4ef;border-top:1px solid #cfdfd3;color:#355a41}.demo-footer{display:flex;gap:20px;justify-content:space-between;align-items:center;padding:18px 25px}.demo-footer>p{font-size:13px;color:#637f6c;margin:0;flex:1}.demo-footer>div{display:flex;gap:8px}.demo-footer button{font-size:14px}.guide-subtitle{font-size:25px;font-weight:500;margin:0 0 20px}.demo-settings select:focus-visible{outline:3px solid #20885d;outline-offset:3px}@media(max-width:850px){.demo-main{grid-template-columns:1fr}.demo-visual{border-right:0;border-bottom:1px solid #d0ded5}#demoCanvas{height:330px}.worked-heading{display:block}.worked-heading button{margin-top:18px;max-width:none}.demo-data{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.demo-data>.eyebrow,.demo-data>h4,.demo-route{grid-column:1/-1}.data-box{align-self:start}}@media(max-width:550px){.worked-heading,.demo-data{padding:20px}.worked-heading h3{font-size:24px}.demo-data{display:block}.demo-settings{padding:0 20px 20px;gap:14px}.demo-settings p{flex-basis:100%;margin:0}.demo-steps{padding:10px}.demo-steps button{font-size:13px;padding:8px}.demo-footer{flex-direction:column;align-items:stretch}.demo-footer>div{justify-content:space-between}.demo-explain{padding:20px}.how-section{padding-inline:14px}}

.bend-mode{align-items:flex-start;flex-direction:column;margin-top:20px}.bend-mode select{font:inherit;width:100%;border:1px solid #afc4b6;border-radius:7px;background:#fff;padding:10px;color:#244831}.bend-mode select:focus-visible{outline:3px solid #20885d;outline-offset:3px}

/* Learning guidance is separate from the geometry controls. */
[hidden]{display:none!important}#studentMode{font-size:14px;white-space:nowrap}#studentMode[aria-checked=true]{background:#193f2d;color:#fff}#studentMode span{font-weight:700;margin-left:5px}.student-hint{border-left:3px solid #367eaa;padding:8px 10px;background:#edf5fa;color:#214d69;font-size:14px;line-height:1.5;margin:12px 0}.learning-intro,.design-notes,.flow-check{padding:24px;border:1px solid #b8cfdc;background:#f1f7fb;border-radius:12px;margin:24px 0}.learning-intro h3,.design-notes h3,.flow-check h3{font-size:24px;font-weight:500}.learning-intro p,.design-notes p,.flow-check p{line-height:1.65;font-size:16px}.learning-intro p:last-child,.flow-check p:last-child{margin-bottom:0}.student-step{padding:24px 28px;background:#e4f0f8;border-top:1px solid #b8cfdc;display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px}.student-step h4{font-size:17px;margin:0 0 10px;color:#204a65}.student-step p{font-size:16px;line-height:1.65;margin:0}.student-step>p{grid-column:1/-1}.design-notes label{display:block;font-size:16px;font-weight:600;margin:20px 0}.design-notes textarea{display:block;resize:vertical;width:100%;font:400 16px/1.6 Arial,sans-serif;padding:12px;border:1px solid #9db9cb;border-radius:7px;margin-top:8px;color:#243b49;background:#fff}.design-notes textarea:focus-visible{outline:3px solid #20885d;outline-offset:3px}.student-mode .demo-main{grid-template-columns:1.3fr 1fr}.header-actions{flex-wrap:wrap}header{height:auto;min-height:78px;padding-block:12px}@media(max-width:850px){.student-step{grid-template-columns:1fr}.student-mode .demo-main{grid-template-columns:1fr}.header-actions{gap:8px}}@media(max-width:550px){.student-step,.learning-intro,.design-notes,.flow-check{padding:20px}.header-actions{margin-left:0;width:100%;justify-content:space-between}.student-mode .demo-data{display:block}}

.guide-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-width:190px}.guide-actions p{font-size:14px!important;line-height:1.5!important;margin:0}.guide-actions a{font-size:14px;color:#285e40}#studentModeGuide{font-size:14px}#studentModeGuide[aria-checked=true]{background:#193f2d;color:white}#studentModeGuide span{font-weight:700}.guide-section{margin:16px 0;border:1px solid #bbcdc2;border-radius:12px;color:#203c2b;background:#fff;overflow:hidden}.guide-section>summary{display:flex;align-items:center;gap:16px;padding:22px;list-style:none;background:#f0f5f1}.guide-section>summary::-webkit-details-marker{display:none}.guide-section>summary:after{content:'+';font-size:25px;margin-left:auto;flex-shrink:0}.guide-section[open]>summary:after{content:'−'}.guide-section>summary strong{display:block;font-size:21px;font-weight:500;line-height:1.35}.guide-section>summary small{display:block;font-size:14px;line-height:1.5;color:#536b5d;margin-top:5px}.guide-number{font-size:14px;color:#396749;font-weight:600}.guide-content{padding:8px 24px 24px}.guide-section p{font-size:16px!important}.guide-section .worked-example{margin:0;border:0;border-radius:0}.guide-section .design-notes{margin:0;border:0;border-radius:0}.segment-code{margin:0;border-block:1px solid #bad0dc;color:#254759;background:#f2f8fc;border-radius:0}.segment-code>summary{font-size:17px;font-weight:600;padding:20px 28px}.segment-code-body{padding:0 28px 24px}.segment-code-body p,.segment-code-body li{font-size:16px;line-height:1.65}.segment-code-body li{margin:12px 0}.segment-code pre{background:#142d23;color:#e4f4e9;padding:20px;border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.7 ui-monospace,monospace}.slice-table-wrap{overflow-x:auto}.slice-table-wrap table{width:100%;border-collapse:collapse;font-size:14px;margin:16px 0}.slice-table-wrap caption{text-align:left;font-size:14px;padding-bottom:10px;color:#466377}.slice-table-wrap th,.slice-table-wrap td{text-align:left;padding:10px;border-bottom:1px solid #c1d4df}@media(max-width:650px){.guide-section>summary{padding:18px;gap:12px}.guide-section>summary strong{font-size:19px}.guide-content{padding:8px 16px 16px}.segment-code-body{padding:0 18px 20px}.guide-actions{margin-top:20px}.how-heading{gap:20px}}
.segment-play{background:#fff;border:1px solid #b6ccd8;border-radius:12px;margin:22px 0;overflow:hidden}.play-heading{padding:24px;display:flex;gap:24px;align-items:flex-start}.play-heading>div{flex:1}.play-heading h3{font-size:26px;margin:0 0 12px;font-weight:500}.play-heading label{font-size:14px;min-width:120px}.play-heading select{display:block;width:100%;font:inherit;margin-top:8px;padding:9px;border:1px solid #9db8c9;border-radius:6px;background:#fff}.play-steps{display:flex;flex-wrap:wrap;gap:6px;background:#e5eff5;padding:12px}.play-steps button{font-size:14px;background:transparent;border:0}.play-steps button[aria-pressed=true]{background:#254f6b;color:#fff}.play-grid{display:grid;grid-template-columns:1fr 1fr;align-items:start}.play-reading{padding:24px;min-width:0}.play-reading h4{font-size:23px;margin:0 0 20px;font-weight:500}.play-reading h5{font-size:16px;margin:20px 0 8px}.play-reading .play-meta{font-size:14px!important;color:#597080}.play-reading pre{margin:12px 0;font-size:14px}.play-reading .play-math{color:#224b67;background:#eaf4fb;border-left:3px solid #4285ae;line-height:1.85}.play-figure{margin:0;padding:24px 20px;min-width:0;position:sticky;top:20px}.play-figure svg{width:100%;display:block;border:1px solid #d0dfd6;border-radius:8px}.play-figure figcaption{font-size:15px;line-height:1.65;margin:16px 0;color:#36576a}.play-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:14px;color:#426175}.play-legend span{border-bottom:3px solid #96c9e7;padding-bottom:5px}.play-legend span:nth-child(2){border-color:#78ab62}.play-legend span:nth-child(3){border-bottom:2px dashed #71867a}.play-footer{display:flex;justify-content:space-between;gap:12px;padding:20px;border-top:1px solid #c4d9e5}.play-footer button{font-size:14px}.segment-play>.student-hint{margin:0 24px 20px}.raw-segment{margin-top:20px}.raw-segment>summary{font-size:16px;padding:16px 0;font-weight:600}.play-heading select:focus-visible{outline:3px solid #20885d;outline-offset:3px}@media(max-width:1000px){.play-grid{grid-template-columns:1fr}.play-figure{position:static;padding-top:0}.play-heading{flex-wrap:wrap}}@media(max-width:550px){.play-heading,.play-reading{padding:18px}.play-heading>div{flex-basis:100%}.play-footer{flex-wrap:wrap}.play-footer button{flex:1}.play-steps button{font-size:14px}.play-figure{padding:0 12px 18px}}
.detail-bonus{margin-top:22px;border:1px solid #d9c7c1;border-radius:9px;background:#fffaf8;padding:14px;color:#3f3935}.detail-bonus>summary{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;line-height:1.5}.detail-bonus>summary:after{content:'+';margin-left:auto}.detail-bonus[open]>summary:after{content:'−'}.red-swatch{width:12px;height:12px;flex-shrink:0;background:#d94b40;border-radius:3px}.detail-bonus p{font-size:14px!important;line-height:1.6}.detail-status{color:#824137;margin:14px 0 8px}.detail-bonus .auto{align-items:flex-start}.detail-bonus input{flex-shrink:0}.detail-bonus strong{color:#6b3e32}
.detail-height{border:0;padding:0;margin:16px 0;color:#513e35}.detail-height legend{font-size:14px;margin-bottom:8px}.detail-height label{display:flex;align-items:center;gap:8px;font-size:14px;padding:9px 0;cursor:pointer}.detail-height input{accent-color:#963f35;margin:0}.detail-height small{font-size:13px;color:#73665f;margin-left:auto}.detail-height:disabled{opacity:.5}
.pocket-bonus{background:#f5fbf8;border-color:#bdd5c8}.green-swatch{width:12px;height:12px;flex-shrink:0;background:#178647;border-radius:3px}.pocket-bonus .detail-status,.pocket-bonus strong{color:#276342}.pocket-bonus .detail-height{color:#275c43}.pocket-bonus input{accent-color:#28734b}

/* The model viewport has its own height, independent of the settings panel. */
.workspace{align-self:start;width:100%}
#viewport{height:clamp(320px,48vh,540px);min-height:0;flex:none}
@media(max-width:650px){#viewport{height:360px}.workspace{align-self:stretch}}

/* Compact studio and foldable settings. */
.studio-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 24px 0;flex-wrap:wrap}
.studio-toolbar .stage-tabs{margin:0}.studio-toolbar .badge{margin:0}
.control-section{margin:0 0 18px;color:inherit;border-bottom:1px solid #dbe2df;padding-bottom:16px}
.control-section>summary.section-title{margin:0;display:flex;align-items:center;list-style:none;gap:10px}
.control-section>summary::-webkit-details-marker{display:none}
.control-section>summary:after{content:'+';margin-left:auto;font-size:22px;font-weight:400}
.control-section[open]>summary:after{content:'−'}
.control-content{padding-top:18px}.control-section p.hint{font-size:14px!important}
.control-section>summary:focus-visible{outline:3px solid #20885d;outline-offset:5px}
.joint-key>span{background:#dedfe1;border:1px solid #aab0b4}.joint-key.alt>span{background:#f4f4f2}
.code-steps>li>div{min-width:0;flex:1}
.flow-film{border:1px solid #bdccd7;border-radius:12px;overflow:hidden;margin:20px 0;background:#f6f9fc}
.flow-film svg{display:block;width:100%;height:auto;max-height:310px;background:#fff}
.flow-film figcaption{padding:16px 20px;font-size:16px;line-height:1.6;color:#294658}
.flow-controls{display:flex;align-items:center;gap:14px;padding:14px 20px;border-top:1px solid #d7e1e9;flex-wrap:wrap}
.flow-controls label{flex:1;min-width:140px;font-size:14px}.flow-controls input{display:block;width:100%;margin-top:10px}
.flow-controls button{font-size:14px}.flow-film pre{margin:0;padding:16px 20px;background:#193447;color:#eaf4ff;font:14px/1.6 ui-monospace,monospace;white-space:pre-wrap}
@media(max-width:650px){.studio-toolbar{padding:16px 18px 0}.studio-toolbar .stage-tabs button{padding:9px 11px}.flow-controls{padding:12px}.flow-film figcaption{padding:14px}.code-steps>li{gap:10px}}

/* Green contrast behind white printed material. */
#viewport{background:radial-gradient(ellipse at center,#d6e5d9 0%,#b8cebf 100%)}
#applyBar{margin:12px 24px 0;padding:10px 14px;border:1px solid #b7c9bf;border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;background:#edf5ef}#applyBar[data-state=dirty]{background:#fff2d9;border-color:#cfac65}#applyBar .primary{width:auto;margin:0;padding:9px 14px;font-size:14px}
#importSummary svg,#seamMap svg,#ownDrawing svg{display:block;width:100%;max-height:230px;background:#f1f6f3;border-radius:8px}#seamMap{touch-action:none}#seamMap [data-seam]{cursor:ew-resize}#seamPosition{width:100%}#seamSelect{font:inherit;padding:7px;max-width:130px}#seamPercent{display:block;font-size:14px;margin:7px 0}
.project-tools{display:grid;gap:9px;margin:18px 0}.project-tools button,.project-open{font:14px Arial,sans-serif;text-align:center;border:1px solid #b7c9bf;border-radius:7px;background:#fff;padding:11px;cursor:pointer}.project-open input{display:block;width:100%;margin-top:10px;font-size:12px}.project-tools p{margin:0}
#diagnostic{padding:20px 24px;background:#fff0e9;border-top:1px solid #d99579}#diagnostic p{font-size:15px;line-height:1.6}#diagnostic>div{display:flex;gap:8px;flex-wrap:wrap}#diagnostic button{font-size:14px}#exportCheck{font-size:14px;color:#244b3a;line-height:1.6;background:#edf5ef;border-radius:8px;padding:12px}
#ownSteps{margin:18px 0;flex-wrap:wrap}#ownText{min-height:50px;line-height:1.6}#ownCanvas{height:380px;position:relative;overflow:hidden;border-radius:10px;background:#c6dbcb}#ownCanvas canvas{display:block;width:100%;height:100%;touch-action:none}#ownDrawing svg{max-height:350px}#ownCode{white-space:pre-wrap;overflow-wrap:anywhere;background:#193447;color:#edf5ff;padding:20px;border-radius:8px;font:14px/1.65 ui-monospace,monospace}#ownPiece{font:inherit;margin:16px 10px;padding:8px}#ownRefresh{font-size:14px}
@media(max-width:650px){#applyBar{margin-inline:18px;flex-wrap:wrap}#ownCanvas{height:300px}#ownSteps button{padding:8px}}

/* Keep the desktop canvas steady while either tools panel scrolls. */
@media (min-width:1201px) and (min-height:700px){
  body>main{height:calc(100dvh - var(--site-header-height,78px));min-height:0;align-items:stretch}
  body>main>aside{min-height:0;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable}
  body>main>.workspace{height:100%;min-height:0;overflow-y:auto;overscroll-behavior-y:contain}
  .workspace>*{flex-shrink:0}
  .workspace>#viewport{flex:1 0 220px;height:auto;min-height:220px}
  .workspace .stats{padding-block:16px}
}
main>aside:focus-visible{outline:3px solid #20885d;outline-offset:-3px}

.print-mode{padding-bottom:18px;border-bottom:1px solid #cddbd1;margin-bottom:18px}.solid-print #movementSettings,.solid-print #seamSection,.solid-print .stage-tabs[aria-label="Model stage"],.solid-print .movement{display:none!important}



.artwork-toggle{display:flex;gap:4px;padding:10px 18px;background:#f3f7f3;border-bottom:1px solid #cddbd1;flex-shrink:0}.artwork-toggle button{font:inherit;padding:8px 16px;border:1px solid #b8cbbd;border-radius:6px;background:#fff;color:#193f2d;cursor:pointer}.artwork-toggle button[aria-pressed=true]{background:#193f2d;color:#fff}.artwork-toggle button:focus-visible{outline:3px solid #799f6d;outline-offset:2px}
#artworkPreview{position:absolute;inset:0;margin:0;padding:24px;display:flex;flex-direction:column;gap:16px;background:#fff;z-index:3}
#artworkPreview[hidden]{display:none}#artworkImage{display:block;width:100%;height:0;min-height:0;flex:1;object-fit:contain}#artworkPreview figcaption{font-size:14px;line-height:1.5;color:#435b4c;text-align:center;flex:none}
.artwork-view #viewport>canvas,.artwork-view #canvasFallback,.artwork-view .view-tools,.artwork-view .view-caption,.artwork-view .scale,.artwork-view .size-label,.artwork-view .movement{visibility:hidden!important}.artwork-view .footprint-readout:before{content:'Print size: ';font-weight:bold}

/* Studio clarity pass: visible modes, export first, explicit preview status. */
.mode-options{border:0;margin:0;padding:0;min-width:0}.mode-options legend{font-size:16px;font-weight:700;margin-bottom:10px}.mode-options label{display:flex;gap:9px;align-items:flex-start;border:1px solid #bdcec2;border-radius:8px;padding:11px 10px;margin:8px 0;cursor:pointer}.mode-options label:has(:checked){background:#e8f2e9;border-color:#356b4d;box-shadow:inset 0 0 0 1px #356b4d}.mode-options input{margin:4px 0 0;accent-color:#193f2d}.mode-options strong,.mode-options small{display:block}.mode-options strong{font-size:15px}.mode-options small{font-size:14px;line-height:1.4;margin-top:4px;color:#52695a}.mode-options:disabled{opacity:.6}
.right>.export{border-top:0;padding-top:0}.right>.export h3{font-size:20px;font-weight:600}.print-guide{border-top:1px solid #d5dfd8;padding-top:18px}.print-guide>summary{font-size:15px;font-weight:600;color:#294d36}.print-guide .eyebrow{margin-top:20px}.print-guide h2{margin:16px 0;font-size:24px}.solid-print .print-guide .note,.solid-print .print-guide .joint-key.alt,.solid-print .print-guide .eyebrow{display:none}.project-disclosure{border-top:1px solid #d5dfd8;padding-top:16px}.project-disclosure>summary{font-size:14px;font-weight:600;color:#294d36}
#previewNotice{position:absolute;z-index:4;top:70px;left:20px;right:20px;padding:10px 14px;background:#fff3ddeb;border:1px solid #bf984f;border-radius:7px;color:#634515;font-size:14px;text-align:center}.artwork-view #previewNotice{display:none}#applyBar[data-state=error]{background:#fff0e9;border-color:#d99579}
#canvasFallback{inset:64px 20px 48px;top:64px;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}#modelStill{width:100%;min-height:0;height:0;flex:1;object-fit:contain}#modelStill:not([src]){visibility:hidden}#canvasFallback p{font-size:14px;line-height:1.4;margin:0;text-align:center}
.hint,.upload small,details p,#message,.export p{font-size:14px}.view-caption{font-size:13px}.how-section .stage-tabs{flex-wrap:wrap}
@media(max-width:1100px){.right{display:block}.right .note{margin:18px 0}.right>.export{margin-bottom:24px}}
@media(max-width:650px){main>aside:first-child{order:0}.workspace{order:1}.right{order:2}.mode-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mode-options label{margin:0}.mode-options strong{font-size:14px}.mode-options small{font-size:13px}.mode-options legend{margin-bottom:12px}#movementSettings,#surfaceDetails,#seamSection{margin-top:14px}}

.no-webgl .workspace .view-tools,.no-webgl .workspace .view-caption{display:none}.no-webgl #canvasFallback{inset:24px 20px 40px}

/* Learning: meaning beside the visual; deeper code remains optional. */
.lesson-route{padding:18px 22px;border-left:4px solid #447959;background:#f0f6f1;margin-bottom:24px}.lesson-route p{font-size:16px;line-height:1.65;margin:8px 0}
.demo-data .demo-explain{background:none;border:0;padding:0;margin:12px 0 20px;color:#304f3e}.change-summary{margin:0;display:grid;gap:6px}.change-summary dt{font-size:14px;font-weight:700;color:#356a4b}.change-summary dd{margin:0 0 12px;font-size:16px;line-height:1.55}.word-note{padding:12px 14px;border-left:3px solid #5f91ab;background:#edf5f9;line-height:1.6;color:#2b536a}.data-disclosure{margin:20px 0;border-top:1px solid #cbdcd1;padding-top:15px}.data-disclosure summary{font-size:16px;font-weight:600;cursor:pointer}.data-disclosure>p{line-height:1.6}.data-disclosure .demo-route{font-size:14px!important}.data-box h5{font-size:14px}.data-box pre{font-size:14px}.demo-data .data-disclosure{grid-column:1/-1}
#demoDiagram{position:absolute;inset:20px 8px;display:grid;place-items:center}#demoDiagram svg{width:100%;height:auto;max-height:100%}#demoStill{width:100%;height:100%;object-fit:contain;padding:16px}#demoVisualFallback{padding:100px 24px 24px}#demoCanvas:has(#demoDiagram:not([hidden])){background:#f0f6f1}#demoWire{top:auto;bottom:10px}.demo-orbit{font-size:14px!important}.demo-data>.change-summary,.demo-data>.word-note,.demo-data>.demo-explain{grid-column:1/-1}.student-mode .demo-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
#ownStillFigure{margin:0}#ownStill{width:100%;max-height:380px;object-fit:contain;background:#c6dbcb}#ownStillFigure figcaption{font-size:14px;line-height:1.5;margin-top:8px}
.height-lab-controls{display:flex;flex-wrap:wrap;gap:20px}.height-lab-controls label{font-size:16px;font-weight:600;flex:1;min-width:220px}.height-lab-controls select{display:block;font:inherit;padding:10px;width:100%;border:1px solid #adc4b7;border-radius:7px;background:white;margin-top:8px}.height-figure{margin:20px 0;padding:18px;background:#f4f8f5;border:1px solid #bdd2c5;border-radius:10px}.height-figure svg{display:block;width:100%;max-height:310px}.height-figure figcaption{font-size:17px;font-weight:600;line-height:1.6;margin-top:12px}.cutter-frames{padding:14px;background:#ecf4fa;border:1px solid #bfd3e0;border-radius:8px;margin:16px 0}.cutter-frames label{display:flex;justify-content:space-between;gap:12px;font-size:14px}.cutter-frames output{font-weight:700}.cutter-frames input{width:100%;margin:12px 0}.cutter-frames p{font-size:14px!important;margin:0;line-height:1.4}.code-active{display:block;background:#2c5142;border-left:3px solid #d5e784;padding-left:8px}.code-muted{display:block;opacity:.55;padding-left:11px}.play-reading pre{overflow-x:auto}.segment-code>summary{line-height:1.5}
@media(max-width:850px){.student-mode .demo-main{grid-template-columns:1fr}.demo-data{display:block}#demoCanvas{height:340px}.demo-visual .demo-orbit{margin-bottom:18px}}
@media(max-width:550px){.height-figure{padding:8px}.height-lab-controls label{min-width:100%}.play-grid{display:flex;flex-direction:column}.play-figure{order:-1;padding-top:16px;width:100%}.cutter-frames label{flex-direction:column;gap:6px}.demo-footer>div{flex-wrap:wrap}}

/* Optional Solid-mode finishes reuse the existing collapsible settings. */
.edge-controls{border:0;padding:0;margin:0;min-width:0;display:grid;gap:9px}.edge-controls label{font-size:14px;font-weight:600;margin-top:7px}.edge-controls select{width:100%;min-width:0;font:inherit;font-size:14px;padding:10px;border:1px solid #b7cbbd;border-radius:6px;background:#fff;color:#193f2d}.edge-controls .hint{margin:0}.edge-profiles{margin:17px 0 12px}.edge-profiles svg{display:block;width:100%;height:auto}.edge-profiles figcaption{font-size:13px;line-height:1.5;color:#536a5d;margin-top:5px}#edgeFinishSection[hidden]{display:none}

.stage-help{padding:10px 24px;margin:0;font-size:14px;line-height:1.6;color:#365540}.stage-help[hidden]{display:none}.stage-help button{font-size:13px;margin:0 4px;padding:6px 9px}
