:root{--ink:#1c1f23;--muted:#5b616b;--line:#d6d4ce;--soft-line:#eceae5;--ground:#f4f3ef;--stage:#e7e5df;--card:#fff;--accent:#f7c600;--accent-soft:#fff8d6;--go:#1b7f3e;--go-soft:#eef7f0;--focus:#2f6fed;--danger:#b42318;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{color:var(--ink);background:var(--ground);font-family:Barlow,system-ui,sans-serif;font-size:16px;line-height:1.4}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.display{font-family:Barlow Semi Condensed,Barlow,sans-serif;font-weight:700}.muted{color:var(--muted)}.small{font-size:13px}.topbar{background:var(--ink);color:#fff;align-items:center;gap:12px;height:60px;padding:0 32px;display:flex}.topbar .brand{letter-spacing:.3px;font-size:21px}.topbar .tag{color:#d5d8dd;margin-left:auto;font-size:14px}.page{max-width:1440px;margin:0 auto;padding:16px 32px 40px}.crumbs{color:var(--muted);flex-wrap:wrap;gap:8px;font-size:14px;display:flex}.crumbs strong{color:var(--ink)}.layout{grid-template-columns:minmax(0,1fr) 440px;align-items:start;gap:32px;margin-top:12px;display:grid}.layout>*{min-width:0}.heading{margin:0 0 12px;font-size:38px;line-height:1.05}.stage{background:var(--stage);border-radius:16px;justify-content:center;align-items:center;min-height:560px;padding:28px;display:flex}.preview-col{position:sticky;top:16px}.stage>div{min-width:0;max-width:100%}.stage svg{-webkit-user-select:none;user-select:none;max-width:100%;height:auto;display:block;overflow:visible}.stage svg #artwork{filter:drop-shadow(0 1px 3px #00000059)}.stage svg #dimensions{stroke:#3a3f46;fill:#3a3f46}.stage svg #dimensions text{stroke:none}.promises{color:var(--muted);flex-wrap:wrap;gap:10px;margin-top:12px;font-size:14px;display:flex}.notice{color:#7a1a12;background:#fdecea;border-radius:12px;margin-top:12px;padding:12px 14px;font-size:15px}.panel{flex-direction:column;gap:14px;display:flex}.card{background:var(--card);border-radius:var(--radius);flex-direction:column;gap:12px;padding:16px;display:flex}.card.dark{background:var(--ink);color:#fff}.card.outlined{border:2px solid var(--ink)}.step-head{align-items:center;gap:10px;display:flex}.step-head h2{margin:0;font-size:18px;font-weight:600}.step-no{background:var(--accent);border-radius:999px;justify-content:center;align-items:center;width:26px;height:26px;font-size:14px;font-weight:700;display:flex}.grow{flex-grow:1}.mode{background:var(--stage);border-radius:999px;padding:4px;display:flex}.mode button{height:44px;color:var(--muted);background:0 0;border:0;border-radius:999px;flex:1;font-size:16px;font-weight:500}.mode button[aria-pressed=true]{color:var(--ink);background:#fff;font-weight:600;box-shadow:0 1px 2px #0000001f}.mode button:disabled{cursor:not-allowed}.field{border:1px solid var(--line);height:44px;color:var(--ink);background:#fff;border-radius:10px;width:100%;padding:0 12px;font-size:16px}.field::placeholder{color:#8a8f97}.label{color:var(--muted);font-size:14px}.btn{border:1px solid var(--line);background:#fff;border-radius:10px;height:44px;padding:0 16px;font-size:15px;font-weight:600}.btn.strong{border-color:var(--ink)}.btn.go{background:var(--go);color:#fff;border:0;font-size:17px;font-weight:700}.btn.accent{background:var(--accent);color:var(--ink);border:0;font-weight:700}.btn:disabled{opacity:.55;cursor:not-allowed}.chips{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.chip{border:1px solid var(--line);background:#fff;border-radius:10px;height:44px;font-size:15px;font-weight:600}.chip[aria-pressed=true]{border:2px solid var(--ink);background:var(--accent)}.current-symbol{border:2px solid var(--go);border-radius:12px;align-items:center;gap:12px;padding:8px 12px;display:flex}.current-symbol img{object-fit:contain;width:48px;height:48px}.line-controls{align-items:center;gap:6px;display:flex}.stepper{border:1px solid var(--line);background:#fff;border-radius:8px;width:38px;height:36px;font-weight:700}.step-label{text-align:center;min-width:58px;font-size:13px;font-weight:600}.aligns{border:1px solid var(--line);border-radius:8px;margin-left:auto;display:flex;overflow:hidden}.aligns button{background:#fff;border:0;justify-content:center;align-items:center;width:38px;height:34px;display:flex}.aligns button[aria-pressed=true]{background:var(--ink);color:#fff}.tabs{flex-wrap:wrap;gap:8px;display:flex}.tab{border:1px solid var(--line);background:#fff;border-radius:999px;height:38px;padding:0 12px;font-size:14px;font-weight:600}.tab[aria-pressed=true]{border:2px solid var(--ink);background:var(--accent)}.tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:520px;padding:2px;display:grid;overflow-y:auto}.tile{text-align:center;background:#fff;border:1px solid #e2e1dc;border-radius:12px;flex-direction:column;align-items:center;gap:4px;min-height:132px;padding:10px 6px;display:flex}.tile img{object-fit:contain;width:60px;height:60px}.tile .name{font-size:13px;font-weight:600;line-height:1.2}.tile[aria-pressed=true]{border:2px solid var(--go);background:var(--go-soft)}.price{align-items:baseline;gap:10px;display:flex}.price .amount{font-size:34px}.buy-row{align-items:center;gap:10px;display:flex}.qty{border:1px solid var(--line);border-radius:10px;width:72px;height:48px;padding:0 10px;font-size:16px}dialog{border:0;border-radius:16px;max-width:460px;padding:24px;box-shadow:0 20px 60px #0000004d}dialog::backdrop{background:#00000073}.footer{color:var(--muted);margin-top:24px;font-size:13px}.loading{text-align:center;color:var(--muted);padding:80px 32px;font-size:18px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.preview-head{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.preview-head .heading{flex:auto}.history{gap:6px;margin-bottom:12px;display:flex}.hint{margin:10px 0 0}.btn.small-btn{height:36px;padding:0 10px;font-size:14px}.btn.dashed{border:1px dashed #8a8f97;font-weight:600}.btn.danger,.link.danger,.icon-btn.danger{color:var(--danger)}.link{text-underline-offset:2px;background:0 0;border:0;min-height:32px;padding:6px 4px;font-size:14px;font-weight:600;text-decoration:underline}.link:disabled,.icon-btn:disabled{opacity:.35;cursor:not-allowed;text-decoration:none}.icon-btn{border:1px solid var(--line);background:#fff;border-radius:8px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;font-weight:700;line-height:1;display:inline-flex}.row-controls{align-items:center;gap:8px;display:flex}.row-controls.wrap{flex-wrap:wrap}.field.compact{width:auto;height:38px;padding:0 8px;font-size:15px}.field.area{resize:vertical;height:auto;min-height:44px;padding:10px 12px;font-family:inherit;line-height:1.3}.check{align-items:center;gap:10px;min-height:32px;font-size:15px;display:flex}.check input{width:20px;height:20px;accent-color:var(--ink)}.segmented{border:1px solid var(--line);border-radius:10px;display:flex;overflow:hidden}.segmented button{background:#fff;border:0;height:38px;padding:0 12px;font-size:14px;font-weight:600}.segmented button+button{border-left:1px solid var(--line)}.segmented button[aria-pressed=true]{background:var(--ink);color:#fff}.layouts{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.layout-card{border:1px solid var(--line);text-align:center;background:#fff;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:96px;padding:8px 4px;font-size:13px;font-weight:600;line-height:1.15;display:flex}.layouts.two{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-card[aria-pressed=true]{border:2px solid var(--ink);background:var(--accent-soft)}.selected-card{border:2px solid var(--focus)}.sub-head{border-top:1px solid var(--soft-line);padding-top:8px;font-size:15px;font-weight:700}.symbol-row{border:1px solid #e2e1dc;border-radius:12px;align-items:center;gap:8px;padding:6px 8px;display:flex}.symbol-row img{object-fit:contain;flex:none;width:40px;height:40px}.symbol-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.swatches{flex-wrap:wrap;gap:6px;display:flex}.swatch{border:1px solid var(--line);background:#fff;border-radius:999px;align-items:center;gap:6px;height:36px;padding:0 10px 0 5px;font-size:13px;display:inline-flex}.swatch[aria-pressed=true]{border:2px solid var(--ink);font-weight:700}.dot{border:1px solid #00000026;border-radius:999px;flex:none;width:24px;height:24px}.dot.match{background:conic-gradient(#ed1c24 0 25%, #ffd200 0 50%, #056bb3 0 75%, #099146 0)}.panel-editor{border:1px solid #e2e1dc;border-radius:12px;flex-direction:column;gap:10px;padding:8px 10px;display:flex}.panel-editor.expanded{border-color:var(--ink)}.panel-title{text-align:left;background:0 0;border:0;flex-direction:column;min-width:0;min-height:36px;padding:4px 0;display:flex}.panel-name{font-weight:700}.panel-summary{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.line-editor{border-top:1px solid var(--soft-line);flex-direction:column;gap:8px;padding-top:10px;display:flex}.bold-toggle{font-weight:800}.bold-toggle[aria-pressed=true],.caps-toggle[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.caps-toggle{letter-spacing:.5px;font-size:12px}.field.caps{text-transform:uppercase}.stage.interactive svg{cursor:pointer}.stage svg .ov-selected,.stage svg .ov-panel{fill:none;stroke:var(--focus)}.stage svg .ov-drop{fill:#2f6fed14;stroke:var(--focus)}.stage svg .ov-dragging{opacity:.45}@media (width<=960px){.page{padding:12px 16px 32px}.layout{grid-template-columns:1fr;gap:16px}.stage{min-height:300px;padding:16px}.preview-col{position:static}.heading{font-size:28px}.topbar{padding:0 16px}.topbar .brand{font-size:18px}.topbar .tag{display:none}}@media (width<=480px){.chips{grid-template-columns:repeat(3,minmax(0,1fr))}.layouts,.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.tr-line{flex-direction:column;gap:6px;display:flex}.tr-source{color:var(--ink);font-weight:600}.check-box{background:#fff4d1;border:1px solid #e8c45a;border-radius:12px;flex-direction:column;gap:8px;padding:14px;font-size:14px;line-height:1.45;display:flex}.field:disabled{background:#f4f3ef}.tr-status{color:var(--danger);align-items:center;gap:8px;margin:0;display:flex}.tr-status.busy{color:var(--ink);font-weight:600}.spinner{border:2px solid var(--line);border-top-color:var(--ink);border-radius:999px;flex:none;width:16px;height:16px;animation:.8s linear infinite spin}.field.is-busy{background:linear-gradient(90deg,#fff 0%,#f1efe9 50%,#fff 100%) 0 0/200% 100%;animation:1.2s linear infinite shimmer}.stage svg .ov-busy{fill:#fff;opacity:.55;animation:1.2s ease-in-out infinite pulse}.stage svg .ov-pill{fill:var(--ink)}.stage svg .ov-spin{fill:none;stroke:#fff;stroke-dasharray:70 30;stroke-linecap:round;transform-box:fill-box;transform-origin:50%;animation:.8s linear infinite spin}.stage svg .ov-label{fill:#fff;text-anchor:middle;dominant-baseline:central;font-family:Barlow,system-ui,sans-serif;font-weight:600}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.75}}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.spinner,.stage svg .ov-spin,.stage svg .ov-busy,.field.is-busy{animation:none}}.describe form{margin:0}.describe .field{flex:auto;min-width:0}.describe .btn.accent{flex:none;align-items:center;gap:8px;display:inline-flex}.describe-hint{color:#c9cdd3}.describe-error{color:#ffb4a8;margin:0}.describe-result{flex-direction:column;gap:8px;display:flex}.spinner.dark{border-color:#0003;border-top-color:var(--ink)}.alt-tiles{flex-wrap:wrap;gap:6px;display:flex}.alt-tile{width:64px;color:var(--ink);background:#fff;border:0;border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;font-size:11px;font-weight:600;display:flex}.alt-tile img{object-fit:contain;width:40px;height:40px}.alt-tile[aria-busy=true]{opacity:.5}.picker-done{width:100%;height:48px}.custom-size{flex-direction:column;gap:6px;display:flex}.size-input{width:96px}.icon-btn.lock[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
