/* First-run orientation and focused conversation, using the station's theme tokens. */
.ov-journey { display:flex; flex-wrap:wrap; gap:10px 24px; list-style:none; padding:14px 0 0; margin:12px 0 0; border-top:1px solid var(--ph-faint); color:var(--ph-dim); font-size:15px; }
.ov-journey li { display:flex; align-items:center; gap:9px; }
.ov-journey b { color:var(--ph); font-size:12px; letter-spacing:1px; }
.fnv-dialogue { background:linear-gradient(155deg, var(--panel2), var(--panel)); border-left:1px solid var(--ph-dim); padding:22px; gap:14px; overflow-y:auto; }
/* The conversation needs a solid reading surface over the underlying transcript. */
.fnv-dialogue::before { content:''; position:absolute; inset:0; background:#080b0b; z-index:-1; }
.fnv-stage { flex:none; color:var(--ph-dim); font-size:12px; letter-spacing:1.2px; line-height:1.5; text-transform:uppercase; }
.fnv-stage[hidden] { display:none; }
.fnv-speaker { color:var(--ph-bright); font-size:22px; letter-spacing:1px; padding-bottom:12px; }
.fnv-line { flex:1 0 auto; min-height:80px; overflow:visible; align-items:flex-start; font-size:20px; line-height:1.5; text-shadow:none; }
.fnv-ink { min-height:0; display:none; }
.fnv-ink.show { display:block; }
.fnv-opts { gap:9px; }
/* Quick tour: keep Next / Finish reachable even when COMMS is short. Only the lesson scrolls. */
.fnv-dialogue.fnv-tour { overflow:hidden; padding:14px 18px; gap:8px; }
.fnv-tour .fnv-speaker { font-size:18px; padding-bottom:5px; }
.fnv-tour .fnv-line { flex:1 1 auto; min-height:0; overflow-y:auto; display:block; font-size:18px; line-height:1.35; padding-right:8px; }
.fnv-tour .fnv-opts { flex-shrink:0; gap:5px; }
.fnv-tour .fnv-opt { padding:7px 10px; }
.fnv-opt { padding:12px; font-size:17px; line-height:1.3; border-radius:8px; text-shadow:none; }
.fnv-opt-l { overflow-wrap:anywhere; }
.fnv-more { align-self:flex-start; border:1px solid var(--ph-dim); border-radius:7px; background:var(--ph-faint); color:var(--ph-bright); font:inherit; font-size:17px; letter-spacing:0; padding:10px 16px; cursor:pointer; }
.fnv-more.show { animation:none; }
.fnv-more:hover, .fnv-more:focus-visible { border-color:var(--ph); outline:2px solid var(--ph); outline-offset:3px; }
.fnv-custom { display:grid; grid-template-columns:1fr auto; gap:8px; }
.fnv-custom-in { grid-column:1 / -1; grid-row:1; width:100%; box-sizing:border-box; resize:vertical; min-height:90px; line-height:1.45; padding:10px; }
.fnv-custom-back { justify-self:start; }
.fnv-custom-send { font-size:16px; }
.fnv-text-first .fnv-line { flex:0 0 auto; min-height:0; }
.fnv-conversation .fnv-custom-send { grid-column:2; }
.fnv-conversation .fnv-custom-send:disabled { opacity:.4; cursor:default; }
.fnv-suggestions { color:var(--ph-dim); font-size:16px; }
.fnv-suggestions summary { padding:10px 0; cursor:pointer; }
.fnv-suggestions .fnv-opt { display:block; width:100%; margin:6px 0; text-align:left; }
.fnv-answer-hint { color:var(--ph); line-height:1.5; padding:8px 0; }
.fnv-answer-hint:empty { display:none; }
.fnv-text-first .fnv-opt.skip { padding:7px 0; border-color:transparent; background:transparent; font-size:15px; }
@media (max-height:650px) { .fnv-dialogue { padding:14px; gap:9px; } .fnv-line { min-height:48px; font-size:18px; } .fnv-opt { padding:9px; } }
@media (max-width:700px) { .ov-journey { gap:8px 14px; font-size:13px; } .fnv-dialogue { padding:14px; } }

.ov-panel:has(#cc-recovery:not(.hidden)) .ov-journey { display:none; }

/* A quiet station command, outside the canvas for keyboard access. */
.arrival-controls{position:fixed;z-index:9999;right:24px;bottom:18px;margin:0;padding:0;background:none;border:0;box-shadow:none}
.arrival-controls>span{display:none}
.arrival-controls .bb{display:inline-flex;align-items:center;min-height:44px;padding:8px 10px;border:0;border-radius:0;background:none;box-shadow:none;color:var(--ph-dim);font:16px VT323,monospace;letter-spacing:1.5px;text-transform:uppercase;text-shadow:none;cursor:pointer}
.arrival-controls .bb:hover,.arrival-controls .bb:focus-visible{background:none;border:0;box-shadow:none;color:var(--ph);text-shadow:0 0 8px var(--ph-glow2)}
.arrival-controls .bb:focus-visible{outline:1px solid var(--ph);outline-offset:2px}

/* The arriving agent's own name is the title card; no invented model-state telemetry. */
.arrival-identity{position:fixed;z-index:9998;left:50%;top:12%;transform:translateX(-50%);max-width:80vw;text-align:center;pointer-events:none;color:var(--ph,#efb476);font-family:VT323,monospace;text-shadow:0 0 18px currentColor}
.arrival-identity span{display:block;font-size:13px;letter-spacing:5px;opacity:.65;margin-bottom:10px}
.arrival-identity strong{display:block;font-size:clamp(28px,4vw,52px);font-weight:400;letter-spacing:8px;overflow-wrap:anywhere}
body:has(.arrival-controls) #screen-game #stage-wrap{position:fixed;inset:0;z-index:9990;width:100%;height:100%;border:0}
body:has(.arrival-controls) #stage-wrap .cam-hud,body:has(.arrival-controls) #nav-coach{visibility:hidden}
@media(max-width:600px){.arrival-controls{right:10px;bottom:10px}.arrival-identity{top:10%}.arrival-identity strong{letter-spacing:4px}}
