/*
 * Nightfall — мистический слой поверх лаконичной темы Midnight.
 * Подложка одна для сайта и входа. JS меняет только --tortuga-bg-url;
 * back.png остаётся запасным вариантом даже при выключенном JavaScript.
 * Эффекты статичные: нет мерцания, скримеров, звука и слоёв поверх фильма.
 */
body.nightfall {
  --canvas: #080d12;
  --surface: #121a21;
  --surface-raised: #202a33;
  --field: #0a1117;
  --line: #34404a;
  --text: #ebe8e2;
  --muted: #a9b2bb;
  --accent: #c9d7df;
  --primary: #8e353e;
  --bronze: #c9d7df;
  --parchment-dim: #a9b2bb;
  --panel: #121a21;
  --plyr-color-main: #ad4e56;
  --case-font: ui-monospace, "Cascadia Mono", Consolas, monospace;
  background-color: var(--canvas);
  background-image: linear-gradient(180deg, #060b115c, #060b11d9),
    var(--tortuga-bg-url, url('/back.png?v=1'));
  background-position: center, center;
  background-size: cover, cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
  isolation: isolate;
}

/* «Туман» рисуется градиентом ПОД интерфейсом. pointer-events:none
   гарантирует, что он не перехватит кнопки, перетаскивание или видео. */
body.nightfall::before {
  content: ""; display: block; position: fixed; inset: 0; z-index: -1;
  pointer-events: none;
  background: radial-gradient(ellipse at 15% 12%, #6f9aac17, transparent 52%),
    linear-gradient(114deg, transparent 34%, #b6dbea09 42%, transparent 54%);
}
.nightfall .brand h1 { font-weight: 550; letter-spacing: 1px; }
.nightfall .brand h1 .title-accent { color: #cf7378; }
.nightfall .brand-tagline, .nightfall .section-eyebrow {
  font-family: var(--case-font); letter-spacing: .08em;
  font-size: 10px; color: #afbdc7;
}
.nightfall .badge.host { color: #e6c8c5; background: #42282dea; border-color: #765258; }
.nightfall .badge { background: #10191feb; border-color: #43515c; color: #c0c9cf; }
.nightfall .view-controls button { background: #141e27ed; color: #cbd4da; border-color: #35444f; }
.nightfall .view-controls button:hover,
.nightfall .view-controls button[aria-pressed="true"] { background: #2e272e; border-color: #8d6268; }
.nightfall .rooms-column, .nightfall .sidebar, .nightfall .main-column {
  border-color: #72828c48; background: #111a22f5;
  box-shadow: 0 18px 50px #0005;
}
.nightfall .room-sidebar .room-choice.active,
.nightfall .room-sidebar .room-choice.active:hover { background: #252f37; border-color: #667882; }
.nightfall .room-choice.active .room-icon { background: #354650; color: #e0eaec; }
.nightfall .room-choice .room-icon { background: #233039; color: #bdcbd3; }
.nightfall .host-quick-bar { background: #101920; }
.nightfall .quick-label { font: 10px var(--case-font); letter-spacing: .1em; color: #a9b8c4; }
.nightfall .host-quick-bar #openFilmBtn { background: #8e353e; border-color: #ac5961; }
.nightfall .host-quick-bar button:hover { background: #34424c; border-color: #72818a; }
.nightfall .host-quick-bar #openFilmBtn:hover { background: #a4424d; }

/* Статичная сцена видна только когда фильм ещё не выбран. Во время
   воспроизведения .empty-video удаляется самим app.js. */
.nightfall .empty-video {
  position: relative;
  background: radial-gradient(ellipse at 50% -25%, #789da731, transparent 67%), #080e14;
}
.nightfall .empty-video::before {
  content: "TORTUGA / NIGHT SESSION";
  position: absolute; top: 22px; left: 24px;
  font: 9px var(--case-font); letter-spacing: .16em; color: #a2b3bf;
}
.nightfall .empty-video .empty-symbol {
  color: #d5dedd; font-size: 36px; text-shadow: 0 0 34px #b1d6db38;
}
.nightfall .empty-video h2 { font-weight: 500; letter-spacing: -.6px; }
.nightfall .empty-video button { background: #38262d; border-color: #79545c; color: #f0d9d6; }
.nightfall .plyr { --plyr-menu-background: #17232c; --plyr-menu-color: #ebe8e2; }
.nightfall .plyr__control:hover { background: #953e475c !important; }
.nightfall .msg { background: #1d2933; color: #e1e5e7; }
.nightfall .msg.admin { background: #30262d; }
.nightfall .msg-head strong { color: #c7d9df; }
.nightfall #voiceSection { background: #101820; }
.nightfall #voiceSection #btnJoinVoice { background: #28353e; border-color: #4d636f; color: #dfebed; }
.nightfall .pinned-section { background: #1a252e; }

/* Пульт похож на аккуратное досье, но оба поля, действия и ID остаются
   прежними. Ни фоновая текстура, ни декоративный угол не перекрывают ввод. */
.nightfall .host-dialog {
  background: linear-gradient(115deg, #19252e, #11191f 68%);
  border-color: #61717c; box-shadow: 0 30px 100px #000b;
}
.nightfall .host-dialog::backdrop { background: #03090ddd; }
.nightfall .host-dialog-heading small { font: 10px var(--case-font); letter-spacing: .06em; color: #b6c5cc; }
.nightfall .host-tabs { background: #0b131a; border-color: #35434e; }
.nightfall .host-tabs button[aria-selected="true"] { background: #34434f; }
.nightfall .source-composer { background: #18242df5; border-color: #465962; border-left: 2px solid #98565d; }
.nightfall .source-badge { color: #dcbec0; border-color: #6e4952; background: #3b252c; }
.nightfall .source-step { color: #d2dde2; background: #2e434e; }
.nightfall .source-heading h3 { font-weight: 500; letter-spacing: .01em; }
.nightfall .host-pane input:not([type="checkbox"]) { background: #0b141b; border-color: #485a67; }
.nightfall .host-pane .room-submit { background: #8e353e; border-color: #aa5960; }
.nightfall .source-actions .secondary-action { background: #283640; border-color: #526774; color: #e3e9ea; }
.nightfall .source-actions .secondary-action:hover { background: #374a55; }
.nightfall .source-result { color: #c3d5df; }
.nightfall .source-help { border-color: #354b59; }

/* Фон приветствия заменяется ТЕМ ЖЕ именем файла из appearance.json.
   Непрозрачность карточки важнее эффекта: текст читается и на светлом фото. */
.nightfall #nicknameOverlay {
  background-color: #080d12;
  background-image: linear-gradient(90deg, #07101942, #05090e69),
    var(--tortuga-bg-url, url('/back.png?v=1'));
  background-position: center; background-size: cover; background-repeat: no-repeat;
}
.nightfall .entry-brand > svg { stroke: #c2d6dd; }
.nightfall .entry-brand > span { font-weight: 500; letter-spacing: .05em; }
.nightfall .entry-brand small { color: #bac9d1; font-family: var(--case-font); font-size: 10px; }
.nightfall #loginForm {
  position: relative; overflow: hidden;
  background: linear-gradient(110deg, #101b23f7, #121a21fa);
  border: 1px solid #788b9466;
  box-shadow: 0 30px 90px #000b, inset 0 1px #d7e7e714;
}
.nightfall #loginForm::before {
  content: ""; pointer-events: none; position: absolute;
  top: 0; left: 44px; width: 88px; height: 2px; background: #bb646b;
  box-shadow: 0 0 22px #b458635c;
}
.nightfall .entry-kicker { font: 10px/1.7 var(--case-font); letter-spacing: .16em; text-transform: uppercase; color: #c6d2d7; }
.nightfall #loginForm h2 { font-weight: 500; font-size: clamp(34px, 4.1vw, 49px); line-height: 1.18; letter-spacing: -1.5px; }
.nightfall #loginForm h2 em { font-weight: 500; color: #e6baba; text-shadow: 0 0 35px #ad52651a; }
.nightfall #loginForm p { color: #b3c0c9; }
.nightfall .entry-features span { font-family: var(--case-font); font-size: 9px; letter-spacing: .03em; border-color: #4e616b; color: #bfcdd3; }
.nightfall .entry-form { border-color: #3d505b; }
.nightfall .entry-form-caption { font-weight: 500; color: #e9e4de; }
.nightfall #loginForm input:not([type="radio"]) { background: #0a131a; border-color: #4a5e6b; }
.nightfall #loginForm input:focus { border-color: #b0c7d3; }
.nightfall #loginForm .entry-role-card { background: #101a22; border-color: #42545f; color: #b1bdc6; }
.nightfall #loginForm .entry-role-choice input:checked + .entry-role-card { background: #2c3b43; border-color: #94aeb8; color: #e5eeee; }
.nightfall #loginForm #loginSubmit { background: #8e353e; border: 1px solid #bb7075; color: #fff2ef; }
.nightfall #loginForm #loginSubmit:hover { background: #a6414c; }
.nightfall .entry-footer { color: #c5cdd1; font-family: var(--case-font); letter-spacing: .08em; font-size: 10px; }
.nightfall .entry-footer::before { content: "— "; color: #c3787c; }
.nightfall .entry-footer::after { content: " —"; color: #c3787c; }

/* В кинорежиме вокруг фильма темно и спокойно. Сам video и слой сабов
   не получают фильтры/маски/зерно ни в одном режиме. */
body.nightfall.cinema-mode { background: #05080b; }
body.nightfall.cinema-mode::before { display: none; }
.nightfall.light-effects { background-attachment: scroll; }
.nightfall.light-effects::before { display: none; }
.nightfall.light-effects .rooms-column, .nightfall.light-effects .sidebar,
.nightfall.light-effects .main-column, .nightfall.light-effects #loginForm { box-shadow: none; }
@media (max-width: 1000px) {
  body.nightfall { background-attachment: scroll; }
  .nightfall .rooms-column, .nightfall .sidebar { background: #121a21; }
}
@media (max-width: 620px) {
  .nightfall #nicknameOverlay { background-position: center, 60% center; }
  .nightfall #loginForm h2 { font-size: 37px; letter-spacing: -1px; }
  .nightfall #loginForm::before { left: 24px; width: 60px; }
  .nightfall .source-form + .source-form { border-color: #354b59; }
  .nightfall .empty-video::before { left: 18px; top: 14px; font-size: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  body.nightfall { background-attachment: scroll; }
}
