:root{--surface: #f1f1f1;--surface-soft: #e9e9e9;--surface-light: #f7f7f7;--ink: #292929;--muted: #686868;--line: #d5d5d5;--highlight: rgba(255, 255, 255, .95);--shade: rgba(0, 0, 0, .14);--raised: -3px -3px 5px var(--highlight), 3px 3px 5px var(--shade);--inset: inset 2px 2px 4px var(--shade), inset -2px -2px 4px var(--highlight);--focus: #52709b;color-scheme:light;color:var(--ink);background:var(--surface);font-family:PingFang SC,Hiragino Sans GB,Noto Sans CJK SC,Microsoft YaHei,sans-serif;font-size:15px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0}button,input,select{font:inherit}button,.upload{border:1px solid transparent;background:var(--surface);color:var(--ink);border-radius:10px;min-height:36px;padding:6px 10px;box-shadow:var(--raised);cursor:pointer;transition:box-shadow .14s ease,background-color .14s ease,color .14s ease}button.primary,.primary{background:linear-gradient(145deg,#414141,var(--ink));color:#fff;border-color:transparent}button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}h2{margin:0;font-size:16px}.maker-app{position:relative;height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.paste-confirm{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:16px;background:#00000047}.paste-confirm section{width:min(420px,100%);display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid transparent;border-radius:10px;background:var(--surface)}.paste-confirm p{margin:0}.paste-confirm .row{justify-content:flex-end}.topbar{flex:0 0 48px;height:48px;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 2px 6px #0000000d;overflow:hidden}.header-actions{margin-left:auto;display:flex;gap:8px;align-items:center;flex:none}.brand{display:flex;gap:8px;align-items:baseline;font-weight:700;flex:none}.brand a{color:var(--ink);text-decoration:none}.brand .brand-maker{color:var(--muted);font-weight:500}.toolbar,.export-actions,.row{display:flex;gap:8px;align-items:center}.toolbar{flex:1;min-width:0;flex-wrap:nowrap;overflow-x:auto}.toolbar button{flex:none}.workspace{flex:1;min-height:0;display:flex;flex-direction:column}.canvas-pane{position:relative;z-index:1;flex:1 1 auto;min-height:0;display:flex;flex-direction:row;align-items:stretch;background:var(--surface-soft)}.canvas-pane:has(.download-settings-panel){z-index:3}.preview-frame{position:relative;flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column}.preview-tools{position:relative;z-index:7;flex:0 0 72px;display:flex;align-items:center;padding:10px;background:var(--surface)}.preview-tools .tool-toggle{width:36px;height:36px;padding:0;display:grid;place-items:center;pointer-events:auto}.preview-tools .tool-toggle[aria-expanded=true]{background:var(--ink);color:#fff;border-color:transparent}.preview-tools .tool-menu{position:static;display:flex;flex-direction:column;gap:8px;width:100%}.preview-tools .tool-menu button{width:auto;white-space:nowrap;pointer-events:auto;box-shadow:var(--raised)}.stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.empty-stage{color:var(--ink);padding:24px;text-align:center;cursor:pointer}.empty-stage input{display:none}.sheet{position:relative;transform-origin:center center}.sheet,.sheet *{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.sheet canvas,.sheet svg,.sheet .gif-preview{position:absolute;inset:0;width:100%;height:100%}.sheet .gif-preview{pointer-events:none}.overlay{pointer-events:none;z-index:3}.box{fill:transparent;stroke:var(--muted);stroke-width:2;pointer-events:auto}.box.selected{stroke:var(--ink);stroke-width:3}.handle{fill:#fff;stroke:var(--ink);stroke-width:2;pointer-events:auto;cursor:nwse-resize}.handle.ns{cursor:ns-resize}.handle.ew{cursor:ew-resize}.handle.nesw{cursor:nesw-resize}.text-box{cursor:move}.sheet .canvas-text-input{position:absolute;z-index:2;min-width:24px;min-height:24px;padding:0 4px;border:2px solid var(--ink);border-radius:3px;background:#fff;color:var(--ink);text-align:center;-webkit-user-select:text;user-select:text;touch-action:auto}.canvas-editor{display:flex;flex-direction:column;flex:1 1 0;min-width:0;min-height:0}.canvas-editor>.stage{margin:8px}.canvas-action-bar{display:flex;flex:0 0 44px;align-items:center;justify-content:center;padding:6px 10px;background:var(--surface)}.selection-actions{display:flex;align-items:center;gap:8px}.selection-actions button{padding:4px 12px;min-height:30px;font-size:12px;white-space:nowrap}.asset-sheet.with-export{padding-top:12px}.preview-export{position:relative;z-index:6;order:-1;flex:0 0 auto;padding:10px;background:var(--surface);display:flex;flex-wrap:wrap;gap:6px;row-gap:6px;align-items:center;justify-content:flex-end;max-width:100%}.preview-export>button{box-shadow:var(--raised);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.preview-export>.export-copy{background:var(--surface);color:var(--ink)}.preview-export:has(.download-settings-panel){z-index:8}.download-settings{position:relative}.download-settings-trigger{display:grid;place-items:center;width:38px;height:38px;padding:0;box-shadow:var(--raised)}.download-settings-panel{position:absolute;top:calc(100% + 10px);right:-78px;z-index:30;width:min(332px,calc(100vw - 32px));max-height:min(560px,70dvh);overflow-y:auto;padding:16px;border-radius:18px;background:var(--surface);color:var(--ink);box-shadow:0 8px 32px #0003;text-align:left;font-size:13px;line-height:1.5}.download-settings-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.download-settings-heading button{min-height:28px;padding:0 8px;font-size:20px}.download-mode-options{display:grid;gap:8px}.download-mode-option{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #8884;border-radius:12px;cursor:pointer}.download-mode-option:has(input:checked){border-color:var(--ink);box-shadow:var(--inset)}.download-mode-option input{accent-color:var(--ink);flex:0 0 auto}.download-mode-option strong,.download-mode-option small{display:block}.download-mode-option small{font-size:11px;opacity:.72;margin-top:2px}.download-mode-option.is-disabled{opacity:.45;cursor:default}.export-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));background:#1818189e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:export-backdrop-in .18s ease-out both}.export-dialog{width:min(100%,400px);max-height:calc(100dvh - 48px);overflow-y:auto;padding:36px 28px 24px;border:1px solid rgba(255,255,255,.8);border-radius:24px;background:linear-gradient(155deg,var(--surface-light),var(--surface));box-shadow:0 24px 90px #00000047,inset 0 1px #fff;color:var(--ink);text-align:center;outline:none;animation:export-card-in .36s cubic-bezier(.18,.8,.24,1) both}.export-feedback-icon{width:76px;height:76px;margin:0 auto 24px;display:grid;place-items:center;color:var(--muted)}.export-feedback-icon svg{width:68px;height:68px;animation:export-symbol-in .4s cubic-bezier(.2,.8,.2,1) both}.export-orbit{width:64px;height:64px;border:4px solid var(--surface-soft);border-top-color:var(--muted);border-right-color:var(--focus);border-radius:50%;animation:export-spin .9s linear infinite}.export-feedback-eyebrow{margin:0 0 10px;color:var(--muted);font-size:12px;letter-spacing:.12em}.export-dialog h2{margin:0;font-size:24px;font-weight:700;letter-spacing:-.04em}.export-dialog #export-feedback-detail{min-height:42px;margin:12px 0 0;color:var(--muted);font-size:14px;line-height:1.65;overflow-wrap:anywhere}.export-share-status{margin:10px 0 0;padding:8px 10px;border-radius:10px;background:#ffffff85;color:var(--muted);font-size:12px;line-height:1.55;overflow-wrap:anywhere}.export-share-status.is-pending{color:var(--ink)}.export-share-status.is-success{color:#51754a}.export-share-status.is-error{color:#b5533d}.export-meter{margin:22px 0 8px}.export-meter-track{height:12px;overflow:hidden;border-radius:999px;background:var(--surface-soft);box-shadow:inset 0 1px 2px #00000014}.export-meter-track>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--muted),#9a9a9a);transition:width .22s ease-out}.export-meter-track.is-indeterminate>span{width:38%;animation:export-progress-sweep 1.4s ease-in-out infinite}.export-meter-caption{display:block;margin-top:10px;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.export-dialog-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px}.export-dialog-action{min-width:120px;min-height:40px;margin-top:20px;border-radius:999px;border-color:transparent;background:#fff9}.export-dialog-actions .export-dialog-action{margin-top:0}.export-dialog-share{border-color:transparent;background:var(--ink);color:#fff}.export-dialog-action:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.export-dialog.is-success .export-feedback-icon{color:#51754a}.export-dialog.is-error .export-feedback-icon{color:#b5533d}.export-dialog.is-error .export-feedback-icon svg{animation:export-symbol-in .4s ease-out both,export-error-nudge .45s .2s ease-out}.export-dialog.is-cancelled .export-feedback-icon{color:var(--muted)}.export-check{stroke-dasharray:44;stroke-dashoffset:44;animation:export-check-draw .45s .12s ease-out forwards}.export-overlay.is-closing{animation:export-backdrop-out .18s ease-in both}.export-overlay.is-closing .export-dialog{animation:export-card-out .18s ease-in both}@keyframes export-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes export-backdrop-out{0%{opacity:1}to{opacity:0}}@keyframes export-card-in{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes export-card-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(8px) scale(.98)}}@keyframes export-spin{to{transform:rotate(360deg)}}@keyframes export-progress-sweep{0%{transform:translate(-110%)}to{transform:translate(370%)}}@keyframes export-symbol-in{0%{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}@keyframes export-check-draw{to{stroke-dashoffset:0}}@keyframes export-error-nudge{0%,to{transform:translate(0)}25%{transform:translate(-3px)}65%{transform:translate(3px)}}@media(max-width:420px){.preview-export{max-width:100%}.export-dialog{padding:30px 22px 22px}.export-dialog-actions{gap:8px}.export-dialog-actions .export-dialog-action{flex:1 1 120px}}@media(prefers-reduced-motion:reduce){.export-overlay,.export-dialog,.export-feedback-icon svg,.export-orbit,.export-check,.export-dialog.is-error .export-feedback-icon svg,.export-overlay.is-closing,.export-overlay.is-closing .export-dialog,.export-meter-track.is-indeterminate>span{animation:none}.export-meter-track>span{transition:none}.export-check{stroke-dashoffset:0}.export-meter-track.is-indeterminate>span{width:100%;opacity:.55}}.maker-app:has(.asset-sheet) .preview-tools,.maker-app:has(.asset-sheet) .preview-export,.maker-app:has(.asset-sheet) .canvas-action-bar,.maker-app:has(.asset-sheet) .text-pane .pane-head .row{display:none}.canvas-pane:has(.asset-sheet)~.dock{display:none}.dock{position:relative;z-index:2;flex:0 0 auto;height:clamp(300px,46vh,400px);max-height:52%;min-height:0;display:flex;flex-direction:column;background:var(--surface);border-top:1px solid var(--line)}.assets{position:relative;flex:0 0 auto;display:flex;flex-direction:column;gap:8px;padding:10px 12px 8px}.asset-collapsed{width:100%;display:flex;align-items:center;gap:8px;border:none;background:transparent;min-height:36px;padding:0;box-sizing:border-box}.asset-sheet{position:absolute;z-index:4;inset:0;display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--surface);box-sizing:border-box;overflow:hidden}.asset-collapsed>.asset-collapsed-main{flex:1;min-width:0;display:flex;align-items:center;gap:8px;text-align:left;border:none;background:transparent;padding:0;min-height:0}.asset-collapsed img{width:36px;height:36px;object-fit:contain;background:var(--surface-soft);border-radius:4px;flex:none}.asset-collapsed span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-collapsed .upload,.asset-collapsed>button{flex:none}.asset-bar{display:flex;gap:8px;align-items:center}.asset-bar .upload,.asset-bar>button{flex:none}.asset-bar input{flex:1;min-width:0}.asset-bar select{width:34%;max-width:180px}.asset-sheet .gallery-surface{flex:1 1 auto;min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:10px;padding:10px 12px;border:1px solid transparent;border-radius:14px;background:var(--surface);box-shadow:var(--inset)}.asset-sheet .gallery-surface>p{flex:none;overflow-wrap:anywhere}.thumbs{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px}.thumbs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));overflow:visible}.asset-sheet .thumbs-scroll{flex:1 1 auto;min-width:0;min-height:0;overflow:auto;scrollbar-gutter:stable}.asset-sheet .thumbs-grid{position:relative;display:block;flex:none;padding:0;overflow:visible}.thumb{flex:0 0 88px;width:88px;display:flex;flex-direction:column;gap:4px;padding:6px;text-align:left}.asset-sheet .thumb{position:relative;display:block;width:100%;height:auto;min-width:0;margin:0;overflow:hidden}.thumb img{width:100%;height:72px;min-width:0;object-fit:contain;background:var(--surface-soft)}.asset-sheet .thumb-media{position:relative;display:block;width:100%;border-radius:4px;overflow:hidden;background:var(--surface-soft);box-shadow:inset 0 0 0 1px var(--line)}.asset-sheet .thumb-media img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;background:transparent;opacity:0;transition:opacity .18s ease}.asset-sheet .thumb-media.thumb-loaded img{opacity:1}.asset-sheet .thumb-media.thumb-loading:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 18%,rgba(255,255,255,.55) 46%,transparent 74%);background-size:220% 100%;animation:thumb-shimmer 1.5s linear infinite;pointer-events:none}@keyframes thumb-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}.asset-sheet .thumb-media em{position:absolute;left:6px;bottom:6px;margin:0;padding:0 4px;border-radius:4px;background:#000000b8;color:#fff;font-size:11px;font-style:normal;line-height:16px}.asset-sheet .thumb .thumb-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:0 8px;color:var(--muted);font-size:12px;line-height:1.35;text-align:center;white-space:normal;overflow:visible;text-overflow:clip}.asset-sheet .thumb .thumb-label{display:block;height:18px;line-height:18px;margin-top:4px}.asset-sheet .gallery-prompt{margin:0;width:100%;display:flex;align-items:center;justify-content:center;gap:12px;font-size:clamp(22px,2.4vw,28px);line-height:1.3;font-weight:700;color:var(--ink);flex:none}.asset-sheet .gallery-prompt:before,.asset-sheet .gallery-prompt:after{content:"";flex:1 1 0;min-width:8px;height:1px;background:var(--line)}.asset-sheet .gallery-prompt>span{flex:none;white-space:nowrap}.asset-sheet .gallery-more{display:flex;align-items:center;justify-content:center;min-height:48px;padding:8px;color:var(--muted);font-size:12px}.asset-sheet .gallery-more button{min-height:30px;font-size:12px}.gallery-skeleton{flex:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px;align-content:start;overflow:hidden}.gallery-skeleton-card{min-width:0;display:flex;flex-direction:column;gap:6px;padding:6px;border:1px solid transparent;border-radius:8px;background:var(--surface)}.gallery-skeleton-media{display:block;width:100%;aspect-ratio:1 / 1;border-radius:5px;background:linear-gradient(100deg,var(--surface-soft) 20%,var(--surface) 45%,var(--surface-soft) 70%);background-size:220% 100%;animation:gallery-shimmer 1.4s linear infinite}.gallery-skeleton-card:nth-child(3n+1) .gallery-skeleton-media{aspect-ratio:4 / 3}.gallery-skeleton-card:nth-child(3n+2) .gallery-skeleton-media{aspect-ratio:3 / 4}.gallery-skeleton-line{display:block;width:72%;height:8px;border-radius:999px;background:var(--surface-soft)}.gallery-skeleton-card:nth-child(2n) .gallery-skeleton-line{width:52%}@keyframes gallery-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@media(prefers-reduced-motion:reduce){.asset-sheet .thumb-media img{transition:none}.asset-sheet .thumb-media.thumb-loading:after,.gallery-skeleton-media{animation:none}}.thumb.selected{outline:2px solid var(--ink)}.thumb span,.muted,.status{color:var(--muted);font-size:13px}.thumb span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor{flex:1;min-height:0;overflow:auto}.pane{padding:10px 12px;display:flex;flex-direction:column;gap:10px}.editor:has(.subtitle-track){flex:1 1 0;overflow:hidden;display:flex;flex-direction:column}.text-pane:has(.subtitle-track){flex:1 1 auto;min-height:0;overflow:hidden}.text-pane:has(.subtitle-track) .block-list{flex:0 1 auto;min-width:0;min-height:0;max-height:42%;overflow-y:auto;overscroll-behavior:contain}.block-list:empty{display:none}.export-actions{flex:0 0 auto;padding:8px 12px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface)}.export-actions p{margin:0}.export-toast{flex:none;padding:2px 10px;border-radius:999px;background:var(--surface-soft);color:var(--ink);font-size:12px;line-height:18px}.export-progress{flex:none;color:var(--ink);font-size:12px;line-height:18px;font-variant-numeric:tabular-nums}.block{border:1px solid transparent;border-radius:12px;padding:10px;box-shadow:var(--raised);display:flex;flex-direction:column;gap:8px;background:var(--surface)}.block.selected{border-color:var(--ink)}.bang-block{border:none;background:transparent;padding:2px 0;box-shadow:none}.bang-block.selected{border-color:transparent}.free-line{display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px}.free-line .bang{flex:0 1 auto;min-width:0}.free-preset{flex:0 1 130px;width:130px;min-width:0;height:44px;padding:0 8px}.free-custom{min-width:0}.bang{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.bang-cell{width:44px;height:44px;padding:0;border:1px solid transparent;border-radius:0;background:var(--surface);box-shadow:var(--raised);text-align:center;font-size:20px;font-weight:500;color:var(--ink);caret-color:var(--focus)}.bang .bang-cell.bang-cell-changed{border-radius:12px}.bang-cell:focus{outline:none;border-color:var(--focus);background:var(--surface-light);box-shadow:var(--inset),0 0 0 3px #52709b38}.bang-add{width:44px;height:44px;min-height:44px;padding:0;border-radius:12px;border:1px solid transparent;background:var(--surface);color:var(--muted);font-size:24px;line-height:1;box-shadow:var(--raised)}.selection-delete{background:var(--ink);color:#fff;border-color:transparent;box-shadow:0 2px 8px #00000047}.block header{display:flex;justify-content:space-between;gap:8px}.block label,.style-pane label,.pane label{display:flex;flex-direction:column;gap:4px;font-size:13px}input,select{border:1px solid transparent;border-radius:10px;padding:8px;background:var(--surface);box-shadow:var(--inset);color:inherit;font-size:16px}.safe{color:#2d6a32;margin:0}.warn,.error{color:#9a3b1a;margin:0}.banner{display:flex;justify-content:space-between;gap:12px;padding:10px 16px;background:#f3eee3;color:var(--ink)}.banner.warn{background:#fde7df}.animated-preview{max-width:100%;max-height:70%;object-fit:contain}.upload input{display:none}.pane-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.style-row{display:flex;flex-wrap:wrap;gap:8px;align-items:end}.style-row label{flex:1 1 72px}.style-row input[type=color]{height:36px;padding:4px}.style-row input{min-width:0;max-width:100%}.loading{margin:8px 12px}.ocr-progress{display:flex;flex-direction:column;gap:5px;width:100%;max-width:min(360px,100%);color:var(--ink)}.ocr-progress-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-height:18px}.ocr-progress-stage{min-width:0;font-size:13px;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ocr-progress-stage b{margin-right:6px;font-weight:600;font-variant-numeric:tabular-nums}.ocr-progress-elapsed{flex:none;color:var(--muted);font-size:12px;line-height:18px;font-variant-numeric:tabular-nums}.ocr-progress-track{display:flex;width:100%;height:4px;border-radius:999px;background:var(--surface-soft);overflow:hidden}.ocr-progress-done{flex:none;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--muted),var(--muted));transition:width .28s ease}.ocr-progress-current{flex:none;height:100%;border-radius:inherit;background:#9a9a9a}.ocr-progress-current{animation:ocr-progress-step 1.5s ease-in-out infinite}.ocr-progress-meta{display:flex;flex-wrap:wrap;gap:2px 10px;margin:0;color:var(--muted);font-size:11px;line-height:15px}.ocr-progress-meta span{min-width:0}@keyframes ocr-progress-step{0%,to{opacity:.45}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.ocr-progress-current{animation:none}.ocr-progress-done{transition:none}}@media(max-width:640px){.maker-app{height:100vh;height:100svh;padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface)}.canvas-pane{flex:0 0 48vh;flex:0 0 48svh}.dock{flex:1 1 auto;height:auto;max-height:none}.maker-app:has(.asset-sheet){padding-bottom:env(safe-area-inset-bottom,0px)}.canvas-pane:has(.asset-sheet){flex:1 1 auto}.asset-sheet .gallery-surface{padding:8px;gap:8px}}.preview-tools{flex-direction:column;gap:6px}.preview-tools .compare-toggle[aria-pressed=true]{background:var(--ink);color:#fff;border-color:transparent}.compare-overlay{z-index:5;cursor:col-resize;-webkit-user-select:none;user-select:none;overflow:hidden}.compare-label{position:absolute;top:8px;padding:3px 7px;border-radius:4px;background:#000000b8;color:#fff;font-size:12px;line-height:18px;pointer-events:none}.compare-label.before{left:8px}.compare-label.after{right:8px}.compare-divider{position:absolute;top:0;bottom:0;width:2px;transform:translate(-50%);background:#fff;box-shadow:0 0 0 1px #00000047}.compare-handle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:32px;height:40px;display:grid;place-items:center;border:1px solid transparent;border-radius:10px;background:var(--surface-light);color:var(--ink);font-size:20px;cursor:col-resize}.compare-handle:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.gif-timeline{position:relative;z-index:3;flex:none;padding:6px 12px;border-bottom:1px solid var(--line);background:var(--surface)}.timeline-row{display:flex;align-items:center;gap:8px;min-width:0}.timeline-play{flex:none;width:32px;height:32px;min-height:32px;padding:0;display:grid;place-items:center}.timeline-scrubber{flex:1 1 auto;min-width:0;height:18px;margin:0;accent-color:var(--muted);cursor:ew-resize}.timeline-time{flex:none;color:var(--muted);font-size:12px;line-height:18px;font-variant-numeric:tabular-nums;white-space:nowrap}.timeline-more{position:relative;flex:none}.timeline-more>summary,.subtitle-menu>summary{display:grid;place-items:center;width:32px;height:32px;border:1px solid transparent;border-radius:6px;background:var(--surface);color:var(--ink);font-size:16px;line-height:1;cursor:pointer;list-style:none}.timeline-more>summary::-webkit-details-marker,.subtitle-menu>summary::-webkit-details-marker{display:none}.timeline-more[open]>summary,.subtitle-menu[open]>summary{background:var(--ink);border-color:transparent;color:#fff}.timeline-more-body{position:absolute;right:0;top:calc(100% + 6px);z-index:9;display:flex;flex-direction:column;gap:6px;width:min(280px,calc(100vw - 24px));padding:8px;border:1px solid transparent;border-radius:8px;background:var(--surface);box-shadow:0 6px 18px #0000002e}.timeline-more-row{display:flex;flex-wrap:wrap;gap:6px}.timeline-more-body button{min-height:32px;padding:3px 8px;font-size:12px}.timeline-segments{display:flex;flex-direction:column;gap:4px;max-height:136px;overflow-y:auto}.timeline-segments button{min-height:32px;padding:3px 6px;text-align:left;font-size:12px}.timeline-segments button[aria-pressed=true]{background:var(--ink);border-color:transparent;color:#fff}.timeline-segments small{margin-left:6px;font-size:10px;white-space:nowrap}@media(max-width:640px){.gif-timeline{padding:5px 8px}.timeline-row{gap:6px}.timeline-time{font-size:10px}.text-pane .pane-head .row{flex-wrap:wrap;justify-content:flex-end;gap:4px}}.compare-original{background:var(--surface-soft)}@media(max-width:640px){.maker-app:has(.gif-timeline){padding-bottom:env(safe-area-inset-bottom,0px)}.maker-app:has(.gif-timeline) .canvas-pane{flex:0 0 48vh;flex:0 0 48svh}.maker-app:has(.gif-timeline) .canvas-pane:has(.asset-sheet){flex:1 1 auto}.maker-app:has(.gif-timeline) .dock{flex:1 1 0;height:auto;max-height:none;min-height:0}}.banner>button{flex:none;white-space:nowrap}.loading-preview{overflow:hidden}.loading-preview-image{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain}.loading-preview-status{position:absolute;left:50%;bottom:10px;z-index:3;display:inline-flex;align-items:center;gap:6px;max-width:calc(100% - 24px);padding:3px 10px;border-radius:999px;background:#000000b8;color:#fff;font-size:12px;line-height:18px;white-space:nowrap;overflow:hidden;pointer-events:none;transform:translate(-50%)}.loading-preview-status.is-centered{top:50%;bottom:auto;transform:translate(-50%,-50%)}.loading-preview-text{min-width:0;overflow:hidden;text-overflow:ellipsis}.loading-preview-dots{display:inline-flex;flex:none;gap:3px}.loading-preview-dots i{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.4;animation:loading-preview-dot 1s ease-in-out infinite}.loading-preview-dots i:nth-child(2){animation-delay:.16s}.loading-preview-dots i:nth-child(3){animation-delay:.32s}@keyframes loading-preview-dot{0%,to{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){.loading-preview-dots i{animation:none;opacity:.7}}.subtitle-track{display:flex;flex:1 1 0;flex-direction:column;gap:6px;min-width:0;min-height:0;padding:8px;border:1px solid transparent;border-radius:8px;background:var(--surface)}.subtitle-head{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0;flex:none}.subtitle-head h3{margin:0;font-size:13px;line-height:18px}.subtitle-count{color:var(--muted);font-size:11px;line-height:16px;font-variant-numeric:tabular-nums}.subtitle-batch-toggle{flex:none;min-height:28px;padding:2px 8px;font-size:12px;line-height:18px}.subtitle-batch-toggle[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.subtitle-menu{position:relative;flex:none;margin-left:auto}.subtitle-batch{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;flex:none;min-width:0}.subtitle-batch button{min-height:30px;padding:2px 8px;font-size:12px;white-space:nowrap}.subtitle-batch-delete:not(:disabled){color:#9a3b1a;border-color:#e6c6b6}.subtitle-selected-count{color:var(--ink);font-size:12px;line-height:18px;font-variant-numeric:tabular-nums;white-space:nowrap}.subtitle-menu-list{position:absolute;right:0;top:calc(100% + 4px);z-index:9;display:flex;flex-direction:column;gap:4px;min-width:132px;padding:6px;border:1px solid transparent;border-radius:8px;background:var(--surface);box-shadow:0 6px 18px #0000002e}.subtitle-menu-list button{min-height:32px;padding:3px 8px;font-size:12px;white-space:nowrap}.subtitle-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 8px;min-width:0;flex:none}.subtitle-status{min-width:0;overflow:hidden;color:var(--ink);font-size:12px;line-height:16px;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.subtitle-progress button{min-height:32px;padding:2px 8px;font-size:12px}.subtitle-progress-track{grid-column:1 / -1;height:5px;overflow:hidden;border-radius:999px;background:var(--surface-soft)}.subtitle-progress-done{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--muted),var(--muted));transition:width .2s ease}.subtitle-error{display:flex;align-items:center;gap:8px;min-width:0;flex:none;padding:3px 6px;border-radius:6px;background:#fde7df;color:#9a3b1a;font-size:12px;line-height:16px}.subtitle-error span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subtitle-error button{flex:none;min-height:32px;padding:2px 8px;font-size:12px}.subtitle-empty{margin:0;flex:none;color:var(--muted);font-size:11px;line-height:16px}.subtitle-list{display:flex;flex:1 1 auto;flex-direction:column;gap:5px;min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin:0;padding:0;list-style:none}.subtitle-item{position:relative;display:flex;flex:none;flex-direction:column;gap:5px;min-width:0;padding:4px 5px;border:1px solid transparent;border-radius:7px;background:var(--surface)}.subtitle-item.is-active{border-color:var(--ink);background:var(--surface);box-shadow:inset 3px 0 0 var(--ink)}.subtitle-item.is-selected{border-color:var(--ink);background:var(--surface-soft)}.subtitle-item.is-deleted{background:var(--surface)}.subtitle-item.is-deleted .subtitle-text{color:var(--muted)}.subtitle-line{display:flex;align-items:center;gap:5px;min-width:0;flex-wrap:wrap}.subtitle-check{flex:none;width:20px;height:20px;min-height:20px;margin:0;padding:0;accent-color:var(--ink)}.subtitle-time-static{display:inline-flex;align-items:center}.subtitle-track .subtitle-time{flex:none;min-height:32px;padding:0 7px;border:1px solid transparent;border-radius:6px;background:var(--surface-soft);color:var(--ink);font-size:11px;line-height:16px;font-variant-numeric:tabular-nums;white-space:nowrap}.subtitle-item.is-active .subtitle-time{border-color:var(--ink);background:var(--ink);color:#fff}.subtitle-text{flex:1 1 0;min-width:0;min-height:32px;padding:4px 7px;font-size:16px;line-height:20px}.subtitle-text::placeholder{color:var(--muted)}.subtitle-icon{flex:none;width:32px;height:32px;min-height:32px;padding:0;display:grid;place-items:center}.subtitle-delete:not(:disabled){color:#9a3b1a;border-color:#e6c6b6}.subtitle-restore:not(:disabled){color:var(--ink)}.subtitle-time-details{flex:none}.subtitle-time-details>summary{display:grid;place-items:center;width:32px;height:32px;border:1px solid transparent;border-radius:6px;background:var(--surface);color:var(--ink);font-size:16px;line-height:1;cursor:pointer;list-style:none}.subtitle-time-details>summary::-webkit-details-marker{display:none}.subtitle-time-details[open]>summary{background:var(--ink);border-color:transparent;color:#fff}.subtitle-time-row{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-width:0;color:var(--muted);font-size:11px}.subtitle-time-details>.subtitle-time-row{position:absolute;z-index:9;left:0;right:0;top:calc(100% + 4px);padding:6px;border:1px solid transparent;border-radius:7px;background:var(--surface);box-shadow:0 6px 18px #0000002e}.subtitle-track .subtitle-time-row label{display:flex;flex-direction:row;align-items:center;flex:1 1 90px;gap:3px;min-width:0}.subtitle-time-row input{width:100%;min-width:0;padding:4px 5px;font-size:16px;line-height:20px;font-variant-numeric:tabular-nums}.ocr-retry{display:flex;align-items:flex-start;flex-wrap:wrap;gap:6px}.ocr-retry p{flex:1 1 160px;min-width:0;margin:0;font-size:13px}.ocr-retry button{flex:none}@media(prefers-reduced-motion:reduce){.subtitle-progress-done{transition:none}}@media(max-width:640px){.subtitle-track{gap:4px;padding:6px}.subtitle-line{gap:4px}.subtitle-track .subtitle-time{padding:0 5px}.subtitle-track .subtitle-time-row label{flex-basis:78px}.subtitle-head{gap:4px}.subtitle-batch-toggle{min-height:26px;padding:1px 6px}.subtitle-batch{gap:4px}.subtitle-batch button{min-height:28px;padding:1px 6px}.subtitle-selected-count{flex:1 1 100%}}@media(max-width:360px){.subtitle-track .subtitle-time{font-size:10px;padding:0 4px}.subtitle-check{width:18px;height:18px;min-height:18px}.subtitle-batch button{flex:1 1 auto}}@media(max-height:480px)and (orientation:landscape){.workspace{flex-direction:row}.canvas-pane,.maker-app:has(.gif-timeline) .canvas-pane{flex:1 1 0;min-width:0}.dock,.maker-app:has(.gif-timeline) .dock{flex:0 0 42%;height:auto;max-height:none;min-height:0}.maker-app:has(.gif-timeline) .canvas-pane:has(.asset-sheet){flex:1 1 auto}.maker-app:has(.gif-timeline) .gif-timeline{padding-top:4px;padding-bottom:4px}.maker-app:has(.gif-timeline) .text-pane{gap:6px;padding-top:6px;padding-bottom:6px}.maker-app:has(.gif-timeline) .subtitle-track{gap:4px;padding:6px}.maker-app:has(.gif-timeline) .subtitle-batch-toggle,.maker-app:has(.gif-timeline) .subtitle-batch button{min-height:26px;padding-top:0;padding-bottom:0}}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,.upload:focus-within{outline:2px solid var(--focus);outline-offset:3px}@media(hover:hover){button:not(:disabled):hover,.upload:hover,.timeline-more>summary:hover,.subtitle-menu>summary:hover{filter:brightness(.98)}}button:not(:disabled):active,.upload:active,.preview-tools .tool-toggle[aria-expanded=true],.preview-tools .compare-toggle[aria-pressed=true],.timeline-more[open]>summary,.subtitle-menu[open]>summary,.timeline-segments button[aria-pressed=true],.subtitle-batch-toggle[aria-pressed=true]{background:var(--surface);color:var(--ink);border-color:transparent;box-shadow:var(--inset)}button.primary:not(:disabled):active,.export-dialog-share:not(:disabled):active,.selection-delete:not(:disabled):active{background:var(--ink);color:#fff;box-shadow:inset 2px 2px 4px #111,inset -2px -2px 4px #555}.timeline-more>summary,.subtitle-menu>summary,.compare-handle{border-radius:10px;box-shadow:var(--raised)}.asset-collapsed>.asset-collapsed-main,.asset-collapsed>.asset-collapsed-main:active{box-shadow:none;background:transparent}input[type=checkbox],input[type=range],input[type=color]{box-shadow:none}.paste-confirm section{box-shadow:0 18px 48px #0000002e,inset 0 1px 0 var(--highlight)}button:disabled,.preview-tools .tool-menu button:disabled{box-shadow:none}@media(prefers-reduced-motion:reduce){button,.upload{transition:none}}
