/* === V28: kinoholograafilised ruumid + stseenipõhised hõljuvad holoaknad === */
.scene.scene-cinematic {
  isolation: isolate;
  background: #010713;
}
.scene.scene-cinematic .scene-background {
  object-fit: cover !important;
  object-position: center !important;
  image-rendering: auto !important;
  filter: saturate(.94) contrast(1.06) brightness(.72) !important;
  transform: scale(1.012);
  animation: cinematicRoomBreath 14s ease-in-out infinite alternate;
}
.scene.scene-cinematic[data-room="thought-ocean"] .scene-background {
  object-fit: contain !important;
  transform: none;
  filter: saturate(1.03) contrast(1.07) brightness(.76) !important;
}
.scene.scene-cinematic .scene-grid {
  opacity: .08;
  background-size: 2.8cqw 2.8cqw;
}
.scene.scene-cinematic .scene-vignette {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(0,7,20,.38) 0%, rgba(0,8,20,.06) 34%, rgba(0,7,18,.24) 100%),
    radial-gradient(circle at 51% 46%, transparent 23%, rgba(0,8,21,.16) 59%, rgba(0,3,12,.64) 100%);
}
.scene.scene-cinematic[data-room="white-command"] .scene-vignette,
.scene.scene-cinematic[data-room="white-guardian"] .scene-vignette,
.scene.scene-cinematic[data-room="medical"] .scene-vignette {
  background:
    linear-gradient(90deg, rgba(0,13,30,.43) 0%, rgba(2,18,37,.10) 38%, rgba(0,8,22,.32) 100%),
    radial-gradient(circle at 50% 45%, transparent 18%, rgba(0,9,22,.10) 52%, rgba(0,4,14,.55) 100%);
}
@keyframes cinematicRoomBreath {
  from { transform: scale(1.012); filter: saturate(.92) contrast(1.05) brightness(.69); }
  to { transform: scale(1.026); filter: saturate(1) contrast(1.08) brightness(.76); }
}

