/* Nielsenhaven Welcome Tour — prototype renderer styles */
:root{
  --bg:#0e1116; --panel:#161b22; --ink:#f4f1ea; --muted:#9aa4b2;
  --accent:#c9a227; --accent-2:#6ea8fe; --radius:14px;
  --maxw:1000px; --frameH:562px; /* 1000x562 ~ 16:9 */
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
  background:radial-gradient(1200px 700px at 50% -10%, #1a2230, var(--bg)) fixed;
  color:var(--ink); font:16px/1.5 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  display:flex; align-items:center; justify-content:center; min-height:100%; padding:24px;
}
.player{width:100%; max-width:var(--maxw)}
.stage{
  position:relative; width:100%; aspect-ratio:16/9; background:#000;
  border-radius:var(--radius); overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.55);
}

/* placeholder frame + ken burns layer */
.frame{position:absolute; inset:0; overflow:hidden}
.frame__media{
  position:absolute; inset:-2%; will-change:transform; backface-visibility:hidden; transform-origin:center;
  display:flex; align-items:center; justify-content:center; text-align:center;
}
.frame__video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.frame__fade{position:absolute; inset:-2%; z-index:4; pointer-events:none; opacity:1; transition:opacity .55s ease; background-repeat:no-repeat; will-change:opacity}
.frame__label{padding:0 8%}
.frame__label .t{font-size:30px; font-weight:700; letter-spacing:.2px; text-shadow:0 2px 18px rgba(0,0,0,.5)}
.frame__label .ph{margin-top:10px; font-size:12px; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,.7)}
.frame::after{content:""; position:absolute; inset:0; background:none}

/* callouts */
.callouts{position:absolute; inset:0; pointer-events:none}
.callout{
  position:absolute; border:2px solid var(--accent); border-radius:10px;
  background:rgba(201,162,39,.12); box-shadow:0 0 0 2px rgba(0,0,0,.25), 0 8px 24px rgba(0,0,0,.35);
  display:flex; align-items:flex-end; opacity:0; transform:scale(.96); transition:opacity .4s ease, transform .4s ease;
}
.callout.show{opacity:1; transform:scale(1)}
.callout span{
  position:absolute; left:50%; bottom:calc(100% + 6px); transform:translateX(-50%);
  white-space:nowrap; background:var(--accent); color:#1a1400; font-weight:700; font-size:13px;
  padding:3px 9px; border-radius:6px;
}

/* caption / narration band */
.caption{
  position:absolute; left:0; right:0; bottom:0; padding:22px 26px 30px;
  background:linear-gradient(180deg,transparent 58%, rgba(0,0,0,.26));
}
.caption .scene-title{font-size:13px; letter-spacing:1.5px; text-transform:uppercase; color:var(--accent); margin-bottom:6px}
.caption.cap-top-right{left:auto; right:18px; bottom:auto; top:12px; padding:6px 12px; max-width:52%; text-align:right; background:none}
.caption.cap-top-right .narr{font-size:17px; max-width:100%}
.caption.cap-top-right .scene-title{text-align:right}
.caption.cap-none{display:none}
.caption .narr{font-size:20px; line-height:1.45; max-width:88%; text-shadow:0 1px 2px rgba(0,0,0,.92), 0 2px 12px rgba(0,0,0,.8)}
.player.cc-off .caption .narr{display:none}

/* poster */
.poster{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px;
  background:radial-gradient(900px 500px at 50% 30%, #243049, #0c1018); text-align:center; padding:24px}
.poster h1{margin:0; font-size:44px; letter-spacing:.5px}
.poster p{margin:0; color:var(--muted); font-size:18px}
.btn{
  appearance:none; border:0; cursor:pointer; font-weight:700; border-radius:999px;
  padding:14px 26px; font-size:17px; background:var(--accent); color:#1a1400;
  box-shadow:0 10px 30px rgba(201,162,39,.35); transition:transform .12s ease, filter .12s ease;
}
.btn:hover{transform:translateY(-1px); filter:brightness(1.05)}
.btn.ghost{background:transparent; color:var(--ink); box-shadow:none; border:1px solid rgba(255,255,255,.25)}
.btn.small{padding:9px 14px; font-size:14px}

/* CTA on final scene */
.cta{position:absolute; left:50%; top:80%; transform:translate(-50%,-50%); display:flex; justify-content:center; opacity:0; transition:opacity .6s ease; pointer-events:none}
.callout-text{position:absolute; transform:translate(-50%,-50%); color:#fff; font-weight:800; letter-spacing:.5px; text-align:center; white-space:nowrap; line-height:1; text-shadow:0 2px 18px rgba(0,0,0,.6), 0 1px 4px rgba(0,0,0,.55); opacity:0; transition:opacity .6s ease; pointer-events:none}
.callout-text.show{opacity:1}
.cta.show{opacity:1; pointer-events:auto}

/* controls */
.controls{display:flex; align-items:center; gap:10px; margin-top:14px; flex-wrap:wrap}
.progress{display:flex; gap:4px; flex:1; min-width:220px}
.seg{flex:1; height:6px; border-radius:6px; background:rgba(255,255,255,.16); overflow:hidden; cursor:pointer}
.seg .fill{display:block; height:100%; width:0; background:var(--accent)}
.seg.done .fill{width:100%}
.time{color:var(--muted); font-variant-numeric:tabular-nums; font-size:13px; min-width:84px; text-align:right}
.spacer{flex:1}
.hint{color:var(--muted); font-size:12.5px; margin-top:10px; text-align:center}
.badge{display:inline-block; font-size:11px; letter-spacing:1px; text-transform:uppercase; color:#1a1400; background:var(--accent-2); padding:2px 8px; border-radius:6px; margin-bottom:10px}
