:root{--bg: #ffffff;--bg-2: #f5f5f5;--bg-hover: #f0f0f0;--border: #e6e6e6;--text: #1e1e1e;--muted: #8c8c8c;--accent: #5b4ef0;--accent-hover: #4a3de0;--accent-soft: #ecebfe;--accent-softer: #f6f5ff;--accent-fill: rgba(91, 78, 240, .08);--component: #0d9488;--component-soft: #d5f5f0;--purple: var(--component);--purple-soft: var(--component-soft);--canvas-dot: #d4d4d8;--app-bg: #e9e9ee;--canvas: #f5f5f5;--menu-bg: #1e1e1e;--toolbar-shadow: 0 0 0 .5px rgba(0, 0, 0, .12), 0 4px 16px rgba(0, 0, 0, .12);--window-shadow: 0 0 0 .5px rgba(0, 0, 0, .12), 0 12px 40px rgba(0, 0, 0, .2);--live-bg: #e3f6ec;--live-text: #0f8a48;--ease: cubic-bezier(.2, .8, .2, 1);--radius: 5px;color-scheme:light;font-family:Geist,Inter,system-ui,-apple-system,sans-serif;font-size:11px;color:var(--text);-webkit-font-smoothing:antialiased}:root[data-theme=dark]{--bg: #2c2c2c;--bg-2: #383838;--bg-hover: #404040;--border: #444444;--text: #f5f5f5;--muted: #a3a3a3;--accent-soft: #2f2a63;--accent-softer: #25224a;--accent-fill: rgba(124, 114, 255, .12);--component-soft: #12403b;--canvas-dot: #2f2f36;--app-bg: #161619;--canvas: #1e1e1e;--menu-bg: #1e1e1e;--toolbar-shadow: 0 0 0 .5px rgba(255, 255, 255, .12), 0 4px 18px rgba(0, 0, 0, .5);--window-shadow: 0 0 0 .5px rgba(255, 255, 255, .14), 0 16px 48px rgba(0, 0, 0, .6);--live-bg: #17402b;--live-text: #7be0a8;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden;background:var(--bg-2);color:var(--text)}button{font:inherit;color:inherit;background:none;border:0;cursor:default;padding:0}input,select,textarea{font:inherit;color:inherit}.muted{color:var(--muted)}.pad{padding:8px 16px}.loading{display:grid;place-items:center;height:100%;color:var(--muted)}.editor{display:flex;flex-direction:column;height:100%}.main{flex:1;display:flex;min-height:0}.center{flex:1;position:relative;min-width:0}.topbar{height:48px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 8px;background:var(--bg);border-bottom:1px solid var(--border)}.tb-left,.tb-right{display:flex;align-items:center;gap:6px}.logo-btn{display:flex;align-items:center;gap:2px;padding:5px 6px;border-radius:var(--radius)}.logo-btn:hover{background:var(--bg-hover)}.file-title{display:flex;align-items:center;gap:4px;font-size:12px}.file-name{border:1px solid transparent;border-radius:4px;padding:4px 6px;font-weight:600;width:220px;background:none}.file-name:hover{border-color:var(--border)}.file-name:focus{outline:none;border-color:var(--accent)}.zoom-btn{padding:6px 8px;border-radius:var(--radius);min-width:52px}.zoom-btn:hover{background:var(--bg-hover)}.dropdown{position:relative}.panel{flex:none;background:var(--bg);display:flex;flex-direction:column;min-height:0;-webkit-user-select:none;user-select:none}.panel.left{width:var(--left-w, 241px);border-right:1px solid var(--border)}.panel.right{width:var(--right-w, 241px);border-left:1px solid var(--border)}.panel-scroll{overflow-y:auto;flex:1}.tabs{display:flex;gap:2px;padding:8px;border-bottom:1px solid var(--border);flex:none}.tabs button{padding:5px 8px;border-radius:var(--radius);font-weight:500;color:var(--muted)}.tabs button:hover{color:var(--text)}.tabs button.active{background:var(--bg-hover);color:var(--text);font-weight:600}.section{padding:8px 16px 12px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.section-head{display:flex;align-items:center;justify-content:space-between;min-height:24px}.section-title,.section-toggle{font-weight:600;font-size:11px}.pages .section-head,.layers .section-head,.assets .section-head{padding:0 8px 0 16px}.header-section{gap:8px}.type-badge{font-weight:600;font-size:12px}.type-badge.comp{color:var(--purple)}.stack{display:flex;flex-direction:column;gap:6px}.align-row{flex-direction:row;justify-content:space-between;padding:6px 12px}.row{display:flex;gap:8px;align-items:center}.row>*{flex:1}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.wide{width:100%}.icon-btn{width:24px;height:24px;display:inline-grid;place-items:center;border-radius:var(--radius);color:var(--text);flex:none}.icon-btn:hover{background:var(--bg-hover)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:28px;padding:0 10px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);font-weight:500;white-space:nowrap}.btn:hover{background:var(--bg-hover)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.small{height:22px;padding:0 7px;font-size:10px}.btn:disabled{opacity:.5}select,.text-input{height:28px;border:1px solid transparent;background:var(--bg-2);border-radius:var(--radius);padding:0 6px;min-width:0}select:hover,.text-input:hover{border-color:var(--border)}select:focus,.text-input:focus{outline:none;border-color:var(--accent)}.num{display:flex;align-items:center;height:28px;background:var(--bg-2);border-radius:var(--radius);border:1px solid transparent;min-width:0}.num:hover{border-color:var(--border)}.num:focus-within{border-color:var(--accent);background:var(--bg)}.num-label{width:26px;flex:none;display:grid;place-items:center;color:var(--muted);cursor:ew-resize;font-size:10px}.num input{border:0;background:none;width:100%;min-width:0;height:100%;padding:0 6px 0 0;outline:none}.num.disabled{opacity:.5}.num.disabled .num-label{cursor:default}.color-field{display:flex;align-items:center;gap:0;height:28px;background:var(--bg-2);border-radius:var(--radius);padding-left:6px;border:1px solid transparent}.color-field:hover{border-color:var(--border)}.color-field input[type=color]{width:16px;height:16px;padding:0;border:1px solid rgba(0,0,0,.1);border-radius:3px;background:none;flex:none}.color-field input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-field input[type=color]::-webkit-color-swatch{border:0;border-radius:2px}.color-field .hex{border:0;background:none;width:100%;height:100%;padding:0 8px;outline:none;text-transform:uppercase}.seg{display:flex;background:var(--bg-2);border-radius:var(--radius);padding:2px;height:28px}.seg button{flex:1;display:grid;place-items:center;border-radius:4px;color:var(--muted)}.seg button.on{background:var(--bg);color:var(--text);box-shadow:0 0 0 1px var(--border)}.check-row{display:flex;align-items:center;gap:6px}.code{margin:0;padding:10px;background:var(--bg-2);border-radius:var(--radius);font:11px/1.6 Space Mono,ui-monospace,monospace;white-space:pre-wrap;-webkit-user-select:text;user-select:text}.pages{border-bottom:1px solid var(--border);padding:8px 0;flex:none;max-height:30%;overflow-y:auto}.layers{flex:1;overflow-y:auto;padding:8px 0 24px}.page-row,.layer-row{display:flex;align-items:center;height:32px;padding-right:8px;gap:4px;position:relative}.page-row{padding-left:16px}.page-row:hover,.layer-row:hover,.layer-row.hovered{box-shadow:inset 0 0 0 1px var(--accent)}.page-row.active{font-weight:600}.page-row .check{width:14px;color:var(--text)}.page-row .row-hover,.layer-row .layer-actions{visibility:hidden}.page-row:hover .row-hover,.layer-row:hover .layer-actions{visibility:visible}.layer-row.parent-selected{background:var(--accent-softer)}.layer-row.comp{color:var(--purple)}.layer-row.comp.selected{background:var(--purple-soft)}.layer-row.hidden .layer-name,.layer-row.hidden .layer-icon{opacity:.4}.layer-row.drop-above:before,.layer-row.drop-below:after{content:"";position:absolute;left:0;right:0;height:2px;background:var(--accent)}.layer-row.drop-above:before{top:0}.layer-row.drop-below:after{bottom:0}.layer-row.drop-inside{box-shadow:inset 0 0 0 2px var(--accent)}.caret{width:12px;height:12px;display:grid;place-items:center;color:var(--muted);flex:none;transition:transform .1s}.caret.open{transform:rotate(90deg)}.layer-icon{color:var(--muted);display:grid;place-items:center;flex:none}.layer-row.comp .layer-icon{color:var(--purple)}.layer-row.selected .layer-icon{color:var(--text)}.layer-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-actions{display:flex}.layer-actions .icon-btn.on{visibility:visible}.layer-row .layer-actions:has(.on){visibility:visible}.inline-name{flex:1;min-width:0;height:22px;border:1px solid var(--accent);border-radius:3px;padding:0 4px;outline:none}.assets{flex:1;overflow-y:auto;padding-bottom:16px}.search{display:flex;align-items:center;gap:6px;margin:8px;padding:0 8px;height:28px;background:var(--bg-2);border-radius:var(--radius);color:var(--muted)}.search input{border:0;background:none;outline:none;flex:1;min-width:0;color:var(--text)}.asset-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:4px 16px}.asset{display:flex;flex-direction:column;gap:4px;cursor:grab}.asset svg{width:100%;aspect-ratio:1;background:var(--bg-2);border-radius:var(--radius);border:1px solid transparent}.asset:hover svg{border-color:var(--purple)}.asset span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-wrap{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.canvas-svg{width:100%;height:100%;display:block;touch-action:none;-webkit-user-select:none;user-select:none}.overlay{pointer-events:none}.overlay .handle{fill:#fff;stroke-width:1;pointer-events:all}.overlay .edge-handle{fill:transparent;pointer-events:all}.frame-title{font-size:11px;pointer-events:all;cursor:default;-webkit-user-select:none;user-select:none}.size-label text{font-size:10px;font-weight:500}.text-editor{position:absolute;margin:0;padding:0;border:0;outline:1px solid var(--accent);background:transparent;resize:none;overflow:hidden;white-space:pre;transform-origin:0 0}.save-state{position:absolute;top:26px;right:12px;color:var(--muted);font-size:10px;pointer-events:none}.toolbar{position:absolute;left:50%;bottom:16px;transform:translate(-50%);display:flex;align-items:center;gap:2px;padding:4px;background:var(--bg);border-radius:13px;box-shadow:var(--toolbar-shadow)}.tool{width:32px;height:32px;display:grid;place-items:center;border-radius:8px}.tool:hover{background:var(--bg-hover)}.tool.active{background:var(--accent);color:#fff}.tool-sep{width:1px;height:20px;background:var(--border);margin:0 4px}.menu{position:absolute;z-index:50;min-width:220px;padding:6px;background:var(--menu-bg);color:#fff;border-radius:8px;box-shadow:0 0 0 .5px #ffffff14,0 6px 24px #0000004d}.menu-item{display:flex;justify-content:space-between;gap:24px;width:100%;padding:6px 8px;border-radius:4px;text-align:left}.menu-item:hover:not(:disabled){background:var(--accent)}.menu-item:disabled{opacity:.4}.menu-keys{color:#ffffff8c}.menu-sep{height:1px;margin:4px 0;background:#ffffff1f}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052}.window{position:fixed;max-height:82vh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);border-radius:12px;box-shadow:var(--window-shadow);overflow:hidden}.window.dragging{box-shadow:var(--window-shadow),0 24px 60px #00000040;-webkit-user-select:none;user-select:none}.window-head{display:flex;justify-content:space-between;align-items:center;padding:8px 8px 8px 16px;font-size:12px;cursor:grab;border-bottom:1px solid var(--border);flex:none}.window.dragging .window-head{cursor:grabbing}.window-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.version-list{display:flex;flex-direction:column}.version{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-top:1px solid var(--border)}.version .row>*{flex:none}.shortcuts{display:grid;gap:2px}.shortcut{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--bg-2)}kbd{font:inherit;background:var(--bg-2);padding:1px 6px;border-radius:4px}.present{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e1e1e;z-index:200;display:flex;flex-direction:column;align-items:center}.present-bar{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;color:#fff}.present-bar .btn{color:var(--text)}.present-frame{flex:1;width:96vw;max-height:calc(100vh - 64px);margin-bottom:16px;animation:fade .2s ease}.present-frame [data-link]{cursor:pointer}@keyframes fade{0%{opacity:0}to{opacity:1}}.home{display:flex;height:100%;background:var(--bg);overflow:hidden}.home-side{width:240px;flex:none;border-right:1px solid var(--border);padding:12px 8px;display:flex;flex-direction:column;gap:4px}.home-brand{display:flex;align-items:center;gap:8px;padding:4px 8px 8px;font-size:14px}.home-side .search{margin:4px 0 8px}.side-link{text-align:left;padding:7px 8px;border-radius:var(--radius);font-weight:500}.side-link.active{background:var(--bg-hover)}.side-note{padding:12px 8px;line-height:1.5}.home-main{flex:1;overflow-y:auto;padding:24px 32px}.home-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px;flex-wrap:wrap}.home-head h1{font-size:20px;margin:0}.home-head .row>*{flex:none}.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}.file-card{border:1px solid var(--border);border-radius:8px;overflow:hidden;cursor:pointer}.file-card:hover{box-shadow:0 0 0 2px var(--accent);border-color:transparent}.file-thumb{aspect-ratio:16 / 10;background:var(--bg-2);display:grid;place-items:center;padding:12px}.file-thumb img{max-width:100%;max-height:100%;object-fit:contain}.file-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:12px}.file-actions{display:flex;align-items:center;gap:4px;visibility:hidden}.file-card:hover .file-actions{visibility:visible}.empty{display:grid;place-items:center;gap:12px;padding:80px 0;font-size:13px;color:var(--muted)}@media (max-width: 760px){.home-side{display:none}.home-main{padding:16px}.panel{width:200px}.file-name{width:120px}}body{cursor:var(--cursor, default)}input[type=text],input:not([type]),textarea,.text-input{cursor:text}.outline-mode .world *{fill:none!important;stroke:var(--text)!important;stroke-width:1px!important;vector-effect:non-scaling-stroke;filter:none!important}.outline-mode .world image{opacity:.15}.overlay .rotate-zone{fill:transparent;pointer-events:all}.overlay .vpoint{fill:#fff;stroke:var(--accent);stroke-width:1.5;pointer-events:all;cursor:move}.peer-cursor{transition:transform .3s linear;pointer-events:none}.rulers{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.ruler-bg,.ruler-corner{fill:var(--bg)}.ruler-corner{stroke:var(--border)}.ruler-sel{fill:var(--accent-fill)}.ruler-tick{stroke:#b3b3b3}.ruler-label{font-size:9px;fill:var(--muted)}.editor.hide-ui .center{background:var(--bg-2)}.toast{position:fixed;left:50%;bottom:72px;transform:translate(-50%);z-index:300;max-width:min(560px,calc(100vw - 32px));background:#1e1e1e;color:#fff;padding:9px 14px;border-radius:8px;box-shadow:0 6px 24px #00000040;animation:fade .15s ease}.tool-split{position:relative;display:flex;align-items:center}.tool-caret{width:14px;height:32px;display:grid;place-items:center;border-radius:6px;color:var(--muted)}.tool-caret:hover{background:var(--bg-hover);color:var(--text)}.menu.up{bottom:44px;left:0;top:auto}.menu-icon-label{display:inline-flex;align-items:center;gap:8px}.check-mark{display:inline-block;width:16px}.view-only{padding:0 8px}fieldset.design{border:0;margin:0;padding:0;min-width:0}fieldset.design:disabled{opacity:.6}.swatches{display:flex;flex-wrap:wrap;gap:4px}.swatch{width:18px;height:18px;border-radius:4px;box-shadow:inset 0 0 0 1px #0000001f}.gradient-bar{height:16px;border-radius:4px;box-shadow:inset 0 0 0 1px #0000001a}.stop-row{display:grid;grid-template-columns:70px 1fr auto;gap:6px;align-items:center}.export-row{display:grid;grid-template-columns:62px 1fr 66px 24px;gap:6px;align-items:center}.effect-row{display:flex;justify-content:space-between;align-items:center}.bool-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}.field{display:flex;flex-direction:column;gap:4px;flex:1}.field.narrow{flex:none;width:60px}.field input[type=color]{width:100%;height:28px;border:1px solid var(--border);border-radius:var(--radius);padding:2px;background:var(--bg)}.text-input.area{height:80px;padding:6px;resize:vertical}.copy-field{display:flex;flex-direction:column;gap:4px}.copy-field .row>.btn{flex:none}.error{color:#f24822;margin:0}.link-btn{color:var(--accent);padding:2px 0;align-self:flex-start}.link-btn.danger{color:#f24822}.menu-sep.light{background:var(--border)}.search.slim{margin:4px 8px 8px}.stack.center{align-items:center;text-align:center}.badge{font-size:10px;padding:1px 6px;border-radius:4px;background:var(--bg-hover);color:var(--muted);font-weight:500}.badge.live{background:var(--live-bg);color:var(--live-text);margin-left:6px}.small{font-size:10px}.avatars{display:flex;align-items:center;gap:2px;margin-right:6px}.avatar{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:600;font-size:11px;box-shadow:0 0 0 2px var(--bg);margin-left:-4px}.avatar.small{width:18px;height:18px;font-size:9px;margin:0;box-shadow:none}.avatar.more{background:var(--muted)}.avatar.me{margin-left:4px}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--muted);margin-right:8px}.live-dot.live{background:#14ae5c;box-shadow:0 0 0 3px #14ae5c33}.live-dot.offline,.live-dot.connecting{background:#ffa629}.live-dot.error{background:#f24822}.avatars .badge{margin-right:8px}.comment-pin{position:absolute;width:28px;height:28px;margin:-28px 0 0;border-radius:50% 50% 50% 0;color:#fff;font-weight:600;display:grid;place-items:center;box-shadow:0 2px 8px #00000040,0 0 0 2px #fff;z-index:5}.comment-pin.active{box-shadow:0 0 0 2px var(--accent),0 2px 8px #00000040}.pin-count{position:absolute;top:-6px;right:-6px;background:#1e1e1e;font-size:9px;border-radius:8px;padding:0 4px}.comment-pop{position:absolute;margin:4px 0 0 34px;width:280px;background:var(--bg);border-radius:10px;padding:10px;z-index:20;box-shadow:var(--window-shadow);display:flex;flex-direction:column;gap:8px}.comment-head{display:flex;gap:12px;justify-content:flex-end}.thread{display:flex;flex-direction:column;gap:10px;max-height:260px;overflow-y:auto}.reply p{margin:4px 0 0 24px;white-space:pre-wrap;line-height:1.45;-webkit-user-select:text;user-select:text}.reply-meta{display:flex;gap:6px;align-items:center}.composer{display:flex;gap:6px;align-items:flex-end}.composer textarea{flex:1;min-height:34px;max-height:120px;resize:vertical;border:1px solid var(--border);border-radius:6px;padding:6px 8px;outline:none}.composer textarea:focus{border-color:var(--accent)}.ext-list{display:flex;flex-direction:column;gap:2px;max-height:50vh;overflow-y:auto}.ext{display:flex;gap:12px;align-items:center;text-align:left;padding:8px;border-radius:8px}.ext:hover{background:var(--bg-hover)}.ext>span:last-child{display:flex;flex-direction:column;gap:2px}.ext-icon{width:34px;height:34px;flex:none;border-radius:8px;background:var(--bg-2);display:grid;place-items:center;font-size:16px}.ext-runner{display:flex;flex-direction:column;gap:10px}.picker{display:flex;flex-direction:column}.picker .search.slim{margin:0 0 8px}.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:4px;max-height:220px;overflow-y:auto}.pick{aspect-ratio:1;border-radius:6px;display:grid;place-items:center;background:var(--bg-2);border:1px solid transparent;overflow:hidden}.pick:hover{border-color:var(--border)}.pick.on{border-color:var(--accent);background:var(--accent-soft)}.pick img{width:24px;height:24px}.tab-body{flex:1;display:flex;flex-direction:column;min-height:0}.resizer{width:7px;margin:0 -3px;flex:none;position:relative;z-index:6;cursor:col-resize}.resizer:after{content:"";position:absolute;top:0;bottom:0;left:3px;width:1px;background:transparent;transition:background-color .15s ease}.resizer:hover:after,.resizer.active:after{background:var(--accent);width:2px;left:2.5px}.theme-switch{display:flex;background:var(--bg-2);border-radius:7px;padding:2px;margin:8px 0 0}.theme-switch button{flex:1;padding:5px 0;border-radius:5px;color:var(--muted);font-weight:500}.theme-switch button.on{background:var(--bg);color:var(--text);box-shadow:0 1px 2px #0000001f}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.num input:focus-visible,.color-field .hex:focus-visible,.file-name:focus-visible,.inline-name:focus-visible{outline:none}.text-input,select,.num,.color-field{background-color:var(--bg-2);color:var(--text)}input,textarea{color:var(--text)}.composer textarea,.text-input{background:var(--bg-2)}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.97)}}@keyframes pop-up{0%{opacity:0;transform:translateY(4px) scale(.97)}}@keyframes win-in{0%{opacity:0;transform:translateY(8px) scale(.97)}}@keyframes fade-up{0%{opacity:0;transform:translateY(4px)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px) scale(.98)}}@keyframes toolbar-in{0%{opacity:0;transform:translate(-50%,16px)}}@keyframes pin-in{0%{opacity:0;transform:translateY(6px) scale(.6)}}@media (prefers-reduced-motion: no-preference){.btn,.icon-btn,.tool,.tool-caret,.tabs button,.layer-row,.page-row,.menu-item,.ext,.pick,.num,.color-field,select,.text-input,.seg button,.swatch,.avatar,.asset svg,.side-link,.theme-switch button,.link-btn,.logo-btn,.zoom-btn,.file-name{transition:background-color .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s var(--ease),opacity .15s ease}.caret{transition:transform .18s var(--ease)}.btn:active,.icon-btn:active,.tool:active,.tool-caret:active,.theme-switch button:active{transform:scale(.94)}.menu{animation:pop-in .14s var(--ease);transform-origin:top left}.menu.up{animation-name:pop-up;transform-origin:bottom left}.window{animation:win-in .2s var(--ease)}.modal-bg{animation:fade .18s ease}.comment-pop{animation:pop-in .16s var(--ease)}.comment-pin{animation:pin-in .22s var(--ease);transition:box-shadow .15s ease,transform .15s var(--ease)}.comment-pin:hover{transform:translateY(-2px)}.toast{animation:toast-in .22s var(--ease)}.toolbar{animation:toolbar-in .35s var(--ease)}.panel-scroll,.tab-body,.ext-runner,.pick-grid,.version-list{animation:fade-up .18s var(--ease)}.file-card{transition:box-shadow .2s ease,transform .2s var(--ease),border-color .2s ease;animation:fade-up .25s var(--ease) backwards}.file-card:hover{transform:translateY(-2px)}.avatar{transition:transform .15s var(--ease)}.avatar:hover{transform:translateY(-2px) scale(1.06)}.live-dot.live{animation:pulse 2s ease-in-out infinite}.tool.active{transition:background-color .18s var(--ease),color .18s ease}.theme-anim,.theme-anim *,.theme-anim *:before,.theme-anim *:after{transition:background-color .35s ease,color .35s ease,border-color .35s ease,box-shadow .35s ease,fill .35s ease!important}}@keyframes pulse{50%{box-shadow:0 0 0 5px #14ae5c14}}:root{--section-tag: #ececec}:root[data-theme=dark]{--section-tag: #444444}.icon{display:block;flex:none}.icon-btn.on{color:var(--accent);background:var(--accent-soft)}.row.tight{gap:2px;flex:none}.row.tight>*{flex:none}.mono{font-family:Space Mono,ui-monospace,monospace;font-size:10px}:root[data-contrast=high]{--muted: #5c5c5c;--border: #b8b8b8;--bg-2: #ececec}:root[data-contrast=high][data-theme=dark]{--muted: #d0d0d0;--border: #6e6e6e;--bg-2: #3a3a3a;--text: #ffffff}:root[data-inputs=outlined] :is(.num,.color-field,select,.text-input,.search){background:transparent;border:1px solid var(--border)}:root[data-inputs=outlined] :is(.num,.color-field,select,.text-input):hover{border-color:var(--muted)}.crumb-sep{margin:0 -2px}.page-pill{padding:3px 8px;border-radius:999px;background:var(--bg-2);color:var(--muted);font-size:10px;font-weight:500;white-space:nowrap}.tb-center{position:absolute;left:50%;transform:translate(-50%)}.topbar{position:relative}.toolbar.docked{position:static;transform:none;box-shadow:none;padding:0;background:transparent;animation:none}.toolbar.docked .tool{width:30px;height:30px}.menu.down{top:38px;left:0}.tool.actions{width:auto;padding:0 10px 0 8px;display:flex;gap:6px;font-weight:500}.tooltip{position:fixed;z-index:1000;transform:translate(-50%);pointer-events:none;white-space:nowrap;display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:6px;font-size:11px;background:#1e1e1e;color:#fff;box-shadow:0 4px 14px #00000040}.tooltip.above{transform:translate(-50%,-100%)}.tooltip kbd{background:#ffffff24;color:#ffffffd9;font-size:10px;padding:0 5px;border-radius:4px}:root[data-theme=dark] .tooltip{background:#f5f5f5;color:#1e1e1e}:root[data-theme=dark] .tooltip kbd{background:#00000014;color:#444}.palette-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:#0000001f;display:flex;justify-content:center;align-items:flex-start;padding-top:12vh}.palette{width:min(560px,calc(100vw - 24px));background:var(--bg);color:var(--text);border-radius:12px;box-shadow:var(--window-shadow);overflow:hidden}.palette-input{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);color:var(--muted)}.palette-input input{flex:1;border:0;outline:none;background:none;font-size:14px;color:var(--text)}.palette-input kbd{font-size:10px}.palette-list{max-height:min(420px,60vh);overflow-y:auto;padding:6px}.cmd-group{padding:8px 10px 4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.cmd{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:7px 10px;border-radius:7px;text-align:left;font-size:12px}.cmd.active{background:var(--accent);color:#fff}.cmd.active kbd{background:#fff3;color:#fff}.empty-hint{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);z-index:4;width:min(380px,calc(100% - 32px));background:var(--bg);border-radius:14px;padding:18px;box-shadow:var(--window-shadow);display:flex;flex-direction:column;gap:6px;text-align:center}.empty-hint strong{font-size:14px}.empty-hint p{margin:0 0 6px}.starters{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.starter{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px 8px;border-radius:10px;background:var(--bg-2)}.starter:hover{background:var(--accent-soft);color:var(--accent)}.starter kbd{font-size:9px}.hint-links{display:flex;justify-content:center;gap:14px;margin-top:8px}.hint-links .link-btn{display:inline-flex;align-items:center;gap:4px}.hint-links kbd{font-size:9px}.section-tag{pointer-events:all;cursor:default}.style-picker{position:relative}.style-open{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}.style-open:hover{color:var(--accent)}.style-chip{display:flex;align-items:center;gap:8px;height:28px;padding-left:6px;border-radius:var(--radius);background:var(--bg-2)}.style-menu{position:absolute;z-index:30;top:24px;left:0;right:0;background:var(--bg);border-radius:8px;box-shadow:var(--window-shadow);padding:4px;animation:pop-in .14s var(--ease)}.style-list{padding:0 8px}.style-row{width:100%;display:flex;align-items:center;gap:8px;height:30px;padding:0 8px;border-radius:6px;text-align:left}.style-row:hover{background:var(--bg-hover)}.style-row.create{color:var(--accent)}.type-ag{width:18px;text-align:center;font-weight:600;font-size:11px;flex:none}.asset-list{display:flex;flex-direction:column;padding:0 8px}.asset-list .asset{flex-direction:row;align-items:center;gap:8px;padding:4px 8px;border-radius:6px}.asset-list .asset:hover{background:var(--bg-hover)}.asset-list .asset svg{width:28px;height:28px;flex:none}.seg.mini{height:24px}.seg.mini button{width:26px}.wide-seg button{display:inline-flex;gap:6px;align-items:center;justify-content:center;padding:0 6px}.pref{display:flex;flex-direction:column;gap:6px}.pref>span{font-weight:600}.pref p{margin:0}.layer-row,.page-row{border-radius:6px;margin:0 6px}.layer-row .layer-name{padding-left:2px}.tabs{padding:8px 8px 6px}.section-head .section-title{letter-spacing:.01em}@media (prefers-reduced-motion: no-preference){.palette{animation:win-in .16s var(--ease)}.palette-bg{animation:fade .12s ease}.tooltip{animation:fade .1s ease}.empty-hint{animation:win-in .3s var(--ease)}.starter{transition:background-color .15s ease,color .15s ease,transform .15s var(--ease)}.starter:active{transform:scale(.95)}.cmd{transition:background-color .08s ease}}.file-name{width:auto;min-width:60px;max-width:320px}.cmd-meta{display:flex;align-items:center;gap:8px;flex:none}.cmd-tag{font-size:10px;color:var(--muted)}.cmd.active .cmd-tag{color:#ffffffbf}.editor{background:var(--app-bg)}.topbar{background:var(--app-bg);border-bottom:0}.main{gap:6px;padding:0 6px 6px}.editor.hide-ui .main{padding:0}.panel{border-radius:14px;border:1px solid var(--border)!important;overflow:hidden;box-shadow:0 1px 2px #0000000a}.center{border-radius:14px;overflow:hidden;border:1px solid var(--border)}.editor.hide-ui .center{border-radius:0;border:0}.resizer{width:6px;margin:0 -6px}.resizer:after{left:2.5px}.tabs button.active{background:var(--accent-soft);color:var(--accent)}:root[data-theme=dark] .tabs button.active{color:#c4bfff}.layer-row.selected{background:var(--accent-soft)}.tool.active{background:linear-gradient(135deg,var(--accent),#8b5cf6)}.toolbar{border-radius:16px}.overlay .handle{fill:#fff;stroke-width:1.5;pointer-events:all}.overlay .vpoint{fill:#fff;stroke:var(--accent);stroke-width:1.5}.overlay .vpoint.on{fill:var(--accent)}.overlay .vhandle{fill:var(--accent);stroke:#fff;stroke-width:1.5;pointer-events:all;cursor:move}.overlay .vhandle-line{stroke:var(--accent);stroke-width:1}.home{background:var(--app-bg)}.home-main{background:var(--bg);margin:8px 8px 8px 0;border-radius:16px;border:1px solid var(--border)}.home-side{border-right:0}.file-card:hover{box-shadow:0 0 0 2px var(--accent)}.badge.live{background:var(--component-soft);color:var(--component)}.num-with-btn{display:flex;gap:2px;align-items:center;min-width:0}.num-with-btn .num{flex:1}.corner-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:relative}.corner-grid>.icon-btn{position:absolute;right:-22px;top:2px}.presets{padding-bottom:16px}.presets .pad.tight{padding-top:0;padding-bottom:4px}.preset-group{padding:0 8px}.preset{width:100%;display:flex;align-items:center;gap:10px;height:32px;padding:0 8px;border-radius:7px;text-align:left}.preset:hover{background:var(--accent-soft)}.preset-thumb{width:14px;max-height:20px;border:1.25px solid var(--muted);border-radius:2px;flex:none}.preset:hover .preset-thumb{border-color:var(--accent)}.present-stage{flex:1;width:100%;display:grid;place-items:center;overflow:hidden}.present-frame{width:96vw;height:calc(100vh - 64px);margin:0}@keyframes t-dissolve{0%{opacity:0}}@keyframes t-slide-left{0%{transform:translate(100%)}}@keyframes t-slide-right{0%{transform:translate(-100%)}}@keyframes t-slide-up{0%{transform:translateY(100%)}}@keyframes t-slide-down{0%{transform:translateY(-100%)}}.present-frame.t-instant{animation:none}.present-frame.t-dissolve{animation:t-dissolve .3s ease}.present-frame.t-slide-left{animation:t-slide-left .35s var(--ease)}.present-frame.t-slide-right{animation:t-slide-right .35s var(--ease)}.present-frame.t-slide-up{animation:t-slide-up .35s var(--ease)}.present-frame.t-slide-down{animation:t-slide-down .35s var(--ease)}.show-hotspots [data-link]{filter:drop-shadow(0 0 .5px var(--accent)) drop-shadow(0 0 6px var(--accent));transition:filter .15s ease}.mcp-box{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:10px;background:var(--bg-2)}.mcp-box .code{margin:0;font-size:10px;max-height:90px;overflow:auto}.row.wrap{flex-wrap:wrap}.grow{flex:1}.chip{padding:4px 10px;border-radius:999px;background:var(--bg-2);font-weight:500}.chip.on{background:var(--accent-soft);color:var(--accent)}.var-chip{padding-right:2px}.var-table-wrap{display:flex;flex-direction:column;gap:10px;overflow-x:auto}.var-table{border-collapse:collapse;width:100%}.var-table th,.var-table td{padding:4px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--border)}.var-table th{font-weight:500}.var-table th .text-input{font-weight:600}.var-table input[type=color]{width:100%;height:28px;border:1px solid var(--border);border-radius:6px;padding:2px;background:var(--bg)}.var-table .text-input{width:100%}.remote-ext{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--border);padding-top:10px}.remote-ext .row>.btn{flex:none}.remote-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.remote-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}code{font-family:Space Mono,ui-monospace,monospace;font-size:10px;background:var(--bg-2);padding:1px 4px;border-radius:4px}.present-stage{position:relative}.present-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;animation:fade .2s ease}.overlay-frame{max-height:90%;box-shadow:0 20px 60px #0006;border-radius:12px;animation:win-in .25s var(--ease)}
