:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-sm:3px;--radius-md:6px;--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "Cascadia Code", Consolas, monospace;--text-xs:11px;--text-sm:12px;--text-md:14px;--text-lg:18px}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#16181d;--panel:#1e2128;--panel-raised:#272b34;--border:#343944;--border-control:#747c8d;--stage-bg:#111317;--text:#e6e8ee;--text-muted:#aab0bd;--text-faint:#949cac;--accent:#2f7d4f;--accent-text:#7ad9a1;--focus:#7ad9a1;--accent-contrast:#fff;--accent-soft:#1c3327;--danger:#ff6b6b;--warning:#f0b429;--success:#3ecf8e;--keyframe:#f0b429;--keyframe-selected:#fff}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f4f7;--panel:#fff;--panel-raised:#eceef3;--border:#cfd3dc;--border-control:#6f778a;--stage-bg:#e4e7ee;--text:#1b1e25;--text-muted:#4a5160;--text-faint:#596171;--accent:#2f7d4f;--accent-text:#2b7448;--focus:#2b7448;--accent-contrast:#fff;--accent-soft:#dcf0e3;--danger:#c62828;--warning:#8a5a00;--success:#17794f;--keyframe:#b27300;--keyframe-selected:#1b1e25}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:var(--text-md);overflow:hidden}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}button,input,select,textarea{font:inherit;color:inherit}button{background:var(--panel-raised);border:1px solid var(--border-control);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);cursor:pointer}button:hover{border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{background:var(--bg);border:1px solid var(--border-control);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.shell{grid-template-rows:48px 1fr var(--timeline-height,260px);grid-template-columns:var(--layers-width,240px) 1fr var(--inspector-width,300px);height:100vh;display:grid;position:relative}.topbar{align-items:center;gap:var(--space-2);padding:0 var(--space-3);background:var(--panel);border-bottom:1px solid var(--border);grid-column:1/-1;display:flex}.topbar h1{margin:0 var(--space-3) 0 0;font-size:var(--text-lg);font-weight:600}.topbar-spacer{flex:1}.panel{background:var(--panel);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.panel h2{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);margin:0;font-weight:600}.panel-empty{padding:var(--space-4);color:var(--text-faint);font-size:var(--text-sm);margin:0}.panel-stage{background:var(--stage-bg)}.panel-timeline{border-top:1px solid var(--border);grid-column:1/-1}.panel-layers{border-right:1px solid var(--border)}.panel-inspector{border-left:1px solid var(--border)}.resize-handle{z-index:10;background:0 0;position:absolute}.resize-handle:after{content:"";background:0 0;transition:background .1s;position:absolute}.resize-handle:hover:after,.resize-handle.dragging:after{background:var(--accent)}.resize-handle-vertical{top:48px;bottom:var(--timeline-height,260px);cursor:col-resize;width:6px}.resize-handle-vertical:after{width:1px;top:0;bottom:0;left:2px}.resize-handle-horizontal{height:6px;left:0;right:0;bottom:calc(var(--timeline-height,260px) - 3px);cursor:row-resize}.resize-handle-horizontal:after{height:1px;top:2px;left:0;right:0}.resize-handle-layers{left:calc(var(--layers-width,240px) - 3px)}.resize-handle-inspector{right:calc(var(--inspector-width,300px) - 3px)}.too-small{z-index:100;padding:var(--space-5);background:var(--bg);color:var(--text);text-align:center;justify-content:center;align-items:center;display:none;position:fixed;inset:0}@media (max-width:1023px),(max-height:639px){.too-small{display:flex}}.topbar button,.topbar h1,.time-display{white-space:nowrap}.topbar>*{flex-shrink:0}.topbar .project-name{flex-shrink:1;min-width:3em}@media (max-width:1499px){.topbar{gap:var(--space-1);padding:0 var(--space-2)}.topbar button,.topbar select{font-size:var(--text-sm);padding-inline:6px}.topbar h1{margin-right:var(--space-1);font-size:var(--text-md)}.studio-credit-text,.topbar .save-status,.time-total,.time-display .time-sep{display:none}.topbar .project-name{max-width:110px}}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.icon{flex:none}.project-name,.project-name-input{text-overflow:ellipsis;white-space:nowrap;background:0 0;border-color:#0000;max-width:220px;overflow:hidden}.project-name:hover{border-color:var(--border)}.panel-stage{position:relative}.stage-toolbar{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--border);display:flex}.stage-toolbar button{padding:2px var(--space-2);font-size:var(--text-sm)}.zoom-label,.zoom-input{text-align:center;min-width:56px}.zoom-input{width:72px}.stage-viewport{background-color:var(--stage-bg);touch-action:none;flex:1;min-height:0;position:relative;overflow:hidden}.stage-viewport.stage-bg-checker{background-image:linear-gradient(45deg, var(--panel-raised) 25%, transparent 25%, transparent 75%, var(--panel-raised) 75%), linear-gradient(45deg, var(--panel-raised) 25%, transparent 25%, transparent 75%, var(--panel-raised) 75%);background-position:0 0,10px 10px;background-size:20px 20px}.stage-host{position:absolute;inset:0}.stage-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.stage-overlay rect{fill:none}.stage-overlay .outline-selected{stroke:var(--accent);stroke-width:1.5px}.stage-overlay .outline-hover{stroke:var(--accent);stroke-width:1px;opacity:.7}.stage-overlay .outline-gradient{stroke:var(--accent);stroke-width:1px;stroke-dasharray:4 3}.layers-search-wrap{padding:var(--space-2);border-bottom:1px solid var(--border)}.layers-search{width:100%}.layers-tree{flex:1;min-height:0;overflow:auto}.layers-tree:focus-visible{outline-offset:-2px}.layer-row{align-items:center;gap:var(--space-1);padding-right:var(--space-2);font-size:var(--text-sm);cursor:default;-webkit-user-select:none;user-select:none;display:flex}.layer-row:hover{background:var(--panel-raised)}.layer-row.is-selected{background:var(--accent-soft)}.layer-row.is-active{box-shadow:inset 0 0 0 1px var(--accent)}.layers-tree.is-dragging{cursor:grabbing}.layers-tree.is-no-drop{cursor:no-drop}.layer-row.is-drag-source{opacity:.5}.layer-row.drop-before{box-shadow:inset 0 2px 0 var(--accent)}.layer-row.drop-after{box-shadow:inset 0 -2px 0 var(--accent)}.layer-row.drop-inside{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.layer-toggle{width:16px;color:var(--text-muted);display:inline-flex}.layer-toggle.is-leaf{visibility:hidden}.layer-toggle.is-open .icon{transform:rotate(90deg)}.layer-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.layer-rename{min-width:0;padding:0 var(--space-1);flex:1}.layer-dot{background:var(--accent);border-radius:50%;width:6px;height:6px}.layer-actions{visibility:hidden;gap:2px;display:inline-flex}.layer-row:hover .layer-actions,.layer-actions:focus-within{visibility:visible}.layer-actions button{color:var(--text-muted);background:0 0;border-color:#0000;padding:2px;display:inline-flex}.layer-actions button.is-on{color:var(--warning)}.layers-spacer{flex:none}.start-screen{z-index:5;padding:var(--space-4);background:var(--stage-bg);justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:auto}.start-screen[hidden]{display:none}.start-card{text-align:center;max-width:640px}.start-card h3{margin:0 0 var(--space-2);font-size:var(--text-lg)}.start-card h4{margin:var(--space-5) 0 var(--space-2);font-size:var(--text-sm);color:var(--text-muted)}.start-card p{margin:0 0 var(--space-4);color:var(--text-muted)}.start-card .start-credit{margin:var(--space-5) 0 0;font-size:var(--text-xs);text-align:center}.drop-zone{padding:var(--space-5);border:2px dashed var(--border);border-radius:var(--radius-md)}.samples{gap:var(--space-3);justify-content:center;display:flex}.sample{align-items:center;gap:var(--space-1);padding:var(--space-2);font-size:var(--text-sm);flex-direction:column;display:flex}.sample img{object-fit:contain;border-radius:var(--radius-sm);background:#fff;width:120px;height:72px}.import-options{margin-top:var(--space-4);font-size:var(--text-sm);color:var(--text-muted)}.recent:empty{display:none}.toasts{left:50%;bottom:calc(var(--timeline-height,260px) + var(--space-4));z-index:200;gap:var(--space-2);flex-direction:column;max-width:min(560px,90vw);display:flex;position:fixed;transform:translate(-50%)}.toast{align-items:flex-start;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--panel-raised);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm);border-left-width:4px;display:flex}.toast-warning{border-left-color:var(--warning)}.toast-error{border-left-color:var(--danger)}.toast-info{border-left-color:var(--accent)}.toast-message{flex:1}.toast-close{padding:0 var(--space-1);background:0 0;border:0}.drop-overlay{z-index:150;background:color-mix(in srgb, var(--accent) 25%, transparent);border:4px dashed var(--accent);font-size:var(--text-lg);pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.drop-overlay[hidden]{display:none}.transport{align-items:center;gap:var(--space-1);margin-left:var(--space-3);display:flex}.transport button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}.time-display{margin-left:var(--space-2);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-muted)}.time-current,.time-input{width:92px;padding:2px var(--space-1);font-family:var(--font-mono);font-size:var(--text-sm);text-align:center}.time-current{color:var(--text);background:0 0;border-color:#0000}.panel-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.panel-heading h2{border-bottom:0}.autokey{align-items:center;gap:var(--space-1);margin-right:var(--space-2);padding:2px var(--space-2);font-size:var(--text-xs);display:inline-flex}.autokey:before{content:"";border:1px solid var(--text-muted);border-radius:50%;width:8px;height:8px}.autokey[aria-pressed=true]:before{background:var(--danger);border-color:var(--danger)}.autokey:after{content:"Auto-key"}.inspector-body{flex:1;min-height:0;overflow:auto}.inspector-section{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);font-size:var(--text-sm)}.section-title{margin:0 0 var(--space-2);font-size:var(--text-sm)}.selection-count{color:var(--text-muted)}.element-heading{gap:var(--space-2);margin-bottom:var(--space-2);align-items:center;display:flex}.element-name{flex:1;min-width:0}.tag-badge{padding:1px var(--space-2);border-radius:var(--radius-sm);background:var(--panel-raised);color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-xs)}.origin-title{margin-bottom:var(--space-1);color:var(--text-muted)}.origin-controls{gap:var(--space-3);align-items:center;display:flex}.origin-grid{grid-template-columns:repeat(3,14px);gap:4px;display:grid}.origin-cell{border-radius:50%;width:14px;height:14px;padding:0}.origin-cell.is-active{background:var(--accent);border-color:var(--accent)}.origin-fields{gap:var(--space-1);grid-template-columns:1fr 1fr;display:grid}.element-toggles{gap:var(--space-2);margin-top:var(--space-2);display:flex}.element-toggles button{font-size:var(--text-xs)}.element-toggles button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}.group-heading{gap:var(--space-1);width:100%;padding:0 0 var(--space-1);text-align:left;background:0 0;border:0;font-weight:600;display:flex}.property-row{gap:var(--space-1);grid-template-columns:22px 72px 1fr auto;align-items:center;padding:3px 0;display:grid}.property-row.is-disabled{opacity:.55}.property-label{text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);overflow:hidden}.js-badge{margin-left:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);letter-spacing:.04em;vertical-align:middle;cursor:help;padding:0 5px;font-size:10px;font-weight:600;line-height:1.5;display:inline-block}.info-badge{cursor:help;margin-left:2px}.keyframe-toggle{color:var(--text-faint);background:0 0;border-color:#0000;padding:2px;display:inline-flex}.keyframe-toggle.is-track,.keyframe-toggle.is-key{color:var(--accent-text)}.keyframe-toggle.is-key .icon{fill:currentColor}.key-nav-group{display:inline-flex}.key-nav{padding:0 var(--space-1);background:0 0;border-color:#0000}.number-input,.vec2-input,.draw-fields{align-items:center;gap:var(--space-1);min-width:0;display:inline-flex}.vec2-input{gap:var(--space-2)}.number-input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);flex:1;min-width:0}.number-input-label{padding:0 var(--space-1);color:var(--text-faint);cursor:ew-resize;-webkit-user-select:none;user-select:none}.number-input-field{width:100%;min-width:0;padding:2px var(--space-1);text-align:right;background:0 0;border:0;flex:1}.number-input-unit{padding-right:var(--space-1);color:var(--text-faint);font-size:var(--text-xs)}.number-input.is-readonly{opacity:.7}.link-toggle[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}.colour-input{gap:var(--space-1);align-items:center;display:inline-flex}.colour-swatch{border-radius:var(--radius-sm);background:var(--swatch,transparent);width:22px;height:22px;padding:0}.colour-swatch.is-empty{background-image:linear-gradient(135deg, transparent 45%, var(--danger) 45%, var(--danger) 55%, transparent 55%)}.colour-swatch.small{width:18px;height:18px}.colour-text,.colour-code{width:110px;min-width:0}.popover{padding:var(--space-3);background:var(--panel-raised);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-md);margin:0;position:fixed;inset:auto;box-shadow:0 8px 24px #00000059}.colour-popover{gap:var(--space-2);flex-direction:column;width:220px;display:flex}.colour-picker{width:100%;height:80px;padding:0}.colour-alpha-row{gap:var(--space-2);align-items:center;display:flex}.colour-alpha-row input{flex:1}.colour-swatches{gap:var(--space-1);flex-wrap:wrap;display:flex}.colour-swatches-title,.colour-hint{color:var(--text-muted);font-size:var(--text-xs)}.draw-input{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.draw-bar{background:var(--bg);border-radius:3px;height:6px;position:relative}.draw-fill{background:var(--accent);border-radius:3px;position:absolute;top:0;bottom:0}.draw-on{font-size:var(--text-xs);align-self:flex-start}.text-content{resize:vertical;font-family:inherit}.text-size-row{gap:var(--space-2);grid-template-columns:1fr 1fr;align-items:center;display:grid}.keyframe-field{gap:var(--space-1);margin-bottom:var(--space-2);color:var(--text-muted);flex-direction:column;display:flex}.keyframe-time,.scene-duration{width:120px;font-family:var(--font-mono)}.keyframe-notice{color:var(--text-muted)}.easing-main{gap:var(--space-2);align-items:flex-start;display:flex}.easing-preview{background:var(--bg);border-radius:var(--radius-sm);flex:none}.easing-curve{fill:none;stroke:var(--accent);stroke-width:2px}.easing-params{gap:var(--space-1);margin-top:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.scale-option{margin-bottom:var(--space-2);color:var(--text-muted);display:block}.panel-timeline{--timeline-labels:220px;flex-direction:column;display:flex}.tl-toolbar{align-items:center;gap:var(--space-2);padding:2px var(--space-2);border-bottom:1px solid var(--border);font-size:var(--text-sm);display:flex}.tl-toolbar button{padding:1px var(--space-2);font-size:var(--text-sm)}.tl-toolbar button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}.tl-scale{color:var(--text-muted)}.tl-duration{font-family:var(--font-mono);color:var(--text-muted)}.tl-header{grid-template-columns:var(--timeline-labels) 1fr;border-bottom:1px solid var(--border);height:24px;display:grid}.tl-header-labels{border-right:1px solid var(--border);position:relative}.tl-splitter{z-index:6;cursor:col-resize;width:6px;position:absolute;top:0;bottom:-999px;right:-3px}.ruler{cursor:pointer;position:relative;overflow:hidden}.ruler-canvas{display:block}.ruler-playhead{background:var(--accent);clip-path:polygon(0 0,100% 0,100% 55%,50% 100%,0 55%);pointer-events:none;width:12px;height:14px;position:absolute;top:0;left:-6px}.end-handle{background:var(--accent);opacity:.6;cursor:ew-resize;width:6px;height:100%;position:absolute;top:0;left:-3px}.tl-body{flex:1;min-height:0;overflow:hidden auto}.tl-body-inner{grid-template-columns:var(--timeline-labels) 1fr;min-height:100%;display:grid}.tl-labels{border-right:1px solid var(--border);background:var(--panel)}.tl-row{align-items:center;gap:var(--space-1);padding:0 var(--space-2);font-size:var(--text-sm);border-bottom:1px solid color-mix(in srgb, var(--border) 50%, transparent);display:flex}.tl-element-row{background:color-mix(in srgb, var(--panel-raised) 55%, transparent)}.tl-element-row.is-selected{background:var(--accent-soft)}.tl-track-row{padding-left:calc(var(--space-2) + 20px)}.tl-track-row.is-disabled .tl-label{opacity:.45}.tl-toggle{background:0 0;border-color:#0000;padding:0;display:inline-flex}.tl-toggle.is-open .icon{transform:rotate(90deg)}.tl-label{text-overflow:ellipsis;white-space:nowrap;text-align:left;background:0 0;border:0;flex:1;min-width:0;padding:0;overflow:hidden}.tl-track-label{color:var(--text-muted)}.tl-actions{visibility:hidden;display:inline-flex}.tl-element-row:hover .tl-actions,.tl-actions:focus-within{visibility:visible}.tl-actions button,.tl-nav button{color:var(--text-muted);background:0 0;border-color:#0000;padding:0 4px}.tl-actions .is-on{color:var(--warning)}.tl-nav{display:inline-flex}.track-area{min-height:100%;position:relative;overflow:hidden}.track-canvas{position:absolute;top:0;left:0}.playhead{background:var(--accent);pointer-events:none;z-index:3;width:1px;position:absolute;top:0;bottom:0;left:0}.timeline-tooltip{z-index:8;padding:2px var(--space-2);background:var(--panel-raised);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-xs);white-space:nowrap;pointer-events:none;position:absolute}.timeline-popover{width:260px}.context-menu{z-index:300;min-width:190px;padding:var(--space-1) 0;background:var(--panel-raised);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm);position:fixed;box-shadow:0 8px 24px #00000059}.context-menu.is-submenu{position:absolute;top:-5px;left:100%}.menu-row{position:relative}.menu-item{justify-content:space-between;gap:var(--space-4);width:100%;padding:3px var(--space-3);text-align:left;background:0 0;border:0;border-radius:0;display:flex}.menu-item:hover:not(:disabled),.menu-item:focus-visible{background:var(--accent-soft);outline:none}.menu-separator{height:1px;margin:var(--space-1) 0;background:var(--border)}.stage-overlay .origin-marker{pointer-events:all;cursor:move}.stage-overlay .origin-hit{fill:#0000}.stage-overlay polygon{fill:none}.stage-overlay .origin-ring{fill:color-mix(in srgb, var(--bg) 55%, transparent);stroke:var(--accent);stroke-width:1.5px}.stage-overlay .origin-dot{fill:var(--accent)}.stage-overlay .origin-cross{fill:none;stroke:var(--accent);stroke-width:1.5px}.pass-badge{margin-left:var(--space-2);padding:1px var(--space-2);border-radius:var(--radius-sm);background:var(--accent-soft);font-size:var(--text-xs)}.tl-badge{border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--text-muted);font-size:var(--text-xs);white-space:nowrap;flex:none;padding:0 4px}.playback-popover{width:270px}.playback-form{gap:var(--space-2);font-size:var(--text-sm);flex-direction:column;display:flex}.playback-form fieldset{gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;margin:0;display:flex}.playback-form fieldset:disabled{opacity:.5}.playback-row{align-items:center;gap:var(--space-2);display:flex}.playback-row input[type=number],.playback-row input[type=text]{width:80px}.playback-actions{gap:var(--space-2);justify-content:flex-end;display:flex}.recent{margin-top:var(--space-5)}.recent[hidden]{display:none}.recent-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.recent-card{position:relative}.recent-open{align-items:center;gap:var(--space-1);width:100%;padding:var(--space-2);font-size:var(--text-sm);flex-direction:column;display:flex}.recent-open img,.recent-placeholder{object-fit:contain;border-radius:var(--radius-sm);background:#fff;width:120px;height:72px}.recent-placeholder{color:#888;font-size:var(--text-lg);justify-content:center;align-items:center;display:flex}.recent-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.recent-time{color:var(--text-muted);font-size:var(--text-xs,11px)}.recent-menu{top:var(--space-1);right:var(--space-1);padding:0 var(--space-1);position:absolute}.recent-rename{width:100%}.home-button{font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.save-status{min-width:5em;color:var(--text-muted);font-size:var(--text-sm)}.save-status[data-status=unsaved]{color:var(--danger,#d33)}.message-dialog{max-width:420px;padding:var(--space-4);color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md)}.message-dialog h3{margin:0 0 var(--space-3)}.dialog-actions{margin-top:var(--space-3);justify-content:flex-end;display:flex}.banner{top:var(--space-3);z-index:300;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0000004d}.stage-viewport:focus{outline:1px solid color-mix(in srgb, var(--accent) 40%, transparent);outline-offset:-1px}.stage-toolbar button[aria-pressed=true]{color:var(--accent-contrast);background:var(--accent)}.toolbar-divider{width:1px;margin:0 var(--space-1);background:var(--border);align-self:stretch}.stage-viewport[data-tool=rotate]{cursor:crosshair}.stage-viewport[data-tool=scale]{cursor:nwse-resize}.stage-overlay .handle{pointer-events:all;fill:var(--bg);stroke:var(--accent);stroke-width:1.5px}.stage-overlay .handle-rotate{cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='M12 4a8 8 0 1 0 8 8' fill='none' stroke='white' stroke-width='4'/><path d='M12 4a8 8 0 1 0 8 8' fill='none' stroke='black' stroke-width='2'/></svg>") 12 12,grab}.stage-overlay .handle-stem{stroke:var(--accent);stroke-width:1px}.stage-overlay .cursor-ew{cursor:ew-resize}.stage-overlay .cursor-ns{cursor:ns-resize}.stage-overlay .cursor-nesw{cursor:nesw-resize}.stage-overlay .cursor-nwse{cursor:nwse-resize}.stage-overlay .origin-marker:focus{outline:none}.stage-overlay .origin-marker:focus-visible .origin-ring{stroke-width:3px}.stage-overlay .snap-guide{stroke:#ff2bd6;stroke-width:1px}.stage-overlay .motion-line{fill:none;stroke:var(--accent);stroke-width:1px;stroke-dasharray:2 3;opacity:.6}.stage-overlay .motion-dot{fill:var(--accent);opacity:.6}.stage-overlay .motion-handle-line{stroke:var(--accent);stroke-width:1px;opacity:.8}.stage-overlay .motion-handle{pointer-events:all;cursor:grab;fill:var(--bg);stroke:var(--accent);stroke-width:1.5px}.stage-overlay .point-outline{fill:none;stroke:var(--accent);stroke-width:1px}.stage-overlay .point-segment{fill:none;stroke:#0000;stroke-width:10px;pointer-events:stroke;cursor:copy}.stage-overlay .point-handle-line{stroke:var(--accent);stroke-width:1px}.stage-overlay .point-handle{pointer-events:all;cursor:grab;fill:var(--accent);stroke:var(--bg);stroke-width:1px}.stage-overlay .point-anchor{pointer-events:all;cursor:move;fill:var(--bg);stroke:var(--accent);stroke-width:1.5px}.stage-overlay .point-anchor.is-selected{fill:var(--accent)}.stage-overlay .motion-key{pointer-events:all;cursor:move;fill:var(--accent);stroke:var(--bg);stroke-width:1px}.stage-overlay .ruler{--ruler-colour:var(--accent)}.stage-overlay .ruler-shape{--ruler-colour:#ff9f1c}.stage-overlay .ruler-neighbour{--ruler-colour:#d946a8}.stage-overlay .ruler-artboard{--ruler-colour:#8a8a8a}.stage-overlay .ruler-line{stroke:var(--ruler-colour);stroke-width:1px;stroke-dasharray:4 3}.stage-overlay .ruler-tick{stroke:var(--ruler-colour);stroke-width:1.5px}.stage-overlay .ruler-label rect{fill:var(--ruler-colour)}.stage-overlay .ruler-label text,.stage-overlay .readout text{fill:#fff;font-variant-numeric:tabular-nums;font-size:11px}.stage-overlay .ruler-label.is-centred rect{fill:var(--success)}.stage-overlay .ruler-equals{fill:var(--success);font-size:14px;font-weight:700}.stage-overlay .readout rect{fill:#000000bf}.measure-chips{top:var(--space-2);left:var(--space-2);gap:var(--space-1);pointer-events:none;flex-direction:column;display:flex;position:absolute}.measure-chip{padding:2px var(--space-2);color:#fff;font-size:var(--text-sm);background:var(--success);border-radius:999px}.measure-wrap{display:inline-flex}.measure-popover{gap:var(--space-1);flex-direction:column;min-width:220px;display:flex}.measure-hint,.measure-shape-name{color:var(--text-muted);font-size:var(--text-sm);margin:0}.measure-shape-name{padding-left:var(--space-4)}.easing-control{gap:var(--space-2);flex-direction:column;display:flex}.easing-tabs{flex-wrap:wrap;gap:2px;display:flex}.easing-tab{padding:2px var(--space-2);font-size:var(--text-sm)}.easing-tab[aria-selected=true]{color:var(--accent-contrast);background:var(--accent)}.easing-graph{touch-action:none;align-self:center;max-width:100%}.easing-frame{fill:var(--panel-raised);stroke:var(--border)}.easing-unit{fill:color-mix(in srgb, var(--accent) 10%, transparent);stroke:var(--border);stroke-dasharray:3 3}.easing-graph .easing-curve{fill:none;stroke:var(--accent);stroke-width:2px}.easing-stem{stroke:var(--text-muted);stroke-width:1px}.easing-handle{fill:var(--accent);stroke:var(--bg);stroke-width:2px;cursor:grab}.easing-track{background:var(--panel-raised);border-radius:8px;height:16px;position:relative}.easing-dot{background:var(--accent);border-radius:50%;width:10px;height:10px;margin-left:-5px;position:absolute;top:3px}.easing-dot-ghost{background:var(--text-muted);opacity:.5}.easing-actions,.easing-save-row,.easing-fields{gap:var(--space-1);flex-wrap:wrap;display:flex}.easing-chips{flex-wrap:wrap;gap:3px;display:flex}.easing-chip{padding:1px var(--space-2);font-size:var(--text-sm);border-radius:999px}.easing-chip[aria-pressed=true]{color:var(--accent-contrast);background:var(--accent)}.easing-saved-chip{display:inline-flex}.easing-chip-remove{padding:0 var(--space-1)}.easing-slider{flex-direction:column;gap:2px;display:flex}.easing-note{color:var(--text-muted);font-size:var(--text-sm);margin:0}.easing-save-name{flex:1;min-width:0}.presets-popover{width:520px;max-height:480px;padding:var(--space-3);overflow:auto}.presets-tabs{margin-bottom:var(--space-2);gap:2px;display:flex}.presets-tabs button[aria-selected=true]{color:var(--accent-contrast);background:var(--accent)}.presets-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(96px,1fr));display:grid}.preset-card{align-items:center;gap:var(--space-1);padding:var(--space-1);font-size:var(--text-sm);flex-direction:column;display:flex}.preset-card[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.preset-card.is-unavailable{opacity:.5}.preset-item{display:flex;position:relative}.preset-item .preset-card{flex:1;min-width:0}.preset-star{min-width:0;color:var(--text-muted);background:0 0;border-color:#0000;padding:0 4px;line-height:1.4;position:absolute;top:2px;right:2px}.preset-star[aria-pressed=true]{color:var(--accent)}.presets-search{width:100%;margin-bottom:var(--space-2)}.presets-heading{margin:var(--space-2) 0 var(--space-1);color:var(--text-muted);font-size:var(--text-sm);font-weight:600}.preset-thumb{background:var(--panel-raised);border-radius:var(--radius-sm);width:72px;height:72px;overflow:hidden}.preset-thumb svg{width:100%;height:100%;display:block}.preset-thumb *{animation-play-state:paused!important;animation-delay:calc(var(--poster,0s) * -1)!important}@media (prefers-reduced-motion:no-preference){.preset-card:hover .preset-thumb *,.preset-card:focus-visible .preset-thumb *{animation-play-state:running!important;animation-delay:0s!important}}.presets-details,.offset-panel{gap:var(--space-2);margin-top:var(--space-3);flex-direction:column;display:flex}.offset-panel{min-width:260px;padding:var(--space-3);margin-top:0}.presets-details h3,.offset-panel h3{font-size:var(--text-md,14px);margin:0}.presets-row{gap:var(--space-2);grid-template-columns:1fr 1fr;align-items:center;display:grid}.presets-check{align-items:center;gap:var(--space-1);font-size:var(--text-sm);display:flex}.presets-actions{justify-content:flex-end;gap:var(--space-2);display:flex}.presets-hint{color:var(--text-muted);font-size:var(--text-sm);margin:0}.presets-button{margin-left:auto;margin-right:var(--space-2)}dialog.settings-dialog,dialog.large-dialog{color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:0}dialog.settings-dialog{width:min(520px,94vw);max-height:90vh}dialog.large-dialog{width:90vw;max-width:none;height:85vh}dialog[open].large-dialog{flex-direction:column;display:flex}dialog::backdrop{background:#00000080}.dialog-header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.dialog-header h3{margin:0}.scene-settings{gap:var(--space-2);padding:var(--space-3) var(--space-4);flex-direction:column;display:flex;overflow:auto}.scene-settings h4,.export-settings h4{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--text-muted)}.settings-row{gap:var(--space-2);grid-template-columns:1fr 1.4fr;align-items:center;display:grid}.settings-inline{align-items:center;gap:var(--space-2);display:flex}.settings-check,.radio-row{align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);display:flex}.radio-group{gap:var(--space-1);flex-direction:column;display:flex}.radio-row small{color:var(--text-muted)}.settings-note{color:var(--text-muted);font-size:var(--text-sm);margin:0}.link-button{color:var(--accent-text);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.settings-dialog .dialog-actions{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border)}.export-body{flex:1;grid-template-columns:300px 1fr;min-height:0;display:grid}.export-settings{gap:var(--space-2);padding:var(--space-3);border-right:1px solid var(--border);flex-direction:column;display:flex;overflow:auto}.export-output{gap:var(--space-2);min-width:0;min-height:0;padding:var(--space-3);flex-direction:column;display:flex}.format-list{flex-direction:column;gap:2px;display:flex}.format-group{margin-top:var(--space-2);color:var(--text-faint);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase}.format-group:first-child{margin-top:0}.format-option{padding:var(--space-2) var(--space-3);text-align:left;flex-direction:column;align-items:flex-start;gap:1px;display:flex}.format-option .format-hint{color:var(--text-muted);font-size:var(--text-xs)}.format-option[aria-checked=true]{color:var(--accent-contrast);background:var(--accent)}.format-option[aria-checked=true] .format-hint{color:inherit}.media-result{background:var(--stage-bg);border-radius:var(--radius-sm);flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:auto}.media-result img,.media-result video{max-width:100%;max-height:100%}.media-result img.on-checker{background:conic-gradient(var(--panel-raised) 25%, var(--panel) 0 50%, var(--panel-raised) 0 75%, var(--panel) 0) 0 0 / 16px 16px}.render-progress{align-items:center;gap:var(--space-2);flex:1;display:flex}.render-progress progress{flex:1;max-width:240px}.export-warnings{padding-left:var(--space-3);color:var(--warning);font-size:var(--text-sm);margin:0;list-style:none}.export-unavailable{color:var(--text-muted);margin:0}.export-footer{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.export-sizes{color:var(--text-muted);font-size:var(--text-sm)}.code-view{gap:var(--space-1);flex-direction:column;flex:1;min-height:0;display:flex}.code-actions{gap:var(--space-1);display:flex}.code-block{padding:var(--space-2);font-family:var(--font-mono,ui-monospace, monospace);background:var(--panel-raised);border-radius:var(--radius-sm);flex:1;margin:0;font-size:12px;line-height:1.5;overflow:auto}.code-block code.with-lines{counter-reset:line;display:block}.code-line{white-space:pre;display:block}.code-line:before{width:3ch;margin-right:var(--space-2);color:var(--text-muted);text-align:right;content:counter(line);counter-increment:line;-webkit-user-select:none;user-select:none;display:inline-block}.token.comment{color:var(--text-muted)}.token.tag,.token.selector,.token.keyword{color:#c678dd}.token.attr-name,.token.property{color:#d19a66}.token.attr-value,.token.string{color:#98c379}.token.number,.token.function,.token.unit{color:#61afef}.preview-frame{gap:var(--space-2);min-height:0;padding:var(--space-3);flex-direction:column;flex:1;display:flex}.export-output .preview-frame{padding:0}.preview-controls{align-items:center;gap:var(--space-3);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.preview-control{align-items:center;gap:var(--space-1);display:inline-flex}.preview-stage{background:var(--stage-bg);border-radius:var(--radius-sm);flex:1;justify-content:center;min-height:0;display:flex;overflow:auto}.preview-iframe{border:0;width:100%;height:100%;min-height:300px}.trigger-options{gap:var(--space-2);padding:var(--space-2);background:var(--panel-raised);border-radius:var(--radius-sm);flex-direction:column;display:flex}.scroll-diagram{align-self:center}.diagram-viewport{fill:var(--panel);stroke:var(--border)}.diagram-line{stroke-width:2px}.diagram-start{stroke:var(--success)}.diagram-end{stroke:var(--danger)}.diagram-text{fill:var(--text-muted);font-size:11px}.api-console{font-size:var(--text-sm)}.api-console-body{align-items:center;gap:var(--space-2);padding:var(--space-2) 0;flex-wrap:wrap;display:flex}.api-help pre{max-height:160px;margin:var(--space-1) 0;overflow:auto}.morph-editor{align-items:center;gap:var(--space-2);display:inline-flex}.morph-picture{min-width:36px;color:var(--accent-text);display:inline-flex}.start-point-controls{gap:var(--space-1);flex-wrap:wrap;display:inline-flex}.start-point-controls button[aria-pressed=true]{color:var(--accent-contrast);background:var(--accent)}.pick-banner{top:var(--space-2);z-index:10;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);color:var(--text);font-size:var(--text-sm);background:var(--panel);border:1px solid var(--accent);border-radius:var(--radius-md);display:flex;position:absolute;left:50%;transform:translate(-50%)}.pick-banner[hidden]{display:none}.stage-viewport.is-picking{cursor:crosshair}.path-text{width:100%;font-family:var(--font-mono,ui-monospace, monospace)}.shape-preview{min-height:96px;color:var(--accent-text);justify-content:center;display:flex}.shape-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(72px,1fr));max-height:260px;display:grid;overflow:auto}.shape-choice{padding:var(--space-1);color:var(--accent-text)}.stage-overlay .morph-link{stroke:var(--warning);stroke-width:1px;stroke-dasharray:3 3}.stage-overlay .morph-dot{stroke:var(--bg);stroke-width:1.5px}.stage-overlay .morph-before{fill:#ff9f1c}.stage-overlay .morph-after{fill:var(--accent)}.stage-overlay .morph-dot-label{fill:#fff;font-size:10px;font-weight:700}.help-button{border-radius:50%;min-width:28px;font-weight:600}.menu-list{min-width:180px;margin:calc(var(--space-2) * -1);flex-direction:column;display:flex}.menu-list button{text-align:left;background:0 0;border-color:#0000;justify-content:flex-start}.menu-list a{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:inherit;text-decoration:none}.menu-list button:hover,.menu-list button:focus-visible,.menu-list a:hover,.menu-list a:focus-visible{background:var(--accent-soft)}dialog.shortcuts-dialog{width:min(640px,94vw);overflow:hidden}dialog[open].shortcuts-dialog{flex-direction:column;display:flex}.shortcuts-body{padding:var(--space-3) var(--space-4) var(--space-4);overflow:auto}.shortcuts-note{margin:0 0 var(--space-2);color:var(--text-muted)}.shortcuts-body table{border-collapse:collapse;width:100%}.shortcuts-body th,.shortcuts-body td{padding:var(--space-1) var(--space-2);text-align:left;vertical-align:top;border-bottom:1px solid var(--border);font-weight:400}.shortcuts-body th{width:14em}.shortcuts-body kbd{padding:1px var(--space-2);font-family:var(--font-mono);font-size:var(--text-sm);background:var(--panel-raised);border:1px solid var(--border);border-radius:var(--radius-sm);display:inline-block}.coach-mark{z-index:50;width:280px;padding:var(--space-3);color:var(--text);background:var(--panel-raised);border:1px solid var(--accent);border-radius:var(--radius-md);position:fixed;box-shadow:0 8px 24px #00000059}.coach-mark p{margin:0 0 var(--space-3)}.coach-actions{gap:var(--space-2);align-items:center;display:flex}.coach-step{color:var(--text-muted);font-size:var(--text-sm);flex:1}.panel-error{margin:var(--space-4);color:var(--text)}.tl-body{position:relative}.tl-empty{top:var(--space-2);left:calc(var(--timeline-labels) + var(--space-3));right:var(--space-3);pointer-events:none;margin:0;position:absolute}.menu-wrap{display:inline-flex}.menu-trigger .menu-caret{margin-left:var(--space-1);font-size:9px}.menu-commands{min-width:240px}.menu-commands button{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.menu-commands button:disabled{color:var(--text-faint);cursor:default}.menu-commands button:disabled:hover{background:0 0}.menu-commands kbd{color:var(--text-muted);font:inherit;font-size:var(--text-xs)}.menu-commands hr{width:100%;margin:var(--space-1) 0;border:0;border-top:1px solid var(--border)}.studio-credit{align-items:baseline;gap:var(--space-2);margin-right:var(--space-2);color:var(--accent-text);font-size:var(--text-sm);white-space:nowrap;text-decoration:none;display:inline-flex}.studio-credit:hover .studio-credit-text,.studio-credit:focus-visible .studio-credit-text{text-decoration:underline}.studio-credit .studio-logo{width:21px;height:22px;position:relative;top:1.4px}.message-hero{margin-bottom:var(--space-3);color:var(--accent-text);justify-content:center;display:flex}.message-hero .studio-logo{width:52px;height:56px}.appearance-panel{gap:var(--space-3);flex-direction:column;min-width:240px;display:flex}.appearance-group{gap:var(--space-1);flex-direction:column;display:flex}.appearance-heading{color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase}.appearance-options{gap:var(--space-1);display:flex}.appearance-choice[aria-checked=true]{color:var(--accent-contrast);background:var(--accent)}.appearance-swatch{border-radius:50%;padding:3px;display:inline-flex}.appearance-swatch[aria-checked=true]{border-color:var(--text)}.swatch-dot{border-radius:50%;width:20px;height:20px}.prompt-field{gap:var(--space-1);color:var(--text-muted);font-size:var(--text-sm);flex-direction:column;display:flex}.prompt-dialog .dialog-actions{gap:var(--space-2)}.artboard-fields{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.artboard-actions{gap:var(--space-2);margin:var(--space-2) 0;display:flex}.stage-overlay .handle-artboard{fill:var(--panel);stroke:var(--accent-text)}.message-dialog a{color:var(--accent-text)}dialog.settings-dialog.morph-editor{width:min(860px,96vw);max-width:96vw;max-height:92vh;overflow:auto}.morph-editor .morph-panes{gap:var(--space-2);flex-wrap:wrap;display:flex}.morph-pane{gap:var(--space-1);padding:var(--space-1);border:1px solid var(--border);background:var(--panel-raised);border-radius:6px;flex-direction:column;display:flex}.morph-pane-title{font-size:var(--text-sm);color:var(--text-muted);margin:0}.morph-pane .morph-shape{fill:var(--accent-soft);stroke:var(--text);stroke-width:1px;vector-effect:non-scaling-stroke}.morph-pane .morph-point{fill:var(--bg);stroke:var(--text);stroke-width:1px;vector-effect:non-scaling-stroke;cursor:pointer}.morph-pane .morph-point.is-pending{fill:var(--accent)}.morph-pane .morph-point-label{fill:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.morph-pins{font-size:var(--text-sm);margin:0;padding:0;list-style:none}.morph-pins li{align-items:center;gap:var(--space-1);display:flex}.morph-pin-swatch{border-radius:50%;width:10px;height:10px}.morph-parts{gap:var(--space-1);display:grid}.preview-note{font-size:var(--text-sm);color:var(--text-muted);margin:0}
