/* A single scene briefing, with optional character monologues below it. */
.game-view .scene-narrator {
  padding: 22px 24px 0;
  border: 1px solid #756044;
  border-radius: 18px;
  background: linear-gradient(120deg, #27222a, #1b1b30);
  color: #fff2dc;
  margin-bottom: 24px;
}
.narrator-topline { display: flex; align-items: center; gap: 15px; }
.narrator-emblem { display: grid; place-items: center; flex: 0 0 48px; height: 48px; border: 1px solid #b29158; border-radius: 50%; color: #f2cf89; font-size: 28px; background: #382e2d; }
.narrator-heading { flex: 1; min-width: 0; }
.narrator-heading > span { color: #e2c58f; font-size: 11px; letter-spacing: .06em; }
.game-view .narrator-heading h2 { margin: 5px 0 6px; color: #fff4e3; font-size: 22px; line-height: 1.3; letter-spacing: 0; font-weight: 650; }
.narrator-heading p { margin: 0; color: #c9c3d2; font-size: 12px; line-height: 1.6; }
.narrator-language { display: grid; gap: 7px; color: #d7c7a9; font-size: 10px; }
.narrator-language select { min-height: 38px; padding: 7px 12px; border: 1px solid #827052; border-radius: 9px; background: #171827; color: #fff4e3; font: 12px var(--sans); }
.narrator-settings { display: flex; align-items: end; gap: 9px; }
.narrator-settings .narrator-language { min-width: 116px; }
.narrator-settings .narrator-language:last-child { min-width: 132px; }
.narrator-settings small { display: none; }
.narrator-player { display: flex; align-items: center; gap: 15px; margin: 23px 0 20px; }
.narrator-play { display: inline-flex; justify-content: center; align-items: center; gap: 9px; flex: none; min-height: 46px; min-width: 148px; padding: 10px 18px; border-radius: 11px; background: linear-gradient(110deg, #f5d993, #dfac58); color: #342312; font-size: 13px; font-weight: 750; }
.narrator-play:hover:not(:disabled) { background: #ffe5a9; }
.narrator-play:disabled { background: #4b454b; color: #dbd3df; cursor: not-allowed; }
.narrator-track { flex: 1; min-width: 60px; display: grid; gap: 7px; }
.narrator-track > span { color: #d7cddd; font-size: 11px; line-height: 1.4; }
.narrator-track > .is-error { color: #ffd0a1; }
.narrator-track input { width: 100%; height: 18px; margin: 0; accent-color: #f1cd80; cursor: pointer; }
.narrator-track input:disabled { cursor: default; }
.narrator-time { color: #e6d2ac; font: 10px var(--mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.narrator-stop { padding: 8px 2px; min-height: 44px; background: transparent; color: #e6cfa2; font-size: 11px; white-space: nowrap; }
.narrator-stop:disabled { color: #9690a0; cursor: default; }
.narrator-cast { border-top: 1px solid #49404a; }
.narrator-cast > summary { display: flex; align-items: center; gap: 12px; padding: 15px 0; cursor: pointer; list-style: none; color: #eee1c9; font-size: 12px; }
.narrator-cast > summary::-webkit-details-marker { display: none; }
.narrator-cast > summary::after { content: "+"; margin-left: auto; font-size: 19px; color: #e3c88f; }
.narrator-cast[open] > summary::after { content: "−"; }
.narrator-cast > summary small { color: #b9b0c2; font-size: 10px; }
.narrator-cast .voice-character-grid { margin: 0 0 18px; }
.scene-narrator .voice-character-card { min-height: 66px; }
.scene-narrator .voice-character-card small { color: #c5bbc9; }
.scene-narrator .voice-character-card:disabled { opacity: .6; cursor: default; transform: none; }
.scene-narrator :focus-visible { outline: 2px solid #f6d993; outline-offset: 4px; }
.investigation-route { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.investigation-route > div { display: flex; align-items: center; gap: 10px; font-size: 12px; color: #573822; }
.investigation-route b { font: 12px var(--mono); color: #87542b; }
.game-view .timeline-item { grid-template-columns: 70px minmax(0, 1fr); }
@media (max-width: 1050px) {
  .narrator-player { flex-wrap: wrap; gap: 10px; }
  .narrator-time { margin-left: auto; }
  .narrator-track { min-width: 120px; }
  .narrator-cast > summary small { display: none; }
}
@media (max-width: 760px) {
  .game-view .scene-narrator { padding: 17px 16px 0; border-radius: 14px; }
  .narrator-topline { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 12px; align-items: start; }
  .narrator-emblem { width: 36px; height: 36px; font-size: 23px; }
  .game-view .narrator-heading h2 { font-size: 20px; }
  .narrator-settings { grid-column: 1 / -1; display: grid; gap: 10px; }
  .narrator-language { display: flex; align-items: center; justify-content: space-between; }
  .narrator-settings .narrator-language, .narrator-settings .narrator-language:last-child { min-width: 0; }
  .narrator-settings small { display: block; grid-column: 1 / -1; color: #b9b0c2; line-height: 1.35; }
  .narrator-language select { min-width: 120px; min-height: 44px; }
  .narrator-player { display: grid; grid-template-columns: minmax(0, 1fr) auto; margin-top: 15px; gap: 9px 12px; }
  .narrator-play { grid-column: 1 / -1; width: 100%; min-height: 48px; }
  .narrator-track { grid-column: 1 / -1; margin-top: 4px; }
  .narrator-track input { height: 28px; }
  .narrator-time { margin: 0; }
  .narrator-stop { text-align: right; }
  .narrator-cast .voice-character-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .investigation-route { grid-template-columns: 1fr; gap: 14px; }
  .game-view .timeline-item { grid-template-columns: 52px minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .scene-narrator * { transition: none; } }
