:root{font-family:Space Grotesk,sans-serif;color:#f5efe7;color-scheme:dark;background:radial-gradient(circle at top left,rgba(251,113,133,.08),transparent 22%),radial-gradient(circle at right 14%,rgba(56,189,248,.1),transparent 20%),linear-gradient(180deg,#07111a,#0a1321 48%,#0c1524);--panel: rgba(10, 18, 31, .78);--panel-strong: rgba(8, 14, 24, .92);--line: rgba(255, 255, 255, .08);--text-dim: #9aabbe;--accent: #fb7185;--accent-alt: #38bdf8;--danger: #f97373;--shadow: 0 12px 34px rgba(0, 0, 0, .18)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-width:340px}.desktop-shell{min-height:100vh;display:flex;flex-direction:column}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(420px,100%);display:grid;gap:16px;padding:28px;border:1px solid var(--line);border-radius:14px;background:#080e18eb;box-shadow:var(--shadow)}.auth-card h1{margin:0;font-size:2rem}.auth-copy,.auth-status{margin:0;color:var(--text-dim)}.auth-actions{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}.auth-card label,.admin-user-form,.support-dialog label{display:grid;gap:8px}.text-button{padding:0;border:0;background:transparent;color:var(--accent-alt);cursor:pointer;font:inherit;font-weight:700}.text-button:hover{color:#f8fafc}.primary-button{min-height:42px;border:1px solid rgba(56,189,248,.42);border-radius:10px;background:#38bdf829;color:#f8fafc;cursor:pointer;font-weight:700}.primary-button:disabled{cursor:not-allowed;opacity:.65}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;display:grid;place-items:center;padding:24px;background:#020617ad;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.support-dialog{width:min(540px,100%);display:grid;gap:16px;padding:24px;border:1px solid var(--line);border-radius:14px;background:#080e18f5;box-shadow:var(--shadow)}.support-dialog textarea{resize:vertical;min-height:150px}.desktop-menu-bar{position:sticky;top:0;z-index:200;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 18px;border-bottom:1px solid rgba(255,255,255,.08);background:#070c14d1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.menu-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.app-mode-tabs{display:inline-flex;align-items:center;gap:4px;margin-right:8px;padding:3px;border:1px solid rgba(148,163,184,.14);border-radius:12px;background:#02061752}.mode-tab{min-height:30px;border:none;border-radius:9px;background:transparent;color:var(--text-dim);cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:.68rem;letter-spacing:.08em;padding:6px 10px;text-transform:uppercase}.mode-tab.is-active,.mode-tab:hover{background:#38bdf824;color:#f8fafc}.menu-app,.menu-status,.menu-item{font-family:IBM Plex Mono,monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.menu-app{color:#f8fafc;margin-right:12px}.menu-status{color:var(--text-dim)}.menu-item{border:1px solid transparent;background:transparent;padding:6px 8px;border-radius:8px;cursor:pointer;color:var(--text-dim)}.menu-item.is-open,.menu-item:hover{border-color:#ffffff14;background:#ffffff0a}.menu-wrap{position:relative;z-index:210}.menu-popover{position:absolute;top:calc(100% + 8px);left:0;z-index:220;min-width:210px;display:grid;gap:6px;padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:#080e18f5;box-shadow:0 16px 40px #0000004d}.rest-popover{min-width:340px}.admin-popover{min-width:430px}.admin-user-list{display:grid;gap:8px;max-height:280px;overflow:auto}.admin-user-row{display:grid;grid-template-columns:minmax(0,1fr) repeat(5,auto);align-items:center;gap:8px;padding:8px;border:1px solid var(--line);border-radius:10px;background:#ffffff08}.admin-user-row.is-shadowed{border-color:#38bdf880;background:#38bdf817}.admin-user-row strong,.admin-user-row small{display:block}.admin-user-row small{color:var(--text-dim)}.rest-token-box{display:grid;gap:8px;padding:10px;border:1px solid rgba(56,189,248,.4);border-radius:10px;background:#38bdf814}.rest-token-box strong,.rest-token-box small{display:block}.rest-token-box small{color:var(--text-dim)}.rest-token-box code{display:block;max-width:100%;overflow-wrap:anywhere}.admin-page{min-height:calc(100vh - 52px);padding:18px}.admin-page-panel{display:grid;gap:18px}.admin-create-form{display:grid;grid-template-columns:minmax(140px,1fr) minmax(160px,1fr) minmax(140px,1fr) 130px auto;gap:10px;align-items:end}.admin-token-banner{grid-template-columns:minmax(180px,.8fr) minmax(0,1.4fr) auto;align-items:center}.admin-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.admin-users-table{width:100%;min-width:1060px;border-collapse:collapse}.admin-users-table th,.admin-users-table td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.admin-users-table th{position:sticky;top:0;z-index:1;background:#080e18fa;color:var(--text-dim);font-family:IBM Plex Mono,monospace;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.admin-users-table tr.is-shadowed td{background:#38bdf814}.admin-users-table strong,.admin-users-table small{display:block}.admin-users-table small{color:var(--text-dim)}.admin-table-actions{display:flex;flex-wrap:wrap;gap:6px;min-width:360px}.admin-table-actions .ghost-button{min-height:34px;padding:7px 10px}.menu-action,.menu-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;border-radius:10px;background:transparent;color:#e5edf8;text-align:left;cursor:pointer}.menu-action:hover,.menu-toggle:hover{background:#ffffff0d}.menu-toggle input{width:auto}.stage-editor{display:grid;gap:8px}.stage-toggle-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.stage-toggle{border:1px solid var(--line);border-radius:10px;background:#ffffff08;color:#dce6f2;padding:8px 10px;cursor:pointer}.stage-toggle.is-active{border-color:#38bdf86b;background:#38bdf81f;color:#f8fafc}.menu-field{display:grid;gap:6px}.menu-field-label,.menu-status-line{font-family:IBM Plex Mono,monospace;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.menu-actions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.rest-inline-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}html.output-mode,body.output-mode,body.output-mode #root{background:transparent;background-color:transparent;overflow:hidden}button,input,select,textarea{font:inherit}button,a{color:inherit}a{text-decoration:none}.studio-app{position:relative;z-index:1;display:flex;flex:1 1 auto;flex-direction:column;min-height:0;width:100%;margin:0;padding:18px 18px 18px 0}.app-header,.panel{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.app-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-left:18px;margin-bottom:18px;padding:20px 22px;border-radius:22px}.app-kicker,.panel-kicker,.template-card span,.layer-card span,.toggle,.timeline-segment span{font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.12em}.app-kicker,.panel-kicker{margin:0 0 8px;font-size:.74rem;color:var(--accent-alt)}.app-header h1,.panel-header h2,.timeline-header h2{margin:0;letter-spacing:-.04em}.app-header h1{font-size:clamp(1.8rem,3.2vw,3.1rem);line-height:.96}.header-actions,.toolbar-toggles,.layer-actions,.transport-actions,.url-actions{display:flex;gap:10px;flex-wrap:wrap}.primary-button,.ghost-button,.link-button{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:11px 16px;border:1px solid var(--line);background:#ffffff08;cursor:pointer;transition:transform .14s ease,border-color .14s ease,background .14s ease}.primary-button:hover,.ghost-button:hover,.template-card:hover,.layer-card:hover,.link-button:hover{transform:translateY(-1px)}.primary-button{border:none;color:#111827;background:linear-gradient(135deg,var(--accent),#f59e0b)}.ghost-button.danger{color:#ffd5d5;border-color:#f973734d}.ghost-button:disabled{opacity:.45;cursor:not-allowed;transform:none}.workspace-grid{display:grid;grid-template-columns:var(--workspace-columns, minmax(0, 1fr));flex:1 1 auto;gap:12px;min-height:0;align-items:start;overflow:visible}.pane-divider{width:10px;height:100%;min-height:0;justify-self:center;border-radius:999px;background:linear-gradient(180deg,#ffffff05,#38bdf829,#ffffff05);cursor:col-resize}.right-pane-divider{height:var(--inspector-panel-height, min(52vh, 520px));max-height:var(--inspector-panel-height, min(52vh, 520px))}.panel{border-radius:22px;padding:18px}.left-panel{display:flex;flex-direction:column;gap:18px;height:calc(100vh - 128px);min-height:0;overflow-y:auto;position:sticky;top:76px;border-left:0;border-radius:0 22px 22px 0}.template-browser,.scene-graph-section,.library-section{flex:0 0 auto}.template-browser{overflow:visible}.session-browser-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.panel-header,.timeline-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}.panel-header.compact{margin-bottom:12px}.panel-header h2,.timeline-header h2{font-size:1.24rem}.panel-header span,.timeline-header span{color:var(--text-dim)}.template-stack,.layer-stack{display:flex;flex-direction:column;gap:8px;align-items:stretch}.binding-stack{display:grid;gap:10px}.template-stack-scroll{height:520px;max-height:520px;overflow-y:auto;padding-right:6px;scrollbar-gutter:stable}.template-stack-scroll::-webkit-scrollbar{width:12px}.template-stack-scroll::-webkit-scrollbar-track{background:#ffffff08;border-radius:999px}.template-stack-scroll::-webkit-scrollbar-thumb{background:#9aabbe61;border-radius:999px;border:2px solid transparent;background-clip:padding-box}.template-stack-scroll::-webkit-scrollbar-thumb:hover{background:#9aabbe94;background-clip:padding-box}.template-card,.layer-card{width:100%;text-align:left;border:1px solid transparent;border-radius:14px;background:#ffffff08;padding:8px 10px;cursor:pointer}.template-card{padding:0}.template-card-button{width:100%;border:none;border-radius:14px;background:transparent;color:inherit;text-align:left;padding:8px 10px;cursor:pointer}.session-name-input{width:calc(100% - 20px);margin:8px 10px}.layer-row{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:8px;align-items:stretch}.layer-check{display:grid;place-items:center;align-self:center;padding-left:2px}.layer-check input{width:auto}.layer-expand,.layer-expand-spacer{width:22px;display:grid;place-items:center;align-self:center}.layer-expand{border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff08;color:var(--text-dim);cursor:pointer;padding:0;font-family:IBM Plex Mono,monospace;font-size:.72rem}.layer-expand-spacer{color:transparent}.layer-card{padding:5px 8px;border-radius:12px}.template-card strong,.layer-card strong{display:block;margin-bottom:1px;line-height:1.18}.template-card strong{font-size:.8rem}.layer-card strong{font-size:.74rem}.template-card span,.layer-card span{display:block;font-size:.58rem;line-height:1.12;color:var(--text-dim)}.layer-card span{font-size:.52rem}.template-card.is-active,.layer-card.is-active,.timeline-segment.is-active{border-color:#38bdf873;background:linear-gradient(180deg,#38bdf824,#ffffff0a),#ffffff05}.panel-section{margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08)}.panel-empty-state{display:grid;gap:6px;padding:16px;border:1px dashed rgba(148,163,184,.22);border-radius:14px;background:#0810208c;color:#e2e8f0d1}.panel-empty-state strong{color:#f8fafc;font-size:.95rem}.panel-empty-state span{font-size:.82rem;line-height:1.5}.left-panel>.panel-section{margin-top:0}.scene-graph-section{overflow:visible}.scene-graph-section .layer-stack{max-height:none;overflow:visible;margin-bottom:12px;padding-right:0}.canvas-panel{min-height:0;height:100%;overflow:visible}.right-panel{position:relative;z-index:2;align-self:start;min-height:0;height:var(--inspector-panel-height, min(52vh, 520px));max-height:var(--inspector-panel-height, min(52vh, 520px));overflow-y:auto;overscroll-behavior:contain}.canvas-frame{padding:16px;border-radius:18px;border:1px solid var(--line);background:linear-gradient(180deg,#ffffff08,#ffffff04),linear-gradient(180deg,#020617b3,#020617e6)}.canvas-format-bar{display:grid;grid-template-columns:repeat(3,minmax(0,140px));gap:10px;margin-bottom:14px}.scene-background-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;margin-bottom:14px;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:#ffffff06}.canvas-format-bar label,.scene-background-bar label{display:grid;gap:6px;color:var(--text-dim);font-size:.84rem}.scene{position:relative;overflow:hidden;container-type:inline-size;width:100%;border-radius:16px;background:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),radial-gradient(circle at 20% 10%,rgba(251,113,133,.12),transparent 28%),radial-gradient(circle at 80% 24%,rgba(56,189,248,.12),transparent 24%),linear-gradient(180deg,#111c30,#09101c);background-size:64px 64px,64px 64px,auto,auto,auto}.scene.scene-transparent{background:transparent}.scene.show-safe-area:before{content:"";position:absolute;top:6%;right:6%;bottom:6%;left:6%;border:1px dashed rgba(255,255,255,.17);border-radius:16px;pointer-events:none}.scene-marquee{position:absolute;border:1px dashed rgba(56,189,248,.88);background:#38bdf824;pointer-events:none}.scene-guide{position:absolute;pointer-events:none;z-index:3}.scene-guide-vertical{top:0;bottom:0;width:1px}.scene-guide-horizontal{left:0;right:0;height:1px}.scene-guide-layer{background:#38bdf8f2;box-shadow:0 0 0 1px #38bdf82e}.scene-guide-safe{background:#fb7185f2;box-shadow:0 0 0 1px #fb71852e}.scene-guide-scene{background:#f4f0e8d1;box-shadow:0 0 0 1px #f4f0e824}.scene-layer{position:absolute;display:flex;align-items:center;padding:10px 12px;-webkit-user-select:none;user-select:none;border:1px solid transparent;transform-origin:center}.scene-layer.is-selected{border-color:#ffffffa6;box-shadow:inset 0 0 0 1px #ffffff2e,0 0 0 1px #ffffff14}.scene-layer-text{white-space:nowrap}.scene-layer-ticker{border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 1px #ffffff14}.ticker-crawl{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;gap:var(--ticker-gap, 160px);width:max-content;min-width:100%;padding:0 18px;will-change:transform;pointer-events:none}.ticker-motion-crawl .ticker-item-group{display:flex;flex-direction:row;align-items:center;gap:var(--ticker-gap, 160px)}.ticker-direction-left-to-right{width:100%;min-width:0;padding:0}.ticker-direction-left-to-right .ticker-runner{position:absolute;top:50%;left:0;will-change:transform}.ticker-motion-roll{flex-direction:column;align-items:stretch;gap:var(--ticker-gap, 160px);width:100%;min-width:0;height:max-content;min-height:100%;padding:12px 18px}.ticker-crawl span,.ticker-crawl img{flex:0 0 auto;pointer-events:none}.ticker-item{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}.ticker-item-image{width:1.5em;height:1.5em;border-radius:4px;object-fit:cover;box-shadow:0 0 0 1px #ffffff29}.ticker-item-title{min-width:0}.ticker-item-text{display:inline-flex;align-items:baseline;gap:.55em;min-width:0}.ticker-item-content{min-width:0;font-weight:500;opacity:.86}.ticker-item-title p,.ticker-item-content p,.ticker-item-title div,.ticker-item-content div,.ticker-item-title blockquote,.ticker-item-content blockquote{display:inline;margin:0}.ticker-item-title p+p:before,.ticker-item-content p+p:before,.ticker-item-title div+div:before,.ticker-item-content div+div:before{content:" / "}.ticker-item-title ul,.ticker-item-content ul,.ticker-item-title ol,.ticker-item-content ol{display:inline;margin:0;padding:0;list-style:none}.ticker-item-title li,.ticker-item-content li{display:inline}.ticker-item-title li+li:before,.ticker-item-content li+li:before{content:" • "}.ticker-item-title mark,.ticker-item-content mark{padding:0 .16em;border-radius:3px;background:#facc1542;color:inherit}.ticker-item-title code,.ticker-item-content code{font-family:inherit;font-weight:700}.ticker-item-title a,.ticker-item-content a{color:inherit;text-decoration:underline;text-underline-offset:.12em;pointer-events:none}.ticker-motion-roll span{white-space:normal}.ticker-motion-roll .ticker-item{align-items:center}.ticker-motion-roll .ticker-item-text{flex-direction:column;align-items:flex-start;gap:.16em}.ticker-motion-roll .ticker-item-title p,.ticker-motion-roll .ticker-item-content p,.ticker-motion-roll .ticker-item-title div,.ticker-motion-roll .ticker-item-content div,.ticker-motion-roll .ticker-item-title blockquote,.ticker-motion-roll .ticker-item-content blockquote,.ticker-motion-roll .ticker-item-title ul,.ticker-motion-roll .ticker-item-content ul,.ticker-motion-roll .ticker-item-title ol,.ticker-motion-roll .ticker-item-content ol{display:block}.ticker-motion-roll .ticker-item-title p+p:before,.ticker-motion-roll .ticker-item-content p+p:before,.ticker-motion-roll .ticker-item-title div+div:before,.ticker-motion-roll .ticker-item-content div+div:before{content:""}.ticker-motion-roll .ticker-item-title li,.ticker-motion-roll .ticker-item-content li{display:block;padding-left:.9em}.ticker-motion-roll .ticker-item-title li:before,.ticker-motion-roll .ticker-item-content li:before{content:"• ";margin-left:-.9em}.ticker-motion-roll .ticker-item-image{width:2.4em;height:1.7em}.ticker-item-group{display:flex;flex-direction:column;gap:.45em}.shape-visual{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.inline-text-editor{min-width:24px;outline:1px solid rgba(56,189,248,.9);outline-offset:4px;cursor:text}.scene-layer-image{border:1px solid rgba(255,255,255,.15)}.image-placeholder{display:grid;place-items:center;width:100%;height:100%;border-radius:inherit;background:linear-gradient(135deg,#ffffff14,#ffffff05),linear-gradient(45deg,transparent 44%,rgba(255,255,255,.08) 44%,rgba(255,255,255,.08) 56%,transparent 56%);color:#d8e2ef;font-family:IBM Plex Mono,monospace;letter-spacing:.14em}.image-placeholder.has-image{background:transparent}.image-placeholder.has-image span{display:none}.transform-handle{position:absolute;width:max(8px,calc(14 / 1920 * 100cqw));height:max(8px,calc(14 / 1920 * 100cqw));border-radius:999px;border:2px solid #08111f;background:#f8fafc}.resize-handle{background:var(--accent-alt)}.resize-nw{top:calc(max(8px,calc(14 / 1920 * 100cqw))/-2);left:calc(max(8px,calc(14 / 1920 * 100cqw))/-2);cursor:nwse-resize}.resize-ne{top:calc(max(8px,calc(14 / 1920 * 100cqw))/-2);right:calc(max(8px,calc(14 / 1920 * 100cqw))/-2);cursor:nesw-resize}.resize-sw{bottom:calc(max(8px,calc(14 / 1920 * 100cqw))/-2);left:calc(max(8px,calc(14 / 1920 * 100cqw))/-2);cursor:nesw-resize}.resize-se{position:absolute;right:calc(max(8px,calc(14 / 1920 * 100cqw))/-2);bottom:calc(max(8px,calc(14 / 1920 * 100cqw))/-2);cursor:nwse-resize}.rotate-handle{top:calc(max(18px,calc(32 / 1920 * 100cqw))*-1);left:calc(50% - (max(8px,calc(14 / 1920 * 100cqw))/2));background:#fda4af;cursor:grab}.rotate-handle:after{content:"";position:absolute;left:calc(50% - 1px);top:calc(max(8px,calc(14 / 1920 * 100cqw)) - 2px);width:2px;height:max(10px,calc(14 / 1920 * 100cqw));background:#fffc}.timeline-panel{position:relative;z-index:5;width:var(--timeline-panel-width, 100%);max-width:none;margin-top:14px;padding:10px;border-radius:16px;border:1px solid var(--line);background:linear-gradient(180deg,#0f172ac7,#080d16d1),#ffffff08}.timeline-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;margin-bottom:8px}.timeline-header .panel-kicker{margin-bottom:2px;font-size:.62rem}.timeline-timecode{display:block;color:#dbeafe;font-family:IBM Plex Mono,monospace;font-size:.74rem}.timeline-loop-status{display:block;margin-top:2px;color:#7dd3fc;font-family:IBM Plex Mono,monospace;font-size:.64rem;text-transform:uppercase}.timeline-toolbar{display:flex;justify-content:center;align-items:center;gap:8px;justify-self:center}.compact-button{padding:6px 10px;border-radius:9px;font-size:.74rem}.timeline-action-bar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);justify-content:center;align-items:center;gap:12px;margin-bottom:8px;padding:6px 10px;border:1px solid rgba(148,163,184,.12);border-radius:12px;background:#0206173d}.timeline-action-bar>span{overflow:hidden;color:var(--text-dim);font-family:IBM Plex Mono,monospace;font-size:.68rem;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.timeline-layer-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;justify-self:end}.timeline-repeat-controls{display:flex;align-items:end;justify-content:center;flex-wrap:wrap;gap:8px;justify-self:center}.timeline-repeat-controls label{display:grid;gap:4px;color:var(--text-dim);font-family:IBM Plex Mono,monospace;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}.timeline-repeat-controls select,.timeline-repeat-controls input{min-height:31px;width:auto;min-width:82px;padding:5px 8px;border-radius:9px;font-size:.74rem}.timeline-repeat-controls .timeline-pin-toggle{display:flex;align-items:center;min-height:31px}.timeline-repeat-controls .timeline-pin-toggle input{min-height:auto;min-width:auto}.timeline-slider{width:100%}.timeline-scrubber-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin-bottom:8px;padding:6px 10px;border:1px solid rgba(148,163,184,.12);border-radius:12px;background:#02061752}.timeline-scrubber-row span{min-width:54px;color:#dbeafe;font-family:IBM Plex Mono,monospace;font-size:.72rem;text-align:right}.timeline-lanes{overflow:auto;max-height:min(42vh,440px);border:1px solid rgba(148,163,184,.13);border-radius:14px;background:#02061757;scrollbar-gutter:stable both-edges}.timeline-scroll-inner{display:grid;width:calc(var(--timeline-label-width) + var(--timeline-track-width));min-width:100%}.timeline-ruler-row,.timeline-row{display:grid;grid-template-columns:var(--timeline-label-width) var(--timeline-track-width)}.timeline-ruler-row{position:sticky;top:0;z-index:5;min-height:34px;border-bottom:1px solid rgba(148,163,184,.12);background:#080d16f5}.timeline-ruler-label{position:sticky;left:0;z-index:6;display:flex;align-items:center;padding:0 14px;border-right:1px solid rgba(148,163,184,.12);background:#080d16fa;color:var(--text-dim);font-family:IBM Plex Mono,monospace;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}.timeline-ruler{position:relative;min-height:34px;background:linear-gradient(90deg,rgba(148,163,184,.13) 1px,transparent 1px),#ffffff04;background-size:72px 100%,auto}.timeline-loop-tail{position:absolute;top:0;bottom:0;z-index:0;border-left:1px solid rgba(125,211,252,.54);background:repeating-linear-gradient(135deg,#38bdf81f 0,#38bdf81f 8px,#0f172a14 8px,#0f172a14 16px);pointer-events:none}.timeline-loop-marker{position:absolute;top:5px;z-index:3;display:grid;place-items:center;width:24px;height:24px;transform:translate(-50%);border:1px solid rgba(125,211,252,.5);border-radius:999px;background:#080d16f5;color:#bae6fd;font-family:IBM Plex Mono,monospace;font-size:.82rem;box-shadow:0 0 18px #38bdf83d;pointer-events:none}.timeline-ruler span{position:absolute;top:9px;z-index:1;transform:translate(-50%);color:var(--text-dim);font-family:IBM Plex Mono,monospace;font-size:.66rem;white-space:nowrap}.timeline-playhead{position:absolute;top:0;bottom:0;width:2px;background:#f8fafc;box-shadow:0 0 0 1px #0f172a6b,0 0 18px #38bdf852;pointer-events:none;z-index:4}.timeline-row{align-items:center;min-height:54px;border-bottom:1px solid rgba(148,163,184,.08);cursor:pointer}.timeline-row.is-hidden{opacity:.58}.timeline-row.is-loop-shadowed{opacity:.42}.timeline-row.is-loop-shadowed .timeline-track{filter:grayscale(.55)}.timeline-row:last-child{border-bottom:none}.timeline-row-meta{position:sticky;left:0;z-index:3;display:grid;grid-template-areas:"dot name name name name name name" ". detail detail detail detail detail detail" "check expand visibility repeat pin clock .";grid-template-columns:auto auto auto auto auto auto minmax(0,1fr);gap:4px 8px;align-items:center;align-self:stretch;padding:8px 12px 8px calc(12px + var(--timeline-depth, 0px));border-right:1px solid rgba(148,163,184,.12);background:#080d16f0}.timeline-row-check{grid-area:check;display:grid;place-items:center}.timeline-row-check input{width:auto}.timeline-row-visibility,.timeline-row-repeat,.timeline-row-pin,.timeline-row-clock{min-width:34px;padding:4px 6px;border:1px solid rgba(148,163,184,.14);border-radius:8px;background:#ffffff09;color:#dce8f8;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:.58rem;text-transform:uppercase}.timeline-row-visibility{grid-area:visibility}.timeline-row-repeat{grid-area:repeat;min-width:48px;border-color:#38bdf82e;color:#c8e9ff}.timeline-row.is-looping .timeline-row-repeat{border-color:#7dd3fc85;background:#38bdf81f;color:#e0f2fe}.timeline-row-pin{grid-area:pin;min-width:38px}.timeline-row-pin.is-active{border-color:#fbbf2494;background:#fbbf2424;color:#fef3c7}.timeline-row-clock{grid-area:clock;min-width:38px;border-color:#34d3992e}.timeline-row-clock.is-active{border-color:#34d3997a;background:#34d3991f;color:#d1fae5}.timeline-row.is-clock-disabled .timeline-row-meta{background:linear-gradient(90deg,#fbbf241f,#080d16f0),#080d16f0}.timeline-row.is-clock-disabled .timeline-track{background:repeating-linear-gradient(135deg,#fbbf241c 0,#fbbf241c 8px,#0f172a05 8px,#0f172a05 16px),linear-gradient(180deg,#ffffff03,#ffffff07)}.timeline-row.is-clock-disabled .timeline-block{opacity:.22;filter:grayscale(.7)}.timeline-row.is-clock-disabled .timeline-row-clock{border-color:#fbbf2494;background:#fbbf2424;color:#fef3c7}.timeline-row-expand,.timeline-row-expand-spacer{grid-area:expand;width:24px;height:24px;display:grid;place-items:center}.timeline-row-expand{border:1px solid rgba(148,163,184,.16);border-radius:8px;background:#ffffff09;color:#dce8f8;cursor:pointer}.timeline-row-meta strong{grid-area:name;overflow:hidden;color:#edf4ff;font-size:.82rem;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.timeline-row-meta span:last-child{grid-area:detail;color:var(--text-dim);font-family:IBM Plex Mono,monospace;font-size:.64rem}.timeline-row-dot{grid-area:dot;width:10px;height:10px;border-radius:999px;box-shadow:0 0 0 3px #ffffff0a}.timeline-track{position:relative;height:54px;background:linear-gradient(90deg,rgba(148,163,184,.12) 1px,transparent 1px),linear-gradient(180deg,#ffffff04,#ffffff09);background-size:72px 100%,auto}.timeline-row-playhead{position:absolute;top:0;bottom:0;width:1px;background:#f8fafc8c;pointer-events:none;z-index:2}.timeline-block{position:absolute;top:8px;bottom:8px;min-width:28px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;padding:0 28px 0 10px;border:1px solid rgba(255,255,255,.18);border-radius:8px;color:#07111a;font-weight:700;cursor:grab;overflow:hidden;box-shadow:0 8px 18px #0003;z-index:1}.timeline-block span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-block-label{padding:3px 6px;border-radius:999px;background:#07111a29;font-family:IBM Plex Mono,monospace;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}.timeline-block-animation{min-width:0;font-size:.76rem}.timeline-block-handle{position:absolute;top:6px;right:6px;bottom:6px;width:8px;border-radius:6px;background:#07111a8c;cursor:ew-resize}.timeline-row:hover .timeline-row-meta,.timeline-row:hover .timeline-track{background-color:#38bdf80e}.timeline-row.is-active .timeline-track{box-shadow:inset 0 0 0 1px #38bdf86b}.timeline-row.is-active .timeline-row-meta{background:linear-gradient(90deg,#38bdf829,#080d16f0),#080d16f0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid label,.binding-card label{display:grid;gap:7px;color:var(--text-dim);font-size:.92rem}.checkbox-label{align-content:end}.checkbox-label input{width:auto;justify-self:start}.full-width{grid-column:1 / -1}input,select,textarea{width:100%;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:var(--panel-strong);color:#f6efe8;padding:10px 12px}input[type=color]{min-height:44px;padding:6px}input[type=range]{padding:0}.range-field{display:grid;grid-template-columns:minmax(0,1fr) 86px;gap:10px;align-items:center}.range-value-input{text-align:right}textarea{resize:vertical;min-height:110px}.binding-card,.url-card{display:grid;gap:10px;padding:12px;border-radius:18px;border:1px solid rgba(255,255,255,.08);background:#ffffff08}.operator-card{display:grid;gap:12px;padding:12px;border-radius:18px;border:1px solid rgba(56,189,248,.18);background:#38bdf80f}.parameter-control-grid,.parameter-stack{display:grid;gap:10px}.parameter-control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.parameter-control-grid label,.parameter-card label{display:grid;gap:7px;color:var(--text-dim);font-size:.92rem}.parameter-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;border-radius:18px;border:1px solid rgba(255,255,255,.08);background:#ffffff08}.parameter-toggle{align-self:end;min-height:42px}.empty-note{margin:0;color:var(--text-dim);font-size:.78rem;line-height:1.4}.secondary-header{margin-top:8px}.raw-bindings-details{display:grid;gap:10px;margin-top:8px;border-radius:16px;border:1px solid rgba(148,163,184,.12);background:#02061738}.raw-bindings-details summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;cursor:pointer;color:#f8fafc;list-style:none}.raw-bindings-details summary::-webkit-details-marker{display:none}.raw-bindings-details summary:before{content:">";color:var(--text-dim);font-family:IBM Plex Mono,monospace;font-size:.75rem;transition:transform .14s ease}.raw-bindings-details[open] summary:before{transform:rotate(90deg)}.raw-bindings-details summary span:first-child{display:grid;gap:3px;min-width:0}.raw-bindings-details summary strong{font-size:.82rem}.raw-bindings-details summary small{color:var(--text-dim);font-size:.68rem}.raw-bindings-details summary span:last-child{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:24px;border-radius:999px;background:#94a3b824;color:var(--text-dim);font-family:IBM Plex Mono,monospace;font-size:.68rem}.raw-bindings-details .secondary-header,.raw-bindings-details .binding-stack{margin:0 12px 12px}.url-stack{display:grid;gap:12px}.output-url-card{gap:12px}.output-mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:4px;border:1px solid rgba(148,163,184,.14);border-radius:12px;background:#02061752}.output-mode-option{display:flex;align-items:center;justify-content:center;gap:8px;min-height:34px;border-radius:9px;color:var(--text-dim);cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.output-mode-option input{width:auto}.output-mode-option.is-active{background:#38bdf824;color:#f8fafc}.url-mode-header{display:grid;gap:4px}.url-mode-header strong{font-size:.92rem}.url-mode-header span{color:var(--text-dim);font-size:.72rem;line-height:1.35}.asset-actions{display:flex;gap:10px;flex-wrap:wrap}.binding-card{grid-template-columns:repeat(2,minmax(0,1fr))}.toggle{display:inline-flex;align-items:center;gap:8px;color:var(--text-dim);font-size:.7rem}.toggle input{width:auto}.output-shell{width:100vw;height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,rgba(251,113,133,.14),transparent 24%),linear-gradient(180deg,#09111f,#0a1524)}.output-shell.is-transparent{background:transparent}.output-stage{width:min(100vw,calc(100vh * (16 / 9)));max-width:100vw;max-height:100vh}.output-stage .scene{width:100%;height:auto;border-radius:0}.playout-shell{display:grid;grid-template-columns:300px minmax(0,1fr) 360px;gap:14px;min-height:calc(100vh - 52px);padding:18px}.playout-rundown,.playout-controls{align-self:start;max-height:calc(100vh - 88px);overflow-y:auto}.playout-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-width:0}.playout-monitor{display:flex;flex-direction:column;min-width:0}.playout-stage{display:grid;flex:1;min-height:280px;place-items:center;padding:12px;border:1px solid rgba(148,163,184,.14);border-radius:16px;background:#02061752}.playout-stage .scene{width:100%}.rundown-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;width:100%;border:1px solid rgba(148,163,184,.12);border-radius:12px;background:#ffffff08;color:inherit;cursor:pointer;padding:10px;text-align:left}.rundown-item:hover,.rundown-item.is-active{border-color:#38bdf86b;background:#38bdf81a}.rundown-item span{grid-row:span 2;color:var(--accent-alt);font-family:IBM Plex Mono,monospace;font-size:.72rem}.rundown-item strong,.rundown-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rundown-item small{color:var(--text-dim);font-size:.72rem}.playout-button-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.program-clear-state{display:grid;place-items:center;width:100%;aspect-ratio:16 / 9;border:1px dashed rgba(148,163,184,.22);border-radius:12px;color:#e2e8f070;font-family:IBM Plex Mono,monospace;letter-spacing:.16em}.validation-list{display:grid;gap:8px}.validation-list span{border:1px solid rgba(249,115,115,.28);border-radius:10px;background:#f9737314;color:#fecaca;padding:8px 10px}@media (max-width: 1280px){.workspace-grid,.playout-shell,.playout-preview-grid{grid-template-columns:1fr}.playout-rundown,.playout-controls{max-height:none}.pane-divider{display:none}.canvas-panel{min-height:unset}.left-panel{position:static;height:auto;max-height:none;border-left:1px solid var(--line);border-radius:22px}.right-panel{height:auto;max-height:none}.timeline-panel{width:100%}}@media (max-width: 720px){.studio-app{padding:12px}.app-header{margin-left:0}.app-header,.panel{border-radius:18px}.app-header,.panel-header,.timeline-header{flex-direction:column;align-items:flex-start}.form-grid,.binding-card,.parameter-card,.parameter-control-grid,.scene-background-bar{grid-template-columns:1fr}.timeline-toolbar,.timeline-action-bar{width:100%}.timeline-action-bar{display:flex;justify-content:flex-start;align-items:flex-start;flex-direction:column}.timeline-repeat-controls,.timeline-layer-actions{justify-content:flex-start;justify-self:start}.timeline-panel{width:100%;padding:12px}}
