.studio3d{--booth: var(--ink-950);--surface-1: var(--ink-900);--card: var(--ink-850);--raised: var(--ink-800);--line: var(--ink-700);--boundary: var(--ink-550);--studio-paper: var(--ink-100);--dim: var(--ink-300);--faint: var(--ink-500);--accent: var(--hud);--accent-ink: var(--hud-ink);--accent-soft: var(--hud-deep);--danger: var(--hazard);--spatial: var(--prism);--spatial-text: var(--prism-tint);--measure: var(--glacier);--production: var(--heatgun);--complete: var(--cured);--cut-section: 8px;--cut-control: 6px;--cut-tab: 4px;--font-body: "Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-cond: "Chakra Petch", "Avenir Next Condensed", system-ui, sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", ui-monospace, Menlo, Consolas, monospace;display:flex;flex-direction:column;flex:1;min-height:0;background:var(--booth);color:var(--studio-paper);font-family:var(--font-body);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}.studio3d-page{position:relative;z-index:10;display:flex;flex-direction:column;min-height:calc(100dvh - 4rem)}@media(min-width:920px){.studio3d-page{height:calc(100dvh - 4rem)}}.studio3d .topbar{display:flex;align-items:center;justify-content:flex-end;min-height:54px;padding:8px 16px;background:var(--surface-1);border-bottom:1px solid var(--line);flex:none}.studio3d .topbar-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-width:0}.studio3d .stage{display:flex;flex:1;min-height:0}.studio3d .viewport{flex:1;min-width:0;position:relative}.studio3d .scene-loader{font-family:var(--font-cond);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);white-space:nowrap}.studio3d .scene-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;color:var(--dim)}.studio3d .sidebar{width:344px;flex:none;background:var(--surface-1);border-left:1px solid var(--line);overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:10px;counter-reset:sec}.studio3d .side-section{--stage: var(--boundary);--cut-size: var(--cut-section);position:relative;isolation:isolate;flex:none;padding:14px 16px 16px;background:var(--card);clip-path:var(--cut)}.studio3d .side-section:before,.studio3d .side-section:after{content:"";position:absolute;z-index:-1;clip-path:var(--cut);pointer-events:none}.studio3d .side-section:before{inset:0;background:linear-gradient(to bottom,var(--stage) 0 3px,var(--line) 3px);transition:background .2s ease}.studio3d .side-section:after{inset:2px 1px 1px;background-color:inherit}.studio3d .side-section:hover:before{background:linear-gradient(to bottom,var(--stage) 0 3px,var(--boundary) 3px)}.studio3d .sec-vehicle{--stage: var(--spatial)}.studio3d .sec-panel{--stage: var(--measure)}.studio3d .sec-finish{--stage: var(--accent)}.studio3d .sec-decals{--stage: var(--production)}.studio3d .sec-estimate{--stage: var(--complete)}.studio3d .eyebrow{margin:0 0 10px;font-family:var(--font-cond);font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);display:flex;align-items:center;gap:8px}.studio3d .eyebrow:before{content:"";width:8px;height:8px;background:var(--stage)}.studio3d .eyebrow:after{counter-increment:sec;content:counter(sec,decimal-leading-zero);content:counter(sec,decimal-leading-zero) / "";margin-left:auto;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--dim)}.studio3d .hint{color:var(--dim);font-size:12.5px;margin:6px 0}.studio3d .hint.armed{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px dashed var(--production);--cut-size: var(--cut-control);clip-path:var(--cut);padding:8px 10px;color:var(--production)}.studio3d .dim{color:var(--dim)}.studio3d .num{font-family:var(--font-mono);font-weight:600;font-variant-numeric:tabular-nums;color:var(--measure)}.studio3d .row{display:flex;gap:8px;align-items:center}.studio3d .vehicle-name{font-size:15px;font-weight:600;overflow-wrap:anywhere}.studio3d .panel-title{font-size:15px;font-weight:600;display:flex;gap:8px;align-items:baseline}.studio3d .tag{font-family:var(--font-cond);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);border:1px solid var(--line);border-radius:0;padding:1px 6px}.studio3d .readout{font-size:20px;margin:6px 0 2px}.studio3d .btn{font-family:var(--font-cond);font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--studio-paper);background:var(--raised);border:1px solid var(--boundary);--cut-size: var(--cut-control);clip-path:var(--cut);padding:8px 12px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .12s ease,background .12s ease}.studio3d .btn:hover:not(:disabled){border-color:var(--accent)}.studio3d .btn:disabled{opacity:.45;cursor:default}.studio3d .btn.accent{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.studio3d .btn.accent:hover:not(:disabled){filter:brightness(1.08)}.studio3d .btn.ghost{background:transparent;border-color:var(--boundary)}.studio3d .btn.ghost:hover,.studio3d .btn.ghost.danger{color:var(--danger);border-color:var(--danger)}.studio3d input[type=number],.studio3d input[type=text],.studio3d select{background:var(--raised);color:var(--studio-paper);border:1px solid var(--boundary);--cut-size: var(--cut-control);clip-path:var(--cut);padding:7px 9px;min-height:44px;font:inherit;min-width:0}.studio3d input[type=number]{width:110px;font-family:var(--font-mono);font-size:13px;font-variant-numeric:tabular-nums}.studio3d select{cursor:pointer}.studio3d input:focus-visible,.studio3d select:focus-visible,.studio3d .btn:focus-visible,.studio3d .tab:focus-visible,.studio3d .swatch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.studio3d .field{display:flex;align-items:center;min-height:44px;max-width:100%;gap:8px;font-family:var(--font-cond);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--spatial-text)}.studio3d .field input[type=checkbox]{accent-color:var(--spatial);width:18px;height:18px}.studio3d .tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.studio3d .tab{font-family:var(--font-cond);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);background:none;border:1px solid transparent;--cut-size: var(--cut-tab);clip-path:var(--cut);padding:4px 10px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.studio3d .tab:hover{color:var(--studio-paper)}.studio3d .tab.active{color:var(--studio-paper);background:var(--raised);border-color:var(--accent)}.studio3d .swatches{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.studio3d .swatch{position:relative;aspect-ratio:1.55;--cut-size: var(--cut-control);clip-path:var(--cut);border:1px solid var(--boundary);background-color:var(--chip);cursor:pointer;overflow:hidden;padding:0;transition:transform .12s ease,border-color .12s ease}@media(hover:hover){.studio3d .swatch:hover{transform:translateY(-2px);border-color:var(--dim)}}.studio3d .swatch.active{border-color:var(--accent)}@media(prefers-reduced-motion:reduce){.studio3d .swatch,.studio3d .swatch:hover{transition:none;transform:none}.studio3d .side-section:before{transition:none}}.studio3d .swatch:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none}.studio3d .sw-gloss:after{background:linear-gradient(115deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,.08) 28%,transparent 45%,rgba(0,0,0,.25) 100%)}.studio3d .sw-satin:after{background:linear-gradient(115deg,rgba(255,255,255,.22) 0%,transparent 50%,rgba(0,0,0,.2) 100%)}.studio3d .sw-matte:after{background:linear-gradient(180deg,#ffffff0d,#0000001f)}.studio3d .sw-metal:after{background:linear-gradient(115deg,rgba(255,255,255,.5),transparent 40%,rgba(0,0,0,.3)),repeating-linear-gradient(90deg,rgba(255,255,255,.06) 0 1px,transparent 1px 3px)}.studio3d .sw-chrome:after{background:linear-gradient(180deg,#ffffffd9,#ffffff40 34%,#00000073,#fff3 66%,#00000059);mix-blend-mode:overlay}.studio3d .sw-flip:after{background:linear-gradient(115deg,rgba(0,255,200,.45) 0%,transparent 40%,transparent 60%,rgba(255,0,180,.45) 100%);mix-blend-mode:screen}.studio3d .sw-carbon:after{background:linear-gradient(115deg,rgba(255,255,255,.3),transparent 45%),repeating-linear-gradient(45deg,rgba(255,255,255,.09) 0 3px,transparent 3px 6px),repeating-linear-gradient(-45deg,rgba(255,255,255,.07) 0 3px,transparent 3px 6px)}.studio3d .swatch-label{position:absolute;left:0;right:0;bottom:0;padding:3px 5px;font-family:var(--font-cond);font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;text-align:left;color:var(--ink-100);background:linear-gradient(transparent,#000000b8);text-shadow:0 1px 2px rgba(0,0,0,.6);z-index:1}.studio3d .placing{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px dashed var(--production);--cut-size: var(--cut-control);clip-path:var(--cut);padding:8px 10px;color:var(--production);font-family:var(--font-cond);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.studio3d .decal-row{border:1px solid var(--line);--cut-size: var(--cut-section);clip-path:var(--cut);padding:10px;margin-top:10px;background:var(--raised)}.studio3d .decal-head{display:flex;align-items:center;gap:8px}.studio3d .decal-name{font-weight:600;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studio3d .x{background:none;border:0;color:var(--dim);font-size:18px;line-height:1;cursor:pointer;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0}.studio3d .x:hover{color:var(--danger)}.studio3d .slider{display:block;margin-top:8px;font-size:12px;color:var(--dim)}.studio3d .slider input{width:100%;accent-color:var(--production)}.studio3d .estimate{margin-top:auto}.studio3d .ticket{border-top:1px dashed var(--line);padding-top:8px}.studio3d .ticket-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;padding:3px 0;font-size:13px;font-variant-numeric:tabular-nums}.studio3d .ticket-row .num{font-size:12px}.studio3d .ticket-controls{margin:10px 0}.studio3d .ticket-controls label{display:flex;align-items:center;gap:6px;font-family:var(--font-cond);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}.studio3d .ticket-controls input{width:70px}.studio3d .ticket-total{display:flex;flex-direction:column;gap:2px;border-top:1px dashed var(--line);padding-top:10px;font-variant-numeric:tabular-nums}.studio3d .ticket-total span{color:var(--dim);font-size:12.5px;font-family:var(--font-mono)}.studio3d .ticket-total strong{font-family:var(--font-mono);font-size:1.125rem;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--complete)}.studio3d .calibrate .row{margin-top:6px}.studio3d .calibrate input{flex:1}@media(max-width:919px){.studio3d .stage{flex-direction:column}.studio3d .viewport{flex:none;height:52dvh;min-height:min(20rem,60dvh)}.studio3d .sidebar{width:100%;flex:none;overflow-y:visible;border-left:0;border-top:1px solid var(--line)}.studio3d .topbar{justify-content:flex-start;padding:8px 12px}}@font-face{font-family:Chakra Petch;src:url(/assets/fonts/chakra-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Chakra Petch;src:url(/assets/fonts/chakra-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Archivo;src:url(/assets/fonts/archivo-var.woff2) format("woff2-variations");font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/assets/fonts/plexmono-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}:root{--hud: #2DE1C2;--hud-deep: #0E7A68;--hud-ink: #052821;--prism: #9A4DFF;--prism-tint: #BE9BFF;--prism-deep: #6E2ED6;--glacier: #7FA6FF;--glacier-deep: #2A55C8;--heatgun: #F06CC0;--heatgun-deep: #A8237A;--cured: #57E389;--cured-deep: #0F7A45;--hazard: #FF5D5D;--hazard-deep: #C4131F;--void: #07090C;--ink-950: #07090C;--ink-900: #0B0E12;--ink-850: #12161D;--ink-800: #171C25;--ink-700: #262E3A;--ink-600: #39424E;--ink-550: #626C7A;--ink-500: #545E6B;--ink-400: #737E8D;--ink-300: #8A94A3;--ink-200: #B4BDC9;--ink-100: #EAF0F6;--ink-050: #F4F7FA;--paper: #FFFFFF;--cut-size: 14px;color-scheme:dark}*,:before,:after{--cut: polygon( var(--cut-size) 0, 100% 0, 100% calc(100% - var(--cut-size)), calc(100% - var(--cut-size)) 100%, 0 100%, 0 var(--cut-size) );box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--void);color:var(--ink-100);font-family:Archivo,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none}#root{display:flex;flex-direction:column}:focus-visible{outline:2px solid var(--hud);outline-offset:2px}::selection{background:var(--hud);color:var(--hud-ink)}.shell-head{display:flex;align-items:center;gap:16px;padding:10px 16px;background:var(--ink-900);border-bottom:1px solid var(--ink-700);flex:none}.shell-brand{display:inline-flex;align-items:center;gap:9px;color:var(--ink-100);text-decoration:none;font-family:Chakra Petch,system-ui,sans-serif;font-weight:700;letter-spacing:.04em;font-size:.95rem}.shell-brand b{color:var(--hud);font-weight:700}.shell-tag{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-300);padding:3px 8px;background:var(--ink-800);border:1px solid var(--ink-700);--cut-size: 4px;clip-path:var(--cut)}.shell-spacer{flex:1}.shell-link{font-size:.85rem;color:var(--ink-300);text-decoration:none;padding:8px 12px;border:1px solid var(--ink-600);--cut-size: 6px;clip-path:var(--cut)}.shell-link:hover{color:var(--hud);border-color:var(--ink-550)}.shell-link.primary{background:var(--hud);color:var(--hud-ink);border-color:var(--hud);font-weight:700}.scene-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:24px;background:var(--void);color:var(--ink-300)}.studio-notice{color:var(--hazard);font-size:.8rem;border:1px solid var(--hazard-deep);background:#ff5d5d14;padding:6px 10px;--cut-size: 4px;clip-path:var(--cut)}body.embed .shell-head,body.embed .sidebar{display:none}body.embed .topbar{padding:6px 10px}body.embed .full-only{display:none}body.embed .stage{min-height:0}.embed-strip{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--ink-900);border-top:1px solid var(--ink-700);flex:none}.embed-label{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-300)}.embed-chip{width:24px;height:24px;padding:0;border:1px solid rgba(234,240,246,.26);cursor:pointer;--cut-size: 5px;clip-path:var(--cut);transition:transform .15s ease,border-color .15s ease}.embed-chip:hover:not(:disabled){transform:translateY(-2px);border-color:var(--hud)}.embed-chip.on{border-color:var(--hud);border-width:2px}.embed-chip:disabled{opacity:.35;cursor:default}.embed-open{margin-left:auto;font-size:.78rem;font-weight:700;color:var(--hud-ink);background:var(--hud);text-decoration:none;padding:7px 12px;--cut-size: 5px;clip-path:var(--cut);white-space:nowrap}
