@charset "UTF-8";
:root {
  color-scheme: dark;
  --night: #0c0812;
  --night-soft: #17101e;
  --ivory: #f7eedc;
  --muted: #c4b6c5;
  --gold: #e5c17b;
  --gold-bright: #f6daa0;
  --gold-dim: #8d6e42;
  --burgundy: #6d1b35;
  --panel: rgba(15, 10, 21, .86);
  --line: rgba(229, 193, 123, .28);
  --serif: Georgia, 'Times New Roman', Times, serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}
* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; }
html { background: var(--night); }
body {
  margin: 0;
  overflow: hidden;
  background: radial-gradient(circle at 50% 35%, #231226, #08060c 75%);
  color: var(--ivory);
  font-family: var(--sans);
  font-size: 15px;
  -webkit-font-smoothing: antialiased;
}
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; font: inherit; }
a { color: var(--gold-bright); text-underline-offset: .22em; }
a:hover { color: #fff2d3; }
button, a { touch-action: manipulation; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
button:focus-visible, a:focus-visible, canvas:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--gold-bright);
  outline-offset: 3px;
}
[hidden] { display: none !important; }
.sr-only {
  position: absolute !important; width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important; overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important;
}
.skip-link {
  position: fixed; left: 16px; top: -100px; z-index: 3000; padding: 12px 18px;
  border-radius: 0 0 8px 8px; background: var(--ivory); color: var(--night); font-weight: 700;
}
.skip-link:focus { top: 0; }

/* The local renderer and its very light finishing layers. */
#hall-shell { position: fixed; inset: 0; z-index: 0; background: #0b0710; }
#hall-shell canvas { display: block; width: 100%; height: 100%; touch-action: none; }
.hall-vignette, .hall-grain { position: fixed; inset: 0; pointer-events: none; z-index: 2; }
.hall-vignette { box-shadow: inset 0 0 170px 35px rgba(2, 1, 6, .56); }
.hall-grain {
  opacity: .027;
  background-image: repeating-linear-gradient(113deg, transparent 0, transparent 3px, #fff 4px, transparent 5px), repeating-linear-gradient(19deg, transparent 0, transparent 7px, #e2bb76 8px, transparent 9px);
  background-size: 87px 83px, 121px 113px;
}
#experience-ui { position: fixed; inset: 0; z-index: 10; pointer-events: none; }
#experience-ui > * { pointer-events: auto; }
.hall-ui { opacity: 0; visibility: hidden; transition: opacity .55s ease, visibility .55s; }
body.is-entered .hall-ui { opacity: 1; visibility: visible; }

/* Top chrome stays restrained so the room—not a web template—is the protagonist. */
#topbar {
  position: absolute; inset: 0 0 auto; min-height: 74px; display: flex; align-items: center;
  justify-content: space-between; gap: 20px; padding: 13px 20px;
  background: linear-gradient(180deg, rgba(7, 4, 12, .92), rgba(7, 4, 12, .52) 70%, transparent);
  border-bottom: 1px solid rgba(229, 193, 123, .09);
}
.brand-lockup { display: flex; align-items: center; gap: 12px; min-width: 230px; pointer-events: none; }
.brand-sigil {
  position: relative; width: 39px; height: 39px; flex: 0 0 auto; border: 1px solid var(--gold);
  border-radius: 50%; box-shadow: inset 0 0 0 4px rgba(229, 193, 123, .08), 0 0 22px rgba(229, 193, 123, .09);
}
.brand-sigil:before, .brand-sigil:after { content: ''; position: absolute; inset: 5px 17px; border-left: 1px solid var(--gold); transform: rotate(45deg); }
.brand-sigil:after { transform: rotate(-45deg); }
.brand-sigil i { position: absolute; left: 9px; right: 9px; top: 18px; border-top: 1px solid var(--gold); }
.brand-sigil i:nth-child(2) { transform: rotate(60deg); }
.brand-sigil i:nth-child(3) { transform: rotate(-60deg); }
.brand-words { display: flex; flex-direction: column; gap: 4px; }
.brand-words strong { font-size: 10px; letter-spacing: .18em; font-weight: 650; }
.brand-words small { color: var(--gold); font-size: 8px; letter-spacing: .19em; }
.top-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.tool-button, .icon-button, #focus-screen, #about-button {
  border: 1px solid rgba(229, 193, 123, .21); background: rgba(15, 10, 21, .68);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
}
.tool-button {
  min-height: 42px; display: flex; align-items: center; justify-content: center; gap: 9px;
  border-radius: 10px; padding: 8px 12px; color: #ece0d1; font-size: 11px; letter-spacing: .04em;
}
.tool-button:hover, .icon-button:hover, #focus-screen:hover { background: rgba(89, 45, 61, .76); border-color: var(--gold-dim); }
.tool-button > span:first-child { color: var(--gold); font-size: 18px; }
.venue-button { text-align: left; min-width: 157px; }
.venue-button > span:last-child { display: flex; flex-direction: column; gap: 2px; }
.venue-button small { font-size: 7px; letter-spacing: .18em; color: var(--gold); }
.venue-button strong { font-size: 10px; font-weight: 550; }
.icon-button {
  width: 42px; height: 42px; display: inline-grid; place-items: center; border-radius: 10px;
  color: var(--gold-bright); font-family: var(--serif); font-size: 19px;
}
.vr-status { color: var(--muted); font-size: 9px; letter-spacing: .08em; white-space: nowrap; }
.vr-host { position: relative; display: flex; align-items: center; }
#VRButton {
  position: relative !important; inset: auto !important; width: auto !important; min-height: 42px;
  margin: 0 !important; padding: 8px 13px !important; border: 1px solid var(--gold-dim) !important;
  border-radius: 10px !important; background: rgba(15, 10, 21, .8) !important; color: var(--gold-bright) !important;
  font: 600 10px var(--sans) !important; letter-spacing: .09em; opacity: 1 !important; z-index: auto !important;
}
#VRButton:disabled { opacity: .6 !important; }

