/* Темы игры, раунд 5 (29.09.2026): фирменные приёмы каждой темы из настольной
   RPG Studio (F:\RPG_Studio\ui.html) на ВСЕХ экранах браузерной игры — Партии,
   Герои, Миры, Таверна, Магазин, Кабинет, партия. Раньше форму темы красили
   только сюжетные карточки хода и кнопка отправки (igra.css, раздел «Темы»);
   заголовки экранов, обычные кнопки .btn, поля, «вывески» и атмосфера были
   везде одинаковыми — отсюда «скучно».

   Каждый блок ниже подписан: откуда взят приём (ui.html:строка) и что именно.
   Ничего не выдумано — только то, что реально есть в RPG_Studio; где это
   расширено на другой экран, сказано отдельно. Слои атмосферы стоят на
   html::before/::after и body::before/::after (pointer-events:none), задники
   (.theme-scene-render) не трогаются. prefers-reduced-motion гасит движение,
   но не сам рисунок (статичная развёртка/виньетка остаются).

   Подключается ПОСЛЕ igra.css (index.html) — правит его правила по порядку. */

/* ── 0. Выравнивание экрана «Партии» на ПК ─────────────────────────────────
   Заголовок «Партии» стоял в узкой (720px) колонке по центру, а «Герои»,
   «Миры», «Новая партия» — в широкой (960px) у левого края: на широком экране
   ПК заголовок «уезжал» вправо от общей колонки (у Терминала с крупным
   шрифтом заметнее всего). Список — та же широкая колонка, что у соседей. */
#screen-list { width: min(960px, 100%); }

/* ── 1. Общее для сюжетных тем: читаемость заголовков поверх задника ───────
   Заголовок и подпись экрана лежат прямо на 3D-задниках (у «Летописи» золотой
   заголовок на светлом небе, у киберпанка серая подпись на неоне вообще не
   читались). В ui.html это решено «вывеской» #chat-empty h2 / p (ui.html:1052-1103);
   форма вывески — у каждой темы своя (ниже), тут — общая основа. */
html[data-story="1"] .igra-shell h1.display:not(.igra-title) {
  display: inline-block; max-width: 100%; position: relative;
  padding: 6px 22px 8px; border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--bg) 62%, transparent);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  text-shadow: 0 2px 24px rgba(0,0,0,.25);           /* ui.html:1405 */
}
html[data-story="1"] .igra-shell :where(.igra-hint, h2.h3, .igra-field > label, .igra-cards-empty):where(:not(.igra-card *)):where(:not(.igra-empty-card *)) {
  background: color-mix(in srgb, var(--bg) 60%, transparent);
  border-radius: var(--radius-sm); padding: 4px 12px;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
html[data-story="1"] .igra-shell :where(.igra-hint, h2.h3, .igra-field > label):where(:not(.igra-card *)):where(:not(.igra-empty-card *)) { display: table; max-width: 100%; }
html[data-story="1"] .igra-shell > .igra-hint { display: table; }
/* Пустые состояния другого агента (.igra-empty-*) не трогаем. */

@media (max-width: 600px) {
  html[data-story="1"] .igra-shell h1.display:not(.igra-title) { padding: 4px 14px 6px; }
}

/* Основная кнопка сюжетных тем — двухцветный градиент палитры вместо «золотого с жёлтым
   концом» общего .btn-primary (третий цвет #d99a3d пачкал зелёный/розовый/циан). */
html[data-story="1"] .btn-primary { background: linear-gradient(135deg, var(--gold-2), var(--gold)); }

/* ── 2. 📟 Терминал (crt) ───────────────────────────────────────────────────
   ui.html:10926-10940 палитра; 10995-11007 #xt-atmo (развёртка + мерцание);
   12462-12520 ФИЧА 11 (колба ЭЛТ, прогрев, приглашение «>» с блоком-курсором);
   15990-16003 движение сцены (курсор 1.06s, срыв строчной 17s, полоса синхронизации);
   11057 голос темы «LOADING…». */
html[data-theme="crt"] .stars { display: none; }        /* у трубки нет звёзд */
html[data-theme="crt"] .igra-main::before { display: none; }  /* старая статичная развёртка (igra.css) заменена слоем ниже */

/* Развёртка: строчки по 1px через 3px + дрожание яркости (xtFlicker, ui.html:11003-11006).
   Поверх ВСЕГО содержимого, мышь не перехватывает. */
html[data-theme="crt"] body::after {
  content: ''; position: fixed; inset: 0; z-index: 9000; pointer-events: none;
  background: repeating-linear-gradient(0deg, rgba(0,0,0,.17) 0, rgba(0,0,0,.17) 1px, transparent 1px, transparent 3px);
  animation: crt-flicker 4.5s steps(60) infinite;
}
@keyframes crt-flicker { 0%, 100% { opacity: .85; } 47% { opacity: .78; } 48% { opacity: .95; } }
/* Колба: виньетка по краям, блик по стеклу (ui.html:12470-12485). Мягче оригинала
   (там 90px/.85 на всё окно): у нас поверх текста, читаемость важнее. */
html[data-theme="crt"] body::before {
  content: ''; position: fixed; inset: 0; z-index: 8999; pointer-events: none;
  border-radius: 22px / 34px;
  box-shadow: inset 0 0 70px rgba(0,0,0,.7), inset 0 0 22px rgba(0,40,14,.6), inset 0 0 5px rgba(60,255,140,.10);
  background:
    linear-gradient(180deg, rgba(190,255,215,.055), transparent 32%),
    radial-gradient(118% 108% at 50% 48%, transparent 56%, rgba(0,0,0,.45));
}
/* Полоса синхронизации плывёт сверху вниз — «медленно и очень слабо» (ui.html:15998,
   градиент crtRoll 15968). Период подобран здесь: в исходнике задан только вид полосы. */
html[data-theme="crt"]::before {
  content: ''; position: fixed; left: 0; right: 0; top: 0; height: 16vh; z-index: 9001; pointer-events: none;
  background: linear-gradient(180deg, rgba(157,255,196,0), rgba(157,255,196,.055) 50%, rgba(157,255,196,0));
  animation: crt-roll 9s linear infinite;
}
@keyframes crt-roll { from { transform: translateY(-20vh); } to { transform: translateY(112vh); } }
/* Срыв строчной: редкая яркая полоса дёргается вбок двумя рывками (ui.html:15990-15995, 17s). */
html[data-theme="crt"]::after {
  content: ''; position: fixed; left: 0; right: 0; top: 36%; height: 7px; z-index: 9001; pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(157,255,196,.28) 30%, rgba(223,247,232,.32) 50%, transparent 78%);
  opacity: 0; animation: crt-tear 17s steps(1, end) infinite;
}
@keyframes crt-tear {
  0%, 96% { transform: translateX(0); opacity: 0; }
  96.5% { transform: translateX(-14px); opacity: 1; }
  97% { transform: translateX(9px); opacity: 1; }
  97.6% { transform: translateX(-4px); opacity: 1; }
  98%, 100% { transform: translateX(0); opacity: 0; }
}

/* Прогрев при ВХОДЕ в тему (ui.html:12489-12500, js/themes.js → #crt-boot): чёрный кадр,
   через середину бежит светящаяся линия и «распахивается». */
#crt-boot { position: fixed; inset: 0; z-index: 9100; pointer-events: none; display: none; background: #000; }
#crt-boot.go { display: block; animation: crt-dark 620ms ease-out forwards; }
@keyframes crt-dark { 0% { opacity: 1; } 62% { opacity: .85; } 100% { opacity: 0; } }
#crt-boot i { position: absolute; left: 0; right: 0; top: 50%; height: 2px; transform: scaleX(0);
  background: linear-gradient(90deg, transparent, #b6ffcb, #eafff0, #b6ffcb, transparent);
  box-shadow: 0 0 22px rgba(120,255,170,.9); }
#crt-boot.go i { animation: crt-line 620ms cubic-bezier(.2,.8,.25,1) forwards; }
@keyframes crt-line {
  0% { transform: scaleX(0) scaleY(1); opacity: 0; }
  16%, 46% { transform: scaleX(1) scaleY(1); opacity: 1; }
  100% { transform: scaleX(1) scaleY(240); opacity: 0; }
}

/* Заголовки экранов: приглашение «>» и мигающий блок-курсор (ui.html:12505-12514, там — в
   поле ввода; на заголовки распространено, чтобы терминал был на каждом экране). */
