:root{--bg:#f6f4ef;--surface:#fff;--surface-2:#f0ede6;--ink:#16171a;--ink-2:#55575e;--ink-3:#8a8c93;--line:#e2ded5;--line-strong:#cfcac0;--enamel:#111214;--yellow:#f5c400;--yellow-soft:#fff4c2;--focus:#c79c00;--danger:#b3261e;--radius:12px;--shadow:0 1px 2px #16171a0a, 0 4px 16px #16171a0d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg)}button,input{font:inherit;color:inherit}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--line);background:var(--surface);align-items:center;padding:14px 24px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{background:var(--enamel);width:40px;height:30px;color:var(--yellow);box-shadow:inset 0 0 0 2px var(--enamel), inset 0 0 0 3px var(--yellow);border-radius:6px;place-items:center;font-size:17px;font-weight:800;display:grid}.brand h1{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:700}.brand p{color:var(--ink-2);margin:1px 0 0;font-size:13px}.layout{flex:1;grid-template-columns:340px minmax(0,1fr);align-items:start;gap:20px;padding:20px 24px 28px;display:grid}@media (max-width:900px){.layout{grid-template-columns:minmax(0,1fr);padding:16px}.stage{order:-1}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:18px;padding:20px;display:flex}.field{flex-direction:column;gap:8px;display:flex}.field label,.field .label,.downloads h2,.dl-title{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);font-size:12px;font-weight:600}.hint{color:var(--ink-3);margin:0;font-size:12.5px}.hint.error{color:var(--danger)}.hint.warn{color:#8a5a00;background:var(--yellow-soft);border-radius:7px;padding:6px 10px}.inline-field{grid-template-columns:auto 1fr;align-items:center;gap:12px;display:grid}.inline-field label{text-transform:none;letter-spacing:0;color:var(--ink-2);font-size:13.5px;font-weight:500}.number-input{letter-spacing:.02em;font-variant-numeric:tabular-nums;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;outline:none;width:100%;padding:8px 14px;font-size:34px;font-weight:700;transition:border-color .15s,box-shadow .15s}.number-input:focus{border-color:var(--focus);box-shadow:0 0 0 3px var(--yellow-soft);background:var(--surface)}.number-input.invalid{border-color:var(--danger);box-shadow:0 0 0 3px #b3261e1a}.segmented{background:var(--surface-2);border:1px solid var(--line);border-radius:9px;gap:2px;padding:3px;display:flex}.segmented button{color:var(--ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;flex:1;padding:6px 8px;font-size:13px}.segmented button:hover{color:var(--ink)}.segmented button.on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #0000001a}.number-field{display:flex;position:relative}.number-field input{font-variant-numeric:tabular-nums;background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;outline:none;width:100%;padding:8px 40px 8px 12px}.number-field input:focus{border-color:var(--focus);box-shadow:0 0 0 3px var(--yellow-soft)}.number-field .unit{color:var(--ink-3);pointer-events:none;font-size:13px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.dims{gap:20px;margin:0;font-size:13px;display:flex}.dims div{gap:6px;display:flex}.dims dt{color:var(--ink-3)}.dims dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.slider-row{grid-template-columns:1fr 104px;align-items:center;gap:12px;display:grid}input[type=range]{width:100%;accent-color:var(--ink)}.more{border-top:1px solid var(--line);padding-top:14px}.more summary{cursor:pointer;align-items:center;gap:8px;font-size:14px;font-weight:600;list-style:none;display:flex}.more summary:before{content:"›";color:var(--ink-3);font-size:18px;line-height:1;transition:transform .15s;display:inline-block}.more[open] summary:before{transform:rotate(90deg)}.more[open]{flex-direction:column;gap:14px;display:flex}.check{cursor:pointer;align-items:center;gap:10px;font-size:14px;display:flex}.check input{width:16px;height:16px;accent-color:var(--ink)}.downloads{border-top:1px solid var(--line);flex-direction:column;gap:14px;padding-top:16px;display:flex}.downloads h2{margin:0}.dl-group{flex-direction:column;gap:8px;display:flex}.dl-title{text-transform:none;letter-spacing:0;color:var(--ink-3);font-size:13px;font-weight:500}.dl-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.dl{cursor:pointer;background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:9px 12px;font-size:13.5px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.dl svg{flex:none;width:15px;height:15px}.dl:hover:not(:disabled){background:var(--surface-2);border-color:var(--ink-3)}.dl.primary{background:var(--ink);border-color:var(--ink);color:#fff}.dl.primary:hover:not(:disabled){background:#2a2c31;border-color:#2a2c31}.dl:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.stage{flex-direction:column;gap:20px;min-width:0;display:flex}.viewer-card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:radial-gradient(120% 90% at 50% 20%,#fff 0%,#eeebe4 100%);position:relative;overflow:hidden}.viewer{height:min(56vh,580px);min-height:320px;position:relative}.viewer canvas{cursor:grab;width:100%;height:100%;display:block}.viewer canvas:active{cursor:grabbing}.viewer-reset{z-index:1;cursor:pointer;border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffd9;border-radius:7px;padding:6px 10px;font-size:12.5px;position:absolute;top:12px;right:12px}.viewer-reset:hover{background:#fff}.viewer-status{position:absolute;top:12px;left:12px}.status{font-variant-numeric:tabular-nums;border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--ink-2);background:#ffffffd9;border-radius:7px;align-items:center;gap:8px;padding:6px 10px;font-size:12.5px;display:inline-flex}.status.error{color:var(--danger);border-color:#b3261e4d}.spinner{border:2px solid var(--line-strong);border-top-color:var(--ink);border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.viewer-help{text-align:center;color:var(--ink-3);pointer-events:none;margin:0;font-size:12px;position:absolute;bottom:10px;left:0;right:0}.stickers{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (max-width:640px){.stickers{grid-template-columns:1fr}}.sticker-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin:0;overflow:hidden}.sticker-canvas{aspect-ratio:16/9;background-color:#fbfaf7;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);background-position:-1px -1px;background-size:16px 16px;position:relative}.sticker-canvas img{object-fit:contain;width:calc(100% - 48px);height:calc(100% - 48px);position:absolute;inset:24px}.sticker-canvas.yellow-bg{background-color:#fbfaf7}.sticker-canvas img.outline{opacity:.1}.sticker-card figcaption{border-top:1px solid var(--line);color:var(--ink-2);padding:12px 16px;font-size:13px}.sticker-card figcaption strong{color:var(--ink);margin-right:6px}
