:root{--ink:#16181d;--muted:#5b6472;--line:#d8dde5;--bg:#fbfcfd;--accent:#b4530a;--warn-bg:#fff6e8;--error-bg:#fdecec;--ok:#1a7f4b}*{box-sizing:border-box}body{margin:0;font:16px/1.55 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg)}.site-header{padding:12px 24px;border-bottom:1px solid var(--line);background:#fff}.site-header a{color:var(--ink);font-weight:600;text-decoration:none}main{max-width:720px;margin:0 auto;padding:32px 24px 64px}h1{font-size:1.6rem;margin:0 0 8px}h2{font-size:1.1rem;margin:32px 0 8px}p.intro{color:var(--muted);margin:0 0 28px}fieldset{border:1px solid var(--line);border-radius:6px;padding:16px;margin:0 0 20px;background:#fff}legend{font-weight:600;padding:0 6px}label.option{display:block;padding:8px 0;border-bottom:1px solid #eef1f5}label.option:last-child{border-bottom:none}label.option span.desc{display:block;color:var(--muted);font-size:.9rem;margin-left:26px}.dropzone{border:2px dashed var(--line);border-radius:8px;padding:40px 20px;text-align:center;background:#fff;cursor:pointer;margin-bottom:20px}.dropzone.over{border-color:var(--accent);background:#fff9f3}.dropzone .hint{color:var(--muted);font-size:.9rem;margin-top:6px}.dropzone .chosen{font-weight:600;margin-top:10px}input[type=text],select,textarea{width:100%;padding:8px;border:1px solid var(--line);border-radius:4px;font:inherit;background:#fff}button{font:inherit;font-weight:600;padding:11px 20px;border:none;border-radius:5px;background:var(--accent);color:#fff;cursor:pointer}button:disabled{background:#b9c0ca;cursor:default}.message{padding:12px 14px;border-radius:6px;margin-bottom:20px;background:var(--error-bg)}.message .help{color:var(--muted);font-size:.92rem;margin:6px 0 0}.notice{padding:12px 14px;border-radius:6px;background:var(--warn-bg);margin-bottom:20px}.log{list-style:none;padding:0;margin:0;border:1px solid var(--line);border-radius:6px;background:#fff}.log li{padding:12px 14px;border-bottom:1px solid #eef1f5}.log li:last-child{border-bottom:none}.log time{display:block;color:var(--muted);font-size:.82rem;margin-top:3px}.log li.error{background:var(--error-bg)}dl.summary{display:grid;grid-template-columns:max-content 1fr;grid-gap:4px 16px;gap:4px 16px;margin:0 0 24px}dl.summary dt{color:var(--muted)}dl.summary dd{margin:0}.scenes{margin-top:32px}.draft-note{color:var(--muted);margin:0 0 16px}.scene-list{list-style:none;padding:0;margin:0;counter-reset:scene}.scene{border:1px solid var(--line);border-radius:6px;background:#fff;padding:14px 16px;margin-bottom:12px}.scene header{display:flex;gap:10px;align-items:baseline;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #eef1f5}.scene .scene-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;font-weight:600;color:var(--accent)}.scene .purpose{color:var(--muted);font-size:.92rem}.scene dl{display:grid;grid-template-columns:max-content 1fr;grid-gap:6px 14px;gap:6px 14px;margin:0}.scene dt{color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;padding-top:2px}.scene dd{margin:0}.scene dd.narration{font-weight:500}.doc-flags,.flags{list-style:none;padding:0;margin:12px 0 0}.doc-flags{margin:0 0 16px}.doc-flags li,.flags li{padding:8px 10px;border-radius:4px;font-size:.9rem;margin-bottom:6px;background:var(--warn-bg)}.doc-flags li.error,.flags li.error{background:var(--error-bg)}.capture-panel{margin-top:32px}.shot-list{list-style:none;padding:0;margin:0}.shot{border:1px solid var(--line);border-radius:6px;background:#fff;padding:14px 16px;margin-bottom:14px}.shot-frame{position:relative;line-height:0;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:#f2f4f7}.shot-frame img{width:100%;height:auto;display:block}.shot-frame .box{position:absolute;border:2px solid var(--accent);border-radius:3px;box-shadow:0 0 0 9999px rgba(0,0,0,.16);pointer-events:none}.shot-frame .box.offscreen{border-color:#c0392b;border-style:dashed;box-shadow:none}.shot-frame .box em{position:absolute;top:-18px;left:0;font:600 10px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;font-style:normal;background:var(--accent);color:#fff;padding:1px 5px;border-radius:2px;white-space:nowrap}.shot-frame .box.offscreen em{background:#c0392b}.shot-meta{display:grid;grid-template-columns:max-content 1fr;grid-gap:4px 14px;gap:4px 14px;margin:12px 0 0;font-size:.9rem}.shot-meta dt{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;padding-top:2px}.shot-meta dd{margin:0}.target-list{list-style:none;padding:0;margin:0}.target-list li.offscreen{color:#c0392b}.target-list code{font-size:.85em}.shot-meta .hit{color:var(--ok);font-weight:600}.shot-meta .miss{color:var(--muted)}.tip{background:#f4f7fb;border-left:3px solid var(--accent);padding:12px 14px;margin:0 0 24px;font-size:.94rem}.cards{list-style:none;padding:0;margin:0 0 100px}.card{border:1px solid var(--line);border-radius:6px;background:#fff;padding:16px;margin-bottom:16px}.card.left-out{opacity:.55;background:#fafbfc}.card.blocked{border-color:#c0392b}.card header{display:flex;gap:10px;align-items:baseline;margin-bottom:12px}.card-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;font-weight:600;color:var(--accent)}.card-purpose{color:var(--muted);font-size:.9rem;flex:1 1}.card-move{display:flex;gap:4px}.card-move button{background:#fff;color:var(--ink);border:1px solid var(--line);padding:2px 9px;font-size:.9rem}.card-move button:disabled{color:#c3c9d2;background:#fff}.left-out-note{margin:0 0 12px;font-size:.88rem;font-weight:600;color:var(--muted)}.card-frame{position:relative;line-height:0;border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-bottom:14px;max-width:420px}.card-frame img{width:100%;height:auto;display:block}.card-frame .box{position:absolute;border:2px solid var(--accent);border-radius:2px;pointer-events:none}.card-frame .box.offscreen{border-color:#c0392b;border-style:dashed}.card-body{display:grid;grid-template-columns:max-content 1fr;grid-gap:8px 14px;gap:8px 14px;margin:0}.card-body dt{color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;padding-top:8px}.card-body dd{margin:0}.card-body dd.on-screen{padding-top:6px;color:var(--muted)}.narration-edit{width:100%;font:inherit;font-weight:500;padding:8px;border:1px solid transparent;border-radius:4px;background:#f7f9fb;resize:vertical}.narration-edit:hover{border-color:var(--line)}.narration-edit:focus{border-color:var(--accent);background:#fff;outline:none}.callout-edit{width:100%;font:inherit;padding:6px 8px;border:1px solid transparent;border-radius:4px;background:#f7f9fb}.callout-edit:hover{border-color:var(--line)}.callout-edit:focus{border-color:var(--accent);background:#fff;outline:none}.card-annotations{list-style:none;padding:0;margin:14px 0 0}.card-annotations li{padding:9px 11px;border-radius:4px;font-size:.9rem;margin-bottom:6px;background:var(--warn-bg)}.card-annotations li.problem{background:var(--error-bg)}.card-message{margin:12px 0 0;padding:9px 11px;background:#f4f7fb;border-radius:4px;font-size:.9rem}.candidates{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:5px;background:#fbfcfd}.candidates-heading{margin:0 0 10px;font-weight:600;font-size:.92rem}.candidates ul{list-style:none;padding:0;margin:0 0 8px}.candidates li{margin-bottom:8px}.candidates li button{display:block;width:100%;text-align:left;background:#fff;color:var(--ink);border:1px solid var(--line);font-weight:400;padding:10px 12px}.candidates li button:hover{border-color:var(--accent)}.candidate-note{display:block;font-size:.82rem;color:var(--muted);margin-top:3px}button.link{background:none;color:var(--muted);padding:4px 0;text-decoration:underline;font-weight:400}.card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.card-actions button{background:#fff;color:var(--ink);border:1px solid var(--line);font-size:.88rem;padding:8px 12px}.card-actions button:hover:not(:disabled){border-color:var(--accent)}.card-actions button:disabled{color:#b9c0ca;background:#fff}.card-actions button.send{border-color:#c0392b;color:#c0392b}.bottom-bar{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);padding:12px 24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;box-shadow:0 -2px 12px rgba(0,0,0,.06)}.bottom-facts{display:flex;gap:18px;color:var(--muted);font-size:.9rem}.bottom-error{margin:0;color:#c0392b;font-size:.88rem;flex:1 1}.bottom-bar .approve{margin-left:auto}.go-review{margin:20px 0}.go-review a{display:inline-block;background:var(--accent);color:#fff;padding:11px 20px;border-radius:5px;font-weight:600;text-decoration:none}.preview{margin:22px 0 34px}.preview .player{display:block;width:100%;max-width:880px;aspect-ratio:16/9;background:#000;border-radius:6px}.preview .downloads{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 8px}.preview .button{display:inline-block;background:var(--accent);color:#fff;padding:11px 20px;border-radius:5px;font-weight:600;text-decoration:none}.preview .button+.button{background:transparent;color:var(--accent);border:1px solid var(--accent)}.preview .hint{color:#555;font-size:.92rem;margin:4px 0}.preview .again{margin:18px 0 0}.render-details{margin-top:22px;font-size:.9rem;color:#555}.render-details summary{cursor:pointer}.render-details dl{display:grid;grid-template-columns:max-content 1fr;grid-gap:4px 16px;gap:4px 16px;margin:10px 0 0}.render-details dt{font-weight:600}.render-details dd{margin:0}.working{display:flex;align-items:center;gap:10px;color:#444}.working .pulse{width:10px;height:10px;border-radius:50%;background:var(--accent);animation:vc-pulse 1.4s ease-in-out infinite;flex:none}@keyframes vc-pulse{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}@media (prefers-reduced-motion:reduce){.working .pulse{animation:none;opacity:.8}}