/* Small correctness overrides kept separate from the compact visual sheet. */
.companion-output{background:#100c18;border:1px solid var(--line);border-radius:10px;margin-top:16px;padding:13px}
.companion-rail .rail-button:not(.rail-button-primary){background:#160f23;border:1px solid var(--line);color:var(--ink)}
.companion-rail .rail-button:not(.rail-button-primary):hover,.companion-rail .rail-button:not(.rail-button-primary):focus-visible{border-color:var(--violet2);color:#fff}
.companion-rail button:disabled{cursor:wait;opacity:.48}
.companion-output .output-label{display:block;line-height:1.55}
.companion-output p{line-height:1.5}
.buddy-presence{align-items:center;background:rgba(168,117,255,.08);border:1px solid var(--line);border-radius:9px;color:var(--violet2);display:flex;font-size:.68rem;gap:8px;line-height:1.35;margin:13px 0 11px;padding:9px 10px}
.buddy-presence i{background:#8ee8bd;border-radius:50%;box-shadow:0 0 12px rgba(142,232,189,.55);flex:0 0 7px;height:7px;width:7px}
.buddy-presence.is-local i{background:var(--pink);box-shadow:0 0 12px rgba(255,143,207,.65)}
.buddy-presence.is-waiting i{animation:buddy-pulse 1.4s ease-in-out infinite;background:#ffc77d}
.companion-quick{display:grid;gap:6px;grid-template-columns:1fr 1fr;margin-bottom:8px}
.companion-quick button{background:#160f23;border:1px solid var(--line);border-radius:8px;color:var(--violet2);cursor:pointer;font:inherit;font-size:.67rem;line-height:1.25;padding:8px;text-align:left}
.companion-quick button:last-child{grid-column:1/-1}
.companion-quick button:hover,.companion-quick button:focus-visible{border-color:var(--pink);color:#fff}
.companion-form{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}
.companion-form label{color:var(--violet2);display:block;font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.companion-form textarea{background:#100c18;border:1px solid var(--line);border-radius:8px;color:var(--ink);display:block;font:inherit;font-size:.8rem;line-height:1.45;margin-top:7px;padding:9px;resize:vertical;width:100%}
.companion-form textarea:focus{border-color:var(--violet2);outline:2px solid rgba(168,117,255,.16)}
.companion-history{border-top:1px solid var(--line);display:grid;gap:8px;margin-top:13px;padding-top:12px}
.companion-history[hidden]{display:none}
.companion-history>span{color:var(--violet2);font-size:.6rem;font-weight:800;letter-spacing:.12em}
.companion-note{border-left:2px solid rgba(255,143,207,.45);padding-left:9px}
.companion-note b{color:var(--pink);display:block;font-size:.57rem;letter-spacing:.08em;text-transform:uppercase}
.companion-note p{color:var(--muted);font-size:.72rem;line-height:1.4;margin:3px 0 0}
@keyframes buddy-pulse{0%,100%{opacity:.45;transform:scale(.8)}50%{opacity:1;transform:scale(1.18)}}

/* Director Board + Story Studio v2 */
.director-section{border-top:1px solid var(--line);padding:64px 0}
.story-card .story-actions{align-items:center;gap:10px}
.director-launch{margin-left:auto}
.director-shell{background:linear-gradient(145deg,rgba(37,23,57,.92),rgba(18,13,29,.96));border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}
.director-toolbar{align-items:end;border-bottom:1px solid var(--line);display:flex;gap:20px;justify-content:space-between;padding:20px 22px}
.director-toolbar label{color:var(--violet2);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.director-toolbar select,.draft-project input,.draft-project select,.draft-form select{background:#100c18;border:1px solid var(--line);border-radius:8px;color:var(--ink);display:block;font:inherit;margin-top:6px;padding:10px;width:100%}
.director-stats{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}
.director-stats span{background:#100c18;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.7rem;padding:6px 9px}
.graph-health{background:#100c18;border-bottom:1px solid var(--line);color:var(--muted);font-size:.7rem;font-weight:700;letter-spacing:.08em;padding:12px 22px;text-transform:uppercase}
.graph-health.is-good{color:#8ee8bd}.graph-health.is-warning{color:#ffc77d}
.director-stage{background:#09070e;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.8fr)}
.director-stage-visual{aspect-ratio:16/9;background:#05040a;isolation:isolate;overflow:hidden;position:relative}
.director-stage-visual img{display:block;height:100%;object-fit:cover;transform:scale(1.012);width:100%}
.director-stage-wireframe{display:grid;grid-template-columns:.7fr 1.2fr .5fr;gap:12px;height:100%;padding:28px}
.director-stage-wireframe[hidden],.director-stage-image[hidden]{display:none}
.director-stage-wireframe i{background:linear-gradient(145deg,rgba(168,117,255,.2),rgba(255,143,207,.04));border:1px dashed rgba(216,184,255,.32);border-radius:10px}
.director-stage-signal{background:linear-gradient(90deg,transparent 0 39%,rgba(168,117,255,.16) 45% 52%,transparent 58%),repeating-linear-gradient(0deg,transparent 0 8px,rgba(255,255,255,.018) 9px);inset:0;mix-blend-mode:screen;opacity:.5;pointer-events:none;position:absolute;z-index:2}
.director-stage-cue,.scene-image-cue{pointer-events:none;position:absolute;z-index:3}
.director-stage-cue.mirror,.scene-image-cue.mirror{color:rgba(225,238,248,.82);filter:blur(.2px);font-family:Georgia,serif;font-size:clamp(1rem,3vw,2.3rem);font-style:italic;letter-spacing:.26em;right:21%;text-shadow:0 0 12px rgba(219,236,247,.45);top:43%;transform:rotate(-4deg)}
.director-stage-cue.message,.scene-image-cue.message{background:rgba(7,15,27,.84);border:1px solid rgba(151,224,255,.46);border-radius:10px;bottom:10%;box-shadow:0 10px 34px rgba(0,0,0,.45),0 0 24px rgba(96,204,255,.13);color:rgba(239,248,255,.95);font-size:clamp(.58rem,1.35vw,.88rem);max-width:44%;padding:.58rem .75rem;right:7%}
.director-stage-cue.fracture,.scene-image-cue.fracture{color:rgba(229,239,246,.86);filter:blur(.15px);font-family:Georgia,serif;font-size:clamp(.95rem,2.8vw,2.15rem);font-style:italic;left:51%;letter-spacing:.24em;text-shadow:0 0 14px rgba(221,235,244,.45);top:48%;transform:rotate(-3deg)}
.director-stage-cue.loop-reply,.scene-image-cue.loop-reply{background:rgba(7,15,27,.86);border:1px solid rgba(151,224,255,.46);border-radius:9px;bottom:16%;box-shadow:0 10px 34px rgba(0,0,0,.48),0 0 26px rgba(96,204,255,.14);color:rgba(239,248,255,.96);font-family:monospace;font-size:clamp(.56rem,1.35vw,.86rem);letter-spacing:.035em;padding:.58rem .72rem;right:16%}
.director-stage-cue.exception-reset,.scene-image-cue.exception-reset{background:rgba(4,8,14,.8);border:1px solid rgba(188,225,247,.35);border-radius:999px;bottom:13%;color:rgba(239,248,255,.95);font-family:monospace;font-size:clamp(.56rem,1.35vw,.86rem);letter-spacing:.08em;padding:.56rem .8rem;right:14%;text-shadow:0 0 12px rgba(151,224,255,.35)}
.director-stage-cue.memory-wake,.scene-image-cue.memory-wake{color:rgba(224,236,245,.84);font-family:Georgia,serif;font-size:clamp(1rem,3vw,2.25rem);font-style:italic;left:13%;letter-spacing:.26em;text-shadow:0 0 14px rgba(219,236,247,.42);top:23%;transform:rotate(-2deg)}
.director-stage-cue.notebook-evidence,.scene-image-cue.notebook-evidence{background:rgba(10,8,10,.84);border:1px solid rgba(209,176,112,.42);border-radius:7px;color:rgba(246,230,197,.95);font-family:monospace;font-size:clamp(.54rem,1.28vw,.82rem);letter-spacing:.06em;padding:.56rem .7rem;right:9%;text-shadow:0 0 12px rgba(210,169,92,.3);top:13%}
.director-stage-cue.threshold-door,.scene-image-cue.threshold-door{color:rgba(255,224,162,.95);font-family:Georgia,serif;font-size:clamp(1rem,3vw,2.25rem);font-style:italic;letter-spacing:.24em;right:22%;text-shadow:0 0 16px rgba(255,184,73,.7);top:17%}
.director-stage-cue.evidence-map,.scene-image-cue.evidence-map{background:rgba(11,9,8,.84);border:1px solid rgba(218,183,105,.46);border-radius:7px;color:rgba(251,232,190,.96);font-family:monospace;font-size:clamp(.5rem,1.18vw,.78rem);letter-spacing:.07em;padding:.56rem .7rem;right:7%;text-shadow:0 0 13px rgba(225,178,74,.34);top:11%}
.director-stage-cue.layer-call,.scene-image-cue.layer-call{background:rgba(5,12,24,.84);border:1px solid rgba(124,195,236,.42);border-radius:999px;color:rgba(230,244,255,.96);font-family:monospace;font-size:clamp(.49rem,1.15vw,.76rem);letter-spacing:.05em;padding:.54rem .72rem;right:8%;text-shadow:0 0 14px rgba(104,193,255,.38);top:11%}
.director-stage-cue.patient-mirror,.scene-image-cue.patient-mirror{color:rgba(244,226,193,.92);font-family:Georgia,serif;font-size:clamp(.95rem,2.7vw,2.05rem);font-style:italic;left:51%;letter-spacing:.22em;text-shadow:0 0 14px rgba(226,173,86,.38);top:43%;transform:rotate(-2deg)}
.scene-image-wrap{overflow:hidden;position:relative}.scene-image-wrap .scene-image-cue.mirror{animation:director-mirror-cue 8s ease-in-out infinite}.scene-image-wrap .scene-image-cue.message{animation:director-message-cue 6s ease-in-out infinite}.scene-image-wrap .scene-image-cue.fracture{animation:director-fracture-cue 7s ease-in-out infinite}.scene-image-wrap .scene-image-cue.loop-reply{animation:director-loop-reply-cue 6s ease-in-out infinite}.scene-image-wrap .scene-image-cue.exception-reset{animation:director-exception-reset-cue 8s ease-in-out infinite}.scene-image-wrap .scene-image-cue.memory-wake{animation:director-memory-wake-cue 8s ease-in-out infinite}.scene-image-wrap .scene-image-cue.notebook-evidence{animation:director-notebook-evidence-cue 9s ease-in-out infinite}.scene-image-wrap .scene-image-cue.threshold-door{animation:director-threshold-door-cue 8s ease-in-out infinite}.scene-image-wrap .scene-image-cue.evidence-map{animation:director-evidence-map-cue 9s ease-in-out infinite}.scene-image-wrap .scene-image-cue.layer-call{animation:director-layer-call-cue 7s ease-in-out infinite}.scene-image-wrap .scene-image-cue.patient-mirror{animation:director-patient-mirror-cue 9s ease-in-out infinite}
.director-stage-art-state{background:rgba(10,8,15,.82);border:1px solid var(--line);border-radius:999px;color:#ffc77d;font-size:.58rem;font-weight:900;letter-spacing:.1em;position:absolute;right:14px;top:14px;padding:5px 8px;z-index:3}.director-stage-art-state.art-ready{color:#8ee8bd}
.director-stage-copy{align-content:center;display:grid;padding:24px}.director-stage-copy h3{font-size:1.45rem;margin:4px 0}.director-stage-copy code{color:var(--violet2);font-size:.67rem}
.director-stage-narration{color:var(--muted);font-size:.78rem;line-height:1.55;margin:15px 0 4px}
.director-stage-brief{grid-template-columns:1fr 1fr}
.director-stage-choices{display:grid;gap:7px;margin:8px 0 14px}.director-stage-choices button{background:#100c18;border:1px solid var(--line);border-radius:8px;color:var(--ink);cursor:pointer;font:inherit;padding:9px 10px;text-align:left}.director-stage-choices button:hover,.director-stage-choices button:focus-visible{border-color:var(--pink)}.director-stage-choices button span{display:block;font-size:.72rem}.director-stage-choices button b{color:var(--violet2);display:block;font-size:.58rem;margin-top:3px}
.director-stage-ending{background:rgba(255,143,207,.1);border-radius:7px;color:var(--pink);font-size:.65rem;font-weight:800;padding:9px}
.director-stage-actions{display:flex;flex-wrap:wrap;gap:9px}.director-stage-actions .quiet-button{display:inline-flex;align-items:center}
.director-stage-authority{color:var(--muted);font-size:.61rem;line-height:1.4;margin:12px 0 0}
.director-stage-visual.is-playing.motion-drift img{animation:director-drift 7s ease-in-out infinite alternate}
.director-stage-visual.is-playing.motion-parallax img{animation:director-parallax 7s ease-in-out infinite alternate}
.director-stage-visual.is-playing.motion-caption img{animation:director-caption 5s ease-in-out infinite alternate}
.director-stage-visual.is-playing.motion-fade img{animation:director-fade 5s ease-in-out infinite}
.director-stage-visual.is-playing.motion-mirror img{animation:director-mirror 7s ease-in-out infinite alternate}
.director-stage-visual.is-playing.motion-message img{animation:director-message 6s ease-in-out infinite alternate}
.director-stage-visual.is-playing.motion-fracture img{animation:director-fracture 7s ease-in-out infinite alternate}
.director-stage-visual.is-playing.motion-loop-reply img{animation:director-loop-reply 6s ease-in-out infinite alternate}
.director-stage-visual.is-playing.motion-exception-reset img{animation:director-exception-reset 8s ease-in-out infinite}
.director-stage-visual.is-playing.motion-memory-wake img{animation:director-memory-wake 8s ease-in-out infinite alternate}
.director-stage-visual.is-playing.motion-notebook-evidence img{animation:director-notebook-evidence 9s ease-in-out infinite alternate}
.director-stage-visual.is-playing.motion-threshold-door img{animation:director-threshold-door 8s ease-in-out infinite alternate}
.director-stage-visual.is-playing.motion-evidence-map img{animation:director-evidence-map 9s ease-in-out infinite alternate}
.director-stage-visual.is-playing.motion-layer-call img{animation:director-layer-call 7s ease-in-out infinite alternate}
.director-stage-visual.is-playing.motion-patient-mirror img{animation:director-patient-mirror 9s ease-in-out infinite alternate}
.director-stage-visual.is-playing.motion-mirror .director-stage-cue{animation:director-mirror-cue 7s ease-in-out infinite}
.director-stage-visual.is-playing.motion-message .director-stage-cue{animation:director-message-cue 6s ease-in-out infinite}
.director-stage-visual.is-playing.motion-fracture .director-stage-cue{animation:director-fracture-cue 7s ease-in-out infinite}
.director-stage-visual.is-playing.motion-loop-reply .director-stage-cue{animation:director-loop-reply-cue 6s ease-in-out infinite}
.director-stage-visual.is-playing.motion-exception-reset .director-stage-cue{animation:director-exception-reset-cue 8s ease-in-out infinite}
.director-stage-visual.is-playing.motion-memory-wake .director-stage-cue{animation:director-memory-wake-cue 8s ease-in-out infinite}
.director-stage-visual.is-playing.motion-notebook-evidence .director-stage-cue{animation:director-notebook-evidence-cue 9s ease-in-out infinite}
.director-stage-visual.is-playing.motion-threshold-door .director-stage-cue{animation:director-threshold-door-cue 8s ease-in-out infinite}
.director-stage-visual.is-playing.motion-evidence-map .director-stage-cue{animation:director-evidence-map-cue 9s ease-in-out infinite}
.director-stage-visual.is-playing.motion-layer-call .director-stage-cue{animation:director-layer-call-cue 7s ease-in-out infinite}
.director-stage-visual.is-playing.motion-patient-mirror .director-stage-cue{animation:director-patient-mirror-cue 9s ease-in-out infinite}
.director-stage-visual.is-playing .director-stage-signal{animation:director-signal 3.2s ease-in-out infinite}
@keyframes director-drift{from{transform:scale(1.012) translate3d(0,0,0)}to{transform:scale(1.055) translate3d(-.4%,-.25%,0)}}
@keyframes director-parallax{from{transform:scale(1.02) translate3d(-.35%,0,0)}to{transform:scale(1.07) translate3d(.45%,-.35%,0)}}
@keyframes director-caption{0%{filter:saturate(.8);transform:scale(1.01)}45%,100%{filter:saturate(1.15);transform:scale(1.045)}}
@keyframes director-fade{0%,18%{filter:brightness(.7);opacity:.72;transform:scale(1.01)}55%,82%{filter:brightness(1);opacity:1;transform:scale(1.04)}100%{filter:brightness(.7);opacity:.72;transform:scale(1.01)}}
@keyframes director-mirror{from{transform:scale(1.018) translate3d(-.15%,0,0)}to{transform:scale(1.06) translate3d(.4%,-.2%,0)}}
@keyframes director-message{from{filter:brightness(.88);transform:scale(1.012)}to{filter:brightness(1.06);transform:scale(1.055) translate3d(-.45%,-.3%,0)}}
@keyframes director-fracture{from{filter:brightness(.9) contrast(1);transform:scale(1.018) translate3d(-.1%,0,0)}to{filter:brightness(1.03) contrast(1.07);transform:scale(1.06) translate3d(.45%,-.25%,0)}}
@keyframes director-loop-reply{from{filter:brightness(.9) saturate(.94);transform:scale(1.014)}to{filter:brightness(1.06) saturate(1.08);transform:scale(1.055) translate3d(-.4%,-.3%,0)}}
@keyframes director-exception-reset{0%,44%{filter:brightness(.94) saturate(.95);transform:scale(1.018)}60%,72%{filter:brightness(.08) saturate(.5);transform:scale(1.035)}100%{filter:brightness(.92) saturate(.92);transform:scale(1.055) translate3d(-.25%,-.15%,0)}}
@keyframes director-memory-wake{from{filter:brightness(.88) contrast(1);transform:scale(1.016)}to{filter:brightness(1.04) contrast(1.06);transform:scale(1.055) translate3d(.35%,-.2%,0)}}
@keyframes director-notebook-evidence{from{filter:brightness(.9) contrast(1);transform:scale(1.015) translate3d(-.2%,0,0)}to{filter:brightness(1.04) contrast(1.06);transform:scale(1.06) translate3d(.5%,.25%,0)}}
@keyframes director-threshold-door{from{filter:brightness(.9) saturate(.92);transform:scale(1.016)}to{filter:brightness(1.08) saturate(1.12);transform:scale(1.058) translate3d(-.35%,-.2%,0)}}
@keyframes director-evidence-map{from{filter:brightness(.9) contrast(1);transform:scale(1.014) translate3d(-.15%,0,0)}to{filter:brightness(1.05) contrast(1.06);transform:scale(1.06) translate3d(.45%,.2%,0)}}
@keyframes director-layer-call{from{filter:brightness(.88) saturate(.9);transform:scale(1.014)}to{filter:brightness(1.06) saturate(1.08);transform:scale(1.058) translate3d(-.42%,-.2%,0)}}
@keyframes director-patient-mirror{from{filter:brightness(1.02) saturate(1);transform:scale(1.016)}to{filter:brightness(.88) saturate(.82);transform:scale(1.052) translate3d(.25%,-.15%,0)}}
@keyframes director-mirror-cue{0%,18%,82%,100%{opacity:0;transform:rotate(-4deg) translateY(3px)}36%,66%{opacity:.86;transform:rotate(-4deg) translateY(0)}}
@keyframes director-message-cue{0%,12%,88%,100%{opacity:.5;transform:translateY(4px)}28%,72%{opacity:1;transform:translateY(0)}}
@keyframes director-fracture-cue{0%,18%,84%,100%{opacity:0;transform:rotate(-3deg) translateY(3px)}36%,68%{opacity:.9;transform:rotate(-3deg) translateY(0)}}
@keyframes director-loop-reply-cue{0%,14%,88%,100%{opacity:.46;transform:translateY(4px)}30%,72%{opacity:1;transform:translateY(0)}}
@keyframes director-exception-reset-cue{0%,38%{opacity:.58;transform:translateY(2px)}50%,60%{opacity:.08;transform:translateY(4px)}68%,90%{opacity:1;transform:translateY(0)}100%{opacity:.58;transform:translateY(2px)}}
@keyframes director-memory-wake-cue{0%,18%,88%,100%{opacity:.28;transform:rotate(-2deg) translateY(3px)}38%,72%{opacity:.9;transform:rotate(-2deg) translateY(0)}}
@keyframes director-notebook-evidence-cue{0%,20%,90%,100%{opacity:.35;transform:translateY(3px)}38%,76%{opacity:1;transform:translateY(0)}}
@keyframes director-threshold-door-cue{0%,16%,88%,100%{opacity:.28;text-shadow:0 0 8px rgba(255,184,73,.35);transform:translateY(3px)}38%,72%{opacity:1;text-shadow:0 0 22px rgba(255,184,73,.82);transform:translateY(0)}}
@keyframes director-evidence-map-cue{0%,18%,90%,100%{opacity:.34;transform:translateY(3px)}38%,76%{opacity:1;transform:translateY(0)}}
@keyframes director-layer-call-cue{0%,16%,88%,100%{opacity:.4;transform:translateY(3px)}34%,72%{opacity:1;text-shadow:0 0 20px rgba(104,193,255,.58);transform:translateY(0)}}
@keyframes director-patient-mirror-cue{0%,22%,90%,100%{opacity:.24;transform:rotate(-2deg) translateY(3px)}42%,76%{opacity:.9;transform:rotate(-2deg) translateY(0)}}
@keyframes director-signal{0%,100%{opacity:.22;transform:translateX(-1.5%)}50%{opacity:.68;transform:translateX(1.5%)}}
.director-board{display:flex;gap:18px;overflow-x:auto;padding:22px;scrollbar-color:var(--violet) #100c18;scroll-snap-type:x proximity}
.director-lane{display:grid;flex:0 0 270px;gap:12px;align-content:start;scroll-snap-align:start}
.lane-label{color:var(--pink);font-size:.62rem;font-weight:800;letter-spacing:.16em;padding:0 4px}
.director-node{background:#100c18;border:1px solid var(--line);border-radius:13px;overflow:hidden;padding:13px}
.director-node.is-selected{border-color:var(--violet2);box-shadow:0 0 0 1px rgba(168,117,255,.25),0 12px 30px rgba(0,0,0,.28)}
.director-node.is-ending{border-color:rgba(255,143,207,.58);box-shadow:inset 0 0 24px rgba(255,143,207,.08)}
.director-node-top{display:flex;gap:8px;justify-content:space-between;color:var(--violet2);font-size:.58rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.art-state{border-radius:999px;padding:2px 6px}.art-state.art-ready{background:rgba(83,203,148,.15);color:#8ee8bd}.art-state.wireframe{background:rgba(255,199,125,.12);color:#ffc77d}
.director-thumb,.director-wireframe{aspect-ratio:16/9;background:#09070e;border:1px solid var(--line);border-radius:8px;margin:10px 0;overflow:hidden}
.director-thumb img{display:block;height:100%;object-fit:cover;width:100%}
.director-wireframe{display:grid;grid-template-columns:.7fr 1.2fr .5fr;gap:5px;padding:9px}
.director-wireframe i{background:linear-gradient(145deg,rgba(168,117,255,.22),rgba(255,143,207,.05));border:1px dashed rgba(216,184,255,.32);border-radius:5px}
.director-node h3{font-size:1rem;line-height:1.15;margin:8px 0 3px}.director-node code{color:var(--muted);font-size:.65rem}
.direction-brief{display:grid;gap:8px;margin:12px 0}.direction-brief div{border-left:2px solid var(--violet);padding-left:8px}.direction-brief dt{color:var(--pink);font-size:.55rem;font-weight:800;letter-spacing:.12em}.direction-brief dd{color:var(--muted);font-size:.7rem;line-height:1.35;margin:2px 0 0}
.director-exits{border-top:1px solid var(--line);display:grid;gap:6px;list-style:none;margin:10px 0 0;padding:10px 0 0}.director-exits li{color:var(--muted);font-size:.68rem}.director-exits li b{color:var(--violet2);display:block;font-weight:500}
.ending-chip{background:rgba(255,143,207,.1);border-radius:7px;color:var(--pink);font-size:.62rem;font-weight:800;letter-spacing:.08em;margin-top:10px;padding:8px}
.director-preview-button{background:transparent;border:0;border-top:1px solid var(--line);color:var(--pink);cursor:pointer;font:inherit;font-size:.65rem;font-weight:800;letter-spacing:.07em;margin-top:11px;padding:10px 0 0;text-align:left;text-transform:uppercase;width:100%}.director-preview-button:hover,.director-preview-button:focus-visible{color:#fff}
.director-legend{border-top:1px solid var(--line);color:var(--muted);display:flex;flex-wrap:wrap;font-size:.68rem;gap:16px;padding:14px 22px}.director-legend span{align-items:center;display:flex;gap:6px}.legend-dot{border-radius:50%;height:8px;width:8px}.legend-dot.art{background:#8ee8bd}.legend-dot.wire{background:#ffc77d}.legend-dot.ending{background:var(--pink)}

.draft-project{align-items:end;background:linear-gradient(145deg,rgba(37,23,57,.92),rgba(18,13,29,.96));border:1px solid var(--line);border-radius:14px;display:grid;gap:14px;grid-template-columns:1fr 220px auto;margin-bottom:35px;padding:18px 20px}
.draft-project label{color:var(--violet2);font-size:.78rem;margin:0}.draft-project-actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px;padding-bottom:1px}
.studio-grid{grid-template-columns:1.08fr .92fr}
.draft-form select{margin-top:6px}
.draft-form fieldset{border:1px solid var(--line);border-radius:10px;margin:14px 0;padding:13px}.draft-form fieldset legend{color:var(--pink);font-size:.68rem;font-weight:800;letter-spacing:.1em;padding:0 5px;text-transform:uppercase}.draft-form fieldset.is-disabled{opacity:.42}
.draft-form label small{color:var(--muted)}
.ending-toggle{align-items:center;display:flex!important;gap:9px}.ending-toggle input{display:inline-block!important;margin:0!important;width:auto!important}
.form-status{color:var(--pink);font-size:.74rem;min-height:1.2rem}
.draft-health{border:1px solid var(--line);border-radius:8px;margin-top:14px;padding:10px 12px}
.draft-node{align-items:start;display:flex;gap:12px;justify-content:space-between}.draft-node.is-ending{border-color:rgba(255,143,207,.48)}.draft-node-actions{display:flex;flex-shrink:0;gap:9px}
.danger-button{color:#ff9cae}
.portal-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}

@media(max-width:850px){.director-toolbar{align-items:stretch;flex-direction:column}.director-stats{justify-content:flex-start}.director-stage{grid-template-columns:1fr}.draft-project{grid-template-columns:1fr}.studio-grid{grid-template-columns:1fr}}
@media(max-width:560px){.topbar nav{gap:9px;font-size:.68rem}.draft-choice-grid{grid-template-columns:1fr}.director-lane{flex-basis:240px}.draft-node{display:block}.draft-node-actions{margin-top:9px}}
@media(prefers-reduced-motion:reduce){.director-stage-visual img,.director-stage-signal,.director-stage-cue,.scene-image-cue{animation:none!important;opacity:1!important;transform:none!important}}
