@font-face{font-family:Outfit;src:url(/assets/fonts/Outfit-VariableFont_wght.ttf)format("truetype");font-weight:100 900;font-display:swap}@font-face{font-family:Rawnie;src:url(/assets/fonts/Rawnie.otf)format("opentype");font-weight:700;font-display:swap}:root{--blue:#3f46e8;--blue-strong:#242cc6;--lime:#e1ff73;--pink:#ffc7df;--cream:#fffdf5;--paper:#fff;--ink:#111827;--muted:#647084;--line:#d8deef;--soft:#f5f7ff;--danger:#ef4444;--shadow:0 18px 48px #18224a24;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{background:var(--cream);min-width:320px}body{color:var(--ink);background:linear-gradient(#fffdf5 0%,#f2f5ff 48%,#fff 100%);margin:0;font-family:Outfit,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,a{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.builder-app{min-height:100vh}.app-header{z-index:50;background:var(--blue);color:#fff;-webkit-backdrop-filter:blur(16px);border-bottom:1px solid #ffffff2e;grid-template-columns:minmax(120px,210px) 1fr auto;align-items:center;gap:16px;min-height:76px;padding:10px clamp(14px,3vw,34px);display:grid;position:sticky;top:0}.brand{align-items:center;min-width:0;display:inline-flex}.brand img{width:clamp(132px,19vw,190px);height:auto;display:block}.step-title{text-align:center;justify-self:center;gap:2px;min-width:0;display:grid}.step-title span{letter-spacing:0;color:var(--lime);font-size:12px;font-weight:900}.step-title strong{font-size:clamp(15px,2vw,19px)}.icon-button,.bottom-actions button,.tool-row button,.name-tool button,.primary-action,.download-action,.checkout-action{border:1px solid var(--line);min-height:42px;color:var(--ink);background:#fff;border-radius:8px;justify-content:center;align-items:center;font-weight:900;text-decoration:none;display:inline-flex}.text-button{color:#fff;background:#ffffff1f;border-color:#ffffff57;padding:0 14px}.stepper{z-index:40;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffdf5eb;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px clamp(12px,3vw,34px);display:grid;position:sticky;top:76px}.stepper button{border:1px solid var(--line);min-height:42px;color:var(--muted);background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:8px;font-size:14px;font-weight:900;display:inline-flex}.stepper span{background:var(--soft);width:24px;height:24px;color:var(--blue);border-radius:999px;place-items:center;display:inline-grid}.stepper .is-active{border-color:var(--blue);background:var(--blue);color:#fff}.stepper .is-active span{background:var(--lime);color:var(--ink)}.builder-grid{grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:clamp(16px,2.5vw,28px);width:min(1440px,100%);margin:0 auto;padding:clamp(14px,2.4vw,30px);display:grid}.control-panel,.preview-shell{min-width:0}.control-panel{border:1px solid var(--line);max-height:calc(100vh - 164px);box-shadow:var(--shadow);background:#ffffffeb;border-radius:8px;align-self:start;position:sticky;top:144px;overflow:auto}.panel-section{gap:18px;padding:clamp(16px,2vw,22px);display:grid}.section-heading{gap:4px;display:grid}.section-heading p,.preview-toolbar p{color:var(--blue);margin:0;font-size:12px;font-weight:1000}.section-heading h1,.preview-toolbar h2{letter-spacing:0;margin:0;font-size:clamp(24px,3vw,34px);line-height:1.02}.product-list,.patch-grid{gap:10px;display:grid}.product-card{border:1px solid var(--line);text-align:left;background:#fff;border-radius:8px;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:12px;width:100%;min-height:112px;padding:10px;display:grid}.product-card img{object-fit:cover;background:var(--soft);border-radius:8px;width:92px;height:92px}.product-card span{gap:4px;min-width:0;display:grid}.product-card strong{font-size:17px}.product-card small{color:var(--muted);font-size:13px;line-height:1.25}.product-card em{color:var(--blue);font-style:normal;font-weight:1000}.product-card.is-selected,.swatch.is-selected,.choice.is-selected,.category-tabs .is-selected{border-color:var(--blue);box-shadow:0 0 0 3px #3f46e824}.swatch-grid,.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.swatch,.choice,.category-tabs button{border:1px solid var(--line);min-height:46px;color:var(--ink);background:#fff;border-radius:8px;font-weight:900}.swatch{text-align:left;justify-content:flex-start;align-items:center;gap:10px;padding:0 12px;display:flex}.swatch span{border:1px solid #1118271f;border-radius:999px;flex:none;width:22px;height:22px}.compact-heading{margin:6px 0 -6px;font-size:15px}.patch-meter{border:1px solid var(--line);background:var(--soft);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:10px 12px;display:flex}.patch-meter strong{color:var(--blue);font-size:22px}.patch-meter span{color:var(--muted);font-weight:900}.category-tabs{gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.category-tabs button{white-space:nowrap;flex:none;padding:0 12px}.category-tabs .is-selected{background:var(--lime)}.patch-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:300px;overflow:auto}.patch-grid button{border:1px solid var(--line);min-height:116px;color:var(--ink);text-align:center;background:#fff;border-radius:8px;justify-items:center;gap:8px;padding:10px 8px;font-size:12px;font-weight:900;display:grid}.patch-grid img{object-fit:contain;width:64px;height:64px}.name-tool{grid-template-columns:minmax(0,1fr) 112px;gap:8px;display:grid}.keycap-tool{border:1px solid var(--line);background:var(--soft);border-radius:8px;gap:8px;padding:12px;display:grid}.keycap-tool label{color:var(--muted);gap:8px;font-size:12px;font-weight:1000;display:grid}.keycap-tool input{border:1px solid var(--line);min-width:0;min-height:54px;color:var(--ink);letter-spacing:0;text-transform:uppercase;background:#fff;border-radius:8px;padding:0 14px;font-size:24px;font-weight:1000}.keycap-tool small{color:var(--muted);font-weight:800}.alphabet-colors{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.alphabet-colors button{border:1px solid var(--line);background:#fff;border-radius:8px;place-items:center;min-height:50px;display:grid}.alphabet-colors .is-selected{border-color:var(--blue);box-shadow:0 0 0 3px #3f46e824}.alphabet-colors span{border:1px solid #1118271f;border-radius:999px;width:28px;height:28px}.name-tool input{border:1px solid var(--line);min-width:0;min-height:44px;color:var(--ink);text-transform:uppercase;background:#fff;border-radius:8px;padding:0 12px;font-weight:1000}.name-tool button,.primary-action{border-color:var(--blue);background:var(--blue);color:#fff}.tool-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.tool-row button:last-child{color:var(--danger)}.inspector{border:1px solid var(--line);background:var(--cream);border-radius:8px;gap:10px;padding:12px;display:grid}.inspector label{color:var(--muted);gap:6px;font-size:12px;font-weight:900;display:grid}.inspector input{width:100%}.summary-box{border:1px solid var(--line);background:var(--soft);border-radius:8px;grid-template-columns:110px minmax(0,1fr);gap:10px;padding:14px;display:grid}.summary-box span{color:var(--muted);font-weight:800}.summary-box strong{min-width:0}.download-action{border-color:var(--blue);color:var(--blue)}.checkout-action{border-color:var(--lime);background:var(--lime)}.preview-shell{gap:14px;display:grid}.preview-toolbar{justify-content:space-between;align-items:end;gap:14px;display:flex}.preview-toolbar span{background:var(--lime);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;min-height:38px;padding:0 14px;font-weight:1000;display:inline-flex}.stage{isolation:isolate;aspect-ratio:1/1.1;border:1px solid var(--line);width:100%;min-height:520px;box-shadow:var(--shadow);touch-action:none;background:#fff;border-radius:8px;position:relative;overflow:hidden}.variant-wash{z-index:0;opacity:.13;border-radius:30px;position:absolute;inset:6%}.product-photo{z-index:1;object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none;width:90%;height:82%;position:absolute;inset:5%}.placement-guide{z-index:2;pointer-events:none;background:#e1ff731f;border:1px dashed #3f46e861;border-radius:8px;position:absolute}.placed-item{z-index:3;transform-origin:50%;touch-action:none;border:1px solid #0000;border-radius:8px;place-items:center;width:118px;height:118px;display:grid;position:absolute}.placed-item.is-selected{border-color:var(--blue);outline:2px solid #3f46e829}.placed-item img{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:96px;height:96px}.name-patch{background:var(--blue);min-width:112px;min-height:48px;color:var(--lime);border:5px solid #fff;border-radius:8px;justify-content:center;align-items:center;padding:0 16px;font-family:Rawnie,Outfit,sans-serif;font-size:28px;line-height:1;display:inline-flex;box-shadow:0 10px 24px #1118271f}.rotate-handle,.move-handle,.stage-trash{z-index:6;border:1px solid var(--line);width:34px;height:34px;color:var(--blue);background:#fff;border-radius:999px;place-items:center;font-weight:1000;display:grid;position:absolute;box-shadow:0 10px 22px #1118271f}.rotate-handle{top:-45px;left:50%;transform:translate(-50%)}.move-handle{background:var(--blue);color:#fff;top:calc(50% - 17px);left:calc(50% - 17px)}.stage-trash{color:var(--danger);font-size:24px;bottom:18px;right:18px}.bottom-actions{grid-template-columns:120px minmax(0,1fr);gap:10px;display:grid}.bottom-actions button{padding:0 18px}.notice{color:#b91c1c;background:#fff1f2;border:1px solid #ef44443d;border-radius:8px;margin:0;padding:12px 14px;font-weight:900}.result-preview{border:1px solid var(--line);background:#fff;border-radius:8px;justify-self:start;overflow:hidden}.result-preview img{width:180px;height:auto;display:block}@media (max-width:980px){.app-header{grid-template-columns:1fr auto}.step-title{display:none}.builder-grid{grid-template-columns:1fr}.control-panel{order:2;max-height:none;position:static}.preview-shell{order:1}.stage{min-height:auto}}@media (max-width:620px){body{background:#fffdf5}.app-header{min-height:68px;padding:8px 12px}.brand img{width:136px}.stepper{gap:6px;padding:7px 8px;top:68px}.stepper button{gap:4px;min-height:34px;font-size:12px}.stepper span{width:22px;height:22px}.builder-grid{gap:10px;padding:8px}.preview-toolbar{align-items:start;padding:0 2px}.preview-toolbar p,.section-heading p{display:none}.preview-toolbar h2{font-size:20px}.preview-toolbar span{min-height:34px;padding:0 10px;font-size:13px}.stage{aspect-ratio:1/1.16;border-radius:8px;box-shadow:0 10px 28px #18224a1f}.product-photo{width:92%;height:80%;inset:4%}.placement-guide{opacity:.75}.control-panel{border-radius:8px 8px 0 0;box-shadow:0 -8px 24px #18224a14}.panel-section{gap:12px;padding:14px 12px 16px}.section-heading h1{font-size:22px}.product-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.product-card{grid-template-columns:1fr;align-content:start;gap:8px;min-height:0;padding:8px}.product-card img{aspect-ratio:1/.82;width:100%;height:auto}.product-card span{gap:2px}.product-card strong{font-size:14px;line-height:1.12}.product-card small{display:none}.product-card em{font-size:12px}.swatch-grid,.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.swatch,.choice,.category-tabs button{min-height:42px;font-size:13px}.patch-meter{min-height:46px;padding:8px 10px}.patch-meter strong{font-size:20px}.category-tabs{gap:6px}.patch-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:250px}.patch-grid button{min-height:96px;padding:8px 4px}.patch-grid img{width:56px;height:56px}.patch-grid span{text-overflow:ellipsis;white-space:nowrap;width:100%;overflow:hidden}.name-tool{grid-template-columns:1fr}.keycap-tool input{min-height:50px;font-size:22px}.alphabet-colors{grid-template-columns:repeat(5,minmax(0,1fr))}.placed-item{width:96px;height:96px}.placed-item img{width:78px;height:78px}.rotate-handle,.move-handle,.stage-trash{width:32px;height:32px}.bottom-actions{z-index:20;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffdf5f5;margin:0 -8px -8px;padding:8px;position:sticky;bottom:0}.bottom-actions button{min-height:46px}.notice{font-size:13px}}@supports (-webkit-touch-callout:none){input,button,a{-webkit-tap-highlight-color:transparent}.stage,.placed-item{-webkit-user-select:none;user-select:none}}