.scene-caption {
  position: absolute; top: 94px; left: 22px; width: 256px; display: flex; flex-direction: column;
  gap: 7px; padding-left: 12px; border-left: 1px solid var(--gold-dim); pointer-events: none;
  text-shadow: 0 2px 9px #050209;
}
.scene-eyebrow { color: var(--gold); font-size: 8px; letter-spacing: .18em; }
.scene-caption strong { font: italic 22px var(--serif); font-weight: 400; }
.scene-caption > span:last-child { color: #c7b9c5; font-size: 10px; line-height: 1.55; }
.object-hint {
  position: fixed; z-index: 60; pointer-events: none; padding: 7px 10px; border: 1px solid var(--gold-dim);
  border-radius: 6px; background: rgba(9, 6, 13, .92); color: var(--gold-bright);
  font-size: 10px; letter-spacing: .06em; box-shadow: 0 8px 28px rgba(0, 0, 0, .32);
}

/* Twelve movement rail and the useful, honest action dock. */
.slide-rail {
  position: absolute; left: 50%; bottom: 135px; transform: translateX(-50%);
  width: min(1040px, calc(100% - 80px)); height: 36px;
}
.slide-rail ol { display: flex; gap: 5px; list-style: none; padding: 0; margin: 0; height: 100%; }
.slide-rail li { flex: 1 1 0; min-width: 0; }
.slide-rail button {
  position: relative; width: 100%; height: 34px; display: flex; align-items: center; justify-content: center;
  padding: 0; border: 1px solid rgba(229, 193, 123, .16); border-radius: 6px;
  background: rgba(10, 7, 15, .7); color: #9f929f; font-size: 9px; letter-spacing: .09em;
  backdrop-filter: blur(10px); overflow: hidden;
}
.slide-rail button:hover { color: var(--ivory); border-color: var(--gold-dim); }
.slide-rail button[aria-current="step"] { color: #1c1118; background: var(--gold); border-color: var(--gold-bright); font-weight: 800; flex-grow: 2; }
.slide-rail button[aria-current="step"]:before { content: ''; position: absolute; inset: 3px; border: 1px solid rgba(34, 17, 24, .35); border-radius: 3px; pointer-events: none; }
.slide-rail .rail-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
.action-dock {
  position: absolute; left: 50%; bottom: 20px; transform: translateX(-50%);
  width: min(1160px, calc(100% - 32px)); min-height: 101px; display: grid;
  grid-template-columns: minmax(250px, .85fr) minmax(250px, 1fr) auto; align-items: center; gap: 20px;
  padding: 14px 15px 14px 22px; border: 1px solid rgba(229, 193, 123, .31); border-radius: 17px;
  background: linear-gradient(110deg, rgba(21, 13, 27, .94), rgba(11, 8, 17, .91));
  box-shadow: 0 20px 65px rgba(0, 0, 0, .38), inset 0 1px rgba(255, 241, 207, .04);
  backdrop-filter: blur(22px); -webkit-backdrop-filter: blur(22px);
}
.dock-copy { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
#dock-position { color: var(--gold); font-size: 8px; letter-spacing: .19em; }
#dock-title { font: 400 25px/1.12 var(--serif); white-space: normal; }
#dock-status { color: #aa9bad; font-size: 7.5px; line-height: 1.4; letter-spacing: .12em; }
.dock-links { display: flex; justify-content: center; flex-wrap: wrap; gap: 7px; }
.dock-links a {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 37px;
  padding: 8px 12px; border: 1px solid rgba(229, 193, 123, .2); border-radius: 8px;
  color: #e4d6cb; background: rgba(255, 255, 255, .025); text-decoration: none;
  font-size: 10px; line-height: 1.25; text-align: center;
}
.dock-links a:after { content: '↗'; color: var(--gold); }
.dock-links a:hover { border-color: var(--gold); background: rgba(229, 193, 123, .08); }
.playback-controls { display: flex; align-items: center; gap: 7px; }
.dock-icon, .next-button { height: 48px; border-radius: 10px; }
.dock-icon { width: 43px; border: 1px solid rgba(229, 193, 123, .22); background: transparent; color: var(--gold-bright); font-size: 16px; }
.dock-icon:hover { background: rgba(229, 193, 123, .09); }
.dock-icon[aria-pressed="true"] { background: rgba(229, 193, 123, .15); border-color: var(--gold); }
.next-button {
  display: flex; align-items: center; justify-content: center; gap: 17px; padding: 0 20px;
  border: 1px solid var(--gold-bright); background: var(--gold); color: #1f121b;
  font-size: 10px; font-weight: 750; letter-spacing: .045em;
}
.next-button b { font-size: 20px; font-weight: 400; }
.next-button:hover { background: #f4d89c; }
.care-strip {
  position: fixed; z-index: 12; left: 18px; bottom: 181px; display: flex; align-items: center;
  gap: 8px; color: #a698a9; font-size: 8px; letter-spacing: .035em;
}
.care-strip a { color: #c7b495; }
#about-button { padding: 0; border: 0; background: none; color: #c7b495; text-decoration: underline; text-underline-offset: 3px; font-size: inherit; }
.hall-utilities {
  position: absolute; right: 19px; bottom: 181px; display: flex; align-items: center; gap: 12px;
}
#focus-screen { min-height: 30px; border-radius: 7px; padding: 6px 10px; color: #cabbad; font-size: 9px; }
#focus-screen span { margin-left: 5px; }
.desktop-move-hint { color: #a698a9; font-size: 8px; text-shadow: 0 1px 5px #000; }
.mobile-controls { display: none; }

/* Quiet toast papers, never flashing overlays. */
.toast {
  position: fixed; z-index: 1600; left: 50%; bottom: 250px; transform: translateX(-50%);
  max-width: min(460px, calc(100% - 30px)); padding: 12px 17px; border: 1px solid var(--gold-dim);
  border-radius: 10px; background: rgba(18, 11, 24, .96); color: var(--ivory); box-shadow: 0 15px 45px #0007;
  font-size: 12px; line-height: 1.55; text-align: center;
}
.photo-toast {
  position: fixed; z-index: 70; right: 20px; top: 97px; width: min(310px, calc(100% - 40px));
  padding: 17px 18px; border: 1px solid var(--gold-dim); border-radius: 11px;
  background: rgba(20, 13, 26, .94); box-shadow: 0 18px 60px #0007; backdrop-filter: blur(15px);
}
.photo-toast > * { display: block; }
.photo-toast-kicker { color: var(--gold); font-size: 8px; letter-spacing: .16em; }
.photo-toast strong { margin: 8px 0; font: 20px/1.2 var(--serif); }
#photo-toast-credit { color: #c1b3c2; font-size: 10px; line-height: 1.55; }
.photo-toast small { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); color: #a99baa; font-size: 9px; line-height: 1.5; }
.photo-toast small button { padding: 0; border: 0; background: none; color: var(--gold); text-decoration: underline; font-size: inherit; }

/* The overture: an entry card with depth, but no video or remote artwork. */
#entry-screen {
  position: fixed; inset: 0; z-index: 1000; display: flex; flex-direction: column; justify-content: space-between;
  overflow: auto; padding: 22px 32px 20px; background:
    radial-gradient(ellipse at 50% 46%, rgba(92, 37, 57, .34), transparent 43%),
    radial-gradient(ellipse at 50% 120%, rgba(208, 147, 75, .10), transparent 50%),
    linear-gradient(145deg, #0b0710, #180d1b 55%, #08060c);
  opacity: 1; visibility: visible; transition: opacity .6s ease, visibility .6s;
}
#entry-screen.is-leaving { opacity: 0; visibility: hidden; pointer-events: none; }
.entry-topline { position: relative; z-index: 2; display: flex; justify-content: space-between; color: #b9a078; font-size: 8px; letter-spacing: .24em; }
.entry-content { position: relative; z-index: 2; width: min(700px, 100%); margin: auto; padding: 30px 0 24px; text-align: center; }
.entry-emblem { position: relative; width: 82px; height: 82px; display: grid; place-items: center; margin: 0 auto 18px; }
.entry-emblem:before, .entry-emblem:after { content: ''; position: absolute; inset: 0; border: 1px solid rgba(229, 193, 123, .62); border-radius: 50%; }
.entry-emblem:after { inset: 8px; border-color: rgba(229, 193, 123, .2); }
.entry-emblem span { position: absolute; inset: -6px; border: 1px dotted rgba(229, 193, 123, .35); border-radius: 50%; }
.entry-emblem b { font: italic 43px/1 var(--serif); color: var(--gold-bright); font-weight: 400; }
.entry-emblem i:before, .entry-emblem i:after { content: ''; position: absolute; top: 40px; width: 36px; border-top: 1px solid var(--gold-dim); }
.entry-emblem i:before { right: 100%; margin-right: 14px; }
.entry-emblem i:after { left: 100%; margin-left: 14px; }
.entry-kicker { margin: 0 0 16px; color: var(--gold); font-size: 10px; letter-spacing: .31em; }
#entry-title { margin: 0; font: 400 clamp(52px, 6vw, 80px)/.91 var(--serif); letter-spacing: -.045em; text-shadow: 0 8px 35px #0008; }
#entry-title em { color: var(--gold-bright); font-weight: 400; }
.entry-tagline { margin: 19px 0 0; color: #e8d9cb; font: italic 19px/1.4 var(--serif); }
.entry-rule { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 17px auto; color: var(--gold); }
.entry-rule span { width: 70px; height: 1px; background: linear-gradient(90deg, transparent, var(--gold-dim)); }
.entry-rule span:last-child { background: linear-gradient(90deg, var(--gold-dim), transparent); }
.entry-rule b { font-size: 10px; font-weight: 400; }
.entry-intro { width: min(515px, 100%); margin: 0 auto 23px; color: #bfb1bd; font-size: 12px; line-height: 1.75; }
.enter-button {
  min-width: 248px; min-height: 55px; display: inline-flex; align-items: center; justify-content: space-between;
  gap: 34px; padding: 13px 20px 13px 25px; border: 1px solid #f4d79b; border-radius: 4px;
  background: linear-gradient(110deg, #dbb771, #efcf8d); color: #20111a; box-shadow: 0 10px 40px rgba(218, 173, 104, .14);
  font-size: 11px; font-weight: 750; letter-spacing: .055em;
}
.enter-button b { font: 22px var(--serif); }
.enter-button:hover:not(:disabled) { background: #f5daa0; box-shadow: 0 12px 46px rgba(218, 173, 104, .26); }
.enter-button:disabled { opacity: .62; }
.entry-load-state { min-height: 17px; margin: 12px 0 0; color: #aa96aa; font-size: 9px; letter-spacing: .025em; }
.loading-note { display: inline-block; width: 5px; height: 5px; margin-right: 7px; border-radius: 50%; background: var(--gold); vertical-align: 1px; }
.entry-read { display: inline-block; margin-top: 10px; color: #c3b2c2; font-size: 10px; }
.entry-bottom { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr auto; gap: 12px 30px; align-items: end; }
.entry-bottom p { margin: 0; }
.entry-bottom > p:first-child { display: flex; flex-direction: column; gap: 5px; max-width: 380px; }
#entry-hall-name { color: var(--gold); font-size: 8px; letter-spacing: .18em; }
#entry-hall-note { color: #a89aa9; font-size: 9px; line-height: 1.5; }
.entry-controls { color: #9e8e9f; font-size: 8px; letter-spacing: .025em; }
.entry-controls span { color: #d3bc97; }
.entry-controls i { margin: 0 6px; color: #68576a; font-style: normal; }
.entry-disclosure { grid-column: 1 / -1; padding-top: 11px; border-top: 1px solid rgba(229, 193, 123, .12); color: #796b7e; font-size: 7.5px; letter-spacing: .06em; text-align: center; }
.entry-architecture { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.entry-arch { position: absolute; left: 50%; top: 47%; transform: translate(-50%, -50%); border: 1px solid rgba(229, 193, 123, .08); border-radius: 48% 48% 0 0; }
.arch-one { width: min(800px, 75vw); height: min(680px, 72vh); }
.arch-two { width: min(960px, 90vw); height: min(780px, 87vh); border-color: rgba(229, 193, 123, .045); }
.arch-three { width: min(530px, 58vw); height: min(590px, 63vh); border-color: rgba(229, 193, 123, .09); }
.entry-column { position: absolute; top: 10%; bottom: 0; width: 1px; background: linear-gradient(transparent, rgba(229, 193, 123, .15), transparent); }
.column-left { left: 8%; }.column-right { right: 8%; }
.entry-orbit { position: absolute; left: 50%; top: 49%; width: 1100px; height: 300px; transform: translate(-50%, -50%) rotate(-13deg); border: 1px solid rgba(229, 193, 123, .04); border-radius: 50%; }
.orbit-two { transform: translate(-50%, -50%) rotate(16deg); width: 850px; }

/* Native dialogs bring focus management, escape behavior, and accessible transcripts. */
dialog { color: var(--ivory); font-family: var(--sans); }
dialog::backdrop { background: rgba(5, 3, 8, .72); backdrop-filter: blur(9px); -webkit-backdrop-filter: blur(9px); }
.modal-dialog { width: min(1060px, calc(100% - 32px)); max-height: 90dvh; padding: 0; border: 1px solid var(--gold-dim); border-radius: 16px; background: #130d19; box-shadow: 0 35px 100px #0009; }
.dialog-card { padding: 28px; background: radial-gradient(circle at 90% 0%, rgba(113, 50, 72, .16), transparent 38%); }
.dialog-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 19px; }
.dialog-kicker { color: var(--gold); font-size: 8px; letter-spacing: .18em; }
.dialog-header h2, .transcript-header h2 { margin: 7px 0 0; font: 400 36px/1.12 var(--serif); letter-spacing: -.02em; }
.dialog-close { width: 40px; height: 40px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 50%; background: transparent; color: var(--gold); font: 26px/1 var(--serif); }
.dialog-close:hover { background: rgba(229, 193, 123, .1); }
.dialog-intro { margin: 0 0 23px; color: #bdaebd; font-size: 12px; line-height: 1.65; }
.dialog-footnote { margin: 22px 0 0; padding-top: 18px; border-top: 1px solid var(--line); color: #9f91a1; font-size: 10px; line-height: 1.65; }
.venue-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.venue-option { position: relative; display: flex; flex-direction: column; padding: 0; overflow: hidden; border: 1px solid rgba(229, 193, 123, .18); border-radius: 12px; background: #1b111e; text-align: left; }
.venue-option:hover { border-color: var(--gold-dim); }
.venue-option[aria-checked="true"] { border-color: var(--gold); box-shadow: inset 0 0 0 1px rgba(229, 193, 123, .2); }
.venue-art { position: relative; height: 135px; display: block; overflow: hidden; background: radial-gradient(ellipse at 50% 110%, #6d263c, #160c1b 74%); }
.venue-art:after { content: ''; position: absolute; left: 15%; right: 15%; bottom: 0; height: 3px; background: #d6ad62; box-shadow: 0 -9px 28px #d6ad6277; }
.venue-art i { position: absolute; left: 50%; bottom: -52px; width: 150px; height: 165px; transform: translateX(-50%); border: 2px solid rgba(229, 193, 123, .46); border-radius: 50% 50% 0 0; }
.venue-art i:nth-child(2) { width: 115px; height: 140px; bottom: -41px; }
.venue-art i:nth-child(3) { width: 80px; height: 110px; bottom: -30px; }
.venue-art i:nth-child(4) { width: 43px; height: 78px; bottom: -15px; }
.venue-art b { position: absolute; left: 13px; top: 11px; color: rgba(244, 216, 159, .52); font: italic 22px var(--serif); }
.prague-option .venue-art { background: radial-gradient(ellipse at 50% 110%, #927657, #40303d 67%, #211624); }
.prague-option .venue-art i { border-style: double; border-width: 4px; border-color: #e9cfa07a; }
.cannes-option .venue-art { background: linear-gradient(110deg, #0b0c17, #322134); }
.cannes-option .venue-art i { border-radius: 0; border-width: 0 8px 0 0; transform: skewX(-18deg); width: 95px; border-color: #c99b5c5e; }
.venue-copy { display: flex; flex-direction: column; flex: 1; padding: 18px; }
.venue-copy small { color: var(--gold); font-size: 7px; letter-spacing: .15em; }
.venue-copy strong { margin: 9px 0 12px; font: 400 22px/1.14 var(--serif); }
.venue-copy > span { color: #b5a6b6; font-size: 10px; line-height: 1.6; }
.venue-copy em { margin-top: 15px; color: #968799; font-size: 8px; line-height: 1.5; font-style: normal; }
.venue-selected { position: absolute; top: 10px; right: 10px; display: none; padding: 4px 7px; border-radius: 3px; background: var(--gold); color: #25131c; font-size: 6px; letter-spacing: .1em; }
.venue-option[aria-checked="true"] .venue-selected { display: block; }
.help-card { max-width: 820px; margin: auto; }
.help-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; }
.help-grid h3, .help-note h3 { margin: 0 0 12px; color: var(--gold); font-size: 10px; letter-spacing: .13em; text-transform: uppercase; }
.help-grid dl { margin: 0; }
.help-grid dl > div { display: grid; grid-template-columns: 1fr 1.3fr; gap: 8px; padding: 8px 0; border-bottom: 1px solid rgba(229, 193, 123, .1); font-size: 10px; line-height: 1.4; }
.help-grid dt { color: #e4d4c2; }.help-grid dd { margin: 0; color: #a99bab; }
.help-note { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.help-note p { margin: 0; color: #baadba; font-size: 11px; line-height: 1.75; }
.help-note strong { color: #e5d7c8; font-weight: 600; }
.inline-links { display: flex; flex-wrap: wrap; gap: 14px 20px; margin-top: 12px; font-size: 10px; }
.transcript-actions { display: flex; align-items: center; gap: 8px; }
.print-button { border: 1px solid var(--gold-dim); border-radius: 999px; color: var(--gold-bright); background: rgba(223,187,115,.06); padding: 8px 12px; font: 600 .68rem var(--sans); white-space: nowrap; }
.print-button:hover { background: rgba(223,187,115,.14); }

.gallery-dialog { width: min(1180px, calc(100% - 28px)); }
.gallery-card { padding: 0; }
.gallery-card .sticky-header { position: sticky; top: 0; z-index: 3; margin: 0; padding: 24px 28px 17px; background: rgba(19, 13, 25, .97); border-bottom: 1px solid var(--line); }
.gallery-intro { display: flex; align-items: center; gap: 25px; padding: 18px 28px; background: rgba(229, 193, 123, .04); }
.gallery-intro p { margin: 0; color: #baaebd; font-size: 11px; line-height: 1.6; }
.gallery-intro a { flex: 0 0 auto; font-size: 10px; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 17px; padding: 23px 28px; }
.gallery-grid figure { margin: 0; overflow: hidden; border: 1px solid rgba(229, 193, 123, .16); border-radius: 9px; background: #0e0a13; }
.gallery-grid img { display: block; width: 100%; height: 185px; object-fit: cover; background: #1a121e; }
.gallery-grid figcaption { padding: 13px; }
.gallery-grid figcaption strong { display: block; margin-bottom: 5px; font: 17px/1.25 var(--serif); }
.gallery-grid figcaption span { display: block; color: var(--gold); font-size: 8px; line-height: 1.5; letter-spacing: .06em; }
.gallery-grid figcaption small { display: block; margin-top: 7px; color: #8f8292; font-size: 8px; line-height: 1.5; }
.gallery-footer { padding: 16px 28px 23px; border-top: 1px solid var(--line); color: #988b9b; font-size: 9px; line-height: 1.6; }

.sheet-dialog {
  position: fixed; inset: 0 0 0 auto; width: min(760px, 100%); max-width: 100%; height: 100dvh;
  max-height: 100dvh; margin: 0; padding: 0; border: 0; border-left: 1px solid var(--gold-dim);
  background: #110c17; box-shadow: -25px 0 80px #0008;
}
.transcript-shell { display: flex; flex-direction: column; height: 100dvh; max-height: 100dvh; overflow: hidden; background: radial-gradient(circle at 100% 0%, rgba(104, 42, 66, .14), transparent 32%); }
.transcript-header { display: flex; justify-content: space-between; gap: 20px; padding: 29px 36px 22px; border-bottom: 1px solid var(--line); background: #130e19; }
.transcript-header p { margin: 8px 0 0; color: #b4a6b6; font: italic 14px var(--serif); }
.transcript-notice { padding: 18px 36px; border-bottom: 1px solid var(--line); background: rgba(229, 193, 123, .045); }
.transcript-notice p { margin: 0; color: #bfb1bf; font-size: 10px; line-height: 1.65; }
.transcript-notice p + p { margin-top: 10px; }
.transcript-notice strong { color: var(--gold-bright); }
.transcript-content { flex: 1; min-height: 0; overflow: auto; padding: 8px 36px 35px; scroll-behavior: smooth; }
.transcript-content article { position: relative; padding: 32px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 20px; }
.transcript-content article.is-current:before { content: ''; position: absolute; left: -36px; top: 33px; bottom: 33px; width: 2px; background: var(--gold); }
.transcript-movement { margin-bottom: 12px; color: var(--gold); font-size: 7.5px; line-height: 1.6; letter-spacing: .14em; }
.transcript-content h3 { margin: 0; font: 400 35px/1.12 var(--serif); letter-spacing: -.02em; }
.transcript-kicker { margin: 12px 0 0; color: #a392a6; font-size: 8px; letter-spacing: .13em; }
.transcript-lede { margin: 18px 0; color: #e3d2c4; font: italic 20px/1.5 var(--serif); }
.transcript-content ul, .transcript-content ol { margin: 16px 0 0; padding-left: 20px; color: #bfb2c0; font-size: 12px; line-height: 1.8; }
.transcript-content li + li { margin-top: 8px; }
.transcript-content li::marker { color: var(--gold); }
.transcript-links { display: flex; flex-wrap: wrap; gap: 9px; margin: 21px 0 0; }
.transcript-links a { padding: 8px 11px; border: 1px solid var(--line); border-radius: 6px; font-size: 10px; text-decoration: none; }
.transcript-content figure { margin: 21px 0 0; }
.transcript-content figure img { display: block; width: 100%; max-height: 380px; object-fit: cover; border: 1px solid var(--gold-dim); border-radius: 8px; }
.transcript-content figcaption { margin-top: 8px; color: #96899b; font-size: 9px; }
.locked-article { background: repeating-linear-gradient(-45deg, transparent, transparent 30px, rgba(199, 182, 203, .015) 31px, rgba(199, 182, 203, .015) 32px); }
.locked-article h3 { color: #d0c6d2; }
.transcript-footer { display: flex; justify-content: space-between; gap: 20px; padding: 13px 36px; border-top: 1px solid var(--line); background: #0e0a13; color: #8f8292; font-size: 8px; line-height: 1.5; }
.transcript-footer p { margin: 0; }

/* Optional, user-started AI steward narration; never a meeting recording. */
.entry-listen-wrap { margin: 11px 0 2px; }
.entry-listen-button {
  width: min(420px, 100%); margin: auto; display: flex; flex-direction: column; gap: 4px;
  padding: 9px 15px; border: 1px solid rgba(229,193,123,.35); border-radius: 7px;
  background: rgba(229,193,123,.045); color: var(--gold-bright); text-decoration: none;
  font-size: 11px; font-weight: 650; letter-spacing: .035em;
}
.entry-listen-button:hover { background: rgba(229,193,123,.10); }
.entry-listen-button small { color: #b8a9b9; font-size: 8px; font-weight: 400; line-height: 1.5; letter-spacing: .01em; }
.narration-panel {
  position: fixed; z-index: 800; right: 20px; top: 86px;
  width: min(420px, calc(100% - 40px)); max-height: calc(100dvh - 244px); overflow-y: auto;
  padding: 20px; border: 1px solid var(--gold-dim); border-radius: 15px;
  background: radial-gradient(circle at 100% 0%, rgba(107,50,71,.20), transparent 45%), rgba(16,11,22,.97);
  color: var(--ivory); box-shadow: 0 25px 85px rgba(0,0,0,.62);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); overscroll-behavior: contain;
}
.narration-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.narration-header h2 { margin: 5px 0 12px; font: 400 28px/1.15 var(--serif); }
.narration-position { margin: 8px 0 0; color: #b9a8bb; font-size: 7.5px; line-height: 1.6; letter-spacing: .09em; }
.narration-disclosure {
  margin: 0 0 14px; padding: 11px 12px; border-left: 3px solid var(--gold);
  background: rgba(229,193,123,.055); color: #d2c5d0; font-size: 10px; line-height: 1.65;
}
.narration-disclosure strong { color: var(--gold-bright); font-weight: 650; }
#narration-audio { display: block; width: 100%; height: 0; }
.narration-controls { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 7px; }
.narration-controls button, .narration-speed-label select {
  min-height: 44px; border: 1px solid var(--line); border-radius: 7px; background: #1c1423; color: var(--ivory);
}
.narration-controls button { padding: 8px 7px; font-size: 10px; }
.narration-controls button:hover:not(:disabled) { border-color: var(--gold); background: rgba(229,193,123,.09); }
.narration-controls button:disabled { opacity: .55; }
.narration-controls .narration-play { border-color: var(--gold); background: var(--gold); color: #20131c; font-weight: 750; }
.narration-controls .narration-play[aria-pressed="true"] { background: #efcf8d; }
.narration-seek-row { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 12px; margin-top: 13px; }
#narration-seek { width: 100%; height: 30px; margin: 0; accent-color: var(--gold); cursor: pointer; }
#narration-time { color: #cfc1cd; font: 10px var(--sans); white-space: nowrap; }
.narration-speed-label { display: flex; justify-content: space-between; align-items: center; gap: 12px; color: #b9aaba; font-size: 10px; }
.narration-speed-label select { min-height: 36px; padding: 5px 8px; color: var(--gold-bright); font: inherit; }
.narration-status { margin: 11px 0; color: #c5b8c7; font-size: 10px; line-height: 1.55; }
.narration-caption-wrap { margin-top: 13px; padding-top: 13px; border-top: 1px solid var(--line); }
.narration-caption-wrap h3 { margin: 0 0 9px; color: var(--gold); font-size: 9px; font-weight: 650; letter-spacing: .1em; text-transform: uppercase; }
.narration-caption-wrap h3 span { color: #9d8fa1; font-size: 7px; font-weight: 400; letter-spacing: .01em; text-transform: none; }
.narration-caption { margin: 0; color: #e6d9df; font: 13px/1.7 var(--serif); white-space: pre-line; }
.narration-downloads { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 15px; }
.narration-downloads a { padding: 8px; border: 1px solid var(--line); border-radius: 6px; font-size: 9px; line-height: 1.4; text-align: center; text-decoration: none; }
.narration-downloads a:hover { border-color: var(--gold); background: rgba(229,193,123,.06); }
.narration-boundary { margin: 14px 0 0; color: #a799aa; font-size: 9px; line-height: 1.65; }
body.no-webgl #narration-panel { display: none !important; }
@media (max-height: 720px) and (min-width: 601px) {
  .narration-panel { top: 72px; max-height: calc(100dvh - 207px); }
}
@media (max-width: 600px) {
  .narration-panel {
    left: 9px; right: 9px; top: auto; bottom: 9px; width: auto; max-height: calc(100dvh - 18px);
    padding: 16px; border-radius: 13px;
  }
  .narration-header h2 { font-size: 25px; }
  .narration-controls button { min-height: 46px; }
  .narration-caption { font-size: 14px; }
  .narration-downloads a { font-size: 10px; }
  .entry-listen-button { padding: 8px 12px; }
  .entry-listen-button small { font-size: 7.5px; }
}

/* No-WebGL is a first-class readable document, not an error modal. */
body.no-webgl { overflow: auto; background: #110c17; }
body.no-webgl #hall-shell, body.no-webgl #experience-ui, body.no-webgl #care-strip, body.no-webgl .hall-vignette, body.no-webgl .hall-grain { display: none !important; }
body.no-webgl #transcript-dialog, body.no-webgl #transcript-dialog[open] {
  display: block !important; position: static !important; inset: auto !important; width: 100% !important;
  max-width: none !important; height: auto !important; max-height: none !important; margin: 0 !important;
  border: 0 !important; overflow: visible !important; background: #110c17 !important;
}
body.no-webgl .transcript-shell { height: auto; max-height: none; overflow: visible; }
body.no-webgl .transcript-header, body.no-webgl .transcript-notice, body.no-webgl .transcript-content, body.no-webgl .transcript-footer { width: min(900px, 100%); margin-left: auto; margin-right: auto; }
body.no-webgl .transcript-header { position: static; }
body.no-webgl .transcript-content { overflow: visible; }
body.no-webgl .transcript-header .dialog-close { display: none; }

@media (max-width: 1080px) {
  .compact-label > span:last-child { display: none; }
  .compact-label { width: 42px; padding: 0; }
  .brand-lockup { min-width: 205px; }
  .desktop-move-hint { display: none; }
  .action-dock { grid-template-columns: minmax(215px, .8fr) 1fr auto; gap: 12px; }
  #dock-title { font-size: 21px; }
  .next-button { padding: 0 14px; gap: 9px; }
}
@media (max-width: 820px) {
  #topbar { padding: 10px 12px; min-height: 65px; }
  .brand-words strong { font-size: 8px; }.brand-words small { font-size: 6.5px; }
  .brand-lockup { min-width: 0; }.brand-sigil { width: 33px; height: 33px; }
  .brand-sigil:before, .brand-sigil:after { inset: 5px 14px; }.brand-sigil i { top: 15px; left: 7px; right: 7px; }
  .venue-button { min-width: 44px; width: 44px; padding: 0; }
  .venue-button > span:last-child { display: none; }
  .icon-button, .tool-button { min-height: 40px; height: 40px; }
  .scene-caption { top: 78px; left: 14px; }
  .action-dock { grid-template-columns: 1fr auto; padding: 12px; gap: 10px; }
  .dock-copy { display: none; }
  .dock-links { justify-content: flex-start; }
  .dock-links a { max-width: 260px; }
  .slide-rail { bottom: 130px; }
  .care-strip { display: none !important; }
  .hall-utilities { bottom: 176px; right: 13px; }
  .venue-options { grid-template-columns: 1fr; }
  .venue-option { display: grid; grid-template-columns: 130px 1fr; }
  .venue-art { height: 100%; min-height: 175px; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .help-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .hall-vignette { box-shadow: inset 0 0 95px 15px rgba(2, 1, 6, .44); }
  #topbar { gap: 7px; }
  .brand-lockup { gap: 7px; }
  .brand-words { max-width: 93px; }
  .brand-words strong { line-height: 1.5; letter-spacing: .10em; }
  .brand-words small { display: none; }
  .top-actions { gap: 4px; }
  .icon-button, .tool-button { width: 35px; height: 38px; min-height: 38px; border-radius: 8px; }
  #gallery-button { display: none; }
  #circle-button, #meeting-one-button, #reset-camera { display: none; }
  .print-button { font-size: .57rem; padding: 7px 9px; }
  .vr-status { display: none; }
  #VRButton { width: 38px !important; min-height: 38px; overflow: hidden; padding: 4px !important; font-size: 0 !important; }
  #VRButton:after { content: 'VR'; font-size: 10px; }
  .scene-caption { top: 68px; left: 12px; width: 205px; gap: 4px; padding-left: 9px; }
  .scene-eyebrow { font-size: 6.5px; }.scene-caption strong { font-size: 18px; }.scene-caption > span:last-child { font-size: 8px; line-height: 1.45; }
  .action-dock { bottom: 10px; width: calc(100% - 18px); min-height: 92px; border-radius: 13px; padding: 9px; gap: 7px; }
  .dock-links { gap: 5px; }
  .dock-links a { min-height: 32px; max-width: 180px; padding: 6px 8px; font-size: 8px; }
  .dock-links a:nth-child(n+2) { display: none; }
  .playback-controls { gap: 4px; }
  .dock-icon { width: 34px; height: 42px; }
  #play-button { display: none; }
  .next-button { width: 48px; height: 48px; padding: 0; }
  .next-button span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
  .next-button b { font-size: 24px; }
  .slide-rail { bottom: 114px; width: calc(100% - 18px); height: 30px; }
  .slide-rail ol { gap: 3px; }
  .slide-rail button { height: 29px; border-radius: 4px; font-size: 7px; }
  .hall-utilities { bottom: 153px; right: 11px; }
  #focus-screen { min-height: 34px; }
  .mobile-controls {
    position: absolute; left: 13px; bottom: 151px; width: 104px; height: 104px; display: grid;
    grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); gap: 3px;
  }
  .mobile-controls button { border: 1px solid rgba(229, 193, 123, .25); border-radius: 8px; background: rgba(12, 8, 18, .68); color: #dbc28f; backdrop-filter: blur(10px); touch-action: none; }
  .mobile-controls button:active { background: rgba(229, 193, 123, .28); }
  .move-forward { grid-area: 1 / 2; }.move-left { grid-area: 2 / 1; }.move-back { grid-area: 3 / 2; }.move-right { grid-area: 2 / 3; }
  .mobile-controls > span { grid-area: 2 / 2; display: grid; place-items: center; color: #a397a8; font-size: 7px; letter-spacing: .1em; }
  .toast { bottom: 268px; font-size: 11px; }
  .photo-toast { top: 73px; right: 12px; }
  #entry-screen { padding: 16px 18px 15px; }
  .entry-topline { font-size: 6px; letter-spacing: .13em; }
  .entry-topline span:last-child { display: none; }
  .entry-content { padding: 23px 0 19px; }
  .entry-emblem { width: 66px; height: 66px; margin-bottom: 16px; }
  .entry-emblem b { font-size: 35px; }.entry-emblem i:before, .entry-emblem i:after { top: 32px; width: 25px; }
  .entry-kicker { font-size: 8px; letter-spacing: .23em; }
  #entry-title { font-size: clamp(47px, 15vw, 63px); }
  .entry-tagline { font-size: 16px; margin-top: 17px; }
  .entry-intro { font-size: 11px; line-height: 1.65; margin-bottom: 18px; }
  .enter-button { min-width: 230px; min-height: 51px; }
  .entry-bottom { grid-template-columns: 1fr; gap: 12px; }
  .entry-controls { display: none; }
  .entry-disclosure { text-align: left; font-size: 6.5px; }
  .arch-one { width: 88vw; }.arch-three { width: 72vw; }
  .modal-dialog { width: calc(100% - 18px); max-height: 94dvh; border-radius: 12px; }
  .dialog-card { padding: 20px 16px; }
  .dialog-header h2 { font-size: 30px; }
  .dialog-close { width: 37px; height: 37px; }
  .venue-option { grid-template-columns: 96px 1fr; }
  .venue-art { min-height: 192px; }
  .venue-art i { width: 110px; }.venue-art i:nth-child(2) { width: 86px; }.venue-art i:nth-child(3) { width: 65px; }
  .venue-copy { padding: 14px; }
  .venue-copy strong { font-size: 19px; }
  .gallery-card .sticky-header { padding: 20px 17px 15px; }
  .gallery-intro { align-items: flex-start; flex-direction: column; gap: 10px; padding: 15px 17px; }
  .gallery-grid { grid-template-columns: 1fr; gap: 13px; padding: 16px; }
  .gallery-grid img { height: 205px; }
  .gallery-footer { padding: 14px 17px; }
  .transcript-header { padding: 23px 20px 17px; }
  .transcript-header h2 { font-size: 28px; }
  .transcript-header p { font-size: 12px; }
  .transcript-notice { padding: 16px 20px; }
  .transcript-content { padding: 5px 20px 27px; }
  .transcript-content h3 { font-size: 30px; }
  .transcript-lede { font-size: 18px; }
  .transcript-content article.is-current:before { left: -20px; }
  .transcript-footer { flex-direction: column; gap: 5px; padding: 12px 20px; }
  .help-grid dl > div { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 370px) {
  #reset-camera { display: none; }
  .brand-words { display: none; }
  .entry-tagline { font-size: 14px; }
}
@media (hover: none), (pointer: coarse) {
  .slide-rail button, .icon-button, .tool-button { min-height: 42px; }
  .object-hint { display: none !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .hall-ui { transition: none !important; }
  #entry-screen { transition: none !important; }
}

@media print {
  body > *:not(#transcript-dialog) { display: none !important; }
  #transcript-dialog, #transcript-dialog[open] { display: block !important; position: static !important; inset: auto !important; width: 100% !important; max-width: none !important; height: auto !important; max-height: none !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: #fff !important; color: #111 !important; overflow: visible !important; }
  #transcript-dialog::backdrop { display: none !important; }
  #transcript-dialog .transcript-shell { height: auto !important; max-height: none !important; overflow: visible !important; background: #fff !important; color: #111 !important; }
  #transcript-dialog .transcript-content { overflow: visible !important; }
  #transcript-dialog .transcript-header { position: static !important; background: #fff !important; color: #111 !important; }
  #transcript-dialog .transcript-actions, #transcript-dialog .dialog-close { display: none !important; }
  #transcript-dialog article { break-inside: avoid; border-color: #aaa !important; background: #fff !important; color: #111 !important; }
  #transcript-dialog h3, #transcript-dialog p, #transcript-dialog li, #transcript-dialog figcaption { color: #111 !important; }
  #transcript-dialog a { color: #623d13 !important; }
  #transcript-dialog .transcript-links a::after { content: ' · ' attr(href); font-size: .72em; word-break: break-all; }
}