.scene.scene-cinematic .holo-console {
  z-index: 8;
  border-width: max(1px,.12cqw);
  border-radius: .7cqw;
  background:
    linear-gradient(rgba(84,225,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(84,225,255,.045) 1px, transparent 1px),
    linear-gradient(145deg, rgba(5,28,58,.94), rgba(0,12,31,.91));
  background-size: 1.1cqw 1.1cqw, 1.1cqw 1.1cqw, auto;
  box-shadow:
    0 0 0 .08cqw rgba(153,241,255,.17),
    0 0 1.35cqw rgba(50,216,255,.39),
    inset 0 0 2cqw rgba(39,139,220,.18);
  backdrop-filter: blur(8px) saturate(1.18);
  transform: perspective(90cqw) rotateY(-.45deg) translateZ(0);
}
.scene.scene-cinematic[data-scene-group="mantis"] .holo-console {
  background:
    linear-gradient(rgba(182,128,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(182,128,255,.045) 1px, transparent 1px),
    linear-gradient(145deg, rgba(27,16,59,.95), rgba(7,8,31,.92));
  background-size: 1.1cqw 1.1cqw, 1.1cqw 1.1cqw, auto;
}
.scene.scene-cinematic[data-scene-group="oversoul"] .holo-console {
  background:
    linear-gradient(rgba(112,255,216,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(112,255,216,.04) 1px, transparent 1px),
    linear-gradient(145deg, rgba(4,45,52,.94), rgba(1,17,34,.92));
  background-size: 1.1cqw 1.1cqw, 1.1cqw 1.1cqw, auto;
}
.scene.scene-cinematic .holo-console::after {
  content:"";
  position:absolute;
  inset:.28cqw;
  pointer-events:none;
  border:1px solid rgba(129,234,255,.16);
  clip-path:polygon(1.2cqw 0,100% 0,100% calc(100% - 1.2cqw),calc(100% - 1.2cqw) 100%,0 100%,0 1.2cqw);
}

.scene-holo-layer {
  position:absolute;
  inset:0;
  z-index:7;
  pointer-events:none;
  --panel-line:#58ddff;
  --panel-glow:rgba(62,215,255,.43);
  --panel-fill:rgba(1,19,43,.88);
}
.scene-holo-layer[data-tone="mantis"] {
  --panel-line:#b481ff;
  --panel-glow:rgba(170,98,255,.46);
  --panel-fill:rgba(20,10,50,.89);
}
.scene-holo-layer[data-tone="grey"] {
  --panel-line:#58e9ff;
  --panel-glow:rgba(60,228,255,.46);
  --panel-fill:rgba(1,26,49,.89);
}
.scene-holo-layer[data-tone="oversoul"] {
  --panel-line:#72f3c6;
  --panel-glow:rgba(86,238,190,.43);
  --panel-fill:rgba(1,38,45,.88);
}
.scene-float-panel {
  position:absolute;
  min-width:0;
  overflow:hidden;
  color:#e8fbff;
  border:1px solid color-mix(in srgb, var(--panel-line) 82%, white 18%);
  border-radius:.55cqw;
  background:
    linear-gradient(rgba(115,230,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(115,230,255,.045) 1px, transparent 1px),
    linear-gradient(145deg, color-mix(in srgb, var(--panel-fill) 94%, #0d5b7c 6%), var(--panel-fill));
  background-size:.85cqw .85cqw, .85cqw .85cqw, auto;
  box-shadow:0 0 .95cqw var(--panel-glow), inset 0 0 1.1cqw rgba(65,190,255,.12);
  backdrop-filter:blur(7px) saturate(1.2);
  filter:drop-shadow(0 .42cqw .55cqw rgba(0,4,14,.38));
  clip-path:polygon(.75cqw 0,100% 0,100% calc(100% - .75cqw),calc(100% - .75cqw) 100%,0 100%,0 .75cqw);
  animation:scenePanelFloat 5.4s ease-in-out infinite;
}
.scene-float-panel::before {
  content:"";
  position:absolute;
  inset:.22cqw;
  border:1px solid color-mix(in srgb, var(--panel-line) 34%, transparent);
  pointer-events:none;
  clip-path:inherit;
}
.scene-float-panel > * { position:relative; z-index:1; }
.scene-contact-holo {
  left:1.2%;
  top:3.2%;
  width:24.5%;
  padding:.62cqw .68cqw;
  transform:perspective(70cqw) rotateY(1.4deg);
}
.scene-contract-holo {
  left:1.2%;
  bottom:3.3%;
  width:29%;
  padding:.58cqw .68cqw .62cqw;
  animation-delay:-1.6s;
  transform:perspective(70cqw) rotateY(1deg);
}
.scene-status-holo {
  left:27.2%;
  top:3.2%;
  width:22.5%;
  min-height:4.2cqw;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:.55cqw;
  align-items:center;
  padding:.52cqw .68cqw;
  animation-delay:-3s;
}
.scene-status-holo > img {
  width:3.25cqw;
  min-width:34px;
  aspect-ratio:1;
  object-fit:contain;
  filter:drop-shadow(0 0 .55cqw var(--panel-glow));
}
.scene-status-holo span,
.float-panel-heading span,
.float-panel-kicker {
  display:block;
  color:#aeefff;
  font-size:clamp(8px,.61cqw,12px);
  font-weight:950;
  letter-spacing:.09em;
}
.scene-status-holo strong {
  display:block;
  margin:.08cqw 0;
  color:#fff;
  font-size:clamp(12px,.93cqw,18px);
  line-height:1.05;
}
.scene-status-holo small {
  display:block;
  color:#8ee9ff;
  font-size:clamp(8px,.56cqw,11px);
  font-weight:800;
}
.float-panel-heading {
  display:grid;
  grid-template-columns:3.2cqw minmax(0,1fr);
  gap:.55cqw;
  align-items:center;
}
.float-panel-heading img {
  width:3.2cqw;
  height:3.2cqw;
  min-width:34px;
  min-height:34px;
  object-fit:cover;
  object-position:center 20%;
  border:1px solid color-mix(in srgb, var(--panel-line) 76%, white 24%);
  border-radius:.42cqw;
  background:rgba(1,15,32,.8);
  box-shadow:0 0 .65cqw var(--panel-glow);
}
.float-panel-heading strong {
  display:block;
  margin-top:.12cqw;
  color:#fff;
  font-size:clamp(12px,.9cqw,18px);
  line-height:1.05;
}
.scene-contact-holo > p {
  margin:.42cqw 0;
  color:#bddce8;
  font-size:clamp(9px,.66cqw,13px);
  line-height:1.25;
}
.float-metric-row {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.38cqw;
}
.float-metric-row span {
  padding:.34cqw .42cqw;
  border:1px solid color-mix(in srgb, var(--panel-line) 30%, transparent);
  border-radius:.35cqw;
  background:rgba(2,35,61,.58);
  color:#a8cfdd;
  font-size:clamp(8px,.6cqw,12px);
  font-weight:800;
}
.float-metric-row b { display:block; margin-top:.08cqw; color:#fff; font-size:1.08em; }
.float-panel-kicker { margin-bottom:.34cqw; text-align:center; letter-spacing:.28em; }
.scene-contract-holo dl { display:grid; gap:.28cqw; margin:0; }
.scene-contract-holo dl > div {
  display:grid;
  grid-template-columns:4.2cqw minmax(0,1fr);
  gap:.35cqw;
  align-items:start;
  padding:.26cqw .34cqw;
  border-left:.14cqw solid color-mix(in srgb, var(--panel-line) 65%, transparent);
  background:rgba(2,31,54,.48);
}
.scene-contract-holo dt {
  color:#85dff3;
  font-size:clamp(8px,.57cqw,11px);
  font-weight:900;
  text-transform:uppercase;
}
.scene-contract-holo dd {
  min-width:0;
  margin:0;
  color:#e4f9ff;
  font-size:clamp(8px,.61cqw,12px);
  font-weight:750;
  line-height:1.2;
}
@keyframes scenePanelFloat {
  0%,100% { translate:0 0; }
  50% { translate:0 -.16cqw; }
}

/* Taustal juba olemas olevat tegelast ei dubleerita. */
.scene.actor-embedded .character-stage {
  opacity:0;
  visibility:hidden;
}
.scene.contact-embedded .contact-stage {
  opacity:0;
  visibility:hidden;
}

/* Uute ruumide tegelaste ja kontaktisiku paigutus. */
.scene.scene-cinematic[data-room="white-command"] .character-stage,
.scene.scene-cinematic[data-room="white-guardian"] .character-stage {
  --actor-x:29%;
  --actor-w:18%;
}
.scene.scene-cinematic[data-room="medical"] .character-stage {
  --actor-x:5.5%;
  --actor-w:17%;
  --actor-y:3%;
  --actor-h:74%;
}
.scene.scene-cinematic[data-room="medical"] .contact-stage {
  --contact-x:25.5%;
  --contact-y:7%;
  --contact-w:22%;
  --contact-h:72%;
}
.scene.scene-cinematic[data-room="mantis-timeline"] .contact-stage {
  --contact-x:20%;
  --contact-y:5%;
  --contact-w:17%;
  --contact-h:68%;
}
.scene.scene-cinematic[data-room="white-command"] .contact-stage,
.scene.scene-cinematic[data-room="white-guardian"] .contact-stage {
  --contact-x:28%;
  --contact-y:6%;
  --contact-w:18%;
  --contact-h:70%;
}
.scene.scene-cinematic[data-scene-group="oversoul"] .character-stage {
  --actor-x:28%;
  --actor-w:18%;
  opacity:.55;
}
.scene.scene-cinematic .character-sprite,
.scene.scene-cinematic .contact-sprite {
  image-rendering:auto;
}

/* Ajatelje, mõtteookeani ja mälufiltri tööalad vajavad rohkem pinda. */
.scene.scene-timeline-layout .scene-status-holo,
.scene.scene-thought-ocean .scene-status-holo,
.scene.scene-memory-layout .scene-status-holo {
  display:none;
}
.scene.scene-timeline-layout .scene-contact-holo,
.scene.scene-thought-ocean .scene-contact-holo,
.scene.scene-memory-layout .scene-contact-holo {
  width:22.5%;
}
.scene.scene-timeline-layout .scene-contract-holo,
.scene.scene-thought-ocean .scene-contract-holo,
.scene.scene-memory-layout .scene-contract-holo {
  width:27%;
}
.scene.scene-thought-ocean .scene-float-panel { opacity:.9; }

/* Paneelid jäävad ka peidetud põhihudiga stseeni osaks, sest need on mänguruumi diegeetilised ekraanid. */
.game-board.minimal-hud .scene-holo-layer { opacity:1; }

@media (max-width: 900px) {
  .scene-contact-holo { width:25.5%; }
  .scene-contract-holo { width:29.5%; }
  .scene-status-holo { width:22%; left:28%; }
  .scene-contract-holo dl > div { grid-template-columns:3.7cqw minmax(0,1fr); }
  .scene-contact-holo > p { display:none; }
}

@media (prefers-reduced-motion: reduce) {
  .scene.scene-cinematic .scene-background,
  .scene-float-panel { animation:none !important; }
}

/* v29 — lihtsam, loetavam ja täielikult hõljuv valge laeva juhtimisvaade */
:root {
  --v29-glass: rgba(3, 25, 50, .88);
  --v29-glass-strong: rgba(2, 18, 40, .95);
  --v29-line: #55dcff;
  --v29-text: #f7fdff;
  --v29-muted: #c1e0ec;
}

.game-board {
  grid-template-rows: 5.8% 3.7% minmax(0,1fr);
  gap: .42cqw;
  padding: .55cqw;
  border-color: rgba(102, 222, 255, .7);
  background: #071323;
}
.game-board::before,
.game-board::after { display:none; }

.topbar {
  position:relative;
  z-index:22;
  grid-template-columns: 1.05fr .92fr 1.3fr auto;
  padding:.34cqw .62cqw;
  border:1px solid rgba(91,218,255,.54);
  border-radius:.7cqw;
  background:linear-gradient(180deg,rgba(4,31,57,.92),rgba(2,16,35,.92));
  box-shadow:0 .35cqw 1.1cqw rgba(0,7,20,.28),inset 0 0 1cqw rgba(72,195,255,.08);
  backdrop-filter:blur(10px);
}
.brand-block .eyebrow { display:none; }
.brand-block h1 { font-size:clamp(15px,1.18cqw,22px); }
.hud-brand-icon { width:2.35cqw;height:2.35cqw;min-width:27px;min-height:27px; }
.mission-icon { width:2.05cqw;height:2.05cqw;min-width:24px;min-height:24px; }
.schedule-alert { display:none; }
.critical-metrics span {
  padding:.25cqw .42cqw;
  border:1px solid rgba(92,211,255,.28);
  border-radius:.42cqw;
  background:rgba(2,24,48,.76);
  background-image:none;
}
.critical-metrics img { width:1.15cqw!important;height:1.15cqw!important;min-width:14px!important;min-height:14px!important; }
.top-actions { gap:.3cqw; }
.top-actions .hud-button { padding:.34cqw .52cqw; border-radius:.45cqw; }

.role-progress {
  position:relative;
  z-index:21;
  gap:.3cqw;
  padding:0 15%;
}
.role-segment {
  padding:.13cqw .38cqw;
  border-color:rgba(82,191,229,.28);
  border-radius:.45cqw;
  background:rgba(3,20,42,.82);
  backdrop-filter:blur(8px);
}
.role-segment img { width:1.25cqw!important;height:1.25cqw!important;min-width:15px!important;min-height:15px!important; }
.role-segment span { font-size:clamp(9px,.62cqw,12px); }
.role-segment i { height:.22cqw;min-height:3px; }

.scene {
  border:1px solid rgba(102,222,255,.48);
  border-radius:.7cqw;
  box-shadow:0 0 1.2cqw rgba(42,194,255,.2),inset 0 0 1.8cqw rgba(13,49,76,.16);
  isolation:isolate;
}
.scene.scene-cinematic .scene-background,
.scene .scene-background {
  image-rendering:auto;
  object-fit:cover!important;
  object-position:center!important;
  filter:brightness(.96) saturate(.82) contrast(.98)!important;
  animation:v29RoomBreath 14s ease-in-out infinite alternate!important;
}
@keyframes v29RoomBreath {
  from { transform:scale(1.006); }
  to { transform:scale(1.018); }
}
.scene.scene-cinematic .scene-vignette,
.scene-vignette {
  background:
    linear-gradient(90deg,rgba(2,15,30,.23) 0%,rgba(255,255,255,.015) 34%,rgba(1,12,27,.18) 100%),
    radial-gradient(circle at 49% 45%,transparent 44%,rgba(0,8,20,.09) 74%,rgba(0,5,15,.28) 100%)!important;
}
.scene-grid { opacity:.035!important; }
.scene-ambient { opacity:.38; }

.character-stage {
  z-index:5;
  bottom:3%;
  height:83%;
}
.character-sprite {
  image-rendering:auto;
  max-height:94%;
  max-width:92%;
  filter:drop-shadow(0 .45cqw .7cqw rgba(1,10,24,.45)) drop-shadow(0 0 .75cqw rgba(99,223,255,.42));
}
.character-sprite[data-role="grey"] { max-height:72%; }
.character-name,
.contact-name {
  border:1px solid rgba(82,220,255,.42);
  background:rgba(2,22,45,.84);
  backdrop-filter:blur(8px);
}

.scene.scene-cinematic .holo-console,
.holo-console {
  z-index:12;
  padding:.85cqw .9cqw;
  border:1px solid rgba(88,222,255,.82);
  border-radius:.72cqw;
  background:linear-gradient(145deg,rgba(4,32,61,.94),rgba(2,16,38,.93));
  background-image:none;
  box-shadow:0 .55cqw 1.35cqw rgba(0,5,17,.42),0 0 1.15cqw rgba(61,210,255,.31),inset 0 0 1.3cqw rgba(72,189,255,.10);
  backdrop-filter:blur(12px) saturate(1.12);
  transform:none;
  animation:v29ConsoleFloat 5.5s ease-in-out infinite alternate;
}
@keyframes v29ConsoleFloat {
  from { translate:0 0; }
  to { translate:0 -.13cqw; }
}
.scene.scene-cinematic .holo-console::after { display:none; }
.holo-console::before {
  opacity:.42;
  background:linear-gradient(90deg,transparent,rgba(116,231,255,.18),transparent);
}
.console-header {
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:.62cqw;
  align-items:start;
  margin-bottom:.5cqw;
  padding-bottom:.5cqw;
  border-bottom:1px solid rgba(105,218,255,.28);
}
.step-icon { width:3.1cqw;height:3.1cqw;min-width:38px;min-height:38px; }
.console-role { color:#93eaff!important;font-size:clamp(9px,.66cqw,13px)!important;letter-spacing:.13em; }
.holo-console h2 { font-size:clamp(20px,1.55cqw,29px)!important;line-height:1.08; }
.prompt-copy { margin:.05cqw 0 .65cqw;color:var(--v29-muted)!important;font-size:clamp(12px,.82cqw,16px)!important;line-height:1.38; }
.risk-badge { align-self:start;padding:.32cqw .5cqw;font-size:clamp(9px,.64cqw,12px); }
.interactive-area { padding-right:.18cqw;scrollbar-width:thin;scrollbar-color:#56dfff rgba(3,22,44,.35); }

.choice-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.62cqw;
  align-content:start;
  padding:.15cqw;
}
.choice-button {
  position:relative;
  min-height:clamp(68px,5.3cqw,96px);
  grid-template-columns:3.4cqw minmax(0,1fr);
  gap:.22cqw .62cqw;
  padding:.65cqw .72cqw;
  border:1px solid rgba(89,215,255,.58);
  border-radius:.58cqw;
  background:linear-gradient(145deg,rgba(5,43,74,.93),rgba(2,23,51,.95));
  background-image:none;
  box-shadow:0 .38cqw .7cqw rgba(0,5,18,.28),inset 0 0 .75cqw rgba(68,180,255,.07);
  transform:translateY(0);
  animation:v29ChoiceFloat 4.8s ease-in-out infinite alternate;
  animation-delay:calc(var(--choice-index,0) * -.38s);
}
@keyframes v29ChoiceFloat { to { transform:translateY(-.09cqw); } }
.choice-button:hover,
.choice-button:focus-visible {
  z-index:3;
  border-color:#a7f3ff;
  background:linear-gradient(145deg,rgba(10,68,106,.98),rgba(3,34,68,.98));
  box-shadow:0 .55cqw 1cqw rgba(0,8,21,.38),0 0 1.05cqw rgba(65,219,255,.4),inset 0 0 .9cqw rgba(88,205,255,.13);
  transform:translateY(-.18cqw) scale(1.012);
}
.choice-button.selected { border-color:#68efb2;box-shadow:0 0 1cqw rgba(80,238,173,.34),inset 0 0 .8cqw rgba(69,215,157,.1); }
.choice-icon { width:3.05cqw;height:3.05cqw;min-width:38px;min-height:38px;grid-row:1/4; }
.choice-button strong { font-size:clamp(15px,1.08cqw,20px)!important;line-height:1.12; }
.choice-button span { color:#c9e2ec!important;font-size:clamp(11px,.76cqw,14px)!important;line-height:1.32; }
.choice-button small { margin-top:.1cqw;color:#7ff4bf!important;font-size:clamp(10px,.69cqw,13px)!important; }
.choice-shortcut {
  position:absolute!important;
  top:.28cqw;
  right:.34cqw;
  display:grid!important;
  place-items:center;
  width:1.55cqw;
  height:1.55cqw;
  min-width:20px;
  min-height:20px;
  grid-column:auto!important;
  border:1px solid rgba(132,231,255,.48);
  border-radius:.32cqw;
  background:rgba(1,18,38,.88);
  color:#c9f5ff!important;
  font-size:clamp(9px,.6cqw,12px)!important;
  font-weight:950;
}

.scene-holo-layer { z-index:9; }
.scene-float-panel {
  pointer-events:auto;
  border:1px solid rgba(83,218,255,.75);
  border-radius:.58cqw;
  background:linear-gradient(145deg,rgba(4,35,66,.91),rgba(2,19,43,.93));
  background-image:none;
  box-shadow:0 .45cqw 1cqw rgba(0,5,17,.34),0 0 .9cqw rgba(59,210,255,.3),inset 0 0 .9cqw rgba(73,192,255,.09);
  clip-path:none;
  backdrop-filter:blur(11px) saturate(1.12);
  animation:v29PanelFloat 5.2s ease-in-out infinite alternate;
  transition:opacity .18s ease,box-shadow .18s ease,border-color .18s ease;
}
@keyframes v29PanelFloat { to { translate:0 -.1cqw; } }
.scene-float-panel::before { display:none; }
.scene-float-panel:hover { border-color:#a5f2ff;box-shadow:0 .55cqw 1.1cqw rgba(0,5,17,.4),0 0 1.05cqw rgba(61,219,255,.42); }
.scene-contact-holo { left:1.25%;top:10%;width:20.5%;padding:.62cqw .68cqw;transform:none; }
.scene-contract-holo { left:1.25%;bottom:10%;width:24%;padding:.58cqw .68cqw .62cqw;transform:none; }
.scene-status-holo { left:23%;top:2.2%;width:20.5%;min-height:4cqw;padding:.48cqw .62cqw; }
.float-panel-heading strong { font-size:clamp(13px,.93cqw,18px); }
.scene-contact-holo > p { color:#c7e1eb;font-size:clamp(10px,.7cqw,13px); }
.float-metric-row span { background:rgba(7,47,76,.62);color:#b8d7e2;font-size:clamp(9px,.64cqw,12px); }
.scene-contract-holo dl > div { background:rgba(5,42,70,.58); }
.scene-contract-holo dd { color:#f4fdff;font-size:clamp(9px,.67cqw,13px); }
.scene-contract-holo dt { font-size:clamp(8px,.59cqw,11px); }
.scene-status-holo strong { font-size:clamp(13px,.95cqw,18px); }
.scene-status-holo small { color:#b8eaf5; }

.scene-tool-dock {
  position:absolute;
  right:1.1%;
  bottom:1.1%;
  z-index:18;
  display:flex;
  gap:.34cqw;
  padding:.3cqw;
  border:1px solid rgba(88,219,255,.46);
  border-radius:.52cqw;
  background:rgba(3,24,48,.84);
  box-shadow:0 .38cqw .85cqw rgba(0,5,17,.32),0 0 .75cqw rgba(66,210,255,.22);
  backdrop-filter:blur(10px);
}
.scene-tool-button {
  border:1px solid rgba(100,220,255,.38);
  border-radius:.36cqw;
  padding:.3cqw .48cqw;
  background:rgba(5,45,74,.82);
  color:#eafcff;
  font-size:clamp(8px,.58cqw,11px);
  font-weight:900;
  letter-spacing:.03em;
  cursor:pointer;
}
.scene-tool-button:hover { border-color:#9df2ff;background:rgba(9,67,101,.94); }
.scene-tool-button[aria-pressed="false"] { color:#b8d5df; }
.windows-unlocked .draggable-window { outline:1px dashed rgba(150,240,255,.52);outline-offset:.12cqw; }
.windows-unlocked .window-drag-handle { cursor:grab;user-select:none;touch-action:none; }
.window-dragging { animation:none!important;transition:none!important;opacity:.96;box-shadow:0 .8cqw 1.5cqw rgba(0,5,18,.5),0 0 1.4cqw rgba(79,224,255,.52)!important; }
.window-dragging .window-drag-handle { cursor:grabbing; }
.window-collapse {
  position:absolute;
  z-index:5;
  top:.26cqw;
  right:.28cqw;
  display:grid;
  place-items:center;
  width:1.55cqw;
  height:1.55cqw;
  min-width:20px;
  min-height:20px;
  padding:0;
  border:1px solid rgba(111,225,255,.42);
  border-radius:.32cqw;
  background:rgba(1,18,38,.88);
  color:#dffaff;
  font-weight:950;
  cursor:pointer;
}
.scene-contact-holo.panel-collapsed > p,
.scene-contact-holo.panel-collapsed .float-metric-row,
.scene-contract-holo.panel-collapsed dl,
.scene-status-holo.panel-collapsed span,
.scene-status-holo.panel-collapsed small,
.scene-status-holo.panel-collapsed > img { display:none; }
.scene-contact-holo.panel-collapsed,
.scene-contract-holo.panel-collapsed { width:20.5%; }
.scene-status-holo.panel-collapsed { width:14%;min-height:2.7cqw;grid-template-columns:1fr; }

.bottom-strip {
  position:absolute;
  z-index:17;
  left:16%;
  right:16%;
  bottom:.65%;
  height:5.6%;
  grid-template-columns:1.05fr 1.35fr .9fr 1fr;
  gap:.32cqw;
  pointer-events:none;
}
.bottom-strip > div {
  pointer-events:auto;
  min-width:0;
  padding:.35cqw .5cqw;
  border:1px solid rgba(87,211,255,.35);
  border-radius:.48cqw;
  background:rgba(3,25,50,.85);
  background-image:none;
  box-shadow:0 .3cqw .65cqw rgba(0,5,17,.25);
  backdrop-filter:blur(9px);
}
.bottom-strip .strip-icon { width:1.75cqw;height:1.75cqw;min-width:22px;min-height:22px; }
.bottom-strip .eyebrow { font-size:clamp(8px,.5cqw,10px); }
.bottom-strip strong { font-size:clamp(10px,.76cqw,14px); }
.bottom-strip span { font-size:clamp(8px,.55cqw,11px); }

.incoming-contact-panel { z-index:19; }
.effect-toast { z-index:25; }
.back-button { z-index:18;bottom:1.15%;left:1.2%; }

.game-board.focus-mode .topbar .brand-block,
.game-board.focus-mode .topbar .critical-metrics,
.game-board.focus-mode .role-progress,
.game-board.focus-mode .bottom-strip,
.game-board.focus-mode .scene-contact-holo,
.game-board.focus-mode .scene-contract-holo,
.game-board.focus-mode .scene-status-holo { opacity:0;pointer-events:none; }
.game-board.focus-mode .topbar { grid-template-columns:1fr auto; }
.game-board.focus-mode .mission-block { display:grid; }
.game-board.focus-mode .top-actions { grid-column:2; }
.game-board.focus-mode .holo-console { left:35%!important;top:4%!important;width:63%!important;height:90%!important; }
.game-board.focus-mode .character-stage { opacity:.92; }

.scene[data-scene-group="mantis"] .holo-console,
.scene-holo-layer[data-tone="mantis"] .scene-float-panel {
  border-color:rgba(171,119,255,.82);
  box-shadow:0 .5cqw 1.1cqw rgba(0,5,17,.36),0 0 1.05cqw rgba(163,102,255,.34),inset 0 0 1cqw rgba(146,89,239,.08);
}
.scene[data-scene-group="oversoul"] .holo-console,
.scene-holo-layer[data-tone="oversoul"] .scene-float-panel { border-color:rgba(100,239,196,.82); }

@container (max-width: 880px) {
  .topbar { grid-template-columns:.85fr .8fr 1fr auto; }
  .brand-block h1 { font-size:clamp(13px,1.05cqw,18px); }
  .top-actions #hudToggle { display:none; }
  .scene-contact-holo { width:22%; }
  .scene-contract-holo { width:26%; }
  .scene-status-holo { width:22%;left:24%; }
  .choice-grid { gap:.48cqw; }
  .choice-button { min-height:60px; }
  .bottom-strip { left:11%;right:11%; }
}

@container (max-width: 690px) {
  .critical-metrics,.brand-block { display:none; }
  .topbar { grid-template-columns:1fr auto; }
  .role-progress { padding:0 4%; }
  .scene-contact-holo { top:8%;width:25%; }
  .scene-contract-holo { width:29%;bottom:9%; }
  .scene-status-holo { display:none; }
  .holo-console { left:42%!important;width:56%!important; }
  .choice-grid { grid-template-columns:1fr; }
  .choice-button { min-height:54px; }
  .bottom-strip { left:8%;right:8%;grid-template-columns:1fr 1fr; }
  .campaign-mini,.decision-summary { display:none!important; }
  .scene-tool-dock { bottom:7%; }
}

@media (prefers-reduced-motion: reduce) {
  .scene.scene-cinematic .scene-background,
  .scene-float-panel,
  .holo-console,
  .choice-button { animation:none!important; }
}

/* v29.1 — parem ruumikasutus ja kompaktsemad teavitused */
.scene.scene-cinematic .holo-console,
.holo-console {
  background:linear-gradient(145deg,rgba(3,31,61,.975),rgba(1,15,37,.982));
  backdrop-filter:blur(16px) brightness(.72) saturate(1.12);
}
.scene[data-step-type="choices"] .holo-console {
  height:auto!important;
  min-height:44%;
  max-height:76%;
}
.incoming-contact-panel {
  z-index:16;
  left:23%;
  top:9%;
  width:23%;
  min-height:0;
  padding:.58cqw .66cqw;
  border:1px solid rgba(91,220,255,.62);
  border-radius:.55cqw;
  background:linear-gradient(145deg,rgba(3,34,63,.94),rgba(1,17,39,.96));
  filter:drop-shadow(0 .45cqw .8cqw rgba(0,5,17,.35)) drop-shadow(0 0 .65cqw rgba(84,220,255,.26));
  backdrop-filter:blur(12px);
}
.incoming-contact-panel.visible:not(.actionable) > p,
.incoming-contact-panel.visible:not(.actionable) .incoming-metrics { display:none; }
.incoming-contact-panel.visible:not(.actionable) .incoming-progress { margin-top:.42cqw; }
.incoming-contact-panel.visible.actionable { width:25%; }
.incoming-heading img { width:2.3cqw;height:2.3cqw;min-width:27px;min-height:27px; }
.incoming-heading strong { font-size:clamp(12px,.92cqw,18px); }
.incoming-heading > span { font-size:clamp(8px,.56cqw,11px); }
.scene-tool-dock { bottom:7.1%; }
.back-button { bottom:7.25%; }
.scene.scene-cinematic[data-room="white-guardian"] .contact-stage {
  --contact-x:22%;
  --contact-y:7%;
  --contact-w:16%;
  --contact-h:66%;
}

/* v29.2 — vähem päise müra ja vabam esimese stseeni ruum */
.top-actions #hudToggle { display:none; }
.tutorial-coach {
  left:27%;
  bottom:8.1%;
  width:min(24cqw,370px);
  padding:.52cqw .7cqw;
}
.incoming-contact-panel.panel-collapsed > p,
.incoming-contact-panel.panel-collapsed .incoming-progress,
.incoming-contact-panel.panel-collapsed .incoming-metrics,
.incoming-contact-panel.panel-collapsed .incoming-actions { display:none!important; }
.incoming-contact-panel.panel-collapsed { width:20%; }


/* === V30: rollipõhine ruumilukk ===
   Ükski samm ei vali enam tausta sammunumbri järgi.
   Pikk Valge = tema juhtimiskamber, Mantis = ajateljekamber,
   Väike hall = med-ruum. */
.scene[data-room-owner="white"] .scene-background {
  object-position:center center!important;
}
.scene[data-room-owner="mantis"] .scene-background {
  object-position:center center!important;
  filter:brightness(.88) saturate(.9) contrast(1.02)!important;
}
.scene[data-room-owner="mantis"] .scene-vignette {
  background:
    linear-gradient(90deg,rgba(18,5,35,.13) 0%,rgba(8,5,24,.02) 38%,rgba(20,4,42,.16) 100%),
    radial-gradient(circle at 50% 45%,transparent 42%,rgba(18,4,35,.08) 72%,rgba(6,2,18,.3) 100%)!important;
}
.scene[data-room-owner="grey"] .scene-background {
  object-position:center center!important;
  filter:brightness(.96) saturate(.78) contrast(.98)!important;
}
.scene[data-room-owner="grey"] .scene-vignette {
  background:
    linear-gradient(90deg,rgba(0,18,35,.18) 0%,rgba(255,255,255,.015) 40%,rgba(0,12,28,.14) 100%),
    radial-gradient(circle at 50% 45%,transparent 46%,rgba(0,11,25,.06) 76%,rgba(0,5,16,.24) 100%)!important;
}

/* Pika Valge ja Mantis on nende ruumipiltides juba olemas. */
.scene[data-room-owner="white"] .character-stage,
.scene[data-room-owner="mantis"] .character-stage {
  opacity:0!important;
  visibility:hidden!important;
}

/* Väike hall seisab med-ruumis voodi ja aktiivse konsooli vahel. */
.scene[data-room-owner="grey"] .character-stage {
  --actor-x:31%;
  --actor-y:2.2%;
  --actor-w:14%;
  --actor-h:67%;
  opacity:1!important;
  visibility:visible!important;
}
.scene[data-room-owner="grey"] .character-sprite[data-role="grey"] {
  max-height:78%;
  max-width:88%;
}

/* Mantis jääb vasakul nähtavaks; ruumiinfo ei kata tema pead. */
.scene[data-room-owner="mantis"] .scene-contact-holo {
  left:1.1%;
  top:2.2%;
  width:19.5%;
}
.scene[data-room-owner="mantis"] .scene-contract-holo {
  left:1.1%;
  bottom:2.4%;
  width:22.5%;
}
.scene[data-room-owner="mantis"] .scene-status-holo {
  left:25.5%;
  top:2.2%;
  width:19%;
}

/* Päise hinnangumärgend ei tohi nuppude peale joosta. */
.critical-metrics .estimated-metric::after { display:none!important; }
.critical-metrics span {
  min-width:0;
  white-space:nowrap;
}
.top-actions { min-width:max-content; }

/* Aktiivse ruumi nimi on stseeni navigatsiooniline identiteet. */
.scene-status-holo small {
  color:#d7f6ff;
  font-weight:900;
  letter-spacing:.025em;
}


/* v32 — fikseeritud aknad ja puhas alumine mänguala */
.bottom-strip { display:none !important; }
.scene-tool-dock { bottom:1.1%; }
.back-button { bottom:1.15%; }
.window-collapse,
.windows-unlocked .draggable-window { display:none !important; }
.window-drag-handle { cursor:default !important; user-select:auto; touch-action:auto; }


/* v33 — 16:9 mängulaud ja puhas stseenivaade */
.game-board {
  width:min(calc(100vw - 16px), calc((100dvh - 16px) * 16 / 9), 1800px);
  aspect-ratio:16 / 9;
}
.scene-holo-layer { display:none !important; }

/* Pärast kolme dubleeriva infoakna eemaldamist kasutab aktiivne konsool
   16:9 ruumis rohkem horisontaalset pinda, kuid jätab tegelase/ruumi nähtavaks. */
.scene.scene-cinematic .holo-console,
.holo-console {
  max-width:none;
}
.scene[data-room-owner="white"] .holo-console {
  left:54%!important;
  width:44%!important;
}
.scene[data-room-owner="mantis"] .holo-console {
  left:31%!important;
  width:67%!important;
}
.scene[data-room-owner="grey"] .holo-console {
  left:43%!important;
  width:55%!important;
}
.scene[data-room-owner="oversoul"] .holo-console {
  left:31%!important;
  width:67%!important;
}
.incoming-contact-panel {
  left:23%;
  top:8%;
  width:25%;
}
.incoming-contact-panel.visible.actionable { width:27%; }

@container (max-width: 900px) {
  .scene[data-room-owner="white"] .holo-console { left:50%!important; width:48%!important; }
  .scene[data-room-owner="mantis"] .holo-console { left:28%!important; width:70%!important; }
  .scene[data-room-owner="grey"] .holo-console { left:40%!important; width:58%!important; }
  .incoming-contact-panel { left:20%; width:28%; }
}


/* v34 — puhas Mantise ajatelg ja Pika Valge isealgatatud kontakti vasak paigutus */
.global-timeline-shell {
  grid-template-rows:auto minmax(190px,1fr) auto auto;
}
.global-timeline-shell .timeline-asset {
  display:none!important;
}
.scene[data-room-owner="white"] .incoming-contact-panel {
  left:7.5%!important;
  top:8%!important;
}
@container (max-width: 900px) {
  .scene[data-room-owner="white"] .incoming-contact-panel {
    left:4%!important;
    width:31%;
  }
}
