/* Nested HTML ROOMS scenery only. The responsive anchor keeps the Resident
   inside the visible floor without changing the model or game camera. */
.prompt-world[data-room-shell] { --nested-resident-floor-anchor:clamp(5rem,10dvh,7rem); --back-floor-rgb:61,223,255; }
body[data-project="battle-ai"] { --back-floor-rgb:181,108,255; }
body[data-project="token-lab"] { --back-floor-rgb:200,255,85; }
body[data-project="admin360"] { --back-floor-rgb:73,210,173; }
body[data-project="prompt-lab"] { --back-floor-rgb:112,229,202; }
body[data-project="spark"] { --back-floor-rgb:150,192,221; }
body[data-project="moi-numerique"] { --back-floor-rgb:80,218,226; }
.back-access[hidden],.back-stage[hidden],.back-portal[hidden],.back-controls [hidden] { display:none!important; }
.back-access { position:absolute; right:3%; top:38%; z-index:14; width:9rem; padding:.6rem; background:#04121beb; border-left:1px solid #4de4ff; color:#b4eefa; font:.75rem/1.6 monospace; }
.back-access small,.back-access strong { display:block; }
.back-access button,.back-stage button { min-height:44px; padding:.5rem; color:#bdeff7; border:1px solid #2d6a7b; background:#081d28; font:.75rem/1.4 monospace; cursor:pointer; }
.back-access button:disabled,.back-stage button:disabled { opacity:.45; cursor:default; }
.back-access button:focus-visible,.back-stage button:focus-visible { outline:2px solid #aaf8ff; outline-offset:3px; }
.back-stage [data-back="enter"].is-new-access { border-color:#d9fd87; color:#f1ffd0; box-shadow:0 0 24px #c8ff5540; animation:back-access-signal .9s ease-in-out 3 alternate; }
.back-stage { position:absolute; inset:0; z-index:6; background:radial-gradient(ellipse at 50% 25%,#102c38,#030910 70%); color:#bdeff7; }
.back-stage::before { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(125deg,transparent 24%,#32ddff22 24.2%,transparent 24.5%),linear-gradient(235deg,transparent 24%,#32ddff22 24.2%,transparent 24.5%); }
.back-stage::after { content:''; position:absolute; bottom:0; left:0; right:0; height:var(--presentation-floor-bottom); pointer-events:none; border-top:1px solid #2d788c; background:repeating-linear-gradient(90deg,transparent 0 9.8%,#29ddff14 10%),linear-gradient(#071821,#01060c); }
/* A distant horizon and one continuous floor plane. The Resident anchor stays
   well inside this plane, so the line reads behind the body rather than under
   the feet. */
.back-floor {
  position:absolute;
  z-index:0;
  inset:58% 0 0;
  pointer-events:none;
  overflow:hidden;
  border-top:1px solid rgba(var(--back-floor-rgb),.46);
  background:
    radial-gradient(ellipse at 50% 0,rgba(var(--back-floor-rgb),.14),transparent 48%),
    linear-gradient(180deg,rgba(var(--back-floor-rgb),.065),rgba(1,6,12,.88) 82%);
  box-shadow:0 -1px 20px rgba(var(--back-floor-rgb),.1);
}
.back-floor::before {
  content:'';
  position:absolute;
  inset:0;
  opacity:.42;
  background:
    linear-gradient(76deg,transparent 49.75%,rgba(var(--back-floor-rgb),.2) 50%,transparent 50.25%),
    linear-gradient(104deg,transparent 49.75%,rgba(var(--back-floor-rgb),.2) 50%,transparent 50.25%);
  transform-origin:50% 0;
}
.back-header { position:absolute; inset:4% 6% auto; font:.75rem/1.5 monospace; }
.back-header h1 { font-size:clamp(1.1rem,2.3vw,1.8rem); margin:.4rem 0; letter-spacing:.12em; }
.back-header p { color:#7babba; margin:.3rem 0; }
.back-projection { position:absolute; top:18%; left:12%; right:12%; height:clamp(18rem,34dvh,27rem); max-height:calc(100dvh - var(--presentation-floor-bottom) - 8rem); overflow:auto; padding:.6rem; border:1px solid #2a839455; background:#06111bdc; box-shadow:0 12px 32px #0006; scrollbar-width:thin; transform-origin:50% 0; transition:transform .72s cubic-bezier(.22,.78,.22,1),opacity .38s ease; }
/* Kompass AI / Project Room proportion is the shared presentation reference. */
body.is-back-room-view .room-scene > .back-stage .back-projection {
  top:clamp(4.75rem,10dvh,7rem);
  left:max(10%,calc((100% - 72rem) / 2));
  right:max(10%,calc((100% - 72rem) / 2));
  height:clamp(18rem,48dvh,34rem);
  max-height:calc(100dvh - var(--presentation-floor-bottom) - 5.75rem);
}
/* In nested rooms the Resident settles inside the floor plane, not on its rear boundary. */
body.is-back-room-view .prompt-resident .journey-calibration.resident-stage__threshold,
body[data-eyes-view="control"] .prompt-resident .journey-calibration.resident-stage__threshold {
  bottom:var(--nested-resident-floor-anchor)!important;
}
.back-stage.is-screen-stowed .back-projection { opacity:0; transform:translateY(-118%) scaleY(.92); pointer-events:none; }
.back-stage.is-screen-deploying .back-projection { opacity:1; transform:translateY(0) scaleY(1); }
.back-network-hub { text-align:center; border-bottom:1px solid #347c90; padding:.4rem; font:.75rem/1.5 monospace; color:#63dcf7; }
.back-network-nodes { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:.4rem; padding-top:.6rem; }
.back-network-nodes button { position:relative; font-size:.7rem; overflow-wrap:anywhere; border-top-color:#47afc7; }
.back-network-nodes button[aria-pressed=true],.back-experiments button[aria-pressed=true] { border-color:#a1f5ff; box-shadow:inset 0 0 14px #29d6ff22; }
.back-system-channels { display:flex; flex-wrap:wrap; justify-content:center; gap:.4rem; margin-top:.6rem; }
.back-state-line { color:#8badb9; font:.7rem/1.5 monospace; }
.back-detail { position:absolute; z-index:14; left:3%; top:46%; width:min(22vw,18rem); max-height:26%; overflow:auto; padding:.7rem; border-left:1px solid #3ce0ff; color:#98bdc9; background:#030d16dc; font:.75rem/1.6 monospace; overflow-wrap:anywhere; }
.back-controls { position:absolute; z-index:26; left:10%; right:10%; bottom:1.5rem; display:flex; justify-content:center; flex-wrap:wrap; gap:.5rem; }
.back-portal { position:absolute; right:3%; bottom:var(--presentation-floor-bottom); width:clamp(8rem,15vw,13rem); height:clamp(260px,58dvh,520px); z-index:9; background:#02060b; border:1px solid #39dfff80; overflow:hidden; opacity:0; transition:opacity .9s; }
.back-portal.is-revealed { opacity:1; }
.back-portal--deep { right:auto; left:3%; border-color:#a27cfd90; }
.back-portal__depth { position:absolute; inset:10%; background:repeating-linear-gradient(90deg,#06101a 0 20%,#3de3ff44 21% 22%,#06101a 23% 30%); transform:perspective(180px) rotateY(-18deg) scale(.85); }
.back-portal__leaf { position:absolute; top:0; bottom:0; width:50%; background:linear-gradient(90deg,#08111d,#162b38); border:1px solid #276077; transition:transform .85s cubic-bezier(.25,.7,.25,1); }
.back-portal__leaf--left { left:0; }
.back-portal__leaf--right { right:0; }
.back-portal.is-open .back-portal__leaf--left { transform:translateX(-100%); }
.back-portal.is-open .back-portal__leaf--right { transform:translateX(100%); }
.back-experiments { position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.5rem; }
.back-experiments strong,.back-experiments small { display:block; }
.back-experiments small { color:#ac98d1; margin-top:.35rem; font-size:.65rem; }
.back-experiment-lattice { position:absolute; inset:0; opacity:.3; background:repeating-linear-gradient(120deg,transparent 0 35px,#675cb955 36px 37px),repeating-linear-gradient(60deg,transparent 0 35px,#37d0e844 36px 37px); transition:opacity .6s,transform .6s; }
.back-projection[data-experiment=VR] .back-experiment-lattice { transform:scale(.9); opacity:.7; }
.back-projection[data-experiment="AI AGENTS"] .back-experiment-lattice { transform:rotate(5deg); opacity:.6; }
body[data-back-view=html-engine-room] .room-scene > :is(.project-wall,.prompt-nav,.briefing-controls,.prompt-status),body[data-back-view=html-world-lab] .room-scene > :is(.project-wall,.prompt-nav,.briefing-controls,.prompt-status) { visibility:hidden; pointer-events:none; }
body[data-back-view=html-engine-room] [data-journey-status],body[data-back-view=html-world-lab] [data-journey-status] { visibility:hidden; }
body[data-back-busy=true] :is(.back-detail,.back-controls,.back-access) { visibility:hidden; pointer-events:none; }
.clue-signal { position:absolute; z-index:18; top:43%; right:3%; display:flex; align-items:center; gap:.45rem; max-width:min(18rem,28vw); padding:.35rem .5rem; border-right:1px solid #39dfff66; color:#6d929d; background:#020a11c7; font:.6rem/1.4 monospace; letter-spacing:.08em; }
.clue-signal[hidden] { display:none!important; }
.clue-signal button { min-height:34px; padding:.25rem .45rem; color:#7facb8; border-color:#214956; background:#041017; font-size:.58rem; }
.clue-signal.is-found { color:#c5f8ff; border-color:#ff983e88; box-shadow:0 0 18px #37dff718; }
.clue-signal.is-found button { display:none; }
body[data-back-busy=true] .clue-signal { visibility:hidden; pointer-events:none; }
@keyframes back-access-signal { from { filter:brightness(1); } to { filter:brightness(1.45); } }
@media(max-width:760px) {
  .back-header { inset:3% 4% auto; }
  .back-projection { left:4%; right:4%; top:18%; height:clamp(16rem,36dvh,25rem); max-height:calc(100dvh - var(--presentation-floor-bottom) - 7rem); }
  body.is-back-room-view .room-scene > .back-stage .back-projection {
    top:4.5rem; left:7%; right:7%;
    height:clamp(16rem,42dvh,28rem);
    max-height:calc(100dvh - var(--presentation-floor-bottom) - 5rem);
  }
  .back-network-nodes { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .back-experiments { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .back-detail { left:2%; top:44%; width:25%; max-height:25%; padding:.35rem; font-size:.7rem; }
  .back-portal { right:2%; width:7.5rem; }
  .back-portal--deep { left:2%; right:auto; }
  .back-access { right:2%; width:7.5rem; padding:.35rem; font-size:.7rem; }
  .back-controls { left:3%; right:3%; bottom:1rem; }
  .clue-signal { top:41%; right:2%; max-width:45vw; padding:.25rem; }
}
@media(prefers-reduced-motion:reduce) { .back-portal,.back-portal__leaf,.back-experiment-lattice,.back-projection { transition:none; } .back-stage [data-back="enter"].is-new-access { animation:none; } }
