@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(./dm-sans-latin-wght-normal-Xz1IZZA0.woff2) format("woff2")}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(./manrope-latin-wght-normal-DHIcAJRg.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400 900;font-display:swap;src:url(./playfair-display-latin-wght-normal-BOwq7MWX.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:italic;font-weight:400 900;font-display:swap;src:url(./playfair-display-latin-wght-italic-DmbndNpe.woff2) format("woff2")}:root{font-family:DM Sans,sans-serif;color:#302f2b;background:#f5f1e9;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #9c7949;outline-offset:2px}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{height:78px;display:flex;justify-content:space-between;align-items:center;padding:0 3.3vw;background:#faf8f3;border-bottom:1px solid #dfd9cd}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:37px;height:37px;border:1px solid #916f44;display:flex;align-items:center;justify-content:center;color:#7e5831;font-family:Playfair Display,serif;font-size:18px;letter-spacing:-.09em}.brand>div{display:flex;flex-direction:column;gap:3px}.brand strong{font-family:Manrope,sans-serif;font-size:13px;letter-spacing:.17em;font-weight:800}.brand span:not(.brand-mark){font-size:9px;letter-spacing:.14em;color:#918779;font-weight:700}.topbar-right{display:flex;align-items:center;gap:23px}.badge{font-family:Manrope,sans-serif;font-size:10px;font-weight:800;letter-spacing:.13em;border:1px solid #d9d0c2;border-radius:30px;padding:9px 13px;color:#584b3c}.live-dot{display:inline-block;width:6px;height:6px;background:#71835f;border-radius:50%;margin-right:6px}.saving{font-size:9px;letter-spacing:.14em;color:#a09481;font-weight:700}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 383px;flex:1;min-height:0}.stage{display:flex;flex-direction:column;min-width:0;position:relative;background:#eee7da}.stage-head{position:absolute;left:3.5vw;top:38px;z-index:2;pointer-events:none}.eyebrow{font-family:Manrope,sans-serif;color:#9f7548;font-size:10px;font-weight:800;letter-spacing:.2em}.stage h1{font-family:Playfair Display,serif;font-weight:500;font-size:clamp(34px,3.1vw,55px);letter-spacing:-.04em;margin:7px 0 5px;line-height:1.1}.stage h1 em{color:#8d6944;font-weight:500}.stage-head p{margin:0;font-size:13px;color:#756e64;max-width:440px;line-height:1.5}.canvas-wrap{height:min(80vh,900px);min-height:560px;position:relative;overflow:hidden}.canvas-wrap canvas{display:block;width:100%;height:100%;outline:none}.canvas-label{position:absolute;right:26px;top:29px;z-index:1;font-family:Manrope,sans-serif;font-size:9px;font-weight:800;letter-spacing:.18em;color:#8c806d;background:#faf7eea8;border:1px solid #e7dccb;padding:10px 12px;border-radius:3px}.view-controls{position:absolute;right:24px;bottom:50px;z-index:1;display:flex;align-items:center;background:#faf8f1e8;border:1px solid #ddd4c8;box-shadow:0 7px 20px #5b46301c;border-radius:5px;padding:4px}.view-controls button{border:0;background:transparent;padding:9px 10px;color:#635847;font-family:Manrope,sans-serif;font-size:9px;letter-spacing:.09em;font-weight:800}.view-controls button:first-child{font-size:17px;line-height:9px}.view-controls button:hover{background:#e9ddca}.orbit-tip{position:absolute;bottom:24px;left:3.5vw;font-family:Manrope,sans-serif;font-size:9px;letter-spacing:.11em;font-weight:800;color:#887b68}.orbit-tip span{margin:0 4px}.stage-footer{display:flex;align-items:center;gap:25px;min-height:76px;padding:12px 3.5vw;background:#ece4d7;border-top:1px solid #d8cbb8}.step-indicator{display:flex;flex-direction:column;gap:5px;min-width:180px}.indicator-label{font-family:Manrope,sans-serif;font-size:9px;color:#99866e;letter-spacing:.15em;font-weight:800}.step-indicator strong{font-family:Manrope,sans-serif;font-size:13px;letter-spacing:.04em}.status-copy{font-size:12px;color:#685c4d;line-height:1.5;padding-left:23px;border-left:1px solid #cfc0aa}.status-copy.error{color:#9e493f}.control-panel{background:#fbfaf7;border-left:1px solid #ded8ce;display:flex;flex-direction:column;min-height:0}.panel-tabs{display:flex;border-bottom:1px solid #e4dfd7;padding:0 19px;flex:0 0 57px}.panel-tabs button{background:none;border:0;border-bottom:2px solid transparent;color:#9b9183;font-family:Manrope,sans-serif;font-weight:800;font-size:10px;letter-spacing:.09em;padding:0 14px;white-space:nowrap}.panel-tabs button.active{color:#765332;border-color:#9a7142}.panel-body{padding:26px 24px 30px;overflow-y:auto;max-height:calc(100vh - 136px)}.panel-intro h2{font-family:Playfair Display,serif;font-size:30px;letter-spacing:-.02em;font-weight:500;margin:5px 0}.panel-intro p{color:#8d8274;font-size:12px;line-height:1.55;margin:0 0 23px}.stat-strip{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #e5ddd1;background:#f7f4ee;margin-bottom:22px}.stat-strip div{padding:12px 7px 11px;display:flex;flex-direction:column;align-items:center;gap:2px}.stat-strip div+div{border-left:1px solid #e4dbd0}.stat-strip strong{font-family:Playfair Display,serif;font-weight:500;font-size:22px}.stat-strip span{font-size:8px;letter-spacing:.1em;color:#a29483;font-family:Manrope,sans-serif;font-weight:800}.control-section{border-top:1px solid #e7e0d6;padding:19px 0}.control-section.compact{padding-bottom:15px}.section-title{display:flex;gap:10px;align-items:center;margin-bottom:13px}.number-dot{width:22px;height:22px;border-radius:50%;background:#9c784d;color:#fff;font-family:Manrope,sans-serif;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}.number-dot.soft{background:#e9dfd0;color:#90714e}.section-title>div{display:flex;flex-direction:column;gap:2px}.section-title strong{font-family:Manrope,sans-serif;font-size:12px}.section-title small{color:#9d9284;font-size:10px}.treadle-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.treadle{height:56px;border:1px solid #dfd4c5;background:#f4eee5;color:#5d4a35;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;border-radius:3px}.treadle span{font-family:Manrope,sans-serif;font-size:13px;font-weight:800}.treadle small{font-size:9px;color:#947b60}.treadle:hover:not(:disabled),.treadle.active{background:#a67e4c;color:#fff;border-color:#a67e4c}.treadle.active small,.treadle:hover:not(:disabled) small{color:#f8ead7}.treadle:disabled:not(.active){opacity:.55}.hint{color:#a19586;font-size:10px;margin-top:9px}.action-row{display:grid;grid-template-columns:1.35fr 1fr;gap:7px}.action{border:1px solid #cbbba5;background:#f6f1e9;color:#6a5136;padding:12px 10px;font-size:10px;font-family:Manrope,sans-serif;font-weight:800;letter-spacing:.09em;text-align:left;display:flex;justify-content:space-between;align-items:center}.action.primary{background:#946c42;border-color:#946c42;color:#fff}.action:disabled{opacity:.42}.action:not(:disabled):hover{filter:brightness(.94)}.action span{font-size:16px;line-height:8px}.action.wide{width:100%;margin-top:8px}.action.quiet{background:#fff;color:#766854}.swatches{display:flex;gap:8px}.swatch{height:31px;border:1px solid #ded4c7;background:#fff;color:#726759;font-size:10px;display:flex;align-items:center;gap:6px;padding:4px 9px}.swatch span{width:12px;height:12px;border-radius:50%;background:#c9b997}.swatch.indigo span{background:#38556a}.swatch.clay span{background:#a76345}.swatch.selected{border-color:#8c663e;box-shadow:0 0 0 1px #8c663e inset}.advance,.finish-setup{width:100%;border:1px solid #9b744b;background:#f7f2e9;color:#785637;min-height:44px;text-align:left;padding:10px 12px;font-family:Manrope,sans-serif;font-size:10px;font-weight:800;letter-spacing:.09em;position:relative;margin-top:5px}.advance span,.finish-setup span{float:right;font-size:18px}.advance small{display:block;font-weight:600;letter-spacing:0;color:#9e8a72;margin-top:4px}.advance:disabled{border-color:#ddd5ca;color:#a9a093}.keyboard{font-size:8.5px;line-height:1.6;color:#ac9f8e;letter-spacing:.05em;margin-top:12px}.keyboard b{color:#7d6b58}.phase-rail{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:20px}.phase-rail span{font-size:7.5px;font-family:Manrope,sans-serif;letter-spacing:.08em;text-align:center;color:#ac9f8e;border-top:3px solid #e6ded3;padding-top:7px}.phase-rail .current{border-color:#a17a4d;color:#7c5b3b}.phase-rail .done{border-color:#90a080;color:#617150}.part-feature{border:1px solid #dcd0c0;padding:20px;background:linear-gradient(135deg,#f4eee3,#faf7f0);position:relative}.part-feature-icon{color:#b89872;font-size:24px;margin-bottom:9px}.part-feature>span,.setup-new>span{font-size:9px;font-family:Manrope,sans-serif;letter-spacing:.15em;color:#9a7d5e;font-weight:800}.part-feature h3{font-family:Playfair Display,serif;font-weight:500;font-size:27px;margin:4px 0}.part-feature p{font-size:12px;line-height:1.65;color:#746859;min-height:76px}.demo-button{border:0;background:#8b6946;color:#fff;font-family:Manrope,sans-serif;font-weight:800;letter-spacing:.09em;font-size:9px;padding:11px 13px}.demo-button span{font-size:13px;margin-left:10px}.part-list{margin-top:15px;border-top:1px solid #e7ded3}.part-item{width:100%;display:flex;align-items:center;gap:13px;background:none;border:0;border-bottom:1px solid #e7ded3;text-align:left;padding:12px 5px;color:#685949;font-size:12px}.part-item.active{color:#8d6039;background:#f6f0e8}.part-index{font-size:9px;color:#aa9781;font-family:Manrope,sans-serif;font-weight:800}.part-arrow{margin-left:auto;color:#b49a79}.source-note{font-size:10px;color:#a3998b;line-height:1.55;margin-top:16px}.setup-progress{padding:13px;background:#ede5d9;margin-bottom:14px;display:grid;grid-template-columns:1fr auto;gap:8px;font:800 9px Manrope,sans-serif;letter-spacing:.1em;color:#8d785e}.setup-progress strong{color:#755235}.progress-track{height:4px;background:#d8c8b4;grid-column:span 2}.progress-track i{height:100%;background:#9c7449;display:block}.setup-new{border:1px solid #e5dcd0;padding:12px;margin-bottom:14px}.setup-new>div{display:flex;gap:6px;margin-top:8px}.setup-new button,.setup-step button{border:1px solid #cdbda8;background:#f8f4ec;color:#74583b;padding:8px 10px;font:800 9px Manrope,sans-serif;letter-spacing:.04em}.setup-new button:hover,.setup-step button:hover:not(:disabled){background:#e9dbc9}.setup-new small{color:#a99a86;display:block;font-size:9px;margin-top:7px}.setup-step{border-top:1px solid #e8e0d5;padding:13px 0}.setup-step-head{display:flex;align-items:center;gap:10px;margin-bottom:9px}.setup-step-head>b{font:800 10px Manrope,sans-serif;color:#a5835d}.setup-step-head>div{display:flex;flex-direction:column;gap:2px;flex:1}.setup-step-head strong{font:800 11px Manrope,sans-serif}.setup-step-head small{color:#a19688;font-size:10px}.setup-step-head>span{font-size:16px;color:#71875f}.setup-step button:disabled{opacity:.48}.individual{display:flex;gap:5px;align-items:end;margin-top:8px}.individual label{font:800 8px Manrope,sans-serif;color:#a48c70;letter-spacing:.08em;display:flex;flex-direction:column;gap:3px}.individual input,.individual select{width:57px;border:1px solid #d6c9b8;background:#fff;height:28px;padding:3px;color:#5c4e3f}.individual button{height:28px}.tension-row{display:flex;gap:12px;align-items:center}.tension-row input{width:100%;accent-color:#98714a}.tension-row span{font:800 11px Manrope,sans-serif;color:#80603f}.tieup-editor{border-top:1px solid #e8e0d5;padding-top:18px;margin-top:10px}.tieup-row{display:grid;grid-template-columns:40px repeat(4,1fr);gap:5px;align-items:center;margin:6px 0}.tieup-row b{font:800 10px Manrope,sans-serif;color:#806446}.tieup-row label{position:relative;cursor:pointer;text-align:center}.tieup-row input{position:absolute;opacity:0}.tieup-row span{height:28px;display:flex;align-items:center;justify-content:center;background:#f2ece3;border:1px solid #d8cbbb;color:#8b7964;font:800 10px Manrope,sans-serif}.tieup-row input:checked+span{background:#9f7950;border-color:#9f7950;color:#fff}.tieup-row input:focus-visible+span{outline:2px solid #665039}.finish-setup{background:#936c42;color:#fff;margin-top:18px}.site-footer{display:flex;justify-content:space-between;padding:15px 3.3vw;background:#f8f5ee;color:#aa9f90;font:800 8px Manrope,sans-serif;letter-spacing:.16em;border-top:1px solid #dfd8ca}@media(max-width:1100px){.workspace{grid-template-columns:minmax(0,1fr) 340px}.panel-body{padding:22px 17px}.panel-tabs{padding:0 8px}.panel-tabs button{padding:0 11px}.topbar{padding:0 20px}.stage-head{left:24px}.stage-footer{padding:12px 24px}.orbit-tip{left:24px}}@media(max-width:820px){.workspace{display:flex;flex-direction:column}.canvas-wrap{height:60vh;min-height:470px}.control-panel{border-left:0}.panel-body{max-height:none;padding:25px 5vw}.panel-tabs{justify-content:space-around}.stage-head{top:22px}.stage h1{font-size:38px}.stage-head p{max-width:340px}.canvas-label{top:20px;right:14px}.orbit-tip{bottom:17px;font-size:8px}.view-controls{bottom:41px;right:14px}.stage-footer{min-height:64px}.control-panel{min-height:0}.topbar-right .saving{display:none}}@media(max-width:520px){.topbar{height:64px}.brand strong{font-size:11px}.brand span:not(.brand-mark){font-size:7px}.badge{font-size:8px;padding:7px}.stage-head{top:18px;left:18px}.stage h1{font-size:34px}.stage-head p{font-size:11px;max-width:270px}.canvas-wrap{min-height:430px;height:55vh}.canvas-label{display:none}.view-controls button{padding:7px 6px;font-size:7px}.orbit-tip{left:18px;bottom:13px;font-size:7px}.stage-footer{padding:10px 18px;gap:10px}.step-indicator{min-width:135px}.step-indicator strong{font-size:10px}.status-copy{font-size:10px;padding-left:10px}.site-footer{font-size:6px;gap:12px;line-height:1.4}.panel-tabs button{font-size:9px}}.panel-tabs{padding:0 9px}.panel-tabs button{padding:0 10px;font-size:9px}.reference-figure{margin:0;border:1px solid #e2d8ca;background:#f5efe6;padding:8px}.reference-figure a{display:block;line-height:0}.reference-figure img{display:block;width:100%;height:auto}.reference-figure figcaption{font-size:11px;line-height:1.5;color:#6f6152;padding:10px 5px 4px}.reference-note{font-size:11px;line-height:1.6;color:#837667}.stage-head{position:relative;left:auto;top:auto;min-height:112px;padding:14px 3.5vw 12px;background:#f5f1e9;pointer-events:auto}.canvas-wrap{height:calc(100vh - 266px);min-height:450px;max-height:760px}@media(max-width:820px){.stage-head{padding:16px 5vw 12px}.canvas-wrap{height:60vh;min-height:470px;max-height:none}}@media(max-width:520px){.stage-head{padding:12px 18px;min-height:106px}.canvas-wrap{height:55vh;min-height:430px}}@media(max-width:520px){.panel-tabs{padding:0 4px}.panel-tabs button{padding:0 7px;font-size:8px}}.clean-toggle{position:absolute;left:24px;top:25px;z-index:2;border:1px solid #d8ccb9;border-radius:3px;background:#faf8f1e8;color:#735b3f;padding:10px 13px;font:800 9px Manrope,sans-serif;letter-spacing:.13em;box-shadow:0 4px 14px #493a2715}.clean-toggle:hover,.clean-toggle[aria-pressed=true]{background:#886746;border-color:#886746;color:#fff}.auto-section{border-top:1px solid #e7e0d6;margin-top:18px;padding:19px 0 5px}.auto-options{display:grid;grid-template-columns:1.5fr 1fr;gap:8px;margin-bottom:9px}.auto-options label{display:flex;flex-direction:column;gap:5px;color:#9d8c78;font:800 8px Manrope,sans-serif;letter-spacing:.1em}.auto-options select{width:100%;height:34px;border:1px solid #d9ccbb;border-radius:2px;background:#fff;color:#69523c;padding:0 6px;font:700 10px Manrope,sans-serif;letter-spacing:0}.auto-button{width:100%;min-height:39px;border:1px solid #8c6945;background:#8c6945;color:#fff;font:800 10px Manrope,sans-serif;letter-spacing:.09em}.auto-button.stopping{background:#f7f1e8;color:#795536}.auto-button:disabled{opacity:.47}.auto-section>small{display:block;color:#a29687;font-size:10px;line-height:1.5;margin-top:7px}.fabric-detail{border:1px solid #ded1bf;background:#f5eee3;padding:11px 12px 10px;margin:1px 0 15px}.fabric-detail-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.fabric-detail-heading strong{color:#755839;font:800 9px Manrope,sans-serif;letter-spacing:.12em}.fabric-detail-heading span{color:#806950;font:700 10px Manrope,sans-serif;text-transform:capitalize}.fabric-detail canvas{display:block;width:100%;height:105px;background:#e7dbc2;border:1px solid #d8c7b1;image-rendering:pixelated}.fabric-detail small{display:block;margin-top:7px;color:#8d806e;font-size:9px;line-height:1.5}@media(max-width:520px){.clean-toggle{left:14px;top:15px;padding:8px 9px;font-size:8px}}.scene-unavailable>canvas,.scene-unavailable .view-controls,.scene-unavailable .clean-toggle,.scene-unavailable .orbit-tip,.scene-unavailable .part-marker{display:none}.scene-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:32px;text-align:center;color:#685c4d;background:#eee7da;font:700 15px/1.6 Manrope,sans-serif}.scene-fallback[hidden]{display:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.part-marker{position:absolute;z-index:3;max-width:190px;padding:8px 11px;transform:translate(-50%,-100%);border:1px solid #ffbf67;border-radius:4px;background:#56351eea;color:#fff5e4;box-shadow:0 0 0 3px #ffb34c55,0 0 24px #ff9d38aa;text-align:center;text-transform:uppercase;font:800 10px/1.25 Manrope,sans-serif;letter-spacing:.09em;pointer-events:none;white-space:normal}.part-marker:after{content:"";position:absolute;top:100%;left:50%;width:2px;height:18px;background:#ffbf67;box-shadow:0 0 9px #ff9d38}.part-marker:before{content:"";position:absolute;top:calc(100% + 16px);left:calc(50% - 4px);width:8px;height:8px;border-radius:50%;background:#ffc46f;box-shadow:0 0 0 3px #ffb34c66,0 0 12px #ff9d38}.part-marker[hidden]{display:none}.sound-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 24px;background:#f5f1e9;border-top:1px solid #e7ded3;color:#735b3f;font:700 11px Manrope,sans-serif}.sound-controls button{min-height:36px;padding:8px 12px;border:1px solid #d8ccb9;border-radius:3px;background:#faf8f1;color:#735b3f;font:inherit}.sound-controls button[aria-pressed=true]{background:#886746;border-color:#886746;color:#fff}.sound-controls label{display:flex;align-items:center;gap:8px}.sound-controls input{width:100px;min-height:32px;accent-color:#886746}.sound-controls button:focus-visible,.sound-controls input:focus-visible{outline:2px solid #665039;outline-offset:3px}#sound-status{font-size:10px}@media(max-width:520px){.sound-controls{padding:8px 18px;gap:8px}}@media(min-width:821px){.shell{height:100vh;min-height:700px}.topbar,.site-footer,.stage-head,.sound-controls,.stage-footer{flex-shrink:0}.canvas-wrap{flex:1;height:auto;min-height:0;max-height:none}.panel-body{flex:1;min-height:0;max-height:none}}@media(min-width:821px){.workspace{grid-template-rows:minmax(0,1fr)}.stage{min-height:0}}:root{--control-accent: #805b35;--control-selected: #f3e8d8;--control-muted: #eeeae3}.auto-section{border:1px solid #d9c9b4;background:#f6efe4;padding:16px;margin:0 0 22px}.auto-section h3{margin:0 0 8px;font:800 16px Manrope,sans-serif}.auto-section p{margin:0 0 14px;color:#695b49;font-size:12px;line-height:1.55}.auto-section>small{color:#73634f;font-size:11px}.auto-button,.action.primary,.advance:not(:disabled),.demo-button,.finish-setup,.scene-auto-stop{background:var(--control-accent);border-color:var(--control-accent);color:#fff}.auto-button{min-height:44px;font-size:11px}.auto-settings{margin-top:14px}.auto-settings summary{color:#70583f;cursor:pointer;font-size:11px;line-height:1.5}.auto-settings summary:focus-visible{outline:2px solid var(--control-accent);outline-offset:3px}.auto-options{margin-top:12px}.manual-intro h2{font-size:25px}.panel-intro .next-step{color:#57452f;font-size:12px;font-weight:700}.treadle.active,.treadle.active:disabled,.swatch.selected,.tieup-row input:checked+span,.clean-toggle[aria-pressed=true],.sound-controls button[aria-pressed=true]{background:var(--control-selected);border-color:var(--control-accent);box-shadow:inset 0 0 0 1px var(--control-accent);color:#614527;opacity:1}.treadle.active small{color:#614527}.advance:not(:disabled) small{color:#fff1df}.control-panel button:disabled:not(.active),.auto-options select:disabled{background:var(--control-muted);border-color:#d6cfc4;color:#898073;opacity:1;box-shadow:none}.scene-auto-stop{position:absolute;z-index:4;left:18px;bottom:64px;border:1px solid var(--control-accent);border-radius:3px;padding:12px 14px;min-height:44px;font:800 11px Manrope,sans-serif;box-shadow:0 2px 12px #30201033}.scene-auto-stop[hidden]{display:none}
