@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Sora:wght@300;400;500;600;700&display=swap";:root{color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--font-display:"Space Grotesk","Trebuchet MS",sans-serif;--bg:#0b0d12;--panel:#10131ce6;--panel-strong:#131721f2;--text:#f4f6fb;--text-muted:#9aa3b2;--accent:#f2a63b;--accent-2:#4bd0ff;--accent-3:#ff7a70;--border:#ffffff1a;--shadow:0 18px 44px #02060c73;--radius:18px;font-family:Sora,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}body{min-height:100vh;color:var(--text);background:radial-gradient(circle at 0 0,#4bd0ff1f,#0000 40%),radial-gradient(circle at 20% 80%,#f2a63b1f,#0000 45%),radial-gradient(circle at 90% 20%,#ff7a701f,#0000 40%),#0b0d12;margin:0}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}#root{min-height:100vh}.app{grid-template-rows:auto 1fr auto;gap:0;height:100vh;min-height:100vh;display:grid;overflow:hidden}.drop-overlay{z-index:50;text-align:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;background:#080a0fbf;border:2px dashed #4bd0ff99;place-items:center;display:grid;position:fixed;inset:0}.drop-overlay h3{font-family:var(--font-display);margin:0 0 6px}.drop-overlay p{color:var(--text-muted);margin:0;font-size:.9rem}.topbar{border-bottom:1px solid var(--border);z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(120deg,#12161eeb,#0a0c12fa);justify-content:space-between;align-items:center;padding:20px 28px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;display:flex}.brand-mark{background:conic-gradient(from 120deg,#f2a63b,#4bd0ff,#ff7a70,#f2a63b);border-radius:14px;width:44px;height:44px;box-shadow:0 12px 28px #00000073}.brand-title{font-family:var(--font-display);margin:0;font-size:1.05rem;font-weight:600}.brand-sub{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.75rem}.project{gap:6px;min-width:220px;display:grid}.project label{text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);font-size:.7rem}.project input{background:var(--panel-strong);border:1px solid var(--border);color:var(--text);border-radius:12px;padding:10px 12px}.topbar-actions{gap:10px;display:flex}.workspace{grid-template-columns:290px minmax(0,1fr) 320px;gap:20px;min-height:0;padding:24px 28px 30px;display:grid;overflow:hidden}.panel{flex-direction:column;gap:18px;min-width:0;min-height:0;display:flex}.left-panel,.right-panel{scrollbar-gutter:stable;min-height:0;overflow-y:auto}.panel-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:16px;min-width:0;padding:18px;display:flex}.panel-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.panel-header h2{font-family:var(--font-display);margin:0 0 6px;font-size:1rem}.panel-header p{color:var(--text-muted);margin:0;font-size:.82rem}.tag{text-transform:uppercase;letter-spacing:.12em;color:#0b0d12;background:var(--accent);white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:.7rem}.btn{letter-spacing:.02em;background:var(--panel-strong);color:var(--text);border:1px solid #0000;border-radius:12px;padding:10px 14px;font-weight:600;transition:transform .2s,box-shadow .2s,border .2s}.btn:hover{border-color:#ffffff2e;transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn.primary{color:#101219;background:linear-gradient(120deg,#f2a63b,#ff7a70);box-shadow:0 12px 24px #f2a63b47}.btn.danger{color:#111218;background:linear-gradient(120deg,#ff5f6d,#ff8c5a);box-shadow:0 12px 24px #ff6f6240}.btn.secondary{background:#11141ee6;border:1px solid #ffffff1f}.btn.ghost{background:0 0;border:1px solid #ffffff1f}.btn.ghost.active{border-color:var(--accent);color:var(--accent)}.panel-actions{align-items:center;gap:12px;display:flex}.helper{color:var(--text-muted);font-size:.75rem}textarea{border:1px solid var(--border);width:100%;min-height:96px;color:var(--text);resize:vertical;background:#0c0f16cc;border-radius:12px;padding:12px}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip{color:var(--text-muted);background:#0c0f1680;border:1px solid #ffffff24;border-radius:999px;padding:6px 12px;font-size:.78rem}.chip.preset-chip{align-items:center;gap:8px;padding:6px 10px;display:inline-flex}.preset-item{align-items:center;gap:6px;display:inline-flex}.preset-item-actions{align-items:center;gap:4px;display:inline-flex}.preset-action{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);background:#0c0f1673;border:1px solid #ffffff24;border-radius:999px;padding:5px 8px;font-size:.65rem}.preset-action.danger{color:#ffb5a6;border-color:#ff8d7a99}.preset-swatch{background-image:linear-gradient(135deg,#ffe29f 0%,#ffa99f 45%,#a1c4fd 100%);border:1px solid #fff3;border-radius:8px;flex-shrink:0;width:28px;height:28px;position:relative;overflow:hidden}.preset-swatch:before{content:"";opacity:var(--swatch-grain,0);mix-blend-mode:soft-light;background-image:radial-gradient(circle at 20% 30%,#ffffff59,#0000 40%),radial-gradient(circle at 70% 60%,#00000059,#0000 45%);position:absolute;inset:0}.preset-swatch:after{content:"";background:radial-gradient(circle at center,#0000 calc(var(--swatch-vignette-size,.75)*100%),rgba(0,0,0,var(--swatch-vignette,0))100%);position:absolute;inset:0}.chip.preset-chip.active .preset-swatch{box-shadow:0 0 0 2px #4bd0ff99}.preset-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.chip.active{color:#dff6ff;background:#4bd0ff2e;border-color:#4bd0ff80}.error-text{color:#ff8d7a;margin:0;font-size:.75rem}.upload-row,.asset-list{flex-direction:column;gap:10px;display:flex}.asset-item{background:#0a0c12b3;border:1px solid #ffffff14;border-radius:14px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px;display:grid}.asset-thumb{background:#ffffff0a;border-radius:12px;place-items:center;width:52px;height:52px;display:grid;overflow:hidden}.asset-thumb.image img{object-fit:cover;width:100%;height:100%}.audio-bars{align-items:flex-end;gap:3px;height:32px;display:flex}.audio-bars span{background:linear-gradient(#4bd0ff,#1f6f8b);border-radius:999px;width:4px}.audio-bars span:first-child{height:40%}.audio-bars span:nth-child(2){height:70%}.audio-bars span:nth-child(3){height:55%}.audio-bars span:nth-child(4){height:85%}.audio-bars span:nth-child(5){height:60%}.asset-meta{gap:4px;display:grid}.asset-name{margin:0;font-size:.85rem;font-weight:600}.asset-sub{color:var(--text-muted);margin:0;font-size:.72rem}.asset-actions{align-items:center;display:flex}.shape-row{gap:10px;display:flex}.stage-panel{scrollbar-gutter:stable;flex-direction:column;gap:18px;min-height:0;display:flex;overflow:hidden auto}.stage-toolbar{justify-content:space-between;align-items:center;padding:4px 8px 0;display:flex}.stage-toolbar h2{font-family:var(--font-display);margin:0;font-size:1.1rem}.stage-toolbar p{color:var(--text-muted);margin:4px 0 0;font-size:.8rem}.toolbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.zoom-control{background:#0c0f168c;border:1px solid #ffffff1f;border-radius:12px;align-items:center;gap:8px;padding:6px 10px;display:flex}.zoom-control span{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.7rem}.zoom-control span:last-of-type{color:var(--text)}.zoom-control input[type=range]{width:120px;accent-color:var(--accent)}.zoom-control .btn{padding:6px 10px;font-size:.7rem}.stage-shell{background:#06080c99;border:1px solid #ffffff14;border-radius:24px;flex:auto;align-content:start;place-items:start center;min-height:520px;padding:24px;display:grid;overflow:auto}.stage{background:linear-gradient(135deg,#232936e6,#12161ef2);border:1px solid #ffffff1f;border-radius:18px;place-items:center;width:min(860px,100%);display:grid;position:relative;overflow:hidden;box-shadow:0 25px 60px #00000073}.stage:before{content:"";opacity:.25;pointer-events:none;z-index:0;background-image:linear-gradient(#ffffff0f 1px,#0000 1px),linear-gradient(90deg,#ffffff0f 1px,#0000 1px);background-size:60px 60px;position:absolute;inset:0}.stage>.konvajs-content{z-index:1;position:relative}.stage-empty{text-align:center;color:var(--text-muted);z-index:2;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.stage-empty h3{font-family:var(--font-display);color:var(--text);margin:0 0 8px}.layer-list{flex-direction:column;gap:8px;display:flex}.layer-item{color:var(--text);text-align:left;cursor:pointer;background:#0c0f1699;border:1px solid #ffffff14;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;width:100%;min-width:0;padding:10px 12px;display:flex}.layer-main{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.layer-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.layer-item.active{border-color:#f2a63bb3;box-shadow:0 0 0 2px #f2a63b33}.layer-type{text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);font-size:.7rem}.layer-actions{flex-shrink:0;gap:6px;display:inline-flex}.layer-action{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);background:#0c0f1673;border:1px solid #ffffff24;border-radius:999px;padding:4px 8px;font-size:.65rem}.layer-action.is-on{color:#dff6ff;border-color:#4bd0ff99}.layer-action.is-off{color:#ffb5a6;border-color:#ff8d7a99}.control-stack{flex-direction:column;gap:12px;display:flex}.animation-card{background:#0a0d14b3;border:1px solid #ffffff14;border-radius:14px;gap:12px;padding:12px;display:grid}.animation-card-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.animation-card-header h4{margin:0;font-size:.85rem}.animation-card-header p{color:var(--text-muted);margin:0;font-size:.75rem}.animation-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.animation-subhead{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:.72rem;display:flex}.control-divider{background:#ffffff14;width:100%;height:1px;margin:4px 0}.control-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.control-grid label,.control-stack label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;gap:6px;min-width:0;font-size:.75rem;display:grid}.control-stack.ai-grid label{text-transform:none;letter-spacing:.02em}input,select{border:1px solid var(--border);color:var(--text);background:#0c0f16b3;border-radius:10px;padding:8px 10px}.right-panel{min-width:0;max-width:100%;overflow-x:hidden}.right-panel .panel-card{flex:none;max-width:100%;overflow:hidden visible}.right-panel .panel-card input:not([type=range]):not([type=color]):not([type=checkbox]),.right-panel .panel-card select,.right-panel .panel-card textarea{width:100%;min-width:0;max-width:100%}input:disabled,select:disabled,textarea:disabled{opacity:.6;cursor:not-allowed}input[type=range]{width:100%}input[type=color]{height:44px;padding:4px}.range-row{color:var(--text);grid-template-columns:1fr auto;align-items:center;gap:10px;font-size:.8rem;display:grid}.toggle-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.toggle-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}.watermark-block{gap:10px;display:grid}.empty-state{color:var(--text-muted);text-align:center;background:#0c0f1680;border-radius:12px;padding:14px;font-size:.82rem}.timeline{border-top:1px solid var(--border);scrollbar-gutter:stable;background:#090b10f2;max-height:clamp(220px,32vh,320px);padding:20px 28px 26px;overflow-y:auto}.timeline-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.timeline-header h2{font-family:var(--font-display);margin:0 0 6px;font-size:1rem}.timeline-header p{color:var(--text-muted);margin:0;font-size:.78rem}.timeline-meta{color:var(--text-muted);gap:12px;font-size:.75rem;display:flex}.timeline-body{gap:10px;display:grid}.timeline-scrub{background:#0c0f16b3;border:1px solid #ffffff14;border-radius:14px;gap:10px;margin-bottom:16px;padding:12px 14px;display:grid}.timeline-scrub-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.timeline-scrub-header h4{margin:0 0 4px;font-size:.85rem}.timeline-scrub-header p{color:var(--text-muted);margin:0;font-size:.75rem}.timeline-scrub-meta{color:var(--text);flex-wrap:wrap;align-items:center;gap:10px;font-size:.75rem;display:flex}.timeline-slider{width:100%}.timeline-tracks{gap:10px;margin-top:12px;display:grid}.timeline-track-header{text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);justify-content:space-between;font-size:.72rem;display:flex}.timeline-row{cursor:pointer;background:#0c0f16b3;border:1px solid #ffffff14;border-radius:14px;grid-template-columns:140px 1fr;align-items:center;gap:12px;padding:10px 12px;display:grid}.timeline-row.active{border-color:#4bd0ff99}.timeline-row:focus-visible{outline-offset:2px;outline:2px solid #4bd0ffcc}.timeline-row-label{color:var(--text);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.78rem;overflow:hidden}.timeline-row-track{background:#ffffff0f;border-radius:999px;height:24px;position:relative;overflow:hidden}.timeline-row-track:after{content:"";width:2px;top:-6px;bottom:-6px;left:var(--playhead,0%);background:var(--accent);opacity:.7;position:absolute}.timeline-clip{background:linear-gradient(90deg,#4bd0ffcc,#f2a63bcc);border-radius:999px;position:absolute;top:4px;bottom:4px;box-shadow:0 0 0 1px #0003}.timeline-empty{color:var(--text-muted);padding-left:10px;font-size:.72rem}.render-panel{background:#0c0f16bf;border:1px solid #ffffff14;border-radius:16px;gap:10px;margin-top:16px;padding:16px;display:grid}.render-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.render-header h3{font-family:var(--font-display);margin:0;font-size:1rem}.render-header p{color:var(--text-muted);margin:6px 0 0;font-size:.78rem}.render-actions{flex-wrap:wrap;gap:10px;display:flex}.render-options{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.render-options label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;gap:6px;min-width:160px;font-size:.75rem;display:grid}.render-options .helper{margin:0}.render-status{align-items:center;gap:12px;display:flex}.progress-bar{background:#ffffff14;border-radius:999px;flex:1;height:8px;overflow:hidden}.progress-bar span{background:linear-gradient(90deg,var(--accent),var(--accent-2));width:0%;height:100%;transition:width .2s;display:block}.status-text{color:var(--text-muted);text-align:right;min-width:140px;font-size:.75rem}.track{background:#0c0f16b3;border:1px solid #ffffff14;border-radius:14px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.track.active{border-color:#4bd0ff99}.track.audio.active{border-color:#f2a63b99}.track-label{text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);font-size:.7rem}.track-content{font-size:.85rem}.track-actions{gap:8px;display:flex}.reveal{animation:.6s both reveal}.delay-1{animation-delay:50ms}.delay-2{animation-delay:.12s}.delay-3{animation-delay:.18s}.delay-4{animation-delay:.24s}@keyframes reveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1200px){.app{height:auto;overflow:visible}.workspace{min-height:auto;overflow:visible}.left-panel,.right-panel{scrollbar-gutter:auto;overflow:visible}.stage-panel,.stage-shell{overflow:visible}.timeline{scrollbar-gutter:auto;max-height:none;overflow:visible}.workspace{grid-template-columns:250px minmax(0,1fr)}.right-panel{flex-flow:wrap;grid-column:1/-1}.right-panel .panel-card{flex:320px}}@media (max-width:900px){.topbar{flex-direction:column;align-items:flex-start;gap:16px}.workspace{grid-template-columns:1fr}.stage-shell{min-height:420px}.timeline-header{flex-direction:column;align-items:flex-start;gap:10px}.timeline-scrub-header{flex-direction:column;align-items:flex-start}.timeline-row{grid-template-columns:1fr}.render-header{flex-direction:column;align-items:flex-start}.render-status{flex-direction:column;align-items:stretch}.status-text{text-align:left}}
