:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#242d28;background:#efeee9;font-synthesis:none;--ink:#26382d;--muted:#767c74;--line:#d6d8cf;--accent:#d9e6bc;--paper:#fafaf6;--orange:#ad583d}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,label,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid #60834d;outline-offset:4px}button{color:inherit}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.masthead{height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 40px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-size:17px;letter-spacing:-.4px;white-space:nowrap}.brand strong{font-weight:450}.brand-divider{color:#adb4a5;padding:0 14px}.brand-symbol{width:30px;height:30px;display:grid;grid-template-columns:1fr 1fr;gap:4px;align-items:center;justify-items:center}.brand-symbol i{width:12px;height:12px;background:var(--ink);border-radius:50%}.brand-symbol i:nth-child(2),.brand-symbol i:nth-child(3){width:7px;height:7px}.privacy{font-size:12px;display:flex;align-items:center;gap:8px}.privacy-detail{color:var(--muted);border-left:1px solid var(--line);padding-left:12px;margin-left:5px}.status-dot{width:6px;height:6px;background:#57744a;border-radius:50%}.text-button{background:none;border:0;padding:7px 0;font-size:12px;white-space:nowrap}.text-button:hover{text-decoration:underline;text-underline-offset:4px}.text-button span{margin-left:12px}.small{font-size:11px}.studio{display:grid;grid-template-columns:340px minmax(0,1fr);max-width:1800px;margin:auto}.controls{border-right:1px solid var(--line);padding:28px 26px 20px}.eyebrow{font-size:9px;font-weight:600;letter-spacing:1.4px;color:var(--muted)}h1{font-size:29px;font-weight:450;letter-spacing:-1.1px;margin:9px 0 7px}p{margin:0}.intro p{color:var(--muted);font-size:12px}.intro{margin-bottom:28px}.control-section{border-top:1px solid var(--line);padding:20px 0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:15px}.section-heading h2{font-weight:550;font-size:12px;margin:0}.section-heading h2 span{font-size:10px;color:var(--muted);font-weight:400;margin-right:10px}.tiny-note{font-size:9px;color:var(--muted)}.upload{display:flex;align-items:center;gap:13px;padding:10px;background:#e4e5dd;border:1px dashed #b7beb0;border-radius:8px;cursor:pointer;position:relative;overflow:hidden}.upload:hover,.upload.drag-over{background:#dce5d1;border-color:#6e845c}.upload canvas{display:block;width:72px;height:72px;object-fit:cover;border-radius:3px;background:#fafaf6}.upload-copy{display:grid;gap:6px;min-width:0}.upload-copy strong{font-size:12px;font-weight:550}.upload-copy>span{font-size:11px;color:#626a60;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:175px}.upload-copy small{font-size:9px;color:var(--muted)}.upload input{position:absolute;width:100%;height:100%;opacity:0;left:0;top:0;cursor:pointer}.upload:focus-within{outline:2px solid #60834d;outline-offset:3px}.samples{display:flex;align-items:center;gap:6px;margin:10px 0 20px;font-size:10px}.samples>span{color:var(--muted);margin-right:auto}.sample{background:transparent;border:1px solid transparent;border-radius:20px;padding:4px 7px;font-size:10px}.sample.active{border-color:#b7c3aa;background:#e2e9d7}.range-field{display:grid;grid-template-columns:1fr auto;gap:9px;margin:16px 0}.range-field label{font-size:11px}.range-field output{font-size:10px;color:#616f59;font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,monospace}.range-field input{grid-column:1/-1;width:100%;height:3px;accent-color:#485f3c;margin:3px 0;cursor:pointer}.image-actions{display:flex;align-items:center;justify-content:space-between;margin-top:14px}.check{display:flex;align-items:center;gap:6px;font-size:11px}.check input{accent-color:#405b35;margin:0;width:13px;height:13px}.crop-details{margin-top:14px}.crop-details summary{font-size:11px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;color:#68725f;padding:8px 0}.crop-details summary::-webkit-details-marker{display:none}.crop-details[open] summary span{transform:rotate(45deg)}.details-content{padding:0 3px}.mode-selector{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mode{display:grid;grid-template-columns:auto 1fr;column-gap:10px;text-align:left;background:transparent;border:1px solid #c8cec0;border-radius:7px;padding:13px 11px}.mode.active{border-color:#7b8d68;background:#e4eadb;box-shadow:inset 0 0 0 .5px #7b8d68}.mode-pattern{grid-row:span 2;font-family:monospace;line-height:11px;letter-spacing:1px;align-self:center;font-size:12px}.mode strong{font-size:12px;font-weight:550}.mode small{font-size:9px;color:var(--muted);margin-top:4px}.mode-description{font-size:10px;line-height:1.6;color:var(--muted);margin-top:11px;min-height:32px}.dimension-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dimension-fields>label{font-size:10px;color:#5d6857}.number-wrap{position:relative;margin-top:7px}.number-wrap input{width:100%;padding:9px 32px 9px 11px;border:1px solid #c9cfc1;border-radius:5px;background:#f8f8f2;color:#303c29;font-size:13px}.number-wrap>span{position:absolute;right:11px;top:11px;font-size:10px;color:#8a9282;pointer-events:none}input[type=number]{appearance:textfield;-moz-appearance:textfield}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.print-profile{display:flex;gap:9px;margin-top:23px;color:#66725b}.profile-symbol{font-size:23px;line-height:22px}.print-profile strong{display:block;font-size:10px;font-weight:500}.print-profile div>span{display:block;font-size:9px;color:#8a9184;margin-top:5px}.workspace{min-width:0;padding:29px 34px 24px;align-self:start;position:sticky;top:0}.workspace-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px}.workspace-top h2{font-size:20px;font-weight:450;letter-spacing:-.5px;margin:8px 0 0}.dimension-badge{font-family:ui-monospace,SFMono-Regular,monospace;border:1px solid #cdd2c5;padding:7px 10px;border-radius:4px;font-size:10px;color:#69755e}.viewport{position:relative;min-height:400px;height:min(58vw,620px);max-height:calc(100vh - 300px);background:radial-gradient(ellipse at 50% 42%,#eeefe6,#d9ded1);border-radius:12px;overflow:hidden;border:1px solid #d3d9c9;isolation:isolate}.viewport:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(#72816738 .6px,transparent .6px);background-size:20px 20px;z-index:-1}#scene,#flat-preview{width:100%;height:100%;position:absolute;inset:0}#scene canvas{display:block;width:100%;height:100%;outline:none;touch-action:none}.view-switch{position:absolute;left:20px;top:18px;display:flex;gap:2px;padding:3px;background:#f7f8efb8;border:1px solid #c7cfbb;border-radius:6px;backdrop-filter:blur(8px)}.view-switch button{border:0;border-radius:4px;padding:6px 12px;font-size:10px;background:transparent;color:#7a8470}.view-switch button.active{background:#364b2e;color:#f0f4e9}.viewport-label{position:absolute;bottom:17px;left:20px;display:grid;gap:6px;font-size:10px;color:#7f8b74;pointer-events:none}.viewport-label span:first-child{color:#657459}.material-controls{position:absolute;right:18px;bottom:19px;display:flex;align-items:center;gap:7px}.material-controls>span{font-size:9px;color:#7f8b74;margin-right:2px}.swatch{width:17px;height:17px;border-radius:50%;border:2px solid transparent;box-shadow:0 0 0 1px #9da891;padding:0}.swatch.active{outline:1px solid #334c29;outline-offset:3px}.swatch.ivory{background:#f0ead6}.swatch.charcoal{background:#42453e}.swatch.clay{background:#b6694e}.light-button{font-size:10px;background:transparent;border:0;margin-left:8px;padding:4px 0}.busy{position:absolute;top:22px;right:20px;font-size:10px;color:#516443;background:#f3f5ead9;border:1px solid #b7c4a7;border-radius:4px;padding:6px 9px;pointer-events:none}.busy:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:#6e8b51;vertical-align:middle;margin-right:7px}.render-fallback{position:absolute;top:62px;left:20px;right:20px;font-size:11px;color:#5c684e;line-height:1.5;background:#f2f4e7cc;padding:8px}.metrics{display:grid;grid-template-columns:1.45fr 1fr 1fr 1fr;margin-top:22px;padding-bottom:19px;border-bottom:1px solid var(--line);gap:16px}.metrics>div{display:grid;gap:8px}.metrics span{font-size:10px;color:#7b8472}.metrics small{font-size:8px;display:block;margin-top:4px}.metrics strong{font-family:ui-monospace,SFMono-Regular,monospace;font-weight:400;font-size:18px;letter-spacing:-.5px;align-self:end}.geometry-note{font-size:10px;color:#7b8472;line-height:1.6;min-height:33px;padding-top:12px}.geometry-note.adjusted{color:#8b693a}.error{font-size:12px;background:#f4e2d6;border:1px solid #ce967b;color:#8d3d24;padding:12px;border-radius:5px;margin-top:10px;line-height:1.5}.export-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px}.export-copy{display:grid;gap:7px}.export-copy strong{font-size:13px;font-weight:500}.export-copy span{font-size:9px;color:#8a9181;line-height:1.6}.export-actions{display:flex;gap:9px;flex-shrink:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;border-radius:5px;border:1px solid #b5c0a6;font-size:11px;font-weight:500;padding:13px 15px;transition:background .15s}.button.primary{background:#31472b;color:#f4f5eb;border-color:#31472b}.button.primary:hover{background:#425d38}.button.secondary{background:transparent}.button.secondary:hover{background:#e0e7d5}.button:disabled{opacity:.4;cursor:wait}.validation-note{margin-top:16px;font-size:9px;line-height:1.7;color:#959b8e;max-width:650px}footer{border-top:1px solid var(--line);padding:18px 40px;display:flex;justify-content:space-between;gap:18px;font-size:9px;letter-spacing:1px;color:#8f9687}footer span:nth-child(2){letter-spacing:0}dialog{border:1px solid #bdc8b1;border-radius:12px;background:#f5f6ed;color:var(--ink);max-width:540px;width:calc(100% - 40px);padding:38px;box-shadow:0 20px 100px #1b281c40}dialog::backdrop{background:#24302366;backdrop-filter:blur(4px)}dialog h2{font-size:25px;font-weight:450;margin:14px 0 25px;letter-spacing:-.6px}dialog ol{padding-left:17px;display:grid;gap:18px;font-size:12px;line-height:1.8;color:#6d7863}dialog li strong{color:var(--ink);font-weight:550}dialog p{font-size:11px;line-height:1.7;color:#7d846f;margin:22px 0}.dialog-close{position:absolute;right:20px;top:15px;border:0;background:transparent;font-size:25px;color:#8b977e}.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}@media(min-width:1600px){.studio{grid-template-columns:370px minmax(0,1fr)}.controls{padding-left:35px;padding-right:35px}.workspace{padding-left:50px;padding-right:50px}}@media(max-width:1100px){.masthead{padding:0 24px}.privacy-detail{display:none}.studio{grid-template-columns:300px minmax(0,1fr)}.controls{padding:25px 20px}.workspace{padding:25px 22px}.viewport{min-height:360px}.export-bar{align-items:start;flex-direction:column;gap:14px}.export-actions{width:100%}.export-actions .button{flex:1}.material-controls>span{display:none}.metrics{gap:10px}.metrics strong{font-size:15px}.viewport-label{font-size:9px}.upload-copy>span{max-width:145px}.tiny-note{font-size:8px}}@media(max-width:760px){.masthead{height:72px;padding:0 20px}.brand{font-size:15px}.brand-divider{padding:0 7px}.privacy{display:none}.studio{display:flex;flex-direction:column}.workspace{order:0;position:relative;width:100%;padding:24px 18px}.controls{order:1;border-right:0;border-top:1px solid var(--line);width:100%;padding:24px 22px;display:grid;grid-template-columns:1fr 1fr;gap:0 26px}.intro{grid-column:1/-1;margin-bottom:20px}.intro h1{font-size:25px}.control-section{min-width:0}.controls .control-section:first-of-type{grid-row:span 2}.viewport{height:65vw;max-height:none;min-height:340px}.workspace-top{margin-bottom:16px}.metrics{margin-top:18px}.export-bar{flex-direction:row;align-items:center;gap:12px}.export-copy{display:none}.export-actions{width:100%}.validation-note{margin-top:12px}.material-controls>span{display:none}.upload{align-items:flex-start;flex-direction:column}.upload canvas{width:100%;height:auto;aspect-ratio:1;max-height:150px;object-fit:contain}.upload-copy{padding:3px}.samples{flex-wrap:wrap}.samples>span{width:100%;margin-bottom:3px}.mode{grid-template-columns:1fr;padding:10px}.mode-pattern{display:none}.mode small{font-size:8px}.tiny-note{display:none}.dimension-fields{gap:8px}.metrics small{font-size:8px}footer{padding:18px 22px;font-size:8px}footer span:nth-child(2){display:none}}@media(max-width:450px){.controls{display:block}.upload{flex-direction:row;align-items:center}.upload canvas{width:72px;height:72px;flex-shrink:0}.upload-copy>span{max-width:200px}.samples>span{width:auto;margin:0 auto 0 0}.mode{grid-template-columns:auto 1fr}.mode-pattern{display:block}.mode small{font-size:9px}.viewport{min-height:330px}.view-switch{left:12px;top:12px}.viewport-label{left:12px;bottom:13px;font-size:8px}.material-controls{right:12px;bottom:18px;gap:6px}.material-controls .light-button{margin-left:2px;font-size:9px}.swatch{width:14px;height:14px}.metrics{gap:8px;grid-template-columns:1.3fr 1fr 1fr 1fr}.metrics span{font-size:8px}.metrics small{font-size:7px}.metrics strong{font-size:13px}.busy{top:14px;right:12px;font-size:8px}.brand-symbol{width:24px;height:24px;gap:2px}.brand-symbol i{width:10px;height:10px}.masthead>.text-button{font-size:10px}.workspace-top h2{font-size:18px}.dimension-badge{font-size:9px;padding:6px}.eyebrow{font-size:8px}.dimension-fields{gap:14px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

