:root{--bg:#efe9df;--panel:#f8f4ec;--panel-2:#e6dfd2;--line:#d6cbb9;--line-strong:#b9ab94;--fg:#241a15;--muted:#6e6052;--accent:#8a6a22;--accent-soft:#e9d9b0;--ink-selected:#3a2a22;--good:#4f7a4a;--warn:#b2651f;--display:"Cormorant Garamond",Georgia,"Times New Roman",serif;--ui:"Instrument Sans","Helvetica Neue",Arial,sans-serif;--mono:ui-monospace,"SF Mono",Menlo,monospace;--shadow:0 1px 0 #241a150f,0 10px 30px -18px #241a1559}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1b1512;--panel:#241c18;--panel-2:#2e2420;--line:#3b2f29;--line-strong:#5a483e;--fg:#efe6d8;--muted:#ab9b88;--accent:#d8b86a;--accent-soft:#4a3a1c;--ink-selected:#f4e9d6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--shadow:0 1px 0 #0000004d,0 10px 30px -18px #000c}}:root[data-theme=dark]{--bg:#1b1512;--panel:#241c18;--panel-2:#2e2420;--line:#3b2f29;--line-strong:#5a483e;--fg:#efe6d8;--muted:#ab9b88;--accent:#d8b86a;--accent-soft:#4a3a1c;--ink-selected:#f4e9d6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--shadow:0 1px 0 #0000004d,0 10px 30px -18px #000c}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);font-family:var(--ui);margin:0;font-size:14px;line-height:1.45}h1,h2,h3{font-family:var(--display);text-wrap:balance;margin:0;font-weight:500}h1{font-size:34px;line-height:1.1}h2{font-size:22px}h3{font-size:17px}p{margin:0}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.app{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;overflow:hidden}.app:has(.bench){overflow:clip}.topbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:14px;padding:10px 16px;display:flex}.brand{font-family:var(--display);letter-spacing:.06em;font-size:20px}.brand small{font-family:var(--ui);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);vertical-align:middle;margin-left:8px;font-size:10px}.topbar .grow{flex:1}.designname{font-family:var(--display);color:var(--muted);font-size:18px;font-style:italic}.btn{font:600 12px var(--ui);border:1px solid var(--line-strong);background:var(--panel);color:var(--fg);cursor:pointer;border-radius:8px;padding:7px 12px}.btn.primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}.btn.ghost{color:var(--muted);border-color:#0000}.btn:hover{border-color:var(--accent)}.lib{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;padding:18px;display:grid}.card{background:var(--bg);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:6px;padding:10px;display:flex}.card svg{width:100%;height:auto}.card .prev{place-items:center;height:120px;display:grid}.card .prev svg{width:100%;height:120px}.card .t{font-family:var(--display);font-size:16px}.card .m{color:var(--muted);font-size:11px}.card.saved{border-color:var(--line-strong)}.pill{letter-spacing:.08em;text-transform:uppercase;background:var(--accent-soft);color:var(--fg);border-radius:999px;align-self:flex-start;padding:2px 7px;font-size:10px;font-weight:600;display:inline-block}@media (prefers-reduced-motion:no-preference){.swatch,.btn{transition:border-color .15s}}#root{max-width:1280px;padding:20px max(16px,env(safe-area-inset-right,0px)) 48px max(16px,env(safe-area-inset-left,0px));margin:0 auto}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lib-section{padding:18px 18px 0}.lib-section .lib{padding:14px 0 0}.empty{color:var(--muted);margin-top:10px}.card .actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:auto;display:flex}.card>.btn{align-self:flex-start}.lib-section:last-child{padding-bottom:18px}.bench{grid-template-columns:220px 1fr 300px;min-height:600px;display:grid}.bench>*{min-width:0}.col{border-right:1px solid var(--line);padding:14px}.col:last-child{border-right:0}.col h3{margin-bottom:8px}.name-input{font:italic 18px var(--display);color:var(--muted);background:0 0;border:1px solid #0000;border-radius:6px;min-width:12ch;max-width:48ch;padding:2px 6px}.name-input:hover{border-color:var(--line)}.name-input:focus{border-color:var(--line-strong);color:var(--fg);background:var(--panel)}.parts{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.parts button{text-align:left;width:100%;color:var(--fg);font:500 13px var(--ui);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.parts button:hover{background:var(--panel-2)}.parts button[aria-pressed=true]{background:var(--panel-2);border-color:var(--line-strong)}.parts .dot{border:1px solid var(--line-strong);border-radius:50%;flex:none;width:16px;height:16px}.parts .dot.striped{background:repeating-linear-gradient(45deg,var(--muted) 0 2px,var(--line) 2px 4px)}.parts .sub{color:var(--muted);font-size:11px;font-weight:400;display:block}.parts-group+.parts-group{margin-top:12px}.parts-group h4.eyebrow{margin:0 0 4px;padding:0 10px}.stage{background:var(--bg);--stage-h:clamp(340px,calc(100svh - 196px),900px);flex-direction:column;align-self:start;display:flex;position:sticky;top:0}.views{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:4px;padding:10px 14px;display:flex}.views button{font:500 12px var(--ui);color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;padding:5px 10px}.views button[aria-pressed=true]{background:var(--panel);border-color:var(--line-strong);color:var(--fg)}.views label{color:var(--muted);cursor:pointer;align-items:center;gap:6px;margin-left:auto;font-size:12px;display:flex}.canvas{height:var(--stage-h);flex:none;padding:18px;position:relative}.canvas svg{touch-action:none;width:calc(100% - 36px);height:calc(100% - 36px);display:block;position:absolute;top:18px;left:18px}.bag .logo{cursor:grab}.bag.focused:not([data-trim-sel]) [data-part]:not(.sel):not(.logo){opacity:.55;transition:opacity .2s}.views #btnFit{margin-left:6px}.canvas.dragging .bag .logo{cursor:grabbing}.canvas:focus-visible{outline-offset:-2px;outline:2px solid}.statusbar{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;gap:18px;padding:8px 14px;font-size:12px;display:flex}.statusbar b{color:var(--fg);font-variant-numeric:tabular-nums;font-weight:600}.inspector h3 span{color:var(--muted);font-style:italic}.spaced{margin-top:8px}.swatches{grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 6px;display:grid}.swatch{cursor:pointer;text-align:left;color:var(--fg);background:0 0;border:2px solid #0000;border-radius:10px;padding:4px}.swatch:hover{border-color:var(--line-strong)}.swatch[aria-pressed=true]{border-color:var(--accent)}.swatch .chip{border:1px solid var(--line-strong);border-radius:7px;height:46px}.swatch .nm{font:500 11px var(--ui);margin-top:5px;line-height:1.2;display:block}.swatch .ref{font:10px var(--mono);color:var(--muted);margin-top:1px;display:block}.swatch .swatch-note{color:var(--warn);margin-top:2px;font-size:10px;font-style:italic;line-height:1.2;display:block}.swatches.foils{grid-template-columns:repeat(5,1fr);gap:6px;margin-top:6px}.swatches.foils .chip{height:28px}.swatches.foils .nm{margin-top:3px;font-size:10px}.field{flex-direction:column;gap:4px;margin-top:10px;display:flex}.field label,.field .lbl{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:600}.field input[type=text],.field input[type=number]{font:13px var(--ui);border:1px solid var(--line-strong);background:var(--panel);color:var(--fg);border-radius:7px;padding:7px 9px}.field .btn{padding:8px}.row{gap:8px;display:flex}.row>*{flex:1;min-width:0}.readout{background:var(--panel-2);border-radius:8px;grid-template-columns:1fr auto;gap:4px 10px;margin-top:10px;padding:10px;font-size:12px;display:grid}.readout b{font-variant-numeric:tabular-nums;font-weight:600}.upload{border:1px dashed var(--line-strong);text-align:center;color:var(--muted);cursor:pointer;border-radius:8px;margin-top:8px;padding:12px;font-size:12px;display:block}.upload input{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.upload{position:relative}.upload:focus-within{outline:2px solid var(--accent);outline-offset:2px}.error{color:var(--warn);margin-top:8px;font-size:12px}.seg{border:1px solid var(--line-strong);border-radius:8px;display:flex;overflow:hidden}.seg button{font:500 12px var(--ui);color:var(--muted);cursor:pointer;background:0 0;border:0;flex:1;padding:6px}.seg button[aria-pressed=true]{background:var(--fg);color:var(--bg)}.note{color:var(--muted);margin-top:10px;font-size:12px}a.btn{text-decoration:none;display:inline-block}@media (width<=900px){.bench{grid-template-columns:1fr}.col{border-right:0;border-bottom:1px solid var(--line)}.stage{--stage-h:auto;position:relative}.canvas{aspect-ratio:1;height:auto;max-height:75svh;padding:8px}.canvas svg{width:calc(100% - 16px);height:calc(100% - 16px);top:8px;left:8px}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.confirm{align-items:center;gap:6px;display:flex}.save-status{color:var(--muted);font-size:12px}.save-status.error{color:var(--warn)}.error{color:var(--warn);padding:10px 18px 0}.lib-section h2:focus{outline:none}.export-status{min-height:1.4em;color:var(--muted);margin:0;padding:4px 16px 0;font-size:12px}.export-status:empty{min-height:0;padding:0}.sheet{color:#201815;border:1px solid var(--line);font-family:var(--ui);box-shadow:var(--shadow);background:#fbf9f4;margin:18px;padding:26px 30px}.sheet h2,.sheet h3{color:#201815}.sheet h2{font-size:28px}.sheet .hd{border-bottom:2px solid #201815;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-bottom:16px;padding-bottom:10px;display:flex}.sheet .hd .eyebrow{color:#6b5c4e}.sheet .hd .sub{color:#6b5c4e;font-size:12px}.sheet .hd .meta{color:#6b5c4e;text-align:right;font-size:11px;line-height:1.5}.sheet .drawings{grid-template-columns:1.3fr 1fr 1fr;align-items:end;gap:14px;display:grid}.sheet .drawings figure{margin:0}.sheet .drawings svg{width:100%;height:auto;display:block}.sheet .drawings figcaption{color:#6b5c4e;letter-spacing:.08em;text-transform:uppercase;margin-top:4px;font-size:11px}.sheet .drawings .dim{fill:#6b5c4e}.sheet .drawings .dimline{stroke:#6b5c4e}.sheet table{border-collapse:collapse;width:100%;margin-top:14px;font-size:12px}.sheet th{text-align:left;letter-spacing:.1em;text-transform:uppercase;color:#6b5c4e;border-bottom:1px solid #201815;padding:6px;font-size:10px}.sheet td{vertical-align:middle;border-bottom:1px solid #e3dbcd;padding:7px 6px}.sheet td.ref{font-family:var(--mono);font-size:11px}.sheet td .chip{vertical-align:middle;border:1px solid #00000040;border-radius:5px;width:22px;height:22px;margin-right:8px;display:inline-block}.sheet .two{grid-template-columns:1fr 1fr;gap:18px;margin-top:16px;display:grid}.sheet .spec{margin:6px 0 0;font-size:12px;line-height:1.6}.sheet .spec dt{float:left;clear:left;width:150px;font-weight:600}.sheet .spec dd{margin:0 0 0 150px}.sheet .spec .pair{display:contents}.sheet .tableScroll{overflow-x:auto}@media (width<=900px){.sheet .drawings,.sheet .two{grid-template-columns:1fr}.sheet{margin:10px;padding:16px}.sheet .spec dt{float:none;width:auto}.sheet .spec dd{margin:0 0 6px}}.ways{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;padding:14px 0 0;display:grid}.ways .card .m{line-height:1.4}.lib-section:has(.ways):last-child{padding-bottom:18px}.ways .card>.btn{margin-top:auto}.ways{margin:0;list-style:none}.signin{place-items:center;min-height:100vh;padding:16px;display:grid}.signin-card{flex-direction:column;gap:14px;width:min(360px,100%);padding:28px;display:flex}.signin-card .field{flex-direction:column;gap:4px;display:flex}.signin-card input{font:14px var(--ui);border:1px solid var(--line-strong);background:var(--bg);color:var(--fg);border-radius:8px;padding:8px 10px}.signin-card .btn{align-self:flex-start}.signin-error{color:var(--warn);margin:0;font-size:13px}.profile-menu{position:relative}.profile-menu summary{align-items:center;gap:8px;list-style:none;display:flex}.profile-menu summary::-webkit-details-marker{display:none}.profile-menu .avatar{background:var(--accent-soft);width:22px;height:22px;color:var(--fg);border-radius:50%;place-items:center;font-size:11px;display:grid}.profile-pop{z-index:20;background:var(--panel);border:1px solid var(--line);min-width:180px;box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:8px;padding:12px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.profile-pop .m{color:var(--muted);font-size:11px}.fittings{gap:5px;margin:8px 0 0;padding:0;list-style:none;display:grid}.fittings label{cursor:pointer;align-items:baseline;gap:8px;font-size:13px;display:flex}.fittings label.noroom{color:var(--muted);cursor:default}.fittings input{margin:0;position:relative;top:1px}.fittings .fitting-note{color:var(--muted)}.canvas[hidden]{display:none}.canvas3d{width:100%;height:var(--stage-h);flex:none;min-height:300px;position:relative}@media (width<=900px){.canvas3d{aspect-ratio:4/3;height:auto;max-height:78svh}}.canvas.loading{color:var(--muted);font-size:13px}.controls3d{flex-wrap:wrap;gap:6px;display:flex;position:absolute;bottom:12px;left:12px}.controls3d .btn{background:var(--panel)}.controls3d .btn[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.canvas3d.failed{color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:16px;font-size:13px;display:flex}.canvas3d.failed p{margin:0}.canvas3d.failed .actions{gap:8px;display:flex}.canvas3d>[aria-roledescription="3D preview"]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.controls3d .btn:disabled,.controls3d .btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.controls3d .save-status{color:var(--muted);align-self:center;margin:0;font-size:12px}.controls3d .save-status.error{color:var(--warn)}.controls3d .save-status:not(:empty){background:var(--panel);border-radius:6px;padding:4px 8px}.moving{min-height:100vh;color:var(--muted);place-items:center;margin:0;font-size:14px;display:grid}.move-notice{background:var(--panel);border-bottom:1px solid var(--line);color:var(--fg);margin:0;padding:10px 18px;font-size:13px}.bag[data-trim-sel]{--trim-veil:.72;--trim-fade:.3;--trim-halo:.45}.bag[data-trim-sel] [data-layer=shade]{fill:var(--bg);fill-opacity:var(--trim-veil)}.bag[data-trim-sel] [data-layer=shade-stroke]{stroke:var(--bg);stroke-opacity:var(--trim-veil)}.bag[data-trim-sel] .logo{opacity:var(--trim-fade)}.bag:is([data-trim-sel=stitch],[data-trim-sel=hardware]) [data-trim=edge],.bag:is([data-trim-sel=edge],[data-trim-sel=hardware]) [data-trim=stitch]{stroke-opacity:var(--trim-fade)}.bag:is([data-trim-sel=stitch],[data-trim-sel=edge]) [data-trim=hardware]{opacity:var(--trim-fade)}.bag [data-halo]{stroke:var(--accent);stroke-opacity:var(--trim-halo)}.bag[data-trim-sel=hardware] [data-trim=hardware]{filter:drop-shadow(0 0 calc(2.5px * var(--trim-scale,1)) var(--accent))}@media (prefers-contrast:more){.bag[data-trim-sel]{--trim-veil:.85;--trim-fade:.2;--trim-halo:1}.bag [data-halo=edge]{stroke:var(--fg)}.bag[data-trim-sel=hardware] [data-trim=hardware]{filter:drop-shadow(0 0 calc(1.2px * var(--trim-scale,1)) var(--fg))}}@media (prefers-reduced-transparency:reduce){.bag[data-trim-sel]{--trim-veil:.9}}@font-face{font-family:Logo Cormorant;src:url(/fonts/cormorant.woff2)format("woff2");font-weight:500;font-style:normal;font-display:block}@font-face{font-family:Logo Playfair;src:url(/fonts/playfair.woff2)format("woff2");font-weight:500;font-style:normal;font-display:block}@font-face{font-family:Logo Cinzel;src:url(/fonts/cinzel.woff2)format("woff2");font-weight:500;font-style:normal;font-display:block}@font-face{font-family:Logo Marcellus;src:url(/fonts/marcellus.woff2)format("woff2");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Logo Jost;src:url(/fonts/jost.woff2)format("woff2");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Logo Pinyon;src:url(/fonts/pinyon.woff2)format("woff2");font-weight:400;font-style:normal;font-display:block}.faces{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px;margin-top:2px;display:grid}.face-btn{border:1px solid var(--line);background:var(--panel);min-width:0;color:var(--fg);cursor:pointer;text-align:center;border-radius:9px;flex-direction:column;align-items:stretch;gap:2px;padding:6px 6px 5px;display:flex}.face-btn:hover{border-color:var(--line-strong)}.face-btn[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--bg)}@media (prefers-reduced-motion:no-preference){.face-btn{transition:border-color .15s}}.face-box{justify-content:center;align-items:center;height:38px;display:flex;overflow:clip visible;container-type:inline-size}.face{white-space:nowrap;font-kerning:none;font-variant-ligatures:none;line-height:1;font-size:calc(max(5px, min(13px, 94cqi / var(--face-ratio))) * var(--face-k));display:block}.face-btn .nm{font:500 10.5px var(--ui);color:var(--muted);letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap;line-height:1.2;overflow:hidden}.face-btn[aria-pressed=true] .nm{color:var(--fg)}.face-note{margin-top:6px;font-size:11.5px;line-height:1.35}.face-note .family{color:var(--fg);font-weight:500}.face-loading{font-style:italic;display:block}.logo-size{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:6px;font-size:12px}.logo-warn{color:var(--warn)}.logo-warn:empty{margin:0}.modelshot{border-bottom:1px solid var(--line);background:var(--panel-2);padding:12px 16px 16px}.modelshot .ms-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.modelshot .ms-body{grid-template-columns:minmax(220px,300px) 1fr;align-items:start;gap:20px;display:grid}.modelshot .ms-controls{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.modelshot .ms-scenes{flex-wrap:wrap;gap:6px;display:flex}.modelshot .ms-chip{font:500 12px var(--ui);border:1px solid var(--line-strong);background:var(--panel);color:var(--muted);cursor:pointer;border-radius:999px;padding:6px 12px}.modelshot .ms-chip:hover:not([aria-disabled=true]){border-color:var(--accent)}.modelshot .ms-chip[aria-pressed=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}.modelshot .ms-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.modelshot [aria-disabled=true]{opacity:.55;cursor:default}.modelshot .m{color:var(--muted);font-size:12px}.modelshot .ms-stage{flex-direction:column;gap:10px;min-height:24px;display:flex}.modelshot .ms-status{color:var(--muted);text-align:left;font-size:13px}.modelshot .ms-placeholder{aspect-ratio:3/4;background:var(--line);border-radius:10px;width:min(100%,300px)}.modelshot .ms-result{flex-direction:column;align-items:flex-start;gap:10px;margin:0;display:flex}.modelshot .ms-result img{border:1px solid var(--line);border-radius:10px;max-width:100%;max-height:min(560px,70vh);display:block}@media (prefers-reduced-motion:no-preference){.modelshot .ms-placeholder{animation:1.4s ease-in-out infinite ms-pulse}}@keyframes ms-pulse{50%{opacity:.45}}@media (width<=900px){.modelshot .ms-body{grid-template-columns:1fr}}.modelshot .ms-status.error,.modelshot .ms-stale{color:var(--warn)}@media (width<=600px){.modelshot .ms-chip{min-height:40px;padding:8px 14px}}
