/* Visitor site: street, lobby, elevator, top floor. Builds on style.css tokens. */
.visit .stage[hidden] { display: none; }
.visit #scene canvas { cursor: default; }
.eyebrow { margin: 0 0 4px; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); }
.row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
button.big { padding: 11px 18px; font-size: 16px; }
button.ghost { background: none; border-color: transparent; color: var(--muted); text-decoration: underline; }

.street-card { left: 50%; bottom: 5vh; transform: translateX(-50%); width: min(560px, calc(100vw - 24px)); padding: 18px 22px; text-align: center; }
.street-card h1 { font-size: clamp(26px, 5vw, 38px); letter-spacing: 0.02em; margin-bottom: 6px; }
.street-card p { margin: 0 0 14px; color: #d5d9e2; }
.street-card .row { justify-content: center; }

.talk { left: 50%; bottom: 6vh; transform: translateX(-50%); width: min(640px, calc(100vw - 24px)); padding: 16px 20px; border-top: 3px solid var(--gold); }
.talk .who { margin: 0 0 4px; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gold); }
.talk #talk-line { margin: 0 0 12px; font-size: 17px; min-height: 1.5em; }
.dest { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.dest button { text-align: left; white-space: normal; padding: 10px 12px; display: grid; gap: 2px; }
.dest button b { font-size: 15px; } .dest button span { color: var(--muted); font-size: 12.5px; }
.dest button .way { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gold); }
.dest button:hover, .dest button:focus-visible { border-color: var(--gold); }

#fade { position: fixed; inset: 0; background: #07080b; display: grid; place-items: center; z-index: 30; opacity: 0; transition: opacity 0.5s; }
#fade.on { opacity: 1; } #fade[hidden] { display: none; }
.lift { display: grid; gap: 6px; justify-items: center; border: 2px solid #3a3f4c; border-radius: 14px; padding: 18px 34px; background: #11141a; }
.lift-label { color: var(--muted); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; }
#lift-floor { font: 700 64px/1 ui-monospace, Menlo, monospace; color: var(--gold); min-width: 2ch; text-align: center; }

.visit #teams { width: 280px; }
.visit #feed { height: 200px; width: 380px; }
.agent[disabled] { cursor: default; opacity: 1; }
.unattributed { font-size: 12.5px; color: var(--muted); margin: 0; }
.vote-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.vote-site { border: 1px solid var(--line); border-top: 4px solid var(--team, var(--gold)); border-radius: 12px; padding: 10px; min-width: 0; display: grid; gap: 8px; align-content: start; }
.vote-site h3 { font-size: 17px; color: var(--team, var(--gold)); }
.vote-site iframe { width: 100%; height: 52vh; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.vote-site.mine { box-shadow: 0 0 0 2px var(--team, var(--gold)); }
.bar { height: 22px; border-radius: 99px; overflow: hidden; display: flex; background: rgba(255, 255, 255, 0.08); font-size: 12px; }
.bar span { display: grid; place-items: center; color: #0d0f14; font-weight: 600; min-width: 2ch; }
.bar .claude { background: var(--claude); } .bar .codex { background: var(--codex); }
.round { display: grid; grid-template-columns: 96px 1fr auto; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }
.round img { width: 96px; height: 60px; object-fit: cover; border-radius: 6px; border: 1px solid var(--line); background: #0b0d12; }
.round .thumbs { display: flex; gap: 4px; } .round .thumbs img { width: 46px; }

@media (max-width: 760px) {
  .dest, .vote-cols { grid-template-columns: 1fr; } .vote-site iframe { height: 44vh; }
  .visit #teams { width: auto; } .round { grid-template-columns: 1fr; }
  .visit #topbar { gap: 6px; padding: 6px 8px; } .visit #topbar button { padding: 5px 8px; font-size: 13px; }
}

@media (min-width: 900px) { .street-card { left: 4vw; bottom: 6vh; transform: none; width: 400px; text-align: left; } .street-card .row { justify-content: flex-start; } }
.visit #teams .unattributed { grid-column: 1 / -1; }

/* Letterbox bars while the camera is on a scripted move */
body.visit::before, body.visit::after { content: ""; position: fixed; left: 0; right: 0; height: 0; background: #000; z-index: 5; pointer-events: none; transition: height 0.9s cubic-bezier(0.6, 0, 0.2, 1); }
body.visit::before { top: 0; } body.visit::after { bottom: 0; }
body.visit.cinema::before, body.visit.cinema::after { height: 9vh; }
@media (prefers-reduced-motion: reduce) { body.visit::before, body.visit::after { display: none; } }
