:root{--bg: #0d0e10;--panel: #16171a;--card: #1d1f23;--raised: #25272c;--hover: #2d3036;--selected: #33363c;--line: rgb(255 255 255 / .07);--line-strong: rgb(255 255 255 / .12);--text: #ececee;--soft-text: #c4c7cc;--muted: #a3a7ae;--subtle: #8b8f97;--accent: #ff7a3d;--accent-hover: #ff8c56;--accent-soft: rgb(255 122 61 / .14);--accent-soft-text: #ffb08a;--accent-text: #1a0d05;--accent-grad: linear-gradient(180deg, #ff9a5c, #ff6c2c);--accent-glow: 0 6px 20px -6px rgb(255 108 44 / .7);--card-grad: linear-gradient(180deg, rgb(255 255 255 / .035), rgb(255 255 255 / .01));color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:13px/1.45 Inter Variable,Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-variant-numeric:tabular-nums}body{display:flex;flex-direction:column}svg{flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}svg .fill{fill:currentColor;stroke:none}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#1a1b1f,var(--panel))}.brand{display:flex;align-items:center;gap:10px;margin-right:12px;border-radius:6px;color:inherit;text-decoration:none;cursor:pointer}.brand:hover h1{color:var(--accent)}.brand svg{fill:var(--accent);stroke:none}.brand h1{margin:0;font-size:15px;font-weight:700;letter-spacing:-.01em}.spacer{flex:1}.divider{width:1px;height:22px;margin:0 4px;background:var(--line-strong)}.btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:var(--raised);color:var(--text);font:inherit;font-weight:500;white-space:nowrap;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.btn:not(:disabled):hover{background:var(--hover)}.brand:focus-visible,.btn:focus-visible,.seg:focus-visible,.menu-item:focus-visible,.step>summary:focus-visible,.info>summary:focus-visible,.swatches button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn.primary{background:var(--accent-grad);border-color:#ffaa7873;color:var(--accent-text);font-weight:600;box-shadow:inset 0 1px #ffffff40,var(--accent-glow)}.btn.primary:not(:disabled):hover{background:linear-gradient(180deg,#ffa96f,var(--accent-hover))}.btn.primary:disabled{box-shadow:none}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn.ghost:not(:disabled):hover{background:var(--raised);color:var(--text)}.btn:disabled{opacity:.4;cursor:default}.btn.icon{width:36px;padding:0;justify-content:center}.btn.small{height:30px;padding:0 10px;font-size:12px}.btn.icon.small{width:30px;padding:0}.btn.pill{height:30px;padding:0 12px;border-radius:999px;font-size:12px}.btn.active{border-color:var(--accent);color:var(--accent)}select,input[type=number],input[type=text]{min-width:0;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--raised);color:var(--text);font:inherit}option{background:var(--raised);color:var(--text)}select:focus-visible,input[type=number]:focus-visible,input[type=text]:focus-visible{outline:none;border-color:var(--accent)}input[type=range]{width:100%;margin:0;accent-color:var(--accent);cursor:pointer}input[type=color]{width:34px;height:34px;padding:3px;border:1px solid var(--line);border-radius:8px;background:var(--raised);cursor:pointer}.field{display:flex;flex-direction:column;gap:6px}.field>label,.field-label{color:var(--muted);font-size:12px}.pair{display:flex;align-items:center;gap:6px;color:var(--subtle)}.pair input[type=number]{flex:1;width:0}#shirtHex{width:88px;font-family:ui-monospace,Consolas,monospace;font-size:12px;text-transform:uppercase}#shirtHex.invalid{border-color:#f87171}.check{display:flex;gap:8px;align-items:center;cursor:pointer}.check input{accent-color:var(--accent)}.check.disabled{opacity:.45;cursor:default}.layout{flex:1;display:flex;min-height:0}.panel{width:340px;flex-shrink:0;display:flex;flex-direction:column;gap:10px;padding:12px;overflow-x:hidden;overflow-y:auto;border-right:1px solid var(--line);background:var(--panel);scrollbar-width:thin;scrollbar-color:var(--selected) transparent}.step{flex-shrink:0;border:1px solid var(--line-strong);border-radius:12px;background:var(--card-grad),var(--card);box-shadow:inset 0 1px #ffffff08,0 8px 24px -12px #0009}.step>summary{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:12px;list-style:none;cursor:pointer}.step>summary::-webkit-details-marker{display:none}.step>summary:hover{background:#ffffff06}.step-num{display:grid;place-items:center;width:22px;height:22px;flex-shrink:0;border-radius:50%;background:var(--accent-grad);color:var(--accent-text);font-size:11px;font-weight:700;box-shadow:0 0 12px -2px #ff6c2c8c}.step-icon{color:var(--muted)}.step-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-weight:600}.step-sum{overflow:hidden;color:var(--muted);font-size:12px;font-weight:400;white-space:nowrap;text-overflow:ellipsis}.step[open] .step-sum{display:none}.chev{color:var(--subtle);transition:transform .15s}.step[open] .chev{transform:rotate(180deg)}.step-body{display:flex;flex-direction:column;gap:12px;padding:2px 16px 16px}.advanced h3{margin:6px 0 -4px;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.note{margin:0;color:var(--muted);font-size:12px}.note strong{color:var(--text);font-weight:600}.tag{align-self:flex-start;margin:0;padding:5px 8px;border-radius:6px;background:var(--raised);color:var(--muted);font-size:12px}.hint{position:relative;margin:0;padding:10px 12px 10px 34px;border-radius:8px;background:var(--raised);color:var(--soft-text);font-size:12px}.hint:before{content:"";position:absolute;top:11px;left:12px;width:15px;height:15px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23a3a7ae' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='8' cy='8' r='6.2'/%3E%3Cpath d='M8 7.2v4'/%3E%3Ccircle cx='8' cy='4.9' r='.5' fill='%23a3a7ae'/%3E%3C/svg%3E") center / contain no-repeat}.info>summary{display:inline-flex;align-items:center;gap:6px;padding:2px 0;border-radius:4px;color:var(--muted);font-size:12px;list-style:none;cursor:pointer}.info>summary::-webkit-details-marker{display:none}.info>summary:hover{color:var(--text)}.info p{margin:8px 0 0;padding:10px 12px;border-radius:8px;background:var(--raised);color:var(--soft-text);font-size:12px}.shirt-menu{width:auto;padding:10px 12px 12px;background:var(--card)}.shirt-menu:popover-open{display:grid;gap:10px}.swatches{display:flex;gap:6px}.swatches button{width:24px;height:24px;padding:0;border:1px solid rgb(255 255 255 / .18);border-radius:50%;cursor:pointer}.swatches button:hover{box-shadow:0 0 0 2px var(--card),0 0 0 3px var(--muted)}.autos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.colour-auto{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.autos .btn,.colour-auto .btn{height:44px;gap:6px;padding:0 8px;justify-content:center;font-size:12px}.shirt-dot{width:14px;height:14px;flex-shrink:0;border:1px solid rgb(255 255 255 / .35);border-radius:50%}.shirt-icon{width:18px;height:18px;flex-shrink:0;fill:currentColor;stroke:#ffffff73;stroke-width:1.2;stroke-linejoin:round}.preset-row{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.pills{display:flex;flex-wrap:wrap;gap:6px}#presetMenuBtn[aria-expanded=true] .chev{transform:rotate(180deg)}.folder-row{display:flex;gap:6px}#folderPresets{flex:1}.button-row{display:flex;flex-wrap:wrap;gap:6px}.menu{position:fixed;inset:auto;width:240px;margin:0;padding:6px;border:1px solid var(--line-strong);border-radius:10px;background:var(--raised);color:var(--text);box-shadow:0 12px 32px #00000073}.menu-item{display:flex;align-items:center;width:100%;min-height:34px;padding:6px 12px;border:0;border-radius:6px;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.menu-item:hover{background:var(--hover)}.menu-sep{height:1px;margin:6px 4px;background:var(--line-strong)}#folderPick[hidden]+#changeFolder[hidden]+.menu-sep{display:none}.menu-note{padding:6px 12px 4px}.histogram{display:block;width:100%;height:64px;border:1px solid var(--line);border-radius:8px;background:#121316}.legend{display:flex;gap:14px;margin-top:-4px;color:var(--muted);font-size:11px}.key{display:inline-block;width:9px;height:9px;margin-right:5px;border-radius:2px;vertical-align:-1px}.key-none{border:1px solid var(--line-strong);background:#08090a}.key-dots{background:#9a9ea6}.key-solid{background:#ff7a3d8c}.slider{display:flex;flex-direction:column;gap:6px}.slider label{display:flex;justify-content:space-between;align-items:center;color:var(--soft-text);font-size:12px}.slider output{padding:1px 8px;border-radius:6px;background:var(--raised);color:var(--text)}.slider-head{display:flex;justify-content:space-between;align-items:center}.slider-head strong{color:var(--text);font-weight:600}.num{width:64px;height:28px!important;padding:0 8px!important;text-align:right}.chips{display:flex;flex-wrap:wrap;gap:6px;color:var(--muted);font-size:12px}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 4px;border:1px solid var(--line-strong);border-radius:6px;color:inherit;font-family:ui-monospace,monospace}.chip .swatch{width:16px;height:16px;flex-shrink:0;border:1px solid #555;border-radius:4px}.chip button{padding:0 3px;border:0;background:none;color:var(--muted);font-size:15px;line-height:1;cursor:pointer}.chip button:hover{color:#fff}.workspace{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg)}.stage-area{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}.busy{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:5;display:flex;align-items:center;gap:10px;padding:12px 18px;border:1px solid var(--line-strong);border-radius:999px;background:#16171aeb;box-shadow:0 8px 24px #00000059;color:var(--text);font-size:14px;pointer-events:none}.busy-spinner{width:16px;height:16px;border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.busy-spinner{animation-duration:2.4s}}.stage{flex:1;min-height:0;display:flex;overflow:auto;padding:24px;position:relative}.stage.hand,.stage.hand *{cursor:grab}.stage.panning,.stage.panning *{cursor:grabbing}.stage.picking{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cg transform='rotate(45 16 16) translate(16 16)' stroke-linejoin='round'%3E%3Cg fill='%23fff' stroke='%23fff' stroke-width='3'%3E%3Cpath d='M-3-11V-14A3 3 0 0 1 3-14V-11Z'/%3E%3Crect x='-6' y='-10' width='12' height='3.6' rx='.6'/%3E%3Cpath d='M-2.5-6.4V4.5L-.9 10V12.4H.9V10L2.5 4.5V-6.4Z'/%3E%3Crect x='-1.2' y='13.4' width='2.4' height='3.8' rx='1.2'/%3E%3C/g%3E%3Cpath d='M-3-11V-14A3 3 0 0 1 3-14V-11Z'/%3E%3Crect x='-6' y='-10' width='12' height='3.6' rx='.6'/%3E%3Cpath d='M-2.5-6.4V4.5L-.9 10V12.4H.9V10L2.5 4.5V-6.4Z' fill='%23fff' stroke='%23000' stroke-width='1.2'/%3E%3Crect x='-1.2' y='13.4' width='2.4' height='3.8' rx='1.2' fill='%23fff' stroke='%23000' stroke-width='1.1'/%3E%3C/g%3E%3C/svg%3E") 4 28,crosshair}.canvas-wrap{margin:auto;position:relative;flex-shrink:0;--split: 0%;outline:1px dashed var(--subtle);outline-offset:4px}.canvas-wrap canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.canvas-wrap #original{clip-path:inset(0 100% 0 0)}.canvas-wrap.pixelated canvas{image-rendering:pixelated}.canvas-wrap.white-ink canvas{filter:brightness(0) invert(1)}.canvas-wrap.no-compare #original,.canvas-wrap.no-compare .split-handle{display:none}.split-handle{position:absolute;top:0;bottom:0;left:var(--split);width:24px;margin-left:-12px;cursor:ew-resize;touch-action:none}.split-handle:before{content:"";position:absolute;top:0;bottom:0;left:11px;width:2px;background:var(--accent)}.split-handle:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%231a0d05' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 4.5L2 8l3.5 3.5M10.5 4.5L14 8l-3.5 3.5'/%3E%3C/svg%3E") center / 16px no-repeat;box-shadow:0 2px 10px #0006}body.locked:before,body.locked:after,.stage:has(>.drop-zone:not([hidden])):before,.stage:has(>.drop-zone:not([hidden])):after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}body.locked:before,.stage:has(>.drop-zone:not([hidden])):before{background:radial-gradient(ellipse 55% 60% at 50% 50%,rgb(255 122 61 / .09),transparent 70%),var(--bg)}body.locked:after,.stage:has(>.drop-zone:not([hidden])):after{background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='216' height='32' fill='%23ff7a3d' fill-opacity='.3'><circle cx='9' cy='8' r='7'/><circle cx='18' cy='24' r='7'/><circle cx='27' cy='8' r='6.31'/><circle cx='36' cy='24' r='6.31'/><circle cx='45' cy='8' r='5.62'/><circle cx='54' cy='24' r='5.62'/><circle cx='63' cy='8' r='4.96'/><circle cx='72' cy='24' r='4.96'/><circle cx='81' cy='8' r='4.3'/><circle cx='90' cy='24' r='4.3'/><circle cx='99' cy='8' r='3.67'/><circle cx='108' cy='24' r='3.67'/><circle cx='117' cy='8' r='3.05'/><circle cx='126' cy='24' r='3.05'/><circle cx='135' cy='8' r='2.45'/><circle cx='144' cy='24' r='2.45'/><circle cx='153' cy='8' r='1.87'/><circle cx='162' cy='24' r='1.87'/><circle cx='171' cy='8' r='1.33'/><circle cx='180' cy='24' r='1.33'/><circle cx='189' cy='8' r='0.82'/><circle cx='198' cy='24' r='0.82'/></svg>") left center / auto repeat-y,url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='216' height='32' fill='%23ff7a3d' fill-opacity='.3'><circle cx='207' cy='8' r='7'/><circle cx='198' cy='24' r='7'/><circle cx='189' cy='8' r='6.31'/><circle cx='180' cy='24' r='6.31'/><circle cx='171' cy='8' r='5.62'/><circle cx='162' cy='24' r='5.62'/><circle cx='153' cy='8' r='4.96'/><circle cx='144' cy='24' r='4.96'/><circle cx='135' cy='8' r='4.3'/><circle cx='126' cy='24' r='4.3'/><circle cx='117' cy='8' r='3.67'/><circle cx='108' cy='24' r='3.67'/><circle cx='99' cy='8' r='3.05'/><circle cx='90' cy='24' r='3.05'/><circle cx='81' cy='8' r='2.45'/><circle cx='72' cy='24' r='2.45'/><circle cx='63' cy='8' r='1.87'/><circle cx='54' cy='24' r='1.87'/><circle cx='45' cy='8' r='1.33'/><circle cx='36' cy='24' r='1.33'/><circle cx='27' cy='8' r='0.82'/><circle cx='18' cy='24' r='0.82'/></svg>") right center / auto repeat-y;-webkit-mask-image:radial-gradient(ellipse 260px 42% at 0 50%,#000 40%,transparent),radial-gradient(ellipse 260px 42% at 100% 50%,#000 40%,transparent);mask-image:radial-gradient(ellipse 260px 42% at 0 50%,#000 40%,transparent),radial-gradient(ellipse 260px 42% at 100% 50%,#000 40%,transparent)}.drop-zone{position:relative;z-index:1;margin:auto;width:min(540px,100%);display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 32px 52px;border:1.5px dashed rgb(255 122 61 / .65);border-radius:18px;background:radial-gradient(ellipse 70% 60% at 50% 30%,rgb(255 122 61 / .08),transparent 70%),#141518d9;box-shadow:0 0 80px -10px #ff6c2c66,inset 0 0 40px -20px #ff7a3d4d;text-align:center}.drop-art{margin-bottom:4px;filter:drop-shadow(0 10px 24px rgb(255 108 44 / .25))}.drop-title{margin:0;font-size:22px;font-weight:700;letter-spacing:-.015em}.drop-zone .note{font-size:13px}.drop-actions .btn{height:42px;padding:0 22px;font-size:14px}.drop-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px}.canvas-bar{align-self:center;flex-shrink:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;max-width:calc(100% - 32px);margin:10px 16px;padding:5px;border:1px solid var(--line-strong);border-radius:12px;background:var(--card);box-shadow:0 10px 30px #00000059}.seg-group{display:flex;gap:2px}.seg{position:relative;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:0;border-radius:7px;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:500;white-space:nowrap;cursor:pointer}.seg:hover{background:#ffffff0a;color:var(--text)}.seg.active,.seg:has(input:checked){background:var(--selected);color:var(--text)}.seg:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.seg input{position:absolute;width:0;height:0;margin:0;opacity:0;pointer-events:none}.seg.icon{padding:0 8px}.bar-sep{width:1px;height:20px;margin:0 4px;background:var(--line-strong)}.canvas-bar select{height:30px;padding:0 6px;border-color:transparent;background:transparent;font-size:12px}.canvas-bar select:hover{background:#ffffff0a}.statusbar{display:flex;align-items:center;gap:16px;min-height:36px;padding:6px 16px;border-top:1px solid var(--line);background:var(--panel);color:var(--muted);font-size:12px}.status{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.badge{padding:3px 10px;border-radius:999px;background:#4ade801f;color:#86efac;font-weight:500;white-space:nowrap;cursor:help}.badge.fail{background:#f8717124;color:#fca5a5}.loupe{position:fixed;z-index:10;width:220px;height:220px;border-radius:50%;border:2px solid var(--accent);box-shadow:0 6px 24px #0009;pointer-events:none}.help{max-width:min(600px,calc(100vw - 32px));max-height:calc(100vh - 48px);padding:22px 26px;border:1px solid var(--line-strong);border-radius:14px;background:var(--card);color:var(--text);line-height:1.55;box-shadow:0 24px 60px #00000080}.help::backdrop{background:#0009}.help h2{margin:0 0 8px;font-size:18px;letter-spacing:-.01em}.help h3{margin:18px 0 6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.help p,.help ul,.help ol{margin:0}.help li+li{margin-top:4px}.help kbd{padding:1px 5px;border:1px solid var(--line-strong);border-radius:4px;background:var(--raised);font:inherit;font-size:12px}.help form{margin-top:20px;text-align:right}.save-preset{width:380px}.save-preset form{margin-top:0;text-align:left}.save-preset .field{color:var(--muted)}.save-preset .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}body.locked>:not(dialog){visibility:hidden}body.locked:before,body.locked:after{position:fixed}.license{width:480px;padding:30px 32px 24px;border-radius:18px;background:var(--card-grad),var(--card);box-shadow:0 24px 70px #00000080,0 0 90px -20px #ff7a3d73}.license::backdrop{background:transparent}.license form{display:flex;flex-direction:column;gap:16px;margin-top:0;text-align:left}.license h2{margin:0;font-size:22px}.license .field{color:var(--muted)}.license input{height:40px}.license #licenseOk{justify-content:center;height:40px}.license a.btn{text-decoration:none}.license-trial{display:flex;align-items:center;gap:16px;padding-top:18px;border-top:1px solid var(--line)}.license-trial .note{flex:1;line-height:1.5}.license-trial .note a{color:var(--accent);white-space:nowrap}.legal-links{font-size:12px}.legal-links a{color:inherit}@media(max-width:760px){.layout{flex-direction:column-reverse}.panel{width:100%;max-height:50vh;border-right:0;border-top:1px solid var(--line)}.divider{display:none}}
