*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--color-bg, #f4f2ee);color:var(--color-text, #1d1b18);font-family:var(--font-ui, system-ui, sans-serif);-webkit-text-size-adjust:100%}[hidden]{display:none!important}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.app{display:flex;flex-direction:column;height:100dvh;min-height:0;overflow:hidden}.app-header{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:0 0 auto;padding-top:env(safe-area-inset-top)}.app-title{margin:0;white-space:nowrap}.app-header__actions{display:flex;align-items:center;gap:6px}.workspace{flex:1 1 auto;min-height:0;min-width:0;display:grid;grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}.stage{position:relative;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.stage__inner{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.stage__canvas{display:block;max-width:100%;max-height:100%;touch-action:none;user-select:none;-webkit-user-select:none}.stage__loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.empty-state{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.sheet{min-width:0;display:flex;flex-direction:column;min-height:0;max-height:48dvh;padding-bottom:env(safe-area-inset-bottom)}.tabs{display:flex;flex:0 0 auto}.tab{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center}.tab-panel{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column}.tab-panel>*{flex-shrink:0}.category-chips{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.category-chips::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;display:inline-flex;align-items:center;white-space:nowrap}.frame-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}.frame-card{display:flex;flex-direction:column;align-items:stretch;text-align:left;min-width:0}.frame-card__thumb{display:flex;align-items:center;justify-content:center;aspect-ratio:var(--thumb-aspect, 3 / 2);overflow:hidden}.frame-card__thumb img{display:block;max-width:100%;max-height:100%}.icon{display:inline-flex;width:1.25em;height:1.25em;flex:0 0 auto}.icon svg{width:100%;height:100%}.button,.icon-button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.button--block{display:flex;width:100%}.field{display:flex;flex-direction:column}.field--row{flex-direction:row;flex-wrap:wrap}.field:empty{display:none}.range{width:100%}.segmented{display:flex}.segmented__item{flex:1 1 0}.swatches{display:flex;flex-wrap:wrap}.swatch{background:var(--swatch)}.text-list{display:flex;flex-wrap:wrap}.text-input{width:100%;resize:vertical;font:inherit}.text-input--single-line{min-height:44px;resize:none}.style-list,.font-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}.style-option,.font-option{display:flex;flex-direction:column;align-items:flex-start;min-width:0;text-align:left}.font-option__sample,.style-option__sample{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.text-editor{display:flex;flex-direction:column}.toast{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:10;max-width:calc(100% - 32px)}@media(min-width:900px){.workspace{grid-template-rows:none;grid-template-columns:minmax(0,1fr) 380px}.sheet{max-height:none;height:100%}}.object-editor{display:flex;flex-direction:column}.frame-grid__section{grid-column:1 / -1;margin:0}.style-option__thumb{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:4 / 3}.style-option__thumb img{max-width:100%;max-height:100%}.tab__label,.button,.app-title{white-space:nowrap}.app-header .button{font-size:.875em}.tabs .tab{min-width:0}.select{width:100%;font:inherit}.style-option--missing{opacity:.6}.app-header{min-width:0}.app-title{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.app-header__actions{flex:0 0 auto}@media(max-width:420px){.app .app-title__sub{display:none}.app .app-header__actions .button{padding-inline:10px}.app .app-header__actions{gap:2px}}:root{color-scheme:light;--color-bg: #f3f1ed;--color-surface: #fffdfa;--color-surface-2: #ebe9e4;--color-text: #242522;--color-text-muted: #6f716b;--color-border: #d9d7d0;--color-accent: #4e706d;--color-accent-contrast: #fffdf8;--color-danger: #a94f48;--color-stage: #d4d5d1;--radius-s: 10px;--radius-m: 15px;--radius-l: 22px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--shadow-1: 0 1px 2px rgb(33 34 31 / 8%), 0 5px 18px rgb(33 34 31 / 5%);--shadow-2: 0 10px 32px rgb(33 34 31 / 12%), 0 2px 6px rgb(33 34 31 / 6%);--font-ui: "Zen Maru Gothic", "Noto Sans JP", system-ui, sans-serif;--font-size-s: .8125rem;--font-size-m: .9375rem;--font-size-l: 1.125rem}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--color-bg: #191b1a;--color-surface: #242725;--color-surface-2: #2d302d;--color-text: #f1f0ea;--color-text-muted: #a8aaa2;--color-border: #444943;--color-accent: #9ec3ba;--color-accent-contrast: #17201e;--color-danger: #e18c82;--color-stage: #303330;--shadow-1: 0 1px 2px rgb(0 0 0 / 24%), 0 5px 18px rgb(0 0 0 / 16%);--shadow-2: 0 12px 34px rgb(0 0 0 / 30%), 0 2px 7px rgb(0 0 0 / 20%)}}body{background:var(--color-bg);color:var(--color-text);font-size:var(--font-size-m);line-height:1.55;letter-spacing:.01em}button,input,textarea,select{color:inherit;font:inherit}button,label.button{-webkit-tap-highlight-color:transparent}button{border:0}.app{background:var(--color-bg)}.app-header{min-height:64px;padding-inline:var(--space-4);border-bottom:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface) 94%,transparent)}.app-title{color:var(--color-text);font-size:var(--font-size-l);font-weight:700;letter-spacing:.06em}.app-title__sub{margin-left:var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-s);font-weight:500;letter-spacing:.08em}.app-header__actions{gap:var(--space-1)}.workspace{gap:0}.stage{background:var(--color-stage);background-image:radial-gradient(circle at 50% 42%,rgb(255 255 255 / 11%),transparent 56%)}.stage__inner{padding:var(--space-4)}.stage__canvas{background:#b8bab5;box-shadow:var(--shadow-2)}.stage__loading{color:var(--color-text-muted);font-size:var(--font-size-s);letter-spacing:.08em}.empty-state{gap:var(--space-2);padding:var(--space-5);background:color-mix(in srgb,var(--color-stage) 72%,transparent)}.empty-state__title,.empty-state__text{margin:0}.empty-state__title{color:var(--color-text);font-size:var(--font-size-l);font-weight:700;letter-spacing:.04em}.empty-state__text{max-width:28rem;color:var(--color-text-muted);font-size:var(--font-size-s)}.sheet{background:var(--color-surface);box-shadow:0 -8px 24px #21221f0d}.tabs{min-height:68px;gap:var(--space-1);padding:var(--space-2) var(--space-3) 0;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.tab{position:relative;min-height:56px;gap:2px;padding:var(--space-2) var(--space-1);color:var(--color-text-muted);background:transparent;cursor:pointer;transition:color .16s ease,background-color .16s ease}.tab:after{position:absolute;right:20%;bottom:-1px;left:20%;height:2px;border-radius:2px 2px 0 0;background:transparent;content:""}.tab:hover{color:var(--color-text);background:var(--color-surface-2)}.tab[aria-selected=true]{color:var(--color-accent);font-weight:700}.tab[aria-selected=true]:after{background:var(--color-accent)}.tab__label{font-size:.75rem;line-height:1.2}.tab-panel{gap:var(--space-4);padding:var(--space-5) var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom));background:var(--color-surface)}.panel-heading{margin:0;color:var(--color-text);font-size:var(--font-size-l);font-weight:700;letter-spacing:.05em}.category-chips{gap:var(--space-2);margin-inline:calc(var(--space-4) * -1);padding-inline:var(--space-4)}.chip{min-height:44px;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:999px;color:var(--color-text-muted);background:var(--color-surface);cursor:pointer;white-space:nowrap;transition:border-color .16s ease,background-color .16s ease,color .16s ease}.chip:hover{border-color:var(--color-accent);color:var(--color-text)}.chip[aria-pressed=true]{border-color:var(--color-accent);color:var(--color-accent-contrast);background:var(--color-accent)}.chip__label{font-size:var(--font-size-s)}.frame-grid{gap:var(--space-3)}.frame-card{min-height:44px;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-m);color:var(--color-text);background:var(--color-surface);cursor:pointer;box-shadow:var(--shadow-1);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.frame-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-2);transform:translateY(-1px)}.frame-card[aria-pressed=true]{border-color:var(--color-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-accent) 28%,transparent),var(--shadow-1)}.frame-card__thumb{width:100%;border-radius:var(--radius-s);background:var(--color-surface-2)}.frame-card__thumb img{width:100%;height:100%;object-fit:cover}.frame-card__name,.frame-card__genre{padding-inline:var(--space-1)}.frame-card__name{font-size:var(--font-size-m);font-weight:700;line-height:1.35}.frame-card__genre{color:var(--color-text-muted);font-size:var(--font-size-s);line-height:1.3}.frame-card--none{align-items:center;justify-content:center;min-height:132px;color:var(--color-text-muted);text-align:center;background:repeating-linear-gradient(135deg,transparent 0 9px,color-mix(in srgb,var(--color-border) 34%,transparent) 9px 10px)}.field{gap:var(--space-2);padding-top:var(--space-1)}.field--row{gap:var(--space-2) var(--space-4);align-items:center}.field__label{color:var(--color-text-muted);font-size:var(--font-size-s);font-weight:700;letter-spacing:.04em}.field__value{align-self:flex-end;margin-top:calc(var(--space-2) * -1);color:var(--color-text-muted);font-size:var(--font-size-s);font-variant-numeric:tabular-nums}.button,.icon-button,.segmented__item,.text-list__item,.style-option,.font-option,.swatch,.toggle{min-height:44px}.button{gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid transparent;border-radius:var(--radius-s);font-size:var(--font-size-m);font-weight:700;line-height:1.25;text-decoration:none;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,color .16s ease,transform .16s ease}.button:hover{transform:translateY(-1px)}.button--primary{color:var(--color-accent-contrast);background:var(--color-accent);box-shadow:var(--shadow-1)}.button--primary:hover{background:color-mix(in srgb,var(--color-accent) 86%,var(--color-text))}.button--ghost{border-color:var(--color-border);color:var(--color-text);background:var(--color-surface)}.button--ghost:hover{border-color:var(--color-accent);background:var(--color-surface-2)}.button--danger{color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 42%,var(--color-border));background:transparent}.button--danger:hover{background:color-mix(in srgb,var(--color-danger) 10%,transparent)}.button[disabled],.icon-button[disabled],.tab[disabled]{cursor:not-allowed;opacity:.42;transform:none}.icon-button{width:44px;padding:var(--space-2);border-radius:50%;color:var(--color-text-muted);background:transparent;cursor:pointer;transition:color .16s ease,background-color .16s ease}.icon-button:hover{color:var(--color-text);background:var(--color-surface-2)}.icon{width:1.25em;height:1.25em}.icon svg{display:block;overflow:visible}.segmented{gap:2px;padding:2px;border:1px solid var(--color-border);border-radius:var(--radius-s);background:var(--color-surface-2)}.segmented__item{border-radius:calc(var(--radius-s) - 3px);color:var(--color-text-muted);background:transparent;cursor:pointer;transition:color .16s ease,background-color .16s ease,box-shadow .16s ease}.segmented__item:hover{color:var(--color-text)}.segmented__item[aria-pressed=true]{color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-1);font-weight:700}.swatches{gap:var(--space-2)}.swatch{position:relative;width:44px;padding:0;border:2px solid var(--color-surface);border-radius:50%;background:var(--swatch);box-shadow:0 0 0 1px var(--color-border);cursor:pointer}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-accent)}.range{height:44px;margin:0;accent-color:var(--color-accent);cursor:pointer}.range::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:var(--color-border)}.range::-webkit-slider-thumb{width:22px;height:22px;margin-top:-9px;border:2px solid var(--color-surface);border-radius:50%;background:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent),var(--shadow-1);-webkit-appearance:none}.range::-moz-range-track{height:4px;border-radius:4px;background:var(--color-border)}.range::-moz-range-thumb{width:18px;height:18px;border:2px solid var(--color-surface);border-radius:50%;background:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent),var(--shadow-1)}.hint{margin:0;color:var(--color-text-muted);font-size:var(--font-size-s);line-height:1.65}.text-list{gap:var(--space-2)}.text-list__item{max-width:100%;overflow:hidden;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-s);color:var(--color-text);background:var(--color-surface);cursor:pointer;text-overflow:ellipsis;white-space:nowrap}.text-list__item[aria-pressed=true],.style-option[aria-pressed=true],.font-option[aria-pressed=true]{border-color:var(--color-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-accent) 20%,transparent)}.text-input{min-height:88px;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-s);color:var(--color-text);background:var(--color-surface);line-height:1.6}.text-input::placeholder{color:var(--color-text-muted);opacity:.8}.style-list,.font-list{gap:var(--space-2)}.style-option,.font-option{gap:var(--space-1);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-s);color:var(--color-text);background:var(--color-surface);cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.style-option:hover,.font-option:hover,.text-list__item:hover{border-color:var(--color-accent);background:var(--color-surface-2)}.style-option__sample,.font-option__sample{font-size:1.05rem;line-height:1.35}.style-option__name,.font-option__name{color:var(--color-text-muted);font-size:var(--font-size-s)}.toggle{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-text);cursor:pointer}.toggle input{width:20px;height:20px;margin:0;accent-color:var(--color-accent)}.toggle__label{font-size:var(--font-size-s)}.watermark-badge{display:inline-flex;align-items:center;gap:var(--space-2);width:fit-content;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-s);color:var(--color-text);background:var(--color-surface);font-weight:700}.watermark-badge img{display:block;width:32px;height:32px;border-radius:8px}.disclosure{border-top:1px solid var(--color-border);padding-top:var(--space-4)}.disclosure summary{min-height:44px;padding-block:var(--space-2);color:var(--color-text);cursor:pointer;font-weight:700}.disclosure[open] summary{margin-bottom:var(--space-2)}.disclosure>.button+.button{margin-top:var(--space-2)}.toast{min-height:44px;padding:var(--space-2) var(--space-4);border:1px solid color-mix(in srgb,var(--color-border) 75%,transparent);border-radius:999px;color:var(--color-accent-contrast);background:var(--color-text);box-shadow:var(--shadow-2);font-size:var(--font-size-s);line-height:1.4}:where(button,input,textarea,summary,label):focus-visible{outline:3px solid color-mix(in srgb,var(--color-accent) 58%,transparent);outline-offset:2px}label.button:focus-within{outline:3px solid color-mix(in srgb,var(--color-accent) 58%,transparent);outline-offset:2px}@media(min-width:900px){.app-header{min-height:72px;padding-inline:var(--space-5)}.workspace{min-height:0}.stage__inner{padding:var(--space-6)}.sheet{border-left:1px solid var(--color-border);box-shadow:-8px 0 24px #21221f0a}.tabs{padding-inline:var(--space-4)}.tab-panel{padding:var(--space-5)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
