:root{--ivory:#f5f1e9;--paper:#fbf9f4;--navy:#10172a;--muted:#726e66;--line:#ded9cf;--orange:#d48516;--soft:#eee6d7;font-family:Arial,Helvetica,sans-serif;color:var(--navy);background:var(--ivory);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,select,.file-button{font-size:12px;color:var(--navy);border:1px solid var(--line);background:var(--paper);border-radius:5px;padding:10px 12px;cursor:pointer;line-height:1.1}button:hover,.file-button:hover{background:var(--soft);border-color:#b7a889}button:disabled{opacity:.4;cursor:default}button[aria-pressed=true],.navy{background:var(--navy);border-color:var(--navy);color:white}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid var(--orange);outline-offset:3px}a{color:#854206;text-underline-offset:3px}input[type=checkbox],input[type=range]{accent-color:var(--navy)}input[type=checkbox]{width:16px;height:16px;margin:0;cursor:pointer}input[type=range]{cursor:pointer;min-width:0}h1,h2,h3,p{margin:0}h1{font-size:25px;line-height:1.2;font-weight:500;letter-spacing:-.7px}h2{font-size:19px;font-weight:500}h3{font-size:15px}p{font-size:13px;line-height:1.6}small,.small{font-size:11px;line-height:1.6;color:var(--muted)}.app-header{height:88px;padding:18px 28px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:16px}.identity{display:flex;align-items:center;gap:28px}.identity img{height:51px;width:135px;object-fit:contain}.identity span{font-size:14px;color:#59564f;border-left:1px solid var(--line);padding-left:26px}.app-header nav{display:flex;gap:8px}.workspace{display:grid;grid-template-columns:232px minmax(0,1fr) 262px;min-height:680px;height:calc(100dvh - 122px)}.panel{background:var(--paper);min-width:0;overflow:auto}.parts-panel{border-right:1px solid var(--line)}.inspector-panel{border-left:1px solid var(--line)}summary{padding:23px 20px 18px;list-style:none;font-size:14px;letter-spacing:.2px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}summary::-webkit-details-marker{display:none}summary span{font-size:10px;color:var(--muted);font-weight:normal}.panel-body{padding:0 18px 22px}.panel-intro{font-size:11px;color:var(--muted);margin-bottom:22px}.part-category{font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted);margin:20px 0 9px}.part-row{display:flex;gap:4px;align-items:center;margin:4px -6px;border-radius:5px;padding:3px 6px}.part-row.selected{background:#eee5d6}.part-row.hidden-part .part-select{color:#8d8982}.part-select{flex:1;min-width:0;border:0;text-align:left;background:transparent;padding:9px 4px;font-size:12px;display:flex;gap:8px;align-items:center}.part-select[aria-pressed=true]{background:transparent;color:var(--navy);font-weight:700}.part-dot{width:7px;height:7px;border:1px solid #b4976b;flex-shrink:0;border-radius:50%;background:#dfcbaa}.part-row[data-kind=chicken] .part-dot{background:#e5d6ba}.part-row[data-kind=squash] .part-dot{background:#ea8b14}.visibility-control{display:flex;padding:9px 3px}.full{display:block;width:100%;margin-top:9px}.parts-panel .full{margin-top:22px}.parts-panel .small{margin-top:12px}.stage{position:relative;min-width:0;min-height:0;display:flex;flex-direction:column}.stage-toolbar{display:flex;align-items:center;gap:10px;padding:18px 24px;z-index:2;font-size:11px}.stage-toolbar select{padding:9px 25px 9px 10px}.zoom-controls{display:flex;gap:4px;margin-left:auto}.zoom-controls button{min-width:34px}.zoom-controls button:first-child,.zoom-controls button:nth-child(2){font-size:18px;padding:6px 9px}#viewport{position:relative;flex:1;min-height:330px;overflow:hidden}#scene{display:block;width:100%;height:100%;touch-action:none}#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.part-label{position:absolute;font-size:10px;padding:4px 7px;border:1px solid #c9bba5;border-radius:3px;background:#fbf9f4e8;white-space:nowrap;transform:translate(-50%,-100%)}.view-caption{position:absolute;left:24px;bottom:15px;font-size:12px;line-height:1.7;pointer-events:none}#section-note{position:absolute;top:10px;left:20px;font-size:11px;background:#fff7e3;padding:8px;border:1px solid #d9bb84}#loading{position:absolute;inset:0;display:grid;place-items:center;background:var(--ivory);font-size:14px}#loading[hidden],#fallback[hidden]{display:none}#fallback{position:absolute;inset:0;padding:15px;background:var(--ivory);overflow:auto}#fallback img{width:100%;max-height:80%;object-fit:contain}.assembly-controls{margin:12px 24px 0;border-top:1px solid var(--line);padding-top:18px;display:grid;grid-template-columns:auto 1fr;gap:12px 20px;align-items:center}.mode-buttons{display:flex;gap:4px;grid-row:span 2}.assembly-controls>label{font-size:11px;display:flex;justify-content:space-between}.assembly-controls input{width:100%;margin:0}.assembly-controls p{grid-column:1/-1;font-size:10px;color:var(--muted)}.gestures{font-size:10px;color:var(--muted);padding:13px 24px 20px}.inspector-panel #inspector>p{margin-top:16px;color:#676159;font-size:12px}.estimate-note{font-size:11px;line-height:1.6;border-left:2px solid #c19d65;padding-left:10px;margin-top:22px;color:#71624c}.info-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin:20px 0 7px}.info-value{font-size:12px;line-height:1.65}.asset-links{display:flex;flex-direction:column;gap:5px;font-size:11px;overflow-wrap:anywhere}.inspector-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:19px}.inspector-actions button{padding:10px 5px}.inspector-visible{display:flex;align-items:center;gap:8px;font-size:12px;margin-top:17px}.inspection-modes{border:0;border-top:1px solid var(--line);margin:26px 0 0;padding:16px 0 0}.inspection-modes legend{font-size:11px;padding-right:8px}.inspection-modes label{display:flex;align-items:center;gap:9px;font-size:12px;padding:8px 0}.export-controls{border-top:1px solid var(--line);padding-top:20px;margin:20px 0}.export-controls h2{font-size:12px}.file-button{display:block;text-align:center;margin-top:9px;position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.file-button:focus-within{outline:3px solid var(--orange);outline-offset:2px}footer{min-height:34px;border-top:1px solid var(--line);padding:10px 22px;display:flex;justify-content:space-between;gap:16px;font-size:10px;color:var(--muted)}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#72826c;margin-right:6px}.footer-divider{margin:0 12px;color:#b6aea0}#status.error{color:#a23920}dialog{border:1px solid var(--line);border-radius:8px;padding:24px;background:var(--paper);color:var(--navy);width:min(1040px,94vw);max-height:90dvh}dialog::backdrop{background:#10172a69;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.dialog-heading p{font-size:12px;color:var(--muted);margin-top:7px}.dialog-zoom{display:flex;align-items:center;gap:15px;margin:20px 0;font-size:12px}.dialog-zoom input{width:200px}.image-scroll{height:62dvh;overflow:auto;background:#efe8db;text-align:center}.image-scroll img{width:100%;display:block;max-width:none}.artwork-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:20px 0;font-size:12px}.artwork-toolbar a{margin-left:10px}.artwork-toolbar label{display:flex;align-items:center;gap:8px;margin-left:auto}.artwork-toolbar input{width:120px}.artwork-body{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:25px}.art-scroll{overflow:auto;height:60dvh;background:#eee8dd;padding:20px;text-align:center}.art-scroll img{display:block;width:330px;max-width:none;margin:auto;background:#cfaa78 url('assets/textures/kraft-basecolor.png') center/cover}.schematic p{font-size:11px;color:var(--muted);margin:10px 0}.fold-strip{border:1px solid #bba379;margin:18px 0;background:#e7d4b2}.fold-strip>div{padding:24px 12px;font-size:12px;text-align:center;border-bottom:1px dashed #aa9067}.fold-strip>div:last-child{border:0}.fold-strip strong{display:block;font-size:10px;font-weight:normal;margin-top:4px}.fold-strip .fold{padding:10px;background:#d9bd94}
@media(min-width:901px){.panel:not([open])>.panel-body{display:block}.panel>summary{pointer-events:none}}
@media(max-width:1100px) and (min-width:901px){.workspace{grid-template-columns:195px minmax(0,1fr) 224px}.panel-body{padding:0 13px 18px}.stage-toolbar{padding:15px}.assembly-controls{margin:10px 15px 0;gap:10px}.identity{gap:16px}.identity span{padding-left:16px}.mode-buttons button{padding:9px 8px}.view-caption{left:15px}}
@media(max-width:900px){.app-header{height:auto;min-height:96px;flex-wrap:wrap;padding:14px 18px;gap:10px}.identity{gap:16px}.identity img{height:40px;width:112px}.identity span{font-size:12px;padding-left:16px}.app-header nav{margin-left:auto}.app-header nav button{font-size:11px;padding:9px}.workspace{display:flex;flex-direction:column;height:auto;min-height:0}.stage{order:0;height:620px}.panel{order:1;border:0;border-top:1px solid var(--line);overflow:visible}.inspector-panel{order:2}.panel summary{padding:18px}.panel summary:after{content:'+';font-size:18px}.panel[open] summary:after{content:'−'}.panel summary span{margin-left:auto}.panel-body{padding:0 20px 22px}.part-row{max-width:500px}.panel-intro{margin-bottom:10px}.parts-panel .full{max-width:500px}.inspector-actions{max-width:500px}.export-controls{max-width:500px}footer{flex-direction:column;gap:7px}.view-caption{font-size:11px}.artwork-body{grid-template-columns:1fr}.schematic{max-width:350px}.art-scroll{height:50dvh}}
@media(max-width:480px){.app-header nav{margin-left:0;width:100%}.app-header nav button{flex:1}.app-header{padding:12px 15px}.stage{height:580px}.stage-toolbar{padding:14px 15px;gap:7px}.stage-toolbar select{max-width:136px}.stage-toolbar .zoom-controls{gap:3px}.stage-toolbar button{font-size:11px;padding:9px}.assembly-controls{margin:8px 15px 0;gap:12px}.mode-buttons{grid-row:auto}.assembly-controls>label{min-width:86px}.assembly-controls input{grid-column:1/-1}.gestures{padding:12px 15px;font-size:9px}.view-caption{left:15px;bottom:10px}.dialog-heading h2{font-size:17px}.dialog-heading p{font-size:11px}dialog{padding:15px}.artwork-toolbar{gap:7px}.artwork-toolbar a{margin-left:0;font-size:11px}.artwork-toolbar label{margin-left:0;width:100%}.art-scroll{padding:8px}.dialog-zoom{gap:8px}.dialog-zoom input{width:150px}footer{font-size:9px}.footer-divider{margin:0 4px}}
.export-save{display:inline-block;margin:20px 0;font-size:13px}#export-preview{max-height:65dvh;overflow:auto}#export-preview img{display:block;width:100%}#export-preview pre{padding:20px;background:var(--ivory);white-space:pre-wrap;font-size:12px;overflow-wrap:anywhere}
@media(max-width:900px){button,select,.file-button{min-height:40px}.part-row{min-height:44px}.visibility-control{padding:12px}.visibility-control input{width:20px;height:20px}.inspection-modes label{min-height:44px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
