:root{--paper:#eef1f6;--surface:#fff;--ink:#0e1b3d;--ink-2:#4a567a;--line:#d5dbe8;--cobalt:#2447f9;--cobalt-deep:#1730b8;--cobalt-soft:#7d93ff;--cobalt-wash:#e4e9ff;--pei:#e2b33c;--pei-wash:#fbf1d3;--stage:#0b1533;--ok:#137a52;--ok-wash:#def3ea;--danger:#c2321f;--danger-wash:#fbe5e1;--violet:#6f4bff;--amber:#f08a3c;--grad-cool:linear-gradient(135deg, #2447f9 0%, #6f4bff 100%);--grad-hot:linear-gradient(135deg, #f4c752 0%, #f08a3c 100%);--grad-ink:linear-gradient(100deg, #0e1b3d 0%, #1c2f96 48%, #4a4dff 78%, #8a5bff 100%);--glow-cool:0 10px 30px -10px #3a48f98c;--shadow-card:0 1px 0 #fffc inset, 0 24px 48px -28px #1730b847, 0 2px 6px -2px #0e1b3d0f;--r-stage:22px;--r-card:14px;--r-ctl:9px;--r-slab:6px;color:var(--ink);background:var(--paper);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;font-family:Archivo,system-ui,sans-serif;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(52rem 34rem at 88% -8rem, #6f4bff33, transparent 68%), radial-gradient(46rem 30rem at -6% -6rem, #2447f929, transparent 66%), radial-gradient(34rem 22rem at 58% 2rem, #f4c75229, transparent 70%), var(--paper);background-repeat:no-repeat;flex-direction:column;min-height:100vh;margin:0;display:flex}#root{display:contents}h1,h2,h3,p,dl,dd,ol,ul,fieldset{margin:0;padding:0}fieldset{border:0;min-width:0}ol,ul{list-style:none}a{color:var(--cobalt-deep);text-underline-offset:3px}button,input,select,textarea{font:inherit;color:inherit}small{color:var(--ink-2);font-size:.8125rem;font-weight:400}.specs,.price-lines,.table,.stage-bar,.nameplate,.plain-list{letter-spacing:.005em;font-stretch:87%}:focus-visible{outline:3px solid var(--cobalt-soft);outline-offset:2px}h1{letter-spacing:-.02em;font-size:clamp(1.75rem,3.4vw,2.5rem);font-weight:750;font-stretch:118%;line-height:1.08}h2{letter-spacing:-.01em;font-size:1.125rem;font-weight:700;font-stretch:112%;line-height:1.25}h3{font-size:1rem;font-weight:700}.muted{color:var(--ink-2);font-size:.9375rem}.topbar{z-index:20;-webkit-backdrop-filter:saturate(1.6)blur(14px);background:#eef1f6b8;border-bottom:1px solid #d5dbe899;justify-content:space-between;align-items:center;gap:16px;padding:14px clamp(16px,4vw,48px);display:flex;position:sticky;top:0}.brand{color:var(--ink);letter-spacing:-.01em;align-items:center;gap:10px;font-size:1.125rem;font-weight:800;font-stretch:125%;text-decoration:none;display:inline-flex}.topbar nav{gap:clamp(12px,2.5vw,28px);font-size:.9375rem;font-weight:500;display:flex}.topbar nav a{color:var(--ink);border-bottom:2px solid #0000;padding:6px 0;text-decoration:none}.topbar nav a:hover{border-image:var(--grad-hot) 1}.page{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:8px clamp(16px,4vw,48px) 72px}.page.narrow{align-content:start;gap:20px;max-width:560px;padding-top:32px;display:grid}.footer{border-top:1px solid var(--line);color:var(--ink-2);justify-content:space-between;gap:16px;padding:20px clamp(16px,4vw,48px);font-size:.875rem;display:flex}.footer a{color:var(--ink-2)}.hero{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:18px clamp(24px,5vw,64px);padding:clamp(16px,3vw,40px) 0 clamp(20px,3vw,36px);display:grid}.hero h1,.hero .lede{grid-column:1}.nameplate{grid-area:1/2/span 2;align-self:end;gap:0;min-width:15rem;display:grid}.nameplate dt{color:var(--ink-2);font-size:.75rem;font-weight:500}.nameplate dd{font-size:.9375rem;font-weight:650}.nameplate>div{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:20px;padding:9px 0;display:flex}.nameplate>div:first-child{border-top:2px solid;border-image:linear-gradient(90deg, var(--ink), var(--cobalt) 60%, var(--violet)) 1}.nameplate>div:first-child dd{color:var(--cobalt-deep)}.hero h1{letter-spacing:-.035em;font-size:clamp(1.6rem,5.6vw,4.25rem);font-weight:800;font-stretch:125%;line-height:1}.sliced{background:repeating-linear-gradient(to bottom, transparent 0 .088em, #ffffff38 .088em .112em), var(--grad-ink);color:#0000;-webkit-background-clip:text;background-clip:text}.lede{color:var(--ink-2);max-width:62ch;font-size:1.0625rem}.bench{grid-template-columns:minmax(0,1.55fr) minmax(340px,1fr);align-items:start;gap:20px;display:grid}.stage{border-radius:var(--r-stage);background:radial-gradient(70% 45% at 50% 108%, #f08a3c4d, transparent 70%), radial-gradient(60% 50% at 12% 0%, #6f4bff73, transparent 70%), radial-gradient(70% 55% at 90% 8%, #2447f980, transparent 72%), var(--stage);color:#fff;isolation:isolate;height:min(72vh,680px);min-height:420px;position:sticky;top:78px;overflow:hidden;box-shadow:0 40px 80px -40px #1730b88c,inset 0 0 0 1px #ffffff0f}.stage.mini{border-radius:var(--r-card);height:320px;min-height:0;margin-top:16px;position:relative;top:0}.stage.is-drag{outline:3px dashed var(--pei);outline-offset:-10px}.viewer{position:absolute;inset:0}.viewer canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.viewer canvas:active{cursor:grabbing}.drop{pointer-events:none;background:linear-gradient(#0000,#0b1533eb 60%);justify-items:start;gap:10px;padding:clamp(20px,4vw,36px);display:grid;position:absolute;inset:auto 0 0}.drop>*{pointer-events:auto}.drop-title{letter-spacing:-.015em;font-size:clamp(1.25rem,2.4vw,1.75rem);font-weight:700;font-stretch:118%}.drop p:not(.drop-title){color:#b9c3e6;max-width:48ch;font-size:.9375rem}.drop-actions{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.stage-bar{-webkit-backdrop-filter:blur(14px)saturate(1.4);background:#0b15338c;border:1px solid #ffffff1f;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:10px 10px 10px 16px;font-size:.875rem;display:flex;position:absolute;inset:auto 12px 12px}.stage-bar div{color:#b9c3e6;flex-wrap:wrap;gap:2px 16px;min-width:0;display:flex}.stage-bar b{color:#fff;text-overflow:ellipsis;white-space:nowrap;max-width:28ch;font-weight:600;overflow:hidden}.panel{border-radius:var(--r-stage);box-shadow:var(--shadow-card);background:linear-gradient(#fff 0%,#f8faff 100%);border:1px solid #d5dbe8cc;gap:20px;padding:clamp(18px,2.2vw,26px);display:grid}.panel:has(.panel-empty){box-shadow:none;background:0 0;border:0;padding:clamp(18px,2.2vw,26px) 0 0}.panel-empty{gap:14px;display:grid}.panel-empty h2{border-bottom:2px solid;border-image:linear-gradient(90deg, var(--ink), var(--cobalt) 60%, #6f4bff00) 1;padding-bottom:12px}.ticks{gap:0;display:grid}.ticks li{color:var(--ink-2);border-bottom:1px solid var(--line);padding:11px 0 11px 26px;position:relative}.ticks li:last-child{border-bottom:0}.ticks li:before{content:"";background:var(--grad-hot);border-radius:3px;width:14px;height:5px;position:absolute;top:1.15em;left:0}.field{gap:8px;display:grid}.field legend,label>span{justify-content:space-between;align-items:baseline;gap:8px;width:100%;margin-bottom:6px;font-size:.875rem;font-weight:600;display:flex}.field legend{margin-bottom:8px}.value{color:var(--ink-2);font-weight:500}.hint{color:var(--ink-2);font-size:.8125rem;line-height:1.45}label{display:block}.field.row{grid-template-columns:1fr 1fr;align-items:end;gap:12px}.field.row.three{grid-template-columns:repeat(3,1fr)}input:not([type=range],[type=checkbox]),select,textarea{border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface);width:100%;padding:10px 12px}input:hover,select:hover,textarea:hover{border-color:#b3bdd6}input:not([type=range],[type=checkbox]):focus,select:focus,textarea:focus{border-color:var(--cobalt);outline:none;box-shadow:0 0 0 4px #2447f924}textarea{resize:vertical;min-height:44px}input[type=range]{width:100%;accent-color:var(--cobalt);height:28px;margin:0}.segmented{background:var(--paper);border-radius:12px;grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:4px;display:grid}.segmented button{border-radius:var(--r-ctl);cursor:pointer;color:var(--ink-2);background:0 0;border:0;padding:9px 6px;font-size:.9375rem;font-weight:600}.segmented button:hover{color:var(--ink)}.segmented button[aria-pressed=true]{background:var(--grad-cool);color:#fff;box-shadow:var(--glow-cool)}.swatches{flex-wrap:wrap;gap:10px;display:flex}.swatches button{cursor:pointer;border:1px solid #0e1b3d40;border-radius:50%;width:34px;height:34px;padding:0}.swatches button[aria-pressed=true]{box-shadow:0 0 0 3px var(--surface), 0 0 0 5px var(--cobalt)}.presets{flex-wrap:wrap;gap:6px;display:flex}.presets button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;padding:4px 12px;font-size:.8125rem;font-weight:500}.presets button[aria-pressed=true]{background:linear-gradient(var(--cobalt-wash), var(--cobalt-wash)) padding-box, var(--grad-cool) border-box;color:var(--cobalt-deep);border-color:#0000}.check{cursor:pointer;align-items:flex-start;gap:10px;font-size:.9375rem;display:flex}.check input{width:18px;height:18px;accent-color:var(--cobalt);flex:none;margin:3px 0 0}.check span{margin:0;font-weight:500;display:inline}.btn{border-radius:var(--r-ctl);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:.9375rem;font-weight:650;text-decoration:none;transition:background-color .12s,border-color .12s;display:inline-flex}.btn.small{padding:7px 12px;font-size:.8125rem}.btn.block{width:100%;padding-block:14px;font-size:1rem}.btn.primary{background:var(--grad-cool);color:#fff;box-shadow:var(--glow-cool), 0 1px 0 #ffffff40 inset;background-position:0%;background-size:160% 160%;transition:background-position .3s,box-shadow .2s,transform .12s}.btn.primary:hover{background-position:100%;box-shadow:0 14px 34px -10px #5a48ffb3,inset 0 1px #ffffff40}.btn.primary:active{transform:translateY(1px)}.btn.primary:disabled{box-shadow:none}.btn.ghost{background:var(--surface);border-color:var(--line);color:var(--ink)}.btn.ghost:hover{border-color:var(--ink)}.btn.ghost.danger{color:var(--danger)}.btn.ghost.danger:hover{border-color:var(--danger)}.btn.ghost-light{color:#fff;-webkit-backdrop-filter:blur(8px);background:#ffffff1a;border-color:#ffffff47}.btn.ghost-light:hover{background:#ffffff2e}.btn:disabled{opacity:.45;cursor:not-allowed}.back{color:var(--ink-2);cursor:pointer;background:0 0;border:0;justify-self:start;gap:6px;padding:0;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.back:before{content:"‹"}.back:hover{color:var(--ink)}.notice{border-radius:var(--r-ctl);background:var(--cobalt-wash);padding:12px 14px;font-size:.9375rem}.notice.danger{background:var(--danger-wash);color:#7d1d10}.notice.ok{background:var(--ok-wash);color:#0b4f35}.price{border-top:1px solid var(--line);gap:12px;padding-top:16px;transition:opacity .15s;display:grid}.price.is-busy{opacity:.55}.price-total{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.price-total span{font-size:.9375rem;font-weight:600}.price-total strong{letter-spacing:-.02em;background:var(--grad-ink);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(1.75rem,3vw,2.25rem);font-weight:800;font-stretch:118%;line-height:1.1}.price-lines{gap:0;font-size:.9375rem;display:grid}.price-lines>div{border-bottom:1px dashed var(--line);justify-content:space-between;gap:12px;padding:7px 0;display:flex}.price-lines>div:last-child{border-bottom:0}.price-lines dt small{margin-left:6px}.price-lines dd{white-space:nowrap;font-weight:600}.price-lines .sum{border-top:2px solid var(--ink);border-bottom:0;margin-top:4px;padding-top:10px;font-weight:700}.price-lines .sum dd{font-size:1.125rem;font-weight:800}.progress{border-radius:var(--r-ctl);background:var(--cobalt-wash);place-items:center;height:48px;display:grid;position:relative;overflow:hidden}.progress span{background:var(--grad-cool);opacity:.45;transition:width .2s;position:absolute;inset:0 auto 0 0}.progress em{font-size:.9375rem;font-style:normal;font-weight:650;position:relative}.details{gap:16px;display:grid}.band{gap:24px;padding-top:clamp(48px,7vw,88px);display:grid}.band>h2{letter-spacing:-.02em;border-bottom:2px solid;border-image:linear-gradient(90deg, var(--ink) 0%, var(--cobalt) 55%, #6f4bff00 100%) 1;padding-bottom:14px;font-size:clamp(1.375rem,2.4vw,1.875rem);font-stretch:118%}.steps{counter-reset:step;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:10px;display:grid}.steps li{counter-increment:step;padding:16px 16px calc(18px + var(--base,5px));border-radius:var(--r-card) var(--r-card) var(--r-slab) var(--r-slab);box-shadow:var(--shadow-card);background:linear-gradient(#fff,#f8faff);align-content:start;gap:6px;display:grid;position:relative;overflow:hidden}.steps li:after{content:"";height:var(--base,5px);background:linear-gradient(90deg,#a9b6ff 0%,#2447f9 45%,#6f4bff 70%,#f08a3c 90%,#f4c752 100%) 0 0/500% 100%;background-position:var(--pos,0%) 0;position:absolute;inset:auto 0 0}.steps li:first-child{--base:5px;--pos:0%}.steps li:nth-child(2){--base:10px;--pos:25%}.steps li:nth-child(3){--base:15px;--pos:50%}.steps li:nth-child(4){--base:20px;--pos:75%}.steps li:nth-child(5){--base:26px;--pos:100%}.steps li:before{content:counter(step);color:var(--ink);font-size:1.5rem;font-weight:800;font-stretch:125%;line-height:1}.steps p{color:var(--ink-2);font-size:.875rem}.materials{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0;display:grid}.materials article{align-content:start;gap:8px;padding:4px 24px 8px 0;display:grid}.materials article+article{border-left:1px solid var(--line);padding-left:24px}.materials h3{font-size:1.25rem;font-stretch:118%}.materials p{color:var(--ink-2);max-width:40ch;font-size:.9375rem}.dots{gap:6px;margin-top:4px;display:flex}.dots i{border:1px solid #0e1b3d33;border-radius:50%;width:16px;height:16px}.order-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;padding:24px 0;display:flex}.order-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.order-grid>section{align-content:start;gap:16px;display:grid}.stack{gap:16px;display:grid}.card{box-shadow:var(--shadow-card);border-radius:var(--r-card);background:linear-gradient(#fff 0%,#f8faff 100%);border:1px solid #d5dbe8cc;align-content:start;gap:16px;padding:clamp(16px,2vw,24px);display:grid}.card h2{overflow-wrap:anywhere}.specs{gap:0;font-size:.9375rem;display:grid}.specs>div{border-bottom:1px solid var(--paper);grid-template-columns:110px 1fr;gap:12px;padding:7px 0;display:grid}.specs dt{color:var(--ink-2)}.specs dd{overflow-wrap:anywhere;font-weight:500}.pre{white-space:pre-wrap}.order-actions{flex-wrap:wrap;gap:10px;display:flex}.layers{gap:5px;display:grid}.layer{border-radius:var(--r-slab);grid-template-columns:28px 1fr auto;align-items:center;gap:12px;min-height:52px;padding:12px 16px;display:grid}.layer-n{font-weight:800;font-stretch:125%}.layer-text{display:grid}.layer-text small{color:inherit;opacity:.8}.layer time{opacity:.8;white-space:nowrap;font-size:.8125rem}.layer.done{background:var(--grad-cool);color:#fff}.layer.now{background:var(--grad-hot);color:#2b1f00;padding-block:16px;box-shadow:0 14px 30px -14px #f08a3cb3}.layer.todo{color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line);background:0 0}.plain-list{display:grid}.plain-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding:10px 0;font-size:.9375rem;display:flex}.plain-list li:last-child{border-bottom:0}.plain-list li span:last-child{color:var(--ink-2);white-space:nowrap}.tabs{gap:4px;padding-bottom:12px;display:flex;overflow-x:auto}.tabs button{cursor:pointer;white-space:nowrap;color:var(--ink-2);background:0 0;border:0;border-radius:999px;padding:8px 12px;font-size:.875rem;font-weight:600}.tabs button span{opacity:.7;margin-left:4px;font-weight:500}.tabs button[aria-selected=true]{background:var(--grad-cool);color:#fff;box-shadow:var(--glow-cool)}.empty{text-align:center;color:var(--ink-2);background:var(--surface);border-radius:var(--r-card);border:1px dashed var(--line);padding:56px 16px}.table-wrap{background:var(--surface);border-radius:var(--r-card);box-shadow:var(--shadow-card);border:1px solid #d5dbe8cc;overflow-x:auto}.table{border-collapse:collapse;width:100%;min-width:820px;font-size:.9375rem}.table th{text-align:left;color:var(--ink-2);border-bottom:1px solid var(--line);padding:12px 16px;font-size:.8125rem;font-weight:600}.table td{border-bottom:1px solid var(--paper);vertical-align:top;padding:12px 16px}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#f7f9fc}.table small{display:block}.table .num{text-align:right;font-weight:600}.table th.num{font-weight:600}.clip{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.pill{background:var(--paper);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.8125rem;font-weight:600;display:inline-block}.pill.big{padding:6px 14px;font-size:.9375rem}.s-submitted{background:var(--pei-wash);color:#6b4e00}.s-quoted{background:var(--cobalt-wash);color:var(--cobalt-deep)}.s-approved{background:var(--ink);color:#fff}.s-printing{background:var(--grad-cool);color:#fff}.s-ready{background:var(--ok-wash);color:#0b4f35}.s-completed{background:var(--paper);color:var(--ink-2)}.s-cancelled{background:var(--danger-wash);color:#7d1d10}.filedrop{text-align:center;border:2px dashed var(--line);border-radius:var(--r-ctl);cursor:pointer;justify-items:center;gap:2px;padding:22px 16px;display:grid}.filedrop:hover{border-color:var(--cobalt)}.filedrop.has-file{border-style:solid;border-color:var(--ok);background:var(--ok-wash)}.filedrop b{overflow-wrap:anywhere;font-size:.9375rem}.filedrop span{color:var(--ink-2);width:auto;margin:0;font-size:.8125rem;font-weight:400;display:block}.settings{max-width:860px}.settings h1{padding:24px 0}.savebar{background:linear-gradient(to top, var(--paper) 70%, transparent);align-items:center;gap:16px;padding:14px 0;display:flex;position:sticky;bottom:0}@media (width<=960px){.bench,.order-grid,.hero{grid-template-columns:1fr}.nameplate{grid-area:auto/1;min-width:0;max-width:22rem}.stage{height:56vh;min-height:340px;position:relative;top:0}.steps{grid-template-columns:1fr}.materials article+article{border-left:0;border-top:1px solid var(--line);padding-left:0}}@media (width<=560px){.topbar nav a[href^="/#"]{display:none}.field.row.three{grid-template-columns:1fr 1fr}.specs>div{grid-template-columns:92px 1fr}.layer{grid-template-columns:22px 1fr}.layer time{grid-column:2}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
