@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,500;12..96,700&family=Be+Vietnam+Pro:wght@400;500;600&family=JetBrains+Mono:wght@400;500;700&display=swap";:root{--paper-0:#eef0ec;--paper-1:#f8f9f6;--paper-2:#fff;--paper-3:#e3e6df;--ink-1:#191c17;--ink-2:#565b52;--ink-3:#8b9184;--chroma-500:#00b140;--chroma-600:#009436;--chroma-700:#007a2d;--chroma-100:#d9f2e0;--text-primary:var(--ink-1);--text-secondary:var(--ink-2);--text-muted:var(--ink-3);--text-on-ink:#f8f9f6;--text-on-accent:#0c0f0a;--surface-page:var(--paper-0);--surface-card:var(--paper-1);--surface-raised:var(--paper-2);--surface-inset:var(--paper-3);--surface-accent:var(--chroma-500);--surface-ink:var(--ink-1);--border-subtle:#191c1740;--border-strong:var(--ink-1);--border-accent:var(--chroma-500);--good:#00832f;--good-bg:#d9f2e0;--bad:#d92d20;--bad-bg:#fbe3e1;--warn:#b54708;--warn-bg:#fcecd9;--neutral:#565b52;--neutral-bg:#e3e6df;--status-draft:#8b9184;--status-scripted:#565b52;--status-material:#2f6f5f;--status-awaiting:#b54708;--status-approved:#00832f;--status-rendered:#007a2d;--status-published:#191c17;--status-failed:#d92d20;--accent-hover:var(--chroma-500);--accent-active:var(--chroma-700);--focus-ring:0 0 0 2px var(--paper-0), 0 0 0 4px var(--ink-1);--font-display:"Bricolage Grotesque", "Segoe UI", sans-serif;--font-body:"Be Vietnam Pro", "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--text-xs:11px;--text-sm:13px;--text-md:14px;--text-lg:16px;--text-xl:20px;--text-2xl:28px;--text-3xl:44px;--leading-tight:1.1;--leading-normal:1.5;--tracking-wide:.08em;--weight-regular:400;--weight-medium:500;--weight-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius-sm:0px;--radius-md:0px;--radius-lg:0px;--radius-pill:0px;--shadow-card:none;--shadow-raised:none;--ease-out:linear;--dur-fast:90ms;--dur-med:90ms}*,:before,:after{box-sizing:border-box}html,body{margin:0}body{background:var(--surface-page);color:var(--text-primary);font:var(--weight-regular) var(--text-sm) / var(--leading-normal) var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}a{color:var(--chroma-700)}a:hover{color:var(--ink-1)}.vg-app{max-width:960px;padding:var(--space-5);gap:var(--space-5);flex-direction:column;margin:0 auto;display:flex}.vg-app__header{align-items:center;gap:var(--space-3);display:flex}.vg-app__header h1{font:var(--weight-bold) var(--text-2xl) / var(--leading-tight) var(--font-display);letter-spacing:-.02em;flex:1;margin:0}.vg-button{white-space:nowrap;font:var(--weight-medium) var(--text-sm) var(--font-display);cursor:pointer;transition:background var(--dur-fast) linear, color var(--dur-fast) linear, border-color var(--dur-fast) linear;border:1px solid var(--ink-1);border-radius:0;padding:9px 16px}.vg-button:focus-visible{box-shadow:var(--focus-ring);outline:none}.vg-button:disabled{opacity:.45;cursor:not-allowed}.vg-button--primary{background:var(--ink-1);color:var(--text-on-ink)}.vg-button--primary:hover:not(:disabled){background:var(--chroma-500);color:var(--text-on-accent);border-color:var(--chroma-500)}.vg-button--primary:active:not(:disabled){background:var(--chroma-700);color:var(--text-on-ink);border-color:var(--chroma-700)}.vg-button--secondary{color:var(--ink-1);background:0 0}.vg-button--secondary:hover:not(:disabled){background:var(--ink-1);color:var(--text-on-ink)}.vg-button--secondary:active:not(:disabled){background:var(--chroma-700);color:var(--text-on-ink);border-color:var(--chroma-700)}.vg-badge{font:var(--weight-medium) var(--text-xs) var(--font-mono);text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--ink-1);background:var(--paper-1);color:var(--ink-1);border-radius:0;align-items:center;gap:6px;padding:3px 8px;display:inline-flex}.vg-badge:before{content:"";background:var(--badge-marker,var(--ink-3));flex:none;width:8px;height:8px}.vg-badge--neutral{--badge-marker:var(--ink-3)}.vg-badge--good{--badge-marker:var(--chroma-500)}.vg-badge--bad{--badge-marker:var(--bad)}.vg-create__field{flex-direction:column;gap:5px;display:flex}.vg-create__field>label{font:var(--weight-medium) 10px var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2)}.vg-create__field input[type=text],.vg-create__field input[type=number],.vg-create__field textarea{background:var(--paper-2);color:var(--ink-1);border:1px solid var(--ink-1);font:var(--weight-regular) var(--text-sm) var(--font-body);transition:box-shadow var(--dur-fast) linear;border-radius:0;padding:8px 10px}.vg-create__field input:focus-visible,.vg-create__field textarea:focus-visible{box-shadow:var(--focus-ring);outline:none}.vg-create__field input::placeholder,.vg-create__field textarea::placeholder{color:var(--ink-3)}.vg-create{gap:var(--space-3);padding:var(--space-4);background:var(--surface-card);border:1px solid var(--ink-1);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.vg-create__field--wide{grid-column:1/-1}.vg-create__field textarea{resize:vertical;min-height:3lh}.vg-create__actions{grid-column:1/-1;justify-content:flex-end;display:flex}.vg-board{gap:var(--space-4);flex-direction:column;display:flex}.vg-board--empty{padding:var(--space-4);font:var(--weight-regular) var(--text-sm) var(--font-body);color:var(--text-muted);margin:0}.vg-status{font:var(--weight-medium) var(--text-xs) var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-1);align-items:center;gap:6px;display:inline-flex}.vg-status:before{content:"";background:var(--status-marker,var(--ink-3));flex:none;width:8px;height:8px}.vg-status--draft{--status-marker:var(--status-draft)}.vg-status--scripted{--status-marker:var(--status-scripted)}.vg-status--material{--status-marker:var(--status-material)}.vg-status--awaiting_approval{--status-marker:var(--status-awaiting)}.vg-status--approved{--status-marker:var(--status-approved)}.vg-status--rendered{--status-marker:var(--status-rendered)}.vg-status--published{--status-marker:var(--status-published)}.vg-status--failed{--status-marker:var(--status-failed)}@keyframes vg-flow{to{background-position:-12px 0}}@keyframes vg-wave{0%{transform:scaleY(.25)}50%{transform:scaleY(1)}to{transform:scaleY(.25)}}@keyframes vg-type{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes vg-flick{0%{background:var(--paper-3)}50%{background:#c6ccc0}to{background:var(--paper-3)}}@keyframes vg-blink{0%,49%{opacity:1}50%,to{opacity:.25}}@keyframes vg-caret{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes vg-karaoke{0%,22%{background:var(--chroma-500);color:var(--text-on-ink)}24%,to{color:inherit;background:0 0}}.vg-pipeline-card{background:var(--surface-card);border:1px solid var(--ink-1)}.vg-pipeline-card__head{border-bottom:1px solid var(--ink-1);align-items:center;gap:14px;padding:12px 16px;display:flex}.vg-pipeline-card__id{font:var(--weight-medium) var(--text-xs) var(--font-mono)}.vg-pipeline-card__idea{font:var(--weight-regular) var(--text-xs) var(--font-body);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.vg-pipeline-card__cap{font:var(--weight-medium) 11px var(--font-mono);color:var(--ink-2)}.vg-pipeline-card__rail{align-items:stretch;padding:18px 16px;display:flex;overflow-x:auto}.vg-node{background:var(--surface-raised);cursor:pointer;border:1px solid var(--ink-1);text-align:left;width:132px;font:inherit;color:inherit;transition:border-color var(--dur-fast) linear;border-radius:0;flex-direction:column;flex:none;padding:0;display:flex}.vg-node:hover{border-color:var(--chroma-500)}.vg-node:focus-visible{box-shadow:var(--focus-ring);outline:none}.vg-node--gate{width:148px}.vg-node[data-state=pending]{opacity:.55}.vg-node[data-state=failed]{border:2px solid var(--bad)}.vg-node[data-state=awaiting]{border:2px solid var(--chroma-500)}.vg-node__head{border-bottom:1px solid var(--border-subtle);color:var(--ink-1);background:0 0;align-items:center;gap:6px;padding:7px 10px;display:flex}.vg-node--selected .vg-node__head{background:var(--ink-1);color:var(--text-on-ink)}.vg-node__tally{border:1px solid var(--ink-3);background:0 0;flex:none;width:8px;height:8px}.vg-node[data-state=done] .vg-node__tally{background:var(--good);border-color:var(--good)}.vg-node[data-state=running] .vg-node__tally{background:var(--chroma-500);border-color:var(--chroma-500);animation:1s step-end infinite vg-blink}.vg-node[data-state=awaiting] .vg-node__tally{background:var(--warn);border-color:var(--warn);animation:1s step-end infinite vg-blink}.vg-node[data-state=failed] .vg-node__tally{background:var(--bad);border-color:var(--bad)}.vg-node__label{font:var(--weight-semibold,600) 10px var(--font-mono);text-transform:uppercase;letter-spacing:.07em}.vg-node__viz{height:60px;padding:8px 12px}.vg-node[data-state=pending] .vg-node__viz{opacity:.4}.vg-node__foot{border-top:1px solid var(--border-subtle);font:var(--weight-regular) 9px var(--font-mono);justify-content:space-between;gap:6px;padding:6px 10px;display:flex}.vg-node__engine{color:var(--ink-3)}.vg-node__cost{font-weight:var(--weight-medium);color:var(--ink-2)}.vg-node-edge{background:repeating-linear-gradient(90deg, var(--border-subtle) 0 4px, transparent 4px 8px);flex:none;align-self:center;width:26px;height:2px;margin-top:-24px}.vg-node-edge--done{background:var(--ink-2)}.vg-node-edge--solid{background:var(--ink-1)}.vg-node-edge--flowing{background:repeating-linear-gradient(90deg, var(--chroma-500) 0 6px, transparent 6px 12px);background-size:12px 2px;animation:.5s linear infinite vg-flow}.vg-node__typebars{flex-direction:column;justify-content:center;gap:5px;height:100%;display:flex}.vg-node__typebar{background:var(--ink-1);transform-origin:0;height:4px}.vg-node--running .vg-node__typebar{animation:1.3s linear infinite vg-type}.vg-node__wells{justify-content:center;align-items:center;gap:6px;height:100%;display:flex}.vg-node__well{background:var(--paper-3);border:1px solid var(--border-subtle);justify-content:center;align-items:flex-end;width:24px;height:42px;display:flex}.vg-node--running .vg-node__well{animation:.5s steps(2,end) infinite vg-flick}.vg-node__well-tag{font:var(--weight-semibold,600) 7px var(--font-mono);color:var(--ink-2);padding-bottom:2px}.vg-node__wave{justify-content:center;align-items:center;gap:2px;height:100%;display:flex}.vg-node__wavebar{background:var(--ink-1);flex:none;width:3px}.vg-node--running .vg-node__wavebar{animation:.8s linear infinite vg-wave}.vg-node__words{flex-wrap:wrap;place-content:center;gap:2px;height:100%;display:flex}.vg-node__word{font:var(--weight-medium) 9px var(--font-mono);padding:1px 3px}.vg-node--running .vg-node__word{animation:vg-karaoke var(--vg-karaoke-dur,1.6s) linear infinite}.vg-node[data-state=done] .vg-node__word:first-child{background:var(--chroma-500);color:var(--text-on-ink)}.vg-node__gate{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px;height:100%;display:flex}.vg-node__gate-text{font:var(--weight-semibold,600) 10px var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}.vg-node[data-state=awaiting] .vg-node__gate-text{color:var(--warn)}.vg-node[data-state=done] .vg-node__gate-text{color:var(--good)}.vg-node__gate-sub{font:var(--weight-regular) 9px var(--font-mono);color:var(--ink-3)}.vg-node__progress{flex-direction:column;justify-content:center;gap:6px;height:100%;display:flex}.vg-node__progress-track{border:1px solid var(--border-subtle);background:var(--paper-3);height:6px}.vg-node__progress-fill{background:var(--ink-1);width:0;height:100%}.vg-node[data-state=done] .vg-node__progress-fill{background:var(--chroma-500);width:100%}.vg-node--running .vg-node__progress-fill{background:repeating-linear-gradient(90deg, var(--ink-1) 0 6px, transparent 6px 12px);background-size:12px 6px;width:100%;animation:.5s linear infinite vg-flow}.vg-node__progress-pct{font:var(--weight-medium) 9px var(--font-mono);color:var(--ink-2)}.vg-node__failed{height:100%;font:var(--weight-semibold,600) 9px var(--font-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--bad);justify-content:center;align-items:center;display:flex}.vg-pipeline-card__foot{border-top:1px solid var(--ink-1);grid-template-columns:minmax(0,1fr) 300px;gap:20px;padding:16px;display:grid}@media (width<=760px){.vg-pipeline-card__foot{grid-template-columns:minmax(0,1fr)}}.vg-step-detail{flex-direction:column;gap:12px;min-width:0;display:flex}.vg-step-detail__head{align-items:baseline;gap:10px;display:flex}.vg-step-detail__title{font:var(--weight-semibold,600) 11px var(--font-mono);text-transform:uppercase;letter-spacing:.08em}.vg-step-detail__sub{font:var(--weight-regular) 10px var(--font-mono);color:var(--ink-3)}.vg-step-detail__lines{flex-direction:column;gap:10px;display:flex}.vg-step-detail__line{background:var(--surface-inset);border:1px solid var(--border-subtle);grid-template-columns:32px 1fr;gap:10px;padding:10px 12px;display:grid}.vg-step-detail__line-idx{font:var(--weight-medium) 11px var(--font-mono);color:var(--ink-3)}.vg-step-detail__line-body{flex-direction:column;gap:3px;min-width:0;display:flex}.vg-step-detail__narration{font:var(--weight-medium) var(--text-sm) var(--font-body)}.vg-step-detail__visual{font:var(--weight-regular) 11px var(--font-mono);color:var(--ink-2)}.vg-step-detail__clips{flex-wrap:wrap;gap:12px;display:flex}.vg-step-detail__clip{background:var(--surface-inset);border:1px solid var(--ink-1);flex-direction:column;justify-content:space-between;width:120px;height:212px;display:flex;position:relative;overflow:hidden}.vg-step-detail__clip-media{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.vg-step-detail__clip-tag{font:var(--weight-medium) 10px var(--font-mono);text-transform:uppercase;letter-spacing:.06em;background:var(--ink-1);color:var(--text-on-ink);align-self:flex-start;padding:3px 6px;position:relative}.vg-step-detail__clip-visual{font:var(--weight-regular) 10px var(--font-body);color:var(--ink-2);background:color-mix(in srgb, var(--paper-1) 82%, transparent);padding:6px;position:relative}.vg-step-detail__wave{background:var(--surface-inset);border:1px solid var(--border-subtle);align-items:center;gap:3px;height:56px;padding:0 12px;display:flex}.vg-step-detail__wavebar{background:var(--ink-1);flex:none;width:4px}.vg-step-detail--running .vg-step-detail__wavebar{animation:.8s linear infinite vg-wave}.vg-step-detail__meta{font:var(--weight-regular) 11px var(--font-mono);color:var(--ink-2);flex-wrap:wrap;gap:16px;display:flex}.vg-step-detail__audios{flex-direction:column;gap:6px;display:flex}.vg-step-detail__audios audio{width:100%;height:32px}.vg-step-detail__karaoke{background:var(--surface-inset);border:1px solid var(--border-subtle);flex-wrap:wrap;gap:4px;padding:16px 14px;display:flex}.vg-step-detail__karaoke-word{font:var(--weight-bold) var(--text-lg) var(--font-display);padding:2px 5px}.vg-step-detail--running .vg-step-detail__karaoke-word,.vg-step-detail--done .vg-step-detail__karaoke-word{animation:vg-karaoke var(--vg-karaoke-dur,2.4s) linear infinite}.vg-step-detail__scenes{flex-wrap:wrap;gap:12px;display:flex}.vg-step-detail__scene{background:var(--surface-inset);border:1px solid var(--border-subtle);flex-direction:column;flex:1;gap:4px;min-width:200px;padding:10px 12px;display:flex}.vg-step-detail__scene-meta{font:var(--weight-medium) 10px var(--font-mono);color:var(--ink-3)}.vg-step-detail__scene-narration{font:var(--weight-medium) 13px var(--font-body)}.vg-step-detail__actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.vg-step-detail__note{font:var(--weight-regular) 11px var(--font-body);color:var(--ink-3)}.vg-step-detail__error{border:1px solid var(--bad);background:var(--bad-bg);font:var(--weight-regular) var(--text-xs) var(--font-mono);color:var(--bad);padding:10px 12px}.vg-step-detail__render-track{border:1px solid var(--ink-1);background:var(--surface-inset);height:10px}.vg-step-detail__render-fill{background:var(--ink-1);width:0;height:100%}.vg-step-detail--running .vg-step-detail__render-fill{background:repeating-linear-gradient(90deg, var(--ink-1) 0 8px, transparent 8px 16px);background-size:16px 10px;width:100%;animation:.5s linear infinite vg-flow}.vg-step-detail__output{align-items:flex-start;gap:16px;display:flex}.vg-step-detail__player{border:2px solid var(--chroma-500);background:var(--ink-1);object-fit:cover;flex:none;width:126px;height:224px}.vg-step-detail__output-meta{font:var(--weight-regular) var(--text-xs) var(--font-mono);color:var(--ink-2);flex-direction:column;gap:6px;display:flex}.vg-step-detail__output-name{font:var(--weight-semibold,600) 13px var(--font-mono);color:var(--ink-1)}.vg-event-log{flex-direction:column;gap:8px;min-width:0;display:flex}.vg-event-log__title{font:var(--weight-semibold,600) 10px var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2)}.vg-event-log__scroll{background:var(--surface-inset);border:1px solid var(--border-subtle);flex-direction:column;gap:3px;height:212px;padding:8px 10px;display:flex;overflow-y:auto}.vg-event-log__row{font:var(--weight-regular) 10px var(--font-mono);grid-template-columns:66px 110px 1fr;gap:8px;display:grid}.vg-event-log__time{color:var(--ink-3)}.vg-event-log__type{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-1);overflow:hidden}.vg-event-log__row--good .vg-event-log__type{color:var(--good)}.vg-event-log__row--warn .vg-event-log__type{color:var(--warn)}.vg-event-log__row--bad .vg-event-log__type{color:var(--bad)}.vg-event-log__msg{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
