export const PORTAL_CSS = ` :root{color-scheme:dark;--bg:#0a0a0d;--panel:#14141a;--panel2:#1a1a22;--line:#232330;--ink:#e8e6e1;--ink2:#b6b6c0;--ink3:#7a7a86;--accent:#ffb454;--good:#5fc792;--danger:#d8556a;--glow:rgba(255,180,84,.06);--font-body:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,sans-serif;--font-display:var(--font-body);--font-wordmark:var(--font-display)} *{box-sizing:border-box;margin:0;padding:0} html{scroll-behavior:smooth} body{background:radial-gradient(ellipse 1200px 600px at 50% -50px,var(--glow),transparent 60%),var(--bg);color:var(--ink);font:14px/1.55 var(--font-body);padding:56px 32px 96px;max-width:1480px;margin:0 auto} a{color:var(--accent);text-decoration:none} nav.toc{position:sticky;top:0;z-index:20;backdrop-filter:blur(12px);background:rgba(10,10,13,.78);border-bottom:1px solid var(--line);padding:11px 16px;margin:-56px -32px 30px;display:flex;gap:4px;flex-wrap:wrap;align-items:center;justify-content:center} nav.toc:empty{display:none} nav.toc a{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);padding:6px 12px;border-radius:6px} nav.toc a:hover{color:var(--ink);background:var(--panel)} header.hero{margin-bottom:28px} .eyebrow{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--ink3)} h1{font-size:50px;font-weight:800;letter-spacing:-.02em;line-height:1.05;margin:10px 0 12px} .sub{color:var(--ink2);font-size:16px;max-width:820px} .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:28px 0} .stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px} .stat .v{font-size:26px;font-weight:700}.stat .l{font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-top:4px} section{margin-bottom:60px;scroll-margin-top:68px}.section-head{padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:26px} h2{font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--ink3);margin-bottom:7px}.section-title{font-size:26px;font-weight:700}.section-sub{color:var(--ink2);font-size:14px;margin-top:7px;max-width:820px} .hero-video,.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden} .hero-video{padding:22px;margin:26px 0}.hero-video video{width:100%;aspect-ratio:16/9;display:block;background:#000;border-radius:12px} .final-meta{display:flex;gap:10px 22px;flex-wrap:wrap;align-items:center;margin-top:16px;padding:0 6px;color:var(--ink3);font-size:12px;font-family:ui-monospace,"SF Mono",monospace} .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card video,.card img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:#000}.card img{cursor:zoom-in}.card audio{width:100%;margin-top:8px} .meta{padding:12px 15px}.num{color:var(--accent);font-family:ui-monospace,monospace;font-size:10px;font-weight:700;letter-spacing:.12em}.title{font-size:14px;font-weight:600;margin-top:4px}.who{color:var(--ink3);font-size:11px;margin-top:5px;overflow-wrap:anywhere} .review-controls,.client-controls{padding:12px 16px;border-top:1px solid var(--line);display:flex;gap:8px;flex-wrap:wrap;align-items:center} .review-btn,.client-btn{background:#0c0c11;border:1px solid var(--line);color:var(--ink);padding:6px 12px;border-radius:7px;font-size:11px;font-weight:600;cursor:pointer} .review-btn.approve[aria-pressed=true],.client-btn.approve[aria-pressed=true]{background:rgba(95,199,146,.16);color:var(--good)} .review-btn.regenerate[aria-pressed=true],.client-btn.decline[aria-pressed=true]{background:rgba(216,85,106,.16);color:var(--danger)} .review-note,.client-note{flex:1;background:#0c0c11;border:1px solid var(--line);color:var(--ink);padding:6px 12px;border-radius:7px;font-size:11px;min-width:180px} .hud{position:sticky;bottom:16px;margin-top:30px;background:var(--panel2);border:1px solid var(--line);border-radius:13px;padding:12px 18px;display:flex;gap:16px;align-items:center;box-shadow:0 12px 32px rgba(0,0,0,.55);font-size:13px} .hud button{background:var(--accent);border:1px solid var(--accent);color:#0a0a0d;padding:8px 16px;border-radius:8px;cursor:pointer;font-size:12px;font-weight:700;margin-left:auto} .dl-btn{display:inline-block;margin-top:10px;padding:6px 12px;border:1px solid rgba(255,180,84,.3);border-radius:6px;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase} .color-state{display:inline-flex;gap:6px;align-items:center;margin-top:6px;padding:3px 9px;border:1px solid var(--line);border-radius:999px;font-size:10px} .cs-swatch{width:11px;height:11px;border-radius:50%;border:1px solid rgba(255,255,255,.25);flex:0 0 auto} .cs-label{font-weight:700;letter-spacing:.04em;color:var(--ink)} .cs-id{font-family:ui-monospace,"SF Mono",monospace;font-size:9px;color:var(--ink3)} .scene-contract{border-top:1px solid var(--line);padding:12px 15px;display:flex;flex-direction:column;gap:12px} .contract-block{display:flex;flex-direction:column;gap:6px} .contract-label{font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)} .contract-row{display:flex;gap:8px;align-items:baseline;font-family:ui-monospace,"SF Mono",monospace;font-size:11px;line-height:1.5} .contract-k{flex:0 0 46px;color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:9px;padding-top:1px} .contract-v{flex:1;color:var(--ink2);overflow-wrap:anywhere;white-space:pre-wrap} .ref-slots{display:flex;flex-direction:column;gap:5px;margin-bottom:8px} .ref-slot{display:flex;gap:7px;align-items:center;flex-wrap:wrap;font-family:ui-monospace,"SF Mono",monospace;font-size:10px} .ref-role{color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:9px} .ref-slot-label{color:var(--ink2)} .ref-status{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:1px 7px;border-radius:999px;border:1px solid var(--line)} .ref-status.ref-ready{color:var(--good);background:rgba(95,199,146,.14);border-color:rgba(95,199,146,.4)} .ref-status.ref-pending{color:var(--accent);background:rgba(255,180,84,.12);border-color:rgba(255,180,84,.4)} .ref-bind{color:var(--ink3);overflow-wrap:anywhere} .ref-bind.ref-unbound{color:var(--danger)} .scene-refs{display:flex;gap:8px;flex-wrap:wrap} .scene-refs .scene-ref{width:64px;height:64px;aspect-ratio:1/1;object-fit:cover;border-radius:8px;border:1px solid var(--line);cursor:zoom-in;background:#000} /* Voice design: one cloned-voice row per cast character — a videoAssetId pill, a label, and a playable