@media(max-width:600px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px}.metrics span{font-size:11px}.metrics small{font-size:10px}.metrics strong{font-size:18px}.controls{display:block}.upload{flex-direction:row;align-items:center}.upload canvas{width:72px;height:72px;flex-shrink:0}.upload-copy>span{max-width:190px}.samples>span{width:auto;margin:0 auto 0 0}.mode{grid-template-columns:auto 1fr}.mode-pattern{display:block}.mode small{font-size:10px}.dimension-fields{gap:14px}.viewport-label{font-size:10px}.viewport-label span:last-child{display:none}.validation-note{font-size:10px}.export-actions .button{font-size:11px;padding:13px 10px;gap:10px}.masthead{gap:10px}.brand{gap:8px;font-size:14px}.brand-divider{padding:0 6px}.masthead>.text-button{font-size:10px}.masthead>.text-button span{margin-left:4px}}
.control-hint{font-size:10px;line-height:1.65;color:#7b8472;margin:4px 0 15px}.pattern-c{font-size:21px;line-height:10px;letter-spacing:-3px}.mode-selector .mode{column-gap:8px}.mode small{white-space:nowrap}
.fixed-setting{display:flex;align-items:center;justify-content:space-between;margin:18px 0;font-size:11px;color:#66715e}.fixed-setting strong{font:10px ui-monospace,SFMono-Regular,monospace;font-weight:400}.fixed-setting small{font:8px -apple-system,BlinkMacSystemFont,sans-serif;border:1px solid #c9d0bf;border-radius:3px;padding:2px 4px;margin-left:4px;color:#89927e}.template-lock{font:8px ui-monospace,SFMono-Regular,monospace;letter-spacing:.7px;color:#7c8b6d}.template-source{font:11px ui-monospace,SFMono-Regular,monospace;padding:10px 12px;background:#e2e7da;border:1px solid #ccd4c0;border-radius:5px;color:#58694a;margin-bottom:16px;overflow-wrap:anywhere}.template-dimensions{margin:0 0 18px;display:grid;gap:12px;font-size:10px}.template-dimensions>div{display:flex;justify-content:space-between;gap:10px}.template-dimensions dt{color:#7c8772}.template-dimensions dd{margin:0;font-family:ui-monospace,SFMono-Regular,monospace;font-size:10px;white-space:nowrap;color:#56674a}.frame-section{fill:none;stroke:#8c9685;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}

/* Fixed orthographic device study. No camera, WebGL, or animation loop. */
.device-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 0 14px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:9px;color:#66705f}.projection-label{display:flex;align-items:center;gap:8px;white-space:nowrap}.projection-label>span:last-child{color:#959e8e;border-left:1px solid var(--line);padding-left:10px;font-size:8px}.projection-symbol{font-size:18px;color:#526249}.drawing-options{display:flex;gap:14px}.drawing-options .check{font-family:inherit;font-size:9px;white-space:nowrap}.device-viewport{height:auto!important;max-height:none!important;min-height:580px!important;border:1px solid #cfd5c8;border-radius:2px;background-color:#f5f6ef;background-image:radial-gradient(#9caa8d50 .65px,transparent .65px);background-size:18px 18px;overflow:hidden;padding:20px 22px 15px}.drawing-topline,.drawing-bottomline{display:flex;justify-content:space-between;align-items:center;gap:12px;font:8px ui-monospace,SFMono-Regular,monospace;letter-spacing:1px;color:#8b9580}.drawing-topline{padding-bottom:17px;border-bottom:1px solid #dce1d4}.drawing-topline>span:last-child{font-size:7px;color:#6e835d}.device-drawings{display:grid;grid-template-columns:1fr 1fr;column-gap:30px;align-items:start;min-height:480px;padding-top:22px}.device-figure{margin:0;min-width:0}.device-figure figcaption,.section-detail figcaption{display:flex;justify-content:space-between;gap:8px;font:8px ui-monospace,SFMono-Regular,monospace;letter-spacing:.7px;color:#8c9583}.device-figure figcaption span:first-child{color:#52644b}.device-figure figcaption b{font-weight:400;opacity:.5;margin-right:8px}.device-figure figcaption span:last-child{font-size:7px}.device-figure svg{display:block;width:100%;overflow:visible;max-height:450px}.device-figure p{font-size:9px;color:#89917f;margin-top:0;text-align:center}.device-shell{fill:#f2f4ec;stroke:#929c88;stroke-width:1.15;stroke-linejoin:round}.device-shell .device-orange{fill:#cf774a;stroke:#9f6547}.device-shell .device-hidden{fill:none;stroke-dasharray:4 4;opacity:.5}.device-drivers{fill:none;stroke:#bfc8b5;stroke-width:1;stroke-dasharray:4 5;opacity:.6}.device-aperture{fill:none;stroke:#a7b398;stroke-width:.7;stroke-dasharray:3 4}.panel-outline{fill:none;stroke:#6d805b;stroke-width:.9}.panel-section{fill:none;stroke:#587447;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round}.device-datum{fill:none;stroke:#a8b29d;stroke-width:.7;stroke-dasharray:3 4}.device-dimension{fill:#7c896f;stroke:#a7b099;stroke-width:.7}.device-dimension text{font:8px ui-monospace,SFMono-Regular,monospace;stroke:none;letter-spacing:.3px}.section-detail{grid-column:1/-1;margin:20px 0 12px;border-top:1px solid #dce1d4;padding-top:14px;display:grid;grid-template-columns:1fr 1.7fr;gap:20px;align-items:center}.section-detail figcaption{flex-direction:column;justify-content:start;gap:10px;line-height:1.6;font-size:7px}.section-detail figcaption span:last-child{color:#556b49;font-size:10px}.section-detail svg{width:100%;height:95px;overflow:visible}.detail-label{fill:#8f9b83;font:7px ui-monospace,SFMono-Regular,monospace;letter-spacing:.6px}.device-viewport .material-controls{position:static;display:flex;align-items:center;gap:10px;background:none;padding:0}.device-viewport .material-controls>span{font-size:8px;letter-spacing:0;margin-right:5px}.device-viewport .swatch{width:13px;height:13px}.device-viewport .busy{top:53px;right:18px}.drawing-bottomline{padding-top:12px;border-top:1px solid #dce1d4;font-size:7px;letter-spacing:.3px}.device-context{font-size:10px;line-height:1.65;color:#8d9585;margin-top:12px;max-width:720px}.preview-stale .device-drawings{opacity:.45}.preview-stale .drawing-topline>span:last-child{color:#9a693f}.workspace-top{margin-bottom:22px}.device-viewport .material-controls>span{display:inline}.device-viewport:before,.device-viewport:after{display:none}dialog a{text-decoration:underline;text-underline-offset:3px}
@media(min-width:1600px){.device-figure svg{max-height:510px}.device-drawings{min-height:530px}}
@media(max-width:1100px) and (min-width:761px){.device-toolbar{align-items:start;flex-direction:column;gap:10px}.device-viewport{padding:16px 14px 13px;min-height:470px!important}.device-drawings{column-gap:12px;min-height:340px}.device-figure figcaption span:last-child{display:none}.device-figure p{font-size:8px}.section-detail{grid-template-columns:1fr;gap:0}.section-detail figcaption{flex-direction:row;justify-content:space-between}.section-detail svg{height:75px}.drawing-bottomline>span{max-width:130px;line-height:1.6}.device-viewport .material-controls>span{display:none}}
@media(max-width:760px){.device-viewport{min-height:500px!important;padding:18px 16px 14px}.device-drawings{min-height:360px;column-gap:20px}.device-toolbar{font-size:9px}.projection-label>span:last-child{display:none}.drawing-options{gap:12px}.section-detail{grid-template-columns:1fr 1.6fr;gap:12px}.device-figure svg{max-height:410px}.device-context{font-size:10px}.device-figure figcaption span:last-child{font-size:6px}}
@media(max-width:480px){.device-toolbar{align-items:start;flex-direction:column;gap:12px}.projection-label>span:last-child{display:inline}.device-viewport{min-height:420px!important;padding:15px 12px 13px}.device-drawings{min-height:280px;column-gap:10px}.device-figure figcaption span:last-child{display:none}.device-figure figcaption{font-size:8px}.device-figure p{font-size:8px;line-height:1.5;min-height:24px}.section-detail{grid-template-columns:1fr;gap:0;margin-top:14px}.section-detail figcaption{flex-direction:row;justify-content:space-between;font-size:6px}.section-detail figcaption span:last-child{font-size:9px}.section-detail svg{height:80px}.drawing-bottomline>span{font-size:7px;max-width:150px;line-height:1.6}.device-viewport .material-controls>span{display:none}.drawing-topline{font-size:7px;letter-spacing:.6px}}
