:root{
  --bg1:#160a2e; --bg2:#2b1152; --bg3:#0d0619;
  --glass:rgba(255,255,255,.07); --glass2:rgba(255,255,255,.12);
  --line:rgba(255,255,255,.16); --txt:#f5f1ff; --dim:#cfc4ee;
  --acc1:#8b5cf6; --acc2:#d946ef; --acc3:#22d3ee; --ok:#34d399; --no:#fb7185; --warn:#fbbf24;
}
*{box-sizing:border-box}
body{margin:0;font-family:"Segoe UI",system-ui,-apple-system,sans-serif;color:var(--txt);
  background:radial-gradient(1200px 600px at 15% -5%,#4c1d95 0%,transparent 55%),
             radial-gradient(1000px 700px at 90% 10%,#701a75 0%,transparent 50%),
             linear-gradient(160deg,var(--bg2),var(--bg1) 45%,var(--bg3));
  min-height:100vh;background-attachment:fixed}
.hero{padding:44px 20px 10px;text-align:center}
.logo{font-size:clamp(30px,6vw,52px);font-weight:800;letter-spacing:2px;
  background:linear-gradient(90deg,#c4b5fd,#f0abfc,#67e8f9);-webkit-background-clip:text;background-clip:text;color:transparent}
.logo span{font-weight:300}
.tagline{color:var(--dim);font-size:clamp(14px,2.4vw,18px);margin:8px auto 4px;max-width:760px}
.honest{color:#fff;font-weight:600;font-size:14px}
main{max-width:1120px;margin:0 auto;padding:16px}
.card{background:var(--glass);border:1px solid var(--line);border-radius:18px;padding:22px;margin:18px 0;
  backdrop-filter:blur(14px);box-shadow:0 18px 40px rgba(0,0,0,.35)}
.card h2{margin-top:0;font-size:clamp(19px,3vw,24px)}
.card h3{color:#e9d5ff}
label{display:block;margin:10px 0;font-size:14px;color:var(--dim)}
input,select,textarea{width:100%;margin-top:6px;padding:11px 12px;border-radius:10px;border:1px solid var(--line);
  background:rgba(13,6,25,.65);color:var(--txt);font-size:15px}
textarea{resize:vertical}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.btn{border:0;cursor:pointer;color:#fff;font-weight:700;padding:11px 18px;border-radius:999px;font-size:15px;
  background:linear-gradient(90deg,var(--acc1),var(--acc2));box-shadow:0 8px 22px rgba(168,85,247,.4);transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(217,70,239,.45)}
.btn.ghost{background:transparent;border:1px solid var(--line);box-shadow:none}
.btn.big{font-size:17px;padding:14px 26px;margin-top:10px}
.filebtn{display:inline-block;cursor:pointer;color:#fff;font-weight:700;padding:11px 18px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid var(--line)}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0}
.note{color:var(--dim);font-size:13.5px;line-height:1.55}
.hidden{display:none}
.matrix{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.matrix.three{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.warn{color:var(--warn)}
.matrix ul{list-style:none;padding:0;margin:0}
.matrix li{padding:9px 12px;margin:7px 0;border-radius:10px;background:rgba(0,0,0,.25);border:1px solid var(--line);font-size:13.5px;line-height:1.5}
.ok{color:var(--ok)} .no{color:var(--no)}
.logline{font-style:italic;color:#e9d5ff;font-size:16px;line-height:1.6}
.chars{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.char{background:rgba(0,0,0,.3);border:1px solid var(--line);border-radius:14px;padding:14px;font-size:13.5px;line-height:1.55}
.char b{color:#f0abfc}
.scene{background:rgba(0,0,0,.28);border:1px solid var(--line);border-radius:14px;padding:16px;margin:14px 0}
.scene h4{margin:0 0 6px;color:#fff;font-size:16px}
.scene pre{white-space:pre-wrap;background:rgba(0,0,0,.35);padding:10px;border-radius:10px;font-size:12.5px;line-height:1.55;color:var(--dim);overflow-x:auto}
.dlg{font-size:14px;line-height:1.6}.dlg .emo{color:var(--acc3);font-size:12px;text-transform:uppercase;letter-spacing:.5px}
.shot{border-top:1px dashed var(--line);padding:9px 0;font-size:13px;line-height:1.55;color:var(--dim)}
.shot b{color:#fff}
.prompt{color:#a5f3fc;font-size:12.5px}
.chip{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700;margin-left:8px;vertical-align:middle}
.chip.ready{background:rgba(52,211,153,.2);color:var(--ok);border:1px solid var(--ok)}
.chip.need{background:rgba(251,191,36,.15);color:var(--warn);border:1px solid var(--warn)}
.chip.done{background:rgba(34,211,238,.18);color:var(--acc3);border:1px solid var(--acc3)}
/* timeline */
.tl-scene{border:1px solid var(--line);border-radius:14px;margin:12px 0;overflow:hidden;background:rgba(0,0,0,.25)}
.tl-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 14px;background:rgba(255,255,255,.05);font-weight:700}
.tl-head .sp{flex:1}
.tl-head button{background:rgba(255,255,255,.12);color:#fff;border:1px solid var(--line);border-radius:8px;padding:4px 10px;cursor:pointer}
.track{display:flex;gap:6px;align-items:flex-start;padding:8px 14px;border-top:1px solid rgba(255,255,255,.06);font-size:12.5px}
.track .tname{flex:0 0 86px;color:#e9d5ff;font-weight:700;padding-top:4px}
.track .cells{display:flex;flex-wrap:wrap;gap:6px;flex:1}
.cell{background:rgba(139,92,246,.18);border:1px solid rgba(139,92,246,.5);border-radius:8px;padding:5px 9px;line-height:1.45}
.cell.video{background:rgba(217,70,239,.15);border-color:rgba(217,70,239,.55)}
.cell.attached{background:rgba(52,211,153,.16);border-color:var(--ok)}
.cell small{display:block;color:var(--dim)}
.cell input[type=file]{font-size:11px;margin-top:4px}
.warnbox{background:rgba(251,113,133,.14);border:1px solid var(--no);color:#fecdd3;border-radius:10px;padding:10px 14px;margin:10px 0;font-size:13.5px;line-height:1.55}
.okbox{background:rgba(52,211,153,.12);border:1px solid var(--ok);color:#d1fae5;border-radius:10px;padding:10px 14px;margin:10px 0;font-size:13.5px;line-height:1.55}
table.prov{width:100%;border-collapse:collapse;font-size:14px}
table.prov td,table.prov th{border-bottom:1px solid var(--line);padding:9px 8px;text-align:left;vertical-align:top}
.badge{padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:800;white-space:nowrap}
.badge.ok{background:rgba(52,211,153,.2);color:var(--ok)} .badge.no{background:rgba(251,113,133,.18);color:var(--no)} .badge.warn{background:rgba(251,191,36,.16);color:var(--warn)}
footer{text-align:center;color:var(--dim);padding:26px 12px 40px;font-size:13px}
video{max-width:100%;border-radius:12px;margin-top:10px}
@media (max-width:640px){ .track{flex-direction:column} .track .tname{flex:none} .card{padding:16px} }

/* online edition additions */
.online-banner{border-color:rgba(34,211,238,.5)}
.online-banner p{line-height:1.6;color:var(--dim);font-size:14.5px}
.online-banner b{color:#fff}
.operated{margin-top:18px;border-top:1px dashed var(--line);padding-top:14px}
.operated ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:7px 18px}
.operated li{padding:9px 12px;border-radius:10px;background:rgba(34,211,238,.07);border:1px solid rgba(34,211,238,.35);font-size:13.5px;line-height:1.5}
