:root{
  color-scheme:dark;
  --bg:#02050d;
  --panel:rgba(3,9,18,0.72);
  --panel-border:rgba(255,255,255,0.1);
  --text:#f5fbff;
  --muted:#adc2d5;
  --accent:#54e2ff;
  --accent-2:#ff4d7a;
  --shadow:0 24px 80px rgba(0,0,0,0.5);
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden}
body{
  font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:
    radial-gradient(circle at top, rgba(84,226,255,0.12), transparent 32%),
    radial-gradient(circle at bottom, rgba(255,77,122,0.08), transparent 28%),
    var(--bg);
  color:var(--text);
}
.shell{
  width:100%;
  height:100%;
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  align-items:center;
  justify-content:center;
}
.device-frame{
  position:relative;
  width:100%;
  height:100%;
  background:#000;
  overflow:hidden;
}
.stage{
  position:relative;
  width:100%;
  height:100%;
  min-height:100vh;
  min-height:100dvh;
  overflow:hidden;
  background:#000;
}
.scene-video,.fallback-poster{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  background:#000;
}
.fallback-poster{z-index:0}
.scene-video{z-index:1}
.fallback-poster.hidden,.hidden{display:none}
.vignette{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(2,4,10,0.26), rgba(1,3,8,0.78)),
    radial-gradient(circle at 20% 16%, rgba(84,226,255,0.18), transparent 24%),
    radial-gradient(circle at 82% 14%, rgba(255,77,122,0.14), transparent 22%);
  pointer-events:none;
}
.hud,
.caption-panel,
.choice-panel{
  position:relative;
  z-index:2;
}
.hud{
  position:absolute;
  left:max(14px, env(safe-area-inset-left));
  right:max(14px, env(safe-area-inset-right));
  top:max(14px, env(safe-area-inset-top));
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.hud-actions{
  display:flex;
  align-items:center;
  gap:8px;
}
.pill,
.pill-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid var(--panel-border);
  background:rgba(4,10,20,0.55);
  backdrop-filter:blur(14px);
  color:var(--text);
  font:inherit;
}
.pill{font-size:12px;color:var(--accent)}
.pill-button{cursor:pointer}
.caption-panel{
  position:absolute;
  left:max(12px, env(safe-area-inset-left));
  right:max(12px, env(safe-area-inset-right));
  bottom:max(150px, calc(env(safe-area-inset-bottom) + 128px));
  padding:12px 14px;
  border-radius:24px;
  border:1px solid var(--panel-border);
  background:rgba(3,9,18,0.52);
  backdrop-filter:blur(18px);
  box-shadow:var(--shadow);
}
.speaker{
  margin:0;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:0.16em;
  color:var(--accent);
}
.dialogue-text{
  margin:8px 0 0;
  font-size:clamp(14px, 3.9vw, 17px);
  line-height:1.48;
  color:var(--text);
}
.choice-panel{
  position:absolute;
  left:max(12px, env(safe-area-inset-left));
  right:max(12px, env(safe-area-inset-right));
  bottom:max(12px, env(safe-area-inset-bottom));
  padding:16px;
  border-radius:28px;
  border:1px solid var(--panel-border);
  background:var(--panel);
  backdrop-filter:blur(18px);
  box-shadow:var(--shadow);
}
.choices{
  display:grid;
  gap:10px;
}
.choice,
.continue{
  width:100%;
  appearance:none;
  border:0;
  border-radius:18px;
  padding:14px 16px;
  font:inherit;
  cursor:pointer;
}
.choice{
  text-align:left;
  border:1px solid rgba(255,255,255,0.08);
  background:rgba(255,255,255,0.06);
  color:var(--text);
}
.continue{
  margin-top:12px;
  background:linear-gradient(135deg, var(--accent), var(--accent-2));
  color:#04111b;
  font-weight:800;
}
@media (min-width: 540px){
  .device-frame{
    width:min(430px, calc(100vw - 40px));
    height:min(932px, calc(100dvh - 40px));
    border-radius:34px;
    border:1px solid rgba(255,255,255,0.08);
    box-shadow:0 34px 110px rgba(0,0,0,0.5);
  }
  .stage{
    min-height:0;
    height:100%;
  }
}
@media (max-width: 760px){
  .caption-panel{bottom:max(168px, calc(env(safe-area-inset-bottom) + 144px))}
}
