.design-card[data-v-a200d55e]{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);min-width:0;transition:transform .26s var(--ease-spring), box-shadow var(--duration) ease, border-color var(--duration) ease;display:grid;overflow:hidden}.design-card[data-v-a200d55e]:hover{border-color:var(--accent-soft-border);box-shadow:var(--shadow-md);transform:translateY(-3px)rotate(-.4deg)}.design-card__thumb[data-v-a200d55e]{aspect-ratio:1;background:radial-gradient(circle at 50% 40%, var(--surface) 0%, var(--surface-inset) 70%);border:0;padding:12%;display:block;position:relative}.design-card__thumb img[data-v-a200d55e]{object-fit:contain;filter:drop-shadow(0 6px 10px #0000002e);width:100%;height:100%;transition:transform .5s var(--ease-spring);display:block}.design-card:hover .design-card__thumb img[data-v-a200d55e]{transform:rotate(8deg)scale(1.04)}.design-card__badge[data-v-a200d55e]{background:var(--viewport-chrome);height:22px;color:var(--text-2);border-radius:999px;align-items:center;gap:4px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex;position:absolute;top:8px;left:8px}.design-card__badge .svg-icon[data-v-a200d55e]{width:12px;height:12px}.design-card__body[data-v-a200d55e]{align-items:center;gap:8px;padding:10px 12px 12px;display:flex}.design-card__text[data-v-a200d55e]{flex:auto;min-width:0}.design-card__title[data-v-a200d55e]{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:14px;font-weight:600;overflow:hidden}.design-card__author[data-v-a200d55e]{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12.5px;overflow:hidden}.like-button[data-v-a200d55e]{border:1px solid var(--border);background:var(--surface);height:30px;color:var(--text-2);font-variant-numeric:tabular-nums;transition:color var(--duration) ease, border-color var(--duration) ease, background-color var(--duration) ease;border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:0 9px;font-size:13px;display:inline-flex}.like-button[data-v-a200d55e]:hover{border-color:var(--accent-soft-border);color:var(--accent-text)}.like-button .svg-icon[data-v-a200d55e]{width:15px;height:15px}.like-button.is-liked[data-v-a200d55e]{border-color:var(--accent-soft-border);background:var(--accent-soft);color:var(--accent-text)}.like-button.is-liked .svg-icon[data-v-a200d55e]{fill:currentColor;animation:like-pop-a200d55e .42s var(--ease-spring)}@keyframes like-pop-a200d55e{0%{transform:scale(.6)}60%{transform:scale(1.3)}to{transform:scale(1)}}.is-compact .design-card__body[data-v-a200d55e]{padding:8px 10px 10px}.gallery-strip__header[data-v-df65f3b4]{flex-wrap:wrap}.gallery-strip__spacer[data-v-df65f3b4]{flex:auto}.gallery-strip__grid[data-v-df65f3b4]{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.gallery-strip__empty[data-v-df65f3b4]{color:var(--text-2);text-align:center;justify-items:center;gap:8px;padding:16px;display:grid}.gallery-strip__emoji[data-v-df65f3b4]{font-size:38px}.gallery-strip__empty p[data-v-df65f3b4]{max-width:460px;margin:0 0 6px}.modal__panel:focus{outline:none}.gallery[data-v-19959fe1]{gap:16px;display:grid}.gallery__toolbar[data-v-19959fe1]{flex-wrap:wrap;gap:10px;display:flex}.gallery__search[data-v-19959fe1]{border:1px solid var(--input-border);border-radius:var(--radius-sm);background:var(--input-bg);height:40px;color:var(--text-3);flex:240px;align-items:center;gap:8px;padding:0 12px;display:flex}.gallery__search[data-v-19959fe1]:focus-within{border-color:var(--accent);box-shadow:var(--focus-ring)}.gallery__search input[data-v-19959fe1]{min-width:0;color:var(--text);background:0 0;border:0;outline:none;flex:auto}.gallery__grid[data-v-19959fe1]{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;display:grid}.gallery__skeleton[data-v-19959fe1]{aspect-ratio:.82;border-radius:var(--radius-lg);background:linear-gradient(100deg, var(--surface-inset) 30%, var(--surface-hover) 50%, var(--surface-inset) 70%) 0 0 / 300% 100%;animation:1.2s linear infinite skeleton-19959fe1}@keyframes skeleton-19959fe1{to{background-position:-150% 0}}.gallery__empty[data-v-19959fe1]{color:var(--text-2);text-align:center;justify-items:center;gap:8px;padding:48px 16px;display:grid}.gallery__emoji[data-v-19959fe1]{font-size:44px;animation:3s ease-in-out infinite empty-wobble-19959fe1}@keyframes empty-wobble-19959fe1{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)translateY(-4px)}}.gallery__empty p[data-v-19959fe1]{max-width:420px;margin:0 0 8px}.gallery__more[data-v-19959fe1]{justify-content:center;display:flex}.gallery-detail[data-v-19959fe1]{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:28px;display:grid}.gallery-detail__thumb[data-v-19959fe1]{aspect-ratio:1;border-radius:var(--radius-xl);background:radial-gradient(circle at 50% 40%, var(--surface) 0%, var(--surface-inset) 75%);padding:10%}.gallery-detail__thumb img[data-v-19959fe1]{object-fit:contain;filter:drop-shadow(0 12px 20px #0003);width:100%;height:100%;display:block}.gallery-detail__info[data-v-19959fe1]{gap:14px;display:grid}.gallery-detail__author[data-v-19959fe1]{color:var(--text);align-items:center;gap:8px;margin:0;font-size:16px;font-weight:600;display:flex}.gallery-detail__date[data-v-19959fe1]{color:var(--text-3);font-weight:400}.gallery-detail__stats[data-v-19959fe1]{color:var(--text-2);gap:16px;display:flex}.gallery-detail__stats span[data-v-19959fe1]{align-items:center;gap:6px;display:inline-flex}.gallery-tags[data-v-19959fe1]{flex-wrap:wrap;gap:6px;display:flex}.gallery-tag[data-v-19959fe1]{border:1px solid var(--border);background:var(--surface-inset);height:26px;color:var(--text-2);border-radius:999px;padding:0 10px;font-size:12.5px}.gallery-tag[data-v-19959fe1]:hover{border-color:var(--accent-soft-border);color:var(--accent-text)}.gallery-detail__actions[data-v-19959fe1]{flex-wrap:wrap;gap:8px;display:flex}.gallery-detail__secondary[data-v-19959fe1]{gap:8px;display:flex}.link-button[data-v-19959fe1]{color:var(--accent-text);background:0 0;border:0;padding:0;text-decoration:underline}.is-filled[data-v-19959fe1]{fill:currentColor}@media (width<=760px){.gallery-detail[data-v-19959fe1]{grid-template-columns:1fr}}.share[data-v-965ee5a0]{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:20px;display:grid}.share__preview[data-v-965ee5a0]{aspect-ratio:1;border-radius:var(--radius-lg);background:radial-gradient(circle at 50% 40%, var(--surface) 0%, var(--surface-inset) 75%);color:var(--text-3);justify-content:center;align-items:center;padding:10%;display:flex}.share__preview img[data-v-965ee5a0]{object-fit:contain;filter:drop-shadow(0 8px 14px #0003);width:100%;height:100%;animation:share-in-965ee5a0 .6s var(--ease-spring)}@keyframes share-in-965ee5a0{0%{opacity:0;transform:rotate(-30deg)scale(.6)}}.share__fields[data-v-965ee5a0]{gap:12px;display:grid}.share__remix[data-v-965ee5a0]{margin:0}.share-done[data-v-965ee5a0]{text-align:center;justify-items:center;gap:14px;display:grid}.share-done__thumb[data-v-965ee5a0]{width:180px;height:180px;position:relative}.share-done__thumb img[data-v-965ee5a0]{object-fit:contain;width:100%;height:100%;animation:share-in-965ee5a0 .7s var(--ease-spring)}.share-done__confetti[data-v-965ee5a0]{animation:confetti-965ee5a0 .9s var(--ease-spring);font-size:34px;position:absolute;top:-6px;right:-14px}@keyframes confetti-965ee5a0{0%{opacity:0;transform:scale(.2)rotate(-40deg)}}.share-done p[data-v-965ee5a0]{color:var(--text-2);margin:0}.share-done__link[data-v-965ee5a0]{gap:8px;width:100%;display:flex}@media (width<=640px){.share[data-v-965ee5a0]{grid-template-columns:1fr}}.gallery-button[data-v-c4fb77cf]{border-color:var(--accent-soft-border);color:var(--accent-text)}.tool-button--mug.is-on[data-v-15385870]{color:var(--accent-text)}.tool-button--mug.is-on .svg-icon[data-v-15385870]{fill:currentColor;fill-opacity:.25}.ui-collapse{margin-top:calc(-1 * var(--stack-gap,7px));transition:grid-template-rows .28s var(--ease-out), margin-top .28s var(--ease-out);grid-template-rows:0fr;display:grid}.ui-collapse.is-open{grid-template-rows:1fr;margin-top:0}.ui-collapse__inner{min-height:0;overflow:hidden}.ui-collapse.is-settled>.ui-collapse__inner{overflow:visible}.ui-collapse__content{gap:var(--stack-gap,7px);opacity:0;visibility:hidden;transition:opacity .16s,visibility 0s linear .28s;display:grid}.ui-collapse.is-open .ui-collapse__content{opacity:1;visibility:visible;transition:opacity .22s 60ms,visibility linear}.help-tip{align-items:center;display:inline-flex;position:relative}.help-tip__button{width:20px;height:20px;color:var(--text-3);transition:color var(--duration) ease, background-color var(--duration) ease;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.help-tip__button:hover,.help-tip__button[aria-expanded=true]{color:var(--accent-text);background:var(--accent-soft)}.help-tip__button .svg-icon{width:16px;height:16px}.help-tip__bubble{z-index:90;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text-2);white-space:normal;text-align:left;box-shadow:var(--shadow-lg);transform-origin:var(--popover-origin,top center);padding:10px 12px;font-size:12.5px;font-weight:400;line-height:1.5;display:block;position:fixed}.slider{align-items:center;gap:10px;display:flex}.slider__input{cursor:pointer;appearance:none;background:0 0;flex:auto;min-width:0;height:22px}.slider__input::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) var(--fill), var(--switch-off) var(--fill));border-radius:999px;height:6px}.slider__input::-moz-range-track{background:linear-gradient(to right, var(--accent) var(--fill), var(--switch-off) var(--fill));border-radius:999px;height:6px}.slider__input::-webkit-slider-thumb{appearance:none;width:18px;height:18px;transition:transform var(--duration-fast) ease;background:#fff;border:0;border-radius:50%;margin-top:-6px;box-shadow:0 1px 3px #00000059,0 0 0 .5px #0000000f}.slider__input::-moz-range-thumb{background:#fff;border:0;border-radius:50%;width:18px;height:18px;box-shadow:0 1px 3px #00000059}.slider__input:active::-webkit-slider-thumb{transform:scale(1.12)}.slider__input:focus-visible{outline:none}.slider__input:focus-visible::-webkit-slider-thumb{box-shadow:var(--focus-ring)}.slider__value{border:1px solid var(--input-border);border-radius:var(--radius-sm);background:var(--unit-bg);min-width:52px;height:30px;color:var(--text);font-variant-numeric:tabular-nums;flex-shrink:0;padding:0 8px;font-size:13px}.slider__value:not(:disabled):hover{border-color:var(--input-border-hover)}.slider__value:disabled{cursor:default}.mdi-icon[data-v-4d62df20]{flex-shrink:0;width:1.2em;height:1.2em;display:inline-block}.library[data-v-77971d48]{gap:10px;display:grid}.library__toolbar[data-v-77971d48]{flex-wrap:wrap;gap:10px;display:flex}.library__search[data-v-77971d48]{border:1px solid var(--input-border);border-radius:var(--radius-sm);background:var(--input-bg);height:40px;color:var(--text-3);flex:260px;align-items:center;gap:8px;padding:0 12px;display:flex}.library__search[data-v-77971d48]:focus-within{border-color:var(--accent);box-shadow:var(--focus-ring)}.library__input[data-v-77971d48]{min-width:0;color:var(--text);background:0 0;border:0;outline:none;flex:auto}.library__count[data-v-77971d48]{margin:0}.library__grid[data-v-77971d48]{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px;max-height:min(52vh,480px);padding:2px;display:grid;overflow-y:auto}.library__item[data-v-77971d48]{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);min-width:0;height:84px;color:var(--text);transition:border-color var(--duration-fast) ease, background-color var(--duration-fast) ease, transform var(--duration-fast) ease;align-content:center;justify-items:center;gap:6px;padding:8px 4px;font-size:30px;display:grid}.library__item[data-v-77971d48]:hover{border-color:var(--accent-soft-border);background:var(--accent-soft);transform:translateY(-2px)}.library__item.is-active[data-v-77971d48]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.library__name[data-v-77971d48]{max-width:100%;color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.library__empty[data-v-77971d48]{color:var(--text-3);text-align:center;grid-column:1/-1;padding:40px 12px}.library__emoji[data-v-77971d48]{margin-bottom:6px;font-size:32px;display:block}.library__more[data-v-77971d48]{justify-content:center;display:flex}.upload[data-v-1248abd8]{gap:10px;display:grid}.upload__preview[data-v-1248abd8]{width:26px;height:26px}.artwork-picker[data-v-040eddec]{gap:10px;display:grid}.artwork-current[data-v-040eddec]{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-inset);align-items:center;gap:10px;padding:8px;display:flex}.artwork-current__icon[data-v-040eddec]{border-radius:var(--radius-sm);background:var(--surface);width:42px;height:42px;color:var(--accent);box-shadow:var(--shadow-xs);flex-shrink:0;justify-content:center;align-items:center;font-size:26px;display:inline-flex}.artwork-current__text[data-v-040eddec]{flex:auto;min-width:0;display:grid}.artwork-current__name[data-v-040eddec]{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.artwork-current__hint[data-v-040eddec]{color:var(--text-3);font-size:12px}.quick-grid[data-v-040eddec]{border:1px solid var(--border);border-radius:var(--radius-md);grid-template-columns:repeat(8,minmax(0,1fr));gap:3px;max-height:152px;padding:5px;display:grid;overflow-y:auto}.quick-grid__item[data-v-040eddec]{aspect-ratio:1;border-radius:var(--radius-xs);color:var(--text-2);transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease, transform var(--duration-fast) ease;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;font-size:18px;display:inline-flex}.quick-grid__item[data-v-040eddec]:hover{background:var(--surface-hover);color:var(--text);transform:scale(1.12)}.quick-grid__item.is-active[data-v-040eddec]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.swatches[data-v-2239fe12]{flex-wrap:wrap;gap:6px;display:flex}.swatch[data-v-2239fe12]{cursor:pointer;width:24px;height:24px;transition:transform var(--duration-fast) ease, box-shadow var(--duration) ease;border:1px solid #0000002e;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative;box-shadow:inset 0 1px 2px #ffffff59,inset 0 -2px 3px #0000001f}.swatch[data-v-2239fe12]:hover{transform:scale(1.12)}.swatch.is-active[data-v-2239fe12]{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--accent)}.swatch--custom[data-v-2239fe12]{border-style:dashed;border-color:var(--border-hover);background:var(--surface);color:var(--text-3)}.swatch--custom .svg-icon[data-v-2239fe12]{width:14px;height:14px}.swatch--custom input[data-v-2239fe12]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.drawing-thumb[data-v-96496336]{width:100%;height:100%;display:block}.drawing-thumb__disc[data-v-96496336]{stroke:var(--border-strong);stroke-width:.02px}.fonts[data-v-5a6be18d]{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.font[data-v-5a6be18d]{border:1px solid var(--input-border);border-radius:var(--radius-sm);background:var(--input-bg);min-width:0;color:var(--text-2);transition:border-color var(--duration) ease, background-color var(--duration) ease, color var(--duration) ease;justify-items:center;gap:2px;padding:6px 4px 7px;display:grid}.font[data-v-5a6be18d]:hover{border-color:var(--input-border-hover);color:var(--text)}.font.is-active[data-v-5a6be18d]{border-color:var(--accent-soft-border);background:var(--accent-soft);color:var(--text);box-shadow:inset 0 0 0 1px var(--accent-soft-border)}.font__sample[data-v-5a6be18d]{font-size:21px;line-height:1.1}.font__name[data-v-5a6be18d]{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;overflow:hidden}.pattern-picker[data-v-58c211ee]{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.pattern-option[data-v-58c211ee]{border:1px solid var(--input-border);border-radius:var(--radius-sm);background:var(--input-bg);min-width:0;color:var(--text-2);transition:border-color var(--duration) ease, background-color var(--duration) ease;justify-items:center;gap:4px;padding:7px 4px 6px;display:grid}.pattern-option svg[data-v-58c211ee]{width:34px;height:34px;transition:transform .4s var(--ease-spring)}.pattern-option:hover svg[data-v-58c211ee]{transform:rotate(20deg)}.pattern-option__base[data-v-58c211ee]{fill:var(--surface-inset);stroke:var(--border-strong);stroke-width:.6px}.pattern-option__ink[data-v-58c211ee]{color:var(--text-3);fill:currentColor}.pattern-option[data-v-58c211ee]:hover{border-color:var(--input-border-hover)}.pattern-option.is-active[data-v-58c211ee]{border-color:var(--accent-soft-border);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-soft-border)}.pattern-option.is-active .pattern-option__ink[data-v-58c211ee]{color:var(--accent)}.pattern-option__name[data-v-58c211ee]{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11.5px;overflow:hidden}.shape-picker[data-v-ea2b0471]{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.shape-option[data-v-ea2b0471]{border:1px solid var(--input-border);border-radius:var(--radius-sm);background:var(--input-bg);min-width:0;color:var(--text-3);transition:border-color var(--duration) ease, background-color var(--duration) ease, color var(--duration) ease, transform var(--duration-fast) ease;justify-items:center;gap:4px;padding:8px 4px 6px;display:grid}.shape-option svg[data-v-ea2b0471]{fill:currentColor;width:30px;height:30px;transition:transform .3s var(--ease-spring)}.shape-option[data-v-ea2b0471]:hover{border-color:var(--input-border-hover);color:var(--text-2)}.shape-option:hover svg[data-v-ea2b0471]{transform:rotate(-12deg)scale(1.06)}.shape-option.is-active[data-v-ea2b0471]{border-color:var(--accent-soft-border);background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft-border)}.shape-option__name[data-v-ea2b0471]{max-width:100%;color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.sketchpad[data-v-04b8e0f8]{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:20px;display:grid}.sketchpad__stage[data-v-04b8e0f8]{border-radius:var(--radius-lg);background:radial-gradient(circle at 1px 1px, var(--border-strong) 1px, transparent 0) 0 0 / 16px 16px, var(--surface-inset);justify-content:center;min-width:0;padding:8px;display:flex;position:relative}.sketchpad__canvas[data-v-04b8e0f8]{cursor:crosshair;touch-action:none;filter:drop-shadow(0 8px 18px #0000002e);max-width:100%;display:block}.sketchpad__canvas.is-erasing[data-v-04b8e0f8]{cursor:cell}.sketchpad__hint[data-v-04b8e0f8]{background:var(--viewport-chrome);color:var(--text-2);white-space:nowrap;pointer-events:none;border-radius:999px;margin:0;padding:6px 12px;font-size:13px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sketchpad__tools[data-v-04b8e0f8]{gap:14px;display:grid}.sketchpad__group[data-v-04b8e0f8]{gap:8px;display:grid}.symmetry-grid[data-v-04b8e0f8]{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.symmetry-option[data-v-04b8e0f8]{border:1px solid var(--input-border);border-radius:var(--radius-sm);background:var(--input-bg);min-width:0;color:var(--text-2);text-align:left;align-items:center;gap:8px;padding:6px 8px;font-size:12.5px;display:flex}.symmetry-option svg[data-v-04b8e0f8]{width:26px;height:26px;color:var(--text-3);flex-shrink:0}.symmetry-option__disc[data-v-04b8e0f8]{fill:var(--surface-inset);stroke:var(--border-strong)}.symmetry-option.is-active[data-v-04b8e0f8]{border-color:var(--accent-soft-border);background:var(--accent-soft);color:var(--text)}.symmetry-option.is-active svg[data-v-04b8e0f8]{color:var(--accent)}.sketchpad__count[data-v-04b8e0f8]{margin:0}@media (width<=760px){.sketchpad[data-v-04b8e0f8]{grid-template-columns:1fr}}.coaster-intro[data-v-7713aabd]{border-bottom:1px solid var(--border);gap:8px;padding:12px 14px;display:grid}.coaster-intro__buttons[data-v-7713aabd]{gap:8px;display:flex}.coaster-intro__buttons .btn[data-v-7713aabd]{flex:1 1 0}.coaster-intro__remix[data-v-7713aabd]{border:1px solid var(--accent-soft-border);border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--text-2);align-items:center;gap:8px;margin:0;padding:8px 10px;font-size:13px;line-height:1.4;display:flex}.coaster-intro__remix>.svg-icon[data-v-7713aabd]{color:var(--accent);flex-shrink:0}.coaster-intro__remix span[data-v-7713aabd]{flex:auto;min-width:0}.coaster-intro__close[data-v-7713aabd]{border-radius:var(--radius-xs);color:var(--text-3);background:0 0;border:0;flex-shrink:0;padding:2px;display:inline-flex}.coaster-intro__close[data-v-7713aabd]:hover{background:var(--surface-hover);color:var(--text)}.surprise-button .svg-icon[data-v-7713aabd]{transition:transform .3s var(--ease-spring)}.surprise-button:hover .svg-icon[data-v-7713aabd]{transform:rotate(-20deg)}.surprise-button.is-rolling .svg-icon[data-v-7713aabd]{animation:dice-roll-7713aabd .6s var(--ease-out)}@keyframes dice-roll-7713aabd{0%{transform:rotate(0)scale(1)}50%{transform:rotate(270deg)scale(1.3)}to{transform:rotate(360deg)scale(1)}}.sketch-card[data-v-7713aabd]{align-items:center;gap:12px;display:flex}.sketch-card__thumb[data-v-7713aabd]{border:1px dashed var(--border-hover);border-radius:var(--radius-md);background:var(--surface-inset);width:92px;height:92px;transition:border-color var(--duration) ease, transform .3s var(--ease-spring);flex-shrink:0;padding:4px;position:relative}.sketch-card__thumb[data-v-7713aabd]:hover{border-color:var(--accent);transform:rotate(-4deg)}.sketch-card__empty[data-v-7713aabd]{color:var(--text-3);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.sketch-card__empty .svg-icon[data-v-7713aabd]{width:26px;height:26px}.sketch-card__text[data-v-7713aabd]{gap:8px;min-width:0;display:grid}.sketch-card__text p[data-v-7713aabd]{color:var(--text-2);margin:0;font-size:13px;line-height:1.45}.themes[data-v-7713aabd]{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.theme-chip[data-v-7713aabd]{border-radius:var(--radius-sm);min-width:0;height:38px;transition:transform var(--duration-fast) ease, box-shadow var(--duration) ease;border:1px solid #0000001f;align-items:center;gap:8px;padding:0 10px;font-size:13px;font-weight:650;display:flex}.theme-chip[data-v-7713aabd]:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.theme-chip.is-active[data-v-7713aabd]{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--accent)}.theme-chip__dot[data-v-7713aabd]{border:1px solid #00000026;border-radius:50%;flex-shrink:0;width:14px;height:14px}.theme-chip__name[data-v-7713aabd]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.action-bar{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-xs);container:actionbar/inline-size}.action-bar__inner{align-items:center;gap:14px;min-height:72px;padding:11px 12px;display:flex}.action-divider{background:var(--divider);flex-shrink:0;width:1px;height:32px}.action-spacer{flex:auto}.action-break{display:none}.action-field{flex-shrink:0;align-items:center;gap:10px;display:flex}.action-field__label{color:var(--text-2);white-space:nowrap;font-size:14px}.action-select select{width:150px;height:42px}.action-toggle .switch__label{color:var(--text-2);white-space:nowrap}.action-bar__exports{flex-shrink:0;align-items:center;gap:10px;display:flex}.action-bar .btn--lg{height:50px}.action-bar .btn.is-disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.action-bar .btn.is-disabled:active{transform:none}.export-stl{min-width:190px}.generate-button{border-width:1.5px;flex-shrink:0;min-width:218px}.generate-button__icon{width:20px;height:20px;display:inline-flex}.generate-button__done{color:var(--accent)}.generate-button.is-stale{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.generate-button.is-nudged{animation:nudge .52s var(--ease-out)}@keyframes nudge{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.icon-swap-enter-active,.icon-swap-leave-active{transition:opacity .12s ease, transform .16s var(--ease-out)}.icon-swap-enter-from,.icon-swap-leave-to{opacity:0;transform:scale(.6)rotate(-30deg)}@container actionbar (width<=1220px){.action-field__label{display:none}.action-select select{width:136px}}@container actionbar (width<=1100px){.export-png__label{display:none}.export-stl{min-width:0}.export-png{width:50px;padding:0}.generate-button{min-width:0}.action-field__help{display:none}}@container actionbar (width<=900px){.action-bar__inner{flex-wrap:wrap;row-gap:10px}.action-divider,.action-spacer{display:none}.generate-button{flex:auto;order:1}.action-bar__exports{order:2}.action-break{flex-basis:100%;order:3;height:0;display:block}.action-field{order:4}.export-stl{min-width:0}}@container actionbar (width<=560px){.action-bar__inner{gap:10px;padding:10px}.action-bar__exports{display:contents}.action-bar .btn--lg{gap:6px;padding:0 12px;font-size:14px}.generate-button,.export-stl{flex:1 1 0;min-width:0}.generate-button{order:1}.export-stl{order:2}.export-png{order:5;margin-left:auto}.action-select select{width:128px}}@container actionbar (width<=420px){.generate-button__icon,.export-stl .svg-icon,.action-field .help-tip{display:none}.action-select select{width:124px}.action-bar .export-png{width:44px}}.site-footer{border-top:1px solid var(--border);background:var(--surface)}.site-footer__inner{max-width:900px;color:var(--text-3);text-align:center;justify-items:center;gap:10px;margin:0 auto;padding:40px 24px 48px;font-size:14px;line-height:1.6;display:grid}.site-footer__inner p{margin:0}.site-footer__inner strong{color:var(--text-2)}.site-footer__inner a strong{color:inherit}.site-footer__logo{opacity:.85;object-fit:contain;width:26px;height:26px;margin-bottom:8px}.site-footer__related{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.related-tool{border:1px solid var(--border);background:var(--surface-inset);height:32px;color:var(--text-2);transition:border-color var(--duration) ease, color var(--duration) ease, transform var(--duration-fast) ease;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-weight:500;display:inline-flex}.related-tool:hover{border-color:var(--accent-soft-border);color:var(--accent-text);text-decoration:none;transform:translateY(-1px)}.related-tool .svg-icon{width:16px;height:16px}.site-footer__links{flex-wrap:wrap;justify-content:center;gap:6px 18px;display:flex}.site-footer__links a{align-items:center;gap:6px;display:inline-flex}.ad-unit{flex-direction:column;justify-content:center;align-items:center;gap:4px;width:100%;min-width:0;display:flex}.ad-unit__label{color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;font-size:10.5px;font-weight:600}.popover-anchor{display:inline-flex;position:relative}.language-button{gap:6px;height:42px;padding:0 8px 0 10px}.language-button.is-open{background:var(--surface-hover)}.language-button__chevron{color:var(--text-3);width:15px!important;height:15px!important}.language-flag{object-fit:cover;border-radius:3px;width:22px;height:15px;box-shadow:0 0 0 1px #00000014}.app-header{z-index:50;height:var(--header-height);border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(14px);position:sticky;top:0}.app-header__inner{align-items:center;gap:18px;height:100%;padding:0 18px;display:flex}.brand{border-radius:var(--radius-sm);flex-shrink:0;align-items:center;gap:10px;margin-right:6px;padding:6px 4px;display:inline-flex}.brand__logo{object-fit:contain;width:34px;height:34px}.brand__name{color:var(--text);letter-spacing:-.01em;white-space:nowrap;font-size:16px;font-weight:700}.brand:hover{text-decoration:none}.header-ad{flex:none;align-items:center;width:468px;height:60px;display:flex}.app-header__spacer{flex:auto}.app-header__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.header-btn{height:42px}.header-btn.is-open{background:var(--surface-hover);color:var(--text)}.theme-toggle{width:42px;height:42px}.help-menu .menu-item>.svg-icon:last-child:not(:first-child){width:14px;height:14px}.support-item.is-thanked,.support-item.is-thanked>.svg-icon:first-child{color:var(--danger)}.support-item.is-thanked>.svg-icon:first-child{fill:currentColor}.shortcut-row{min-height:32px;color:var(--text-2);justify-content:space-between;align-items:center;gap:12px;padding:0 10px;font-size:13px;display:flex}.shortcut-keys{gap:3px;display:inline-flex}.app-header__inner.is-compact .header-btn__label{display:none}.app-header__inner.is-compact .header-btn{width:42px;padding:0}@media (width<=760px){.app-header__inner{gap:10px;padding:0 12px}.header-btn__label{display:none}.brand__logo{width:28px;height:28px}.brand__name{font-size:15px}.app-header__actions{gap:2px}.app-header__actions .header-btn,.app-header__actions .theme-toggle{background:0 0;border-color:#0000;width:38px}}@media (width<=520px){.brand__name{display:none}.app-header__inner{gap:8px;padding:0 8px}.app-header__actions .header-btn,.app-header__actions .theme-toggle{width:34px}.language-button{padding:0 6px}.language-button__chevron{display:none}}.export-modal{gap:20px;display:grid}.export-modal.has-ad{grid-template-columns:auto minmax(0,1fr);align-items:center}.export-modal__ad{justify-content:center;min-width:300px;display:flex}.export-modal__status{text-align:center;justify-items:center;gap:12px;padding:8px 0;display:grid}.export-modal__headline{color:var(--text);margin:0;font-size:17px;font-weight:600}.export-modal__text{color:var(--text-2);margin:0;font-size:14px;line-height:1.55}.countdown{width:104px;height:104px;position:relative}.countdown__ring{width:100%;height:100%;transform:rotate(-90deg)}.countdown__track{fill:none;stroke:var(--surface-inset);stroke-width:8px}.countdown__progress{fill:none;stroke:var(--accent);stroke-width:8px;stroke-linecap:round;transition-property:stroke-dashoffset;transition-timing-function:linear}.countdown__value{color:var(--text);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:34px;font-weight:700;display:flex;position:absolute;inset:0}.countdown__value .svg-icon{width:40px;height:40px;color:var(--accent)}.countdown.is-done{animation:countdown-pop .42s var(--ease-spring)}@keyframes countdown-pop{0%{transform:scale(1)}45%{transform:scale(1.08)}to{transform:scale(1)}}@media (width<=720px){.export-modal.has-ad{grid-template-columns:1fr}}.info-area{gap:24px;max-width:1120px;margin:0 auto;padding:40px 24px 64px;display:grid}.ad-row{justify-items:center;gap:16px;display:grid}.info-nav{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.info-nav__link{border:1px solid var(--border);background:var(--surface);height:40px;color:var(--text-2);transition:color var(--duration) ease, border-color var(--duration) ease, transform var(--duration-fast) ease;border-radius:999px;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:500;display:inline-flex}.info-nav__link:hover{border-color:var(--accent-soft-border);color:var(--accent-text);text-decoration:none;transform:translateY(-1px)}.info-nav__link .svg-icon{width:17px;height:17px}.info-section{scroll-margin-top:calc(var(--header-height) + 16px);border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);padding:28px}.info-section__header{align-items:center;gap:14px;margin-bottom:20px;display:flex}.info-section__icon{border-radius:var(--radius-md);background:var(--accent-soft);width:44px;height:44px;color:var(--accent-text);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.info-section__icon .svg-icon{width:22px;height:22px}.info-section__title{color:var(--text);letter-spacing:-.015em;margin:0;font-size:24px;font-weight:700}.info-section__subtitle{color:var(--text-3);margin:2px 0 0;font-size:15px}.print-guide{max-width:78ch}.print-guide .notice{margin:4px 0 16px}.faq-list{gap:10px;display:grid}.faq-item{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);transition:border-color var(--duration) ease, box-shadow var(--duration) ease}.faq-item:hover{border-color:var(--border-strong)}.faq-item.is-open{border-color:var(--accent-soft-border);box-shadow:var(--shadow-sm)}.faq-item__heading{margin:0}.faq-item__question{border-radius:var(--radius-md);width:100%;color:var(--text);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;font-size:15.5px;font-weight:600;display:flex}.faq-item__question:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.faq-item__icon{background:var(--surface-inset);width:28px;height:28px;color:var(--text-2);transition:transform .3s var(--ease-out), background-color var(--duration) ease, color var(--duration) ease;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.faq-item__icon .svg-icon{width:16px;height:16px}.faq-item.is-open .faq-item__icon{background:var(--accent-soft);color:var(--accent-text);transform:rotate(45deg)}.faq-item__answer{transition:grid-template-rows .32s var(--ease-out);grid-template-rows:0fr;display:grid}.faq-item.is-open .faq-item__answer{grid-template-rows:1fr}.faq-item__answer-inner{min-height:0;overflow:hidden}.faq-item__answer-inner .prose{margin:0;padding:0 18px 18px}.faq-footer{color:var(--text-3);text-align:center;margin:20px 0 0;font-size:14px}.changelog-body{position:relative}.changelog-body.is-collapsed:after{content:"";background:linear-gradient(to bottom, transparent, var(--surface));pointer-events:none;height:80px;position:absolute;bottom:0;left:0;right:0}.changelog-toggle{justify-content:center;margin-top:8px;display:flex}@media (width<=900px){.info-area{padding:28px 12px 48px}.info-section{padding:20px}}.viewport{border:1px solid var(--viewport-border);border-radius:var(--radius-lg);background:var(--viewport-bg);isolation:isolate;min-width:0;min-height:0;position:relative;overflow:hidden}.viewport__canvas{position:absolute;inset:0}.preview-canvas{touch-action:none;outline:none;width:100%;height:100%;display:block}.viewport__canvas[data-pointer-mode=rotate] .preview-canvas{cursor:grab}.viewport__canvas[data-pointer-mode=pan] .preview-canvas{cursor:move}.viewport__canvas[data-pointer-mode=zoom] .preview-canvas{cursor:ns-resize}.viewport__canvas.is-dragging[data-pointer-mode=rotate] .preview-canvas{cursor:grabbing}.viewport__toolbar{z-index:3;border:1px solid var(--viewport-chrome-border);border-radius:var(--radius-md);background:var(--viewport-chrome);max-width:calc(100% - 130px);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(12px);align-items:center;gap:2px;padding:5px;display:flex;position:absolute;top:14px;left:14px}.viewport__toolbar .segmented{background:0 0;border:0;padding:2px}.viewport__toolbar .segmented__item{min-width:44px;height:32px;font-size:13.5px;font-weight:600}.toolbar-divider{background:var(--border-strong);flex-shrink:0;width:1px;height:22px;margin:0 6px}.tool-button{border-radius:var(--radius-sm);height:34px;color:var(--text-2);white-space:nowrap;transition:background-color var(--duration) ease, color var(--duration) ease, transform var(--duration-fast) ease;background:0 0;border:0;align-items:center;gap:7px;padding:0 10px;font-size:13.5px;font-weight:500;display:inline-flex}.tool-button:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.tool-button:active:not(:disabled){transform:scale(.96)}.tool-button.is-active{background:var(--surface-active);color:var(--text)}.tool-button:disabled{opacity:.38;cursor:not-allowed}.tool-button .svg-icon{width:18px;height:18px}.tool-button--live.is-on{color:var(--accent-text)}.tool-button--live.is-on .svg-icon{fill:currentColor;fill-opacity:.25}@container stage (width<=860px){.tool-button__label{display:none}.tool-button{padding:0 9px}}@media (width<=600px){.tool-button--pointer,.toolbar-divider--tools{display:none}.viewport__toolbar{max-width:calc(100% - 20px);top:10px;left:10px}.viewport__toolbar .segmented__item{min-width:38px}.tool-button{padding:0 8px}.toolbar-divider{margin:0 3px}.view-cube{top:58px;right:6px;transform:scale(.8)}}.view-cube{z-index:3;perspective:320px;justify-content:center;align-items:center;width:84px;height:84px;display:flex;position:absolute;top:18px;right:22px}.view-cube__cube{width:50px;height:50px;transform-style:preserve-3d;position:relative}.view-cube__face{border:1px solid var(--cube-edge);background:var(--cube-face);color:var(--cube-text);font-family:var(--font-sans);backface-visibility:hidden;transition:background-color var(--duration) ease, color var(--duration) ease;border-radius:3px;justify-content:center;align-items:center;padding:0;font-size:15px;font-weight:600;line-height:1;display:flex;position:absolute;inset:0}.view-cube__face:hover,.view-cube__face:focus-visible{background:var(--accent);color:#fff;outline:none}.view-cube__face--pz{background:var(--cube-face-top);transform:translateZ(25px)}.view-cube__face--nz{background:var(--cube-face-shade);transform:rotateY(180deg)translateZ(25px)}.view-cube__face--px{background:var(--cube-face-side);transform:rotateY(90deg)translateZ(25px)rotate(-90deg)}.view-cube__face--nx{background:var(--cube-face-side);transform:rotateY(-90deg)translateZ(25px)rotate(90deg)}.view-cube__face--py{transform:rotateX(90deg)translateZ(25px)rotate(180deg)}.view-cube__face--ny{transform:rotateX(-90deg)translateZ(25px)}.viewport__ruler{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.ruler-line,.ruler-ext{stroke:var(--ruler);stroke-linecap:round}.ruler-line{stroke-width:2px}.ruler-ext{stroke-width:1.25px;opacity:.75}.ruler-arrow{fill:var(--ruler)}.ruler-label{z-index:1;background:var(--ruler-label-bg);color:var(--ruler);letter-spacing:.01em;white-space:nowrap;pointer-events:none;will-change:transform;border-radius:999px;padding:2px 8px;font-size:15px;font-weight:650;position:absolute;top:0;left:0}.viewport__status{z-index:4;position:absolute;top:72px;left:50%;transform:translate(-50%)}.chip--action{cursor:pointer;height:34px;transition:transform var(--duration-fast) ease, box-shadow var(--duration) ease;gap:8px;padding:0 8px 0 12px}.chip--action:hover{box-shadow:var(--shadow-md)}.chip--action:active{transform:scale(.97)}.chip--action strong{color:var(--text);font-weight:600}.stale-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;position:relative}.stale-dot:after{content:"";background:var(--accent);animation:ui-ping 1.6s var(--ease-out) infinite;border-radius:50%;position:absolute;inset:0}.viewport__empty{z-index:2;pointer-events:none;justify-content:center;align-items:center;padding:80px 24px;display:flex;position:absolute;inset:0}.empty-enter-active{transition:opacity .26s .12s}.empty-leave-active{transition:opacity .12s,transform .16s}.empty-enter-from,.empty-leave-to{opacity:0}.empty-leave-to{transform:scale(.96)}.empty-state{text-align:center;justify-items:center;gap:10px;max-width:440px;display:grid}.empty-state__icon{border:1px solid var(--viewport-chrome-border);background:var(--viewport-chrome);width:64px;height:64px;color:var(--accent-text);box-shadow:var(--shadow-md);border-radius:20px;justify-content:center;align-items:center;margin-bottom:6px;display:flex}.empty-state__icon .svg-icon{width:28px;height:28px}.empty-state:not(.is-busy) .empty-state__icon{animation:4s ease-in-out infinite empty-float}@keyframes empty-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.empty-state__title{color:var(--text);margin:0;font-size:17px;font-weight:600}.empty-state__hint{color:var(--text-3);margin:0;font-size:14px;line-height:1.5}.empty-state__keys{vertical-align:1px;gap:3px;margin-left:4px;display:inline-flex}.viewport__meta{z-index:3;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;bottom:14px;right:14px}.viewport__warnings{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.viewport__warnings:empty{display:none}.viewport__warnings .chip{cursor:help}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.settings-card__icon{border-radius:var(--radius-sm);background:var(--surface-inset);width:34px;height:34px;color:var(--text-2);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.settings-card__icon .svg-icon{width:18px;height:18px}.settings-card__subtitle{color:var(--text-3);margin:2px 0 0;font-size:12.5px;line-height:1.4}.settings-json.textarea{resize:vertical;min-height:210px}.settings-json.is-invalid{border-color:var(--danger)}.settings-hint--error{color:var(--danger-text)}.btn.is-copied{border-color:var(--accent-soft-border);color:var(--accent-text)}.file-button{position:relative;overflow:hidden}.file-button input[type=file]{opacity:0;cursor:pointer;position:absolute;inset:0}@media (width<=760px){.settings-grid{grid-template-columns:1fr}}.app-shell{min-height:100vh}.workbench{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);height:calc(100vh - var(--header-height));height:calc(100dvh - var(--header-height));gap:16px;min-height:620px;padding:14px 18px 18px;display:grid}.sidebar{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overscroll-behavior:contain;scroll-behavior:smooth;min-width:0;min-height:0;position:relative;overflow:hidden auto}.stage{grid-template-rows:minmax(0,1fr) auto;gap:12px;min-width:0;min-height:0;display:grid;container:stage/inline-size}@media (width<=1240px){.workbench{gap:12px;padding:12px}}@media (width<=900px){.workbench{flex-direction:column;height:auto;min-height:0;padding:10px;display:flex}.stage{display:contents}.viewport{order:1;height:58vh;min-height:340px}.sidebar{order:2;overflow:visible}.panel-tabs{top:var(--header-height)}.action-bar{z-index:30;box-shadow:var(--shadow-lg);order:3;position:sticky;bottom:10px}.tool-button__label{display:none}}
