:root{--color-canvas:#08080a;--color-bg:#0f0f12;--color-surface:#16161b;--color-surface-raised:#202027;--color-surface-hover:#2a2a32;--color-border:#2a2a31;--color-border-strong:#3a3a44;--color-text:#f2f2f5;--color-text-muted:#9a9aa6;--color-text-subtle:#6e6e7a;--color-accent:#4f6ef7;--color-accent-hover:#3f5ee6;--color-accent-soft:#1f2645;--color-accent-text:#a5b6ff;--color-danger:#ffb4b4;--color-danger-bg:#3a1d1f;--color-danger-solid:#e5484d;--color-danger-solid-hover:#d13b40;--color-success:#8ee4a8;--color-success-bg:#16311f;--color-focus:#7c95ff;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--control-sm:36px;--control-md:40px;--control-lg:48px;--font-xs:.75rem;--font-sm:.8125rem;--font-md:.875rem;--font-base:.9375rem;--font-lg:1.0625rem;--shadow-sm:0 1px 3px #0006;--shadow-lg:0 24px 64px #0000008c;--ease:cubic-bezier(.2, 0, 0, 1);--duration:.15s;--header-height:56px;color:var(--color-text);background:var(--color-bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-rendering:optimizelegibility;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:100%;line-height:1.5}@media (pointer:coarse){:root{--control-sm:44px;--control-md:44px;--header-height:60px}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--color-bg);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;margin:0}img,canvas{max-width:100%;display:block}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}::selection{background:var(--color-accent-soft)}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);z-index:30;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);color:var(--color-text);font-size:var(--font-xs);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--duration) var(--ease), transform var(--duration) var(--ease);background:#26262e;padding:5px 9px;font-weight:500;line-height:1.3;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%,-3px)}[data-tooltip-align=end]:after{left:auto;right:0;transform:translateY(-3px)}@media (hover:hover) and (pointer:fine){[data-tooltip]:hover:after{opacity:1;transition-delay:.45s;transform:translate(-50%)}[data-tooltip-align=end]:hover:after{transform:translateY(0)}}[data-tooltip]:focus-visible:after{opacity:1;transform:translate(-50%)}[data-tooltip-align=end]:focus-visible:after{transform:translateY(0)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.panel-section{width:100%;animation:panel-section-in .2s var(--ease);flex-direction:column;display:flex}.panel-section__header{z-index:3;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) 0 var(--space-3);background:var(--color-surface);display:flex;position:sticky;top:0}.panel-section__heading{min-width:0}.panel-section__title{font-size:var(--font-lg);letter-spacing:-.01em;margin:0;font-weight:650;line-height:1.25}.panel-section__description{color:var(--color-text-muted);font-size:var(--font-sm);margin:2px 0 0;line-height:1.35}.panel-section__body{gap:var(--space-4);padding-bottom:var(--space-4);flex-direction:column;display:flex}.panel-section__reset{min-height:var(--control-sm);padding:0 var(--space-3);border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text);font-size:var(--font-sm);white-space:nowrap;transition:background-color var(--duration) var(--ease), opacity var(--duration) var(--ease), transform .1s var(--ease);border-radius:999px;flex-shrink:0;align-items:center;gap:6px;font-weight:500;display:inline-flex}.panel-section__reset svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.panel-section__reset:hover:not(:disabled){background:var(--color-surface-hover)}.panel-section__reset:active:not(:disabled){transform:scale(.96)}.panel-section__reset:disabled{opacity:.35}@keyframes panel-section-in{0%{opacity:0;transform:translateY(4px)}}.slider{flex-direction:column;gap:2px;display:flex}.slider__header{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.slider__label{font-size:var(--font-md);font-weight:500}.slider__value{min-width:4ch;color:var(--color-text-muted);font-size:var(--font-sm);font-variant-numeric:tabular-nums;text-align:right;transition:color var(--duration) var(--ease)}.slider.is-changed .slider__value{color:var(--color-accent-text)}.slider__input{--track-height:4px;--thumb-size:20px;width:100%;height:var(--control-sm);cursor:pointer;touch-action:pan-y;appearance:none;background:0 0;margin:0}@media (pointer:coarse){.slider__input{--thumb-size:26px}}.slider__input:disabled{cursor:not-allowed;opacity:.4}.slider__input:focus-visible{outline:none}.slider__input::-webkit-slider-runnable-track{height:var(--track-height);background:linear-gradient(to right, var(--color-border-strong) var(--fill-from), var(--color-accent) var(--fill-from), var(--color-accent) var(--fill-to), var(--color-border-strong) var(--fill-to));border-radius:999px}.slider__input::-moz-range-track{height:var(--track-height);background:linear-gradient(to right, var(--color-border-strong) var(--fill-from), var(--color-accent) var(--fill-from), var(--color-accent) var(--fill-to), var(--color-border-strong) var(--fill-to));border-radius:999px}.slider__input::-webkit-slider-thumb{width:var(--thumb-size);height:var(--thumb-size);margin-top:calc((var(--track-height) - var(--thumb-size)) / 2);box-shadow:var(--shadow-sm);appearance:none;transition:transform .1s var(--ease), box-shadow var(--duration) var(--ease);background:#fff;border:none;border-radius:50%}.slider__input::-moz-range-thumb{width:var(--thumb-size);height:var(--thumb-size);box-shadow:var(--shadow-sm);transition:transform .1s var(--ease), box-shadow var(--duration) var(--ease);background:#fff;border:none;border-radius:50%}.slider__input:not(:disabled):hover::-webkit-slider-thumb{box-shadow:var(--shadow-sm), 0 0 0 6px #ffffff14}.slider__input:not(:disabled):hover::-moz-range-thumb{box-shadow:var(--shadow-sm), 0 0 0 6px #ffffff14}.slider__input:not(:disabled):active::-webkit-slider-thumb{transform:scale(1.15)}.slider__input:not(:disabled):active::-moz-range-thumb{transform:scale(1.15)}.slider__input:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--color-focus)}.slider__input:focus-visible::-moz-range-thumb{box-shadow:0 0 0 3px var(--color-focus)}.adjust-panel__controls{gap:var(--space-2) var(--space-6);display:grid}@media (width>=600px) and (width<=899px){.adjust-panel__controls{grid-template-columns:1fr 1fr}}.color-swatches{gap:var(--space-2);flex-direction:column;display:flex}.color-swatches__label{font-size:var(--font-md);font-weight:500}.color-swatches__list{grid-template-columns:repeat(auto-fill, minmax(var(--swatch-size), 1fr));gap:var(--space-2) var(--space-1);--swatch-size:26px;display:grid}.color-swatch{width:100%;max-width:var(--swatch-size);aspect-ratio:1;background:var(--swatch);transition:box-shadow var(--duration) var(--ease), transform .1s var(--ease);border:none;border-radius:50%;justify-self:center;padding:0;position:relative;box-shadow:inset 0 0 0 1px #ffffff2e}.color-swatch:active:not(:disabled){transform:scale(.92)}.color-swatch[aria-checked=true],.color-swatch--custom[data-checked=true]{box-shadow:inset 0 0 0 2px var(--color-surface), 0 0 0 2px var(--color-text)}.color-swatch:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.color-swatch--custom:has(:focus-visible){outline:2px solid var(--color-focus);outline-offset:3px}@media (pointer:coarse){.color-swatches__list{--swatch-size:44px}}.color-swatch:disabled{cursor:not-allowed;opacity:.4}.color-swatch--custom:has(:disabled){cursor:not-allowed;opacity:.4}.color-swatch--custom{cursor:pointer;background:radial-gradient(circle, var(--swatch,transparent) 0 38%, transparent 40%), conic-gradient(#ff3b30, #fc0, #34c759, #0a84ff, #bf5af2, #ff3b30)}.color-swatch--custom input{opacity:0;width:100%;height:100%;cursor:inherit;position:absolute;inset:0}.segmented{border-radius:var(--radius-md);background:var(--color-bg);border:1px solid var(--color-border);grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;padding:3px;display:grid}.segmented__option{min-width:0;min-height:var(--control-sm);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--font-sm);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;transition:background-color var(--duration) var(--ease), color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);background:0 0;border:none;padding:0 2px;font-weight:500;overflow:hidden}.segmented__option:hover:not(:disabled){color:var(--color-text)}.segmented__option[aria-checked=true]{background:var(--color-surface-raised);color:var(--color-text);box-shadow:var(--shadow-sm), inset 0 0 0 1px #ffffff0f}.segmented__option:disabled{cursor:not-allowed;opacity:.4}.decorate-actions{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.decorate-action{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-lg);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);font-size:var(--font-md);white-space:nowrap;transition:background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), transform .1s var(--ease);font-weight:600;display:flex}@media (width>=900px){.decorate-action{padding:0 var(--space-2);font-size:var(--font-sm);gap:6px}}.decorate-action:hover:not(:disabled){background:var(--color-surface-hover)}.decorate-action:active:not(:disabled){transform:scale(.97)}.decorate-action[aria-pressed=true]{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-text)}.decorate-action:disabled{cursor:not-allowed;opacity:.4}.decorate-icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:18px;height:18px}.decorate-hint{color:var(--color-text-muted);font-size:var(--font-sm);margin:0;line-height:1.4}.decorate-editor{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);scroll-margin:88px 0 var(--space-3);animation:decorate-editor-in .18s var(--ease);flex-direction:column;display:flex}.decorate-group{gap:var(--space-2);flex-direction:column;display:flex}.decorate-group__label{font-size:var(--font-md);font-weight:500}.decorate-text-input{width:100%;min-height:64px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);resize:vertical;transition:border-color var(--duration) var(--ease);font-size:1rem;line-height:1.4}.decorate-text-input:focus{border-color:var(--color-accent);outline:none}.decorate-delete,.decorate-secondary{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-md);font-size:var(--font-md);transition:background-color var(--duration) var(--ease);border-radius:999px;font-weight:500;display:flex}.decorate-delete{border:1px solid var(--color-danger-bg);color:var(--color-danger);background:0 0}.decorate-delete:hover{background:var(--color-danger-bg)}.decorate-secondary{border:1px solid var(--color-border);background:var(--color-surface-raised)}.decorate-secondary:hover:not(:disabled){background:var(--color-surface-hover)}.decorate-secondary:disabled{cursor:default;opacity:.35}.sticker-grid{gap:var(--space-2);grid-template-columns:repeat(6,1fr);display:grid}@media (width<=374px){.sticker-grid{gap:var(--space-1)}}.sticker-button{aspect-ratio:1;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);transition:background-color var(--duration) var(--ease), transform .1s var(--ease);place-items:center;padding:0;font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:1.5rem;line-height:1;display:grid}.sticker-button:hover:not(:disabled){background:var(--color-surface-hover)}.sticker-button:active:not(:disabled){transform:scale(.9)}.sticker-button:disabled{cursor:not-allowed;opacity:.4}@keyframes decorate-editor-in{0%{opacity:0;transform:translateY(4px)}}.upload-button{justify-content:center;align-items:center;gap:var(--space-2);color:var(--color-text);white-space:nowrap;transition:background-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease), transform .1s var(--ease);border:1px solid #0000;border-radius:999px;font-weight:600;display:inline-flex}.upload-button:active{transform:scale(.97)}.upload-button__icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:20px;height:20px}.upload-button--primary{min-height:52px;padding:0 var(--space-6);background:var(--color-accent);color:#fff;font-size:1rem;box-shadow:0 6px 20px #4f6ef74d}.upload-button--primary:hover{background:var(--color-accent-hover);box-shadow:0 8px 24px #4f6ef766}.upload-button--secondary{min-height:var(--control-md);padding:0 var(--space-4);background:var(--color-surface-raised);border-color:var(--color-border);font-size:var(--font-md);font-weight:500}.upload-button--secondary .upload-button__icon{width:18px;height:18px}.upload-button--secondary:hover{background:var(--color-surface-hover)}.drawing-layer{z-index:1;pointer-events:none;width:100%;max-width:none;height:100%;position:absolute;inset:0}.drawing-layer.is-active{pointer-events:auto;cursor:crosshair;touch-action:none}.overlay-item{white-space:pre;text-align:center;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:4px;padding:.08em .2em;position:absolute;transform:translate(-50%,-50%)}.overlay-item:active{cursor:grabbing}.overlay-item--sticker{padding:.05em}.overlay-item:focus-visible{outline:none}.overlay-item.is-selected{outline-offset:2px;background:#0000002e;outline:1.5px dashed #fffffff2}.editor-stage.is-drawing .overlay-item{pointer-events:none}.overlay-item__delete{background:#e5484d;border:2px solid #fff;border-radius:50%;place-items:center;width:26px;height:26px;padding:0;display:grid;position:absolute;top:-14px;right:-14px;box-shadow:0 1px 4px #0006}.overlay-item__delete:before{content:"";border-radius:50%;position:absolute;inset:-9px}.overlay-item__delete svg{fill:none;stroke:#fff;stroke-width:3px;stroke-linecap:round;width:12px;height:12px}.editor-canvas{--stage-gap:var(--space-3);place-items:center;width:100%;height:100%;display:grid;position:relative;container-type:size}@media (width>=900px){.editor-canvas{--stage-gap:var(--space-6)}}.editor-canvas__filters{width:0;height:0;position:absolute}.editor-stage{width:min(100cqw - 2 * var(--stage-gap), (100cqh - 2 * var(--stage-gap)) * var(--ratio));aspect-ratio:var(--ratio);animation:editor-fade-in .25s var(--ease);-webkit-user-select:none;user-select:none;position:relative;overflow:hidden;box-shadow:0 8px 40px #00000073;container-type:inline-size}.editor-canvas>.editor-stage{grid-area:1/1}.editor-stage.is-hidden{visibility:hidden}.editor-stage__original{-webkit-user-drag:none;width:100%;max-width:none;height:100%;display:block}.editor-canvas__badge{top:var(--space-3);z-index:5;padding:6px var(--space-3);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:var(--font-xs);animation:editor-badge-in .18s var(--ease);letter-spacing:.02em;white-space:nowrap;pointer-events:none;background:#000000b3;border:1px solid #ffffff1f;border-radius:999px;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.editor-canvas__image{-webkit-user-drag:none;width:100%;max-width:none;height:100%;display:block}.editor-empty{width:100%;height:100%;padding:var(--space-4);place-items:center;display:grid}.editor-empty__card{width:min(440px,100%);padding:var(--space-6) var(--space-6) var(--space-5);border:1.5px dashed var(--color-border-strong);border-radius:var(--radius-lg);text-align:center;transition:border-color var(--duration) var(--ease), background-color var(--duration) var(--ease);background:#ffffff04;flex-direction:column;align-items:center;display:flex}.app-canvas.is-dragging .editor-empty__card{border-color:var(--color-accent);background:var(--color-accent-soft)}.editor-empty__icon{width:64px;height:64px;margin-bottom:var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface-raised);border:1px solid var(--color-border);place-items:center;display:grid}.editor-empty__icon svg{fill:none;width:28px;height:28px;stroke:var(--color-text-muted);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.editor-empty__title{margin:0 0 var(--space-1);letter-spacing:-.01em;font-size:1.25rem;font-weight:650}.editor-empty__text{max-width:300px;margin:0 0 var(--space-5);color:var(--color-text-muted);font-size:var(--font-base);line-height:1.45}.editor-empty__text--touch{display:none}@media (hover:none){.editor-empty__text--pointer{display:none}.editor-empty__text--touch{display:inline}}.editor-empty__formats{margin:var(--space-4) 0 0;color:var(--color-text-subtle);font-size:var(--font-xs)}@keyframes editor-fade-in{0%{opacity:0;transform:scale(.98)}}@keyframes editor-badge-in{0%{opacity:0;transform:translate(-50%,-4px)}}.export-dialog{width:min(420px, calc(100vw - 2 * var(--space-4)));max-height:calc(100dvh - 2 * var(--space-4));border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-lg);padding:0;overflow-y:auto}.export-dialog[open]{animation:export-dialog-in .18s var(--ease)}.export-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009}.export-dialog__body{gap:var(--space-4);padding:var(--space-6);flex-direction:column;display:flex}.export-dialog__header{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.export-dialog__title{margin:0;font-size:1.125rem;font-weight:600}.export-dialog__size{color:var(--color-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.8125rem}.export-dialog__group{gap:var(--space-2);flex-direction:column;display:flex}.export-dialog__label{font-size:.875rem;font-weight:500}.export-dialog__hint{color:var(--color-text-muted);margin:0;font-size:.8125rem}.export-dialog__status:empty{display:none}.export-dialog__error,.export-dialog__success{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);margin:0;font-size:.875rem;display:flex}.export-dialog__error{background:var(--color-danger-bg);color:var(--color-danger)}.export-dialog__success{background:var(--color-success-bg);color:var(--color-success)}.export-dialog__success svg{fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:18px;height:18px}.export-dialog__actions{justify-content:flex-end;gap:var(--space-2);display:flex}.export-dialog__cancel,.export-dialog__download{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-4);white-space:nowrap;transition:background-color var(--duration) var(--ease);border-radius:999px;font-size:.9375rem;font-weight:600;display:inline-flex}.export-dialog__cancel{border:1px solid var(--color-border);background:var(--color-surface-raised)}.export-dialog__cancel:hover:not(:disabled){background:var(--color-surface-hover)}.export-dialog__download{background:var(--color-accent);color:#fff;border:1px solid #0000;min-width:170px}.export-dialog__download:hover:not(:disabled){background:var(--color-accent-hover)}.export-dialog__download svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.export-dialog__cancel:disabled,.export-dialog__download:disabled{cursor:progress;opacity:.7}.export-dialog__cancel:focus-visible,.export-dialog__download:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.export-dialog__spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite export-spin}@media (width<=480px){.export-dialog{border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-width:1px 0 0;width:100%;max-width:none;margin:auto 0 0}.export-dialog[open]{animation-name:export-sheet-in}.export-dialog__body{padding:var(--space-6) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom))}.export-dialog__actions{flex-direction:column-reverse}}@keyframes export-dialog-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}@keyframes export-sheet-in{0%{transform:translateY(100%)}}@keyframes export-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.export-dialog[open]{animation:none}.export-dialog__spinner{animation-duration:1.6s}}.filter-panel__defs{width:0;height:0;position:absolute}.filter-tiles{gap:var(--space-2);margin:0 calc(-1 * var(--space-4));padding:2px var(--space-4) var(--space-1);scroll-snap-type:x proximity;scrollbar-width:none;overscroll-behavior-x:contain;display:flex;overflow-x:auto}.filter-tiles::-webkit-scrollbar{display:none}.filter-tile{scroll-snap-align:start;background:0 0;border:none;flex-direction:column;flex:0 0 76px;align-items:center;gap:6px;padding:0;display:flex}.filter-tile:disabled{cursor:not-allowed;opacity:.4}.filter-tile__preview{aspect-ratio:1;border-radius:var(--radius-md);width:100%;position:relative;overflow:hidden}.filter-tile__preview img,.filter-tile__sample{object-fit:cover;width:100%;height:100%;display:block}.filter-tile__sample{background:linear-gradient(#0000 55%,#00000073),linear-gradient(135deg,#e76f51,#f4a261 30%,#2a9d8f 65%,#457b9d)}.filter-tile__preview:after{content:"";border-radius:inherit;transition:box-shadow var(--duration) var(--ease);position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff0f}.filter-tile[aria-checked=true] .filter-tile__preview:after{box-shadow:inset 0 0 0 2px var(--color-accent), inset 0 0 0 4px #00000059}.filter-tile__check{background:var(--color-accent);fill:none;stroke:#fff;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;border-radius:50%;width:20px;height:20px;padding:3px;position:absolute;top:5px;right:5px}.filter-tile__label{max-width:100%;color:var(--color-text-muted);font-size:var(--font-xs);white-space:nowrap;text-overflow:ellipsis;transition:color var(--duration) var(--ease);font-weight:500;overflow:hidden}.filter-tile[aria-checked=true] .filter-tile__label{color:var(--color-accent-text)}.filter-tile:hover:not(:disabled) .filter-tile__label{color:var(--color-text)}.filter-tile:focus-visible{outline:none}.filter-tile:focus-visible .filter-tile__preview{outline:2px solid var(--color-focus);outline-offset:2px}@media (width>=900px){.filter-tiles{gap:var(--space-3) var(--space-2);grid-template-columns:repeat(3,1fr);margin:0;padding:0;display:grid;overflow:visible}}.number-field{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.number-field__label{color:var(--color-text-muted);font-size:.75rem}.number-field__box{height:var(--control-lg);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);transition:border-color var(--duration) var(--ease);align-items:center;display:flex}.number-field__box:focus-within{border-color:var(--color-accent)}.number-field__input{font-variant-numeric:tabular-nums;background:0 0;border:none;outline:none;flex:1;min-width:0;padding:0;font-size:1rem}.number-field__input:disabled{cursor:not-allowed}.number-field:has(:disabled){opacity:.4}.number-field__suffix{color:var(--color-text-muted);font-size:.8125rem}.switch{justify-content:space-between;align-items:center;gap:var(--space-3);cursor:pointer;min-height:44px;display:flex;position:relative}.switch:has(:disabled){cursor:not-allowed;opacity:.4}.switch__label{font-size:.875rem;font-weight:500}.switch__input{opacity:0;width:1px;height:1px;margin:0;position:absolute}.switch__track{background:var(--color-border);width:44px;height:26px;transition:background-color var(--duration) var(--ease);border-radius:999px;flex-shrink:0;position:relative}.switch__track:after{content:"";width:20px;height:20px;transition:transform var(--duration) var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0006}.switch__input:checked+.switch__track{background:var(--color-accent)}.switch__input:checked+.switch__track:after{transform:translate(18px)}.switch__input:focus-visible+.switch__track{outline:2px solid var(--color-focus);outline-offset:2px}.transform-actions{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.transform-action{justify-content:center;align-items:center;gap:var(--space-1);min-height:64px;padding:var(--space-2) var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);font-size:var(--font-xs);text-align:center;transition:background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), transform .1s var(--ease);flex-direction:column;font-weight:500;line-height:1.2;display:flex}.transform-action svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.transform-action:hover:not(:disabled){background:var(--color-surface-hover)}.transform-action:active:not(:disabled){transform:scale(.96)}.transform-action[aria-pressed=true]{border-color:var(--color-accent);color:var(--color-accent-text);background:var(--color-accent-soft)}.transform-action:disabled{cursor:not-allowed;opacity:.35}.transform-group{gap:var(--space-2);flex-direction:column;display:flex}.transform-group__header{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.transform-group__label{font-size:var(--font-md);font-weight:500}.transform-group__meta{color:var(--color-text-muted);font-size:var(--font-xs);font-variant-numeric:tabular-nums}.resize-fields{align-items:end;gap:var(--space-2);grid-template-columns:1fr auto 1fr;display:grid}.resize-fields__times{color:var(--color-text-muted);padding-bottom:11px}.confirm-dialog{width:min(400px, calc(100vw - 2 * var(--space-4)));max-height:calc(100dvh - 2 * var(--space-4));border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-lg);padding:0;overflow-y:auto}.confirm-dialog[open]{animation:confirm-dialog-in .18s var(--ease)}.confirm-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009}.confirm-dialog__body{padding:var(--space-6)}.confirm-dialog__title{margin:0 0 var(--space-2);font-size:var(--font-lg);letter-spacing:-.01em;font-weight:650}.confirm-dialog__message{margin:0 0 var(--space-6);color:var(--color-text-muted);font-size:var(--font-base);line-height:1.5}.confirm-dialog__actions{justify-content:flex-end;gap:var(--space-2);display:flex}.confirm-dialog__cancel,.confirm-dialog__confirm{min-height:44px;padding:0 var(--space-5);font-weight:600;font-size:var(--font-base);transition:background-color var(--duration) var(--ease), transform .1s var(--ease);border-radius:999px}.confirm-dialog__cancel:active,.confirm-dialog__confirm:active{transform:scale(.97)}.confirm-dialog__cancel{border:1px solid var(--color-border);background:var(--color-surface-raised)}.confirm-dialog__cancel:hover{background:var(--color-surface-hover)}.confirm-dialog__confirm{background:var(--color-danger-solid);color:#fff;border:1px solid #0000}.confirm-dialog__confirm:hover{background:var(--color-danger-solid-hover)}@media (width<=480px){.confirm-dialog{border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-width:1px 0 0;width:100%;max-width:none;margin:auto 0 0}.confirm-dialog[open]{animation-name:confirm-sheet-in}.confirm-dialog__body{padding:var(--space-6) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom))}.confirm-dialog__actions{flex-direction:column-reverse}}@keyframes confirm-dialog-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}@keyframes confirm-sheet-in{0%{transform:translateY(100%)}}.toast-region{left:50%;bottom:var(--space-4);z-index:20;width:max-content;max-width:calc(100% - 2 * var(--space-4));pointer-events:none;position:absolute;transform:translate(-50%)}.toast{align-items:center;gap:var(--space-2);min-height:var(--control-lg);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-lg);font-size:var(--font-md);pointer-events:auto;animation:toast-in .22s var(--ease);background:#202027f0;display:flex}.toast--error{color:var(--color-danger);background:#32181af2;border-color:#5a2a2d}.toast__icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:18px;height:18px}.toast--info .toast__icon{color:var(--color-success)}.toast__message{padding:var(--space-1) 0;line-height:1.35}.toast__action,.toast__close{min-width:var(--control-sm);min-height:var(--control-sm);border-radius:var(--radius-sm);transition:background-color var(--duration) var(--ease);background:0 0;border:none;flex-shrink:0;place-items:center;display:grid}.toast__action{padding:0 var(--space-3);color:var(--color-accent-text);font-size:var(--font-md);font-weight:600}.toast__close{color:var(--color-text-muted)}.toast__close svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:16px;height:16px}.toast__action:hover,.toast__close:hover{background:#ffffff14}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.editor-tabs{background:var(--color-surface);flex-shrink:0;grid-template-columns:repeat(4,1fr);display:grid}.editor-tab{min-height:60px;padding:var(--space-2) var(--space-1);color:var(--color-text-muted);font-size:var(--font-xs);letter-spacing:.01em;transition:color var(--duration) var(--ease);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-weight:600;display:flex;position:relative}.editor-tab:hover{color:var(--color-text)}.editor-tab:focus-visible{outline-offset:-4px;border-radius:var(--radius-md)}.editor-tab__icon{width:48px;height:28px;transition:background-color var(--duration) var(--ease);border-radius:999px;place-items:center;display:grid;position:relative}.editor-tab svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.editor-tab[aria-selected=true]{color:var(--color-accent-text)}.editor-tab[aria-selected=true] .editor-tab__icon{background:var(--color-accent-soft)}.editor-tab__dot{border:1.5px solid var(--color-surface);background:var(--color-accent);box-sizing:content-box;border-radius:50%;width:7px;height:7px;position:absolute;top:2px;right:9px}@media (width<=899px){.editor-tabs{padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--color-border);order:2}}@media (width>=900px){.editor-tabs{padding:0 var(--space-2);border-bottom:1px solid var(--color-border)}.editor-tab{min-height:64px}.editor-tab:after{content:"";background:var(--color-accent);height:2px;transition:transform .2s var(--ease);border-radius:2px 2px 0 0;position:absolute;bottom:-1px;left:20%;right:20%;transform:scaleX(0)}.editor-tab[aria-selected=true]:after{transform:scaleX(1)}.editor-tab[aria-selected=true] .editor-tab__icon{background:0 0}}.header-actions{align-items:center;gap:var(--space-2);min-width:0;display:flex}.header-actions__group{gap:var(--space-1);display:flex}.header-actions__divider{width:1px;height:24px;margin:0 var(--space-1);background:var(--color-border)}.header-button{height:var(--control-md);padding:0 var(--space-3);border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text);font-size:var(--font-md);white-space:nowrap;transition:background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), opacity var(--duration) var(--ease), transform .1s var(--ease);border-radius:999px;justify-content:center;align-items:center;gap:6px;font-weight:500;display:inline-flex}.header-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:18px;height:18px}.header-button:hover:not(:disabled){background:var(--color-surface-hover)}.header-button:active:not(:disabled){transform:scale(.95)}.header-button:disabled{opacity:.35}.header-button--primary{background:var(--color-accent);color:#fff;border-color:#0000;font-weight:600}.header-button--primary:hover:not(:disabled){background:var(--color-accent-hover)}.header-button--compare{display:none}.header-button--compare[aria-pressed=true]{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-text)}.header-compare .segmented{padding:2px}.header-compare .segmented__option{min-height:calc(var(--control-md) - 6px);padding:0 var(--space-3);font-size:var(--font-sm)}@media (pointer:coarse){.header-compare .segmented{padding:0}.header-compare .segmented__option{min-height:44px}}@media (width<=1023px){.header-button:not(.header-button--primary){width:var(--control-md);padding:0}.header-button:not(.header-button--primary) .header-button__label{display:none}}@media (width<=767px){.header-actions .upload-button{width:var(--control-md);padding:0}.header-actions .upload-button__label{display:none}}@media (width<=599px){.header-actions{gap:var(--space-1)}.header-actions__divider,.header-compare{display:none}.header-button--compare{display:inline-flex}.header-actions .header-button,.header-actions .upload-button{width:44px;height:44px;min-height:44px;padding:0}.header-actions .header-button--primary{width:auto;padding:0 var(--space-3)}.header-actions .header-button--primary .header-button__label{display:inline}}@media (width<=359px){.header-actions .header-button--primary{width:44px;padding:0}.header-actions .header-button--primary .header-button__label{display:none}}.app-shell{flex-direction:column;height:100dvh;display:flex}.app-header{z-index:10;justify-content:space-between;align-items:center;gap:var(--space-3);min-height:calc(var(--header-height) + env(safe-area-inset-top));padding:env(safe-area-inset-top) var(--space-4) 0;border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;display:flex;position:relative}.app-brand{align-items:center;gap:10px;min-width:0;display:flex}.app-brand__logo{border-radius:8px;flex-shrink:0;box-shadow:0 2px 10px #5b7cfa59}.app-brand__text{align-items:baseline;gap:var(--space-3);min-width:0;display:flex}.app-title{font-size:var(--font-lg);letter-spacing:-.02em;white-space:nowrap;margin:0;font-weight:700}.app-tagline{color:var(--color-text-subtle);font-size:var(--font-sm);white-space:nowrap;margin:0;font-weight:500}@media (width<=1199px){.has-photo .app-tagline{display:none}}@media (width<=599px){.has-photo .app-header{padding-left:var(--space-2);padding-right:var(--space-2);justify-content:center}.has-photo .app-brand{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}}.app-canvas{background:radial-gradient(ellipse at center, #ffffff06, transparent 70%), var(--color-canvas);flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.drop-overlay{inset:var(--space-3);z-index:15;border:2px dashed var(--color-accent);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;animation:drop-overlay-in .15s var(--ease);background:#0f1228bf;place-items:center;display:grid;position:absolute}.drop-overlay__card{padding:var(--space-3) var(--space-5);background:var(--color-accent);color:#fff;border-radius:999px;font-weight:600}.app-sidebar{border-top:1px solid var(--color-border);background:var(--color-surface);flex-direction:column;flex-shrink:0;min-height:0;display:flex}.app-panel{max-height:min(50dvh, calc(100dvh - var(--header-height) - 61px - 240px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));overscroll-behavior:contain;scroll-behavior:smooth;padding:0 var(--space-4);position:relative;overflow:hidden auto}@media (width<=899px){.app-shell:not(.has-photo) .app-sidebar{display:none}}@media (width>=900px){.app-shell{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) 360px;display:grid}.app-header{grid-column:1/-1}.app-sidebar{border-top:none;border-left:1px solid var(--color-border)}.app-panel{max-height:none;padding:0 var(--space-5);scrollbar-gutter:stable;flex:1}}@media (width>=1440px){.app-shell{grid-template-columns:minmax(0,1fr) 380px}}.sidebar-empty{padding:var(--space-6) var(--space-5)}.sidebar-empty__title{font-size:var(--font-lg);margin:0;font-weight:650}.sidebar-empty__text{margin:var(--space-1) 0 var(--space-5);color:var(--color-text-muted);font-size:var(--font-sm)}.sidebar-empty__list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.sidebar-empty__list li{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);flex-direction:column;display:flex}.sidebar-empty__name{font-size:var(--font-md);font-weight:600}.sidebar-empty__desc{color:var(--color-text-subtle);font-size:var(--font-sm)}@keyframes drop-overlay-in{0%{opacity:0}}