html[data-theme="crt"] .igra-shell h1.display,
html[data-theme="crt"] .igra-games-panel-head h2 { text-shadow: 0 0 8px rgba(34,224,92,.45); }
html[data-theme="crt"] .igra-shell h1.display:not(.igra-title)::before {
  content: '>'; margin-right: .32em; opacity: .75; font-weight: 400;
}
html[data-theme="crt"] .igra-shell h1.display::after {
  content: ''; display: inline-block; width: .5em; height: .82em; margin-left: .2em; vertical-align: -.06em;
  background: var(--gold-2); box-shadow: 0 0 8px rgba(87,255,140,.7);
  animation: crt-blink 1.05s steps(1) infinite;
}
@keyframes crt-blink { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }
html[data-theme="crt"] .igra-shell h1.display { font-size: clamp(2rem, 6vw, 2.8rem); }
/* Подзаголовки и подписи светятся слабее (ui.html:11007 — text-shadow сообщений) */
html[data-theme="crt"] .igra-shell h2.h3, html[data-theme="crt"] .igra-field label,
html[data-theme="crt"] .igra-chat-item b, html[data-theme="crt"] .igra-pick b,
html[data-theme="crt"] .igra-lore-item b, html[data-theme="crt"] .tv-card-title {
  text-shadow: 0 0 6px rgba(34,224,92,.30);
}
/* Острые края и кромка люминофора у всех «плашек» (--r 2-4px, ui.html:10932) */
html[data-theme="crt"] .igra-chat-item, html[data-theme="crt"] .igra-pick, html[data-theme="crt"] .igra-lore-item,
html[data-theme="crt"] .igra-game-item, html[data-theme="crt"] .tv-card, html[data-theme="crt"] .theme-swatch,
html[data-theme="crt"] .tv-seg, html[data-theme="crt"] .tv-seg label, html[data-theme="crt"] .tv-chips label,
html[data-theme="crt"] .tv-seg input:checked + label, html[data-theme="crt"] .tv-search, html[data-theme="crt"] .tv-search input,
html[data-theme="crt"] .igra-master-pill, html[data-theme="crt"] .igra-composer, html[data-theme="crt"] .igra-ink,
html[data-theme="crt"] .igra-shell input, html[data-theme="crt"] .igra-shell textarea, html[data-theme="crt"] .igra-shell select {
  border-radius: 3px;
}
html[data-theme="crt"] .igra-chat-item, html[data-theme="crt"] .igra-pick, html[data-theme="crt"] .igra-lore-item,
html[data-theme="crt"] .tv-card { box-shadow: inset 0 0 0 1px rgba(34,224,92,.18), 0 6px 22px rgba(0,255,110,.08); }
html[data-theme="crt"] .igra-chat-item:hover, html[data-theme="crt"] .igra-pick:hover, html[data-theme="crt"] .igra-lore-item:hover {
  box-shadow: 0 0 0 2px rgba(34,224,92,.45), 0 0 12px rgba(34,224,92,.30);   /* --ring, ui.html:10933 */
}
/* Кнопки: острые, градиент люминофора #22e05c→#0a7a2e (--grad-acc), кольцо при наведении */
html[data-theme="crt"] .btn { border-radius: 3px; text-transform: none; letter-spacing: .04em; }
html[data-theme="crt"] .btn-primary {
  /* тёмный конец светлее прежнего #0a7a2e: тёмная надпись «Войти» на нём давала 4,39 при норме 4,5 (замер 24.10) */
  background: linear-gradient(135deg, #22e05c, #12a040); color: #021208;
  border: 1px solid #57ff8c; text-shadow: none;
  box-shadow: 0 0 10px rgba(34,224,92,.35);
}
html[data-theme="crt"] .btn-primary:hover, html[data-theme="crt"] .btn:focus-visible {
  box-shadow: 0 0 0 2px rgba(34,224,92,.45), 0 0 12px rgba(34,224,92,.30);
}
html[data-theme="crt"] .btn-ghost { background: rgba(6,16,8,.85); border-color: #12351b; color: #7dffa0; }
html[data-theme="crt"] .btn-ghost:hover { border-color: #22e05c; background: #09180c; }
html[data-theme="crt"] .igra-nav-item:hover, html[data-theme="crt"] .igra-game-item:hover { background: #061008; box-shadow: inset 2px 0 0 #22e05c; }
html[data-theme="crt"] .igra-game-item.is-current { box-shadow: inset 2px 0 0 #22e05c; }
/* Поле ввода хода: подсказка гасится (её место занимает «> ▮», см. ниже), каретка — блок,
   цвет --acch (ui.html:12504) */
html[data-theme="crt"] .igra-shell input, html[data-theme="crt"] .igra-shell textarea { caret-color: #57ff8c; caret-shape: block; }
html[data-theme="crt"] .igra-turn-input::placeholder { color: transparent; }
.crt-prompt { display: none; }
html[data-theme="crt"] .igra-composer { position: relative; }
html[data-theme="crt"] .crt-prompt {
  position: absolute; z-index: 2; left: 26px; top: 20px; pointer-events: none; white-space: nowrap;
  font-family: Consolas, 'Cascadia Mono', ui-monospace, monospace; font-size: 1rem; line-height: 1.4;
  color: #57ff8c; visibility: hidden;
}
html[data-theme="crt"] .igra-turn-input:placeholder-shown + .crt-prompt { display: block; visibility: visible; }
html[data-theme="crt"] .crt-prompt { display: block; }
html[data-theme="crt"] .crt-prompt b { font-weight: 400; opacity: .75; margin-right: 6px; }
html[data-theme="crt"] .crt-prompt { right: 22px; overflow: hidden; text-overflow: ellipsis; }
/* VT323 мелкий по начертанию: «500» и буква аватара на ПК читались как точки (находка 060) */
html[data-theme="crt"] .igra-ink, html[data-theme="crt"] .igra-topbar .avatar-circle { font-size: 1.2rem; }
/* Пиксельный шрифт заголовка делал из «SFW» «SF#» (находка 039): значки режима — обычным моноширинным */
html[data-theme="crt"] #partyModeBadge, html[data-theme="crt"] .pt-content-badge, html[data-theme="crt"] #newContent-sfw, html[data-theme="crt"] #newContent-nsfw { font-family: Consolas, 'Cascadia Mono', ui-monospace, monospace; letter-spacing: .02em; }
html[data-theme="crt"] .crt-prompt em { font-style: normal; margin-left: 12px; color: #4aa866; font-size: .92rem; }
html[data-theme="crt"] .crt-prompt i {
  display: inline-block; width: .62em; height: 1.05em; background: #57ff8c; vertical-align: -.18em;
  box-shadow: 0 0 8px rgba(87,255,140,.7); animation: crt-blink 1.05s steps(1) infinite;
}
/* «Мастер печатает»: вместо точек — LOADING… (голос темы, ui.html:11057) */
html[data-theme="crt"] .igra-typing i { display: none; }
html[data-theme="crt"] .igra-typing::after {
  content: 'LOADING…'; font-family: 'VT323', Consolas, monospace; letter-spacing: .12em; color: #57ff8c;
  animation: crt-blink 1.05s steps(1) infinite;
}
@media (max-width: 600px) {
  html[data-theme="crt"] body::before { box-shadow: inset 0 0 44px rgba(0,0,0,.6), inset 0 0 5px rgba(60,255,140,.10); border-radius: 14px / 22px; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-theme="crt"] body::after, html[data-theme="crt"] .igra-shell h1.display::after,
  html[data-theme="crt"] .crt-prompt i, html[data-theme="crt"] .igra-typing::after { animation: none; }
  html[data-theme="crt"]::before, html[data-theme="crt"]::after, #crt-boot { display: none !important; }
  html[data-theme="crt"] body::after { opacity: .85; }
}

/* ── 3. 🐉 Летопись (fantasy) ───────────────────────────────────────────────
   ui.html:1060-1066 вывеска #chat-empty h2 (золотая рамка, капитель, двойная
   внутренняя линия); 931-960 кнопки «золочёный переплёт» (бордо + золотая
   кромка через border-box, внутренняя рамка ::before), .msg-action-btn;
   962-972 поле ввода; 1444-1449 буквица ::first-letter у реплики мастера;
   1432-1436 свеча-виньетка ленты; 1148-1152 .modal — золотая рамка. */
html[data-theme="fantasy"] .igra-shell h1.display:not(.igra-title) {
  background: linear-gradient(180deg, #3a2c15, #241a0c); color: #e8c86a;
  padding: 10px 34px 12px; border: 2px solid #8a621c; border-radius: 8px;
  font-variant: small-caps; letter-spacing: 1px;
  box-shadow: inset 0 0 0 2px #241a0c, inset 0 0 0 3px rgba(224,173,63,.4), 0 10px 30px -10px rgba(0,0,0,.8);
  text-shadow: 0 1px 2px rgba(0,0,0,.6);
}
html[data-theme="fantasy"] .igra-shell > .igra-hint, html[data-theme="fantasy"] .igra-cards-empty {
  background: #221a0e; border: 1px solid #6b551f; border-radius: 8px; color: #c9ae7c;
}
html[data-theme="fantasy"] .igra-shell h2.h3 {
  font-variant: small-caps; letter-spacing: .6px; color: #e8c86a;
  border-bottom: 1px solid transparent; padding-bottom: 6px;
  border-image: linear-gradient(90deg, #8a621c, #e0ad3f 45%, transparent) 1;
}
html[data-theme="fantasy"] .btn-primary {
  position: relative; border: 1.5px solid transparent; border-radius: 10px; color: #ffe9d2;
  background: linear-gradient(180deg, #7a2a2a, #571e1e 60%, #471717) padding-box,
              linear-gradient(140deg, #e8bc55, #8a621c 55%, #e0ad3f) border-box;
  letter-spacing: .4px; text-shadow: 0 1px 2px rgba(0,0,0,.5);
  box-shadow: inset 0 1px 0 rgba(255,230,170,.28), 0 4px 12px -5px rgba(0,0,0,.6);
}
html[data-theme="fantasy"] .btn-primary::before {
  content: ''; position: absolute; inset: 3px; border: 1px solid rgba(224,173,63,.3); border-radius: 7px; pointer-events: none;
}
html[data-theme="fantasy"] .btn-primary:hover { filter: brightness(1.15); }
html[data-theme="fantasy"] .btn-ghost {
  background: #2a2113; border: 1px solid #6b551f; color: #d9c08a; border-radius: 7px;
  box-shadow: inset 0 1px 0 rgba(255,230,170,.1);
}
html[data-theme="fantasy"] .btn-ghost:hover { background: #352a15; color: #efe0bd; border-color: #c9962e; box-shadow: inset 0 1px 0 rgba(255,230,170,.15), 0 0 10px -3px rgba(201,150,46,.5); }
html[data-theme="fantasy"] .igra-shell input, html[data-theme="fantasy"] .igra-shell textarea, html[data-theme="fantasy"] .igra-shell select {
  background: #1c150c; border: 1px solid #4a3c24; border-radius: 10px; box-shadow: inset 0 2px 8px rgba(0,0,0,.5);
}
html[data-theme="fantasy"] .igra-shell input:focus, html[data-theme="fantasy"] .igra-shell textarea:focus {
  border-color: #c9962e; box-shadow: 0 0 0 3px rgba(201,150,46,.22), inset 0 2px 8px rgba(0,0,0,.4);
}
html[data-theme="fantasy"] .igra-chat-item, html[data-theme="fantasy"] .igra-pick, html[data-theme="fantasy"] .igra-lore-item {
  border: 1px solid #6b551f; box-shadow: inset 0 0 0 1px rgba(201,150,46,.14), inset 0 1px 0 rgba(255,230,170,.08);
}
html[data-theme="fantasy"] .igra-chat-item:hover, html[data-theme="fantasy"] .igra-pick:hover, html[data-theme="fantasy"] .igra-lore-item:hover {
  border-color: #c9962e; box-shadow: inset 0 0 0 1px rgba(201,150,46,.3), 0 0 10px -3px rgba(201,150,46,.5);
}
html[data-theme="fantasy"] .igra-game-item.is-current, html[data-theme="fantasy"] .igra-nav-item:hover {
  background: #241c10; box-shadow: inset 3px 0 0 #c9962e, inset 0 1px 0 rgba(255,230,170,.08);   /* .si.active, ui.html:947 */
}
html[data-theme="fantasy"] .igra-master-popover {
  background: linear-gradient(180deg, #1f180d, #181209) padding-box, linear-gradient(140deg, #e8bc55, #8a621c 50%, #e0ad3f) border-box;
  border: 2px solid transparent;
}
/* Буквица (ui.html:1444) — с 30.09 только у вступления, см. раздел «Экран партии» ниже */
/* Свеча: тёплый свет сверху ленты и тень снизу (ui.html:1432) */
html[data-theme="fantasy"] .igra-turns {
  background: radial-gradient(120% 90% at 50% 0%, rgba(224,173,63,.05), transparent 55%);
}

/* ── 4. 🌆 Киберпанк (cyberpunk) ────────────────────────────────────────────
   ui.html:1078-1086 вывеска: срезанные углы, циановая рамка, моно, разрядка,
   неоновое свечение текста; 851-880 кнопки: срез 9px, стекло + циан, свечение;
   .msg-action-btn (878); поле ввода — нижняя циановая черта, каретка #3fe0ff
   (890-899); 1420-1424 реплика мастера — левая неоновая кромка; 1414-1418 фон
   ленты: холодное и пурпурное пятна + строчки 3px; ФИЧА 10 (12247) «лужи» —
   полоса неона у нижнего края, дрожит. */
html[data-theme="cyberpunk"] .igra-shell h1.display:not(.igra-title) {
  background: rgba(8,18,30,.72); color: #9ff4ff; padding: 10px 30px 12px;
  border: 1px solid rgba(63,224,255,.55); border-radius: 0;
  clip-path: polygon(14px 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%, 0 14px);
  text-shadow: 0 0 16px rgba(0,200,240,.8); letter-spacing: 2px;
  font-family: Consolas, 'Cascadia Mono', monospace;
}
html[data-theme="cyberpunk"] .igra-shell > .igra-hint, html[data-theme="cyberpunk"] .igra-cards-empty {
  background: rgba(8,20,32,.7); border: 1px solid rgba(63,224,255,.3); border-radius: 4px; color: #8fc4dc;
}
html[data-theme="cyberpunk"] .igra-shell h2.h3 {
  font-family: Consolas, 'Cascadia Mono', monospace; letter-spacing: 1.2px; color: #9ff4ff;
  text-shadow: 0 0 12px rgba(0,200,240,.55);
}
html[data-theme="cyberpunk"] .btn-primary {
  clip-path: polygon(9px 0, 100% 0, 100% calc(100% - 9px), calc(100% - 9px) 100%, 0 100%, 0 9px); border-radius: 0;
  background: linear-gradient(180deg, rgba(0,200,240,.16), rgba(0,120,180,.1)), #081420;
  border: 1px solid rgba(63,224,255,.65); color: #7ff0ff;
  text-shadow: 0 0 8px rgba(0,200,240,.8); letter-spacing: 1px; box-shadow: inset 0 0 14px rgba(0,200,240,.15);
}
html[data-theme="cyberpunk"] .btn-primary:hover {
  color: #fff; border-color: #7ff0ff;
  background: linear-gradient(180deg, rgba(0,200,240,.3), rgba(0,140,200,.18)), #0a1a2a;
  box-shadow: inset 0 0 20px rgba(0,200,240,.3), 0 0 18px rgba(0,200,240,.35);
}
html[data-theme="cyberpunk"] .btn-ghost {
  background: rgba(8,20,32,.75); border: 1px solid rgba(63,224,255,.35); color: #7fb6d0; border-radius: 3px;
}
html[data-theme="cyberpunk"] .btn-ghost:hover { color: #bff2ff; border-color: rgba(63,224,255,.8); background: rgba(0,200,240,.12); box-shadow: 0 0 10px rgba(0,200,240,.3); }
html[data-theme="cyberpunk"] .igra-shell input, html[data-theme="cyberpunk"] .igra-shell textarea, html[data-theme="cyberpunk"] .igra-shell select {
  border-bottom: 2px solid rgba(63,224,255,.55); border-radius: 4px; caret-color: #3fe0ff;
}
html[data-theme="cyberpunk"] .igra-shell input:focus, html[data-theme="cyberpunk"] .igra-shell textarea:focus {
  border-bottom-color: #3fe0ff; box-shadow: 0 6px 22px -8px rgba(0,200,240,.45);
}
html[data-theme="cyberpunk"] .igra-chat-item, html[data-theme="cyberpunk"] .igra-pick, html[data-theme="cyberpunk"] .igra-lore-item {
  box-shadow: 0 0 0 1px rgba(0,200,240,.22), 0 0 18px rgba(0,200,240,.08); border-radius: 4px;
}
html[data-theme="cyberpunk"] .igra-chat-item:hover, html[data-theme="cyberpunk"] .igra-pick:hover, html[data-theme="cyberpunk"] .igra-lore-item:hover {
  border-color: rgba(63,224,255,.6); box-shadow: inset 3px 0 0 #00c8f0, 0 0 14px -4px rgba(0,200,240,.4);   /* .si.active, ui.html:915 */
}
html[data-theme="cyberpunk"] .igra-game-item.is-current { box-shadow: inset 3px 0 0 #00c8f0, 0 0 14px -4px rgba(0,200,240,.4); }
html[data-theme="cyberpunk"] .igra-master-popover {
  border: 1px solid rgba(63,224,255,.4); border-radius: 0; box-shadow: 0 0 40px rgba(0,200,240,.2);
  clip-path: polygon(18px 0, 100% 0, 100% calc(100% - 18px), calc(100% - 18px) 100%, 0 100%, 0 18px);
}
html[data-theme="cyberpunk"] .igra-turns {
  background:
    radial-gradient(60% 46% at 6% 0%, rgba(0,200,240,.055), transparent 62%),
    radial-gradient(52% 44% at 100% 96%, rgba(255,43,214,.05), transparent 60%);
}
/* Лужи с отражением неона (ФИЧА 10, п.2): полоса у нижнего края, цвета города размазаны и подрагивают */
html[data-theme="cyberpunk"] body::after {
  content: ''; position: fixed; left: 0; right: 0; bottom: 0; height: 84px; z-index: 3; pointer-events: none;
  background:
    radial-gradient(40% 100% at 18% 100%, rgba(255,43,214,.20), transparent 70%),
    radial-gradient(46% 100% at 62% 100%, rgba(0,200,240,.20), transparent 70%),
    radial-gradient(30% 100% at 92% 100%, rgba(255,140,60,.14), transparent 70%);
  filter: blur(6px); mix-blend-mode: screen; opacity: .8;
  animation: cp-puddle 5.5s ease-in-out infinite alternate;
}
@keyframes cp-puddle { from { opacity: .55; transform: translateX(-8px) scaleY(.92); } to { opacity: .95; transform: translateX(8px) scaleY(1.05); } }
@media (prefers-reduced-motion: reduce) { html[data-theme="cyberpunk"] body::after { animation: none; } }
@media (max-width: 600px) { html[data-theme="cyberpunk"] body::after { height: 56px; } }

/* ── 5. 👑 Розовое королевство (pink_kingdom) ───────────────────────────────
   ui.html:1052-1075 вывеска-лента: розовая глазурь, белый текст, «хвосты» ленты
   #d63583 по краям, пилюля-подпись; 796-845 кнопки-леденцы: глазурь, блик сверху,
   звёздочка ✦ мерцает (pk-tw); .msg-action-btn — белые с розовой кромкой; поле
   — белое, скруглённое, розовое кольцо; 1456-1462 горошек ленты, скругления
   реплик 20/20/20/7 и 20/20/7/20; 1355-1370 мыльные пузыри (.pk-bubble). */
html[data-theme="pink_kingdom"] .igra-shell h1.display:not(.igra-title) {
  background: linear-gradient(180deg, #d02f80, #a3195c); color: #fff; -webkit-text-fill-color: #fff;
  padding: 8px 32px 10px; margin-inline: 22px; border-radius: 16px; border: 1px solid #ffb9d8;
  box-shadow: 0 8px 22px -8px rgba(220,60,130,.6), inset 0 2px 0 rgba(255,255,255,.5);
  text-shadow: 0 1px 3px rgba(160,30,90,.5);
}
html[data-theme="pink_kingdom"] .igra-shell h1.display:not(.igra-title)::before,
html[data-theme="pink_kingdom"] .igra-shell h1.display:not(.igra-title)::after {
  content: ''; position: absolute; top: 50%; margin-top: -17px; border: 17px solid #d63583; z-index: -1;
}
html[data-theme="pink_kingdom"] .igra-shell h1.display:not(.igra-title)::before { left: -24px; border-left-color: transparent; }
html[data-theme="pink_kingdom"] .igra-shell h1.display:not(.igra-title)::after { right: -24px; border-right-color: transparent; }
html[data-theme="pink_kingdom"] .igra-shell > .igra-hint, html[data-theme="pink_kingdom"] .igra-cards-empty {
  background: #fffdfe; border: 1px solid #f3bcd4; border-radius: 999px; padding: 8px 18px; color: #9a3468;
  box-shadow: 0 3px 10px -4px rgba(190,60,120,.3);
}
html[data-theme="pink_kingdom"] .igra-shell h2.h3 { color: #c22e77; }
html[data-theme="pink_kingdom"] .igra-hint { color: #9a3468; }
html[data-theme="pink_kingdom"] .btn-primary {
  position: relative; overflow: hidden; border: 1px solid #ffb9d8; border-radius: 16px; color: #fff;
  background: linear-gradient(180deg, #d02f80 0%, #b8206a 55%, #a3195c 100%);
  text-shadow: 0 1px 2px rgba(160,30,90,.45);
  box-shadow: 0 6px 16px -6px rgba(220,60,130,.55), inset 0 -3px 6px rgba(150,25,85,.35);
}
html[data-theme="pink_kingdom"] .btn-primary::before {
  content: ''; position: absolute; left: 6%; right: 6%; top: 2px; height: 46%; pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,.3), rgba(255,255,255,0)); border-radius: 14px 14px 40% 40%;
}
html[data-theme="pink_kingdom"] .btn-primary::after {
  content: '✦'; position: absolute; top: 1px; right: 8px; font-size: 10px; color: #ffe9a8; text-shadow: 0 0 6px #ffd76a;
  animation: pk-tw 2.8s ease-in-out infinite;
}
@keyframes pk-tw { 0%, 100% { opacity: .35; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.15); } }
html[data-theme="pink_kingdom"] .btn-primary:hover { filter: brightness(1.06) saturate(1.1); transform: translateY(-1.5px); }
html[data-theme="pink_kingdom"] .btn-ghost {
  background: #fff; border: 1px solid #f3bcd4; color: #9a3468; border-radius: 16px; box-shadow: 0 2px 6px -2px rgba(190,60,120,.25);
}
html[data-theme="pink_kingdom"] .btn-ghost:hover { background: #ffeaf4; color: #c22e77; border-color: #f0489a; }
html[data-theme="pink_kingdom"] .igra-shell input, html[data-theme="pink_kingdom"] .igra-shell textarea, html[data-theme="pink_kingdom"] .igra-shell select {
  background: #fff; border: 1px solid #f0b8d2; border-radius: 16px; box-shadow: inset 0 2px 5px rgba(210,110,160,.12);
}
html[data-theme="pink_kingdom"] .igra-shell input:focus, html[data-theme="pink_kingdom"] .igra-shell textarea:focus {
  border-color: #f0489a; box-shadow: 0 0 0 3px rgba(240,72,154,.22), inset 0 2px 5px rgba(210,110,160,.1);
}
html[data-theme="pink_kingdom"] .igra-chat-item, html[data-theme="pink_kingdom"] .igra-pick, html[data-theme="pink_kingdom"] .igra-lore-item {
  border-color: #f3c4d9; border-radius: 20px; box-shadow: 0 6px 18px -8px rgba(190,60,120,.25);
}
html[data-theme="pink_kingdom"] .igra-chat-item:hover, html[data-theme="pink_kingdom"] .igra-pick:hover {
  border-color: #f0489a; transform: translateY(-2px); box-shadow: 0 10px 22px -8px rgba(190,60,120,.4);
}
html[data-theme="pink_kingdom"] .igra-game-item.is-current { box-shadow: inset 3px 0 0 #f0489a; }
html[data-theme="pink_kingdom"] .igra-turns { background: radial-gradient(rgba(240,72,154,.05) 1.2px, transparent 1.3px) 0 0 / 26px 26px; }
html[data-theme="pink_kingdom"] .igra-master-pill, html[data-theme="pink_kingdom"] .igra-ink { border-color: #f3bcd4; }
/* Мыльные пузыри: три слоя поднимаются снизу (упрощённо: .pk-bubble в ui.html — DOM-элементы) */
html[data-theme="pink_kingdom"] body::after {
  /* 22.10: z-index 2, а не 3 - пузыри лежат ПОД содержимым (.igra-main z-index 3), а не поверх: поверх они белыми пятнами
     просвечивали сквозь портреты мастеров (светлый шар на карточке Демиурга) и ложились на текст */
  content: ''; position: fixed; inset: 0; z-index: 2; pointer-events: none; opacity: .9;
  background-image:
    radial-gradient(circle at 32% 28%, rgba(255,255,255,.95), rgba(255,255,255,.12) 40%, rgba(255,182,220,.10) 62%, rgba(255,255,255,.4) 80%, transparent 82%),
    radial-gradient(circle at 32% 28%, rgba(255,255,255,.95), rgba(255,255,255,.12) 40%, rgba(255,182,220,.10) 62%, rgba(255,255,255,.4) 80%, transparent 82%),
    radial-gradient(circle at 32% 28%, rgba(255,255,255,.95), rgba(255,255,255,.12) 40%, rgba(255,182,220,.10) 62%, rgba(255,255,255,.4) 80%, transparent 82%);
  background-repeat: no-repeat;
  background-size: 34px 34px, 22px 22px, 46px 46px;
  background-position: 12% 105%, 58% 105%, 88% 105%;
  animation: pk-bubbles 22s linear infinite;
}
@keyframes pk-bubbles {
  0% { background-position: 12% 108%, 58% 130%, 88% 118%; }
  100% { background-position: 18% -12%, 52% -12%, 84% -12%; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-theme="pink_kingdom"] body::after, html[data-theme="pink_kingdom"] .btn-primary::after { animation: none; }
  html[data-theme="pink_kingdom"] body::after { display: none; }
}

/* ── 6. 🕶 Экшен (neo_action) ───────────────────────────────────────────────
   ui.html:1092-1101 вывеска: моно, разрядка 3px, свет #3dff9c, скобки «[ ]»;
   958-1012 кнопки: моно, капс, радиус 4, зелёный градиент, уголки-прицел;
   1470-1471 реплика мастера: радиус 9/9/9/3 + левая грань; 1472-1475 заголовок
   мигает «_» (na-caret); ФИЧА 15 (13230) — рамка-прицел из четырёх уголков на
   наведении на реплику; 1206-1212 подпись-ярлык панели (PROMPT.SYS). */
html[data-theme="neo_action"] .igra-shell h1.display:not(.igra-title) {
  background: none; backdrop-filter: none; -webkit-backdrop-filter: none;
  color: #3dff9c; font-family: Consolas, 'Cascadia Mono', monospace; letter-spacing: 3px;
  text-shadow: 0 0 18px rgba(0,217,110,.7); padding-inline: 4px;
}
html[data-theme="neo_action"] .igra-shell h1.display:not(.igra-title)::before { content: '[ '; color: rgba(0,217,110,.5); }
html[data-theme="neo_action"] .igra-shell h1.display:not(.igra-title)::after { content: ' ]'; color: rgba(0,217,110,.5); }
html[data-theme="neo_action"] .igra-title::after { content: '_'; color: var(--gold-t); margin-left: 2px; animation: na-caret 1.1s steps(1) infinite; }
@keyframes na-caret { 0%, 55% { opacity: 1; } 56%, 100% { opacity: 0; } }
html[data-theme="neo_action"] .igra-shell > .igra-hint, html[data-theme="neo_action"] .igra-cards-empty {
  font-family: Consolas, monospace; color: #8fa3af; background: rgba(6,10,14,.6);
}
html[data-theme="neo_action"] .igra-shell h2.h3 { font-family: Consolas, 'Cascadia Mono', monospace; letter-spacing: 1.5px; text-transform: uppercase; color: #63d693; }
html[data-theme="neo_action"] .btn { font-family: Consolas, 'Cascadia Mono', monospace; text-transform: uppercase; letter-spacing: 1px; border-radius: 4px; position: relative; overflow: visible; }
html[data-theme="neo_action"] .btn-primary {
  background: linear-gradient(180deg, #00e878, #00a352); color: #04160b; font-weight: 700; border: 1px solid #3dff9c;
  box-shadow: 0 0 16px -4px rgba(0,217,110,.55), inset 0 1px 0 rgba(255,255,255,.35);
}
html[data-theme="neo_action"] .btn-primary::before, html[data-theme="neo_action"] .btn-primary::after {
  content: ''; position: absolute; width: 9px; height: 9px; pointer-events: none;
}
html[data-theme="neo_action"] .btn-primary::before { top: -3px; left: -3px; border-top: 2px solid #3dff9c; border-left: 2px solid #3dff9c; }
html[data-theme="neo_action"] .btn-primary::after { bottom: -3px; right: -3px; border-bottom: 2px solid #3dff9c; border-right: 2px solid #3dff9c; }
html[data-theme="neo_action"] .btn-primary:hover { filter: brightness(1.12); box-shadow: 0 0 22px -4px rgba(0,217,110,.75), inset 0 1px 0 rgba(255,255,255,.35); }
html[data-theme="neo_action"] .btn-ghost { background: rgba(7,14,10,.85); border: 1px solid rgba(0,217,110,.4); color: #63d693; }
html[data-theme="neo_action"] .btn-ghost:hover { border-color: #3dff9c; color: #b6ffd6; }
html[data-theme="neo_action"] .igra-chat-item, html[data-theme="neo_action"] .igra-pick, html[data-theme="neo_action"] .igra-lore-item {
  border-color: rgba(0,217,110,.4); border-radius: 4px;
}
html[data-theme="neo_action"] .igra-chat-item:hover, html[data-theme="neo_action"] .igra-pick:hover { border-color: #3dff9c; box-shadow: 0 0 14px -4px rgba(0,217,110,.5); }
html[data-theme="neo_action"] .igra-game-item.is-current { box-shadow: inset 3px 0 0 #00d96e; }
/* Прицельная рамка — восемь полосок = четыре уголка, только при наведении и только на ПК */
@media (min-width: 769px) {
  html[data-theme="neo_action"] .igra-turn-assistant::after, html[data-theme="neo_action"] .igra-turn-user::after {
    content: ''; position: absolute; inset: -6px; pointer-events: none; background-repeat: no-repeat;
    background-image: linear-gradient(#ffb020,#ffb020), linear-gradient(#ffb020,#ffb020), linear-gradient(#ffb020,#ffb020), linear-gradient(#ffb020,#ffb020),
                      linear-gradient(#ffb020,#ffb020), linear-gradient(#ffb020,#ffb020), linear-gradient(#ffb020,#ffb020), linear-gradient(#ffb020,#ffb020);
    background-size: 14px 2px, 2px 14px, 14px 2px, 2px 14px, 14px 2px, 2px 14px, 14px 2px, 2px 14px;
    background-position: left top, left top, right top, right top, left bottom, left bottom, right bottom, right bottom;
    opacity: 0; transform: scale(1.05); transition: opacity .16s ease, transform .16s cubic-bezier(.2,.9,.3,1.2);
  }
  html[data-theme="neo_action"] .igra-turn-assistant:hover::after, html[data-theme="neo_action"] .igra-turn-user:hover::after { opacity: .85; transform: scale(1); }
}
/* Окно модели: раньше тут был position:absolute и ярлык MASTER.SYS над рамкой;
   окно теперь fixed в <body> (панель снизу на телефоне), ярлык обрезался бы прокруткой. */
html[data-theme="neo_action"] .igra-master-popover { border: 1px solid rgba(0,217,110,.4); }
@media (prefers-reduced-motion: reduce) {
  html[data-theme="neo_action"] .igra-title::after { animation: none; }
  html[data-theme="neo_action"] .igra-turn-assistant::after, html[data-theme="neo_action"] .igra-turn-user::after { transition: none; transform: none; }
}

/* ── 7. Пустошь / Тишина / Нуар / Бездна — атмосфера (#xt-atmo, ui.html:10960-11003) ──
   В ui.html — один слой поверх интерфейса; здесь тот же приём на body::after.
   Плотность и градиенты — из оригинала. */
html[data-theme="wasteland"] body::after, html[data-theme="horror"] body::after,
html[data-theme="noir"] body::after, html[data-theme="abyss"] body::after {
  content: ''; position: fixed; inset: 0; z-index: 9000; pointer-events: none;
}
html[data-theme="wasteland"] body::after {   /* пыльная дымка снизу и выгоревший свет сверху */
  background: radial-gradient(120% 70% at 70% -10%, rgba(224,137,76,.10), transparent 60%), linear-gradient(0deg, rgba(120,80,40,.12), transparent 42%);
}
html[data-theme="horror"] body::after {      /* тяжёлая виньетка, медленное дыхание по краям (xtBreath 9s) */
  background: radial-gradient(120% 100% at 50% 45%, transparent 40%, rgba(0,0,0,.42)); animation: xt-breath 9s ease-in-out infinite;
}
@keyframes xt-breath { 0%, 100% { opacity: 1; } 50% { opacity: .82; } }
html[data-theme="noir"] body::after {        /* конус света от фонаря слева сверху + виньетка */
  background: radial-gradient(60% 55% at 18% -8%, rgba(217,164,65,.10), transparent 62%), radial-gradient(120% 100% at 50% 50%, transparent 44%, rgba(0,0,0,.36));
}
html[data-theme="abyss"] body::after {       /* косые лучи, плывущие вбок (xtDrift 26s) */
  background:
    linear-gradient(102deg, transparent 42%, rgba(79,216,232,.07) 47%, transparent 52%),
    linear-gradient(96deg, transparent 62%, rgba(122,92,240,.06) 67%, transparent 72%),
    radial-gradient(90% 60% at 50% 105%, rgba(43,179,200,.10), transparent 62%);
  background-size: 200% 100%, 200% 100%, 100% 100%; animation: xt-drift 26s linear infinite;
}
@keyframes xt-drift { from { background-position: 0 0, 0 0, 0 0; } to { background-position: 200% 0, -200% 0, 0 0; } }
@media (prefers-reduced-motion: reduce) {
  html[data-theme="horror"] body::after, html[data-theme="abyss"] body::after { animation: none; }
}
/* Нуар: ход мастера — титр, чуть выше контраст и разрядка (ui.html:11477) */
/* Бездна: каустика — блики от воды на реплике мастера, шапке и меню (ФИЧА 9, ui.html:12089-12108) */
/* position:relative только реплике: .igra-topbar (sticky) и .igra-nav (fixed) уже позиционированы — их position
   нельзя трогать: relative выбрасывал боковое меню и шапку в поток и раздвигал весь макет (баг «Бездны» 29.09). */
html[data-theme="abyss"] .igra-turn-assistant { position: relative; }
html[data-theme="abyss"] .igra-turn-assistant::after, html[data-theme="abyss"] .igra-topbar::before, html[data-theme="abyss"] .igra-nav::after {
  content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 2; border-radius: inherit; mix-blend-mode: soft-light; opacity: .55;
  background:
    radial-gradient(46% 30% at 22% 18%, rgba(190,245,255,.55), transparent 62%),
    radial-gradient(38% 26% at 74% 62%, rgba(140,220,255,.45), transparent 66%),
    radial-gradient(30% 40% at 46% 88%, rgba(210,250,255,.35), transparent 64%);
  background-size: 190% 190%, 170% 170%, 150% 150%; animation: ab-cau 21s ease-in-out infinite alternate;
}
@keyframes ab-cau { 0% { background-position: 0% 0%, 100% 40%, 40% 100%; } 100% { background-position: 100% 100%, 0% 70%, 90% 0%; } }
@media (prefers-reduced-motion: reduce) {
  html[data-theme="abyss"] .igra-turn-assistant::after, html[data-theme="abyss"] .igra-topbar::before, html[data-theme="abyss"] .igra-nav::after { animation: none; }
}
/* Нуар/Пустошь/Тишина/Бездна: кнопки и поля — формы из палитры темы (радиусы --r, ui.html:10932 аналог) */
html[data-theme="wasteland"] .btn, html[data-theme="horror"] .btn, html[data-theme="noir"] .btn { border-radius: 4px; }
html[data-theme="abyss"] .btn-primary { background: linear-gradient(135deg, #4fd8e8, #7a5cf0); color: #04121a; box-shadow: 0 0 20px rgba(43,179,200,.5); }   /* --grad-acc абисса, ui.html:10921 */
html[data-theme="horror"] .igra-shell h1.display:not(.igra-title), html[data-theme="wasteland"] .igra-shell h1.display:not(.igra-title),
html[data-theme="noir"] .igra-shell h1.display:not(.igra-title) { border-radius: 2px; }
html[data-theme="noir"] .igra-shell h1.display:not(.igra-title) { border-bottom: 2px solid var(--gold); letter-spacing: .04em; }
html[data-theme="wasteland"] .igra-shell h1.display:not(.igra-title) { border: 2px dashed var(--border-strong); }
html[data-theme="abyss"] .igra-shell h1.display:not(.igra-title) { text-shadow: 0 0 22px rgba(79,216,232,.55); border: 1px solid rgba(43,179,200,.35); }

/* ═══ Боковое меню по темам (29.09) ══════════════════════════════════════════
   База — в igra.css (.igra-nav-item и др.), общий акцент — токены --gold/--gold-2.
   Здесь у каждой темы своя форма и повадка, как у кнопок выше: Терминал и Экшен —
   моноширинный шрифт и скобки, Киберпанк — срезанные углы, Королевство — мягкие
   таблетки, Летопись — книжная гарнитура и позолота и т.д. position на .igra-nav
   не ставится (spisok п.25) — украшения только внутри пунктов. */

/* Четыре цветовые темы: мягкие скругления, акцент — цвет темы (из токенов) */
html[data-theme="dark_purple"] .igra-nav, html[data-theme="dark_blue"] .igra-nav,
html[data-theme="dark_green"] .igra-nav, html[data-theme="dark_amber"] .igra-nav { --nav-r: 12px; --nav-tile-r: 10px; }
html[data-theme="dark_blue"] .igra-nav { background: linear-gradient(180deg, #0d1424, #080d19); }
html[data-theme="dark_green"] .igra-nav { background: linear-gradient(180deg, #0c160c, #070d07); }
html[data-theme="dark_amber"] .igra-nav { background: linear-gradient(180deg, #1a1407, #100c04); }

/* Летопись: гарнитура с засечками, позолота, кружки-печати вместо плиток */
html[data-theme="fantasy"] .igra-nav { --nav-r: 3px; --nav-tile-r: 50%; }
html[data-theme="fantasy"] .igra-nav-item { font-family: var(--font-display); font-size: 1.02rem; letter-spacing: .01em; }
html[data-theme="fantasy"] .igra-nav-label { font-family: var(--font-display); color: #b08a3c; letter-spacing: .2em; }
html[data-theme="fantasy"] .igra-nav-label::before, html[data-theme="fantasy"] .igra-nav-label::after {
  content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, #6b5423);
}
html[data-theme="fantasy"] .igra-nav-label::after { background: linear-gradient(90deg, #6b5423, transparent); }
html[data-theme="fantasy"] .nav-ic { background: radial-gradient(circle at 35% 30%, #3a2b12, #150f08); border: 1px solid #7a5f2a; color: #d9b25a; }
html[data-theme="fantasy"] .igra-nav-item:hover, html[data-theme="fantasy"] .igra-nav-item.is-active {
  background: linear-gradient(90deg, rgba(201,150,46,.24), rgba(201,150,46,.04)); border-color: #7a5f2a;
  box-shadow: inset 3px 0 0 #c9962e, inset 0 1px 0 rgba(255,230,170,.1);
}
html[data-theme="fantasy"] .igra-nav-item.is-active .nav-ic { background: radial-gradient(circle at 35% 30%, #e8bc55, #8a621c); color: #1b1206; border-color: #f0d080; box-shadow: 0 0 12px -1px rgba(232,188,85,.6); }
html[data-theme="fantasy"] .igra-nav-item.is-active .nav-t::after { content: '❖'; margin-left: 8px; font-size: .7em; color: #e8bc55; }
html[data-theme="fantasy"] .igra-nav-account { border: 1px solid #7a5f2a; box-shadow: inset 0 0 0 3px #191309, inset 0 0 0 4px rgba(201,150,46,.35); padding: 14px; }

/* Киберпанк: срезанные углы (как у кнопок, clip-path), Orbitron, неоновая кромка */
html[data-theme="cyberpunk"] .igra-nav { --nav-r: 0px; --nav-tile-r: 0px; }
html[data-theme="cyberpunk"] .igra-nav-item, html[data-theme="cyberpunk"] .igra-nav-account {
  clip-path: polygon(9px 0, 100% 0, 100% calc(100% - 9px), calc(100% - 9px) 100%, 0 100%, 0 9px);
}
html[data-theme="cyberpunk"] .igra-nav-item { font-family: 'Orbitron', 'Inter', sans-serif; font-size: .8rem; letter-spacing: .07em; text-transform: uppercase; }
html[data-theme="cyberpunk"] .igra-nav-label { font-family: 'Orbitron', sans-serif; color: #2fd3f2; letter-spacing: .22em; }
html[data-theme="cyberpunk"] .nav-ic { clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px); border-color: rgba(63,224,255,.4); background: rgba(0,200,240,.07); color: #3fe0ff; }
html[data-theme="cyberpunk"] .igra-nav-item:hover { background: rgba(0,200,240,.12); box-shadow: inset 0 0 0 1px rgba(63,224,255,.45); }
html[data-theme="cyberpunk"] .igra-nav-item.is-active, html[data-theme="cyberpunk"] .igra-nav-item.is-active:hover {
  background: linear-gradient(90deg, rgba(0,200,240,.34), rgba(0,200,240,.06)); box-shadow: inset 0 0 0 1px #3fe0ff, inset 4px 0 0 #3fe0ff; border-color: transparent;
}
html[data-theme="cyberpunk"] .igra-nav-item.is-active .nav-ic { background: linear-gradient(135deg, #3fe0ff, #0aa8d6); color: #021018; box-shadow: none; }
html[data-theme="cyberpunk"] .igra-nav-account { border-color: transparent; box-shadow: inset 0 0 0 1px rgba(63,224,255,.6); background: linear-gradient(135deg, rgba(0,200,240,.2), rgba(0,200,240,.03)); }
html[data-theme="cyberpunk"] .nav-who small { font-family: 'Orbitron', sans-serif; color: #2fd3f2; }
html[data-theme="cyberpunk"] .igra-nav-foot { border-top-color: rgba(63,224,255,.35); }

/* Розовое королевство: мягкие таблетки, круглые плитки, сахарная глазурь */
html[data-theme="pink_kingdom"] .igra-nav { --nav-r: 999px; --nav-tile-r: 50%; }
html[data-theme="pink_kingdom"] .igra-nav-item { font-family: var(--font-display); font-weight: 700; color: #6b2a4d; }
html[data-theme="pink_kingdom"] .igra-nav-label { font-family: var(--font-display); color: #9d3d70; }
html[data-theme="pink_kingdom"] .igra-nav-label::before { content: '✿'; font-size: 1.1em; }
html[data-theme="pink_kingdom"] .nav-ic { background: #fff; border: 1px solid #f7b6d4; color: #e0408a; box-shadow: 0 2px 6px -2px rgba(240,72,154,.35); }
html[data-theme="pink_kingdom"] .igra-nav-item:hover { background: #ffe0ee; }
html[data-theme="pink_kingdom"] .igra-nav-item.is-active, html[data-theme="pink_kingdom"] .igra-nav-item.is-active:hover {
  background: linear-gradient(90deg, #ffc6df, #ffe6f1); border-color: #f48fbe; color: #5a1a3b;
  box-shadow: 0 6px 16px -8px rgba(240,72,154,.6), inset 0 1px 0 rgba(255,255,255,.8);
}
html[data-theme="pink_kingdom"] .igra-nav-item.is-active .nav-ic { background: linear-gradient(135deg, #ff7ab8, #f0489a); border-color: transparent; color: #fff; }
html[data-theme="pink_kingdom"] .igra-nav-item.is-disabled, html[data-theme="pink_kingdom"] .igra-nav-item.is-disabled:hover { color: #86506b; }
html[data-theme="pink_kingdom"] .igra-nav-item.is-disabled .nav-ic { background: transparent; }
html[data-theme="pink_kingdom"] .igra-nav-item .tag { color: #86506b; border-color: #f7b6d4; }
html[data-theme="pink_kingdom"] .igra-nav-account { border-radius: 26px; background: linear-gradient(135deg, #ffd0e4, #fff0f6); border-color: #f7b6d4; }
html[data-theme="pink_kingdom"] .nav-who small, html[data-theme="pink_kingdom"] .nav-who b { color: #6b2a4d; }
html[data-theme="pink_kingdom"] .nav-who small { color: #93386a; }
html[data-theme="pink_kingdom"] #navLogout { color: #9c1a3f; }

/* Экшен: моноширинный, ЗАГЛАВНЫЕ, скобки-«прицел» у активного пункта */
html[data-theme="neo_action"] .igra-nav { --nav-r: 4px; --nav-tile-r: 3px; }
html[data-theme="neo_action"] .igra-nav-item, html[data-theme="neo_action"] .igra-nav-account, html[data-theme="neo_action"] .igra-nav-label {
  font-family: Consolas, 'Cascadia Mono', monospace; text-transform: uppercase; letter-spacing: 1px;
}
html[data-theme="neo_action"] .igra-nav-item { font-size: .84rem; }
html[data-theme="neo_action"] .igra-nav-label { color: #3dff9c; opacity: .8; }
html[data-theme="neo_action"] .igra-nav-label::before { content: '['; }
html[data-theme="neo_action"] .igra-nav-label::after { content: ']'; flex: none; height: auto; background: none; }
html[data-theme="neo_action"] .igra-nav-label { justify-content: space-between; }
html[data-theme="neo_action"] .nav-ic { border-color: rgba(0,217,110,.4); background: rgba(0,217,110,.06); color: #3dff9c; }
html[data-theme="neo_action"] .igra-nav-item:hover { background: rgba(0,217,110,.1); border-color: rgba(0,217,110,.5); }
html[data-theme="neo_action"] .igra-nav-item.is-active, html[data-theme="neo_action"] .igra-nav-item.is-active:hover {
  background:
    linear-gradient(#3dff9c, #3dff9c) top left / 12px 2px no-repeat, linear-gradient(#3dff9c, #3dff9c) top left / 2px 12px no-repeat,
    linear-gradient(#3dff9c, #3dff9c) bottom right / 12px 2px no-repeat, linear-gradient(#3dff9c, #3dff9c) bottom right / 2px 12px no-repeat,
    linear-gradient(90deg, rgba(0,217,110,.26), rgba(0,217,110,.05));
  border-color: rgba(0,217,110,.35); box-shadow: inset 3px 0 0 #00d96e, 0 0 18px -6px rgba(0,217,110,.7); color: #d5ffe8;
}
html[data-theme="neo_action"] .igra-nav-item.is-active .nav-ic { background: linear-gradient(135deg, #3dff9c, #00b25a); color: #03140b; }
html[data-theme="neo_action"] .igra-nav-account { border: 1px solid rgba(0,217,110,.5); }
html[data-theme="neo_action"] .nav-who b { text-transform: none; }

/* Пустошь: грубый штамп — прямые углы, трафарет, толстая полоса-«швеллер» */
html[data-theme="wasteland"] .igra-nav { --nav-r: 2px; --nav-tile-r: 2px; }
html[data-theme="wasteland"] .igra-nav-item { font-size: .84rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
html[data-theme="wasteland"] .igra-nav-label { color: #b8955a; letter-spacing: .2em; }
html[data-theme="wasteland"] .igra-nav-label::after { height: 0; background: none; border-top: 2px dashed #3d3324; }
html[data-theme="wasteland"] .nav-ic { background: #241c10; border: 2px solid #4a3c24; color: #c9a24a; }
html[data-theme="wasteland"] .igra-nav-item:hover { background: rgba(201,162,74,.14); }
html[data-theme="wasteland"] .igra-nav-item.is-active, html[data-theme="wasteland"] .igra-nav-item.is-active:hover {
  background: rgba(201,162,74,.18);
  border: 2px solid #c9a24a; box-shadow: inset 5px 0 0 #c9a24a; color: #f4e2b0;
}
html[data-theme="wasteland"] .igra-nav-item.is-active .nav-ic { background: #c9a24a; color: #1a1408; border-color: #1a1408; box-shadow: none; }
html[data-theme="wasteland"] .igra-nav-account { border: 2px solid #4a3c24; }
html[data-theme="wasteland"] .nav-who small { color: #b8955a; }

/* Тишина: бледно-зелёная кромка, без скруглений и без «мягкого» свечения — только тонкая линия и туман */
html[data-theme="horror"] .igra-nav { --nav-r: 0px; --nav-tile-r: 0px; }
html[data-theme="horror"] .igra-nav-item { font-weight: 400; letter-spacing: .06em; }
html[data-theme="horror"] .igra-nav-label { letter-spacing: .3em; color: #6f8a82; }
html[data-theme="horror"] .nav-ic { background: transparent; border: 1px solid #2a4640; color: #8fb3a8; }
html[data-theme="horror"] .igra-nav-item:hover { background: rgba(120,170,155,.10); }
html[data-theme="horror"] .igra-nav-item.is-active, html[data-theme="horror"] .igra-nav-item.is-active:hover {
  background: linear-gradient(90deg, rgba(150,200,185,.16), transparent); border-color: rgba(150,200,185,.25);
  box-shadow: inset 1px 0 0 #b9e0d3, 0 0 26px -10px rgba(185,224,211,.6); color: #e6f3ee;
}
html[data-theme="horror"] .igra-nav-item.is-active .nav-ic { background: rgba(185,224,211,.9); color: #0a0e0d; border-color: transparent; box-shadow: 0 0 14px rgba(185,224,211,.45); }
html[data-theme="horror"] .igra-nav-account { background: rgba(120,170,155,.07); border-color: #2a4640; }

/* Нуар: тонкие линейки вместо плиток, светлая гарнитура, активный пункт подчёркнут «фонарём» */
html[data-theme="noir"] .igra-nav { --nav-r: 0px; --nav-tile-r: 50%; }
html[data-theme="noir"] .igra-nav-item { font-family: var(--font-display); font-size: 1.02rem; font-style: italic; letter-spacing: .02em; }
html[data-theme="noir"] .igra-nav-label { font-family: var(--font-display); font-style: normal; letter-spacing: .28em; color: #9a9483; }
html[data-theme="noir"] .nav-ic { background: transparent; border: 1px solid #55503f; color: #cfc7ae; }
html[data-theme="noir"] .igra-nav-item:hover { background: rgba(255,255,255,.05); border-bottom-color: #55503f; }
html[data-theme="noir"] .igra-nav-item.is-active, html[data-theme="noir"] .igra-nav-item.is-active:hover {
  background: linear-gradient(180deg, rgba(255,235,180,.10), rgba(255,235,180,.02)); border-color: transparent;
  border-bottom: 1px solid #d9b45c; box-shadow: inset 0 2px 14px -8px rgba(255,220,140,.6); color: #fff3cf;
}
html[data-theme="noir"] .igra-nav-item.is-active .nav-ic { background: #d9b45c; color: #14110a; border-color: transparent; box-shadow: 0 0 16px -2px rgba(255,220,140,.7); }
html[data-theme="noir"] .igra-nav-account { background: rgba(255,255,255,.04); border-color: #55503f; border-radius: 0; }

/* Бездна: глубоководные скругления, циановое свечение, «пузыри» вместо плиток */
html[data-theme="abyss"] .igra-nav { --nav-r: 16px; --nav-tile-r: 50%; }
html[data-theme="abyss"] .igra-nav-label { color: #4fbfd0; letter-spacing: .2em; }
html[data-theme="abyss"] .igra-nav-label::before { content: '≈'; font-size: 1.2em; color: #2bb3c8; }
html[data-theme="abyss"] .nav-ic { background: radial-gradient(circle at 32% 28%, rgba(79,216,232,.28), rgba(6,20,32,.6)); border: 1px solid rgba(79,216,232,.4); color: #6fe0ee; }
html[data-theme="abyss"] .igra-nav-item:hover { background: linear-gradient(90deg, rgba(43,179,200,.2), rgba(43,179,200,.02)); }
html[data-theme="abyss"] .igra-nav-item.is-active, html[data-theme="abyss"] .igra-nav-item.is-active:hover {
  background: linear-gradient(90deg, rgba(43,179,200,.36), rgba(122,92,240,.10)); border-color: rgba(79,216,232,.6);
  box-shadow: inset 3px 0 0 #4fd8e8, 0 0 24px -6px rgba(79,216,232,.7); color: #eafcff;
}
html[data-theme="abyss"] .igra-nav-item.is-active .nav-ic { background: radial-gradient(circle at 32% 28%, #7ff0fb, #2bb3c8 60%, #4a3cc8); color: #04121a; border-color: transparent; box-shadow: 0 0 16px rgba(79,216,232,.7); }
html[data-theme="abyss"] .igra-nav-account { background: linear-gradient(135deg, rgba(43,179,200,.24), rgba(122,92,240,.10)); border-color: rgba(79,216,232,.45); border-radius: 18px; }

/* Терминал: моноширинный, приглашение «> », скобки, курсор у активного пункта */
html[data-theme="crt"] .igra-nav { --nav-r: 2px; --nav-tile-r: 2px; }
html[data-theme="crt"] .igra-nav-item, html[data-theme="crt"] .igra-nav-account, html[data-theme="crt"] .igra-nav-label {
  font-family: 'VT323', 'Consolas', monospace; letter-spacing: .03em;
}
html[data-theme="crt"] .igra-nav-item { font-size: 1.2rem; color: #7dffa0; font-weight: 400; }
html[data-theme="crt"] .igra-nav-label { font-size: .95rem; color: #22e05c; opacity: .75; text-transform: none; letter-spacing: .06em; }
html[data-theme="crt"] .igra-nav-label::before { content: '//'; }
html[data-theme="crt"] .igra-nav-label::after { height: 0; background: none; border-top: 1px dashed #12351b; }
html[data-theme="crt"] .nav-ic { background: transparent; border: 1px solid #12351b; color: #22e05c; }
html[data-theme="crt"] .nav-t::before { content: '> '; opacity: 0; }
html[data-theme="crt"] .igra-nav-item:hover, html[data-theme="crt"] .igra-nav-item.is-active { background: #061008; }
html[data-theme="crt"] .igra-nav-item:hover .nav-t::before, html[data-theme="crt"] .igra-nav-item.is-active .nav-t::before { opacity: 1; }
html[data-theme="crt"] .igra-nav-item.is-active, html[data-theme="crt"] .igra-nav-item.is-active:hover {
  background: linear-gradient(90deg, rgba(34,224,92,.2), rgba(34,224,92,.03)); border-color: #22e05c; color: #b6ffc9;
  box-shadow: inset 3px 0 0 #22e05c, 0 0 14px -4px rgba(34,224,92,.6); text-shadow: 0 0 6px rgba(34,224,92,.6);
}
html[data-theme="crt"] .igra-nav-item.is-active .nav-t::after { content: '_'; margin-left: 2px; animation: crt-nav-blink 1s steps(1) infinite; }
@keyframes crt-nav-blink { 50% { opacity: 0; } }
html[data-theme="crt"] .igra-nav-item.is-active .nav-ic { background: #22e05c; color: #02120a; border-color: #22e05c; box-shadow: none; }
html[data-theme="crt"] .igra-nav-account { border: 1px solid #22e05c; background: rgba(34,224,92,.06); }
html[data-theme="crt"] .nav-who small { font-size: .95rem; text-transform: none; letter-spacing: .04em; color: #22e05c; }
html[data-theme="crt"] .nav-who small::before { content: '$ '; }
html[data-theme="crt"] .nav-who b { font-size: 1.15rem; font-weight: 400; color: #b6ffc9; }
html[data-theme="crt"] .igra-nav-item .tag { border-radius: 2px; }
html[data-theme="crt"] #navLogout { color: #ff8f9c; }
@media (prefers-reduced-motion: reduce) { html[data-theme="crt"] .igra-nav-item.is-active .nav-t::after { animation: none; } }

/* 29.09: развёртка ЭЛТ — только на экране партии; на остальных экранах фон ровный, без фактуры */
html[data-theme="crt"] body.igra-flat::after, html[data-theme="crt"] body.igra-flat .igra-main::before { display: none; }

/* 29.09 (контраст 4.5:1 поверх задника): задник остаётся, под мелкими плавающими
   надписями и строками фильтров — полупрозрачная подложка из токенов темы. */
html[data-story="1"] .igra-shell :where(.igra-hint, h2.igra-col-title, .tv-switch, #tvAdultHint + *):where(:not(.igra-card *)):where(:not(.igra-empty-card *)) {
  background: color-mix(in srgb, var(--bg) 84%, transparent);
  color: var(--text);
  border-radius: var(--radius-sm); padding: 4px 12px;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
html[data-story="1"] .igra-shell .tv-filters .tv-chips input:not(:checked) + label,
html[data-story="1"] .igra-shell .tv-filters .tv-seg input:not(:checked) + label {
  background: color-mix(in srgb, var(--bg) 84%, transparent); color: var(--text);
}
html[data-story="1"] .igra-shell .tv-subnav { background: color-mix(in srgb, var(--bg) 94%, transparent); border-radius: var(--radius-sm); }
html[data-story="1"] .igra-shell :is(.tv-search input, #turnInput, #magazinCustomAmount) { background: color-mix(in srgb, var(--bg) 88%, transparent); }
html[data-story="1"] .igra-shell :is(.tv-search input, #turnInput, #magazinCustomAmount)::placeholder { color: var(--text-2); opacity: 1; }
html[data-story="1"] .igra-shell p.igra-hint b, html[data-story="1"] .igra-shell .igra-hint b { color: var(--text); }
/* Кнопки на среднем по яркости фоне: светлее заливка, тёмный текст --on-gold остаётся */
html[data-theme="wasteland"][data-story="1"] .btn-primary,
html[data-theme="horror"][data-story="1"] .btn-primary {
  background: linear-gradient(135deg, color-mix(in srgb, var(--btn-a, var(--gold-2)) 70%, #fff), color-mix(in srgb, var(--btn-b, var(--gold)) 70%, #fff));
}
html[data-theme="neo_action"][data-story="1"] .btn-primary { background: linear-gradient(180deg, #00e878, #00bd60); color: #000; }
html[data-theme="abyss"][data-story="1"] .btn-primary { background: linear-gradient(135deg, #4fd8e8, #9a86ff); }
html[data-story="1"] .igra-shell .tv-filters .tv-chips input:checked + label {
  background: color-mix(in srgb, var(--bg) 92%, transparent); color: var(--text); border-color: var(--gold-2);
}
html[data-story="1"] .igra-shell a.igra-hint, html[data-story="1"] .igra-shell a.igra-hint:visited { color: var(--text); }
/* Страница записи Таверны лежит прямо на заднике: подпись над названием, короткое описание, строка автора и полное описание
   читались с 1.4-3.9:1 в светлых и сиреневых темах (описание вообще было зашито светлым #e7dfd2). Подложка из токенов темы. */
html[data-story="1"] .igra-shell :is(.tv-record-eyebrow, .tv-record-short, .tv-record-meta, .tv-record-desc) {
  background: color-mix(in srgb, var(--bg) 84%, transparent); color: var(--text);
  border-radius: var(--radius-sm); padding: 6px 12px;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
html .igra-shell p.eyebrow.tv-record-eyebrow { color: var(--text-2); }  /* --gold у dark_purple 2.7:1 на тёмном */
html[data-story="1"] .igra-shell p.eyebrow.tv-record-eyebrow { width: fit-content; }
html[data-story="1"] .igra-shell .tv-record-meta { color: var(--text-2); }
html[data-theme="horror"][data-story="1"] .btn-primary {  /* виньетка body::after затемняет кнопки у низа экрана */
  background: linear-gradient(135deg, color-mix(in srgb, var(--btn-a, var(--gold-2)) 45%, #fff), color-mix(in srgb, var(--btn-b, var(--gold)) 45%, #fff));
}
html[data-theme^="dark_"] .igra-shell a.igra-hint {
  background: color-mix(in srgb, var(--bg) 84%, transparent); color: var(--text);
  border-radius: var(--radius-sm); padding: 4px 12px;
}

/* Надпись «RPG Studio» экрана входа лежит прямо на 3D-заднике: у «Летописи» и пустоши
   серо-сиреневая на небе не читалась. Та же подложка, что у подписей выше. */
html[data-story="1"] .igra-auth-brand {
  background: color-mix(in srgb, var(--bg) 82%, transparent); color: var(--text);
  border-radius: var(--radius-sm); padding: 4px 12px;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}

/* ═══ Экран партии по темам (30.09, раунд 2) ═════════════════════════════════
   Основа — igra.css, раздел «Экран партии: материал и шрифты» (переменные --pt-*).
   Здесь у каждой темы своё лицо: шрифт заголовка и прозы (все с кириллицей —
   прежние Orbitron/VT323/Special Elite/Quicksand русских букв не имеют вовсе),
   материал пузыря, ярлык говорящего, уголки. Откуда какой приём — в
   F:\Android\otchet\igra_dizajn_0930\referensy\referensy.md. Переменные ставятся на
   html: --pt-corners собирается из --pt-corner там же, где объявлен. */
:where(.igra-turn-assistant, .igra-turn-user) :where(b, strong) { font-weight: 700; }

/* ── Цветовые темы: антиква Playfair в заголовке, книжная Lora в тексте (NovelAI, NieR) ── */
html[data-theme^="dark_"] { --pt-title: 'Playfair Display', Georgia, serif; }

/* ── Летопись: пергамент в золотой двойной рамке, табличка «Мастер», буквица-миниатюра (Hades) ── */
html[data-theme="fantasy"] {
  --pt-title: 'Cormorant SC', 'Playfair Display', Georgia, serif; --pt-title-track: .03em;
  --pt-prose: 'Alegreya', Georgia, serif; --pt-prose-size: 1.12rem; --pt-prose-lh: 1.7;
  --pt-corner: #9a6d1e; --pt-radius: 6px;
  --pt-corners:
    linear-gradient(var(--pt-corner), var(--pt-corner)) left 10px top 10px / 16px 2px no-repeat,
    linear-gradient(var(--pt-corner), var(--pt-corner)) left 10px top 10px / 2px 16px no-repeat,
    linear-gradient(var(--pt-corner), var(--pt-corner)) right 10px top 10px / 16px 2px no-repeat,
    linear-gradient(var(--pt-corner), var(--pt-corner)) right 10px top 10px / 2px 16px no-repeat,
    linear-gradient(var(--pt-corner), var(--pt-corner)) left 10px bottom 10px / 16px 2px no-repeat,
    linear-gradient(var(--pt-corner), var(--pt-corner)) left 10px bottom 10px / 2px 16px no-repeat,
    linear-gradient(var(--pt-corner), var(--pt-corner)) right 10px bottom 10px / 16px 2px no-repeat,
    linear-gradient(var(--pt-corner), var(--pt-corner)) right 10px bottom 10px / 2px 16px no-repeat;
}
html[data-theme="fantasy"] .igra-title { color: #f2d892; }
html[data-theme="fantasy"] .igra-turn-assistant {
  color: #2b1d0c; border: 2px solid #8a621c; backdrop-filter: none; -webkit-backdrop-filter: none;
  background:
    var(--pt-corners),
    radial-gradient(120% 70% at 50% 0%, rgba(255,252,242,.7), transparent 62%),
    radial-gradient(160% 110% at 50% 125%, rgba(150,100,40,.14), transparent 62%),
    linear-gradient(176deg, #f8eed6, #efdfba);
  box-shadow: inset 0 0 0 3px #f8eed6, inset 0 0 0 4px rgba(138,98,28,.6), inset 0 0 18px rgba(150,100,40,.16),
              0 1px 1px rgba(0,0,0,.4), 0 10px 22px -8px rgba(0,0,0,.6), 0 30px 50px -26px rgba(0,0,0,.8);
}
html[data-theme="fantasy"] .igra-turn-assistant::before {
  top: 14px; left: 22px; border-radius: 3px; letter-spacing: .2em; color: #f3d892;
  background: linear-gradient(180deg, #7a2a2a, #521b1b); border: 1px solid #c9962e;
  box-shadow: inset 0 0 0 2px #521b1b, inset 0 0 0 3px rgba(224,173,63,.4), 0 3px 6px -2px rgba(0,0,0,.5);
  padding: 5px 12px;
}
html[data-theme="fantasy"] .igra-turns:not(.is-folded) > .igra-turn-assistant:not(.igra-turn-assistant ~ .igra-turn-assistant):not(.igra-turn-pending)::first-letter {
  font-size: 2.9em; line-height: .92; color: #f3d27a; text-shadow: 0 1px 0 #2a0c0c;
  background: linear-gradient(160deg, #8a2e2e, #4a1616); border: 1px solid #c9962e; border-radius: 3px;
  padding: .1em .16em .04em; margin: .12em .18em 0 0;
}
html[data-theme="fantasy"] .igra-turns > .igra-turn-assistant:last-child:not(.igra-turn-pending)::after { background: #8a621c; filter: none; }
html[data-theme="fantasy"] .igra-turn-pending .igra-typing i { background: #8a621c; box-shadow: none; }
html[data-theme="fantasy"] .igra-turn-pending .igra-typing::after { color: #5a4526; }
html[data-theme="fantasy"] .igra-turn-user {
  border: 1px solid #c9962e; border-radius: 16px 16px 4px 16px;
  background: var(--pt-sheen), linear-gradient(160deg, #3d2e16, #221909);
  box-shadow: inset 0 0 0 2px #221909, inset 0 0 0 3px rgba(224,173,63,.28), 0 10px 22px -10px rgba(0,0,0,.7);
}
html[data-theme="fantasy"] .igra-composer { border-color: #8a621c; box-shadow: inset 0 0 0 3px rgba(20,14,6,.6), inset 0 0 0 4px rgba(224,173,63,.22), var(--pt-shade); }
html[data-theme="fantasy"] .igra-master-popover {
  background: var(--pt-corners), var(--pt-sheen), linear-gradient(180deg, #211a0e, #171108);
  border: 2px solid #8a621c;
  box-shadow: inset 0 0 0 3px #171108, inset 0 0 0 4px rgba(224,173,63,.35), 0 30px 80px -20px rgba(0,0,0,.85);
}
html[data-theme="fantasy"] .igra-begin-card { border: 2px solid #8a621c; box-shadow: inset 0 0 0 3px rgba(20,14,6,.55), inset 0 0 0 4px rgba(224,173,63,.28), var(--pt-shade); }

/* ── Киберпанк: HUD со срезанными углами, циановая кромка, хроматический заголовок (Cyberpunk 2077) ── */
html[data-theme="cyberpunk"] {
  --pt-title: 'Russo One', 'Exo 2', sans-serif; --pt-title-weight: 400; --pt-title-track: .06em; --pt-title-case: uppercase;
  --pt-prose: 'Exo 2', 'Inter', sans-serif; --pt-prose-size: 1.05rem; --pt-prose-lh: 1.7; --pt-ui: 'Exo 2', 'Inter', sans-serif;
  --pt-radius: 0px; --pt-tag-fg: #ff7fdc; --pt-tag-bg: rgba(255,43,214,.12); --pt-tag-bd: rgba(255,43,214,.55);
  --pt-corners:
    linear-gradient(135deg, transparent 9.2px, #3fe0ff 9.2px, #3fe0ff 10.8px, transparent 10.8px) left top / 16px 16px no-repeat,
    linear-gradient(315deg, transparent 9.2px, #3fe0ff 9.2px, #3fe0ff 10.8px, transparent 10.8px) right bottom / 16px 16px no-repeat,
    linear-gradient(#ff2bd6, #ff2bd6) right 8px top 8px / 18px 2px no-repeat,
    linear-gradient(#3fe0ff, #3fe0ff) left 8px bottom 8px / 2px 12px no-repeat;
}
html[data-theme="cyberpunk"] .igra-title { color: #b8f7ff; text-shadow: var(--halo), -1.5px 0 rgba(255,43,214,.65), 1.5px 0 rgba(0,200,240,.65), 0 0 18px rgba(0,200,240,.6); }
html[data-theme="cyberpunk"] .igra-turn-assistant, html[data-theme="cyberpunk"] .igra-begin-card {
  clip-path: polygon(15px 0, 100% 0, 100% calc(100% - 15px), calc(100% - 15px) 100%, 0 100%, 0 15px);
  border: 1px solid rgba(63,224,255,.5);
  box-shadow: inset 0 0 0 1px rgba(0,200,240,.12), inset 0 0 30px rgba(0,200,240,.08), inset 0 1px 0 rgba(160,240,255,.25);
}
html[data-theme="cyberpunk"] .igra-turn-assistant::before { border-radius: 0; font-family: 'Exo 2', sans-serif; letter-spacing: .22em; clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px); border: 0; box-shadow: inset 0 0 0 1px rgba(255,43,214,.6); }
html[data-theme="cyberpunk"] .igra-turn-user {
  border-radius: 0; clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 12px 100%, 0 calc(100% - 12px));
  border: 1px solid rgba(255,43,214,.55); background: var(--pt-sheen), linear-gradient(160deg, rgba(90,14,80,.7), rgba(20,8,30,.85));
  box-shadow: inset 0 0 22px rgba(255,43,214,.12), inset 0 1px 0 rgba(255,180,240,.2);
}
html[data-theme="cyberpunk"] .igra-composer { border-radius: 0; clip-path: polygon(14px 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%, 0 14px); border-color: rgba(63,224,255,.55); box-shadow: inset 0 0 26px rgba(0,200,240,.1), inset 0 1px 0 rgba(160,240,255,.22); }
html[data-theme="cyberpunk"] .igra-composer:focus-within { border-color: #3fe0ff; box-shadow: inset 0 0 30px rgba(0,200,240,.2), inset 0 1px 0 rgba(160,240,255,.3); }
html[data-theme="cyberpunk"] .igra-master-pill { border-radius: 0; clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px); }
html[data-theme="cyberpunk"] .igra-master-pill svg { border-radius: 0; }
html[data-theme="cyberpunk"] .igra-send-btn { border-radius: 0; clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); }
html[data-theme="cyberpunk"] .igra-master-popover { border-radius: 0; }
html[data-theme="cyberpunk"] .igra-model-item { border-radius: 0; clip-path: polygon(9px 0, 100% 0, 100% calc(100% - 9px), calc(100% - 9px) 100%, 0 100%, 0 9px); }
html[data-theme="cyberpunk"] .igra-begin-ico { border-radius: 0; clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); }

/* ── Розовое королевство: светлое стекло, ярлык-наклейка, розовая линия под именем (Honkai Impact 3rd, Hidden Door) ── */
html[data-theme="pink_kingdom"] {
  --pt-title: 'Comfortaa', 'Nunito', sans-serif; --pt-title-track: 0;
  --pt-prose: 'Nunito', 'Inter', sans-serif; --pt-prose-size: 1.06rem; --pt-prose-lh: 1.72; --pt-ui: 'Nunito', 'Inter', sans-serif;
  --pt-radius: 24px; --pt-edge: rgba(255,255,255,.95); --pt-sheen: linear-gradient(180deg, rgba(255,255,255,.7), rgba(255,255,255,0) 45%);
  --pt-glow: rgba(240,72,154,.35); --pt-frame: #f1b5d0; --pt-glass: rgba(255,247,251,.9);
  --pt-shade: 0 1px 1px rgba(190,60,120,.14), 0 8px 16px -8px rgba(190,60,120,.3), 0 22px 44px -22px rgba(190,60,120,.5);
  --pt-corner: #f48fbe;
  --pt-corners:
    radial-gradient(circle, #f48fbe 0 2px, transparent 2.5px) right 14px top 14px / 8px 8px no-repeat,
    radial-gradient(circle, #ffc2de 0 1.5px, transparent 2px) right 26px top 12px / 6px 6px no-repeat,
    linear-gradient(90deg, #f0489a, #ffb3d6 45%, transparent) left 22px top 38px / 46% 1.5px no-repeat;
}
html[data-theme="pink_kingdom"] .igra-title { color: #b01f6c; text-shadow: var(--halo), 0 2px 14px rgba(240,72,154,.3); }
html[data-theme="pink_kingdom"] .igra-turn-assistant {
  border: 1.5px solid #f3c4d9; border-radius: 24px 24px 24px 8px;
  background: var(--pt-corners), var(--pt-sheen), linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,242,248,.9));
  padding-top: 48px;
}
html[data-theme="pink_kingdom"] .igra-turn-assistant::before {
  top: 12px; color: #fff; border: 0; transform: rotate(-2deg); letter-spacing: .14em;
  background: linear-gradient(180deg, #cf2b7d, #a3195c); box-shadow: 0 4px 10px -4px rgba(160,30,90,.6), inset 0 1px 0 rgba(255,255,255,.35);
}
html[data-theme="pink_kingdom"] .igra-turn-user {
  color: #fff; border: 1px solid #ffb9d8; border-radius: 22px 22px 8px 22px;
  background: radial-gradient(90% 60% at 50% 0%, rgba(255,255,255,.3), transparent 60%), linear-gradient(170deg, #c9277a, #a3195c);
  box-shadow: 0 10px 22px -10px rgba(200,40,120,.6), inset 0 -3px 6px rgba(120,15,65,.35), inset 0 1px 0 rgba(255,255,255,.4);
  text-shadow: 0 1px 1px rgba(110,10,60,.35);
}
html[data-theme="pink_kingdom"] .igra-composer { border-color: #f1b5d0; }
html[data-theme="pink_kingdom"] .igra-master-popover { background-color: #fff5f9; }
/* Находка 074: окно «Лорбук» было фиксированно тёмным, а текст в этой светлой теме тёмно-розовый (1,3:1); светлая подложка, как у соседних окон */
html[data-theme="pink_kingdom"] .pt-lb { background: #fff5f9; box-shadow: 0 30px 90px -20px rgba(120,15,65,.45), inset 0 1px 0 #fff; border-color: #f1b5d0; }
html[data-theme="pink_kingdom"] .igra-typing::after { color: #8a4e6d; }

/* ── Экшен: комиксовый пузырь — жёсткая смещённая тень, скошенный ярлык (Hi-Fi Rush, AI Dungeon) ── */
html[data-theme="neo_action"] {
  --pt-title: 'Oswald', 'Roboto Condensed', sans-serif; --pt-title-case: uppercase; --pt-title-track: .05em;
  --pt-prose: 'Roboto Condensed', 'Inter', sans-serif; --pt-prose-size: 1.09rem; --pt-prose-lh: 1.68; --pt-ui: 'Roboto Condensed', 'Inter', sans-serif;
  --pt-radius: 4px;
  --pt-shade: 6px 6px 0 rgba(0,0,0,.6), 0 16px 34px -18px rgba(0,0,0,.8);
  --pt-corner: #ffb020;
}
html[data-theme="neo_action"] .igra-title { color: #e9fff2; text-shadow: var(--halo), 3px 3px 0 rgba(0,163,82,.55); }
html[data-theme="neo_action"] .igra-turn-assistant { border: 2px solid rgba(0,217,110,.55); border-radius: 4px 4px 4px 0; }
html[data-theme="neo_action"] .igra-turn-assistant::before {
  left: 16px; border-radius: 2px; border: 0; transform: skewX(-14deg); color: #03140b; letter-spacing: .16em;
  background: linear-gradient(180deg, #3dff9c, #00d96e); box-shadow: 3px 3px 0 rgba(0,0,0,.55);
}
html[data-theme="neo_action"] .igra-turn-user { border: 2px solid #3dff9c; border-radius: 4px 4px 0 4px; box-shadow: -5px 5px 0 rgba(0,0,0,.55); }
html[data-theme="neo_action"] .igra-composer { border-radius: 6px; border: 2px solid rgba(0,217,110,.55); box-shadow: 6px 6px 0 rgba(0,0,0,.55), inset 0 1px 0 var(--pt-edge); }
html[data-theme="neo_action"] .igra-composer:focus-within { border-color: #3dff9c; box-shadow: 6px 6px 0 rgba(0,0,0,.55), 0 0 22px -4px rgba(0,217,110,.6); }
html[data-theme="neo_action"] .igra-master-pill { border-radius: 4px; }
html[data-theme="neo_action"] .igra-master-pill svg { border-radius: 3px; }
html[data-theme="neo_action"] .igra-send-btn { box-shadow: 4px 4px 0 rgba(0,0,0,.6), 0 0 14px rgba(0,217,110,.45); }
html[data-theme="neo_action"] .igra-begin-card { border-width: 2px; }
html[data-theme="neo_action"] .igra-begin-ico { border-radius: 4px; }

/* ── Пустошь: клёпаная пластина, штамп-ярлык, «грязный» заголовок (Stardew — рамка, Hidden Door — наклон) ── */
html[data-theme="wasteland"] {
  --pt-title: 'Rubik Dirt', 'Oswald', sans-serif; --pt-title-weight: 400; --pt-title-track: .02em;
  --pt-prose: 'Podkova', Georgia, serif; --pt-prose-size: 1.06rem; --pt-prose-lh: 1.72;
  --pt-radius: 5px;
  --pt-corners:
    radial-gradient(circle at 40% 35%, #e3a870, #7a4a22 55%, transparent 62%) left 7px top 7px / 8px 8px no-repeat,
    radial-gradient(circle at 40% 35%, #e3a870, #7a4a22 55%, transparent 62%) right 7px top 7px / 8px 8px no-repeat,
    radial-gradient(circle at 40% 35%, #e3a870, #7a4a22 55%, transparent 62%) left 7px bottom 7px / 8px 8px no-repeat,
    radial-gradient(circle at 40% 35%, #e3a870, #7a4a22 55%, transparent 62%) right 7px bottom 7px / 8px 8px no-repeat,
    repeating-linear-gradient(100deg, rgba(255,230,190,.022) 0 2px, transparent 2px 9px);
}
html[data-theme="wasteland"] .igra-title, html[data-theme="wasteland"] .igra-begin-title { color: #f4b27a; text-shadow: 0 2px 0 rgba(0,0,0,.85), 0 0 14px rgba(0,0,0,.75), 0 0 30px var(--bg); }
html[data-theme="wasteland"] .igra-begin-name, html[data-theme="wasteland"] .igra-sheet-title { font-family: "Podkova", Georgia, serif; font-weight: 600; }
html[data-theme="wasteland"] .igra-turn-assistant, html[data-theme="wasteland"] .igra-begin-card {
  border: 2px solid #5e4222;
  box-shadow: inset 0 0 0 1px #0f0b06, inset 0 0 0 3px rgba(194,112,58,.22), inset 0 -14px 30px -18px rgba(150,80,30,.35), var(--pt-shade);
}
html[data-theme="wasteland"] .igra-turn-assistant::before {
  left: 24px; background: rgba(20,14,8,.55); color: #f0a468; border: 2px solid #c2703a; border-radius: 2px;
  transform: rotate(-2.5deg); letter-spacing: .2em;
}
html[data-theme="wasteland"] .igra-turn-user { border: 2px solid #c2703a; border-radius: 4px 4px 0 4px; background: var(--pt-sheen), linear-gradient(160deg, rgba(110,56,24,.72), rgba(44,28,14,.9)); }
html[data-theme="wasteland"] .igra-composer { border-radius: 8px; border: 2px solid #5e4222; box-shadow: inset 0 0 0 1px #0f0b06, var(--pt-shade); }
html[data-theme="wasteland"] .igra-master-pill, html[data-theme="wasteland"] .igra-master-pill svg { border-radius: 3px; }

/* ── Тишина: почти без коробки — волосяные линии сверху и снизу, капитель с разрядкой (Hollow Knight, Blasphemous) ── */
html[data-theme="horror"] {
  --pt-title: 'Cormorant', 'Spectral', Georgia, serif; --pt-title-weight: 600; --pt-title-case: uppercase; --pt-title-track: .16em;
  --pt-prose: 'Spectral', Georgia, serif; --pt-prose-size: 1.07rem; --pt-prose-lh: 1.8;
  --pt-radius: 0px; --pt-glow: rgba(185,224,211,.3);
  --pt-tag-bg: transparent; --pt-tag-bd: transparent; --pt-tag-fg: #a9cfc3;
  --pt-corners:
    linear-gradient(90deg, transparent, rgba(185,224,211,.55) 30%, rgba(185,224,211,.55) 70%, transparent) center top 0 / 70% 1px no-repeat,
    linear-gradient(90deg, transparent, rgba(185,224,211,.4) 30%, rgba(185,224,211,.4) 70%, transparent) center bottom 0 / 70% 1px no-repeat;
}
html[data-theme="horror"] .igra-title { color: #e2f0eb; }
html[data-theme="horror"] .igra-turn-assistant {
  border: 0; border-radius: 0;
  background: var(--pt-corners), linear-gradient(180deg, rgba(10,14,14,.9), rgba(6,9,9,.93));
  box-shadow: 0 30px 60px -30px rgba(0,0,0,.9), inset 0 0 60px rgba(120,170,155,.05);
}
html[data-theme="horror"] .igra-turn-assistant::before { left: 50%; transform: translateX(-50%); letter-spacing: .42em; font-weight: 600; }
html[data-theme="horror"] .igra-turn-assistant::before { content: '· Мастер ·'; }
html[data-theme="horror"] .igra-turn-user { border-radius: 0; border: 1px solid rgba(185,224,211,.3); background: rgba(14,22,21,.9); box-shadow: 0 16px 30px -20px rgba(0,0,0,.9); }
html[data-theme="horror"] .igra-composer { border-radius: 0; border-color: rgba(185,224,211,.3); }
html[data-theme="horror"] .igra-master-pill, html[data-theme="horror"] .igra-master-pill svg, html[data-theme="horror"] .igra-model-item, html[data-theme="horror"] .igra-begin-ico { border-radius: 0; }
html[data-theme="horror"] .igra-begin-card { border-radius: 0; }

/* ── Нуар: чёрно-белый кадр, одна тёплая полоса фонаря, хвост реплики (Night Call) ── */
html[data-theme="noir"] {
  --pt-title: 'Playfair Display', Georgia, serif; --pt-title-weight: 600;
  --pt-prose: 'Old Standard TT', 'PT Serif', Georgia, serif; --pt-prose-size: 1.09rem; --pt-prose-lh: 1.74;
  --pt-radius: 3px; --pt-tag-bg: transparent; --pt-tag-bd: transparent; --pt-tag-fg: #c9c5bc;
  --pt-glow: rgba(217,164,65,.28);
  --pt-corners: linear-gradient(90deg, rgba(217,164,65,.22), transparent 38%) left top / 100% 100% no-repeat;
}
html[data-theme="noir"] .igra-title { font-style: italic; color: #f3ecdc; }
html[data-theme="noir"] .igra-turn-assistant {
  color: #f2f0ea; letter-spacing: .012em; border: 1px solid #3b3b3e; border-left: 3px solid #d9a441;
  background: var(--pt-corners), linear-gradient(180deg, rgba(22,22,23,.93), rgba(12,12,13,.95));
}
html[data-theme="noir"] .igra-turn-assistant::before { padding-left: 0; letter-spacing: .3em; }
html[data-theme="noir"] .igra-turn-user {
  border-radius: 4px 4px 0 4px; border: 1px solid #6b6862; background: linear-gradient(180deg, #232325, #19191a); color: #e6e4df;
  box-shadow: 0 14px 26px -16px rgba(0,0,0,.9);
}
html[data-theme="noir"] .igra-turn-user::after {
  content: ''; position: absolute; right: -1px; bottom: -11px; width: 16px; height: 11px;
  background: #6b6862; clip-path: polygon(0 0, 100% 0, 100% 100%);
}
html[data-theme="noir"] .igra-composer, html[data-theme="noir"] .igra-master-pill, html[data-theme="noir"] .igra-begin-card { border-radius: 4px; }

/* ── Бездна: биолюминесцентное стекло, светящиеся точки по углам (Honkai: Star Rail) ── */
html[data-theme="abyss"] {
  --pt-title: 'Philosopher', 'Lora', serif; --pt-title-track: .02em;
  --pt-radius: 20px; --pt-glow: rgba(79,216,232,.4);
  --pt-bubble: linear-gradient(170deg, rgba(10,26,40,.84), rgba(14,16,44,.86));
  --pt-corners:
    radial-gradient(circle, #7ff0fb 0 1.6px, rgba(79,216,232,.35) 2.6px, transparent 5px) left 8px top 8px / 12px 12px no-repeat,
    radial-gradient(circle, #7ff0fb 0 1.6px, rgba(79,216,232,.35) 2.6px, transparent 5px) right 8px bottom 8px / 12px 12px no-repeat,
    linear-gradient(90deg, rgba(79,216,232,.5), transparent) left 20px bottom 0 / 40% 1px no-repeat;
}
html[data-theme="abyss"] .igra-title { color: #dffbff; text-shadow: var(--halo), 0 0 22px rgba(79,216,232,.65); }
html[data-theme="abyss"] .igra-turn-assistant { border: 1px solid rgba(79,216,232,.38); box-shadow: var(--pt-shade), 0 0 30px -8px rgba(43,179,200,.45), inset 0 1px 0 rgba(180,245,255,.2), inset 0 0 30px rgba(79,216,232,.06); }
html[data-theme="abyss"] .igra-turn-user { border-color: rgba(122,92,240,.6); background: var(--pt-sheen), linear-gradient(160deg, rgba(60,44,150,.62), rgba(12,20,48,.9)); }

/* ── Терминал: контурные окна с подписью, врезанной в рамку, люминофор (Superhot, VA-11 Hall-A) ── */
html[data-theme="crt"] {
  /* Находка 075: у Pixelify Sans кириллические «ь», «д», «б», «С» похожи на латинские b, d, 6, O («расхоа», «ВыБор»). Заголовки набираем Ubuntu Mono: терминальный вид, но русские буквы однозначны */
  --pt-title: 'Ubuntu Mono', Consolas, monospace; --pt-title-weight: 700; --pt-title-track: .02em;
  --pt-prose: 'Ubuntu Mono', Consolas, monospace; --pt-prose-size: 1.16rem; --pt-prose-lh: 1.6; --pt-ui: 'Ubuntu Mono', Consolas, monospace;
  --pt-radius: 2px; --pt-glow: rgba(34,224,92,.45); --pt-edge: rgba(120,255,170,.12);
  --pt-tag-bg: #020604; --pt-tag-bd: transparent; --pt-tag-fg: #57ff8c;
  --pt-shade: 0 0 0 1px rgba(34,224,92,.12), 0 0 22px -6px rgba(34,224,92,.4);
  --pt-corners: linear-gradient(transparent, transparent);
  --pt-bubble: linear-gradient(rgba(2,10,5,.9), rgba(2,10,5,.9));
  --pt-sheen: linear-gradient(transparent, transparent);
}
html[data-theme="crt"] .igra-title, html[data-theme="crt"] .igra-begin-name, html[data-theme="crt"] .igra-sheet-title { font-family: var(--pt-title); }
html[data-theme="crt"] .igra-title { color: #9dffb9; text-shadow: 0 0 8px rgba(34,224,92,.6); }
html[data-theme="crt"] .igra-turn-assistant {
  color: #7dffa0; text-shadow: 0 0 6px rgba(34,224,92,.45); border: 1px solid #22e05c; padding-top: 22px;
  backdrop-filter: none; -webkit-backdrop-filter: none;
  box-shadow: var(--pt-shade), inset 0 0 24px rgba(34,224,92,.08);
}
html[data-theme="crt"] .igra-turn-assistant::before, html[data-theme="crt"] .igra-turn-user::before {
  content: '[ Мастер ]'; position: absolute; top: -.62em; left: 14px; padding: 0 6px; border: 0; border-radius: 0;
  font: 400 .92rem/1.2 var(--pt-ui); letter-spacing: .1em; text-transform: uppercase; color: #57ff8c; background: #020604;
}
html[data-theme="crt"] .igra-turn-user::before { content: '[ Вы ]'; left: auto; right: 14px; pointer-events: none; }
html[data-theme="crt"] .igra-turn-user {
  font-family: var(--pt-ui); font-size: 1.08rem; color: #b6ffc9; border: 1px dashed #22e05c; border-radius: 2px;
  background: rgba(4,18,9,.9); backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: none; padding-top: 16px;
}
html[data-theme="crt"] .igra-turns:not(.is-folded) > .igra-turn-assistant:not(.igra-turn-assistant ~ .igra-turn-assistant):not(.igra-turn-pending)::first-letter {
  color: #020604; background: #57ff8c; text-shadow: none; font-size: 2.6em; line-height: 1; padding: 0 .08em; margin: .12em .14em 0 0;
}
html[data-theme="crt"] .igra-turns > .igra-turn-assistant:last-child:not(.igra-turn-pending)::after { left: auto; right: 18px; margin-left: 0;
  width: .55em; height: 1em; clip-path: none; background: #57ff8c; animation: crt-blink 1.05s steps(1) infinite; bottom: 14px;
}
html[data-theme="crt"] .igra-composer { border-radius: 2px; border-color: #22e05c; padding: 10px 10px 8px 25px; box-shadow: 0 0 18px -6px rgba(34,224,92,.5); }
html[data-theme="crt"] .crt-prompt { left: 30px; top: 21px; }
html[data-theme="crt"] .igra-master-pill, html[data-theme="crt"] .igra-begin-card, html[data-theme="crt"] .igra-model-item,
html[data-theme="crt"] .igra-sheet-count, html[data-theme="crt"] .igra-input-hint { font-family: var(--pt-ui); letter-spacing: .02em; }
html[data-theme="crt"] .igra-master-pill { font-size: .95rem; border-radius: 2px; }
html[data-theme="crt"] .igra-master-pill svg, html[data-theme="crt"] .igra-begin-ico, html[data-theme="crt"] .igra-send-btn { border-radius: 2px; }
html[data-theme="crt"] .igra-begin-card { border-radius: 2px; }
html[data-theme="crt"] .igra-master-popover { border-radius: 2px; }
@media (prefers-reduced-motion: reduce) {
  html[data-theme="crt"] .igra-turns > .igra-turn-assistant:last-child::after { animation: none; }
}
/* Подсказку поля у Терминала заменяет приглашение «> ▮» (.crt-prompt); общее правило
   читаемости подсказки выше (#turnInput::placeholder) её перебивало — обе надписи
   стояли друг на друге («было» 30.09). */
html[data-theme="crt"] .igra-shell #turnInput.igra-turn-input::placeholder { color: transparent; }
html[data-theme="horror"] .igra-sheet-title { font-size: 1.15rem; letter-spacing: .1em; }
html[data-theme="horror"] .igra-begin-title { font-size: 1.1rem; letter-spacing: .1em; }
/* ═══ Читаемость состояний (16.10) ═══════════════════════════════════════════════════════════════════
   Владелец: в светлой «Летописи» кнопки озвучки «Готовим голос…» и «Продолжить» были почти невидимы. Класс поломки:
   состояние (disabled, загрузка, «неактивно») гасилось opacity на ВСЁМ элементе, а цвет шёл от токена тёмной темы.
   Правило: контрол целиком не гасим. Состояние показывают обесцвеченность (filter: saturate), пунктирная рамка,
   анимация и значок, а текст остаётся цветом темы и держит 4,5:1 (недоступные — не ниже 3:1).
   Это одно общее правило вместо заплаток; его держит tests/igra/kontrast_sostoyaniya.test.mjs (13 тем x 2 ширины).
   Селекторы с html впереди перебивают прежние opacity в igra.css, partiya.css, adv.css, guest.css и taverna.css. */
html :is(button, .btn, input, select, textarea, [role="button"], [role="switch"], .lv-buy):disabled,
html :is(button, .btn, [role="button"], .lv-buy)[aria-disabled="true"], html .lv-buy[disabled] { opacity: 1; filter: saturate(.4); }
html :is(button, .btn, .lv-buy, input, select, textarea):disabled:not(.is-loading):not([aria-busy="true"]) { border-style: dashed; box-shadow: none; }
html :is(.igra-model-item.is-down, .igra-model-item.is-unavailable, .igra-model-item.is-content-locked, .pt-char-master.is-locked,
  .tv-mine-item.is-deleted, .pt-lb-pin.is-off, .adv-enemy.is-dead, .igra-turn-partial),
html .gost.is-busy .gost-choice:not(.is-picked), html .gost.is-busy .gost-card,
html .tv-grid[aria-busy="true"]:not(.is-appending) { opacity: 1; filter: grayscale(.7); }
html .igra-turn-partial { filter: none; } /* у недописанного ответа состояние показывает пунктирная рамка (igra.css) */
html :is(.igra-assist-btn.is-busy, .mini-assist.is-busy, .igra-redo-turn) { opacity: 1; }
/* Надписи ожидания в пузыре мастера (19.10: «Мастер продумывает мир…» на пергаменте «Летописи» — 1,8:1). Они берут цвет
   САМОГО пузыря (currentColor, приглушён до 84 %), а не токен --text-2 страницы: у пергаментного пузыря фон светлый при тёмной
   странице. Правило в igra.css (.igra-wait-hint, .igra-typing::after) и guest.css (.igra-writing); тема их не красит заново. */
html .igra-shell .npcx-input::placeholder, html .igra-shell .gost-field::placeholder, html .igra-shell .gost-composer #gostInput::placeholder { opacity: 1; }
/* Подсказка поля в магазине и Кабинете: цвет темы, а не фиксированный светлый (на белом поле «Розового королевства» 1,1:1) */
html .igra-shell .lv-extra input::placeholder { color: var(--text-2); opacity: 1; }
