:root {
  --ink: #f7ead1;
  --muted: #cfbea3;
  --paper: rgba(25, 16, 11, .82);
  --accent: #d8a04f;
  --line: rgba(247, 234, 209, .32);
  color-scheme: dark;
  font-family: Georgia, "Times New Roman", serif;
  background: #100a07;
}

* { box-sizing: border-box; }
html, body, #app { min-height: 100%; margin: 0; }
body { min-width: 320px; overflow: hidden; background: #100a07; color: var(--ink); }
button { font: inherit; }
button:focus-visible, summary:focus-visible { outline: 3px solid #fff4c9; outline-offset: 3px; }

.skip-link {
  position: fixed; z-index: 100; top: .75rem; left: .75rem; transform: translateY(-200%);
  padding: .65rem .9rem; color: #1a110c; background: #fff4c9; border-radius: .25rem; text-decoration: none;
}
.skip-link:focus { transform: translateY(0); }
.shell { position: relative; min-height: 100svh; overflow: hidden; isolation: isolate; }
.scene-stage { position: relative; width: 100%; min-height: 100svh; overflow: hidden; background: #100a07; }
.scene-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; user-select: none; }
.scene-stage::after {
  content: ""; position: absolute; z-index: 1; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(6,3,2,.6) 0%, transparent 22%, transparent 66%, rgba(6,3,2,.76) 100%),
    radial-gradient(circle at 50% 50%, transparent 47%, rgba(0,0,0,.33) 100%);
}
.scene-stage--pub::after { background: linear-gradient(90deg, rgba(8,4,2,.08), rgba(0,0,0,.34) 48%, rgba(0,0,0,.68)), linear-gradient(180deg, rgba(6,3,2,.58), transparent 32%, rgba(6,3,2,.84)); }
.scene-stage--mailbox::after { background: linear-gradient(180deg, rgba(6,3,2,.34), transparent 30%, rgba(6,3,2,.58)); }

.topbar {
  position: absolute; z-index: 5; top: max(.75rem, env(safe-area-inset-top));
  left: max(.75rem, env(safe-area-inset-left)); right: max(.75rem, env(safe-area-inset-right));
  display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; pointer-events: none;
}
.brand, .top-actions { pointer-events: auto; }
.brand {
  max-width: min(22rem, 62vw); padding: .55rem .75rem; color: var(--ink);
  background: linear-gradient(90deg, rgba(18,11,8,.85), rgba(18,11,8,.48)); border-left: 2px solid var(--accent); text-shadow: 0 1px 4px #000;
}
.brand__title { display: block; font-size: clamp(.82rem, 1.75vw, 1.05rem); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.brand__route { display: block; margin-top: .12rem; color: var(--muted); font-size: clamp(.68rem, 1.35vw, .82rem); letter-spacing: .03em; }
.top-actions { display: flex; gap: .45rem; }

.control, .route-button, .map-button {
  min-height: 2.7rem; padding: .56rem .74rem; color: var(--ink); background: var(--paper);
  border: 1px solid var(--line); border-radius: .25rem; cursor: pointer; box-shadow: 0 2px 12px rgba(0,0,0,.26); text-shadow: 0 1px 3px #000;
}
.control:hover, .route-button:hover, .map-button:hover { border-color: var(--accent); background: rgba(55,36,22,.9); }
.control--icon { display: inline-flex; align-items: center; gap: .38rem; }

.scene-copy {
  position: absolute; z-index: 3; left: clamp(1rem,4vw,4.5rem); right: clamp(1rem,4vw,4.5rem);
  bottom: clamp(6.4rem,11svh,8.6rem); max-width: min(37rem,82vw); padding: 1rem 1.15rem;
  border-left: 2px solid var(--accent); background: linear-gradient(90deg, rgba(20,12,8,.86), rgba(20,12,8,.54), transparent); text-shadow: 0 1px 4px #000; pointer-events: none;
}
.scene-copy--right {
  left: auto; right: clamp(1rem,4vw,4.5rem); text-align: right; border-right: 2px solid var(--accent); border-left: 0;
  background: linear-gradient(270deg, rgba(20,12,8,.86), rgba(20,12,8,.54), transparent);
}
.eyebrow { margin: 0 0 .24rem; color: var(--accent); font-size: .7rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.scene-copy h1 { margin: 0; font-size: clamp(1.35rem,4vw,2.55rem); line-height: 1.05; }
.scene-copy p:last-child { max-width: 34rem; margin: .45rem 0 0; color: var(--muted); font-size: clamp(.84rem,1.65vw,1.05rem); line-height: 1.4; }
.scene-copy--right p:last-child { margin-left: auto; }

.hotspot {
  position: absolute; z-index: 4; left: var(--x); top: var(--y); width: var(--w); height: var(--h);
  padding: 0; background: transparent; border: 1px solid transparent; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.hotspot::after {
  content: attr(data-label); position: absolute; left: 50%; bottom: calc(100% + .5rem); transform: translateX(-50%) translateY(.25rem);
  width: max-content; max-width: min(16rem,70vw); padding: .48rem .65rem; color: var(--ink); font-size: .78rem; line-height: 1.2; text-align: center;
  background: rgba(22,13,8,.92); border: 1px solid var(--accent); border-radius: .18rem; box-shadow: 0 3px 16px rgba(0,0,0,.42);
  opacity: 0; pointer-events: none; transition: opacity .18s ease, transform .18s ease;
}
.hotspot:hover, .hotspot:focus-visible { border-color: rgba(255,228,172,.9); box-shadow: inset 0 0 0 2px rgba(216,160,79,.42), 0 0 20px rgba(216,160,79,.22); }
.hotspot:hover::after, .hotspot:focus-visible::after { transform: translateX(-50%) translateY(0); opacity: 1; }
.hotspot--car { border-color: rgba(216,160,79,.18); background: rgba(216,160,79,.025); }
.hotspot--car::before { content: "↗"; position: absolute; right: .3rem; bottom: .2rem; color: rgba(255,240,203,.72); font-size: 1rem; text-shadow: 0 1px 3px #000; }

/* Phase 4 only overlays a supplied car image in the pre-existing window region.
   The locked room master beneath this element is never altered or regenerated. */
.room-window-car {
  position: absolute; z-index: 2; left: var(--x); top: var(--y); width: var(--w); height: var(--h);
  display: block; overflow: hidden; padding: 0; background: #0d1013; border: 1px solid rgba(216,160,79,.15);
  cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.room-window-car img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .45s ease, filter .2s ease; }
.room-window-car::after { content: ""; position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 18px rgba(0,0,0,.45); }
.room-window-car__label {
  position: absolute; z-index: 1; right: .3rem; bottom: .3rem; max-width: calc(100% - .6rem); padding: .32rem .45rem;
  color: var(--ink); background: rgba(20,12,8,.86); border: 1px solid rgba(216,160,79,.72); border-radius: .14rem;
  font-size: clamp(.62rem, 1.05vw, .78rem); line-height: 1.15; text-align: right; text-shadow: 0 1px 2px #000;
  opacity: 0; transform: translateY(.3rem); transition: opacity .18s ease, transform .18s ease;
}
.room-window-car:hover, .room-window-car:focus-visible { border-color: rgba(255,228,172,.96); box-shadow: 0 0 0 2px rgba(216,160,79,.45), 0 0 20px rgba(216,160,79,.22); }
.room-window-car:hover img, .room-window-car:focus-visible img { transform: scale(1.035); filter: saturate(1.06) contrast(1.03); }
.room-window-car:hover .room-window-car__label, .room-window-car:focus-visible .room-window-car__label { opacity: 1; transform: translateY(0); }

.dashboard-radio-guide {
  position: absolute; z-index: 2; left: var(--x); top: var(--y); width: var(--w); height: var(--h); pointer-events: none;
  border: 1px dashed rgba(216,160,79,.3); box-shadow: inset 0 0 18px rgba(0,0,0,.16);
}
.dashboard-radio-guide__label {
  position: absolute; left: 50%; bottom: calc(100% + .38rem); transform: translateX(-50%); width: max-content; max-width: min(16rem, 64vw);
  padding: .35rem .48rem; color: rgba(247,234,209,.82); background: rgba(20,12,8,.79); border: 1px solid rgba(216,160,79,.48);
  font-size: clamp(.58rem, .94vw, .74rem); line-height: 1.2; text-align: center;
}
.dashboard-radio { position: absolute; z-index: 4; left: var(--x); top: var(--y); width: var(--w); height: var(--h); }
.radio-control { position: absolute; left: var(--x); top: var(--y); width: var(--w); height: var(--h); padding: 0; background: transparent; border: 1px solid transparent; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.radio-control:hover, .radio-control:focus-visible { border-color: rgba(255,228,172,.9); box-shadow: 0 0 0 2px rgba(216,160,79,.42); }
.radio-control:focus-visible { outline: 2px solid #fff4c9; outline-offset: 2px; }

.hotspot--landing-sign::after {
  opacity: .82;
  transform: translateX(-50%) translateY(0);
  font-size: .72rem;
  letter-spacing: .07em;
  text-transform: uppercase;
  background: rgba(24, 13, 8, .75);
}

.phase-note {
  position: absolute; z-index: 3; right: clamp(1rem,4vw,4.5rem); bottom: clamp(6.6rem,13svh,9rem);
  max-width: min(20rem,65vw); padding: .65rem .8rem; color: #e6d9c0; font-size: .78rem; line-height: 1.35;
  background: rgba(20,12,8,.72); border: 1px solid rgba(247,234,209,.23); border-radius: .2rem;
}
.phase-note strong { color: var(--accent); }

.transport {
  position: absolute; z-index: 6; right: max(.75rem, env(safe-area-inset-right)); bottom: max(.75rem, env(safe-area-inset-bottom));
  left: max(.75rem, env(safe-area-inset-left)); display: grid; grid-template-columns: minmax(5.8rem,1fr) minmax(5.8rem,1fr) minmax(5.8rem,1fr);
  gap: .45rem; max-width: 34rem; margin: auto;
}
.transport .control { width: 100%; }
.transport .control[disabled] { color: rgba(247,234,209,.35); cursor: not-allowed; opacity: .58; }

.route-map {
  position: absolute; z-index: 7; top: calc(max(.75rem, env(safe-area-inset-top)) + 3.35rem); right: max(.75rem, env(safe-area-inset-right));
  width: min(22rem, calc(100vw - 1.5rem)); color: var(--ink); background: rgba(20,12,8,.91); border: 1px solid var(--line);
  border-radius: .28rem; box-shadow: 0 8px 26px rgba(0,0,0,.4); backdrop-filter: blur(4px);
}
.route-map summary { min-height: 2.7rem; padding: .72rem .8rem; cursor: pointer; color: var(--muted); font-size: .83rem; list-style: none; }
.route-map summary::-webkit-details-marker { display: none; }
.route-map summary::before { content: "☰"; margin-right: .5rem; color: var(--accent); }
.route-map__inside { display: grid; gap: .6rem; padding: 0 .7rem .75rem; }
.route-map__inside p { margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.32; }
.route-map__grid { display: flex; flex-wrap: wrap; gap: .35rem; }
.map-button { min-height: 2rem; padding: .3rem .52rem; font-size: .72rem; }
.map-button[aria-current="page"] { color: #1a110c; background: var(--accent); border-color: #f5d28d; text-shadow: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.no-script { padding: 1rem; color: var(--ink); }

.scene-stage--gig-intro,
.scene-stage--pub-room {
  background: #080303;
}

.scene-stage--gig-intro::after {
  background: linear-gradient(180deg, rgba(2, 0, 0, .35), transparent 28%, rgba(0, 0, 0, .82));
}

.gig-video {
  position: absolute;
  z-index: 2;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: transparent;
  opacity: 0;
  transition: opacity .75s ease;
}

.gig-video--visible { opacity: 1; }
.gig-video--out { opacity: 0; transition-duration: 1.2s; }

.gig-fallback {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 50% 62%, rgba(139, 32, 23, .42), transparent 24%),
    linear-gradient(180deg, #100304 0%, #1e0908 56%, #090303 100%);
}

.gig-fallback::before,
.gig-fallback::after {
  content: "";
  position: absolute;
  bottom: 0;
  width: 21vw;
  min-width: 8rem;
  height: 82%;
  background: linear-gradient(90deg, #200407, #5b1113 47%, #170304);
  box-shadow: inset -9px 0 18px rgba(0, 0, 0, .48);
}

.gig-fallback::before { left: 0; transform: skewX(-7deg) translateX(-8%); }
.gig-fallback::after { right: 0; transform: skewX(7deg) translateX(8%); }

.gig-fallback__light,
.pub-light {
  position: absolute;
  border-radius: 50%;
  filter: blur(1px);
  opacity: .76;
}

.gig-fallback__light--one { top: 18%; left: 28%; width: 22rem; height: 5rem; background: rgba(229, 155, 48, .45); transform: rotate(31deg); }
.gig-fallback__light--two { top: 19%; right: 24%; width: 19rem; height: 4rem; background: rgba(198, 46, 43, .45); transform: rotate(-30deg); }
.gig-fallback__light--three { top: 48%; left: 40%; width: 18rem; height: 3.6rem; background: rgba(238, 201, 100, .23); transform: rotate(-90deg); }

.gig-actions {
  position: absolute;
  z-index: 6;
  bottom: clamp(6.5rem, 13svh, 9.2rem);
  left: clamp(1rem, 4vw, 4.5rem);
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  max-width: 25rem;
}

.gig-source-notice {
  position: absolute;
  z-index: 6;
  bottom: clamp(10.4rem, 21svh, 13.8rem);
  left: clamp(1rem, 4vw, 4.5rem);
  max-width: min(31rem, 82vw);
  margin: 0;
  padding: .6rem .75rem;
  color: #f0d8b0;
  font-size: .82rem;
  line-height: 1.35;
  background: rgba(18, 9, 7, .84);
  border-left: 2px solid #c55b43;
}

.scene-stage--pub-room::after {
  background: linear-gradient(180deg, rgba(0, 0, 0, .44), transparent 34%, rgba(0, 0, 0, .84));
}

.pub-room-art {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 50% 65%, rgba(126, 27, 22, .6), transparent 20%),
    linear-gradient(180deg, #140504 0%, #260907 55%, #090303 100%);
  animation: pub-room-arrive 1.2s ease both;
}

@keyframes pub-room-arrive {
  from { opacity: 0; transform: scale(1.015); }
  to { opacity: 1; transform: scale(1); }
}

.pub-room-art::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 29%;
  background: linear-gradient(180deg, #150909, #060303);
  box-shadow: inset 0 12px 35px rgba(0, 0, 0, .7);
}

.pub-stage {
  position: absolute;
  top: 18%;
  right: 17%;
  bottom: 24%;
  left: 17%;
  display: grid;
  place-content: center;
  text-align: center;
  background: linear-gradient(180deg, rgba(27, 7, 7, .2), rgba(7, 3, 3, .82));
  border: 1px solid rgba(239, 184, 98, .22);
  box-shadow: 0 0 70px rgba(213, 92, 33, .26), inset 0 0 50px rgba(0, 0, 0, .72);
}

.pub-stage-sign {
  color: #d8a04f;
  font-size: clamp(.65rem, 1.45vw, .9rem);
  font-weight: 700;
  letter-spacing: .36em;
}

.pub-stage-band {
  margin-top: .25rem;
  color: #f0dcc0;
  font-size: clamp(1.55rem, 5.4vw, 4.6rem);
  font-weight: 700;
  letter-spacing: .06em;
  text-shadow: 0 0 22px rgba(220, 71, 46, .46);
}

.pub-curtain {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 20%;
  min-width: 7rem;
  background: repeating-linear-gradient(93deg, #1f0407 0 1rem, #550e13 1rem 2rem, #260508 2rem 2.7rem);
  box-shadow: inset 0 0 32px rgba(0, 0, 0, .66);
}

.pub-curtain--left { left: -5%; transform: skewX(-5deg); }
.pub-curtain--right { right: -5%; transform: skewX(5deg); }
.pub-light--one { top: 15%; left: 27%; width: 24rem; height: 4rem; background: rgba(238, 174, 67, .47); transform: rotate(29deg); }
.pub-light--two { top: 18%; right: 26%; width: 22rem; height: 4rem; background: rgba(209, 43, 53, .47); transform: rotate(-28deg); }
.pub-light--three { top: 49%; left: 45%; width: 16rem; height: 3rem; background: rgba(244, 220, 129, .26); transform: rotate(-90deg); }

.scene-stage--mailbox {
  overflow-y: auto;
}

.scene-stage--mailbox::after {
  background: linear-gradient(180deg, rgba(6, 3, 2, .3), rgba(6, 3, 2, .14) 31%, rgba(6, 3, 2, .76));
}

.guestbook-panel {
  position: absolute;
  z-index: 4;
  top: clamp(5.1rem, 12vh, 7rem);
  right: clamp(1rem, 7vw, 9rem);
  width: min(48rem, 60vw);
  padding: clamp(.65rem, 1.7vw, 1.1rem);
  background:
    linear-gradient(rgba(250, 238, 208, .94), rgba(231, 208, 164, .95)),
    url("assets/scene/Nostalgic Australian Guestbook by the Mailbox.png") center / cover;
  border: 1px solid rgba(82, 48, 24, .45);
  border-radius: .24rem;
  box-shadow: 0 16px 43px rgba(0, 0, 0, .44), inset 0 0 38px rgba(101, 64, 27, .18);
  transform: rotate(-.45deg);
}

.guestbook-paper {
  padding: clamp(.85rem, 2.1vw, 1.8rem);
  color: #362314;
  background: rgba(255, 247, 224, .7);
  border: 1px solid rgba(85, 49, 25, .24);
}

.guestbook-kicker {
  margin: 0 0 .15rem;
  color: #995239;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.guestbook-title {
  margin: 0;
  font-size: clamp(1.45rem, 4vw, 3rem);
  font-style: italic;
  line-height: 1;
}

.guestbook-intro {
  margin: .48rem 0 .8rem;
  color: #4d3827;
  font-size: clamp(.84rem, 1.45vw, 1rem);
}

.guestbook-note {
  display: block;
  width: 100%;
  min-height: clamp(8rem, 19vh, 12rem);
  padding: .75rem .88rem;
  resize: vertical;
  color: #352315;
  font: 1rem/1.55 "Bradley Hand", "Comic Sans MS", cursive;
  background: repeating-linear-gradient(180deg, rgba(255, 253, 243, .74) 0 1.58rem, rgba(133, 161, 184, .32) 1.58rem 1.66rem);
  border: 1px solid rgba(96, 62, 37, .37);
  border-left: 2px solid #bf786b;
  border-radius: .14rem;
}

.guestbook-note::placeholder { color: rgba(72, 51, 34, .68); }
.guestbook-count-row { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin: .55rem 0; color: #57402b; font-size: .76rem; }
.guestbook-photo-input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.guestbook-photo-label { padding: .44rem .66rem; color: #4e3320; border: 1px dashed #8c6348; border-radius: .18rem; cursor: pointer; }
.guestbook-photo-label:hover { background: rgba(181, 120, 81, .12); }

.guestbook-image-preview {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 10rem;
  margin: .45rem 0;
  border: 4px solid #f9ecd0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .24);
}

.guestbook-actions { display: grid; grid-template-columns: 1.25fr 1fr; gap: .55rem; margin-top: .72rem; }
.guestbook-submit, .guestbook-browse {
  min-height: 2.9rem;
  padding: .62rem .8rem;
  color: #f7ecd8;
  font: inherit;
  font-size: clamp(.82rem, 1.35vw, 1rem);
  cursor: pointer;
  border-radius: .18rem;
}
.guestbook-submit { background: linear-gradient(180deg, #b14b39, #7e2c23); border: 1px solid #692118; }
.guestbook-browse { color: #3e2818; background: rgba(255, 246, 221, .68); border: 1px solid #866044; }
.guestbook-submit:hover { background: linear-gradient(180deg, #c95e45, #913328); }
.guestbook-browse:hover { background: rgba(255, 251, 234, .95); }
.guestbook-status { min-height: 1.2rem; margin: .72rem 0 0; color: #6c4c36; font-size: .74rem; line-height: 1.3; }

.flipbook-modal {
  position: fixed;
  z-index: 20;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 1rem;
  background: rgba(5, 2, 1, .74);
  backdrop-filter: blur(5px);
}

.flipbook-panel {
  position: relative;
  width: min(42rem, 94vw);
  max-height: min(43rem, 90svh);
  overflow: auto;
  padding: clamp(1.2rem, 4vw, 2.4rem);
  color: #3a2718;
  background: linear-gradient(135deg, #f9e8bf, #f2d69d);
  border: 1px solid #a67b4b;
  box-shadow: 0 18px 60px rgba(0, 0, 0, .55), inset 0 0 38px rgba(107, 69, 25, .14);
}

.flipbook-panel h2 { margin: 0; font-size: clamp(1.6rem, 4vw, 2.5rem); font-style: italic; }
.flipbook-close { position: absolute; top: .8rem; right: .8rem; min-height: 2.15rem; color: #f7ead1; }
.flipbook-page-number { margin: .2rem 0 1rem; color: #72533a; font-size: .8rem; }
.flipbook-entry { min-height: 14rem; padding: 1rem 1.1rem; background: repeating-linear-gradient(180deg, #fff9e9 0 1.55rem, rgba(119, 154, 184, .28) 1.55rem 1.63rem); border: 1px solid rgba(104, 68, 36, .3); border-left: 2px solid #bb7569; }
.flipbook-empty { margin: 3rem 0; color: #674c36; text-align: center; }
.flipbook-date { margin: 0 0 .55rem; color: #8b5c41; font-size: .79rem; }
.flipbook-message { white-space: pre-wrap; margin: 0; font: 1.1rem/1.58 "Bradley Hand", "Comic Sans MS", cursive; }
.flipbook-image { display: block; width: auto; max-width: 100%; max-height: 20rem; margin: 1rem auto 0; border: 5px solid #f7ecd1; box-shadow: 0 3px 10px rgba(0, 0, 0, .26); }
.flipbook-controls { display: flex; justify-content: space-between; gap: .6rem; margin-top: 1rem; }
.flipbook-controls .control[disabled] { opacity: .5; cursor: not-allowed; }

@media (max-width: 640px) {
  .topbar { gap: .45rem; }
  .brand { max-width: 68vw; }
  .top-actions .control__label { display: none; }
  .scene-copy, .scene-copy--right {
    right: 1rem; bottom: 7.2rem; max-width: calc(100vw - 2rem); padding: .75rem .86rem; text-align: left;
    border-right: 0; border-left: 2px solid var(--accent); background: linear-gradient(90deg, rgba(20,12,8,.9), rgba(20,12,8,.55), transparent);
  }
  .scene-copy--right p:last-child { margin-left: 0; }
  .phase-note { top: auto; right: 1rem; bottom: 12rem; left: 1rem; max-width: none; }
  .route-map { top: 4.1rem; }
  .hotspot::after { display: none; }
  .hotspot--landing-sign::after { display: block; }
  .room-window-car__label { opacity: 1; transform: none; font-size: .62rem; }
  .dashboard-radio-guide__label { font-size: .6rem; }
  .gig-actions { right: 1rem; bottom: 7.5rem; left: 1rem; }
  .gig-source-notice { right: 1rem; bottom: 12.1rem; left: 1rem; max-width: none; }
  .pub-stage { top: 22%; right: 9%; bottom: 31%; left: 9%; }
  .guestbook-panel {
    position: relative;
    top: auto;
    right: auto;
    width: auto;
    margin: 5.2rem 1rem 7rem;
    transform: none;
  }
  .guestbook-actions { grid-template-columns: 1fr; }
  .guestbook-count-row { align-items: flex-start; flex-direction: column; gap: .38rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Archive overlay fix */
.physical-modal--archive {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
  background: rgba(0, 0, 0, 0.88);
}

.physical-modal--archive .archive-frame {
  display: block;
  width: min(96vw, 1600px);
  height: 90vh;
  border: 0;
  background: #111;
}

.physical-close--archive {
  position: fixed;
  top: 18px;
  right: 24px;
  z-index: 10000;
  min-width: 44px;
  min-height: 44px;
  font-size: 28px;
  cursor: pointer;
}
