/* ==========================================================================
   lvboardwalk.com - Boardwalk Hotel & Casino memorial
   Design derived from the property's own signage: the white coaster lattice,
   dark-red channel letters, the smokestack price pylon, chasing-bulb raceways,
   gilt-framed price posters, the striped cupola, Jocko's mint-and-brick paint,
   and the 1996 website's tilted-postcard chrome. Palette sampled from the
   Highsmith night photographs, the billy kerr closure set, and the 2002 UNLV
   Neon Survey. No frameworks, no CDNs, no trackers. Everything self-hosted.
   ========================================================================== */

/* ---- fonts (self-hosted, subset; ¢ included) ---------------------------- */
@font-face { font-family: "Alfa Slab One"; src: url("../fonts/alfa-slab-one-regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Sancreek"; src: url("../fonts/sancreek-regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Grand Hotel"; src: url("../fonts/grand-hotel-regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Oswald"; src: url("../fonts/oswald-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("../fonts/public-sans-regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("../fonts/public-sans-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("../fonts/public-sans-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("../fonts/public-sans-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
/* fascia-sign faces (index wall, adopted July 2026): the sign shop's kit per
   the owner's close-ups - ONE ultra-bold geometric sans for every price/claim
   line, plus one themed face per venue wordmark. Free OFL stand-ins; the
   property-wide mapping is banked in facts/sign-typography.md. */
@font-face { font-family: "Poppins"; src: url("../fonts/poppins-800.woff2") format("woff2"); font-weight: 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Cinzel"; src: url("../fonts/cinzel-900.woff2") format("woff2"); font-weight: 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Cinzel Decorative"; src: url("../fonts/cinzel-decorative-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "EB Garamond"; src: url("../fonts/eb-garamond-regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "EB Garamond"; src: url("../fonts/eb-garamond-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Chicle"; src: url("../fonts/chicle.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }

/* ---- tokens -------------------------------------------------------------- */
:root {
  /* night field & day paint */
  --night: #14121a;        /* black sky behind the neon */
  --night-2: #1d1622;      /* warm night (carnival era) */
  --paper: #f5eedd;        /* cream stucco / postcard stock */
  --paper-2: #efe5d1;      /* aged paper */
  --ink: #27211d;          /* body text on paper */
  --ink-soft: #5c5348;

  /* signage */
  --brick: #8e2323;        /* day channel letters */
  --neon: #ff4b21;         /* night red-orange neon */
  --bulb: #f6bd4a;         /* amber incandescent */
  --bulb-dim: #c89344;
  --mint: #a9d8c6;         /* Jocko's collar, fascia panels */
  --pink: #e9b7c9;         /* storefront pink */
  --plum: #5c4450;         /* pylon field */
  --teal: #2c7873;         /* clock ring, trim */
  --sea: #1d5f8c;          /* Surf Buffet wave */
  --script-green: #3fa66a; /* Holiday Inn script */
  --cream-dim: #d8d2c4;    /* text on night */

  --display: "Alfa Slab One", "Rockwell", serif;
  --carnival: "Sancreek", "Alfa Slab One", serif;
  --script: "Grand Hotel", cursive;
  --marquee: "Oswald", "Arial Narrow", sans-serif;
  --body: "Public Sans", "Segoe UI", sans-serif;

  --measure: 64ch;
  --gutter: clamp(1rem, 4vw, 2.5rem);

  /* incandescent bulbs, drawn as layered radial gradients.
     raceway set: three luminance phases, one per background layer,
     composed on a 66px tile (3 × 22px pitch); -on carries a white-hot
     core, amber body, and a faint baked halo ring. */
  --bulb-on: radial-gradient(circle, #fff7e2 0 1.7px, var(--bulb) 2.9px 3.7px, rgba(246, 189, 74, 0.45) 4.8px, rgba(246, 189, 74, 0.1) 6.6px, rgba(246, 189, 74, 0.2) 7.6px, rgba(246, 189, 74, 0) 9px);
  --bulb-fade: radial-gradient(circle, #eec272 0 1px, var(--bulb-dim) 2.1px 3.3px, rgba(200, 147, 68, 0.3) 4.4px, rgba(200, 147, 68, 0) 5.8px);
  --bulb-off: radial-gradient(circle at 50% 42%, #4a3826 0 1.2px, #332619 2.5px 3.1px, rgba(20, 14, 9, 0.8) 3.6px, rgba(20, 14, 9, 0) 4.2px);
  /* cabinet-ring set: smaller bulbs that fit the 11px mask band */
  --bulb-on-sm: radial-gradient(circle, #fff7e2 0 1.3px, var(--bulb) 2.3px 3.2px, rgba(246, 189, 74, 0.38) 4.2px, rgba(246, 189, 74, 0) 5.5px);
  --bulb-off-sm: radial-gradient(circle, #45341f 0 2.4px, rgba(24, 17, 11, 0.85) 3px, rgba(24, 17, 11, 0) 3.7px);
  --shadow: 0 10px 24px rgba(24, 16, 12, 0.18);
}

/* ---- reset-ish ------------------------------------------------------------
   NOTE: no global scroll-behavior:smooth - it fights long-page anchor jumps. */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--body);
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--ink);
  background: var(--paper);
}
img { max-width: 100%; display: block; }
h1, h2, h3 { line-height: 1.12; margin: 0 0 0.6em; font-family: var(--display); font-weight: 400; letter-spacing: 0.01em; }
p, ul { margin: 0 0 1em; }
a { color: var(--brick); text-decoration-color: rgba(142, 35, 35, 0.45); text-underline-offset: 2px; }
a:hover { text-decoration-color: currentColor; }
:focus-visible { outline: 3px solid var(--bulb); outline-offset: 2px; border-radius: 2px; }
::selection { background: var(--bulb); color: var(--night); }

/* ---- memorial ribbon (mandatory, every page) ----------------------------- */
.ribbon {
  margin: 0;
  padding: 0.5rem var(--gutter);
  background: #4a1717;
  color: #f3e6d0;
  font-size: 0.86rem;
  text-align: center;
  letter-spacing: 0.02em;
}
.ribbon b { color: #ffd9a0; }

/* ---- masthead: the pylon top --------------------------------------------- */
.masthead {
  background: var(--night);
  color: var(--cream-dim);
  text-align: center;
  padding: 2.1rem var(--gutter) 0;
  position: relative;
}
.mast-kicker {
  font-family: var(--carnival);
  color: var(--bulb);
  font-size: clamp(0.95rem, 2.4vw, 1.25rem);
  letter-spacing: 0.08em;
  margin: 0 0 0.3rem;
}
/* The wordmark is the casino's own logo lettering - Hobo with the official
   red→yellow gradient (sampled from the 2002 web logo), inlined as SVG
   outlines in the masthead partial. No font file is served for it. */
.wordmark {
  display: block;
  width: min(88vw, 30rem);
  margin: 0 auto;
  line-height: 0;
}
.wordmark-logo { display: block; width: 100%; height: auto; }
.wordmark:hover .wordmark-logo { filter: brightness(1.08) saturate(1.05); }
.subline {
  font-family: var(--marquee);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.8rem;
  color: #a99f8c;
  margin: 0.55rem 0 1.1rem;
}
.nav {
  list-style: none;
  margin: 0;
  padding: 0.8rem 0 1rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem 1.6rem;
  border-top: 1px solid rgba(246, 189, 74, 0.25);
}
.nav a {
  font-family: var(--marquee);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.92rem;
  color: var(--cream-dim);
  text-decoration: none;
  padding: 0.15rem 0.1rem;
  border-bottom: 3px solid transparent;
}
.nav a:hover { color: var(--bulb); }
.nav a[aria-current="page"] {
  color: var(--bulb);
  border-bottom-color: var(--bulb);
  border-bottom-style: dotted;
}
/* chasing-bulb raceway under the masthead: three luminance phases on a
   66px tile (22px pitch). steps(3) walks the whole stack one pitch per
   step, so each socket runs bright -> dim -> dark and the lit bulb
   appears to travel right at three sockets a second. */
.masthead::after {
  content: "";
  display: block;
  height: 18px;
  margin-top: 0.2rem;
  background-image: var(--bulb-on), var(--bulb-fade), var(--bulb-off);
  background-size: 66px 100%;
  background-position: 22px 50%, 0 50%, 44px 50%;
  background-repeat: repeat-x;
}
@media (prefers-reduced-motion: no-preference) {
  .masthead::after { animation: raceway 1s steps(3) infinite; }
  /* shared with .bulb-divider - identical layer stack and start positions */
  @keyframes raceway { to { background-position: 88px 50%, 66px 50%, 110px 50%; } }
}

/* ---- section system ------------------------------------------------------- */
.section { padding: clamp(2.4rem, 6vw, 4.2rem) var(--gutter); }
.inner { max-width: 72rem; margin: 0 auto; }
.inner > p, .inner > ul:not(.midway-board):not(.errata) { max-width: var(--measure); }
.eyebrow {
  font-family: var(--carnival);
  font-size: clamp(1rem, 2.6vw, 1.3rem);
  color: var(--brick);
  letter-spacing: 0.05em;
  margin: 0 0 0.4rem;
}
h1 { font-size: clamp(2.3rem, 6.5vw, 4rem); }
h2 { font-size: clamp(1.6rem, 4vw, 2.4rem); color: var(--brick); }
.lede { font-size: clamp(1.1rem, 2.4vw, 1.3rem); line-height: 1.6; max-width: var(--measure); }
.flourish { color: var(--neon); }
.tag {
  display: inline-block;
  font-family: var(--marquee);
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-soft);
  background: rgba(39, 33, 29, 0.07);
  border: 1px solid rgba(39, 33, 29, 0.18);
  border-radius: 2px;
  padding: 0.05rem 0.45rem;
  margin-left: 0.35rem;
  vertical-align: 0.12em;
  white-space: normal;
}
.aside { font-size: 0.95rem; color: var(--ink-soft); max-width: var(--measure); }
.center { text-align: center; }
.center p, .center .lede { margin-left: auto; margin-right: auto; }
.script-note {
  font-family: var(--script);
  font-size: clamp(1.45rem, 3.4vw, 1.9rem);
  color: var(--brick);
  transform: rotate(-1.6deg);
  margin-top: 1.4rem;
}

/* ---- posters (page headers): the lit sign IS the header ---------------------
   The photograph leads; eyebrow/h1/lede ride the lower third on a gradient.
   DOM order stays inner-then-figure - the grid stacks both in one cell. */
.poster {
  background: var(--night);
  color: var(--cream-dim);
  padding: 0;
  position: relative;
  display: grid;
}
.poster .ph-full, .poster > .inner { grid-area: 1 / 1; }
.poster > .inner {
  z-index: 2;
  align-self: end;
  width: 100%;
  max-width: 72rem;
  margin: 0 auto;
  padding: 0 var(--gutter) clamp(1.3rem, 3.5vw, 2.2rem);
  pointer-events: none;
}
.poster > .inner a, .poster > .inner .btn { pointer-events: auto; }
.poster::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: min(78%, 26rem);
  background: linear-gradient(180deg, rgba(13, 10, 17, 0) 0%, rgba(13, 10, 17, 0.62) 45%, rgba(13, 10, 17, 0.95) 100%);
  z-index: 1;
  pointer-events: none;
}
.poster h1 {
  color: var(--paper);
  text-shadow: 0 3px 0 var(--brick), 0 7px 18px rgba(0, 0, 0, 0.75);
  margin-bottom: 0.25em;
}
.poster .eyebrow { color: var(--bulb); text-shadow: 0 1px 6px rgba(0, 0, 0, 0.8); }
.poster .lede { color: #e6dfd0; text-shadow: 0 1px 8px rgba(0, 0, 0, 0.7); margin-bottom: 0.2em; }
.poster .tag { color: #cfc3a6; background: rgba(20, 16, 24, 0.55); border-color: rgba(246, 189, 74, 0.35); }
.poster a { color: var(--bulb); }
/* the hero credit rides top-right as a chip; the caption text yields to the lede */
.poster .ph-full figcaption {
  position: absolute;
  top: 0.7rem; right: 0.7rem; left: auto; bottom: auto;
  padding: 0;
  background: none;
  font-size: 0;
  line-height: 0;
  text-align: right;
}
.poster .ph-full figcaption .credit {
  display: inline-block;
  font-size: 0.68rem;
  line-height: 1.4;
  color: #cfc8b8;
  background: rgba(10, 8, 14, 0.6);
  padding: 0.12rem 0.55rem;
  border-radius: 2px;
  max-width: 60vw;
}
/* posters with no photograph (guestbook, 404) keep the classic padded look */
.poster-plain, .poster-404 {
  display: block;
  padding: clamp(2.2rem, 5vw, 3.6rem) 0 clamp(1.6rem, 4vw, 2.6rem);
}
.poster-plain > .inner, .poster-404 > .inner { pointer-events: auto; padding: 0 var(--gutter); }
.poster-plain::after, .poster-404::after { display: none; }

/* ---- price boards: the lit sign strip -------------------------------------- */
.board-strip {
  background: var(--night-2);
  color: var(--cream-dim);
  position: relative;
  border-top: 10px solid transparent;
  border-image: repeating-linear-gradient(90deg, #7c2d3e 0 26px, var(--paper-2) 26px 52px) 10;
}
.board-strip h2 { color: var(--paper); text-shadow: 0 2px 0 rgba(142, 35, 35, 0.8), 0 0 22px rgba(246, 189, 74, 0.3); }
.board-strip .eyebrow { color: var(--bulb); }
.board-strip .lede { color: var(--cream-dim); }
.board-strip .aside { color: #a99f8c; }
.board-strip .tag { color: #b9ac93; background: rgba(246, 189, 74, 0.08); border-color: rgba(246, 189, 74, 0.3); }

/* ---- the felt: "thirty-three thousand square feet of green felt" -------------
   The odds section becomes one lamplit stretch of worn baize: nap brushed two
   ways, a twill weave, the 5%-opacity ghost of a printed table arc, and leather
   rails top and bottom with brass piping. The price cards sit on it like
   table-limit placards. Markup pairs it with .board-strip; these rules must
   stay BEFORE the .price-card rules so the card-face .tag keeps its blue. */
.felt-strip {
  border-top: 0;
  border-image: none;
  background-color: #123c27;
  background-image:
    repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.014) 0 26px, rgba(0, 0, 0, 0.02) 26px 52px),
    repeating-linear-gradient(90deg, rgba(245, 238, 221, 0.025) 0 1px, transparent 1px 3px),
    repeating-linear-gradient(0deg, rgba(6, 26, 16, 0.16) 0 1px, transparent 1px 3px),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 320'%3E%3Cg fill='none' stroke='%23f5eedd' stroke-opacity='0.05' stroke-width='3'%3E%3Cpath d='M60 306 A 700 700 0 0 1 1140 306'/%3E%3Cpath d='M118 306 A 640 640 0 0 1 1082 306'/%3E%3C/g%3E%3Cg fill='%23f5eedd' fill-opacity='0.05'%3E%3Cpath d='M600 34l14 23-14 23-14-23z'/%3E%3Cpath d='M330 120l12 20-12 20-12-20z'/%3E%3Cpath d='M870 120l12 20-12 20-12-20z'/%3E%3C/g%3E%3C/svg%3E"),
    radial-gradient(ellipse 130% 90% at 50% 14%, #1f5d3e 0%, #17503a 40%, #123c27 72%, #0c2e1c 100%);
  background-repeat: repeat, repeat, repeat, no-repeat, no-repeat;
  background-position: 0 0, 0 0, 0 0, center bottom 2rem, center top;
  background-size: auto, auto, auto, min(66rem, 94%) auto, 100% 100%;
  box-shadow: inset 0 26px 50px -24px rgba(0, 0, 0, 0.6), inset 0 -26px 50px -24px rgba(0, 0, 0, 0.6);
  padding-top: clamp(3rem, 7vw, 4.6rem);
  padding-bottom: clamp(3rem, 7vw, 4.6rem);
}
/* leather rails, brass piping on the felt side */
.felt-strip::before, .felt-strip::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 19px;
  pointer-events: none;
}
.felt-strip::before {
  top: 0;
  background: linear-gradient(180deg, #5e3527 0%, #47251a 45%, #240d06 100%);
  border-bottom: 2px solid var(--bulb-dim);
  box-shadow: 0 7px 16px rgba(4, 12, 8, 0.55);
}
.felt-strip::after {
  bottom: 0;
  background: linear-gradient(0deg, #5e3527 0%, #47251a 45%, #240d06 100%);
  border-top: 2px solid var(--bulb-dim);
  box-shadow: 0 -7px 16px rgba(4, 12, 8, 0.55);
}
.felt-strip h2 { color: var(--paper); text-shadow: 0 2px 0 rgba(8, 24, 15, 0.85), 0 0 22px rgba(246, 189, 74, 0.28); }
.felt-strip .eyebrow { color: var(--bulb); text-shadow: 0 1px 4px rgba(6, 20, 12, 0.7); }
.felt-strip .lede { color: #d5cfbd; }
.felt-strip .aside { color: #c9c3b1; }
.felt-strip .aside b { color: #ffd9a0; font-weight: 600; }
.felt-strip .tag { color: #ffd9a0; background: rgba(246, 189, 74, 0.1); border-color: rgba(246, 189, 74, 0.35); }
.felt-strip a { color: var(--bulb); text-decoration-color: rgba(246, 189, 74, 0.45); }

/* ---- the reader board: amber dot-matrix, drawn by js/readerboard.js ---------
   The pylon carried a real one (it reads 7:22 in the Highsmith night photo).
   Canvas so the price text is crisp and OURS - no AI lettering. */
.reader-board {
  max-width: 46rem;
  margin: 0.4rem 0 1.8rem;
  background: #0a0709;
  border: 3px solid var(--brick);
  border-radius: 4px;
  padding: 0.55rem 0.7rem;
  box-shadow: inset 0 0 26px rgba(0, 0, 0, 0.9), 0 6px 18px rgba(0, 0, 0, 0.35);
  position: relative;
}
.reader-board::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(0, 0, 0, 0) 30%);
  pointer-events: none;
}
.reader-board canvas { display: block; width: 100%; height: auto; }
.no-js .reader-board { display: none; }

.midway-board {
  list-style: none;
  /* the bulb rings extend 11px past every card (plus halo): the top padding
     contains the first row's ring, and the 2.4rem gap leaves ~16px of night
     between neighboring rings instead of letting them collide */
  padding: 1.2rem 0 0.2rem;
  margin: 0 0 1.2rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15.5rem, 1fr));
  gap: 2.4rem;
}
/* each card is an internally lit lightbox - the fascia's own idiom ("a
   ridiculous amount of internally lit signage", 2002 survey): warm white
   face, dark cabinet frame with a cream retainer lip, amber glow bleeding
   into the night around it */
.price-card {
  background: radial-gradient(ellipse at 50% 42%, #fffdf6 0%, #faf3e2 58%, #f1e6cb 100%);
  color: var(--ink);
  border: 3px solid #2a1a12;
  border-radius: 4px;
  padding: 1rem 1.1rem 0.9rem;
  box-shadow:
    inset 0 0 0 1px rgba(255, 250, 234, 0.8),
    0 0 16px rgba(246, 189, 74, 0.26),
    0 0 44px 6px rgba(246, 189, 74, 0.14),
    0 12px 30px rgba(0, 0, 0, 0.5);
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  position: relative;
}
/* the sign-cabinet bulb ring: incandescents around the card face only.
   A mask ring (outer box minus content-box) - NOT z-index:-1, which breaks
   inside the stacking context the cards' rotate transforms create.
   Bulbs sit on a 16px pitch as a 32px checkerboard: two bright layers and
   two dark layers, so odd/even sockets alternate along every edge. The
   twinkle is a steps(2) half-tile shift - banks swap instantly, twice a second. */
.price-card::before {
  content: "";
  position: absolute;
  inset: -11px;
  padding: 11px;
  border-radius: 9px;
  background-color: rgba(12, 8, 5, 0.6);
  background-image: var(--bulb-on-sm), var(--bulb-on-sm), var(--bulb-off-sm), var(--bulb-off-sm);
  background-size: 32px 32px;
  background-position: 5.5px 5.5px, 21.5px 21.5px, 5.5px 21.5px, 21.5px 5.5px;
  filter: drop-shadow(0 0 7px rgba(246, 189, 74, 0.45));
  pointer-events: none;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
}
@media (prefers-reduced-motion: no-preference) {
  .price-card::before { animation: ringtwinkle 1s steps(2) infinite; }
  @keyframes ringtwinkle { to { background-position: 37.5px 5.5px, 53.5px 21.5px, 37.5px 21.5px, 53.5px 5.5px; } }
}
/* the $1.29 card blinks - homage to the casino's own 1996 <BLINK> homepage.
   brightness() dims face, numerals, ring and glow together, like the whole
   cabinet sagging on its breaker; the ramps read as filament, not strobe. */
@media (prefers-reduced-motion: no-preference) {
  .price-card.blink { animation: panelblink 1.1s linear infinite; }
  @keyframes panelblink {
    0%, 46% { filter: brightness(1); }
    54%, 92% { filter: brightness(0.78); }
    100% { filter: brightness(1); }
  }
}
.price-card:nth-child(even) { transform: rotate(0.7deg); }
.price-card:nth-child(3n) { transform: rotate(-0.6deg); }
.price-card .amount {
  font-family: var(--display);
  font-size: clamp(1.9rem, 4.5vw, 2.6rem);
  color: var(--brick);
  line-height: 1;
}
.price-card .what { font-size: 0.98rem; line-height: 1.45; font-weight: 600; color: var(--sea); }
.price-card .tag { margin-left: 0; align-self: flex-start; color: #33586e; background: rgba(29, 95, 140, 0.07); border-color: rgba(29, 95, 140, 0.3); }
.showbill-board .amount { font-size: clamp(1.3rem, 3vw, 1.7rem); letter-spacing: 0.02em; }

/* ---- bulb divider: a raceway of chasing incandescents crossing the page ----- */
.bulb-divider {
  height: 2.1rem;
  background-color: var(--night-2);
  background-image: var(--bulb-on), var(--bulb-fade), var(--bulb-off);
  background-size: 66px 100%;
  background-position: 22px 50%, 0 50%, 44px 50%;
  background-repeat: repeat-x;
  border-top: 3px solid var(--brick);
  border-bottom: 3px solid var(--brick);
  box-shadow: inset 0 0 18px rgba(0, 0, 0, 0.55);
}
@media (prefers-reduced-motion: no-preference) {
  .bulb-divider { animation: raceway 1s steps(3) infinite; }
}

/* ---- star divider: the marquee's neon stars -------------------------------- */
.star-divider {
  height: 3rem;
  background-color: var(--paper);
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="164" height="36" viewBox="0 0 164 36"><g fill="none" stroke-width="2"><path stroke="%23c23b2e" d="M18 4l3.2 8.2 8.8.6-6.8 5.6 2.2 8.6-7.4-4.8-7.4 4.8 2.2-8.6L6 12.8l8.8-.6z"/><path stroke="%232c7873" d="M60 10l2.4 6.1 6.6.5-5.1 4.2 1.7 6.4-5.6-3.6-5.6 3.6 1.7-6.4-5.1-4.2 6.6-.5z"/><path stroke="%23f6bd4a" d="M104 3l3.2 8.2 8.8.6-6.8 5.6 2.2 8.6-7.4-4.8-7.4 4.8 2.2-8.6-6.8-5.6 8.8-.6z"/><path stroke="%231d5f8c" d="M146 11l2.4 6.1 6.6.5-5.1 4.2 1.7 6.4-5.6-3.6-5.6 3.6 1.7-6.4-5.1-4.2 6.6-.5z"/></g></svg>');
  background-repeat: repeat-x;
  background-position: center;
}

/* ---- duos, buttons ---------------------------------------------------------- */
.duo {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.4rem, 4vw, 3rem);
  align-items: center;
}
.duo.flip > :first-child { order: 2; }
.btn {
  display: inline-block;
  font-family: var(--marquee);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.95rem;
  background: var(--brick);
  color: #fdf3dd;
  border: none;
  padding: 0.75rem 1.5rem;
  border-radius: 3px;
  outline: 2px dotted var(--bulb);
  outline-offset: 4px;
  text-decoration: none;
  cursor: pointer;
}
.btn:hover { background: #a12c2c; color: #fff; }
.btn:disabled { opacity: 0.6; cursor: wait; }
.btn-sm { font-size: 0.8rem; padding: 0.45rem 1rem; }
.btn-outline { background: transparent; color: var(--brick); box-shadow: inset 0 0 0 2px var(--brick); outline: none; }
.btn-outline:hover { background: rgba(142, 35, 35, 0.08); color: var(--brick); }

/* ---- photographs: the postcard rack ----------------------------------------
   Lesson from the sibling site: any broad img rule must be re-asserted for the
   hero at equal/higher specificity, or height:auto wins and the page breaks. */
.ph {
  margin: 0 0 1.3rem;
  background: #fffdf6;
  border: 1px solid #d8cdb6;
  padding: 10px 10px 8px;
  box-shadow: var(--shadow);
  break-inside: avoid;
}
.ph img { width: 100%; height: auto; }
.ph figcaption {
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--ink-soft);
  padding-top: 0.55rem;
}
.ph .credit { display: block; font-size: 0.76rem; color: #8b8172; margin-top: 0.2rem; }
.ph .credit a { color: inherit; }
.ph a.gh { display: block; }

.gallery { columns: 2 22rem; column-gap: 1.4rem; }
.gallery .ph:nth-child(even) { transform: rotate(0.6deg); }
.gallery .ph:nth-child(odd) { transform: rotate(-0.5deg); }
.gallery-tight {
  columns: initial;
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem;
  align-items: flex-start;
  justify-content: center;
}
/* cap flex items so a high-res source (the 2026 upscales) doesn't swallow the row */
.gallery-tight .ph { transform: none; max-width: 22rem; }
/* the Rodriguez floor band runs its six frames two-up and big */
.floor-band .ph { max-width: 30rem; }

/* full-bleed hero */
.ph-full {
  margin: 0;
  padding: 0;
  border: none;
  background: var(--night);
  box-shadow: none;
  position: relative;
  height: clamp(340px, 62vh, 660px);
  overflow: hidden;
  transform: none !important;
}
.ph-full picture, .ph-full a.gh { display: block; height: 100%; }
.ph-full img { width: 100%; height: 100%; object-fit: cover; }
.page-showroom .ph-full img { object-position: center 42%; }
/* casino hero: favor the machines - the slots are the lower half of the frame */
.page-casino .ph-full img, .page-casino .poster-live { object-position: center 72%; }
.ph-full figcaption {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  margin: 0;
  padding: 2.2rem var(--gutter) 0.8rem;
  background: linear-gradient(transparent, rgba(10, 8, 14, 0.88) 55%);
  color: #cfc8b8;
  font-size: 0.82rem;
}
.ph-full .credit { color: #9a9081; }

/* big in-flow poster */
.ph-feature { max-width: 62rem; margin: 1.6rem auto; transform: none !important; }

/* document/artifact: the casino's own dial-up-era images at native size */
.ph-doc {
  width: -moz-fit-content;
  width: fit-content;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  background: var(--paper-2);
  transform: none;
}
.ph-doc img { width: auto; max-width: 100%; margin: 0 auto; image-rendering: auto; }
.ph-doc figcaption { max-width: 34rem; }
.duo .ph-doc { margin-top: 0; }

/* the living reconstruction: a disclosed neon-flicker loop layered exactly over
   the still CRT reconstruction in the index "you are here" panel. Same honesty
   rules as the hero - js/main.js attaches the video only when motion is welcome;
   no JS / reduced motion / save-data / print all keep the plain still image. */
.living-doc { transform: none; }
.living-doc.ph { background: none; border: 0; border-bottom: 1px solid rgba(246, 189, 74, 0.45); padding: 0 0 0.9rem; box-shadow: none; }
.living-doc figcaption { color: var(--cream-dim); padding-top: 0.7rem; }
.living-doc figcaption .credit { color: #9a9080; }
.living-doc-stage { position: relative; display: block; line-height: 0;
  aspect-ratio: 4 / 3; overflow: hidden;
  border: 1px solid var(--bulb); box-shadow: 0 10px 26px rgba(0, 0, 0, 0.5); }
.living-doc-stage picture { display: block; width: 100%; height: 100%; }
.living-doc-stage img { display: block; width: 100%; height: 100%; object-fit: cover; }
.living-doc .poster-live {
  position: absolute; inset: 0;
  grid-area: auto;
  width: 100%; height: 100%;
  object-fit: cover;
}

/* posters get a taller stage since the title now lives on the photo */
.poster .ph-full { height: clamp(420px, 72vh, 740px); }

/* the living hero: a disclosed AI light-loop layered over the untouched still.
   JS assigns the src only when motion is welcome; no JS / reduced motion /
   save-data all keep the plain photograph. */
.poster-live {
  grid-area: 1 / 1;
  width: 100%;
  height: clamp(420px, 72vh, 740px);
  object-fit: cover;
  z-index: 1;
  pointer-events: none;
  opacity: 0;
  transition: opacity 1.2s ease;
}
.poster-live.on { opacity: 1; }
.poster .ph-full figcaption { z-index: 3; }
.poster-live-note {
  position: absolute;
  top: 2.35rem; right: 0.7rem;
  z-index: 3;
  display: none;
  font-size: 0.66rem;
  line-height: 1.4;
  color: #b8b0a0;
  background: rgba(10, 8, 14, 0.6);
  padding: 0.1rem 0.55rem;
  border-radius: 2px;
  max-width: 60vw;
  text-align: right;
}
.poster-live-note.on { display: inline-block; }
@media (prefers-reduced-motion: reduce) {
  .poster-live, .poster-live-note { display: none !important; }
}
@media (max-width: 600px) {
  .poster-live { height: clamp(240px, 44vh, 360px); grid-area: 1 / 1; }
}
@media print {
  .poster-live, .poster-live-note { display: none !important; }
}

/* ---- night inset: a dark section on an in-character page ---------------------
   (the Player Card sunburst art clashed on paper; it belongs on the night floor) */
.night-inset { background: var(--night-2); color: var(--cream-dim); }
.night-inset h2 { color: var(--bulb); text-shadow: 0 2px 0 rgba(142, 35, 35, 0.7); }
.night-inset .eyebrow { color: var(--neon); }
.night-inset .lede { color: var(--cream-dim); }
.night-inset .aside { color: #a99f8c; }
.night-inset .tag { color: #b9ac93; background: rgba(246, 189, 74, 0.08); border-color: rgba(246, 189, 74, 0.3); }
.night-inset .ph { border-color: rgba(0, 0, 0, 0.5); }
.night-inset .script-note { color: var(--bulb); }
.night-inset a { color: var(--bulb); text-decoration-color: rgba(246, 189, 74, 0.45); }
.night-inset-deep { background: var(--night); }

/* ---- the poster row: the fascia's own gilt lightboxes -----------------------
   The wall already knew how to hang pictures: gold baroque frames with warm
   glowing faces, in a row on the parapet under garland swags (see the fascia
   in the take-a-walk photo). Each .ph becomes one of those boxes - bronze
   outer edge, carved gold band, bright sight-edge lip, then the lit white
   face that holds the photograph and its bill-plate caption. The photograph
   itself is never tinted. NOTE: this block must sit AFTER the .night-inset
   rules - .poster-row .ph has to out-cascade .night-inset .ph at equal
   specificity. */
.poster-row {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.8rem 2rem;
  padding-top: 2.9rem; /* clears the valance plus the first row's finials */
  margin: 0 0 1.4rem;
}
/* the valance: scalloped maroon-and-cream swag across the top of the row - 
   same 26px stripe pitch as the .board-strip awning */
.poster-row::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 17px;
  background-image:
    radial-gradient(circle at 6.5px 0, #7c2d3e 0 6px, rgba(124, 45, 62, 0) 6.5px),
    radial-gradient(circle at 19.5px 0, #efe5d1 0 6px, rgba(239, 229, 209, 0) 6.5px),
    repeating-linear-gradient(90deg, #7c2d3e 0 13px, #efe5d1 13px 26px);
  background-size: 26px 7px, 26px 7px, 26px 10px;
  background-position: 0 10px, 0 10px, 0 0;
  background-repeat: repeat-x;
  filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.45));
  pointer-events: none;
}
/* the gilt lightbox: the gold band IS the (transparent) border, painted by
   border-box gradients - base gold, a ribbed carve texture, a diagonal sheen;
   the warm face is the same lamp-lit radial as .price-card. Flex column plus
   grid stretch keeps every box in a row the same height, with the plate
   riding the bottom like a short bill in a tall case. */
.poster-row .ph {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  margin: 0; /* the grid gap does the hanging */
  border: 13px solid transparent; /* the visible gold band */
  border-radius: 2px;
  padding: 9px 9px 7px; /* warm mat between gold and photograph */
  background:
    radial-gradient(ellipse at 50% 36%, #fffdf6 0%, #faf3e2 58%, #f1e6cb 100%) padding-box,
    linear-gradient(135deg, rgba(255, 246, 214, 0.62) 0%, rgba(255, 246, 214, 0) 34%, rgba(94, 60, 13, 0) 62%, rgba(94, 60, 13, 0.5) 100%) border-box,
    repeating-linear-gradient(45deg, rgba(122, 77, 24, 0.22) 0 3px, rgba(122, 77, 24, 0) 3px 6px) border-box,
    linear-gradient(160deg, var(--bulb-dim) 0%, #f0cf7e 26%, #a06f1f 55%, #e2b654 80%, #775014 100%) border-box;
  box-shadow:
    inset 0 0 0 1.5px rgba(66, 41, 9, 0.55),   /* rabbet shadow where face meets frame */
    inset 0 0 0 3px rgba(255, 241, 194, 0.85), /* bright inner gold lip (the sight edge) */
    0 0 0 2px #1a0f06,                          /* outer bronze edge */
    0 0 18px rgba(246, 189, 74, 0.28),          /* close glow */
    0 0 46px 8px rgba(246, 189, 74, 0.14),      /* far bleed onto the night wall */
    0 16px 36px rgba(0, 0, 0, 0.55);            /* weight on the wall */
  transition: box-shadow 0.18s ease;
}
/* insurance against .night-inset .ph's border-color, wherever this block lands */
.night-inset .poster-row .ph { border-color: transparent; }
/* the finial: a turned gold button on the frame's crest */
.poster-row .ph::before {
  content: "";
  position: absolute;
  top: -24px; /* padding-box coords: 13px border + 11px poke above the frame */
  left: 50%;
  width: 18px; height: 18px;
  margin-left: -9px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #ffeeb0 0%, #e2b654 42%, #8a5c17 78%, #6b4410 100%);
  box-shadow: 0 0 0 2px #1a0f06, 0 1px 6px rgba(246, 189, 74, 0.5);
  pointer-events: none;
}
/* the photograph, untinted, with a thin keyline so it reads as a mounted bill */
.poster-row .ph img { border: 1px solid rgba(42, 26, 18, 0.45); }
/* the lower plate: ink on the lit face; the credit keeps its usual mutter */
.poster-row .ph figcaption {
  margin-top: auto; /* pins the plate to the box bottom on stretched rows */
  padding: 0.55rem 0.2rem 0.15rem;
  font-size: 0.8rem;
  color: var(--ink);
}
/* hover / keyboard focus: the wick turns up, same as the rest of the signage */
.poster-row .ph:hover,
.poster-row .ph:focus-within {
  box-shadow:
    inset 0 0 0 1.5px rgba(66, 41, 9, 0.55),
    inset 0 0 0 3px rgba(255, 241, 194, 0.95),
    0 0 0 2px #1a0f06,
    0 0 26px rgba(246, 189, 74, 0.46),
    0 0 62px 10px rgba(246, 189, 74, 0.22),
    0 16px 36px rgba(0, 0, 0, 0.6);
}
@media (max-width: 880px) {
  .poster-row { grid-template-columns: repeat(2, 1fr); gap: 2.4rem 1.6rem; }
}
@media (max-width: 600px) {
  .poster-row { grid-template-columns: 1fr; gap: 2.2rem; padding-top: 2.6rem; }
  .poster-row .ph {
    border-width: 9px;
    padding: 7px 7px 5px;
    box-shadow:
      inset 0 0 0 1.5px rgba(66, 41, 9, 0.55),
      inset 0 0 0 3px rgba(255, 241, 194, 0.85),
      0 0 0 2px #1a0f06,
      0 0 12px rgba(246, 189, 74, 0.22),
      0 0 30px 5px rgba(246, 189, 74, 0.1),
      0 10px 24px rgba(0, 0, 0, 0.5);
  }
  .poster-row .ph::before { top: -18px; width: 14px; height: 14px; margin-left: -7px; }
}

/* ---- the rec-room TV: Butterbean plays on request ----------------------------
   A CSS television. Nothing loads from YouTube until the screen is clicked;
   then js/main.js swaps the button for a youtube-nocookie iframe. */
.crt { max-width: 44rem; margin: 1.9rem auto 0; }
.crt-shell {
  position: relative;
  background: linear-gradient(160deg, #6b4a33, #4a3122 55%, #382518);
  background-color: #4a3122;
  border-radius: 16px 16px 12px 12px;
  padding: 1.3rem 4.4rem 1.4rem 1.3rem;
  box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.14), inset 0 -3px 8px rgba(0, 0, 0, 0.4), 0 18px 40px rgba(0, 0, 0, 0.5);
}
.crt-screen {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  padding: 0;
  border: none;
  border-radius: 5% / 7%;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 28% 22%, rgba(214, 255, 233, 0.16), rgba(0, 0, 0, 0) 52%),
    radial-gradient(ellipse at center, #1c2a23 0%, #0f150f 68%, #05070a 100%);
  box-shadow: inset 0 0 60px rgba(0, 0, 0, 0.85), 0 0 0 6px #241812, 0 0 0 9px rgba(0, 0, 0, 0.35);
}
.crt-screen::after {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(180deg, rgba(255, 255, 255, 0.05) 0 1px, rgba(0, 0, 0, 0) 1px 3px);
  pointer-events: none;
}
.crt-glow {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  gap: 0.45rem;
  text-align: center;
  color: #9fe8bc;
  text-shadow: 0 0 12px rgba(120, 255, 170, 0.5);
}
.crt-glow b { font-family: var(--display); font-weight: 400; font-size: clamp(1.35rem, 4vw, 2.1rem); letter-spacing: 0.06em; }
.crt-glow i { font-family: var(--marquee); font-style: normal; font-size: 0.72rem; letter-spacing: 0.24em; color: #7fcfa0; }
.crt-screen:hover .crt-glow, .crt-screen:focus-visible .crt-glow { color: #cdffe0; }
.crt-play-badge { position: absolute; right: 0.95rem; bottom: 0.75rem; color: var(--bulb); font-size: 1.05rem; opacity: 0.9; }
/* The play affordance, made unmissable (owner ask, July 25 2026): a bulb-gold
   play ring center-screen with PRESS PLAY under it - the eats TV's corner
   badge grew into the control (the showroom set still wears the badge). Gold
   = actionable against the green phosphor. The ring breathes gently unless
   motion is reduced; the click handler replaces the whole button, so the
   ring vanishes once the set is on. */
.crt-play-ring {
  width: clamp(3.4rem, 9vw, 4.5rem);
  aspect-ratio: 1;
  margin: 0.4rem auto 0;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 3px solid var(--bulb);
  color: var(--bulb);
  background: rgba(5, 10, 7, 0.55);
  box-shadow: 0 0 18px rgba(246, 189, 74, 0.35), inset 0 0 12px rgba(246, 189, 74, 0.18);
  transition: transform 150ms ease, box-shadow 150ms ease, color 150ms ease, border-color 150ms ease;
  animation: crt-ring-breathe 2.6s ease-in-out infinite;
}
.crt-play-ring i {
  font-style: normal;
  font-size: clamp(1.25rem, 3vw, 1.6rem);
  line-height: 1;
  margin-left: 0.18em;
  color: inherit;
  text-shadow: 0 0 10px rgba(246, 189, 74, 0.6);
}
.crt-glow .crt-press {
  font-size: 0.8rem;
  letter-spacing: 0.3em;
  color: #ffd882;
  text-shadow: 0 0 10px rgba(246, 189, 74, 0.55);
}
.crt-screen:hover .crt-play-ring,
.crt-screen:focus-visible .crt-play-ring {
  transform: scale(1.07);
  color: #fff3d6;
  border-color: #ffd882;
  box-shadow: 0 0 28px rgba(246, 189, 74, 0.6), inset 0 0 16px rgba(246, 189, 74, 0.3);
}
@keyframes crt-ring-breathe {
  0%, 100% { box-shadow: 0 0 14px rgba(246, 189, 74, 0.3), inset 0 0 10px rgba(246, 189, 74, 0.15); }
  50% { box-shadow: 0 0 26px rgba(246, 189, 74, 0.55), inset 0 0 14px rgba(246, 189, 74, 0.28); }
}
@media (prefers-reduced-motion: reduce) {
  .crt-play-ring { animation: none; }
}
.crt-screen iframe, .crt.playing .crt-screen { border-radius: 5% / 7%; }
.crt-screen iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.crt-panel {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 3.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
}
.crt-dial {
  width: 1.65rem; height: 1.65rem;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #d9c9a8, #8a7454 55%, #5a4a33);
  box-shadow: inset 0 -2px 4px rgba(0, 0, 0, 0.5), 0 1px 2px rgba(0, 0, 0, 0.6);
  position: relative;
}
.crt-dial::after {
  content: "";
  position: absolute;
  left: 50%; top: 12%;
  width: 2px; height: 36%;
  background: #35281a;
  transform: translateX(-50%);
}
.crt-dial-sm { width: 1.1rem; height: 1.1rem; }
.crt-grille {
  width: 2.1rem; height: 3rem;
  margin-top: 0.4rem;
  border-radius: 3px;
  background: repeating-linear-gradient(180deg, rgba(0, 0, 0, 0.55) 0 3px, rgba(255, 255, 255, 0.09) 3px 5px);
}
.crt-caption { font-size: 0.85rem; color: #a99f8c; text-align: center; margin: 0.9rem auto 0; max-width: 44rem; }

/* ---- history: timeline + era tints ------------------------------------------ */
.tl { max-width: var(--measure); margin: 0 0 1.6rem; }
.tl-item {
  display: grid;
  grid-template-columns: 7.2rem 1fr;
  gap: 1.1rem;
  padding: 1rem 0;
  border-top: 1px dashed rgba(92, 83, 72, 0.4);
}
.tl-item:first-child { border-top: none; }
.tl-item .year {
  font-family: var(--display);
  font-size: 1.15rem;
  color: var(--brick);
  line-height: 1.25;
}
.tl-item p { margin: 0; }

.era-motorlodge { background: #f8f1de; }
.era-motorlodge h2 { color: var(--script-green); }
.era-motorlodge .eyebrow { color: #b98a2e; }

.era-plain { background: #efe4d8; }
.era-plain h2 { color: #b0387c; }
.era-plain .eyebrow { color: #b0387c; }

.era-carnival { background: var(--night-2); color: var(--cream-dim); }
.era-carnival h2 { color: var(--bulb); }
.era-carnival .eyebrow { color: var(--neon); }
.era-carnival .tl-item { border-top-color: rgba(246, 189, 74, 0.28); }
.era-carnival .tl-item .year { color: var(--bulb); }
.era-carnival a { color: var(--bulb); }

.era-mirage { background: #232733; color: var(--cream-dim); }
.era-mirage h2 { color: #b9c7de; }
.era-mirage .eyebrow { color: #8fa3c4; }
.era-mirage .tl-item { border-top-color: rgba(185, 199, 222, 0.25); }
.era-mirage .tl-item .year { color: #b9c7de; }
.era-mirage a { color: #b9c7de; }

.era-night { background: #101017; color: #d8d2c4; }
.era-night h2 { color: var(--neon); }
.era-night .eyebrow { color: #8b8172; }
.era-night .tl-item { border-top-color: rgba(216, 210, 196, 0.2); }
.era-night .tl-item .year { color: var(--neon); }
.era-night a { color: var(--bulb); }

.era-dawn {
  background: linear-gradient(#101017 0, #58455a 5%, #d9c7b2 16%, #f5eedd 34%);
  padding-top: clamp(5rem, 12vw, 8rem);
}

/* dark sections share the postcard-on-night look */
.era-carnival .ph, .era-mirage .ph, .era-night .ph, .poster .ph, .board-strip .ph {
  border-color: rgba(0, 0, 0, 0.5);
}
.era-carnival .ph figcaption, .era-mirage .ph figcaption, .era-night .ph figcaption { color: var(--ink-soft); }

.record-straight { background: var(--paper); }
.record-straight .inner {
  border: 3px double var(--brick);
  outline: 2px dotted var(--bulb);
  outline-offset: 5px;
  padding: clamp(1.4rem, 4vw, 2.6rem);
  background: #fffdf6;
}
.errata { list-style: none; padding: 0; max-width: none; }
.errata li { padding-left: 1.4rem; position: relative; margin-bottom: 0.85em; }
.errata li::before { content: "★"; position: absolute; left: 0; top: 0.05em; color: var(--brick); font-size: 0.9em; }

/* ---- closers ---------------------------------------------------------------- */
.closer { background: var(--night); color: var(--cream-dim); }
.closer .lede { color: var(--cream-dim); }
.closer .script-note { color: var(--bulb); }

/* ---- guestbook --------------------------------------------------------------- */
.gb-inner { max-width: 52rem; }
.gb-form {
  background: #fffdf6;
  border: 1px solid #d8cdb6;
  box-shadow: var(--shadow);
  padding: clamp(1.2rem, 3.5vw, 2rem);
  position: relative;
}
.gb-form::after {
  content: "PLACE\A STAMP\A HERE";
  white-space: pre;
  position: absolute;
  top: 14px; right: 14px;
  width: 74px; height: 84px;
  border: 1.5px solid #c3b493;
  color: #b3a583;
  font-family: var(--marquee);
  font-size: 0.6rem;
  letter-spacing: 0.12em;
  text-align: center;
  display: grid;
  place-content: center;
  line-height: 1.7;
}
.form-group { margin-bottom: 1rem; max-width: 34rem; }
.form-label { display: block; font-family: var(--marquee); text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.78rem; color: var(--ink-soft); margin-bottom: 0.3rem; }
.form-optional { color: #a3947c; text-transform: none; letter-spacing: 0.02em; }
.form-input {
  width: 100%;
  font: inherit;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid #c3b493;
  border-radius: 3px;
  padding: 0.6rem 0.7rem;
}
.form-input:focus { outline: 3px solid var(--bulb); outline-offset: 1px; border-color: var(--brick); }
textarea.form-input { resize: vertical; }

/* REQUIRED: keep the honeypots hidden two different ways */
.gb-hp { position: absolute !important; left: -9999px !important; top: -9999px !important; height: 0; overflow: hidden; }
.gb-hp2 { display: none !important; }

/* REQUIRED: form status message hidden until JS shows it */
.form-message { display: none; margin-top: 1rem; padding: 0.75rem 1rem; border-radius: 4px; }
.form-message.success { display: block; background: rgba(63, 166, 106, 0.14); color: #24704a; border: 1px solid rgba(63, 166, 106, 0.5); }
.form-message.error { display: block; background: rgba(142, 35, 35, 0.1); color: var(--brick); border: 1px solid rgba(142, 35, 35, 0.45); }

#entries-container { display: flex; flex-direction: column; gap: 1.7rem; }

/* every entry renders as a postcard: message on the left, a dashed spine,
   the address block and stamp on the right - replies tucked underneath */
.entry-card {
  background: #fffdf6;
  border: 1px solid #d8cdb6;
  box-shadow: var(--shadow);
  padding: 0;
}
.entry-card:nth-child(even) { transform: rotate(0.35deg); }
.entry-card:nth-child(odd) { transform: rotate(-0.3deg); }
.pc-face { display: grid; grid-template-columns: 1.6fr 1fr; position: relative; }
.pc-face::before {
  content: "POST CARD";
  position: absolute;
  top: 0.7rem;
  right: 0.85rem;
  font-family: var(--marquee);
  font-size: 0.6rem;
  letter-spacing: 0.34em;
  color: #c3b493;
}
.pc-msg { padding: 1.15rem 1.3rem 1.1rem; }
.pc-msg .entry-message { line-height: 1.65; margin: 0; overflow-wrap: anywhere; }
.pc-addr {
  border-left: 2px dashed #d8cdb6;
  padding: 2rem 1.1rem 0.9rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.3rem;
  min-height: 10.5rem;
}
.pc-stamp {
  align-self: flex-end;
  width: 56px;
  height: 64px;
  border: 1.5px solid #c3b493;
  outline: 2px dotted #d8cdb6;
  outline-offset: -6px;
  display: grid;
  place-content: center;
  font-size: 1.45rem;
  color: var(--bulb-dim);
  background: repeating-linear-gradient(45deg, rgba(246, 189, 74, 0.06) 0 6px, rgba(0, 0, 0, 0) 6px 12px);
  margin-bottom: 0.4rem;
  transform: rotate(2deg);
}
.entry-name { margin: 0; font-family: var(--body); font-weight: 700; font-size: 1.02rem; color: var(--brick); }
.entry-location { display: block; font-weight: 400; font-size: 0.92rem; color: var(--ink-soft); }
.entry-date, .reply-date { white-space: nowrap; font-family: var(--marquee); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.1em; color: #a3947c; }
.pc-addr .entry-date { border-bottom: 1px solid #e4dbc6; padding-bottom: 0.35rem; }
.reply-message { line-height: 1.65; margin: 0; overflow-wrap: anywhere; }
.entries-empty { text-align: center; font-style: italic; color: var(--ink-soft); }
.pc-below:not(:empty) { padding: 0 1.3rem 1.1rem; }
.entry-replies:not(:empty) { margin-top: 0.2rem; border-top: 1px dashed #d8cdb6; padding-top: 0.8rem; }
.reply-card { border-left: 3px solid var(--bulb-dim); padding: 0.5rem 1rem; margin: 0.5rem 0 0 1.4rem; background: rgba(246, 189, 74, 0.07); }
.reply-head { display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; margin-bottom: 2px; }
.reply-name { font-weight: 600; }
.reply-toggle {
  margin-top: 0.6rem;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--marquee);
  font-size: 0.76rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--brick);
}
.pc-addr .reply-toggle { margin-top: auto; padding-top: 0.7rem; }
.reply-toggle:hover { color: var(--neon); }
.reply-form { margin: 0.8rem 0 0 1.4rem; padding-top: 0.9rem; border-top: 1px dashed #d8cdb6; }
.reply-textarea { min-height: 72px; }

/* ---- the gift shop: Holiday Gifts' mock register ------------------------------
   A real basket, a register that stopped ringing in 2006. js/giftshop.js. */
.shop-card { position: relative; }
.shop-card .add-btn { margin-top: auto; align-self: flex-start; }
.cart-chip {
  position: fixed;
  right: 1rem; bottom: 1rem;
  z-index: 40;
  display: none;
  font-family: var(--marquee);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.85rem;
  background: var(--brick);
  color: #fdf3dd;
  border: none;
  border-radius: 3px;
  outline: 2px dotted var(--bulb);
  outline-offset: 3px;
  padding: 0.55rem 1rem;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.4);
}
.cart-chip.on { display: inline-block; }
.cart-chip:hover { background: #a12c2c; }
.cart-lines { list-style: none; padding: 0; margin: 0 0 1rem; max-width: 34rem; }
.cart-lines li {
  display: flex;
  gap: 0.6rem;
  align-items: baseline;
  padding: 0.45rem 0.2rem;
  border-bottom: 1px dashed #d8cdb6;
}
.cl-qty { font-family: var(--marquee); color: var(--ink-soft); min-width: 2.1rem; }
.cl-name { flex: 1; }
.cl-price { font-weight: 700; color: var(--brick); }
.cl-remove {
  background: none; border: none; cursor: pointer;
  font-family: var(--marquee); font-size: 0.7rem; text-transform: uppercase;
  letter-spacing: 0.08em; color: var(--ink-soft); padding: 0.1rem 0.2rem;
}
.cl-remove:hover { color: var(--brick); }
.cart-total { font-size: 1.15rem; }
#register-closed {
  margin-top: 1.6rem;
  border: 3px double var(--brick);
  outline: 2px dotted var(--bulb);
  outline-offset: 5px;
  background: #fffdf6;
  padding: clamp(1.2rem, 3.5vw, 2.2rem);
  max-width: 44rem;
}
.register-headline { font-family: var(--display); font-weight: 400; color: var(--brick); font-size: clamp(1.25rem, 3vw, 1.7rem); }
.receipt {
  font-family: "Courier New", "Consolas", monospace;
  font-size: 0.82rem;
  line-height: 1.5;
  white-space: pre;
  overflow-x: auto;
  background: #fdfaf1;
  color: #3a332b;
  border: 1px solid #d8cdb6;
  border-top: 14px solid transparent;
  border-bottom: 14px solid transparent;
  border-image: repeating-linear-gradient(90deg, #fdfaf1 0 9px, rgba(0, 0, 0, 0) 9px 18px) 14;
  background-clip: padding-box;
  padding: 0.9rem 1.1rem;
  margin: 1.2rem 0;
  max-width: 21rem;
  box-shadow: var(--shadow);
  transform: rotate(-0.6deg);
}
.deli-stack { flex-direction: column; align-items: center; }
.chrono .ph { max-width: 21rem; }

/* ---- footer ------------------------------------------------------------------ */
.footer {
  background: var(--night);
  color: #a99f8c;
  padding: 2.6rem var(--gutter) 2rem;
  border-top: 14px solid transparent;
  border-image: repeating-linear-gradient(90deg, #7c2d3e 0 26px, var(--paper-2) 26px 52px) 14;
  font-size: 0.9rem;
  text-align: center;
}
.footer .inner { max-width: 64rem; }
/* the .inner children carry the 64ch prose measure - auto margins center the capped boxes */
.footer .inner > p, .footer .foot-nav { margin-left: auto; margin-right: auto; }
.foot-domain { color: var(--cream-dim); }
.foot-domain b { color: var(--bulb); }
.footer a { color: var(--cream-dim); }
.foot-nav { list-style: none; padding: 0.6rem 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.3rem 1.6rem; border-top: 1px solid rgba(246, 189, 74, 0.2); }
.foot-nav a { font-family: var(--marquee); text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.78rem; text-decoration: none; }
.foot-nav a:hover { color: var(--bulb); }
.foot-built { margin: 0.8rem 0 0; font-size: 0.8rem; color: #7c7264; }

/* ---- lightbox (classes fixed by js/main.js) ----------------------------------- */
.lb {
  position: fixed;
  inset: 0;
  background: rgba(10, 8, 14, 0.94);
  display: none;
  z-index: 50;
  padding: 3.2rem 1rem 1rem;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
}
.lb.on { display: flex; }
.lb picture, .lb img { max-width: min(94vw, 1600px); max-height: 82vh; width: auto; height: auto; }
.lb img { border: 8px solid #fffdf6; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6); }
.lb-cap { color: var(--cream-dim); font-size: 0.9rem; max-width: 70ch; text-align: center; margin: 0; }
.lb-x {
  position: absolute;
  top: 0.9rem; right: 1.1rem;
  font-size: 2rem;
  line-height: 1;
  background: none;
  border: none;
  color: var(--cream-dim);
  cursor: pointer;
  padding: 0.4rem 0.7rem;
}
.lb-x:hover { color: var(--bulb); }

/* ---- reveal on scroll (hide class applied only by JS) -------------------------- */
.rv { transition: opacity 0.55s ease, transform 0.55s ease; }
.rv-wait { opacity: 0; transform: translateY(14px); }
@media (prefers-reduced-motion: reduce) {
  .rv { transition: none; }
  .masthead::after { animation: none; }
}

/* ---- ornament art (disclosed modern pieces; decoration, not depiction) ----------- */
.orn { display: block; margin: 0.2rem auto 1.2rem; width: min(26rem, 72%); height: auto; }
.orn-cone { width: min(6.5rem, 30%); margin-bottom: 0.8rem; }

/* ---- 404 ------------------------------------------------------------------------ */
.page-404 main { min-height: 55vh; }
.poster-404 { padding-bottom: clamp(2.4rem, 6vw, 4.2rem); }

/* ---- small screens ----------------------------------------------------------------
   NOTE (July 18, 2026): this block was found truncated mid-declaration in both the
   local file and the deployed copy (a sync casualty; no archived copy exists).
   Restored minimally - components carry their own media queries above. */
@media (max-width: 880px) {
  .duo { grid-template-columns: 1fr; }
  .duo.flip > :first-child { order: 0; }
}

/* ==========================================================================
   THE INDEX WALL (adopted from concepts/index-wall/index3.html, July 2026).
   Below the hero, the homepage becomes the facade itself: the cream stucco
   wall hung with seven reconstructed fascia bills (hand-set CSS type, the
   shared gilt ironwork frame an inline SVG), then the after-dark photo band
   (disclosed AI light-loops over the credited night photographs), the price
   cards, the casino's own teal brochure as the door to the history page,
   and animated maroon-and-cream awning stripes between the acts.
   Ordering inside this section preserves the concept file's cascade: the
   first-pass fascia rules are refined by the "compact rail" overrides that
   follow them, exactly as the owner approved the page.
   ========================================================================== */
/* the fascia band's full-bleed ::before uses 100vw, which overhangs by the
   scrollbar width; clip on BOTH roots - Chrome does not propagate body's
   clip to the viewport, so the html rule (via :has) does the real work */
.page-index { overflow-x: clip; }
html:has(body.page-index) { overflow-x: clip; }

/* ---- the wall: cream stucco in the afternoon (retired from the homepage
   July 21, 2026 - the fascia rail now closes the dark signage chapter; rules
   kept because the concepts/index-wall archives preview against this file) ---- */
.wall {
  background:
    repeating-linear-gradient(0deg, rgba(122, 110, 90, 0.05) 0 2px, rgba(0, 0, 0, 0) 2px 5px),
    linear-gradient(180deg, #efeade 0%, #e9e2d2 60%, #e2dac7 100%);
  border-top: 0;
  position: relative;
}
.wall .inner { padding-bottom: 1.4rem; }
.wall h2 { color: var(--brick); }
.wall .eyebrow { color: #2c7873; }

/* ---- the fascia bills, first pass: seven signs rebuilt as architectural
   objects on a 6-track grid (refined into the compact rail further down) ---- */
.fascia-gallery {
  position: relative;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 3.4rem 1.4rem;
  margin: 2.8rem 0 1.4rem;
  padding: 1.4rem 0 0.5rem;
}
.fascia-gallery::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: -1rem calc(50% - 50vw);
  pointer-events: none;
  background:
    linear-gradient(90deg,
      transparent 0 calc(25% - 1px),
      rgba(116, 108, 94, 0.12) calc(25% - 1px) calc(25% + 1px),
      transparent calc(25% + 1px) calc(50% - 1px),
      rgba(116, 108, 94, 0.1) calc(50% - 1px) calc(50% + 1px),
      transparent calc(50% + 1px) calc(75% - 1px),
      rgba(116, 108, 94, 0.12) calc(75% - 1px) calc(75% + 1px),
      transparent calc(75% + 1px)),
    linear-gradient(180deg,
      transparent 0 47%,
      rgba(116, 108, 94, 0.1) calc(47% + 1px),
      transparent calc(47% + 2px));
}
.fascia-card {
  position: relative;
  z-index: 1;
  grid-column: span 2;
  min-width: 0;
  margin: 0;
  text-align: center;
}
.fascia-card:nth-child(7) { grid-column: 3 / span 2; }

.fascia-sign {
  position: relative;
  isolation: isolate;
  display: block;
  width: min(100%, 18rem);
  aspect-ratio: 300 / 470;
  margin: 0 auto;
  color: inherit;
  text-decoration: none;
  transform: translateY(0);
  transition: transform 180ms ease, filter 180ms ease;
}
.fascia-sign:hover {
  transform: translateY(-4px);
  filter: saturate(1.06);
}
.fascia-sign:focus-visible {
  outline: 4px solid #2c7873;
  outline-offset: 7px;
  border-radius: 2px;
}
.fascia-frame {
  position: absolute;
  z-index: 3;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
  filter:
    drop-shadow(0 2px 1px rgba(255, 236, 173, 0.26))
    drop-shadow(0 8px 7px rgba(60, 45, 30, 0.34));
}
.fascia-face {
  position: absolute;
  z-index: 1;
  inset: 18% 14.35% 18.75%;
  box-sizing: border-box;
  container-type: inline-size;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow: hidden;
  padding: 7% 6%;
  border: 2px solid rgba(73, 48, 18, 0.72);
  box-shadow:
    inset 0 0 0 2px rgba(255, 238, 184, 0.38),
    inset 0 0 24px rgba(47, 25, 6, 0.42),
    0 0 9px rgba(55, 42, 27, 0.32);
}
.fascia-face::after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  opacity: 0.42;
  mix-blend-mode: soft-light;
  background:
    radial-gradient(ellipse 46% 28% at 21% 19%, rgba(255,255,255,0.48), transparent 72%),
    radial-gradient(ellipse 55% 38% at 82% 62%, rgba(0,0,0,0.28), transparent 72%),
    repeating-linear-gradient(96deg, rgba(255,255,255,0.11) 0 1px, transparent 1px 8px);
}
.fascia-face > * {
  position: relative;
  z-index: 1;
}
/* production wraps the cutout imgs in <picture> for webp; dissolve the wrapper
   so the img participates in the face's flex column exactly as the bare img
   did in the concept, and keep it above the ::after sheen */
.fascia-face picture { display: contents; }
.fascia-face picture img { position: relative; z-index: 1; }
.fascia-card figcaption {
  max-width: 18rem;
  margin: 0.55rem auto 0;
  color: #625a4f;
  font-size: 0.76rem;
  line-height: 1.45;
}
.fascia-caption-title {
  display: block;
  margin-bottom: 0.14rem;
  color: #5c1f2f;
  font-family: var(--display);
  font-size: 1.02rem;
  letter-spacing: 0.03em;
}
.fascia-caption-note { display: block; }
.fascia-card figcaption a {
  display: inline-block;
  margin-top: 0.28rem;
  color: #236762;
  font-family: var(--marquee);
  font-size: 0.69rem;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

/* Players Club: a direct reconstruction of the gold "Want comps?" bill,
   including its tilted blue membership card. */
.sign-comps .fascia-face {
  justify-content: flex-start;
  gap: 2.4%;
  padding: 8% 6% 5%;
  color: #aa2425;
  background:
    radial-gradient(ellipse 85% 42% at 72% 16%, rgba(255, 230, 132, 0.7), transparent 68%),
    linear-gradient(138deg, #d99b35 0%, #efc35c 47%, #c68124 100%);
}
.comps-title {
  font-family: "Poppins", Futura, sans-serif;
  font-size: 16cqw;
  font-weight: 800;
  line-height: 1.02;
  text-transform: uppercase;
  text-shadow: 0.55cqw 0.7cqw 0 rgba(91, 28, 12, 0.2);
}
.comps-card {
  position: relative;
  width: 56%;
  aspect-ratio: 1.58;
  margin: 3% auto 4%;
  overflow: hidden;
  border: 0.8cqw solid rgba(25, 55, 88, 0.84);
  border-radius: 3cqw;
  background:
    radial-gradient(circle at 25% 54%, #f1dc9d 0 8%, #b87837 8.5% 13%, transparent 13.5%),
    linear-gradient(165deg, transparent 0 52%, #da463d 52.5% 59%, #e8c76c 59.5% 64%, transparent 64.5%),
    linear-gradient(140deg, #1f77a8 0%, #155483 54%, #09365f 100%);
  box-shadow: 1.2cqw 1.6cqw 1.8cqw rgba(66, 34, 10, 0.4);
  transform: rotate(-5deg);
}
.comps-card::after {
  content: "BOARDWALK";
  position: absolute;
  right: 5%;
  top: 10%;
  color: rgba(232, 223, 178, 0.68);
  font-family: "Cinzel", Georgia, serif;
  font-size: 5.2cqw;
  letter-spacing: 0.04em;
}
.comps-copy {
  font-family: "Poppins", Futura, sans-serif;
  font-size: 9.4cqw;
  font-weight: 800;
  line-height: 1.13;
  text-shadow: 0.4cqw 0.55cqw 0 rgba(91, 28, 12, 0.17);
}
.comps-free {
  margin-top: auto;
  color: #fff1bd;
  font-family: "EB Garamond", Georgia, serif;
  font-size: 6.7cqw;
  font-style: italic;
  font-weight: 700;
  line-height: 1.08;
  text-shadow: 0 0.65cqw 0.8cqw rgba(90, 44, 8, 0.55);
}

/* Purple Reign: turquoise show bill, script title and the seven-person
   tribute ensemble visible in the high-resolution facade photograph. */
.sign-purple .fascia-face {
  justify-content: flex-start;
  padding: 7% 5% 4%;
  color: #49335d;
  background:
    radial-gradient(ellipse 75% 38% at 23% 18%, rgba(91, 217, 225, 0.58), transparent 70%),
    radial-gradient(ellipse at 55% 50%, #1ba4b7 0%, #087f99 62%, #075e79 100%);
}
.purple-logo {
  color: #60466c;
  font-family: var(--script), "EB Garamond", Georgia, serif;
  font-size: 18cqw;
  font-style: italic;
  line-height: 0.95;
  transform: rotate(-1deg);
  text-shadow: 0.45cqw 0.7cqw 0 rgba(217, 181, 95, 0.5);
}
.purple-sub {
  margin-top: 2%;
  color: #d9b565;
  font-family: "Poppins", Futura, sans-serif;
  font-size: 6.7cqw;
  font-weight: 800;
  line-height: 1.05;
  text-transform: uppercase;
  text-shadow: 0 0.65cqw 0.7cqw rgba(13, 65, 80, 0.62);
}
.purple-cast {
  display: block;
  width: 72%;
  height: auto;
  margin: -4% auto -13%;
  object-fit: contain;
  filter: drop-shadow(0 1cqw 1.1cqw rgba(5, 48, 61, 0.52));
}
.purple-schedule {
  margin-top: auto;
  color: #e8bd65;
  font-family: "EB Garamond", Georgia, serif;
  font-size: 6.1cqw;
  font-style: italic;
  font-weight: 700;
  line-height: 1.08;
  text-shadow: 0 0.65cqw 0.8cqw rgba(5, 48, 61, 0.62);
}

/* Spectrum: the full photographed composition, with a photo-derived
   reconstruction of the four performers. */
.sign-spectrum .fascia-face {
  justify-content: flex-start;
  padding: 8% 6% 5%;
  color: #efd4aa;
  background:
    radial-gradient(ellipse 74% 44% at 48% 22%, rgba(190, 71, 61, 0.72), transparent 68%),
    radial-gradient(ellipse at 50% 55%, #9d302f 0%, #731e22 60%, #531015 100%);
}
.spectrum-logo {
  width: 100%;
  font-family: "Cinzel Decorative", "Trajan Pro", "Times New Roman", serif;
  font-size: clamp(2rem, 4.45vw, 3rem);
  font-size: 19cqw;
  font-weight: 700;
  line-height: 0.88;
  letter-spacing: -0.075em;
  white-space: nowrap;
  transform: scaleX(0.92);
  transform-origin: center top;
  background: linear-gradient(180deg, #fff2b8 0%, #e4b759 38%, #94601d 66%, #f0cd78 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 1.3cqw 0 #4d1413) drop-shadow(0 0 2cqw rgba(255, 207, 105, 0.24));
}
.spectrum-logo .spectrum-s { font-size: 1.2em; }
.spectrum-sub {
  margin-top: 1.7%;
  color: #e5bb6d;
  font-family: "EB Garamond", Garamond, Georgia, serif;
  font-size: 4.5cqw;
  font-variant: small-caps;
  letter-spacing: 0.04em;
  line-height: 1.05;
}
.spectrum-figures {
  display: block;
  width: 132%;
  max-width: none;
  height: auto;
  margin: 1% auto -4%;
  overflow: visible;
  object-fit: contain;
  transform: translateX(-11.5%);
  filter: drop-shadow(0 1.1cqw 1cqw rgba(25, 5, 8, 0.52));
}
.spectrum-schedule {
  margin-top: auto;
  color: #f1dac0;
  font-family: "EB Garamond", Garamond, Georgia, serif;
  font-size: 6.2cqw;
  line-height: 1.13;
  text-shadow: 0 0.7cqw 0.8cqw rgba(46, 7, 11, 0.62);
}

/* The Deli: warm yellow-gold, softly airbrushed, dark red price, tall
   chiseled venue name. */
.sign-deli .fascia-face {
  justify-content: flex-start;
  gap: 0.8%;
  background:
    radial-gradient(ellipse 100% 55% at 80% 12%, rgba(255, 239, 156, 0.76), transparent 58%),
    radial-gradient(ellipse 110% 58% at 12% 84%, rgba(188, 119, 22, 0.55), transparent 63%),
    linear-gradient(132deg, #e2a932 0%, #f1c861 47%, #cf8c1e 100%);
}
.deli-price {
  color: #a11f26;
  font-family: "Poppins", Futura, sans-serif;
  font-size: clamp(3rem, 6.6vw, 4.4rem);
  /* the close-up fills almost the full cabinet width with the price */
  font-size: 39cqw;
  font-weight: 800;
  letter-spacing: -0.065em;
  line-height: 0.9;
  text-shadow: 0.9cqw 1.2cqw 0 rgba(105, 26, 25, 0.22);
}
.deli-offer {
  margin-top: 3%;
  color: #a4272b;
  font-family: "Poppins", Futura, sans-serif;
  font-size: clamp(1.4rem, 3.4vw, 2.15rem);
  font-size: 19.25cqw;
  font-weight: 800;
  letter-spacing: 0.015em;
  line-height: 0.94;
  text-shadow: 0.55cqw 0.75cqw 0 rgba(93, 25, 20, 0.18);
}
.deli-the {
  /* the photographed bill leaves a pronounced pause before the venue mark */
  margin-top: 22%;
  color: #741b20;
  font-family: "Cinzel", "Friz Quadrata", Georgia, serif;
  font-size: 21cqw;
  font-weight: 900;
  line-height: 0.7;
  letter-spacing: 0.04em;
  text-shadow: 0.45cqw 0.7cqw 0 rgba(74, 31, 12, 0.22);
}
.deli-name {
  color: #741b20;
  font-family: "Cinzel", "Friz Quadrata", Georgia, serif;
  font-size: clamp(2.45rem, 5.8vw, 3.9rem);
  font-size: 29.5cqw;
  font-weight: 900;
  line-height: 0.86;
  letter-spacing: 0.015em;
  text-shadow: 0.55cqw 0.9cqw 0 rgba(74, 31, 12, 0.23);
}
.deli-hours {
  margin-top: 3%;
  color: #39260c;
  font-family: "EB Garamond", Georgia, serif;
  font-size: 7.5cqw;
  font-style: italic;
  font-weight: 700;
  line-height: 1;
}

/* Surf Buffet: orange copy over a blue-green water field, then the
   hand-carved, irregular venue lettering. */
.sign-surf .fascia-face {
  justify-content: flex-start;
  gap: 14%;
  padding: 6% 4%;
  background:
    radial-gradient(ellipse 64% 34% at 25% 20%, rgba(108, 218, 216, 0.62), transparent 70%),
    radial-gradient(ellipse 74% 42% at 75% 68%, rgba(4, 62, 79, 0.62), transparent 69%),
    radial-gradient(ellipse at 50% 38%, #209ca2 0%, #087582 58%, #075865 100%);
}
.surf-offer {
  color: #f2a93a;
  font-family: "Poppins", Futura, sans-serif;
  font-size: clamp(1.4rem, 3.4vw, 2.15rem);
  font-size: 19cqw;
  font-weight: 800;
  line-height: 1.06;
  letter-spacing: 0.005em;
  -webkit-text-stroke: 0.23cqw rgba(89, 55, 23, 0.42);
  text-shadow: 0.85cqw 1.05cqw 0 #07525d;
}
.surf-name {
  display: flex;
  flex-direction: column;
  color: #f4b83f;
  font-family: "Chicle", "Lithos Pro", var(--carnival);
  font-size: clamp(2.15rem, 5.6vw, 3.7rem);
  font-size: 26.5cqw;
  font-weight: 400;
  line-height: 0.79;
  letter-spacing: 0.025em;
  transform: scaleX(1.38);
  transform-origin: center;
  -webkit-text-stroke: 0.32cqw rgba(128, 72, 22, 0.52);
  text-shadow: 0.9cqw 1.15cqw 0 #074e59;
}

/* Home of the $3 Tables: the only reference is at night, so the face keeps
   the amber cabinet glow without turning the type into neon. */
.sign-tables .fascia-face {
  justify-content: center;
  gap: 2%;
  padding: 9% 6%;
  color: #ffe24d;
  background:
    radial-gradient(ellipse 90% 66% at 51% 42%, rgba(218, 79, 38, 0.94) 0%, rgba(167, 43, 22, 0.78) 60%, transparent 100%),
    linear-gradient(135deg, #b83d21 0%, #922714 55%, #72180d 100%);
  box-shadow:
    inset 0 0 0 2px rgba(255, 211, 92, 0.42),
    inset 0 0 38px rgba(255, 153, 57, 0.45),
    0 0 18px rgba(184, 71, 27, 0.22);
}
.tables-line {
  font-family: "Poppins", Futura, sans-serif;
  font-size: clamp(1.9rem, 4.7vw, 3rem);
  font-size: 25.5cqw;
  font-weight: 800;
  line-height: 0.95;
  text-shadow: 0.85cqw 1.1cqw 0 rgba(89, 17, 5, 0.72);
}
.tables-price {
  margin: 1% 0;
  font-family: "Poppins", Futura, sans-serif;
  font-size: clamp(3.2rem, 7.3vw, 4.9rem);
  font-size: 43cqw;
  font-weight: 800;
  line-height: 0.9;
  letter-spacing: -0.06em;
  text-shadow: 1cqw 1.25cqw 0 rgba(89, 17, 5, 0.72);
}
.tables-word {
  font-family: "Poppins", Futura, sans-serif;
  font-size: clamp(2.25rem, 5.7vw, 3.8rem);
  font-size: 29.5cqw;
  font-weight: 800;
  line-height: 0.96;
  text-shadow: 0.9cqw 1.15cqw 0 rgba(89, 17, 5, 0.72);
}

/* Prime Rib: the missing food-image mass restored with a transparent,
   photo-derived reconstruction from the night photograph. */
.sign-prime .fascia-face {
  justify-content: flex-start;
  gap: 0.8%;
  padding: 6% 5% 4%;
  color: #ffdf55;
  background:
    radial-gradient(ellipse 72% 42% at 31% 18%, rgba(243, 145, 66, 0.68), transparent 67%),
    radial-gradient(ellipse at 50% 36%, #c64c27 0%, #a93218 60%, #76200f 100%);
}
.prime-price {
  font-family: "Poppins", Futura, sans-serif;
  font-size: clamp(2.6rem, 6.2vw, 4rem);
  font-size: 40cqw;
  font-weight: 800;
  line-height: 0.9;
  letter-spacing: -0.06em;
  text-shadow: 0.8cqw 1cqw 0 rgba(93, 20, 6, 0.55);
}
.prime-price sup {
  display: inline-block;
  margin-left: 0.02em;
  border-bottom: 0.08em solid currentColor;
  font-size: 0.43em;
  line-height: 1;
  vertical-align: 0.8em;
  letter-spacing: -0.03em;
}
.prime-offer {
  font-family: "Poppins", Futura, sans-serif;
  font-size: clamp(1.5rem, 3.7vw, 2.35rem);
  font-size: 18cqw;
  font-weight: 800;
  line-height: 0.91;
  text-shadow: 0.65cqw 0.85cqw 0 rgba(93, 20, 6, 0.55);
}
.prime-plate {
  display: block;
  width: 105%;
  height: auto;
  margin: -4% auto -7%;
  object-fit: contain;
  filter: drop-shadow(0 1.2cqw 1cqw rgba(60, 16, 4, 0.55));
}
.prime-details {
  color: #ffe8a2;
  font-family: "EB Garamond", Georgia, serif;
  font-size: 5.4cqw;
  line-height: 1.05;
}
.prime-cafe {
  margin-top: auto;
  color: #f7caa6;
  font-family: var(--script);
  font-size: 11.5cqw;
  line-height: 0.9;
  transform: rotate(-2deg);
}
.prime-hours {
  color: #f9d8bc;
  font-family: "EB Garamond", Georgia, serif;
  font-size: 5.2cqw;
  font-style: italic;
  line-height: 1;
}

.fascia-defs {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

@media (max-width: 900px) {
  .fascia-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3.2rem 1.6rem; }
  .fascia-card,
  .fascia-card:nth-child(7) { grid-column: auto; }
  .fascia-card:nth-child(7) { grid-column: 1 / -1; }
}
@media (max-width: 580px) {
  .fascia-gallery { grid-template-columns: 1fr; gap: 3.1rem; }
  .fascia-card:nth-child(7) { grid-column: auto; }
  .fascia-sign { width: min(100%, 19rem); }
}
@media (prefers-reduced-motion: reduce) {
  .fascia-sign { transition: none; }
}

/* ---- compact fascia rail: seven full-size cards made the wall dominate the
   page; keep every reconstruction but return them to one architectural band
   across the facade (these rules deliberately refine the block above) ---- */
.wall .inner { padding-bottom: 1.4rem; }
.fascia-gallery {
  grid-template-columns: repeat(7, minmax(0, 1fr));
  grid-auto-flow: row;
  grid-auto-columns: auto;
  justify-content: stretch;
  gap: 0.72rem;
  margin: 2rem 0 1.1rem;
  padding: 2.4rem 0.9rem 1rem;
  overflow: visible;
}
.fascia-gallery::before {
  inset: 0 calc(50% - 50vw);
  background:
    repeating-linear-gradient(0deg,
      rgba(91, 72, 47, 0.035) 0 1px,
      transparent 1px 4px),
    linear-gradient(180deg, #eee8dc 0%, #e1d8c8 100%);
  border-top: 1px solid rgba(121, 95, 56, 0.2);
  border-bottom: 1px solid rgba(121, 95, 56, 0.24);
  box-shadow: inset 0 14px 24px rgba(63, 46, 27, 0.08);
}
.fascia-card,
.fascia-card:nth-child(7) {
  grid-column: auto;
}
.fascia-sign {
  width: min(100%, 10rem);
}
.fascia-card figcaption {
  max-width: 10rem;
  margin-top: 0.38rem;
  line-height: 1.2;
}
.fascia-caption-title {
  margin: 0;
  font-size: 0.79rem;
}
.fascia-caption-note,
.fascia-card figcaption a {
  display: none;
}

/* ---- after-dark photo band: the lights running again -----------------------
   Each tile is an untouched night photograph; a disclosed AI light-loop
   (video.poster-live, JS-gated exactly like the hero) fades in over it when
   motion is welcome. Credits ride each tile as a chip; the first tile also
   carries the poster-live-note disclosure chip, revealed only while playing. */
.electric-gallery {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: repeat(2, 10.5rem);
  gap: 0.8rem;
  margin: 1.4rem 0 1.6rem;
}
.electric-shot {
  position: relative;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 2px solid rgba(246, 189, 74, 0.42);
  border-radius: 3px;
  background: #08070c;
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.72),
    0 0 24px rgba(246, 189, 74, 0.15),
    0 15px 28px rgba(0, 0, 0, 0.38);
}
.electric-shot--hero { grid-column: span 7; grid-row: 1 / -1; }
.electric-shot--wide { grid-column: span 5; }
.electric-shot picture { display: block; width: 100%; height: 100%; }
.electric-shot img,
.electric-shot video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(1.06) contrast(1.03);
}
.electric-shot img {
  transition: transform 500ms ease, filter 500ms ease;
}
.electric-shot--hero img,
.electric-shot--hero video { object-position: center 48%; }
.electric-shot--entrance img,
.electric-shot--entrance video { object-position: center 39%; }
.electric-shot--pylon img,
.electric-shot--pylon video { object-position: center 32%; }
.electric-shot:hover img {
  transform: scale(1.025);
  filter: saturate(1.14) contrast(1.05) brightness(1.04);
}
.electric-shot .poster-live {
  position: absolute;
  inset: 0;
  grid-area: auto;
  height: 100%;
}
.electric-shot .poster-live-note { top: 0.45rem; right: 0.45rem; }
.electric-shot figcaption {
  position: absolute;
  z-index: 2;
  right: 0.45rem;
  bottom: 0.4rem;
  margin: 0;
  padding: 0;
  font-size: 0;
  line-height: 0;
  text-align: right;
}
.electric-shot .credit {
  display: inline-block;
  font-size: 0.64rem;
  line-height: 1.35;
  color: #cfc8b8;
  background: rgba(10, 8, 14, 0.62);
  padding: 0.1rem 0.5rem;
  border-radius: 2px;
  max-width: 92%;
}
.electric-shot .credit a { color: inherit; }
.page-index .board-strip .midway-board {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.85rem;
  padding-top: 0.7rem;
}
.page-index .board-strip .price-card {
  min-width: 0;
  padding: 0.68rem 0.62rem 0.58rem;
}
.page-index .board-strip .price-card::before {
  inset: -7px;
  padding: 7px;
}
.page-index .board-strip .price-card .amount {
  font-size: clamp(1.45rem, 2.5vw, 2rem);
}
.page-index .board-strip .price-card .what {
  font-size: 0.76rem;
  line-height: 1.3;
}
.page-index .board-strip .price-card .tag {
  display: none;
}
.page-index .board-strip {
  border-top: 0;
  border-image: none;
  padding-top: calc(clamp(2.4rem, 6vw, 4.2rem) + 10px);
}
.page-index .board-strip::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  left: 0;
  height: 10px;
  pointer-events: none;
  background:
    repeating-linear-gradient(
      90deg,
      #7c2d3e 0 26px,
      var(--paper-2) 26px 52px
    );
  background-position: 0 0;
  background-size: 52px 100%;
}

@media (max-width: 900px) {
  .fascia-gallery {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-flow: row;
    grid-auto-columns: auto;
    justify-content: stretch;
    gap: 1.2rem 0.8rem;
    overflow: visible;
    scroll-snap-type: none;
    padding-inline: 0.9rem;
  }
  .fascia-card,
  .fascia-card:nth-child(7) {
    grid-column: auto;
  }
  .fascia-sign { width: min(100%, 10rem); }
  .electric-gallery {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 18rem 11rem;
  }
  .electric-shot--hero { grid-column: 1 / -1; grid-row: auto; }
  .electric-shot--wide { grid-column: auto; }
  .page-index .board-strip .midway-board {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
  }
}
@media (max-width: 580px) {
  .fascia-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
  }
  .electric-gallery {
    grid-template-columns: 1fr;
    grid-template-rows: 16rem 11rem 13rem;
  }
  .electric-shot--hero,
  .electric-shot--wide { grid-column: auto; }
  .page-index .board-strip .midway-board {
    display: flex;
    gap: 0.9rem;
    overflow-x: auto;
    scroll-snap-type: inline mandatory;
    padding-inline: 0.7rem;
  }
  .page-index .board-strip .price-card {
    flex: 0 0 10.5rem;
    scroll-snap-align: center;
  }
}

/* ---- awning stripes: the moving maroon-and-cream dividers -------------------
   The same stripe the static borders quote, set traveling. The board-strip's
   own top stripe scrolls left; freestanding dividers alternate direction. */
.awning-divider {
  height: 10px;
  background:
    repeating-linear-gradient(
      90deg,
      #7c2d3e 0 26px,
      var(--paper-2) 26px 52px
    );
  background-position: 0 0;
  background-size: 52px 100%;
}
.page-index .footer {
  border-top: 0;
  border-image: none;
}
@media (prefers-reduced-motion: no-preference) {
  .page-index .board-strip::before,
  .awning-divider--left {
    animation: board-awning-scroll-left 2.4s linear infinite;
  }
  .awning-divider--right {
    animation: board-awning-scroll-right 2.4s linear infinite;
  }
  @keyframes board-awning-scroll-left {
    to { background-position: -52px 0; }
  }
  @keyframes board-awning-scroll-right {
    to { background-position: 52px 0; }
  }
}
@media (prefers-reduced-motion: reduce) {
  .page-index .board-strip::before,
  .awning-divider { animation: none; }
}
@media print {
  .awning-divider { display: none; }
  .page-index .board-strip::before { display: none; }
}

/* ---- signage chapter (adopted from concepts/main page 2, July 21, 2026):
   the fascia rail becomes the final beat of the dark numbers/signage
   section, with a full-width source note beneath it ---- */
.page-index .signage-chapter .board-strip .fascia-gallery {
  margin-top: 2.3rem;
}
.page-index .signage-chapter .board-strip .fascia-gallery::before {
  background:
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.018) 0 1px, transparent 1px 4px),
    linear-gradient(180deg, #18151f 0%, #100e16 100%);
  border-top-color: rgba(246, 189, 74, 0.32);
  border-bottom-color: rgba(246, 189, 74, 0.24);
  box-shadow: inset 0 14px 24px rgba(0, 0, 0, 0.2);
}
.page-index .signage-chapter .board-strip .fascia-card figcaption {
  color: #c8bead;
}
.page-index .signage-chapter .board-strip .fascia-caption-title {
  color: var(--bulb);
}
.page-index .signage-chapter .board-strip > .inner > .aside {
  max-width: none;
}

/* ==========================================================================
   EATS - interior-first rebuild (adopted from concepts/the eats, July 2026):
   the Surf mural and the Cyclone wall art drive the page. Hero = the buffet
   employee before the wave mural (disclosed AI restoration + wave loop).
   ========================================================================== */
.page-dining .bean-first {
  padding-top: clamp(3rem, 7vw, 5.4rem);
  padding-bottom: clamp(3rem, 7vw, 5.4rem);
  border-top: 12px solid #7c2d3e;
}
.bean-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(24rem, 1.15fr);
  gap: clamp(2rem, 6vw, 5rem);
  align-items: center;
}
.bean-copy h2 { font-size: clamp(2rem, 5.5vw, 3.6rem); }
.bean-copy .lede { max-width: 34rem; }
.bean-punchline {
  display: inline-block;
  margin: 0.8rem 0 0;
  padding: 0.55rem 0.9rem;
  color: #1a1713;
  background: var(--bulb);
  border: 2px solid #1a1713;
  box-shadow: 5px 5px 0 var(--brick);
  font-family: var(--marquee);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  transform: rotate(-1deg);
}
.bean-grid .crt { width: 100%; margin: 0; }

.surf-story {
  overflow: hidden;
  background:
    radial-gradient(ellipse at 85% 5%, rgba(111, 196, 214, 0.22), transparent 34rem),
    linear-gradient(180deg, #f6f0df, #f2e6cf);
}
.surf-story h2 { color: #0f6680; }
.surf-story .lede { max-width: 54rem; }
.surf-gallery {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(0.8rem, 2vw, 1.45rem);
  margin-top: 2rem;
  align-items: start;
}
.surf-gallery .ph { margin: 0; }
.surf-gallery .ph:nth-child(1) { grid-column: 1 / 9; transform: rotate(-0.35deg); }
.surf-gallery .ph:nth-child(2) { grid-column: 9 / 13; transform: translateY(2.4rem) rotate(0.7deg); }
.surf-gallery .ph:nth-child(3) { grid-column: 1 / 6; transform: translateY(-0.2rem) rotate(0.55deg); }
.surf-gallery .ph:nth-child(4) { grid-column: 6 / 13; transform: translateY(0.9rem) rotate(-0.45deg); }
.surf-gallery img { aspect-ratio: 4 / 3; object-fit: cover; }
.surf-gallery .surf-wide img { aspect-ratio: 3 / 2; }

.price-ribbon {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: clamp(3rem, 7vw, 5rem) 0 1rem;
  color: #f6f0df;
  background: #0b4b61;
  border: 3px solid #17313a;
  outline: 2px dotted var(--bulb);
  outline-offset: 5px;
  box-shadow: 0 14px 30px rgba(32, 43, 44, 0.2);
  transform: rotate(-0.2deg);
}
.price-ribbon span {
  padding: 1rem;
  font-size: 0.9rem;
  line-height: 1.35;
  border-right: 1px solid rgba(246, 240, 223, 0.24);
}
.price-ribbon span:last-child { border-right: 0; }
.price-ribbon b {
  display: block;
  color: var(--bulb);
  font-family: var(--display);
  font-size: clamp(1.35rem, 3vw, 2rem);
  font-weight: 400;
}

.deli-feature {
  background:
    linear-gradient(90deg, rgba(255, 226, 173, 0.35), transparent 42%),
    #f6ead8;
}
.deli-grid {
  display: grid;
  grid-template-columns: minmax(17rem, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(1.8rem, 5vw, 4rem);
  align-items: center;
}
.deli-photo { margin: 0; transform: rotate(0.45deg); }
.deli-photo img { display: block; }
.deli-special {
  width: fit-content;
  margin-top: 1.6rem;
  padding: 0.75rem 1rem;
  color: #7f2428;
  background: #fff8dd;
  border: 4px double #7f2428;
  font-family: var(--marquee);
  font-size: clamp(1rem, 2.6vw, 1.3rem);
  line-height: 1.25;
  letter-spacing: 0.08em;
  text-align: center;
  transform: rotate(-1.2deg);
}
.deli-special small { color: #735d49; font-size: 0.68em; }

.cyclone-section {
  position: relative;
  overflow: hidden;
  color: #f8f0d6;
  background:
    radial-gradient(circle at 12% 18%, rgba(255, 222, 70, 0.13) 0 3px, transparent 4px),
    radial-gradient(circle at 88% 82%, rgba(255, 255, 255, 0.09) 0 2px, transparent 3px),
    linear-gradient(145deg, #123f72, #082f59 58%, #06213f);
  background-size: 72px 72px, 94px 94px, auto;
  border-top: 10px solid #e1b72c;
  border-bottom: 10px solid #e1b72c;
}
.cyclone-section h2 { color: #ffd348; text-shadow: 3px 3px 0 #55253f; }
.cyclone-section .eyebrow { color: #f6ce4a; }
.cyclone-lockup {
  display: block;
  width: min(49rem, 92%);
  height: auto;
  margin: -0.6rem auto clamp(2rem, 5vw, 3.4rem);
  border: 5px solid #ead57b;
  box-shadow: 0 14px 38px rgba(0, 0, 0, 0.4);
  transform: rotate(-0.5deg);
}
.cyclone-grid {
  display: grid;
  grid-template-columns: minmax(18rem, 0.76fr) minmax(0, 1.24fr);
  gap: clamp(1.8rem, 5vw, 4rem);
  align-items: center;
}
.cyclone-copy blockquote {
  margin: 1.5rem 0 0;
  padding: 1rem 1.1rem;
  color: #241816;
  background: #f1c530;
  border: 3px solid #241816;
  box-shadow: 7px 7px 0 #5a263d;
  font-family: var(--marquee);
  font-size: clamp(0.9rem, 2vw, 1.05rem);
  line-height: 1.5;
  transform: rotate(0.7deg);
}
.cyclone-poster { margin: 0; transform: rotate(0.35deg); }
.cyclone-cameos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1rem, 3vw, 2.2rem);
  width: min(58rem, 92%);
  margin: clamp(2rem, 5vw, 3.5rem) auto 0;
}
.cyclone-cameos figure { margin: 0; }
.cyclone-cameos figure:first-child { transform: rotate(-1deg); }
.cyclone-cameos figure:last-child { transform: rotate(0.9deg); }
.cyclone-cameos img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 7px solid #f7e3a5;
  box-shadow: 0 12px 25px rgba(0, 0, 0, 0.35);
}
.cyclone-cameos figcaption {
  padding: 0.6rem 0.25rem 0;
  color: #f4df9d;
  font-size: 0.86rem;
  text-align: center;
}

.caffe-section {
  background-color: #fff7e8;
  background-image:
    linear-gradient(90deg, rgba(154, 35, 39, 0.055) 50%, transparent 50%),
    linear-gradient(rgba(154, 35, 39, 0.055) 50%, transparent 50%);
  background-size: 44px 44px;
}
.caffe-section .lede { max-width: 52rem; }
.caffe-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(16rem, 0.65fr);
  gap: clamp(1rem, 3vw, 2rem);
  align-items: start;
  margin-top: 2rem;
}
.caffe-grid .ph { margin: 0; }
.caffe-room { transform: rotate(-0.4deg); }
.caffe-menu { transform: translateY(2rem) rotate(0.8deg); }
.caffe-room img { aspect-ratio: 4 / 3; object-fit: cover; }

.pit-stop {
  color: #25302b;
  background:
    radial-gradient(circle at 82% 18%, rgba(201, 152, 42, 0.18), transparent 24rem),
    #c8ddd2;
}
.pit-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(17rem, 0.75fr);
  gap: clamp(1.8rem, 5vw, 4rem);
  align-items: center;
}
.pit-grid .ph { margin: 0; transform: rotate(-0.5deg); }
.pit-grid h2 { color: #7f2d2f; }

.last-menu { padding-top: clamp(3rem, 7vw, 5rem); }
.menu-evidence-grid {
  display: grid;
  grid-template-columns: minmax(18rem, 0.75fr) minmax(0, 1.25fr);
  gap: clamp(1.8rem, 5vw, 4rem);
  align-items: center;
}
.counter-board {
  max-width: 32rem;
  margin: 1.8rem 0 0;
  padding: 1.15rem;
  border: 4px solid #080707;
  border-radius: 7px;
  background-color: #1b1210;
  background-image:
    radial-gradient(circle, #ffe5a0 0 2px, #d99124 2.5px 4px, transparent 4.5px),
    radial-gradient(circle, #8c4e16 0 2px, #4d2b14 2.5px 4px, transparent 4.5px);
  background-size: 22px 22px;
  background-position: 0 0, 11px 11px;
  box-shadow:
    0 0 22px rgba(246, 189, 74, 0.25),
    0 18px 38px rgba(0, 0, 0, 0.48);
  transform: rotate(-0.45deg);
}
@media (prefers-reduced-motion: no-preference) {
  .counter-board { animation: counter-board-bulbs 1.35s steps(2) infinite; }
  @keyframes counter-board-bulbs {
    to { background-position: 11px 11px, 22px 22px; }
  }
}
.counter-board-face {
  padding: clamp(1rem, 3vw, 1.45rem);
  color: #332820;
  background:
    radial-gradient(ellipse at 50% 30%, rgba(255, 255, 255, 0.78), transparent 64%),
    linear-gradient(180deg, #fff9e8, #efe0bd);
  border: 3px double #6b311f;
  box-shadow: inset 0 0 24px rgba(123, 77, 30, 0.2);
}
.counter-board-brand {
  margin: 0;
  color: #8e2323;
  font-family: var(--display);
  font-size: clamp(1.6rem, 4vw, 2.2rem);
  line-height: 1;
  text-align: center;
  letter-spacing: 0.035em;
}
.counter-board-brand small {
  display: block;
  margin-top: 0.3rem;
  color: #4f453a;
  font-family: var(--marquee);
  font-size: 0.34em;
  letter-spacing: 0.22em;
}
.counter-board-hours {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  margin: 0.75rem 0 0.55rem;
  padding: 0.38rem 0.7rem;
  color: #fff4d1;
  background: #173f4e;
  border-top: 2px solid #0f2b35;
  border-bottom: 2px solid #0f2b35;
  font-family: var(--marquee);
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  text-align: center;
}
.counter-board-hours span { color: var(--bulb); }
.menu-ticket {
  list-style: none;
  margin: 0;
  padding: 0.25rem 0;
}
.menu-ticket li {
  display: grid;
  grid-template-columns: auto minmax(1rem, 1fr) auto;
  gap: 0.45rem;
  align-items: end;
  padding: 0.58rem 0;
  border-bottom: 1px solid rgba(107, 49, 31, 0.16);
}
.menu-ticket li:last-child { border-bottom: 0; }
.menu-ticket li > span {
  font-family: var(--marquee);
  font-size: clamp(0.78rem, 2vw, 0.9rem);
  line-height: 1.25;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}
.menu-ticket li > span small {
  display: block;
  margin-top: 0.15rem;
  color: #7b6c5b;
  font-family: var(--body);
  font-size: 0.68em;
  font-weight: 400;
  letter-spacing: 0.04em;
  text-transform: none;
}
.menu-ticket i {
  min-width: 1rem;
  margin-bottom: 0.31rem;
  border-bottom: 2px dotted #9a8165;
}
.menu-ticket b {
  color: #8e2323;
  font-family: var(--display);
  font-size: clamp(1rem, 2.6vw, 1.28rem);
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
}
.counter-board-foot {
  margin: 0.5rem 0 0;
  padding-top: 0.55rem;
  color: #756451;
  border-top: 1px dotted #9a8165;
  font-family: var(--marquee);
  font-size: 0.58rem;
  letter-spacing: 0.1em;
  text-align: center;
  text-transform: uppercase;
}
.menu-board-photo { margin: 0; transform: rotate(0.45deg); }

@media (max-width: 880px) {
  .bean-grid,
  .deli-grid,
  .cyclone-grid,
  .caffe-grid,
  .pit-grid,
  .menu-evidence-grid { grid-template-columns: 1fr; }
  .bean-grid { gap: 2.4rem; }
  .bean-grid .crt { max-width: 40rem; margin: 0 auto; }
  .deli-photo { grid-row: 1; }
  .caffe-menu { transform: none; max-width: 30rem; margin: 0 auto; }
  .pit-grid .ph { grid-row: 2; }
  .menu-board-photo { grid-row: 1; }
}
@media (max-width: 680px) {
  .surf-gallery { grid-template-columns: 1fr; }
  .surf-gallery .ph:nth-child(n) { grid-column: auto; transform: none; }
  .surf-gallery .surf-wide img { aspect-ratio: 4 / 3; }
  .price-ribbon { grid-template-columns: 1fr 1fr; }
  .price-ribbon span:nth-child(2) { border-right: 0; }
  .price-ribbon span:nth-child(-n + 2) { border-bottom: 1px solid rgba(246, 240, 223, 0.24); }
  .cyclone-cameos { grid-template-columns: 1fr; width: 100%; }
  .cyclone-lockup { width: 100%; }
}
@media (max-width: 480px) {
  .price-ribbon { grid-template-columns: 1fr; }
  .price-ribbon span { border-right: 0; border-bottom: 1px solid rgba(246, 240, 223, 0.24); }
  .price-ribbon span:last-child { border-bottom: 0; }
  .counter-board { padding: 0.8rem; }
  .menu-ticket li { gap: 0.35rem; }
}
@media (prefers-reduced-motion: reduce) {
  .counter-board { animation: none; }
  .bean-punchline,
  .surf-gallery .ph,
  .deli-photo,
  .cyclone-lockup,
  .cyclone-poster,
  .cyclone-cameos figure,
  .caffe-grid .ph,
  .pit-grid .ph,
  .menu-board-photo { transform: none; }
}

/* ---- the brochure: history's door, set like the casino's own c.1996 print --- */
.brochure {
  background:
    linear-gradient(120deg, rgba(255, 255, 255, 0.07) 0%, rgba(255, 255, 255, 0) 40%),
    #0ba178;
  color: #fdf6e3;
}
.brochure h2 {
  font-family: var(--display);
  color: #fff;
  font-size: clamp(1.9rem, 5vw, 3rem);
  text-shadow: 2px 2px 0 #14121a;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  margin-bottom: 0.15em;
}
.brochure .allnew {
  display: block;
  font-family: var(--display);
  text-transform: uppercase;
  font-size: clamp(1.1rem, 2.6vw, 1.5rem);
  color: #fdf6e3;
  text-shadow: 1.5px 1.5px 0 #14121a;
  letter-spacing: 0.14em;
  margin: 0 0 0.4rem;
}
.brochure .pinkline { color: #f0459c; text-shadow: 2px 2px 0 #fdf6e3; }
.brochure p { color: #eafaf2; }
.brochure b { color: #fff; }
.brochure .tag { color: #d7f2e6; background: rgba(20, 18, 26, 0.25); border-color: rgba(253, 246, 227, 0.4); }
.brochure .btn { background: #f0459c; outline-color: #fdf6e3; }
.brochure .btn:hover { background: #d92f85; }
.brochure .ph { transform: rotate(-1.1deg); max-width: 24rem; }
.brochure .ph figcaption { color: var(--ink-soft); }
.brochure a { color: #fdf6e3; }
/* ==========================================================================
   THE HOTEL - check-in rebuild (adopted from concepts/the hotel, July 2026):
   a remembered check-in - jennifer's June 2003 room as the slow-breathing
   hero, the surviving room-prepared card, the interior photographs at
   feature scale, the bottled-water amenity, the three-tower timeline on the
   casino's own map, the window wall, the promo room pair, and the pool
   negative as a set piece. Scoped to .page-rooms (was .hotel-concept).
   ========================================================================== */
:root {
  --hotel-cream: #f3ead7;
  --hotel-paper: #fffaf0;
  --hotel-ink: #2b1a19;
  --hotel-brown: #4b2923;
  --hotel-maroon: #6f1727;
  --hotel-pink: #ef507b;
  --hotel-teal: #0f6670;
  --hotel-aqua: #9ad9d8;
  --hotel-gold: #d7a742;
  --hotel-night: #091722;
  --hotel-blue: #14374d;
}

.page-rooms {
  background: var(--hotel-cream);
  color: var(--hotel-ink);
}

.page-rooms main {
  overflow: hidden;
}

.page-rooms .masthead {
  position: relative;
  z-index: 20;
}

.page-rooms .section {
  position: relative;
}

.page-rooms .section h2 {
  text-wrap: balance;
}

.room-hero {
  position: relative;
  min-height: min(850px, 86vh);
  display: grid;
  align-items: end;
  overflow: hidden;
  color: #fff;
  background: var(--hotel-night);
  isolation: isolate;
}

.room-hero-image {
  position: absolute;
  inset: 0;
  z-index: -3;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 49%;
  animation: room-breathe 18s ease-in-out infinite alternate;
}

.room-hero-shade {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(5, 12, 18, .88) 0%, rgba(5, 12, 18, .6) 37%, rgba(5, 12, 18, .1) 70%),
    linear-gradient(0deg, rgba(5, 12, 18, .94) 0%, transparent 48%);
}

.room-hero::after {
  content: "";
  position: absolute;
  inset: 1rem;
  z-index: -1;
  border: 1px solid rgba(255,255,255,.38);
  pointer-events: none;
}

.room-hero-copy {
  width: min(74rem, calc(100% - 3rem));
  margin: 0 auto;
  padding: 8rem 0 6rem;
}

.room-number {
  margin: 0 0 1rem;
  color: var(--hotel-aqua);
  font: 700 .8rem/1.2 "Public Sans", sans-serif;
  letter-spacing: .22em;
}

.room-hero h1 {
  max-width: 9ch;
  margin: 0;
  color: #fff8e9;
  font: 400 clamp(4.6rem, 11vw, 10rem)/.75 "Alfa Slab One", serif;
  letter-spacing: -.055em;
  text-transform: uppercase;
  text-shadow: 0 .08em 0 var(--hotel-maroon), 0 .12em .28em rgba(0,0,0,.65);
}

.room-hero h1 span {
  display: block;
  margin: 0 0 .5rem .2rem;
  color: var(--hotel-pink);
  font: 400 clamp(1.6rem, 3vw, 2.8rem)/1 "Grand Hotel", cursive;
  letter-spacing: .02em;
  text-transform: none;
  text-shadow: 0 .08em .2em rgba(0,0,0,.8);
  transform: rotate(-3deg);
  transform-origin: left;
}

.room-hero-lede {
  max-width: 39rem;
  margin: 2rem 0 0;
  color: #fffaf0;
  font: 400 clamp(1.05rem, 1.6vw, 1.35rem)/1.55 "Public Sans", sans-serif;
  text-shadow: 0 2px 18px #000;
}

.hero-rate {
  position: absolute;
  right: max(2.5rem, calc((100% - 74rem) / 2));
  bottom: 5rem;
  width: 10.5rem;
  aspect-ratio: .8;
  display: grid;
  place-content: center;
  padding: 1rem;
  color: var(--hotel-ink);
  text-align: center;
  background: var(--hotel-paper);
  border: .65rem double var(--hotel-gold);
  box-shadow: 0 1rem 3rem rgba(0,0,0,.45);
  transform: rotate(4deg);
}

.hero-rate::before {
  content: "";
  position: absolute;
  inset: .45rem;
  border: 1px solid var(--hotel-maroon);
}

.hero-rate span,
.hero-rate small {
  position: relative;
  font: 700 .68rem/1.25 "Public Sans", sans-serif;
  letter-spacing: .1em;
}

.hero-rate strong {
  position: relative;
  color: var(--hotel-maroon);
  font: 400 4.1rem/.95 "Alfa Slab One", serif;
  letter-spacing: -.08em;
}

.room-hero-credit {
  position: absolute;
  left: 1.7rem;
  bottom: 1.45rem;
  max-width: 65%;
  margin: 0;
  color: rgba(255,255,255,.7);
  font: 400 .62rem/1.35 "Public Sans", sans-serif;
}

.scroll-checkin {
  position: absolute;
  right: 1.8rem;
  bottom: 1.45rem;
  color: #fff;
  font: 700 .72rem/1 "Public Sans", sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.checkin-section {
  padding: clamp(5rem, 9vw, 9rem) 0;
  background:
    radial-gradient(circle at 14% 18%, rgba(239,80,123,.12), transparent 24rem),
    var(--hotel-cream);
}

.checkin-section::after {
  content: "WELCOME";
  position: absolute;
  right: -1rem;
  bottom: -2rem;
  color: rgba(111,23,39,.045);
  font: 400 clamp(6rem, 17vw, 15rem)/.8 "Alfa Slab One", serif;
  letter-spacing: -.06em;
  pointer-events: none;
}

.checkin-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
}

.prepared-card {
  position: relative;
  max-width: 38rem;
  margin: 0 auto;
  transform: rotate(-1deg);
}

.prepared-card img {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 1.25rem 1.5rem rgba(50,25,20,.24));
}

.prepared-card figcaption {
  margin: .5rem 1.4rem 0;
  color: #765f55;
  font-size: .72rem;
  text-align: center;
}

.checkin-copy {
  position: relative;
  z-index: 1;
}

.registration-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin: 2.2rem 0 0;
  background: rgba(75,41,35,.25);
  border: 1px solid rgba(75,41,35,.25);
}

.registration-stats div {
  padding: 1.25rem;
  background: rgba(255,250,240,.74);
}

.registration-stats dt {
  color: var(--hotel-maroon);
  font: 400 clamp(2rem, 4vw, 3.2rem)/.9 "Alfa Slab One", serif;
  letter-spacing: -.04em;
}

.registration-stats dd {
  margin: .5rem 0 0;
  color: var(--hotel-brown);
  font: 700 .7rem/1.3 "Public Sans", sans-serif;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.room-story {
  padding: clamp(5rem, 8vw, 8rem) 0;
  background:
    linear-gradient(rgba(255,255,255,.82), rgba(255,255,255,.82)),
    repeating-linear-gradient(90deg, #b9d5d4 0 2px, #f5efe2 2px 8px);
}

.section-intro,
.tower-heading,
.window-title {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .85fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: end;
  margin-bottom: 3rem;
}

.section-intro > p,
.tower-heading > p,
.window-title > p {
  margin-bottom: .5rem;
  font-size: 1.1rem;
}

.room-mosaic {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  grid-template-rows: repeat(2, minmax(16rem, 28vw));
  gap: 1rem;
}

.room-photo {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: var(--hotel-night);
}

.room-photo-beds {
  grid-row: 1 / span 2;
}

.room-photo a,
.room-photo img {
  display: block;
  width: 100%;
  height: 100%;
}

.room-photo img {
  object-fit: cover;
  transition: transform .7s ease;
}

.room-photo-dresser img {
  object-position: 24% center;
}

.room-photo:hover img {
  transform: scale(1.025);
}

.room-photo figcaption {
  position: absolute;
  inset: auto .8rem .8rem;
  padding: .8rem 1rem;
  color: #fff;
  background: rgba(9,23,34,.86);
  border-left: .28rem solid var(--hotel-pink);
  font-size: .75rem;
  backdrop-filter: blur(8px);
}

.room-photo figcaption b {
  display: block;
  color: var(--hotel-aqua);
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.room-source-note {
  max-width: 68rem;
  margin: 1.25rem auto 0;
  color: #765f55;
  font-size: .65rem;
  line-height: 1.55;
  text-align: center;
}

.water-feature {
  position: relative;
  overflow: hidden;
  padding: clamp(5rem, 10vw, 10rem) 0;
  color: #173943;
  background: #a9cdca;
}

.water-feature::before {
  position: absolute;
  inset: 0;
  content: "";
  background: url("../img/boardwalk-water-2026-ad-1200.webp") right center / auto 100% no-repeat;
}

.water-feature::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(90deg, #a9cdca 0 34%, rgba(169,205,202,.96) 43%, rgba(169,205,202,.42) 58%, transparent 72%);
}

.water-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr);
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
}

.water-copy {
  position: relative;
  z-index: 2;
}

.water-copy h2 {
  color: #143f49;
  font-size: clamp(3.4rem, 7vw, 6.8rem);
  line-height: .88;
}

.water-kicker {
  display: inline-block;
  margin: 1rem 0;
  padding: .5rem .7rem;
  color: #fff;
  background: var(--hotel-teal);
  font: 700 .68rem/1 "Public Sans", sans-serif;
  letter-spacing: .16em;
}

.water-lede {
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  line-height: 1.55;
}

.water-note {
  margin-top: 2rem;
  color: var(--hotel-maroon);
  font: 700 .68rem/1.5 "Public Sans", sans-serif;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.water-photo {
  position: relative;
  z-index: 1;
  margin: 0;
  border: 0;
  box-shadow: none;
  transform: none;
}

.water-photo img {
  display: block;
  width: 100%;
  height: auto;
  opacity: 0;
}

.tower-section {
  padding: clamp(5rem, 9vw, 9rem) 0;
  background:
    linear-gradient(90deg, rgba(111,23,39,.05) 1px, transparent 1px),
    linear-gradient(rgba(111,23,39,.05) 1px, transparent 1px),
    var(--hotel-paper);
  background-size: 2rem 2rem;
}

.tower-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
}

.property-map {
  margin: 0;
  padding: 1rem;
  background: #fff;
  border: 1px solid #c9bcaa;
  box-shadow: .6rem .8rem 0 var(--hotel-maroon), 0 1.5rem 4rem rgba(57,33,27,.2);
  transform: rotate(-1.5deg);
}

.property-map img {
  display: block;
  width: 100%;
  height: auto;
  filter: sepia(.25) contrast(1.08);
}

.property-map figcaption {
  margin: .8rem .2rem .1rem;
  font-size: .7rem;
}

.tower-list {
  position: relative;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tower-list::before {
  content: "";
  position: absolute;
  left: 3.55rem;
  top: 2rem;
  bottom: 2rem;
  width: 2px;
  background: var(--hotel-gold);
}

.tower-list li {
  position: relative;
  display: grid;
  grid-template-columns: 7rem 1fr;
  gap: 1.5rem;
  align-items: start;
  padding: 1.4rem 0;
}

.tower-year {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  min-height: 3.2rem;
  color: #fff;
  background: var(--hotel-maroon);
  border: .3rem solid var(--hotel-gold);
  border-radius: 50%;
  font: 700 .8rem/1 "Public Sans", sans-serif;
  letter-spacing: .05em;
}

.tower-list h3 {
  margin: 0;
  color: var(--hotel-maroon);
  font: 400 clamp(1.7rem, 3vw, 2.5rem)/1 "Alfa Slab One", serif;
}

.tower-list p {
  margin: .5rem 0 0;
}

.window-section {
  padding: clamp(5rem, 9vw, 9rem) 0;
  color: #eef7fb;
  background:
    radial-gradient(circle at 50% 20%, rgba(28,91,122,.7), transparent 32rem),
    linear-gradient(#0a2130, #050d14);
}

.window-section .eyebrow,
.window-section h2 {
  color: #fff;
}

.window-wall {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .8rem;
  align-items: end;
  padding: 1.2rem;
  background: #020609;
  border: .7rem solid #523c32;
  box-shadow: inset 0 0 0 .25rem #ba8a4a, 0 2rem 5rem #000;
}

.window-wall figure {
  margin: 0;
  background: #000;
}

.window-wall a {
  display: block;
  height: clamp(21rem, 36vw, 36rem);
  overflow: hidden;
}

.window-wall img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.88) contrast(1.05);
  transition: filter .4s ease, transform .7s ease;
}

/* The Dunes pylon rides the left edge of the 1983 frame - anchor the first
   pane's cover crop there so the sign stays in view. */
.window-wall figure:first-child img {
  object-position: left center;
}

.window-wall figure:hover img {
  filter: saturate(1.08) contrast(1.05);
  transform: scale(1.025);
}

.window-wall figcaption {
  min-height: 3.7rem;
  display: grid;
  place-items: center;
  padding: .7rem;
  color: var(--hotel-aqua);
  font: 700 .62rem/1.3 "Public Sans", sans-serif;
  letter-spacing: .1em;
  text-align: center;
}

.window-section .room-source-note {
  color: rgba(238,247,251,.55);
}

.brochure-section {
  padding: clamp(5rem, 9vw, 9rem) 0;
  background:
    radial-gradient(circle at 20% 15%, rgba(239,80,123,.12), transparent 25rem),
    var(--hotel-cream);
}

.brochure-heading {
  max-width: 52rem;
  margin: 0 auto 3rem;
  text-align: center;
}

.brochure-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(4.5rem, 8vw, 8rem);
  max-width: 76rem;
  margin: 0 auto;
}

.brochure-grid figure {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 14rem;
  align-items: center;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.brochure-grid figure:nth-child(2) {
  grid-template-columns: 14rem minmax(0, 1fr);
}

.brochure-grid figure:nth-child(2) a {
  grid-column: 2;
  grid-row: 1;
}

.brochure-grid figure:nth-child(2) figcaption {
  grid-column: 1;
  grid-row: 1;
  padding-right: 2rem;
  padding-left: 0;
  border-right: .18rem solid var(--hotel-pink);
  border-left: 0;
  text-align: right;
}

.brochure-grid figure > a {
  display: block;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #cfc5b8;
  box-shadow: 0 1.5rem 3rem rgba(75,41,35,.17);
}

.brochure-grid img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.24);
}

.brochure-grid figcaption {
  padding: 1.5rem 0 1.5rem 2rem;
  color: var(--hotel-brown);
  border-left: .18rem solid var(--hotel-pink);
}

.brochure-grid figcaption b {
  display: block;
  color: var(--hotel-maroon);
  font: 400 1.1rem/1.2 "Alfa Slab One", serif;
  letter-spacing: .04em;
}

.brochure-grid figcaption span {
  display: block;
  margin-top: .35rem;
  font-size: .75rem;
}

/* Retired July 28, 2026: the "Forty years. Not one photograph." section
   was replaced by THE POOL, RECOVERED chapter at the end of this file.
   These rules stay for the concept archives, per the .wall precedent. */
.pool-missing {
  padding: clamp(5rem, 9vw, 9rem) 0;
  color: #11323d;
  background:
    linear-gradient(135deg, rgba(255,255,255,.3) 25%, transparent 25%) 0 0 / 2rem 2rem,
    linear-gradient(315deg, rgba(255,255,255,.23) 25%, transparent 25%) 0 0 / 2rem 2rem,
    #92d6d7;
}

.pool-grid {
  display: grid;
  grid-template-columns: .75fr 1.25fr;
  gap: clamp(2rem, 7vw, 7rem);
  align-items: center;
}

.pool-zero {
  color: transparent;
  font: 400 clamp(13rem, 30vw, 27rem)/.75 "Alfa Slab One", serif;
  -webkit-text-stroke: clamp(.5rem, 1vw, .9rem) rgba(255,255,255,.85);
  text-align: center;
  filter: drop-shadow(.6rem .7rem 0 rgba(15,102,112,.25));
}

.pool-missing h2 {
  color: #09222b;
}

.pool-punchline {
  margin: 1.8rem 0;
  color: var(--hotel-maroon);
  font: 400 clamp(1.6rem, 3vw, 2.5rem)/1.15 "Alfa Slab One", serif;
}

.hotel-closer {
  padding: clamp(6rem, 11vw, 11rem) 0;
  color: #fff4e4;
  background:
    radial-gradient(circle at 50% 0, rgba(239,80,123,.28), transparent 30rem),
    var(--hotel-night);
}

.hotel-closer::before {
  content: "";
  position: absolute;
  inset: 1.2rem;
  border: 1px solid rgba(215,167,66,.42);
}

.hotel-closer .inner {
  position: relative;
  z-index: 1;
}

.closer-big {
  max-width: 17ch;
  margin: 1.2rem auto 2.5rem;
  font: 400 clamp(2.3rem, 5.5vw, 5.2rem)/.98 "Alfa Slab One", serif;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.hotel-closer b {
  color: var(--hotel-aqua);
}

@keyframes room-breathe {
  from { transform: scale(1.01); }
  to { transform: scale(1.065) translate3d(-.7%, -.4%, 0); }
}

@media (max-width: 900px) {
  .room-hero {
    min-height: 48rem;
  }

  .room-hero-image {
    object-position: 58% 50%;
  }

  .room-hero-shade {
    background:
      linear-gradient(0deg, rgba(5,12,18,.96) 0%, rgba(5,12,18,.62) 52%, rgba(5,12,18,.15) 100%);
  }

  .room-hero-copy {
    padding-bottom: 8rem;
  }

  .hero-rate {
    right: 2rem;
    bottom: 4.5rem;
    width: 8.5rem;
  }

  .hero-rate strong {
    font-size: 3.2rem;
  }

  .room-hero-lede {
    max-width: calc(100% - 10rem);
  }

  .checkin-grid,
  .water-grid,
  .tower-grid,
  .pool-grid {
    grid-template-columns: 1fr;
  }

  .section-intro,
  .tower-heading,
  .window-title {
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }

  .room-mosaic {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 26rem 20rem;
  }

  .room-photo-beds {
    grid-column: 1 / -1;
    grid-row: auto;
  }

  .water-photo {
    order: -1;
  }

  .window-wall {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .window-wall a {
    height: 30rem;
  }

  .pool-zero {
    line-height: .55;
  }
}

@media (max-width: 620px) {
  .room-hero {
    min-height: 45rem;
  }

  .room-hero::after {
    inset: .55rem;
  }

  .room-hero-copy {
    width: calc(100% - 2rem);
    padding: 5rem 0 10rem;
  }

  .room-hero h1 {
    font-size: clamp(3.65rem, 18vw, 5.4rem);
  }

  .room-hero-lede {
    max-width: 100%;
    margin-top: 1.4rem;
    font-size: 1rem;
  }

  .hero-rate {
    left: 1.4rem;
    right: auto;
    bottom: 3.7rem;
    width: 7.6rem;
    aspect-ratio: 1.35;
    transform: rotate(-2deg);
  }

  .hero-rate strong {
    font-size: 2.45rem;
  }

  .hero-rate small {
    display: none;
  }

  .room-hero-credit {
    left: auto;
    right: 1rem;
    bottom: 1rem;
    max-width: 55%;
    text-align: right;
  }

  .scroll-checkin {
    display: none;
  }

  .prepared-card {
    width: calc(100% - 1rem);
    transform: none;
  }

  .registration-stats {
    grid-template-columns: 1fr;
  }

  .room-mosaic {
    display: block;
  }

  .room-photo {
    margin-bottom: 1rem;
  }

  .room-photo a {
    height: 19rem;
  }

  .room-photo figcaption {
    position: relative;
    inset: auto;
    border-left: 0;
    border-top: .2rem solid var(--hotel-pink);
  }

  .water-photo {
    margin-bottom: 2rem;
  }

  .water-feature::before {
    background-position: center 5rem;
    background-size: 100% auto;
  }

  .water-feature::after {
    background: linear-gradient(to bottom, transparent 5rem, transparent 14rem, rgba(169,205,202,.34) 20rem, #a9cdca 27rem);
  }

  .tower-list li {
    grid-template-columns: 5.8rem 1fr;
    gap: 1rem;
  }

  .tower-list::before {
    left: 2.85rem;
  }

  .window-wall {
    grid-template-columns: 1fr;
    padding: .7rem;
  }

  .window-wall a {
    height: 24rem;
  }

  .brochure-grid {
    grid-template-columns: 1fr;
  }

  .brochure-grid figure {
    grid-template-columns: 1fr;
  }

  .brochure-grid figure:nth-child(2) {
    grid-template-columns: 1fr;
  }

  .brochure-grid figure:nth-child(2) a,
  .brochure-grid figure:nth-child(2) figcaption {
    grid-column: 1;
    grid-row: auto;
  }

  .brochure-grid figure:nth-child(2) figcaption {
    padding: 1.5rem 0 1.5rem 2rem;
    border-right: 0;
    border-left: .18rem solid var(--hotel-pink);
    text-align: left;
  }

  .pool-zero {
    font-size: 12rem;
  }

  .hotel-closer::before {
    inset: .65rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .room-hero-image {
    animation: none;
  }

  .room-photo img,
  .window-wall img {
    transition: none;
  }
}


/* ==========================================================================
   THE CASINO - image-led rebuild (adopted from concepts/the casino, July 2026):
   the working floor leads - Rodriguez's corrected Cyclone hero with a disclosed
   Seedance motion loop, the fireworks carpet and slot-floor panorama full-bleed,
   the felt reduced to the three numbers people remember, Saguar's Double Slot
   (published with permission), the $4.15 handpay, the Del Mar's $9.3M, and the
   glowing $3-minimum entrance to close. Scoped to .page-casino
   (was .casino-concept); the concept's stale text-wordmark overrides are dropped
   because the masthead now carries the official SVG logo.
   ========================================================================== */
:root {
  --casino-ink: #170f1c;
  --casino-night: #090c14;
  --casino-cream: #f4ead5;
  --casino-paper: #fff9e9;
  --casino-red: #77172b;
  --casino-orange: #ef5126;
  --casino-gold: #f4bd3d;
  --casino-aqua: #83d6d3;
  --casino-teal: #075a58;
  --casino-blue: #0877b7;
  --casino-felt: #0b5d47;
}

.page-casino {
  color: var(--casino-ink);
  background: var(--casino-cream);
  overflow-x: clip;
}

.page-casino main {
  overflow: hidden;
}

.page-casino .masthead {
  position: relative;
  z-index: 20;
}


.page-casino .section {
  position: relative;
}

.page-casino h2 {
  text-wrap: balance;
}

.casino-hero {
  position: relative;
  min-height: min(880px, 88vh);
  display: grid;
  align-items: end;
  overflow: hidden;
  color: #fff;
  background: var(--casino-night);
  isolation: isolate;
}

.casino-hero-image,
.casino-hero-video {
  position: absolute;
  inset: 0;
  z-index: -4;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 48%;
}

.casino-hero-image {
  animation: casino-breathe 17s ease-in-out infinite alternate;
}

.casino-hero-video {
  z-index: -3;
  opacity: 1;
}

.casino-hero-shade {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(5,7,13,.94) 0%, rgba(5,7,13,.75) 34%, rgba(5,7,13,.15) 67%),
    linear-gradient(0deg, rgba(5,7,13,.98) 0%, transparent 53%);
}

.casino-hero::after {
  position: absolute;
  inset: 1rem;
  z-index: -1;
  content: "";
  border: 1px solid rgba(255,255,255,.3);
  pointer-events: none;
}

.casino-hero-copy {
  width: min(74rem, calc(100% - 3rem));
  margin: 0 auto;
  padding: 8rem 0 6rem;
}

.casino-hero-kicker {
  margin: 0 0 1rem;
  color: var(--casino-aqua);
  font: 700 .76rem/1.3 "Public Sans", sans-serif;
  letter-spacing: .19em;
  text-transform: uppercase;
}

.casino-hero h1 {
  max-width: 57rem;
  margin: 0;
  color: var(--casino-paper);
  font: 400 clamp(4.8rem, 8.7vw, 9rem)/.83 "Alfa Slab One", serif;
  letter-spacing: -.045em;
  text-shadow: .08em .08em 0 rgba(111,23,39,.75);
}

.casino-hero h1 span {
  display: block;
  margin: 0 0 .7rem .25rem;
  color: var(--casino-gold);
  font: 700 .76rem/1 "Public Sans", sans-serif;
  letter-spacing: .28em;
  text-shadow: none;
  text-transform: uppercase;
}

.casino-hero h1 em {
  color: var(--casino-gold);
  font-style: normal;
}

.casino-hero-lede {
  max-width: 43rem;
  margin: 1.6rem 0 0;
  color: rgba(255,255,255,.9);
  font-size: clamp(1rem, 1.6vw, 1.22rem);
  line-height: 1.65;
}

.casino-enter {
  display: inline-block;
  margin-top: 1.6rem;
  color: var(--casino-aqua);
  border-bottom: 1px solid currentColor;
  font: 700 .72rem/2 "Public Sans", sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.hero-jackpot {
  position: absolute;
  right: clamp(2rem, 7vw, 8rem);
  bottom: 5rem;
  width: 15rem;
  padding: 1rem 1.2rem;
  color: #fff;
  background: rgba(5,7,13,.82);
  border: .2rem solid var(--casino-gold);
  box-shadow: 0 0 0 .25rem rgba(239,81,38,.7), 0 1.3rem 3rem rgba(0,0,0,.35);
  text-align: center;
  transform: rotate(1.2deg);
}

.hero-jackpot span,
.hero-jackpot small {
  display: block;
  font: 700 .64rem/1.3 "Public Sans", sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.hero-jackpot strong {
  display: block;
  margin: .35rem 0;
  color: #ff3e32;
  font: 400 2.05rem/1 "Alfa Slab One", serif;
  text-shadow: 0 0 .7rem rgba(255,58,38,.7);
}

.hero-jackpot small {
  color: rgba(255,255,255,.64);
  font-size: .5rem;
}

.casino-hero-credit {
  position: absolute;
  right: 1.8rem;
  bottom: 1.4rem;
  max-width: 43%;
  margin: 0;
  color: rgba(255,255,255,.55);
  font: 400 .58rem/1.4 "Public Sans", sans-serif;
  text-align: right;
}

.floor-rush {
  position: relative;
  min-height: min(900px, 80vh);
  display: grid;
  align-items: end;
  overflow: hidden;
  color: #fff;
  background: var(--casino-night);
  isolation: isolate;
}

.floor-rush > img {
  position: absolute;
  inset: 0;
  z-index: -3;
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* 32%: the band is ~2.8:1 against a 16:9 frame, so cover eats ~37% of the
     height. Holding high keeps the machine toppers and their posted pay tables
     (8000/6000/4000/2000) in shot, plus the ceiling lights the copy names; the
     carpet is what gets given up. 48% was the value for the retired panorama. */
  object-position: center 32%;
  filter: saturate(1.24) contrast(1.07) brightness(.9);
  transform: scale(1.012);
}

.floor-rush-shade {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(7,7,12,.87) 0%, rgba(7,7,12,.28) 54%, rgba(7,7,12,.12) 76%),
    linear-gradient(0deg, rgba(7,7,12,.98) 0%, transparent 62%);
}

.floor-rush::after {
  position: absolute;
  inset: 1rem;
  z-index: 2;
  content: "";
  border: 1px solid rgba(255,255,255,.25);
  pointer-events: none;
}

.floor-rush-copy {
  width: min(74rem, calc(100% - 3rem));
  margin: 0 auto;
  padding: 7rem 0 6rem;
}

.floor-rush .eyebrow {
  color: var(--casino-aqua);
}

.floor-rush h2 {
  max-width: 50rem;
  margin: 0;
  color: var(--casino-paper);
  font: 400 clamp(4.4rem, 8.8vw, 9.2rem)/.84 "Alfa Slab One", serif;
  letter-spacing: -.05em;
  text-shadow: .07em .07em 0 rgba(119,23,43,.72);
}

.floor-rush-copy > p:not(.eyebrow) {
  max-width: 36rem;
  margin: 1.5rem 0 0;
  color: rgba(255,255,255,.84);
  font-size: clamp(1rem, 1.4vw, 1.18rem);
  line-height: 1.65;
}

.floor-rush-counts {
  position: absolute;
  right: clamp(2.2rem, 6vw, 7rem);
  bottom: 5.7rem;
  display: flex;
  gap: 1px;
  background: rgba(255,255,255,.22);
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 1.4rem 3rem rgba(0,0,0,.32);
}

.floor-rush-counts p {
  min-width: 8.8rem;
  margin: 0;
  padding: 1.05rem 1.2rem;
  background: rgba(7,12,20,.82);
}

.floor-rush-counts strong,
.floor-rush-counts span {
  display: block;
}

.floor-rush-counts strong {
  color: var(--casino-gold);
  font: 400 clamp(1.55rem, 2.6vw, 2.55rem)/1 "Alfa Slab One", serif;
}

.floor-rush-counts span {
  margin-top: .35rem;
  color: rgba(255,255,255,.63);
  font: 700 .53rem/1.3 "Public Sans", sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.floor-rush-credit {
  position: absolute;
  right: 1.8rem;
  bottom: 1.4rem;
  max-width: 46%;
  margin: 0;
  color: rgba(255,255,255,.52);
  font: 400 .56rem/1.4 "Public Sans", sans-serif;
  text-align: right;
}

.house-rules {
  padding: clamp(4.25rem, 6vw, 6.5rem) 0;
  color: #fff9e8;
  background:
    linear-gradient(rgba(255,255,255,.025) 50%, transparent 50%) 0 0 / 100% 4px,
    radial-gradient(circle at 85% 20%, rgba(244,189,61,.14), transparent 30rem),
    var(--casino-felt);
}

.rules-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(18rem, .8fr);
  gap: clamp(2rem, 7vw, 7rem);
  align-items: end;
}

.rules-heading h2,
.pit-heading h2,
.book-copy h2,
.casino-comps-copy h2,
.fortune-copy h2,
.closer-copy h2 {
  margin: 0;
  font: 400 clamp(3rem, 5.8vw, 5.4rem)/.94 "Alfa Slab One", serif;
  letter-spacing: -.035em;
}

.rules-heading .eyebrow,
.house-rules .flourish {
  color: var(--casino-gold);
}

.rules-heading h2 {
  color: var(--casino-paper);
}

.rules-heading > p {
  margin: 0;
  color: rgba(255,255,255,.78);
  font-size: 1rem;
  line-height: 1.7;
}

.rules-photo {
  margin: clamp(2.5rem, 4vw, 4rem) 0 0;
  overflow: hidden;
  background: rgba(5,45,35,.78);
  border: 1px solid rgba(255,255,255,.24);
}

.rules-photo > a {
  position: relative;
  display: block;
  aspect-ratio: 11 / 5;
  overflow: hidden;
  background: #072e25;
}

.rules-photo > a::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background:
    linear-gradient(to bottom, transparent 62%, rgba(3,24,19,.46)),
    linear-gradient(90deg, rgba(4,34,27,.16), transparent 20%, transparent 80%, rgba(4,34,27,.16));
  box-shadow: inset 0 0 0 1px rgba(255,249,232,.08);
}

.rules-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 58%;
  filter: saturate(.9) contrast(1.04);
}

.rules-photo figcaption {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .8rem 1.4rem;
  align-items: baseline;
  padding: 1rem 1.25rem 1.05rem;
  color: rgba(255,255,255,.66);
  font: 500 .68rem/1.55 "Public Sans", sans-serif;
  letter-spacing: .025em;
}

.rules-photo figcaption b {
  color: var(--casino-paper);
  font: 700 .72rem/1.4 "Public Sans", sans-serif;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.odds-board {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: 1px;
  overflow: hidden;
  background: rgba(255,255,255,.24);
  border: 1px solid rgba(255,255,255,.24);
}

.odds-board article {
  display: flex;
  flex-direction: column;
  min-height: 15.5rem;
  padding: clamp(1.6rem, 3vw, 3rem);
  background: rgba(5,45,35,.78);
}

.odds-board span {
  color: var(--casino-aqua);
  font: 700 .66rem/1.2 "Public Sans", sans-serif;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.odds-board strong {
  display: block;
  margin: 1.2rem 0;
  color: var(--casino-gold);
  font: 400 clamp(4rem, 7vw, 7rem)/.85 "Alfa Slab One", serif;
}

.odds-board article:nth-child(3) strong {
  font-size: clamp(3.7rem, 5vw, 5.3rem);
}

.odds-board p {
  max-width: 16rem;
  /* the third value is set smaller so "98.6%" fits; without this its paragraph
     rides 23px above the other two */
  margin: auto 0 0;
  color: rgba(255,255,255,.8);
}

.rules-ribbon {
  margin: 2rem auto 0; /* the .inner measure caps this box - auto keeps the centered text centered */
  color: rgba(255,255,255,.65);
  font: 700 .66rem/1.7 "Public Sans", sans-serif;
  letter-spacing: .11em;
  text-align: center;
  text-transform: uppercase;
}

.carpet-story {
  position: relative;
  min-height: min(760px, 72vh);
  display: grid;
  align-items: end;
  overflow: hidden;
  color: #fff;
  background: var(--casino-night);
  isolation: isolate;
}

.carpet-story > img {
  position: absolute;
  inset: 0;
  z-index: -3;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 44%;
}

.carpet-shade {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(7,7,12,.9) 0%, rgba(7,7,12,.42) 50%, transparent 80%),
    linear-gradient(0deg, rgba(7,7,12,.85), transparent 58%);
}

.carpet-copy {
  width: min(74rem, calc(100% - 3rem));
  margin: 0 auto;
  padding: 7rem 0 6rem;
}

.carpet-copy h2 {
  max-width: 52rem;
  margin: 0 0 .22em;   /* descender clearance over the paragraph below */
  color: var(--casino-paper);
  font: 400 clamp(4rem, 8vw, 8rem)/.88 "Alfa Slab One", serif;
  letter-spacing: -.045em;
}

.carpet-copy .eyebrow,
.carpet-copy .flourish {
  color: var(--casino-orange);
}

.carpet-copy > p:not(.eyebrow):not(.photo-stamp) {
  max-width: 34rem;
  color: rgba(255,255,255,.84);
  font-size: 1.1rem;
}

.photo-stamp {
  margin-top: 2rem;
  color: var(--casino-aqua);
  font: 700 .62rem/1.3 "Public Sans", sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.pit-story {
  padding: clamp(4.5rem, 7vw, 7rem) 0;
  background:
    radial-gradient(circle at 8% 7%, rgba(239,81,38,.12), transparent 25rem),
    var(--casino-cream);
}

.pit-story .inner,
.machine-story .inner {
  max-width: 92rem;
  width: min(92rem, calc(100% - 3rem));
}

.pit-heading {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(22rem, .55fr);
  column-gap: clamp(3rem, 7vw, 8rem);
  align-items: end;
}

.pit-heading .eyebrow {
  grid-column: 1 / -1;
  color: var(--casino-red);
}

.pit-heading h2 {
  color: var(--casino-red);
  font-size: clamp(2.9rem, 4.8vw, 4.8rem);
}

.pit-heading > p:last-child {
  margin: 0 0 .3rem;
  color: #5c4740;
  font-size: 1.05rem;
  line-height: 1.7;
}

.pit-gallery {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(22rem, .72fr);
  gap: clamp(1.5rem, 3vw, 3rem);
  align-items: start;
  margin-top: clamp(2.5rem, 4vw, 4rem);
}

.pit-gallery figure {
  position: relative;
  margin: 0;
}

.pit-gallery a {
  display: block;
  overflow: hidden;
}

.pit-live a { aspect-ratio: 16 / 10; }
.pit-sold a { aspect-ratio: 4 / 3; }

.pit-gallery img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}

.pit-live img { object-position: center; }
.pit-sold img { object-position: 51% center; }
.pit-gallery a:hover img { transform: scale(1.025); }

.pit-gallery figcaption {
  padding: 1rem 0 0;
  color: #58443e;
}

.pit-gallery figcaption b,
.pit-gallery figcaption span {
  display: block;
}

.pit-gallery figcaption b {
  color: var(--casino-red);
  font: 400 1.2rem/1.2 "Alfa Slab One", serif;
}

.pit-gallery figcaption span {
  margin-top: .35rem;
  font-size: .78rem;
}

.section-source {
  max-width: 60rem;
  margin: 1.8rem 0 0;
  color: #7d6860;
  font-size: .62rem;
  line-height: 1.6;
}

.machine-story {
  padding: clamp(4.75rem, 7vw, 7.5rem) 0 0;
  overflow: hidden;
  color: var(--casino-paper);
  background:
    radial-gradient(circle at 14% 20%, rgba(131,214,211,.13), transparent 28rem),
    radial-gradient(circle at 88% 76%, rgba(244,189,61,.12), transparent 30rem),
    var(--casino-ink);
}

.machine-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(22rem, .62fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: end;
}

.machine-story .inner {
  max-width: none;
  width: 100%;
}

.machine-heading {
  width: min(92rem, calc(100% - 3rem));
  margin-inline: auto;
}

.machine-heading .eyebrow {
  color: var(--casino-aqua);
}

.machine-heading h2 {
  max-width: 48rem;
  margin: 0;
  color: var(--casino-paper);
  font: 400 clamp(2.9rem, 4.8vw, 4.8rem)/.94 "Alfa Slab One", serif;
  letter-spacing: -.035em;
}

.machine-heading > p {
  margin: 0 0 .35rem;
  color: rgba(255,255,255,.72);
  font-size: 1.02rem;
  line-height: 1.75;
}

.machine-gallery {
  position: relative;
  min-height: 42rem;
  height: min(840px, 72vh);
  width: 100%;
  margin-top: clamp(2.5rem, 4vw, 4rem);
}

.machine-gallery figure {
  margin: 0;
}

.machine-gallery a {
  display: block;
  overflow: hidden;
  border: .3rem solid rgba(255,255,255,.2);
  box-shadow: 0 1.7rem 4rem rgba(0,0,0,.28);
}

.machine-pair a {
  aspect-ratio: 1;
}

.machine-bar a {
  height: 100%;
  border: 0;
}

.machine-gallery img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}

.machine-gallery a:hover img {
  transform: scale(1.025);
}

/* ...but not the full-bleed one. A whole-band zoom under the cursor reads as a
   page glitch, not an affordance; the hover lift belongs to inline figures like
   the pit gallery above. Keep this after the rule it overrides. */
.machine-gallery .machine-bar a:hover img {
  transform: none;
}

.machine-bar {
  position: absolute;
  inset: 0;
}

.machine-bar::after {
  position: absolute;
  inset: 0;
  z-index: 1;
  content: "";
  background:
    linear-gradient(90deg, rgba(23,15,28,.74), transparent 52%),
    linear-gradient(0deg, rgba(23,15,28,.9), transparent 55%);
  pointer-events: none;
}

/* The bar figure now carries the 16:9 widened Saguar frame. On a wide screen the
   band is far wider than 16:9, so cover crops the height - hold the crop high
   (8%) to keep the whole machine toppers and the ceiling light runs, and give up
   the carpet. The old 4:3 guest-floor photo wanted the opposite bias, 70%. */
.machine-bar img {
  object-position: center 8%;
}

.machine-pair {
  position: absolute;
  bottom: clamp(2rem, 5vw, 5rem);
  left: clamp(2rem, 8vw, 9rem);
  z-index: 3;
  width: clamp(20rem, 25vw, 31rem);
  padding: .65rem;
  color: #4f3b34;
  background: var(--casino-cream);
  box-shadow: 0 2rem 5rem rgba(0,0,0,.42);
  transform: rotate(-1deg);
}

.machine-pair a {
  border: 0;
  box-shadow: none;
}

.machine-gallery figcaption {
  padding-top: 1rem;
  color: rgba(255,255,255,.68);
}

.machine-gallery figcaption b,
.machine-gallery figcaption span {
  display: block;
}

.machine-gallery figcaption b {
  color: var(--casino-gold);
  font: 400 1.2rem/1.2 "Alfa Slab One", serif;
}

.machine-gallery figcaption span {
  max-width: 34rem;
  margin-top: .35rem;
  font-size: .78rem;
  line-height: 1.55;
}

.machine-pair figcaption {
  padding: .85rem .55rem .45rem;
  color: #6f5951;
}

.machine-pair figcaption b {
  color: var(--casino-red);
}

.machine-bar figcaption {
  position: absolute;
  right: clamp(2rem, 6vw, 7rem);
  bottom: clamp(2rem, 4vw, 4.5rem);
  z-index: 2;
  max-width: 27rem;
  padding: 1.2rem 1.4rem;
  color: rgba(255,255,255,.76);
  background: rgba(9,12,20,.78);
  border-left: .22rem solid var(--casino-gold);
  backdrop-filter: blur(.35rem);
}

.machine-bar figcaption b {
  color: var(--casino-gold);
}

.handpay-story {
  padding: clamp(5rem, 9vw, 9rem) 0;
  color: #fff;
  background:
    radial-gradient(circle at 75% 30%, rgba(255,255,255,.18), transparent 22rem),
    #0878b8;
}

.handpay-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(18rem, .75fr);
  gap: clamp(3rem, 8vw, 9rem);
  align-items: center;
}

.handpay-story figure {
  margin: 0;
  transform: rotate(-1.5deg);
}

.handpay-story img {
  display: block;
  width: 100%;
  height: auto;
  border: .7rem solid #fff7dc;
  box-shadow: 0 2rem 5rem rgba(0,20,45,.35);
}

.handpay-story .eyebrow {
  color: #fff4a0;
}

.handpay-story h2 {
  margin: 0 0 .34em;   /* the "q" of required was landing on $4.15 */
  color: var(--casino-paper);
  font: 400 clamp(3.3rem, 6vw, 6rem)/.92 "Alfa Slab One", serif;
}

.handpay-story .flourish {
  color: #ffef48;
}

.handpay-amount {
  margin: .8rem 0 .3em;   /* .3em clears the $ descender; was 1.1rem, too small at 9rem */
  color: #fff34f;
  font: 400 clamp(5rem, 10vw, 9rem)/.85 "Alfa Slab One", serif;
  text-shadow: .06em .06em 0 #0c466c;
}

.handpay-grid > div > p:not(.eyebrow):not(.handpay-amount):not(.handpay-date) {
  max-width: 30rem;
  font-size: 1.15rem;
  line-height: 1.65;
}

.handpay-date {
  margin-top: 1.8rem;
  color: rgba(255,255,255,.67);
  font: 700 .62rem/1.5 "Public Sans", sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.book-story {
  padding: clamp(6rem, 11vw, 11rem) 0;
  color: #fff;
  background:
    linear-gradient(rgba(255,255,255,.025) 50%, transparent 50%) 0 0 / 100% 3px,
    var(--casino-night);
}

.book-grid {
  display: grid;
  grid-template-columns: minmax(22rem, .9fr) minmax(0, 1.1fr);
  gap: clamp(3rem, 9vw, 10rem);
  align-items: center;
}

.book-stat {
  position: relative;
  color: var(--casino-gold);
  border-bottom: .35rem solid var(--casino-orange);
  line-height: .75;
}

.book-stat span {
  position: absolute;
  top: 1.2rem;
  left: 0;
  font: 400 clamp(3rem, 6vw, 6rem)/1 "Alfa Slab One", serif;
}

.book-stat strong {
  display: block;
  padding-left: clamp(3rem, 6vw, 6rem);
  font: 400 clamp(9rem, 19vw, 18rem)/.75 "Alfa Slab One", serif;
  letter-spacing: -.025em;
}

.book-stat small {
  display: block;
  padding: 0 0 1.2rem .7rem;
  color: var(--casino-aqua);
  font: 700 .76rem/1 "Public Sans", sans-serif;
  letter-spacing: .22em;
  text-align: right;
  text-transform: uppercase;
}

.book-copy .eyebrow {
  color: var(--casino-orange);
}

.book-copy h2 {
  color: var(--casino-paper);
  /* 1.45rem left the "g" of Mirage exactly touching the paragraph box; em-based
     so it holds as the clamp() grows */
  margin-bottom: max(1.45rem, .32em);
}

.book-copy > p {
  max-width: 37rem;
  color: rgba(255,255,255,.8);
  font-size: 1.02rem;
  line-height: 1.75;
}

.book-proof {
  display: grid;
  grid-template-columns: 8rem 1fr;
  gap: 1rem;
  align-items: center;
  max-width: 28rem;
  margin: 2rem 0 0;
  padding: .65rem;
  color: #392b27;
  background: var(--casino-cream);
  transform: rotate(.7deg);
}

.book-proof img {
  display: block;
  width: 100%;
  height: 6.4rem;
  object-fit: cover;
}

.book-proof figcaption {
  font-size: .73rem;
  line-height: 1.5;
}

.comps-story {
  position: relative;
  overflow: hidden;
  padding: clamp(3.5rem, 5vw, 4.75rem) 0;
  color: var(--casino-paper);
  background:
    radial-gradient(circle at 78% 36%, rgba(244,189,61,.19), transparent 31rem),
    radial-gradient(circle at 4% 95%, rgba(131,214,211,.11), transparent 27rem),
    linear-gradient(118deg, #3a111d 0%, #64182a 57%, #2b111b 100%);
}

.comps-story::before {
  position: absolute;
  inset: 0;
  content: "";
  opacity: .13;
  background:
    repeating-linear-gradient(135deg, transparent 0 3rem, rgba(255,255,255,.14) 3rem 3.08rem);
  pointer-events: none;
}

.comps-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(22rem, .74fr) minmax(31rem, 1.26fr);
  gap: clamp(2.5rem, 5vw, 4.5rem);
  align-items: center;
  max-width: 76rem;
  width: min(76rem, calc(100% - 3rem));
}

.casino-comps-copy {
  max-width: 29rem;
}

.casino-comps-copy .eyebrow {
  color: #83d6d3;
}

.casino-comps-copy h2 {
  margin-bottom: 1.1rem;
  color: var(--casino-paper);
  font-size: clamp(2.8rem, 4vw, 4.15rem);
  line-height: .96;
  text-shadow: .08em .08em 0 rgba(17,8,13,.32);
}

.casino-comps-copy > p {
  max-width: 29rem;
  color: rgba(255,255,255,.75);
  font-size: .98rem;
  line-height: 1.65;
}

.casino-comps-copy blockquote {
  max-width: 28rem;
  margin: 1.8rem 0 0;
  padding: 1rem 0 1rem 1.25rem;
  color: #9ae2df;
  border-left: .28rem solid var(--casino-gold);
  font: 400 1.18rem/1.4 "Alfa Slab One", serif;
}

.casino-comps-copy cite {
  display: block;
  margin-top: .8rem;
  color: rgba(255,255,255,.56);
  font: 700 .62rem/1.5 "Public Sans", sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.comps-story figure {
  margin: 0;
}

.comps-art {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
}

.comps-ad {
  width: min(100%, 31.5rem);
  transform: rotate(.35deg);
}

.comps-ad img {
  display: block;
  width: 100%;
  height: auto;
  border: .55rem solid #efe3c9;
  box-shadow: 0 2rem 4rem rgba(12,4,8,.38);
}

.player-card {
  width: min(78%, 18rem);
  margin: 1.65rem 0 1.8rem !important;
  transform: rotate(-1.5deg);
}

.player-card img {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 1.4rem 1.3rem rgba(12,4,8,.42));
}

.player-card figcaption {
  margin-top: .65rem;
  color: var(--casino-gold);
  font: 700 .6rem/1.4 "Public Sans", sans-serif;
  letter-spacing: .14em;
  text-align: center;
  text-transform: uppercase;
}

.fortune-story {
  padding: clamp(6rem, 10vw, 10rem) 0;
  color: #fff;
  background:
    radial-gradient(circle at 74% 42%, rgba(244,189,61,.18), transparent 30rem),
    #60172a;
}

.fortune-grid {
  display: grid;
  grid-template-columns: minmax(20rem, .75fr) minmax(0, 1fr);
  gap: clamp(3rem, 9vw, 10rem);
  align-items: center;
}

.fortune-story figure {
  margin: 0;
}

.pharaoh {
  position: relative;
  max-width: 42rem;
}

.pharaoh::before {
  position: absolute;
  inset: -1rem;
  content: "";
  border: 1px solid rgba(244,189,61,.6);
}

.pharaoh img {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
}

.fortune-copy .eyebrow {
  color: var(--casino-gold);
}

.fortune-copy h2 {
  color: var(--casino-paper);
  margin-bottom: 1.25rem;
}

.fortune-copy > p {
  max-width: 34rem;
  color: rgba(255,255,255,.8);
  font-size: 1.04rem;
  line-height: 1.75;
}

.zoltar-booth {
  display: grid;
  grid-template-columns: minmax(20rem, .8fr) minmax(22rem, 1fr);
  gap: clamp(2.5rem, 7vw, 7rem);
  align-items: center;
  margin-top: clamp(6rem, 11vw, 10rem);
  padding: clamp(2rem, 5vw, 5rem);
  overflow: hidden;
  background:
    linear-gradient(rgba(255,255,255,.022) 50%, transparent 50%) 0 0 / 100% 4px,
    radial-gradient(circle at 25% 46%, rgba(244,189,61,.16), transparent 22rem),
    #0b0c12;
  border: 1px solid rgba(244,189,61,.52);
  box-shadow: 0 3rem 7rem rgba(24,0,8,.38);
}

.zoltar-stage {
  position: relative;
  min-height: 42rem;
}

.zoltar-machine {
  position: relative;
  z-index: 2;
  width: min(72%, 24rem);
}

.zoltar-machine::after {
  position: absolute;
  top: 35.5%;
  left: 50%;
  width: 5rem;
  height: 5rem;
  content: "";
  opacity: 0;
  background: radial-gradient(circle, rgba(255,248,144,.92), rgba(244,189,61,.34) 44%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: opacity .35s ease;
  pointer-events: none;
}

.zoltar-machine img {
  display: block;
  width: 100%;
  height: 38rem;
  object-fit: cover;
  object-position: center;
  border: .55rem solid var(--casino-paper);
}

.zoltar-machine figcaption,
.zoltar-cards figcaption {
  margin-top: .6rem;
  color: rgba(255,255,255,.62);
  font-size: .63rem;
  line-height: 1.4;
  text-align: center;
}

.zoltar-cards {
  position: absolute;
  right: 0;
  bottom: 1.5rem;
  z-index: 3;
  width: min(52%, 19rem);
  transform: rotate(2.5deg);
}

.zoltar-cards img {
  display: block;
  width: 100%;
  height: auto;
  border: .45rem solid var(--casino-paper);
  box-shadow: 0 1.5rem 3rem rgba(0,0,0,.5);
}

.fortune-console .eyebrow {
  color: var(--casino-gold);
}

.fortune-console h3 {
  margin: 0 0 1.25rem;
  color: var(--casino-paper);
  font: 400 clamp(3.5rem, 7vw, 6.8rem)/.88 "Alfa Slab One", serif;
  letter-spacing: -.04em;
}

.fortune-intro {
  max-width: 36rem;
  margin: 0 0 1.8rem;
  color: rgba(255,255,255,.73);
  font-size: .96rem;
  line-height: 1.7;
}

.zoltar-button {
  position: relative;
  min-width: 14rem;
  padding: 1rem 1.4rem;
  color: #21120d;
  background: var(--casino-gold);
  border: 0;
  box-shadow:
    inset 0 -.28rem 0 rgba(94,38,15,.28),
    0 .7rem 0 #7b301d;
  cursor: pointer;
  font: 700 .78rem/1 "Public Sans", sans-serif;
  letter-spacing: .13em;
  text-transform: uppercase;
  transition: transform .16s ease, filter .16s ease;
}

.zoltar-button:hover {
  filter: brightness(1.08);
  transform: translateY(-.12rem);
}

.zoltar-button:focus-visible {
  outline: .2rem solid var(--casino-aqua);
  outline-offset: .35rem;
}

.zoltar-button:disabled {
  cursor: wait;
  filter: saturate(.75);
}

.zoltar-button-working {
  display: none;
}

.is-speaking .zoltar-button-idle {
  display: none;
}

.is-speaking .zoltar-button-working {
  display: inline;
}

.is-speaking .zoltar-machine::after {
  opacity: 1;
  animation: crystal-pulse .7s ease-in-out infinite alternate;
}

.fortune-slot {
  position: relative;
  z-index: 3;
  width: min(100%, 32rem);
  height: 1rem;
  margin: 2.5rem 0 -.35rem;
  background: #030409;
  border: .25rem solid #30242b;
  box-shadow: inset 0 .2rem .35rem rgba(0,0,0,.85);
}

.fortune-ticket {
  position: relative;
  width: min(100%, 31rem);
  min-height: 22rem;
  margin: 0;
  padding: 2.4rem clamp(1.4rem, 4vw, 3rem) 2rem;
  overflow: hidden;
  color: #39261b;
  background:
    linear-gradient(rgba(92,60,28,.055) 1px, transparent 1px) 0 0 / 100% 1.7rem,
    #f3df83;
  border: .18rem solid #b46c27;
  box-shadow: 0 2rem 4rem rgba(0,0,0,.35);
  transform: translateY(-.25rem);
}

.fortune-ticket::before,
.fortune-ticket::after {
  position: absolute;
  top: 1rem;
  width: 2rem;
  height: 2rem;
  content: "★";
  color: #9e3e2e;
  font-size: 1.2rem;
  text-align: center;
}

.fortune-ticket::before { left: 1rem; }
.fortune-ticket::after { right: 1rem; }

.ticket-kicker,
.ticket-label,
.ticket-stamp {
  margin: 0;
  color: #9e3e2e;
  font: 700 .66rem/1.3 "Public Sans", sans-serif;
  letter-spacing: .16em;
  text-align: center;
  text-transform: uppercase;
}

.ticket-message {
  margin: 1.4rem 0 1rem;
  font: 400 clamp(1.55rem, 3vw, 2.2rem)/1.25 Georgia, serif;
  text-align: center;
}

.ticket-note {
  margin: 0 auto 1.7rem;
  max-width: 24rem;
  color: #71563e;
  font-size: .68rem;
  line-height: 1.5;
  text-align: center;
}

.ticket-numbers {
  margin: .55rem 0 1.6rem;
  color: #3e2417;
  font: 700 clamp(1.05rem, 2vw, 1.35rem)/1.4 "Public Sans", sans-serif;
  letter-spacing: .08em;
  text-align: center;
}

.ticket-stamp {
  padding-top: 1rem;
  border-top: 1px solid rgba(116,62,28,.38);
}

.is-printing .fortune-ticket {
  animation: print-fortune .85s cubic-bezier(.2,.75,.2,1);
}

.fortune-research {
  max-width: 31rem;
  margin: 1.2rem 0 0;
  color: rgba(255,255,255,.48);
  font-size: .63rem;
  line-height: 1.55;
}

.casino-closer {
  position: relative;
  min-height: min(840px, 84vh);
  display: grid;
  align-items: end;
  overflow: hidden;
  color: #fff;
  background: var(--casino-night);
  isolation: isolate;
}

.casino-closer > img {
  position: absolute;
  inset: 0;
  z-index: -3;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.closer-shade {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(5,5,9,.88), rgba(5,5,9,.42) 56%, transparent),
    linear-gradient(0deg, rgba(5,5,9,.92), transparent 55%);
}

.closer-copy {
  width: min(74rem, calc(100% - 3rem));
  margin: 0 auto;
  padding: 7rem 0 6rem;
}

.closer-copy .eyebrow,
.closer-copy .flourish {
  color: var(--casino-gold);
}

.closer-copy h2 {
  max-width: 46rem;
  /* descender clearance: line-height .94 puts the "y" of "twenty" ~.25em below
     the box, and the paragraph under it has no top margin */
  margin-bottom: .38em;
  color: var(--casino-paper);
  font-size: clamp(4rem, 8vw, 8rem);
}

.closer-copy > p:not(.eyebrow):not(.closer-line) {
  max-width: 38rem;
  color: rgba(255,255,255,.84);
  font-size: 1.1rem;
  line-height: 1.7;
}

.closer-line {
  margin-top: 2rem;
  color: var(--casino-aqua);
  font: 700 .7rem/1.4 "Public Sans", sans-serif;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.casino-sources {
  color: #d9d2c5;
  background: var(--casino-night);
  border-top: 1px solid rgba(255,255,255,.12);
}

.page-casino .footer {
  border-top: 0;
  border-image: none;
}

.casino-sources summary {
  width: min(74rem, calc(100% - 3rem));
  margin: 0 auto;
  padding: 1.4rem 0;
  color: var(--casino-gold);
  cursor: pointer;
  font: 700 .66rem/1.4 "Public Sans", sans-serif;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.casino-sources .inner {
  padding-bottom: 2rem;
}

.casino-sources p {
  max-width: 65rem;
  color: rgba(255,255,255,.62);
  font-size: .7rem;
  line-height: 1.7;
}

@keyframes casino-breathe {
  from { transform: scale(1.015); }
  to { transform: scale(1.07); }
}

@keyframes crystal-pulse {
  from { transform: translate(-50%, -50%) scale(.86); }
  to { transform: translate(-50%, -50%) scale(1.12); }
}

@keyframes print-fortune {
  0% {
    opacity: .35;
    transform: translateY(-6rem);
  }
  100% {
    opacity: 1;
    transform: translateY(-.25rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .casino-hero-image {
    animation: none;
  }

  .casino-hero-video {
    display: none;
  }

  .pit-gallery img,
  .machine-gallery img {
    transition: none;
  }

  .is-speaking .zoltar-machine::after,
  .is-printing .fortune-ticket {
    animation: none;
  }
}

@media (max-width: 980px) {
  .floor-rush-copy {
    padding-bottom: 13rem;
  }

  .floor-rush-counts {
    right: auto;
    bottom: 4.5rem;
    left: 2rem;
  }

  .hero-jackpot {
    right: 2rem;
    bottom: 4rem;
    width: 13rem;
  }

  .casino-hero-copy {
    padding-bottom: 13rem;
  }

  .rules-heading,
  .pit-heading,
  .machine-heading,
  .handpay-grid,
  .book-grid,
  .fortune-grid,
  .zoltar-booth {
    grid-template-columns: 1fr;
  }

  .odds-board {
    grid-template-columns: 1fr;
  }

  .odds-board article {
    min-height: 0;
  }

  .rules-photo > a {
    aspect-ratio: 16 / 9;
  }

  .pit-gallery {
    grid-template-columns: 1fr 1fr;
  }

  .machine-gallery {
    grid-template-columns: minmax(16rem, .7fr) minmax(0, 1fr);
  }

  .book-stat {
    max-width: 40rem;
  }

  .book-copy {
    max-width: 45rem;
  }

  .comps-grid {
    grid-template-columns: minmax(16rem, .7fr) minmax(20rem, 1fr);
    gap: 3rem;
  }

  .comps-art {
    min-height: 0;
  }

  .fortune-copy {
    max-width: 42rem;
  }

  .zoltar-stage {
    min-height: 39rem;
  }
}

@media (max-width: 680px) {

  .floor-rush {
    min-height: 46rem;
  }

  .floor-rush::after {
    inset: .55rem;
  }

  .floor-rush > img {
    object-position: 54% center;
  }

  .floor-rush-copy {
    width: calc(100% - 2rem);
    padding: 7.5rem 0 12rem;
  }

  .floor-rush h2 {
    font-size: clamp(3.7rem, 17vw, 5.4rem);
  }

  .floor-rush-copy > p:not(.eyebrow) {
    max-width: 20rem;
    font-size: .95rem;
  }

  .floor-rush-counts {
    right: 1.5rem;
    bottom: 3.4rem;
    left: 1.5rem;
  }

  .floor-rush-counts p {
    min-width: 0;
    flex: 1 1 0;
    padding: .85rem .65rem;
  }

  .floor-rush-counts strong {
    font-size: 1.35rem;
  }

  .floor-rush-counts span {
    font-size: .43rem;
  }

  .floor-rush-credit {
    display: none;
  }

  .rules-heading,
  .pit-heading,
  .machine-heading,
  .handpay-grid > div,
  .book-copy,
  .casino-comps-copy,
  .fortune-copy,
  .fortune-console {
    padding-right: 1rem;
    padding-left: 1rem;
  }

  .casino-hero {
    min-height: 45rem;
  }

  .casino-hero::after {
    inset: .55rem;
  }

  .casino-hero-image,
  .casino-hero-video {
    object-position: 42% center;
  }

  .casino-hero-copy {
    width: calc(100% - 2rem);
    padding: 5rem 0 14rem;
  }

  .casino-hero h1 {
    font-size: clamp(3.8rem, 17vw, 5.5rem);
  }

  .casino-hero-lede {
    font-size: .96rem;
  }

  .hero-jackpot {
    right: auto;
    left: 1.4rem;
    bottom: 4rem;
    width: 12.5rem;
  }

  .hero-jackpot strong {
    font-size: 1.55rem;
  }

  .casino-hero-credit {
    right: 1rem;
    bottom: 1rem;
    max-width: 48%;
  }

  .rules-heading,
  .pit-heading,
  .machine-heading {
    display: block;
  }

  .rules-heading > p,
  .pit-heading > p:last-child,
  .machine-heading > p {
    margin-top: 1.5rem;
  }

  .rules-photo {
    margin-right: 1rem;
    margin-left: 1rem;
  }

  .rules-photo > a {
    aspect-ratio: 4 / 3;
  }

  .rules-photo figcaption {
    display: block;
  }

  .rules-photo figcaption span {
    display: block;
    margin-top: .45rem;
  }

  .odds-board strong {
    font-size: 4.5rem;
  }

  .carpet-story {
    min-height: 40rem;
  }

  .carpet-story > img {
    object-position: 63% center;
  }

  .carpet-copy {
    width: calc(100% - 2rem);
    padding-bottom: 4rem;
  }

  .carpet-copy h2 {
    font-size: 4rem;
  }

  .pit-gallery,
  .machine-gallery,
  .comps-grid {
    grid-template-columns: 1fr;
  }

  .pit-story .inner,
  .machine-story .inner,
  .machine-heading {
    max-width: none;
    width: calc(100% - 2rem);
  }

  .machine-story {
    padding-bottom: 4rem;
  }

  .machine-gallery {
    display: grid;
    gap: 2.5rem;
    min-height: 0;
    height: auto;
    width: auto;
  }

  .machine-pair,
  .machine-bar {
    position: relative;
    inset: auto;
    width: auto;
    padding: 0;
    background: transparent;
    box-shadow: none;
    transform: none;
  }

  .machine-bar::after {
    display: none;
  }

  .machine-bar a {
    height: auto;
    aspect-ratio: 16 / 9;
    border: .3rem solid rgba(255,255,255,.2);
  }

  .machine-bar figcaption {
    position: static;
    max-width: none;
    padding: 1rem 0 0;
    background: transparent;
    border: 0;
    backdrop-filter: none;
  }

  .machine-pair figcaption {
    padding: 1rem 0 0;
    color: rgba(255,255,255,.68);
  }

  .machine-pair figcaption b {
    color: var(--casino-gold);
  }

  .pit-sold a {
    aspect-ratio: 4 / 3;
  }

  .pit-sold img {
    object-position: center 42%;
  }

  .handpay-story figure {
    transform: none;
  }

  .handpay-story img {
    border-width: .35rem;
  }

  .handpay-amount {
    font-size: 5.5rem;
  }

  .book-stat span {
    top: .5rem;
  }

  .book-stat strong {
    padding-left: 2.8rem;
    font-size: 8rem;
  }

  .book-stat small {
    padding-right: 1rem;
  }

  .book-proof {
    grid-template-columns: 6rem 1fr;
  }

  .casino-comps-copy {
    max-width: none;
  }

  .comps-story {
    padding-block: 3.5rem;
  }

  .comps-grid {
    width: calc(100% - 2rem);
  }

  .comps-art {
    min-height: 0;
  }

  .comps-ad {
    width: min(100%, 22rem);
  }

  .player-card {
    width: min(72%, 16rem);
    margin: 1.5rem 0 1.75rem !important;
    margin: 0 !important;
  }

  .fortune-grid {
    display: flex;
    flex-direction: column;
  }

  .pharaoh {
    order: 2;
    width: calc(100% - 2rem);
    margin-inline: auto !important;
  }

  .fortune-copy {
    order: 1;
  }

  .zoltar-booth {
    padding: 2rem 0 2.5rem;
  }

  .zoltar-stage {
    min-height: 33rem;
  }

  .zoltar-machine {
    width: min(72%, 19rem);
    margin-left: 1rem !important;
  }

  .zoltar-machine img {
    height: 30rem;
  }

  .zoltar-cards {
    right: 1rem;
    width: min(48%, 14rem);
  }

  .fortune-console h3 {
    font-size: 4.3rem;
  }

  .fortune-ticket {
    min-height: 23rem;
  }

  .casino-closer {
    min-height: 42rem;
  }

  .casino-closer > img {
    object-position: 55% center;
  }

  .closer-copy {
    width: calc(100% - 2rem);
    padding-bottom: 4rem;
  }

  .closer-copy h2 {
    font-size: 4.2rem;
  }
}


/* ==========================================================================
   THE SHOWROOM - inside the Lighthouse (adopted from concepts/the showroom,
   July 2026): Purple Reign's real October 2005 stage shot as the hero, the
   four-poster marquee at feature scale, the 1998 Trent Carlini commercial in
   a CRT (js/showroom.js), the final-show story, and the wedding gazebo as the
   daylight intermission. Scoped to .page-showroom (was .showroom-concept).
   ========================================================================== */
/* The Showroom concept
   An intimate late-night lounge: velvet, footlights, gilt frames and 105 seats.
   This file is intentionally isolated from the live site. */

.page-showroom {
  --show-ink: #f8ecdc;
  --show-muted: #cdbdb8;
  --show-night: #110b16;
  --show-aubergine: #211126;
  --show-wine: #5d142b;
  --show-red: #a9213d;
  --show-violet: #6836b5;
  --show-pink: #ef4a9a;
  --show-gold: #f4bd4d;
  --show-paper: #f2e3cb;
  background: var(--show-night);
  color: var(--show-ink);
}

.page-showroom main {
  background:
    radial-gradient(circle at 15% 9%, rgba(111, 44, 138, 0.12), transparent 27rem),
    var(--show-night);
}

.page-showroom .masthead {
  position: relative;
  z-index: 20;
}

.page-showroom .section {
  position: relative;
  padding-block: clamp(4.5rem, 9vw, 9rem);
}

.page-showroom .section h2 {
  color: var(--show-ink);
  font-size: clamp(2.5rem, 5.6vw, 5.5rem);
  line-height: 0.96;
  letter-spacing: -0.035em;
  text-wrap: balance;
}

.page-showroom .eyebrow {
  color: var(--show-gold);
}

.page-showroom .flourish {
  color: var(--show-pink);
}

.page-showroom a {
  color: inherit;
}

/* Concept trial: carry the same animated chase bulbs above the hero
   through every major section boundary. */
.page-showroom .showroom-divider {
  position: relative;
  z-index: 8;
  height: 2.1rem;
  border-color: var(--show-wine);
}

.showroom-hero {
  position: relative;
  min-height: clamp(650px, 82vh, 930px);
  display: grid;
  align-items: end;
  overflow: hidden;
  isolation: isolate;
  background: #09060c;
  border-bottom: 12px solid #3e0f22;
}

.showroom-hero::before,
.showroom-hero::after {
  content: "";
  position: absolute;
  z-index: 4;
  top: 0;
  bottom: 0;
  width: clamp(24px, 6vw, 120px);
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(0, 0, 0, 0.72), transparent 35%),
    repeating-linear-gradient(90deg, #310514 0 13%, #7d1730 13% 26%, #480819 26% 39%);
  filter: drop-shadow(0 0 18px rgba(0, 0, 0, 0.7));
}

.showroom-hero::before {
  left: 0;
  clip-path: polygon(0 0, 100% 0, 67% 44%, 100% 100%, 0 100%);
}

.showroom-hero::after {
  right: 0;
  transform: scaleX(-1);
  clip-path: polygon(0 0, 100% 0, 67% 44%, 100% 100%, 0 100%);
}

.showroom-hero-image,
.showroom-hero-shade,
.stage-beam {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.showroom-hero-image {
  z-index: -3;
  object-fit: cover;
  object-position: 51% 42%;
  transform: scale(1.055);
  filter: saturate(1.18) contrast(1.05);
  animation: stage-breathe 18s ease-in-out infinite alternate;
}

.showroom-hero-shade {
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(9, 5, 14, 0.87) 0%, rgba(9, 5, 14, 0.34) 43%, rgba(9, 5, 14, 0.08) 68%, rgba(9, 5, 14, 0.46) 100%),
    linear-gradient(0deg, #0e0912 0%, rgba(14, 9, 18, 0.84) 14%, transparent 62%, rgba(4, 2, 7, 0.35) 100%);
}

.stage-beam {
  z-index: -2;
  transform-origin: top center;
  pointer-events: none;
  opacity: 0.18;
  mix-blend-mode: screen;
}

.stage-beam-left {
  left: 9%;
  right: auto;
  width: 35%;
  background: linear-gradient(112deg, rgba(255, 255, 236, 0.74), transparent 44%);
  clip-path: polygon(13% 0, 23% 0, 100% 100%, 0 100%);
  animation: beam-sway 9s ease-in-out infinite alternate;
}

.stage-beam-right {
  left: auto;
  right: 2%;
  width: 30%;
  background: linear-gradient(248deg, rgba(235, 86, 255, 0.62), transparent 47%);
  clip-path: polygon(72% 0, 80% 0, 100% 100%, 4% 100%);
  animation: beam-sway 11s ease-in-out -3s infinite alternate-reverse;
}

.showroom-hero-copy {
  position: relative;
  z-index: 6;
  width: min(1180px, calc(100% - 2 * var(--gutter)));
  margin: 0 auto;
  padding: 7rem 15rem 5.6rem 0;
}

.stage-kicker,
.show-time,
.running-label,
.curtain-last {
  font-family: var(--marquee);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.16em;
}

.stage-kicker {
  color: var(--show-gold);
  font-size: clamp(0.75rem, 1.2vw, 1rem);
  margin: 0 0 0.65rem;
  text-shadow: 0 2px 10px #000;
}

.showroom-hero h1 {
  max-width: 760px;
  margin: 0;
  color: #fff4e5;
  font-family: var(--display);
  font-size: clamp(4rem, 10vw, 9.5rem);
  line-height: 0.78;
  letter-spacing: -0.055em;
  text-shadow: 0 0.08em 0 #5a1026, 0 0.12em 0.32em #000;
}

.showroom-hero h1 span {
  display: block;
  margin: 0 0 0.18em 0.12em;
  color: var(--show-pink);
  font-family: var(--script);
  font-size: 0.38em;
  font-weight: 400;
  line-height: 0.7;
  letter-spacing: 0.02em;
  transform: rotate(-4deg);
  transform-origin: left bottom;
}

.showroom-hero-lede {
  max-width: 730px;
  margin: 1.8rem 0 0;
  color: #f3e8df;
  font-size: clamp(1.08rem, 1.7vw, 1.4rem);
  line-height: 1.6;
  text-shadow: 0 2px 16px #000;
}

.seat-medallion {
  position: absolute;
  right: 0;
  bottom: 5.6rem;
  width: 11.5rem;
  aspect-ratio: 1;
  display: grid;
  place-content: center;
  text-align: center;
  transform: rotate(4deg);
  border: 2px solid var(--show-gold);
  border-radius: 50%;
  color: var(--show-gold);
  background: rgba(23, 8, 27, 0.78);
  box-shadow:
    inset 0 0 0 7px rgba(244, 189, 77, 0.1),
    0 0 0 6px rgba(30, 8, 23, 0.7),
    0 0 36px rgba(244, 189, 77, 0.2);
  backdrop-filter: blur(5px);
}

.seat-medallion strong {
  font-family: var(--display);
  font-size: 3.7rem;
  line-height: 0.8;
}

.seat-medallion span,
.seat-medallion small {
  display: block;
  font-family: var(--marquee);
  text-transform: uppercase;
  letter-spacing: 0.15em;
}

.seat-medallion span {
  margin-top: 0.4rem;
  font-size: 0.8rem;
}

.seat-medallion small {
  max-width: 8rem;
  margin-top: 0.6rem;
  color: #f7eee0;
  font-size: 0.52rem;
  line-height: 1.35;
}

.showroom-hero-credit {
  position: absolute;
  z-index: 7;
  top: 0.65rem;
  right: 0.75rem;
  max-width: min(780px, 70vw);
  margin: 0;
  padding: 0.28rem 0.5rem;
  color: #dacdca;
  background: rgba(8, 4, 12, 0.74);
  font-size: 0.55rem;
  line-height: 1.35;
  text-align: right;
}

.scroll-to-bill {
  position: absolute;
  z-index: 7;
  right: var(--gutter);
  bottom: 1rem;
  color: var(--show-gold);
  font-family: var(--marquee);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  text-decoration: none;
}

.room-intro {
  background:
    linear-gradient(135deg, rgba(133, 34, 74, 0.12), transparent 38%),
    #180e1c;
  border-bottom: 1px solid rgba(244, 189, 77, 0.17);
}

.room-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(2rem, 6vw, 7rem);
  align-items: end;
}

.room-intro .eyebrow,
.room-intro h2 {
  margin-bottom: 0;
}

.room-intro-copy .lede {
  margin-top: 0;
  color: #f4e8dc;
  font-size: clamp(1.25rem, 2vw, 1.65rem);
  line-height: 1.55;
}

.room-intro-copy p:last-child {
  color: var(--show-muted);
}

.showroom-facts {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 2.3rem 0 0;
  border-block: 1px solid rgba(244, 189, 77, 0.25);
}

.showroom-facts div {
  padding: 1.5rem clamp(1rem, 2vw, 2rem);
  border-right: 1px solid rgba(244, 189, 77, 0.19);
}

.showroom-facts div:last-child {
  border-right: 0;
}

.showroom-facts dt {
  color: var(--show-gold);
  font-family: var(--display);
  font-size: clamp(2rem, 4vw, 3.8rem);
  line-height: 1;
}

.showroom-facts dd {
  margin: 0.45rem 0 0;
  color: var(--show-muted);
  font-family: var(--marquee);
  font-size: 0.7rem;
  line-height: 1.4;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.bill-section {
  overflow: hidden;
  background:
    radial-gradient(circle at 50% -10%, rgba(136, 46, 180, 0.22), transparent 35rem),
    linear-gradient(#150b19, #0f0913);
}

.bill-section::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.2;
  pointer-events: none;
  background-image:
    radial-gradient(circle, rgba(255, 255, 255, 0.5) 0 1px, transparent 1.5px);
  background-size: 27px 27px;
  mask-image: linear-gradient(to bottom, black, transparent 45%);
}

.bill-heading {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: clamp(2rem, 7vw, 7rem);
  align-items: end;
  margin-bottom: 4rem;
}

.bill-heading h2 {
  margin-bottom: 0;
}

.bill-heading > p {
  color: var(--show-muted);
  font-size: 1.05rem;
  line-height: 1.7;
}

.poster-marquee {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: clamp(1rem, 2.2vw, 2rem);
  padding: clamp(2.5rem, 4vw, 4.5rem);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.035), transparent 48%),
    #2a111f;
  border: 2px solid #8c6532;
  box-shadow:
    inset 0 0 0 6px #120a10,
    inset 0 0 0 8px #d39b3e,
    0 1.5rem 5rem rgba(0, 0, 0, 0.42);
}

.poster-marquee::before,
.poster-marquee::after {
  content: "";
  position: absolute;
  left: 1.6rem;
  right: 1.6rem;
  height: 16px;
  background:
    radial-gradient(circle at center, #fff8c2 0 3px, #f8bc42 4px, rgba(255, 181, 45, 0.28) 7px, transparent 8px)
    0 0 / 34px 16px repeat-x;
  filter: drop-shadow(0 0 5px rgba(255, 190, 66, 0.72));
}

.poster-marquee::before { top: 0.75rem; }
.poster-marquee::after { bottom: 0.75rem; }

.show-card {
  grid-column: span 3;
  min-width: 0;
  display: flex;
  flex-direction: column;
  transform: translateY(var(--lift, 0)) rotate(var(--tilt, 0deg));
}

.show-card-trent { --lift: 1.3rem; --tilt: 0.7deg; }
.show-card-spectrum { --lift: -0.55rem; --tilt: -0.55deg; }
.show-card-purple { --lift: 0.75rem; --tilt: 0.65deg; }

.show-poster {
  display: block;
  padding: 0;
  overflow: hidden;
  background: #160d17;
  border: 1px solid #f6d178;
  box-shadow:
    0 0 0 6px #20121b,
    0 0 0 8px #a97831,
    0 1.2rem 2rem rgba(0, 0, 0, 0.42);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.show-poster:hover,
.show-poster:focus-visible {
  transform: translateY(-0.45rem);
  box-shadow:
    0 0 0 6px #20121b,
    0 0 0 8px #e9b84f,
    0 1.7rem 2.5rem rgba(0, 0, 0, 0.52);
}

.show-poster img {
  display: block;
  width: 100%;
  height: auto;
}

.show-card-copy {
  flex: 1;
  padding: 1.35rem 0.35rem 0;
}

.show-time {
  margin: 0 0 0.45rem;
  color: var(--show-gold);
  font-size: 0.64rem;
}

.show-card h3 {
  margin: 0;
  color: #fff0df;
  font-family: var(--display);
  font-size: clamp(1.4rem, 2.1vw, 2.05rem);
  line-height: 1;
}

.show-card-copy > p:last-child {
  color: var(--show-muted);
  font-size: 0.86rem;
  line-height: 1.55;
}

.restoration-note,
.photo-credit {
  color: #9f8e91;
  font-size: 0.68rem;
  line-height: 1.55;
}

.restoration-note {
  max-width: 860px;
  margin: 2.6rem auto 0;
  text-align: center;
}

.commercial-break {
  overflow: hidden;
  background:
    radial-gradient(circle at 12% 24%, rgba(239, 74, 154, 0.14), transparent 30rem),
    radial-gradient(circle at 84% 72%, rgba(244, 189, 77, 0.1), transparent 28rem),
    linear-gradient(135deg, #140916, #260d20 54%, #0f0811);
}

.commercial-break::before {
  content: "COMMERCIAL BREAK";
  position: absolute;
  top: 1.1rem;
  left: -0.04em;
  color: rgba(255, 255, 255, 0.024);
  font-family: var(--display);
  font-size: clamp(6rem, 16vw, 17rem);
  line-height: 0.8;
  white-space: nowrap;
  pointer-events: none;
}

.commercial-intro {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(18rem, 0.72fr);
  gap: clamp(2rem, 7vw, 7rem);
  align-items: end;
  margin-bottom: clamp(2.8rem, 6vw, 5.4rem);
}

.commercial-intro h2 {
  max-width: 12ch;
  margin-bottom: 0;
}

.commercial-copy {
  padding-bottom: 0.35rem;
}

.commercial-copy .lede {
  color: #f4e3dd;
  font-size: clamp(1.1rem, 2vw, 1.35rem);
  line-height: 1.58;
}

.commercial-copy > p:last-child {
  margin-bottom: 0;
  color: var(--show-muted);
}

.showroom-media-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(1.2rem, 2.7vw, 2.6rem);
  align-items: start;
}

.showroom-tv-wrap {
  position: relative;
  z-index: 2;
  grid-column: 1 / 8;
  grid-row: 1 / 3;
  padding-top: clamp(0.5rem, 4vw, 3.5rem);
}

.showroom-tv-wrap::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 17% -8% 11% -10%;
  border-radius: 50%;
  background: rgba(105, 42, 139, 0.28);
  filter: blur(54px);
  pointer-events: none;
}

.showroom-crt {
  width: 100%;
  max-width: none;
  margin: 0;
}

.showroom-crt .crt-shell {
  padding: 1.35rem 4.8rem 1.45rem 1.35rem;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.09), transparent 24%),
    linear-gradient(150deg, #6f1833, #3b1023 52%, #1b0913);
  border: 2px solid #ad7431;
  border-radius: 18px 18px 13px 13px;
  box-shadow:
    inset 0 0 0 3px #240b17,
    inset 0 0 0 5px rgba(237, 183, 72, 0.27),
    inset 0 -5px 18px rgba(0, 0, 0, 0.55),
    0 2rem 4rem rgba(0, 0, 0, 0.58);
}

.showroom-crt-screen {
  background: #08060b;
  box-shadow:
    inset 0 0 64px rgba(0, 0, 0, 0.9),
    0 0 0 6px #130b11,
    0 0 0 9px #b57b35,
    0 0 34px rgba(97, 48, 143, 0.34);
}

.showroom-crt-poster,
.showroom-crt-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.showroom-crt-poster {
  object-fit: cover;
  filter: saturate(0.82) contrast(1.08) brightness(0.7) sepia(0.08);
}

.showroom-crt-shade {
  background:
    radial-gradient(ellipse at center, transparent 42%, rgba(5, 3, 8, 0.43) 100%),
    linear-gradient(180deg, rgba(7, 3, 11, 0.08), rgba(14, 4, 16, 0.58));
  pointer-events: none;
}

.showroom-crt-glow {
  place-content: end start;
  padding: clamp(1rem, 3vw, 1.7rem);
  color: #fff1df;
  text-align: left;
  text-shadow: 0 0 16px rgba(236, 84, 163, 0.72), 0 2px 4px #000;
}

.showroom-crt-glow b {
  max-width: 10ch;
  font-size: clamp(1.4rem, 3.2vw, 2.5rem);
  line-height: 0.92;
  text-transform: uppercase;
}

.showroom-crt-glow i {
  color: var(--show-gold);
  font-size: clamp(0.55rem, 1.2vw, 0.72rem);
  line-height: 1.4;
}

.showroom-crt-screen:hover .showroom-crt-glow,
.showroom-crt-screen:focus-visible .showroom-crt-glow {
  color: #ffffff;
}

.showroom-crt .crt-play-badge {
  display: grid;
  right: 1.1rem;
  bottom: 1rem;
  width: 2.6rem;
  height: 2.6rem;
  place-items: center;
  padding-left: 0.15rem;
  color: #29101e;
  background: var(--show-gold);
  border: 1px solid #fff0b0;
  border-radius: 50%;
  box-shadow: 0 0 24px rgba(244, 189, 77, 0.45);
  font-size: 0.9rem;
}

.showroom-crt .crt-panel {
  width: 3.8rem;
  gap: 0.66rem;
}

.showroom-channel {
  color: var(--show-gold);
  font-family: var(--marquee);
  font-size: 0.58rem;
  line-height: 1;
  letter-spacing: 0.18em;
}

.showroom-crt .crt-dial {
  border: 1px solid #edc774;
  background: radial-gradient(circle at 35% 30%, #f5d78b, #a9732d 54%, #54301b);
}

.showroom-crt .crt-grille {
  background: repeating-linear-gradient(180deg, rgba(0, 0, 0, 0.7) 0 3px, rgba(245, 193, 83, 0.12) 3px 5px);
}

.showroom-crt .crt-caption {
  max-width: 39rem;
  margin-top: 1.2rem;
  color: #ae9ca4;
  font-size: 0.75rem;
  line-height: 1.55;
}

.showroom-crt .crt-caption a {
  color: var(--show-gold);
}

.press-artifact {
  position: relative;
  margin: 0;
  padding: 0.55rem 0.55rem 0.45rem;
  background: #f3e5ca;
  border: 1px solid rgba(104, 69, 42, 0.42);
  box-shadow: 0 1.5rem 3.4rem rgba(0, 0, 0, 0.48);
}

.press-artifact a,
.press-artifact img {
  display: block;
  width: 100%;
}

.press-artifact img {
  height: auto;
}

.press-artifact figcaption {
  padding: 0.7rem 0.35rem 0.18rem;
  color: #674d43;
  font-family: var(--marquee);
  font-size: 0.58rem;
  line-height: 1.48;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.press-ad {
  z-index: 1;
  grid-column: 8 / 13;
  grid-row: 1;
  width: 88%;
  justify-self: end;
  transform: rotate(1.25deg);
}

.press-spread {
  z-index: 4;
  grid-column: 7 / 13;
  grid-row: 2;
  width: 92%;
  justify-self: end;
  margin-top: clamp(-5.5rem, -7vw, -3rem);
  transform: rotate(-1.8deg);
}

.press-ad::before,
.press-spread::before {
  content: "";
  position: absolute;
  z-index: 2;
  width: 4.2rem;
  height: 1.25rem;
  background: rgba(221, 196, 143, 0.52);
  box-shadow: 0 1px 2px rgba(58, 39, 25, 0.2);
  pointer-events: none;
}

.press-ad::before {
  top: -0.55rem;
  right: 2.1rem;
  transform: rotate(5deg);
}

.press-spread::before {
  top: -0.45rem;
  left: 42%;
  transform: rotate(-3deg);
}

.running-order {
  padding-block: clamp(3.4rem, 6vw, 5.5rem) !important;
  color: #24151c;
  background:
    repeating-linear-gradient(0deg, rgba(99, 62, 39, 0.04) 0 1px, transparent 1px 4px),
    var(--show-paper);
  border-block: 0;
}

.running-order::before,
.running-order::after {
  display: none;
}

.running-label {
  color: #7c1833;
  font-size: 0.82rem;
  text-align: center;
  margin-left: auto; /* the .inner measure caps this box - auto keeps the centered text centered */
  margin-right: auto;
}

.running-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-block: 2rem;
  border-block: 4px double #7d5327;
}

.running-grid div {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 1rem;
  align-items: center;
  padding: 1.5rem clamp(1rem, 3vw, 2.5rem);
  border-right: 1px solid rgba(91, 53, 30, 0.32);
}

.running-grid div:last-child {
  border-right: 0;
}

.running-grid time {
  grid-row: span 2;
  color: #8b1835;
  font-family: var(--display);
  font-size: clamp(2rem, 4vw, 4rem);
  line-height: 1;
}

.running-grid strong {
  color: #24151c;
  font-family: var(--display);
  font-size: clamp(1.3rem, 2vw, 2.2rem);
  line-height: 1;
}

.running-grid span {
  color: #71584d;
  font-family: var(--marquee);
  font-size: 0.67rem;
  text-transform: uppercase;
  letter-spacing: 0.11em;
}

.running-foot {
  margin: 0 auto; /* the .inner measure caps this box - auto keeps the centered text centered */
  color: #6a4b40;
  font-family: var(--serif);
  font-style: italic;
  text-align: center;
}

.last-show {
  overflow: hidden;
  background:
    radial-gradient(circle at 75% 50%, rgba(84, 27, 142, 0.24), transparent 29rem),
    linear-gradient(120deg, #130a17, #200d1d);
}

.last-show::before {
  content: "LAST SHOW";
  position: absolute;
  top: 1.4rem;
  right: -0.08em;
  color: rgba(255, 255, 255, 0.025);
  font-family: var(--display);
  font-size: clamp(7rem, 19vw, 21rem);
  line-height: 0.8;
  white-space: nowrap;
  pointer-events: none;
}

.last-show-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
  gap: clamp(3rem, 7vw, 8rem);
  align-items: center;
}

.last-show-copy {
  position: relative;
  z-index: 1;
}

.last-show-copy .lede {
  color: #f2e1d8;
  font-size: clamp(1.18rem, 1.8vw, 1.48rem);
  line-height: 1.58;
}

.last-show-copy > p:not(.eyebrow, .lede) {
  color: var(--show-muted);
}

.last-show blockquote {
  margin: 2.4rem 0 0;
  padding: 1.2rem 0 1.2rem 1.5rem;
  border-left: 3px solid var(--show-pink);
}

.last-show blockquote p {
  margin: 0;
  color: var(--show-gold);
  font-family: var(--serif);
  font-size: clamp(1.25rem, 2.5vw, 2rem);
  font-style: italic;
  line-height: 1.3;
}

.last-show-collage {
  position: relative;
  min-height: 680px;
}

.live-frame {
  position: absolute;
  margin: 0;
  padding: 0.55rem;
  background: #ecddc5;
  border: 1px solid #ad7e3b;
  box-shadow: 0 1.5rem 3rem rgba(0, 0, 0, 0.5);
}

.live-frame-stage {
  top: 0;
  left: 0;
  width: 78%;
  transform: rotate(-2.2deg);
}

.live-frame-lobby {
  right: 0;
  bottom: 0;
  width: 45%;
  transform: rotate(3.2deg);
}

.live-frame a,
.live-frame img {
  display: block;
  width: 100%;
}

.live-frame img {
  height: auto;
}

.live-frame figcaption {
  padding: 0.65rem 0.45rem 0.3rem;
  color: #4d342f;
  font-family: var(--marquee);
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.photo-credit {
  grid-column: 2;
  margin: -1.5rem 0 0;
}

.seat-section {
  overflow: hidden;
  background: #09070c;
}

.seat-section::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.4;
  background:
    radial-gradient(ellipse at 50% 110%, rgba(131, 24, 55, 0.9), transparent 56%);
}

.seat-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(2rem, 8vw, 9rem);
  align-items: center;
}

.seat-number {
  color: transparent;
  font-family: var(--display);
  font-size: clamp(10rem, 27vw, 26rem);
  line-height: 0.65;
  letter-spacing: -0.11em;
  -webkit-text-stroke: clamp(2px, 0.25vw, 5px) var(--show-gold);
  filter: drop-shadow(0 0 18px rgba(244, 189, 77, 0.23));
}

.seat-copy p {
  color: var(--show-muted);
}

.seat-list {
  list-style: none;
  margin: 2.2rem 0 0;
  padding: 0;
  border-top: 1px solid rgba(244, 189, 77, 0.25);
}

.seat-list li {
  display: flex;
  gap: 1rem;
  align-items: baseline;
  padding: 0.85rem 0;
  border-bottom: 1px solid rgba(244, 189, 77, 0.16);
  color: #eee0d6;
  font-family: var(--marquee);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.seat-list span {
  color: var(--show-pink);
  font-size: 0.65rem;
}

.wedding-intermission {
  color: #30211e;
  background:
    linear-gradient(120deg, rgba(255, 255, 255, 0.72), transparent 43%),
    repeating-linear-gradient(0deg, rgba(80, 53, 37, 0.035) 0 1px, transparent 1px 4px),
    #e8d8c1;
}

.wedding-intermission .eyebrow {
  color: #8c2644;
}

.page-showroom .wedding-intermission h2 {
  color: #38211f;
}

.page-showroom .wedding-intermission .flourish {
  color: #a52647;
}

.wedding-grid {
  display: flex;
  flex-direction: column;
  gap: clamp(3rem, 6vw, 6rem);
  align-items: stretch;
}

.wedding-images {
  display: grid;
  grid-template-columns: 1.08fr 1fr 1fr;
  gap: clamp(1.1rem, 2.4vw, 2.4rem);
  align-items: start;
  min-height: 0;
}

.wedding-photo {
  margin: 0;
  padding: 0.55rem;
  background: #fff4e2;
  box-shadow: 0 1.25rem 2.8rem rgba(65, 39, 28, 0.25);
}

.wedding-photo a,
.wedding-photo img {
  display: block;
  width: 100%;
}

.wedding-photo img {
  height: auto;
}

.wedding-photo figcaption {
  padding: 0.68rem 0.45rem 0.28rem;
  color: #725b4e;
  font-family: var(--marquee);
  font-size: 0.58rem;
  line-height: 1.4;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.gazebo-feature {
  position: relative;
  width: 100%;
  background: #f5e7d3;
  transform: rotate(-0.8deg);
}

.wedding-cameo {
  position: relative;
  width: 100%;
}

.wedding-cameo-one {
  margin-top: 3rem;
  transform: rotate(1deg);
}

.wedding-cameo-two {
  margin-top: 1.35rem;
  transform: rotate(-0.7deg);
}

.wedding-copy {
  order: -1;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(22rem, 0.92fr);
  column-gap: clamp(3rem, 8vw, 9rem);
  align-items: start;
}

.wedding-copy .eyebrow {
  grid-column: 1;
  grid-row: 1;
}

.wedding-copy h2 {
  grid-column: 1;
  grid-row: 2 / span 3;
  margin: 0;
}

.wedding-copy .lede {
  grid-column: 2;
  grid-row: 2;
  margin-top: 0;
}

.wedding-copy .lede {
  color: #4d302d;
  font-size: clamp(1.2rem, 2vw, 1.58rem);
  line-height: 1.55;
}

.wedding-copy > p:not(.eyebrow, .lede, .wedding-punchline) {
  grid-column: 2;
  grid-row: 3;
  color: #705a50;
}

.wedding-punchline {
  grid-column: 2;
  grid-row: 4;
  margin-top: 2.2rem;
  color: #86213d;
  font-family: var(--serif);
  font-size: clamp(1.25rem, 2.2vw, 1.8rem);
  font-style: italic;
  line-height: 1.35;
}

.curtain-call {
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(36, 0, 13, 0.9), transparent 23%, transparent 77%, rgba(36, 0, 13, 0.9)),
    repeating-linear-gradient(90deg, #2b0613 0 5%, #7b1730 5% 10%, #43091a 10% 15%);
  border-top: 10px solid #2c0714;
}

.curtain-call::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 24%, rgba(255, 226, 153, 0.2), transparent 42%);
  pointer-events: none;
}

.curtain-call .inner {
  position: relative;
  z-index: 1;
}

.curtain-big {
  max-width: 950px;
  margin: 1rem auto 2.5rem;
  color: #fff0df;
  font-family: var(--display);
  font-size: clamp(2.8rem, 7vw, 7rem);
  line-height: 0.98;
  letter-spacing: -0.045em;
  text-shadow: 0 0.12em 0.35em #180007;
}

.curtain-call .btn {
  color: #251417;
  background: var(--show-gold);
  border-color: #fff0b7;
}

.curtain-last {
  margin: 3.2rem 0 0;
  color: rgba(255, 239, 218, 0.55);
  font-size: 0.66rem;
}

@keyframes stage-breathe {
  from { transform: scale(1.055) translate3d(0, 0, 0); }
  to { transform: scale(1.095) translate3d(-0.6%, -0.7%, 0); }
}

@keyframes beam-sway {
  from { transform: rotate(-1.5deg); opacity: 0.11; }
  to { transform: rotate(2.5deg); opacity: 0.22; }
}

@media (max-width: 1050px) {
  .showroom-hero-copy {
    padding-right: 12rem;
  }

  .show-card {
    grid-column: span 6;
  }

  .show-card-trent,
  .show-card-spectrum,
  .show-card-purple {
    --lift: 0;
  }

  .running-grid {
    grid-template-columns: 1fr;
  }

  .running-grid div {
    border-right: 0;
    border-bottom: 1px solid rgba(91, 53, 30, 0.22);
  }

  .running-grid div:last-child {
    border-bottom: 0;
  }

  .last-show-grid {
    grid-template-columns: 1fr;
  }

  .last-show-collage {
    width: min(760px, 100%);
    min-height: 650px;
    margin-inline: auto;
  }

  .photo-credit {
    grid-column: 1;
  }

  .wedding-images {
    min-height: 0;
  }
}

@media (max-width: 800px) {
  .showroom-hero {
    min-height: 720px;
  }

  .showroom-hero-image {
    object-position: 58% center;
  }

  .showroom-hero-shade {
    background:
      linear-gradient(0deg, #0e0912 0%, rgba(14, 9, 18, 0.92) 26%, rgba(12, 7, 15, 0.18) 72%, rgba(4, 2, 7, 0.4) 100%),
      linear-gradient(90deg, rgba(9, 5, 14, 0.45), transparent);
  }

  .showroom-hero-copy {
    width: min(100% - 2rem, 680px);
    padding: 20rem 0 5rem;
  }

  .showroom-hero h1 {
    font-size: clamp(3.35rem, 17vw, 6.2rem);
  }

  .stage-kicker {
    padding-right: 1rem;
    line-height: 1.45;
    white-space: normal;
  }

  .seat-medallion {
    position: static;
    width: 8.5rem;
    margin: 1.6rem 0 0 auto;
  }

  .seat-medallion strong {
    font-size: 2.7rem;
  }

  .seat-medallion small {
    max-width: 6.7rem;
    font-size: 0.43rem;
  }

  .room-intro-grid,
  .bill-heading,
  .commercial-intro,
  .seat-grid,
  .wedding-grid {
    grid-template-columns: 1fr;
  }

  .commercial-intro {
    gap: 1.5rem;
  }

  .commercial-intro h2 {
    max-width: 13ch;
  }

  .commercial-copy {
    max-width: 40rem;
    padding-bottom: 0;
  }

  .showroom-media-grid {
    grid-template-columns: 1fr;
    gap: 2.2rem;
  }

  .showroom-tv-wrap {
    grid-column: 1;
    grid-row: auto;
    padding-top: 0;
  }

  .press-ad {
    grid-column: 1;
    grid-row: auto;
    width: min(78%, 29rem);
    justify-self: start;
    margin-top: 1rem;
  }

  .press-spread {
    grid-column: 1;
    grid-row: auto;
    width: min(88%, 37rem);
    justify-self: end;
    margin-top: -8rem;
  }

  .showroom-facts {
    grid-template-columns: repeat(2, 1fr);
  }

  .showroom-facts div:nth-child(2) {
    border-right: 0;
  }

  .showroom-facts div:nth-child(-n + 2) {
    border-bottom: 1px solid rgba(244, 189, 77, 0.19);
  }

  .seat-number {
    font-size: clamp(10rem, 55vw, 20rem);
    text-align: center;
  }

  .wedding-images {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    min-height: 0;
    margin-inline: auto;
  }

  .wedding-copy {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .wedding-copy .eyebrow,
  .wedding-copy h2,
  .wedding-copy .lede,
  .wedding-copy > p:not(.eyebrow, .lede, .wedding-punchline),
  .wedding-punchline {
    grid-column: 1;
    grid-row: auto;
  }

  .wedding-copy .lede {
    margin-top: 2rem;
  }

  .gazebo-feature {
    grid-column: 1 / -1;
    width: min(68%, 440px);
    justify-self: center;
  }

  .wedding-cameo-one,
  .wedding-cameo-two {
    margin-top: 0;
  }
}

@media (max-width: 590px) {
  .page-showroom .section {
    padding-block: 4.2rem;
  }

  .showroom-hero {
    min-height: 680px;
  }

  .showroom-hero::before,
  .showroom-hero::after {
    width: 28px;
  }

  .showroom-hero-copy {
    padding-top: 16rem;
  }

  .showroom-hero-lede {
    font-size: 1rem;
  }

  .showroom-hero-credit {
    max-width: calc(100% - 1rem);
    font-size: 0.48rem;
  }

  .scroll-to-bill {
    display: none;
  }

  .poster-marquee {
    display: block;
    padding: 2.8rem 2rem;
  }

  .showroom-crt .crt-shell {
    padding: 0.95rem 3.85rem 1rem 0.95rem;
    border-radius: 13px 13px 10px 10px;
  }

  .showroom-crt .crt-panel {
    width: 3.05rem;
    gap: 0.48rem;
  }

  .showroom-crt .crt-dial {
    width: 1.35rem;
    height: 1.35rem;
  }

  .showroom-crt .crt-dial-sm {
    width: 0.9rem;
    height: 0.9rem;
  }

  .showroom-crt .crt-grille {
    width: 1.7rem;
    height: 2.3rem;
  }

  .showroom-crt-glow {
    padding: 1rem;
  }

  .showroom-crt .crt-play-badge {
    right: 0.75rem;
    bottom: 0.7rem;
    width: 2.1rem;
    height: 2.1rem;
    font-size: 0.72rem;
  }

  .press-ad,
  .press-spread {
    width: 100%;
    justify-self: stretch;
    margin-top: 0;
    transform: none;
  }

  .show-card {
    width: min(340px, 100%);
    margin: 0 auto 3rem;
    transform: none;
  }

  .show-card:last-child {
    margin-bottom: 0;
  }

  .running-grid div {
    grid-template-columns: 5.4rem 1fr;
  }

  .last-show-collage {
    min-height: 520px;
  }

  .live-frame-stage {
    width: 88%;
  }

  .live-frame-lobby {
    width: 49%;
  }

  .wedding-images {
    grid-template-columns: 1fr;
    gap: 2rem;
    min-height: 0;
  }

  .gazebo-feature,
  .wedding-cameo-one {
    grid-column: 1;
    width: 100%;
  }

  .wedding-cameo-two {
    grid-column: 1;
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .showroom-hero-image,
  .stage-beam {
    animation: none;
  }

  .show-poster {
    transition: none;
  }

}


/* ==========================================================================
   ZOLTAR ON THE MAIN PAGE + GUEST VERDICTS (adopted from concepts/the main
   page v15, July 2026): the Saguar sidewalk interlude, the Zoltar booth and
   fortune console, and the review shoe - 48 sourced guest recollections dealt
   as hands of six on room-card-styled plaques. The concept's lab-only Hobo
   @font-face is deliberately NOT shipped (web-embedding rights unconfirmed;
   the colophon promises no Hobo font file is served) - the card brand lines
   fall through to Chicle, the concept's own declared fallback, which the site
   already self-hosts. The .zoltar-till block at the end is the memorial's own
   addition (zoltar.php + js). ========================================================================== */
.main-zoltar {
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 68% 58%, rgba(246, 189, 74, .14), transparent 27rem),
    linear-gradient(145deg, #47121f, #68182b 58%, #351019);
}

.zoltar-sidewalk {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(21rem, .82fr);
  width: min(72rem, calc(100% - (2 * var(--gutter))));
  margin: clamp(3.5rem, 5.5vw, 5rem) auto 0;
  color: var(--paper);
  background: #17131b;
  border: 1px solid rgba(246, 189, 74, .25);
  box-shadow: 0 2rem 4.5rem rgba(0,0,0,.25);
}

.zoltar-sidewalk figure {
  position: relative;
  min-height: 24rem;
  margin: 0;
  overflow: hidden;
}

.zoltar-sidewalk figure::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(90deg, transparent 60%, rgba(23,19,27,.7));
  pointer-events: none;
}

.zoltar-sidewalk img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 62%;
  filter: saturate(.88) contrast(1.04);
}

.zoltar-sidewalk figcaption {
  position: absolute;
  right: 1rem;
  bottom: .75rem;
  left: 1rem;
  z-index: 2;
  color: rgba(255,255,255,.7);
  font-size: .62rem;
  line-height: 1.45;
  text-shadow: 0 1px .4rem rgba(0,0,0,.95);
}

.zoltar-sidewalk-copy {
  align-self: center;
  max-width: 30rem;
  padding: clamp(2rem, 3.2vw, 2.75rem);
}

.zoltar-sidewalk-copy .eyebrow,
.main-zoltar-heading .eyebrow,
.fortune-console .eyebrow {
  color: var(--bulb);
}

.zoltar-sidewalk-copy h2 {
  max-width: 10ch;
  margin-bottom: 1.15rem;
  color: var(--paper);
  font-size: clamp(2.65rem, 3.8vw, 3.8rem);
  line-height: .96;
}

.zoltar-sidewalk-copy > p:not(.eyebrow) {
  color: rgba(255,255,255,.75);
  font-size: .94rem;
  line-height: 1.62;
}

.zoltar-sidewalk-note {
  margin-top: 1.5rem;
  padding-top: 1rem;
  color: var(--mint) !important;
  border-top: 1px solid rgba(169,216,198,.45);
  font-family: var(--carnival);
  font-size: 1.05rem;
}

.main-zoltar-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(19rem, .55fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: end;
  max-width: 72rem;
  padding: clamp(2.75rem, 4.5vw, 3.75rem) var(--gutter) 0;
}

.main-zoltar-heading h2 {
  max-width: 13ch;
  margin: 0;
  color: var(--paper);
  font-size: clamp(3rem, 4.5vw, 4.6rem);
  line-height: .94;
  letter-spacing: -.035em;
}

.main-zoltar-heading > p {
  margin: 0 0 .35rem;
  color: rgba(255,255,255,.75);
  font-size: 1.04rem;
  line-height: 1.75;
}

.zoltar-booth {
  display: grid;
  grid-template-columns: minmax(21rem, .85fr) minmax(23rem, .9fr);
  gap: clamp(2.5rem, 5vw, 4.5rem);
  align-items: center;
  max-width: 72rem;
  margin-top: clamp(2rem, 3vw, 2.75rem);
  padding: clamp(1.25rem, 2vw, 2rem) var(--gutter) clamp(4.5rem, 6vw, 5.5rem);
}

.zoltar-stage {
  position: relative;
  min-height: 34rem;
}

.zoltar-machine,
.zoltar-cards {
  margin: 0;
}

.zoltar-machine {
  position: relative;
  z-index: 2;
  width: min(72%, 21.5rem);
}

.zoltar-machine::after {
  position: absolute;
  top: 35.5%;
  left: 50%;
  width: 5rem;
  height: 5rem;
  content: "";
  opacity: 0;
  background: radial-gradient(circle, rgba(255,248,144,.92), rgba(244,189,61,.34) 44%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: opacity .35s ease;
  pointer-events: none;
}

.zoltar-machine img {
  width: 100%;
  height: 31rem;
  object-fit: cover;
  object-position: center;
  border: .55rem solid var(--paper);
  box-shadow: 0 1.8rem 3.5rem rgba(0,0,0,.42);
}

.zoltar-machine figcaption,
.zoltar-cards figcaption {
  margin-top: .65rem;
  color: rgba(255,255,255,.62);
  font-size: .63rem;
  line-height: 1.4;
  text-align: center;
}

.zoltar-cards {
  position: absolute;
  right: 0;
  bottom: 1rem;
  z-index: 3;
  width: min(46%, 14rem);
  transform: rotate(2.5deg);
}

.zoltar-cards img {
  width: 100%;
  height: auto;
  border: .45rem solid var(--paper);
  box-shadow: 0 1.5rem 3rem rgba(0,0,0,.5);
}

.fortune-console h3 {
  margin: 0 0 1rem;
  color: var(--paper);
  font-size: clamp(2.6rem, 3.6vw, 3.75rem);
  line-height: .94;
  letter-spacing: -.025em;
}

.fortune-intro {
  max-width: 36rem;
  margin: 0 0 1.8rem;
  color: rgba(255,255,255,.74);
  font-size: .96rem;
  line-height: 1.7;
}

.zoltar-button {
  min-width: 14rem;
  padding: 1rem 1.4rem;
  color: #21120d;
  background: var(--bulb);
  border: 0;
  box-shadow: inset 0 -.28rem 0 rgba(94,38,15,.28), 0 .7rem 0 #7b301d;
  cursor: pointer;
  font: 700 .78rem/1 var(--body);
  letter-spacing: .13em;
  text-transform: uppercase;
  transition: transform .16s ease, filter .16s ease;
}

.zoltar-button:hover {
  filter: brightness(1.08);
  transform: translateY(-.12rem);
}

.zoltar-button:focus-visible {
  outline: .2rem solid var(--mint);
  outline-offset: .35rem;
}

.zoltar-button:disabled {
  cursor: wait;
  filter: saturate(.75);
}

.zoltar-button-working {
  display: none;
}

.is-speaking .zoltar-button-idle {
  display: none;
}

.is-speaking .zoltar-button-working {
  display: inline;
}

.is-speaking .zoltar-machine::after {
  opacity: 1;
  animation: crystal-pulse .7s ease-in-out infinite alternate;
}

.fortune-slot {
  width: min(100%, 32rem);
  height: 1rem;
  margin: 1.8rem 0 -.35rem;
  background: #030409;
  border: .25rem solid #30242b;
  box-shadow: inset 0 .2rem .35rem rgba(0,0,0,.85);
}

.fortune-ticket {
  position: relative;
  width: min(100%, 31rem);
  min-height: 18.5rem;
  margin: 0;
  padding: 2.4rem clamp(1.4rem, 4vw, 3rem) 2rem;
  overflow: hidden;
  color: #39261b;
  background:
    linear-gradient(rgba(92,60,28,.055) 1px, transparent 1px) 0 0 / 100% 1.7rem,
    #f3df83;
  border: .18rem solid #b46c27;
  box-shadow: 0 2rem 4rem rgba(0,0,0,.35);
  transform: translateY(-.25rem);
}

.fortune-ticket::before,
.fortune-ticket::after {
  position: absolute;
  top: 1rem;
  width: 2rem;
  height: 2rem;
  content: "★";
  color: #9e3e2e;
  font-size: 1.2rem;
  text-align: center;
}

.fortune-ticket::before { left: 1rem; }
.fortune-ticket::after { right: 1rem; }

.ticket-kicker,
.ticket-label,
.ticket-stamp {
  margin: 0;
  color: #9e3e2e;
  font: 700 .66rem/1.3 var(--body);
  letter-spacing: .16em;
  text-align: center;
  text-transform: uppercase;
}

.ticket-message {
  margin: 1.4rem 0 1rem;
  font: 400 clamp(1.55rem, 3vw, 2.2rem)/1.25 Georgia, serif;
  text-align: center;
}

.ticket-note {
  max-width: 24rem;
  margin: 0 auto 1.7rem;
  color: #71563e;
  font-size: .68rem;
  line-height: 1.5;
  text-align: center;
}

.ticket-numbers {
  margin: .55rem 0 1.6rem;
  color: #3e2417;
  font: 700 clamp(1.05rem, 2vw, 1.35rem)/1.4 var(--body);
  letter-spacing: .08em;
  text-align: center;
}

.ticket-stamp {
  padding-top: 1rem;
  border-top: 1px solid rgba(116,62,28,.38);
}

.is-printing .fortune-ticket {
  animation: print-fortune .85s cubic-bezier(.2,.75,.2,1);
}

.fortune-research {
  max-width: 31rem;
  margin: 1.2rem 0 0;
  color: rgba(255,255,255,.48);
  font-size: .63rem;
  line-height: 1.55;
}

@keyframes crystal-pulse {
  from { transform: translate(-50%, -50%) scale(.86); }
  to { transform: translate(-50%, -50%) scale(1.12); }
}

@keyframes print-fortune {
  0% {
    opacity: .35;
    transform: translateY(-6rem);
  }
  100% {
    opacity: 1;
    transform: translateY(-.25rem);
  }
}

@media (max-width: 900px) {
  .zoltar-sidewalk,
  .main-zoltar-heading,
  .zoltar-booth {
    grid-template-columns: 1fr;
  }

  .zoltar-sidewalk-copy {
    max-width: 52rem;
  }

  .main-zoltar-heading > p {
    max-width: 45rem;
  }

  .zoltar-stage {
    width: min(100%, 34rem);
  }
}

@media (max-width: 600px) {
  .zoltar-sidewalk {
    width: calc(100% - 2rem);
    margin-top: 3rem;
    min-height: 0;
  }

  .zoltar-sidewalk figure {
    min-height: 18rem;
  }

  .zoltar-sidewalk figure::after {
    background: linear-gradient(0deg, rgba(23,19,27,.7), transparent 45%);
  }

  .zoltar-sidewalk-copy {
    padding: 2rem 1.25rem 2.35rem;
  }

  .zoltar-sidewalk-copy h2 {
    font-size: 2.65rem;
  }

  .main-zoltar-heading {
    gap: 1.35rem;
    padding-top: 3rem;
  }

  .main-zoltar-heading h2 {
    font-size: 3rem;
  }

  .zoltar-booth {
    margin-top: 1rem;
    padding-top: 1rem;
    padding-bottom: 4rem;
  }

  .zoltar-stage {
    min-height: 27.5rem;
  }

  .zoltar-machine {
    width: min(72%, 15.5rem);
  }

  .zoltar-machine img {
    height: 24rem;
  }

  .zoltar-cards {
    width: min(44%, 10.5rem);
  }

  .fortune-console h3 {
    font-size: 3rem;
  }

  .fortune-ticket {
    min-height: 20rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .is-speaking .zoltar-machine::after,
  .is-printing .fortune-ticket {
    animation: none;
  }
}

/* Guest verdicts v2 - a compact wall of dark casino plaques. Star values are
   editorial; every quotation stays verbatim and links to its public thread. */
.guest-verdicts {
  position: relative;
  padding: clamp(3.25rem, 5vw, 4.75rem) 0 clamp(3.5rem, 5vw, 5rem);
  overflow: hidden;
  color: #f8eedc;
  background:
    radial-gradient(circle at 10% 18%, rgba(244,183,54,.12), transparent 22rem),
    radial-gradient(circle at 92% 76%, rgba(190,31,41,.12), transparent 24rem),
    #151118;
}

.guest-verdicts::before {
  position: absolute;
  inset: 0;
  content: "";
  opacity: .16;
  background: repeating-linear-gradient(135deg, transparent 0 2.8rem, rgba(255,255,255,.035) 2.85rem 2.9rem);
  pointer-events: none;
}

.guest-verdicts > * {
  position: relative;
  z-index: 1;
}

.guest-verdicts-head {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(22rem, 1.1fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: end;
  max-width: 72rem;
  padding-bottom: clamp(1.8rem, 3vw, 2.5rem);
  border-bottom: 1px solid rgba(244,192,86,.28);
}

.guest-verdicts .eyebrow {
  color: var(--bulb);
}

.guest-verdicts h2 {
  max-width: 10ch;
  margin: 0;
  color: #fff8ea;
  font-size: clamp(3.1rem, 5vw, 5rem);
  line-height: .9;
  letter-spacing: -.05em;
  text-shadow: .035em .04em 0 rgba(166,42,39,.82);
}

.guest-verdicts-intro {
  align-self: end;
}

.guest-verdicts-deck {
  max-width: 42rem;
  margin: 0;
  color: rgba(255,255,255,.72);
  font: 400 clamp(.96rem, 1.6vw, 1.08rem)/1.65 var(--body);
}

.guest-tally {
  display: flex;
  gap: .75rem;
  align-items: baseline;
  margin: 1rem 0 .25rem;
  color: rgba(255,255,255,.62);
  font: 700 .62rem/1.3 var(--body);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.guest-tally span {
  display: inline-flex;
  gap: .42rem;
  align-items: baseline;
}

.guest-tally b {
  color: var(--bulb);
  font: 400 1.05rem/1 var(--carnival);
  letter-spacing: .05em;
}

.guest-tally i {
  color: rgba(255,255,255,.25);
  font-style: normal;
}

.guest-tally-note {
  display: block;
  color: rgba(255,255,255,.38);
  font: 600 .55rem/1.4 var(--body);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.guest-card-table {
  max-width: 74rem;
  margin-top: clamp(1.4rem, 2.5vw, 2rem);
  padding: clamp(.75rem, 1.5vw, 1.1rem);
  background:
    radial-gradient(ellipse at 50% 5%, rgba(66,126,101,.18), transparent 62%),
    linear-gradient(145deg, rgba(255,255,255,.025), transparent 58%),
    #111819;
  border: 1px solid rgba(229,185,96,.2);
  box-shadow:
    inset 0 0 0 3px rgba(9,10,12,.55),
    0 1.1rem 3rem rgba(0,0,0,.17);
}

.guest-hand-meta {
  display: flex;
  gap: 1rem;
  align-items: end;
  justify-content: flex-end;
  min-height: 1.75rem;
  padding: 0 .2rem .7rem;
}

.guest-deal-status {
  display: flex;
  gap: .65rem;
  align-items: baseline;
  margin: 0;
  color: rgba(255,255,255,.38);
  font: 700 .52rem/1.3 var(--body);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.guest-deal-status b {
  color: var(--mint);
  font-size: .58rem;
}

.guest-verdict-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  margin: 0;
  perspective: 85rem;
}

.guest-swipe-note {
  display: none;
}

.guest-verdict {
  position: relative;
  display: flex;
  min-height: 14.25rem;
  padding: 1.25rem 1.15rem 1.05rem;
  overflow: hidden;
  flex-direction: column;
  color: #f8eedc;
  background:
    linear-gradient(145deg, rgba(255,255,255,.035), transparent 58%),
    #241b27;
  border: 1px solid rgba(229,185,96,.34);
  border-top-color: rgba(244,192,86,.62);
  border-radius: .4rem;
  box-shadow:
    inset 0 0 0 3px rgba(12,10,14,.62),
    inset 0 1px 0 rgba(255,255,255,.04),
    0 .45rem .9rem rgba(0,0,0,.18);
  transform-origin: 50% 110%;
}

.guest-verdict::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: .5rem;
  content: "";
  background-color: #171218;
  background-image: var(--bulb-on-sm), var(--bulb-off-sm);
  background-position: 5px 50%, 21px 50%;
  background-repeat: repeat-x;
  background-size: 32px 11px;
  box-shadow: 0 .18rem .5rem rgba(246,189,74,.12);
  pointer-events: none;
}

.guest-verdict::after {
  position: absolute;
  right: .72rem;
  bottom: .62rem;
  color: rgba(244,192,86,.16);
  content: attr(data-rank) "\A" attr(data-suit);
  font: 700 .62rem/1.05 Georgia, serif;
  text-align: center;
  white-space: pre;
  transform: rotate(180deg);
  pointer-events: none;
}

.guest-verdict > * {
  position: relative;
  z-index: 1;
}

@media (prefers-reduced-motion: no-preference) {
  .guest-verdict::before {
    animation: guest-plaque-twinkle 1.4s steps(2) infinite;
  }

  @keyframes guest-plaque-twinkle {
    to { background-position: 21px 50%, 5px 50%; }
  }
}

.guest-verdict--buffet {
  background:
    linear-gradient(145deg, rgba(255,255,255,.035), transparent 58%),
    #361b26;
}

.guest-verdict--drink,
.guest-verdict--show {
  background:
    linear-gradient(145deg, rgba(255,255,255,.035), transparent 58%),
    #20202d;
}

.guest-verdict header {
  display: flex;
  gap: .65rem;
  align-items: center;
  justify-content: space-between;
  padding-bottom: .65rem;
  border-bottom: 1px solid rgba(244,192,86,.16);
}

.guest-platform {
  color: rgba(169,216,198,.72);
  font: 700 .53rem/1.35 var(--body);
  letter-spacing: .11em;
  text-transform: uppercase;
}

.guest-mini-score {
  display: grid;
  grid-template-columns: auto;
  justify-items: center;
  flex: 0 0 auto;
  color: var(--bulb);
  font-size: .62rem;
  letter-spacing: .03em;
  white-space: nowrap;
}

.guest-mini-score b {
  font: 700 .62rem/1 var(--body);
}

.guest-mini-score i {
  margin-top: .1rem;
  color: var(--mint);
  font: 400 .8rem/1 Georgia, serif;
  font-style: normal;
}

.guest-verdict[data-suit="\2665"] .guest-mini-score i,
.guest-verdict[data-suit="\2666"] .guest-mini-score i {
  color: #df6972;
}

.guest-mini-score--words {
  padding: .22rem .38rem;
  color: #24141b;
  background: var(--mint);
  font: 700 .47rem/1 var(--body);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.guest-mini-score--words i {
  color: #5e2430;
}

.guest-verdict blockquote {
  margin: 0;
  padding: 1rem 0 .7rem;
}

.guest-verdict blockquote p {
  margin: 0;
  color: #fff8ea;
  font: 400 clamp(1.05rem, 1.6vw, 1.38rem)/1.3 Georgia, serif;
  letter-spacing: -.01em;
}

.guest-verdict cite,
.guest-reply cite {
  display: block;
  margin-top: .55rem;
  color: rgba(255,255,255,.45);
  font: 600 .55rem/1.4 var(--body);
  font-style: normal;
}

.guest-reply {
  margin: 0 0 .75rem .7rem;
  padding: .55rem 0 .05rem .75rem;
  border-left: .14rem solid rgba(244,192,86,.62);
}

.guest-reply span {
  display: block;
  margin-bottom: .3rem;
  color: var(--bulb);
  font: 700 .46rem/1 var(--body);
  letter-spacing: .13em;
  text-transform: uppercase;
}

.guest-reply p {
  margin: 0;
  color: rgba(255,255,255,.78);
  font: 400 .79rem/1.4 Georgia, serif;
}

.guest-source {
  align-self: flex-start;
  margin-top: auto;
  color: #e9b94d;
  font: 700 .52rem/1.3 var(--body);
  letter-spacing: .08em;
  text-decoration-thickness: .06rem;
  text-underline-offset: .2rem;
  text-transform: uppercase;
}

.guest-source:hover {
  color: #fff1b8;
}

.guest-deal-controls {
  display: grid;
  grid-template-columns: minmax(9rem, 1fr) auto minmax(9rem, 1fr);
  gap: 1rem;
  align-items: center;
  padding: 1rem .2rem .15rem;
}

.guest-deal-controls[hidden] {
  display: none;
}

.guest-deal-back,
.guest-deal-button {
  border: 0;
  cursor: pointer;
}

.guest-deal-back {
  justify-self: start;
  padding: .55rem .2rem;
  color: rgba(255,255,255,.58);
  background: transparent;
  font: 700 .55rem/1.2 var(--body);
  letter-spacing: .09em;
  text-transform: uppercase;
}

.guest-deal-back span {
  margin-right: .35rem;
  color: var(--bulb);
  font-size: .8rem;
}

.guest-deal-back:hover:not(:disabled),
.guest-deal-back:focus-visible {
  color: #fff8ea;
}

.guest-deal-back:disabled {
  opacity: .28;
  cursor: default;
}

.guest-deal-button {
  position: relative;
  display: grid;
  min-width: 10.5rem;
  padding: .72rem 1.2rem .68rem;
  overflow: hidden;
  justify-items: center;
  color: #fff6dc;
  background:
    linear-gradient(135deg, transparent 43%, rgba(255,255,255,.055) 43% 46%, transparent 46% 54%, rgba(255,255,255,.055) 54% 57%, transparent 57%),
    #74283b;
  border: 1px solid #d7a841;
  border-radius: .36rem;
  box-shadow:
    inset 0 0 0 3px #351521,
    inset 0 0 0 4px rgba(244,192,86,.5),
    0 .4rem 1rem rgba(0,0,0,.26);
  text-transform: uppercase;
}

.guest-deal-button span {
  font: 700 .48rem/1 var(--body);
  letter-spacing: .18em;
}

.guest-deal-button strong {
  margin-top: .12rem;
  color: var(--bulb);
  font: 400 1.08rem/1.05 var(--carnival);
  letter-spacing: .04em;
}

.guest-deal-button i {
  margin-top: .22rem;
  color: var(--mint);
  font: 400 .68rem/1 Georgia, serif;
  font-style: normal;
  letter-spacing: .2em;
}

.guest-deal-button:hover:not(:disabled) {
  background-color: #8b3047;
  transform: translateY(-1px);
}

.guest-deal-button:active:not(:disabled) {
  transform: translateY(1px);
}

.guest-deal-button:focus-visible,
.guest-deal-back:focus-visible {
  outline: .16rem solid var(--mint);
  outline-offset: .22rem;
}

.guest-deal-button:disabled {
  cursor: wait;
  opacity: .72;
}

.guest-deal-note {
  max-width: 15rem;
  margin: 0;
  justify-self: end;
  color: rgba(255,255,255,.34);
  font: 600 .5rem/1.45 var(--body);
  letter-spacing: .06em;
  text-align: right;
  text-transform: uppercase;
}

@media (prefers-reduced-motion: no-preference) {
  .guest-verdict-grid.is-dealing-out .guest-verdict {
    animation: guest-card-out .24s ease-in forwards;
    animation-delay: calc(var(--card-index, 0) * 25ms);
  }

  .guest-verdict-grid.is-dealing-in .guest-verdict {
    animation: guest-card-in .46s cubic-bezier(.2,.75,.25,1) backwards;
    animation-delay: calc(var(--card-index, 0) * 45ms);
  }

  @keyframes guest-card-out {
    to { opacity: 0; transform: translateY(1.2rem) rotateX(-72deg) scale(.94); }
  }

  @keyframes guest-card-in {
    from { opacity: 0; transform: translateY(-1.5rem) rotateX(68deg) scale(.94); }
  }
}

.guest-last-word {
  display: grid;
  grid-template-columns: minmax(10rem, .42fr) minmax(0, 1.58fr);
  gap: clamp(1.5rem, 4vw, 3.5rem);
  align-items: center;
  max-width: 72rem;
  margin-top: clamp(1.5rem, 3vw, 2.25rem);
  padding: clamp(1.25rem, 2.4vw, 1.8rem);
  background: linear-gradient(120deg, rgba(124,45,62,.18), rgba(29,95,140,.09));
  border: 1px solid rgba(244,192,86,.3);
  box-shadow: inset 0 0 0 3px rgba(21,17,24,.72);
}

.guest-last-word-label {
  margin: 0 0 .35rem;
  color: var(--bulb);
  font: 700 .58rem/1.35 var(--body);
  letter-spacing: .14em;
  text-transform: uppercase;
}

.guest-last-word-label::before,
.guest-last-word-label::after {
  color: var(--mint);
  content: "★";
}

.guest-last-word-label::before { margin-right: .45rem; }
.guest-last-word-label::after { margin-left: .45rem; }

.guest-last-word blockquote {
  grid-column: 2;
  grid-row: 1 / span 2;
  margin: 0;
  color: #fff8ea;
  font: 400 clamp(1.4rem, 2.6vw, 2.25rem)/1.2 Georgia, serif;
  letter-spacing: -.02em;
}

.guest-last-word > p:last-child {
  margin: 0;
  color: rgba(255,255,255,.44);
  font-size: .59rem;
}

.guest-verdicts-bulbs {
  height: 1.65rem;
  border-color: #7c2d3e;
}

@media (max-width: 900px) {
  .guest-verdicts-head {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }

  .guest-verdicts-deck {
    max-width: 43rem;
  }

  .guest-verdict-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .guest-deal-controls {
    grid-template-columns: 1fr auto 1fr;
  }
}

@media (max-width: 600px) {
  .guest-verdicts {
    padding: 3.25rem 0 3.5rem;
  }

  .guest-verdicts h2 {
    font-size: 3.35rem;
  }

  .guest-tally {
    gap: .5rem;
    flex-wrap: wrap;
  }

  .guest-verdict-grid {
    grid-template-columns: none;
    grid-auto-columns: minmax(17.25rem, 84vw);
    grid-auto-flow: column;
    width: 100%;
    max-width: none;
    margin-top: 0;
    padding: 0 1rem .8rem;
    gap: .6rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-padding-inline: 1rem;
    scroll-snap-type: inline mandatory;
    scrollbar-color: rgba(244,192,86,.55) rgba(255,255,255,.08);
  }

  .guest-card-table {
    width: 100%;
    max-width: none;
    padding: .7rem 0 .8rem;
  }

  .guest-hand-meta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    width: calc(100% - 2rem);
    margin: 0 auto;
  }

  .guest-deal-status {
    display: block;
    margin: 0;
    text-align: right;
    white-space: nowrap;
  }

  .guest-deal-status b,
  .guest-deal-status span {
    display: block;
  }

  .guest-verdict {
    min-height: 14rem;
    padding: 1.15rem 1rem 1rem;
    scroll-snap-align: start;
  }

  .guest-swipe-note {
    display: block;
    margin: 0 auto 0 0;
    color: rgba(255,255,255,.46);
    font: 700 .54rem/1.4 var(--body);
    letter-spacing: .1em;
    text-transform: uppercase;
  }

  .guest-swipe-note span {
    color: var(--bulb);
    font-size: .9rem;
  }

  .guest-verdict blockquote {
    padding: .85rem 0 .65rem;
  }

  .guest-source {
    margin-top: .45rem;
  }

  .guest-deal-controls {
    grid-template-columns: 1fr auto;
    width: calc(100% - 2rem);
    margin: 0 auto;
    padding-top: .8rem;
  }

  .guest-deal-button {
    grid-column: 2;
    grid-row: 1;
    min-width: 9.8rem;
  }

  .guest-deal-back {
    grid-column: 1;
    grid-row: 1;
  }

  .guest-deal-note {
    grid-column: 1 / -1;
    max-width: none;
    justify-self: center;
    text-align: center;
  }

  .guest-last-word {
    display: block;
    width: calc(100% - 2rem);
    margin-top: 1.4rem;
  }

  .guest-last-word blockquote {
    margin: .7rem 0;
    font-size: 1.5rem;
  }
}

/* Guest verdicts v4: the plaques become a retired Boardwalk house deck. */
.guest-card-table {
  position: relative;
  padding-top: clamp(1.55rem, 2.1vw, 1.8rem);
}

.guest-card-table::before {
  position: absolute;
  top: .34rem;
  right: .55rem;
  left: .55rem;
  height: .62rem;
  content: "";
  background-color: #171218;
  background-image: var(--bulb-on-sm), var(--bulb-off-sm);
  background-position: 5px 50%, 21px 50%;
  background-repeat: repeat-x;
  background-size: 32px 11px;
  border-radius: .2rem;
  box-shadow: 0 .18rem .55rem rgba(246,189,74,.16);
  pointer-events: none;
}

.guest-verdict,
.guest-verdict--buffet,
.guest-verdict--drink,
.guest-verdict--show {
  color: #282025;
  background:
    radial-gradient(circle at 14% 12%, rgba(255,255,255,.72), transparent 23%),
    repeating-linear-gradient(32deg, rgba(82,54,42,.018) 0 1px, transparent 1px 4px),
    #eee3cb;
  border-color: #803044;
  border-top-color: #a84957;
  box-shadow:
    inset 0 0 0 3px #f8efd9,
    inset 0 0 0 4px rgba(85,35,47,.45),
    0 .48rem .95rem rgba(0,0,0,.32);
  transform-style: preserve-3d;
}

.guest-verdict::before {
  z-index: 4;
  inset: 0;
  display: grid;
  width: auto;
  height: auto;
  place-items: center;
  content: "B";
  opacity: 1;
  color: var(--bulb);
  background-color: #70283b;
  background-image:
    radial-gradient(circle at center, transparent 0 1.7rem, rgba(244,192,86,.34) 1.74rem 1.8rem, transparent 1.84rem),
    linear-gradient(45deg, transparent 45%, rgba(255,255,255,.055) 45% 55%, transparent 55%),
    linear-gradient(-45deg, transparent 45%, rgba(255,255,255,.055) 45% 55%, transparent 55%);
  background-position: center, 0 0, 0 0;
  background-size: auto, 1rem 1rem, 1rem 1rem;
  border: .28rem solid #351521;
  border-radius: .3rem;
  box-shadow:
    inset 0 0 0 1px rgba(244,192,86,.8),
    inset 0 0 0 5px #70283b,
    inset 0 0 0 6px rgba(244,192,86,.5);
  font: 400 4.5rem/1 var(--carnival);
  text-shadow: .04em .04em 0 #351521;
  backface-visibility: hidden;
  transform: rotateY(180deg);
  animation: none;
}

.guest-verdict::after {
  color: rgba(105,34,49,.48);
  font-size: .7rem;
  backface-visibility: hidden;
}

.guest-verdict > * {
  backface-visibility: hidden;
}

.guest-verdict header {
  padding-right: .1rem;
  border-bottom-color: rgba(91,39,50,.18);
}

.guest-platform {
  color: #476d67;
}

.guest-mini-score {
  color: #672338;
}

.guest-mini-score i {
  color: #284e4a;
}

.guest-verdict[data-suit="\2665"] .guest-mini-score i,
.guest-verdict[data-suit="\2666"] .guest-mini-score i {
  color: #b12d3b;
}

.guest-mini-score--words {
  color: #f8efd9;
  background: #672338;
}

.guest-mini-score--words i {
  color: var(--bulb);
}

.guest-verdict blockquote p {
  color: #2b2124;
}

.guest-verdict blockquote {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: center;
}

.guest-verdict cite,
.guest-reply cite {
  color: rgba(43,33,36,.58);
}

.guest-reply {
  background: rgba(117,62,72,.045);
  border-left-color: #a62a39;
}

.guest-reply span {
  color: #8e2839;
}

.guest-reply p {
  color: rgba(43,33,36,.82);
}

.guest-source {
  color: #7f263a;
  text-decoration-color: rgba(127,38,58,.38);
}

.guest-source:hover {
  color: #b12d3b;
}

@media (prefers-reduced-motion: no-preference) {
  .guest-card-table::before {
    animation: guest-plaque-twinkle 1.4s steps(2) infinite;
  }

  .guest-verdict-grid.is-dealing-out .guest-verdict {
    animation-duration: .34s;
  }

  .guest-verdict-grid.is-dealing-in .guest-verdict {
    animation-duration: .56s;
  }

  @keyframes guest-card-out {
    0% { opacity: 1; transform: translateY(0) rotateY(0) scale(1); }
    82% { opacity: 1; transform: translateY(.55rem) rotateY(180deg) scale(.97); }
    100% { opacity: 0; transform: translateY(1.1rem) rotateY(180deg) scale(.94); }
  }

  @keyframes guest-card-in {
    0% { opacity: 1; transform: translateY(-1.2rem) rotateY(180deg) scale(.94); }
    100% { opacity: 1; transform: translateY(0) rotateY(0) scale(1); }
  }
}

@media (max-width: 600px) {
  .guest-card-table {
    padding-top: 1.45rem;
  }

  .guest-card-table::before {
    right: .35rem;
    left: .35rem;
  }
}

/* Guest verdicts v5: a literal poker hand, while v4 remains underneath. */
.guest-verdict-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .55rem;
  align-items: start;
}

.guest-verdict {
  min-height: 0;
  aspect-ratio: 5 / 7;
  padding: 1.15rem .7rem .7rem;
}

.guest-verdict:hover,
.guest-verdict:focus-within {
  z-index: 2;
  translate: 0 -.22rem;
}

.guest-verdict header {
  min-height: 1.45rem;
  padding: 0 .35rem .38rem 1.7rem;
  justify-content: center;
  text-align: center;
}

.guest-platform {
  font-size: .42rem;
  line-height: 1.25;
  letter-spacing: .08em;
}

.guest-mini-score {
  position: absolute;
  top: -.48rem;
  left: -.12rem;
  gap: .02rem;
}

.guest-mini-score b {
  color: #252126;
  font: 700 .64rem/.95 Georgia, serif;
}

.guest-mini-score i {
  margin: 0;
  font-size: .82rem;
}

.guest-verdict[data-suit="\2665"] .guest-mini-score b,
.guest-verdict[data-suit="\2666"] .guest-mini-score b,
.guest-verdict[data-suit="\2665"] .guest-mini-score i,
.guest-verdict[data-suit="\2666"] .guest-mini-score i {
  color: #b12d3b;
}

.guest-mini-score--words {
  padding: 0;
  color: inherit;
  background: transparent;
}

.guest-mini-score--words i {
  color: #b12d3b;
}

.guest-verdict::after {
  right: .5rem;
  bottom: .42rem;
  font-size: .66rem;
}

.guest-verdict blockquote {
  padding: .42rem 0 .35rem;
}

.guest-verdict blockquote p {
  font-size: clamp(.84rem, 1.1vw, 1rem);
  line-height: 1.22;
  text-align: center;
}

.guest-verdict cite,
.guest-reply cite {
  margin-top: .32rem;
  font-size: .43rem;
  line-height: 1.25;
  text-align: center;
}

.guest-reply {
  margin: 0 0 .38rem;
  padding: .32rem .28rem .28rem .42rem;
}

.guest-reply span {
  margin-bottom: .2rem;
  font-size: .39rem;
}

.guest-reply p {
  font-size: .64rem;
  line-height: 1.28;
}

.guest-source {
  max-width: calc(100% - 1.1rem);
  font-size: .41rem;
  line-height: 1.2;
}

@media (min-width: 601px) and (max-width: 1100px) {
  .guest-verdict-grid {
    grid-template-columns: repeat(6, 10.75rem);
    padding: .25rem .1rem .85rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-padding-inline: .1rem;
    scroll-snap-type: inline mandatory;
  }

  .guest-verdict {
    scroll-snap-align: start;
  }
}

@media (max-width: 600px) {
  .guest-verdict-grid {
    grid-template-columns: repeat(6, minmax(15.5rem, 74vw));
    grid-auto-columns: unset;
    grid-auto-flow: row;
  }

  .guest-verdict {
    min-height: 0;
    padding: 1.35rem 1rem .95rem;
  }

  .guest-verdict header {
    padding-left: 2rem;
  }

  .guest-platform {
    font-size: .48rem;
  }

  .guest-mini-score {
    top: -.58rem;
    left: -.18rem;
  }

  .guest-mini-score b {
    font-size: .76rem;
  }

  .guest-mini-score i {
    font-size: .95rem;
  }

  .guest-verdict blockquote p {
    font-size: 1.08rem;
    line-height: 1.25;
  }

  .guest-verdict cite,
  .guest-reply cite {
    font-size: .5rem;
  }

  .guest-reply {
    padding: .45rem .4rem .38rem .62rem;
  }

  .guest-reply p {
    font-size: .73rem;
    line-height: 1.35;
  }

  .guest-source {
    font-size: .47rem;
  }
}

/* Guest verdicts v6: replica room-prepared cards from the surviving original. */
.guest-verdict-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .8rem;
  align-items: stretch;
  overflow: visible;
}

.guest-verdict {
  width: 100%;
  height: 16.8rem;
  min-height: 0;
  aspect-ratio: auto;
  padding: .82rem 1rem 4.65rem;
  color: #563427;
  background:
    repeating-linear-gradient(12deg, rgba(92,63,42,.018) 0 1px, transparent 1px 4px),
    #eee7d6;
  border: 1px solid #704434;
  border-radius: .08rem;
  box-shadow:
    inset 0 0 0 .32rem #eee7d6,
    inset 0 0 0 .39rem rgba(112,68,52,.75),
    0 .6rem 1.1rem rgba(0,0,0,.3);
  translate: none;
}

.guest-verdict:hover,
.guest-verdict:focus-within {
  translate: 0 -.12rem;
}

.guest-verdict header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .15rem .5rem;
  min-height: 0;
  padding: .15rem .35rem .42rem;
  color: #673d2e;
  border-bottom: 1px solid rgba(103,61,46,.24);
  text-align: left;
}

.guest-verdict header::before {
  grid-column: 1 / -1;
  content: "This Memory Was Prepared By:";
  color: #673d2e;
  font: 500 clamp(1.02rem, 1.55vw, 1.32rem)/1.02 "Boardwalk Hobo", "Chicle", sans-serif;
  letter-spacing: .015em;
  text-align: center;
}

.guest-platform {
  align-self: center;
  color: rgba(86,52,39,.68);
  font: 600 .44rem/1.2 var(--body);
  letter-spacing: .08em;
}

.guest-mini-score,
.guest-mini-score--words {
  position: static;
  display: block;
  align-self: center;
  padding: 0;
  color: #673d2e;
  background: transparent;
}

.guest-mini-score b,
.guest-verdict[data-suit="\2665"] .guest-mini-score b,
.guest-verdict[data-suit="\2666"] .guest-mini-score b {
  color: #673d2e;
  font: 500 .72rem/1 "Boardwalk Hobo", "Chicle", sans-serif;
}

.guest-mini-score i {
  display: none;
}

.guest-verdict blockquote {
  padding: .58rem .15rem .4rem;
}

.guest-verdict blockquote p {
  color: #563427;
  font: 500 clamp(1rem, 1.45vw, 1.22rem)/1.14 "Boardwalk Hobo", "Chicle", sans-serif;
  letter-spacing: .012em;
  text-align: center;
}

.guest-verdict cite,
.guest-reply cite {
  margin-top: .36rem;
  color: rgba(86,52,39,.68);
  font: 600 .47rem/1.25 var(--body);
  text-align: center;
}

.guest-reply {
  margin: 0 0 .4rem;
  padding: .38rem .48rem .3rem;
  background: rgba(112,68,52,.045);
  border: 0;
  border-top: 1px solid rgba(103,61,46,.26);
}

.guest-reply span {
  margin-bottom: .18rem;
  color: #673d2e;
  font-size: .39rem;
}

.guest-reply p {
  color: #563427;
  font: 500 .72rem/1.22 "Boardwalk Hobo", "Chicle", sans-serif;
  text-align: center;
}

.guest-source {
  max-width: 100%;
  color: #744735;
  font-size: .43rem;
  text-align: center;
  text-decoration-color: rgba(116,71,53,.38);
}

.guest-source:hover {
  color: #9a4934;
}

.guest-verdict::after {
  right: 1.05rem;
  bottom: .62rem;
  left: 1.05rem;
  width: auto;
  height: 3.72rem;
  content: "";
  /* asset copied into website/img (July 26, 2026) - the old ../../../concepts/
     path resolved on local disk but 404'd in production, where concepts/ is
     never uploaded; the verdict cards were losing their replica-card art */
  background: url("../img/room-prepared-card-bg.webp") center 82% / 112% auto no-repeat;
  font-size: 0;
  transform: none;
}

.guest-deal-button i {
  font-size: 0;
  letter-spacing: 0;
}

.guest-deal-button i::after {
  content: "BOARDWALK · HOTEL & CASINO";
  color: var(--mint);
  font: 500 .46rem/1 "Boardwalk Hobo", "Chicle", sans-serif;
  letter-spacing: .08em;
}

@media (max-width: 900px) {
  .guest-verdict-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 0;
    overflow: visible;
  }
}

@media (max-width: 600px) {
  .guest-verdict-grid {
    grid-template-columns: repeat(6, minmax(18rem, 84vw));
    grid-auto-columns: unset;
    grid-auto-flow: row;
    padding: 0 1rem .8rem;
    overflow-x: auto;
  }

  .guest-verdict {
    height: 17.25rem;
    min-height: 0;
    padding: .9rem 1.05rem 4.85rem;
  }

  .guest-verdict header {
    padding-left: .35rem;
  }

  .guest-verdict header::before {
    font-size: 1.18rem;
  }

  .guest-platform {
    font-size: .46rem;
  }

  .guest-mini-score b,
  .guest-verdict[data-suit="\2665"] .guest-mini-score b,
  .guest-verdict[data-suit="\2666"] .guest-mini-score b {
    font-size: .76rem;
  }

  .guest-verdict blockquote p {
    font-size: 1.12rem;
  }

  .guest-reply p {
    font-size: .75rem;
  }

  .guest-verdict::after {
    height: 3.9rem;
  }
}

/* Guest verdicts v7: typographic room cards, no repeated prompt or photo crop. */
.guest-verdict {
  padding: 1rem 1.08rem 4.25rem;
}

.guest-verdict header {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .5rem;
  padding: .12rem .18rem .45rem;
}

.guest-verdict header::before {
  display: none;
  content: none;
}

.guest-platform {
  font-size: .47rem;
}

.guest-mini-score b,
.guest-verdict[data-suit="\2665"] .guest-mini-score b,
.guest-verdict[data-suit="\2666"] .guest-mini-score b {
  font-size: .78rem;
}

.guest-verdict blockquote {
  padding: .72rem .18rem .5rem;
}

.guest-verdict blockquote p {
  color: #4e3127;
  font: 400 clamp(1.03rem, 1.5vw, 1.28rem)/1.23 Georgia, "Times New Roman", serif;
  letter-spacing: -.008em;
}

.guest-reply {
  padding: .42rem .52rem .34rem;
}

.guest-reply p {
  color: #563427;
  font: 400 .76rem/1.32 Georgia, "Times New Roman", serif;
}

.guest-source {
  margin-bottom: .15rem;
}

.guest-verdict::after {
  display: none;
  content: none;
  background: none;
}

.guest-card-brand {
  position: absolute;
  right: 1.2rem;
  bottom: .65rem;
  left: 1.2rem;
  display: grid;
  justify-items: center;
  padding-top: .38rem;
  color: #673d2e;
  border-top: 1px solid rgba(103,61,46,.78);
  text-align: center;
  backface-visibility: hidden;
}

.guest-card-brand strong {
  font: 500 clamp(1.3rem, 2vw, 1.65rem)/.82 "Boardwalk Hobo", "Chicle", sans-serif;
  letter-spacing: .015em;
  text-shadow: .025em .035em 0 rgba(75,39,27,.22);
}

.guest-card-brand small {
  margin-top: .14rem;
  font: 500 clamp(.65rem, 1vw, .82rem)/1 "Boardwalk Hobo", "Chicle", sans-serif;
  letter-spacing: .01em;
}

@media (max-width: 600px) {
  .guest-verdict {
    padding: 1rem 1.08rem 4.35rem;
  }

  .guest-verdict blockquote p {
    font-size: 1.14rem;
  }

  .guest-reply p {
    font-size: .77rem;
  }

  .guest-card-brand strong {
    font-size: 1.45rem;
  }

  .guest-card-brand small {
    font-size: .72rem;
  }
}

/* Zoltar's till - the running total of remembered dollars. */
.zoltar-till {
  width: min(100%, 31rem);
  margin: 1.4rem 0 0;
  padding: .8rem 1.1rem;
  color: rgba(255,255,255,.78);
  background: rgba(3,4,9,.55);
  border: 1px solid rgba(246,189,74,.35);
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.zoltar-till b {
  margin-right: .35rem;
  color: var(--bulb);
  font: 700 1.15rem/1 var(--body);
  letter-spacing: .04em;
}

.zoltar-till.till-bump b {
  animation: till-bump .5s ease;
}

@keyframes till-bump {
  0% { filter: brightness(1); }
  35% { filter: brightness(1.7); }
  100% { filter: brightness(1); }
}

@media (prefers-reduced-motion: reduce) {
  .zoltar-till.till-bump b { animation: none; }
}

/* ---- booth exterior margin (concepts/main page 2, July 21, 2026): keep the
   chapter's maroon backdrop visible between the black fortune panel and the
   next divider ---- */
.page-index .main-zoltar .zoltar-booth {
  margin-bottom: clamp(3rem, 5vw, 5rem);
}

/* ==========================================================================
   THE GIFT SHOP - mock period shop (adopted from concepts/the gift shop v4,
   July 2026): inside the shop via the owner's disclosed AI reconstruction,
   the real shirt/postcard/deck plus credited period-reference merchandise,
   the last-chance counter, the sundries strip and the comped register.
   Selectors ride the body's `giftshop-mock` class exactly as the concept
   wrote them - no scope rewriting. The old museum-shelf styles above stay
   for the printable receipt contract (.cart-*, .receipt, .cart-chip).
   ========================================================================== */
/* Gift Shop concept v3 - the shop itself, not a memorabilia exhibit.
   Visual source: the owner's VHS-derived gift-shop reconstruction, July 19.
   Product rule: Boardwalk-specific where photographed; otherwise plainly
   marked as a period-typical item shown through reference photography. */

.giftshop-mock {
  --gs-red: #c72f21;
  --gs-dark-red: #741b16;
  --gs-yellow: #ffd24c;
  --gs-aqua: #5dc8c0;
  --gs-blue: #1673a0;
  --gs-cream: #f4edda;
  --gs-paper: #fff8e7;
  --gs-ink: #201b18;
  --gs-laminate: #171413;
  background: #0c0b0e;
}

.giftshop-mock main {
  overflow: clip;
  background: #121014;
}

.giftshop-mock .shop-kicker {
  margin: 0 0 .55rem;
  color: var(--gs-red);
  font-family: var(--marquee);
  font-size: .78rem;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.giftshop-mock .shop-heading {
  max-width: 17ch;
  margin-bottom: .35em;
  color: var(--gs-dark-red);
  font-size: clamp(2.25rem, 5.2vw, 5.8rem);
}

.giftshop-mock .shop-intro {
  max-width: 62ch;
  margin-bottom: 0;
  color: #594d42;
  font-size: clamp(1rem, 1.4vw, 1.18rem);
}

/* -----------------------------------------------------------------------
   The VHS doorway
   ----------------------------------------------------------------------- */

.sundries-hero {
  min-height: min(900px, 88vh);
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: end;
  background: #080708;
}

.sundries-hero-image {
  position: absolute;
  z-index: -2;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 56%;
}

.sundries-hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(5,4,5,.04) 24%, rgba(5,4,5,.38) 55%, rgba(5,4,5,.96) 100%),
    linear-gradient(90deg, rgba(5,4,5,.55), transparent 45% 70%, rgba(5,4,5,.2));
}

.sundries-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .22;
  background:
    repeating-linear-gradient(0deg, transparent 0 3px, rgba(255,255,255,.06) 3px 4px);
  mix-blend-mode: overlay;
}

.hero-shop-sign {
  position: absolute;
  z-index: 2;
  top: clamp(1rem, 4vw, 2.8rem);
  left: 50%;
  width: min(920px, calc(100% - 2rem));
  padding: .8rem 1rem .65rem;
  color: #711b15;
  text-align: center;
  background: #fff1c8;
  border: 7px solid #9c241b;
  box-shadow: 0 0 0 5px #e8a92f, 0 15px 35px rgba(0,0,0,.48);
  transform: translateX(-50%) rotate(-.4deg);
}

.hero-shop-sign strong {
  display: block;
  font-family: var(--display);
  font-size: clamp(1.9rem, 5vw, 4.8rem);
  font-weight: 400;
  line-height: .95;
  letter-spacing: .035em;
  text-shadow: 2px 3px 0 #e9b3a1;
}

.hero-shop-sign span {
  display: block;
  margin-top: .35rem;
  color: #116d79;
  font-family: var(--marquee);
  font-size: clamp(.62rem, 1.35vw, .9rem);
  letter-spacing: .2em;
  text-transform: uppercase;
}

.hero-shop-sign::after {
  content: "";
  position: absolute;
  inset: -18px;
  background-image: var(--bulb-on-sm);
  background-size: 22px 22px;
  mask:
    linear-gradient(#000 0 0) top / 100% 17px no-repeat,
    linear-gradient(#000 0 0) bottom / 100% 17px no-repeat,
    linear-gradient(#000 0 0) left / 17px 100% no-repeat,
    linear-gradient(#000 0 0) right / 17px 100% no-repeat;
  animation: mock-sign-flicker 2.2s steps(2, end) infinite;
  pointer-events: none;
}

.sundries-hero-copy {
  width: min(1180px, calc(100% - 2rem));
  margin: 0 auto;
  padding: clamp(10rem, 28vh, 18rem) 0 clamp(2.2rem, 6vw, 5.5rem);
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(16rem, .8fr);
  gap: clamp(1.5rem, 5vw, 5rem);
  align-items: end;
  color: #fff0d3;
}

.sundries-hero-copy h1 {
  margin: 0;
  color: #fff5df;
  font-size: clamp(3.1rem, 9vw, 9rem);
  line-height: .87;
  text-shadow: 4px 5px 0 #8b231c, 0 10px 30px #000;
}

.sundries-hero-copy .hero-tagline {
  margin: .65rem 0 0;
  color: #ffd261;
  font-family: var(--script);
  font-size: clamp(1.7rem, 3vw, 3rem);
  line-height: 1;
}

.sundries-hero-copy .hero-blurb {
  margin: 0;
  padding: 1.2rem 1.35rem;
  color: #ede1ca;
  background: rgba(11,9,10,.78);
  border-left: 5px solid var(--gs-yellow);
  box-shadow: 0 10px 28px rgba(0,0,0,.34);
}

.vhs-disclosure {
  position: absolute;
  z-index: 3;
  right: .75rem;
  bottom: .65rem;
  margin: 0;
  padding: .3rem .5rem;
  color: #dfd1bd;
  background: rgba(0,0,0,.68);
  font-size: .62rem;
  line-height: 1.3;
}

/* -----------------------------------------------------------------------
   Shop floor
   ----------------------------------------------------------------------- */

.mock-shop-floor {
  padding: clamp(4rem, 8vw, 8rem) var(--gutter);
  background:
    linear-gradient(rgba(80,62,43,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(80,62,43,.05) 1px, transparent 1px),
    #eee2c7;
  background-size: 28px 28px;
}

.shop-floor-inner {
  width: min(1240px, 100%);
  margin: 0 auto;
}

.shop-floor-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, .58fr);
  gap: clamp(1.5rem, 5vw, 5rem);
  align-items: end;
  margin-bottom: clamp(2rem, 5vw, 4.5rem);
}

.tiny-history {
  margin: 0;
  padding: 1rem 1.1rem;
  background: #fffaf0;
  color: #5a4c3f;
  font-size: .84rem;
  border: 1px solid #bcae96;
  border-top: 8px solid var(--gs-red);
  box-shadow: 5px 7px 0 rgba(76,50,29,.14);
  transform: rotate(1deg);
}

.tiny-history strong {
  color: var(--gs-red);
}

.aisle-sign {
  margin: 0 0 1rem;
  padding: .7rem 1rem;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  color: #fff0ca;
  background: var(--gs-red);
  font-family: var(--marquee);
  font-size: clamp(.8rem, 1.6vw, 1.15rem);
  letter-spacing: .15em;
  text-transform: uppercase;
  border: 5px solid #681713;
  box-shadow: 0 8px 0 #d79e32;
}

.aisle-sign span:last-child {
  color: var(--gs-yellow);
}

.product-wall {
  padding: clamp(1rem, 2.8vw, 2.25rem);
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(.85rem, 1.7vw, 1.45rem);
  position: relative;
  background:
    radial-gradient(circle, rgba(73,52,35,.24) 0 2px, transparent 2.5px) 0 0 / 24px 24px,
    #cdbb98;
  border: 11px solid #3d2a1d;
  border-bottom-width: 26px;
  box-shadow: inset 0 0 0 3px #e4d4b3, 0 25px 50px rgba(62,35,20,.3);
}

.mock-product {
  grid-column: span 3;
  min-width: 0;
  min-height: 370px;
  padding: .85rem;
  display: flex;
  flex-direction: column;
  position: relative;
  background: var(--gs-paper);
  color: var(--gs-ink);
  border: 1px solid #aa9671;
  box-shadow: 5px 7px 0 rgba(76,51,30,.22);
  transform: rotate(var(--product-tilt, 0deg));
}

.mock-product:nth-child(4n+1) { --product-tilt: -.55deg; }
.mock-product:nth-child(4n+2) { --product-tilt: .45deg; }
.mock-product:nth-child(4n+3) { --product-tilt: -.25deg; }
.mock-product:nth-child(4n+4) { --product-tilt: .7deg; }
.mock-product--wide { grid-column: span 6; }

.mock-product::before {
  content: "";
  position: absolute;
  top: -14px;
  left: 50%;
  width: 42px;
  height: 19px;
  border-radius: 20px 20px 0 0;
  background: transparent;
  border: 4px solid #5b4a34;
  border-bottom: 0;
  transform: translateX(-50%);
}

.product-price {
  position: absolute;
  z-index: 4;
  top: .55rem;
  right: .5rem;
  min-width: 4.4rem;
  padding: .28rem .45rem;
  color: #6e1914;
  background: #ffd84f;
  font-family: var(--display);
  font-size: 1.08rem;
  text-align: center;
  border: 2px solid #9c211a;
  box-shadow: 2px 3px 0 rgba(0,0,0,.2);
  transform: rotate(4deg);
}

.product-art {
  min-height: 205px;
  margin-bottom: .75rem;
  display: grid;
  place-items: center;
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(145deg, rgba(255,255,255,.7), transparent 45%),
    #e6ddc9;
  border: 1px solid #c2b397;
}

.product-art--photo img {
  width: 100%;
  height: 235px;
  padding: .35rem;
  object-fit: contain;
  filter: drop-shadow(0 10px 12px rgba(0,0,0,.22));
}

.product-art--tshirt img {
  height: clamp(250px, 28vw, 330px);
  padding: .2rem;
}

.product-art--item {
  background:
    linear-gradient(145deg, rgba(255,255,255,.7), transparent 45%),
    #d7ccb7;
}

.product-art--item img {
  width: 100%;
  height: 235px;
  padding: .4rem;
  object-fit: contain;
  filter: drop-shadow(0 8px 9px rgba(34,22,15,.24));
}

.product-art--rack img {
  padding: 0;
  object-fit: cover;
}

.product-art--dark {
  background: #5f1f20;
}

.mock-product h3 {
  margin: 0 0 .25rem;
  color: var(--gs-dark-red);
  font-size: clamp(1.05rem, 1.6vw, 1.42rem);
}

.mock-product .product-copy {
  margin: 0 0 .65rem;
  color: #5a4e44;
  font-size: .82rem;
  line-height: 1.43;
}

.product-basis {
  margin: auto 0 .72rem;
  color: #746a60;
  font-family: var(--marquee);
  font-size: .59rem;
  line-height: 1.35;
  letter-spacing: .09em;
  text-transform: uppercase;
}

/* The small-object counter: crowded, cheap and fully basket-enabled. */
.impulse-counter {
  margin-top: clamp(3rem, 7vw, 6rem);
  padding: clamp(1rem, 2.8vw, 2.25rem);
  color: #fff1d3;
  background:
    radial-gradient(circle, rgba(255,222,136,.18) 0 2px, transparent 2.5px) 0 0 / 22px 22px,
    #701c18;
  border: 11px solid #3d2a1d;
  border-bottom-width: 25px;
  box-shadow: inset 0 0 0 3px #9e392e, 0 24px 45px rgba(62,35,20,.34);
}

.impulse-counter-heading {
  margin-bottom: clamp(1.5rem, 4vw, 3rem);
  padding: clamp(.75rem, 2vw, 1.4rem);
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(16rem, .9fr);
  gap: clamp(1rem, 3vw, 3rem);
  align-items: end;
  background: #181414;
  border: 4px solid #e1b940;
  box-shadow: 7px 8px 0 rgba(31,14,9,.35);
}

.impulse-counter-heading .shop-kicker {
  color: var(--gs-yellow);
}

.impulse-counter-heading h2 {
  max-width: 16ch;
  margin: 0;
  color: #fff4dc;
  font-size: clamp(2rem, 4.2vw, 4.4rem);
  line-height: .96;
}

.impulse-counter-heading > p {
  margin: 0;
  color: #d8c9b3;
  font-size: .84rem;
  line-height: 1.55;
}

.impulse-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(.65rem, 1.3vw, 1rem);
}

.impulse-card {
  min-width: 0;
  min-height: 330px;
  padding: .65rem;
  display: flex;
  flex-direction: column;
  position: relative;
  color: #2d241e;
  background: #fff8e8;
  border: 1px solid #aa9671;
  box-shadow: 4px 5px 0 rgba(34,17,11,.28);
  transform: rotate(var(--impulse-tilt, 0deg));
}

.impulse-card:nth-child(5n+1) { --impulse-tilt: -.55deg; }
.impulse-card:nth-child(5n+2) { --impulse-tilt: .38deg; }
.impulse-card:nth-child(5n+3) { --impulse-tilt: -.2deg; }
.impulse-card:nth-child(5n+4) { --impulse-tilt: .6deg; }
.impulse-card:nth-child(5n+5) { --impulse-tilt: -.35deg; }

.impulse-card::before {
  content: "";
  position: absolute;
  top: -11px;
  left: 50%;
  width: 34px;
  height: 15px;
  border: 3px solid #5b4a34;
  border-bottom: 0;
  border-radius: 18px 18px 0 0;
  transform: translateX(-50%);
}

.impulse-card > img {
  width: 100%;
  height: 145px;
  margin-bottom: .65rem;
  display: block;
  object-fit: contain;
  background:
    linear-gradient(145deg, rgba(255,255,255,.72), transparent 48%),
    #d8cdb9;
  border: 1px solid #c2b397;
}

.impulse-price {
  position: absolute;
  z-index: 2;
  top: .45rem;
  right: .4rem;
  padding: .22rem .36rem;
  color: #6e1914;
  background: #ffd84f;
  font-family: var(--display);
  font-size: .88rem;
  border: 2px solid #9c211a;
  box-shadow: 2px 2px 0 rgba(0,0,0,.22);
  transform: rotate(4deg);
}

.impulse-card h3 {
  margin: 0 0 .25rem;
  color: var(--gs-dark-red);
  font-size: .98rem;
  line-height: 1.08;
}

.impulse-card > p:not(.impulse-source) {
  margin: 0 0 .55rem;
  color: #5a4e44;
  font-size: .72rem;
  line-height: 1.38;
}

.impulse-source {
  margin: auto 0 .55rem;
  color: #746a60;
  font-family: var(--marquee);
  font-size: .49rem;
  line-height: 1.3;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.impulse-card .add-btn {
  padding: .48rem .52rem;
  font-size: .54rem;
}

.impulse-rights {
  margin: 1.4rem .2rem 0;
  padding-top: 1rem;
  color: #e6c9ae;
  font-size: .67rem;
  line-height: 1.5;
  border-top: 1px dashed rgba(255,255,255,.35);
}

.impulse-rights code {
  color: #ffe071;
  background: transparent;
}

.mock-product .add-btn,
.sundry-card .add-btn,
.impulse-card .add-btn {
  align-self: start;
  padding: .58rem .68rem;
  color: #fff1d3;
  background: var(--gs-red);
  font-family: var(--marquee);
  font-size: .65rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  border: 2px solid #741713;
  box-shadow: 3px 3px 0 #e0ad3a;
  cursor: pointer;
}

.mock-product .add-btn:hover,
.sundry-card .add-btn:hover,
.impulse-card .add-btn:hover {
  background: #e14431;
  transform: translateY(-1px);
}

/* Remaining CSS merchandise is intentionally generic, not false Boardwalk artifacts. */
.snow-globe {
  width: 150px;
  height: 150px;
  position: relative;
  border-radius: 50%;
  background:
    radial-gradient(circle at 34% 25%, rgba(255,255,255,.92) 0 8%, transparent 9%),
    radial-gradient(circle at 65% 45%, #fff 0 1px, transparent 2px) 0 0 / 19px 19px,
    linear-gradient(#68c8e2 0 64%, #e8d0a0 64%);
  border: 7px solid #d8e5e2;
  box-shadow: inset 0 0 18px rgba(12,72,94,.25), 8px 10px 0 rgba(0,0,0,.14);
}

.snow-globe::before {
  content: "LAS VEGAS";
  position: absolute;
  left: 50%;
  bottom: -25px;
  width: 130px;
  padding: .35rem 0;
  color: #ffe7a8;
  background: #9e231b;
  font-family: var(--marquee);
  font-size: .68rem;
  letter-spacing: .12em;
  text-align: center;
  transform: translateX(-50%);
  border-radius: 3px 3px 12px 12px;
}

.snow-globe::after {
  content: "★  ▮  ▴  ▮  ★";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 28px;
  color: #c42922;
  font-size: 1.5rem;
  text-align: center;
  text-shadow: 7px 0 #f0b428;
}

.dice-keychain {
  width: 110px;
  height: 110px;
  border-radius: 15px;
  position: relative;
  background:
    radial-gradient(circle at 26% 26%, #fff 0 8px, transparent 9px),
    radial-gradient(circle at 74% 26%, #fff 0 8px, transparent 9px),
    radial-gradient(circle at 50% 50%, #fff 0 8px, transparent 9px),
    radial-gradient(circle at 26% 74%, #fff 0 8px, transparent 9px),
    radial-gradient(circle at 74% 74%, #fff 0 8px, transparent 9px),
    #d83327;
  border: 5px solid #8c1d18;
  box-shadow: 8px 9px 0 rgba(0,0,0,.14);
  transform: rotate(-9deg);
}

.dice-keychain::before {
  content: "";
  position: absolute;
  left: 84%;
  top: -48px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 6px solid #c7b579;
}

.shot-glass {
  width: 100px;
  height: 140px;
  position: relative;
  display: grid;
  place-items: center;
  color: #b9241c;
  font-family: var(--display);
  font-size: 1.1rem;
  line-height: .9;
  text-align: center;
  background: linear-gradient(90deg, rgba(255,255,255,.75), rgba(164,220,226,.28) 55%, rgba(255,255,255,.7));
  border: 4px solid #a4cfd0;
  border-top-width: 8px;
  clip-path: polygon(8% 0, 92% 0, 82% 100%, 18% 100%);
  filter: drop-shadow(8px 9px 0 rgba(0,0,0,.13));
}

.fridge-magnet {
  width: 155px;
  padding: 1rem .65rem;
  color: #ffd23f;
  background: #147e91;
  font-family: var(--display);
  font-size: 2.15rem;
  line-height: .9;
  text-align: center;
  border: 6px solid #f3c842;
  box-shadow: 7px 9px 0 #a52a22;
  transform: rotate(-4deg);
}

.fridge-magnet small {
  display: block;
  margin-top: .45rem;
  color: #fff4d7;
  font-family: var(--marquee);
  font-size: .52rem;
  letter-spacing: .15em;
}

.camera-box {
  width: 165px;
  height: 108px;
  position: relative;
  display: grid;
  place-items: center;
  color: #17110e;
  background: linear-gradient(#f1c424 0 31%, #24201d 31%);
  font-family: var(--marquee);
  font-size: .73rem;
  letter-spacing: .08em;
  border-radius: 8px;
  box-shadow: 8px 10px 0 rgba(0,0,0,.14);
}

.camera-box::before {
  content: "";
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: radial-gradient(circle, #70c5d1 0 16%, #111 17% 46%, #777 47% 56%, #111 57%);
  border: 4px solid #555;
}

.camera-box::after {
  content: "27 EXP.";
  position: absolute;
  right: 8px;
  top: 7px;
  color: #6e1712;
  font-weight: 700;
}

/* -----------------------------------------------------------------------
   Sundries wall
   ----------------------------------------------------------------------- */

.forgot-wall {
  padding: clamp(4rem, 8vw, 8rem) var(--gutter);
  background:
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 48px,
    #141216;
}

.forgot-inner {
  width: min(1180px, 100%);
  margin: 0 auto;
}

.forgot-wall .shop-kicker { color: var(--gs-yellow); }
.forgot-wall .shop-heading { color: #f5ecd9; }
.forgot-wall .shop-intro { color: #cfc2ad; }

.sundries-strip {
  margin-top: clamp(2rem, 5vw, 4rem);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.sundry-card {
  min-width: 0;
  min-height: 285px;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  color: #2c211a;
  background:
    repeating-linear-gradient(0deg, transparent 0 25px, rgba(77,92,94,.08) 25px 26px),
    #f2ead9;
  border-top: 12px solid var(--sundry-color, #d7402f);
  box-shadow: 0 14px 30px rgba(0,0,0,.28);
}

.sundry-card:nth-child(2) { --sundry-color: #2f91a2; }
.sundry-card:nth-child(3) { --sundry-color: #e4ad2f; }
.sundry-card:nth-child(4) { --sundry-color: #7e3b78; }

.sundry-pack {
  min-height: 105px;
  margin-bottom: .8rem;
  display: grid;
  place-items: center;
  color: #fff;
  background: var(--sundry-color, #d7402f);
  font-family: var(--display);
  font-size: clamp(1.25rem, 2vw, 1.8rem);
  line-height: 1;
  text-align: center;
  border: 5px double rgba(255,255,255,.74);
}

.sundry-card h3 {
  margin: 0 0 .25rem;
  color: var(--gs-dark-red);
  font-size: 1.15rem;
}

.sundry-card p {
  margin: 0 0 .75rem;
  color: #63554a;
  font-size: .8rem;
  line-height: 1.4;
}

.sundry-card .add-btn { margin-top: auto; }

.shop-rule {
  margin: 2.2rem auto 0;
  max-width: 52rem;
  padding: .9rem 1rem;
  color: #c8baa4;
  font-size: .79rem;
  text-align: center;
  border: 1px dashed rgba(255,255,255,.18);
}

/* -----------------------------------------------------------------------
   Mock register
   ----------------------------------------------------------------------- */

.mock-register {
  padding: clamp(4rem, 8vw, 8rem) var(--gutter);
  background:
    linear-gradient(rgba(83,56,36,.06) 1px, transparent 1px),
    #eadbbc;
  background-size: 100% 32px;
}

.mock-register-inner {
  width: min(980px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(16rem, .72fr) minmax(0, 1.28fr);
  gap: clamp(1.5rem, 5vw, 5rem);
  align-items: center;
}

.counter-register {
  min-height: 330px;
  padding: 1.3rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background:
    repeating-linear-gradient(90deg, transparent 0 7px, rgba(255,255,255,.025) 7px 8px),
    #29231e;
  border: 13px solid #8e6037;
  box-shadow: inset 0 0 0 3px #0a0908, 12px 16px 0 rgba(81,47,25,.25);
}

.counter-display {
  margin: 0;
  padding: 1rem;
  color: #ff8f36;
  background: #130c09;
  font-family: var(--marquee);
  font-size: clamp(1.25rem, 3vw, 2rem);
  letter-spacing: .1em;
  text-align: right;
  text-shadow: 0 0 12px rgba(255,85,25,.72);
  border: 4px inset #4c362a;
}

.counter-keys {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: .42rem;
}

.counter-keys span {
  aspect-ratio: 1.15;
  border-radius: 3px;
  background: linear-gradient(#e7d3a7, #96724a);
  border: 2px outset #d5bd8e;
}

.mock-register .shop-heading {
  font-size: clamp(2.15rem, 4.3vw, 4.2rem);
}

.mock-register .cart-lines {
  list-style: none;
  margin: 1rem 0;
  padding: 0;
}

.mock-register .cart-lines li {
  padding: .55rem 0;
  display: grid;
  grid-template-columns: 2rem 1fr auto auto;
  gap: .55rem;
  align-items: baseline;
  border-bottom: 1px dashed #b9a887;
}

.mock-register .cl-price {
  color: var(--gs-red);
  font-weight: 700;
}

.mock-register .cart-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
}

.mock-register #register-closed {
  grid-column: 1 / -1;
  max-width: 690px;
  margin: 1rem auto 0;
  padding: clamp(1.5rem, 4vw, 3rem);
  color: #2e241d;
  text-align: center;
  background: #fff9e9;
  border: 8px solid var(--gs-red);
  box-shadow: 10px 13px 0 rgba(70,41,23,.2);
}

.mock-register #register-closed h3 {
  color: var(--gs-dark-red);
  font-size: clamp(1.65rem, 3.5vw, 2.8rem);
}

.mock-register .receipt {
  max-width: 36ch;
  margin: 1.4rem auto;
  padding: 1.4rem 1rem;
  color: #24201c;
  background:
    repeating-linear-gradient(0deg, transparent 0 23px, rgba(56,82,101,.08) 23px 24px),
    #fffdf7;
  font-family: ui-monospace, "Cascadia Mono", monospace;
  font-size: .75rem;
  line-height: 1.5;
  text-align: left;
  white-space: pre;
}

.mock-goodbye {
  padding: clamp(4rem, 7vw, 7rem) var(--gutter);
  color: #e2d4bd;
  text-align: center;
  background: #0d0c0f;
}

.mock-goodbye p {
  max-width: 58ch;
  margin-inline: auto;
}

.mock-goodbye .script {
  color: var(--gs-yellow);
  font-family: var(--script);
  font-size: clamp(1.65rem, 3vw, 2.7rem);
}

.giftshop-mock .cart-chip {
  color: #fff4d7;
  background: var(--gs-red);
  border-color: var(--gs-yellow);
  box-shadow: 3px 4px 0 #35110e;
}

@keyframes mock-sign-flicker {
  0%, 46%, 50%, 100% { opacity: 1; filter: brightness(1.06); }
  47%, 49% { opacity: .45; filter: brightness(.7); }
}

@media (max-width: 960px) {
  .sundries-hero-copy,
  .shop-floor-header,
  .mock-register-inner,
  .impulse-counter-heading {
    grid-template-columns: 1fr;
  }
  .mock-product { grid-column: span 4; }
  .mock-product--wide { grid-column: span 8; }
  .impulse-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .sundries-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 650px) {
  .sundries-hero {
    min-height: 760px;
  }
  .sundries-hero-image {
    object-position: 61% 50%;
  }
  .hero-shop-sign {
    border-width: 5px;
  }
  .sundries-hero-copy {
    padding-top: 13rem;
  }
  .product-wall {
    grid-template-columns: 1fr 1fr;
    padding: .8rem;
    border-width: 6px;
    border-bottom-width: 18px;
  }
  .mock-product,
  .mock-product--wide {
    grid-column: span 1;
    min-height: 345px;
  }
  .mock-product--wide {
    grid-column: 1 / -1;
  }
  .impulse-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sundries-strip { grid-template-columns: 1fr; }
  .mock-register .cart-lines li {
    grid-template-columns: 1.7rem 1fr auto;
  }
  .mock-register .cl-remove {
    grid-column: 2 / -1;
    justify-self: end;
  }
}

@media (max-width: 430px) {
  .product-wall { grid-template-columns: 1fr; }
  .mock-product,
  .mock-product--wide { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-shop-sign::after { animation: none; }
}

@media print {
  .giftshop-mock.printing-receipt .masthead,
  .giftshop-mock.printing-receipt .ribbon,
  .giftshop-mock.printing-receipt main > :not(.mock-register),
  .giftshop-mock.printing-receipt .counter-register,
  .giftshop-mock.printing-receipt .mock-register-copy,
  .giftshop-mock.printing-receipt .mock-goodbye,
  .giftshop-mock.printing-receipt .footer,
  .giftshop-mock.printing-receipt .cart-chip,
  .giftshop-mock.printing-receipt .receipt-actions,
  .giftshop-mock.printing-receipt #register-closed > :not(.receipt) {
    display: none !important;
  }
}

/* ==========================================================================
   THE WHOLE STORY - documentary treatment (adopted from concepts/the history,
   July 2026): the site's one quiet room. Archival paper, editorial serif,
   navy masthead band, evidence badges (Confirmed / Disputed / Unresolved),
   chapter index and record-summary stats. Selectors ride the body's
   `history-concept` class exactly as the concept wrote them.
   ========================================================================== */
/* History concept v2 - a restrained documentary treatment with editorial plates.
   Production history.html remains untouched. */

.history-concept {
  --history-ink: #202326;
  --history-muted: #62666a;
  --history-paper: #f5f1e8;
  --history-paper-2: #e9e4da;
  --history-rule: #b8b1a5;
  --history-red: #8e2f2a;
  --history-navy: #18222a;
  --history-gold: #a37a31;
  color: var(--history-ink);
  background: #d9d4ca;
}

.history-concept .ribbon {
  color: #ece8df;
  background: #10171c;
  border-bottom-color: #55606a;
}

.history-concept .masthead {
  color: #ece8df;
  background:
    linear-gradient(180deg, rgba(255,255,255,.035), transparent),
    var(--history-navy);
  border-bottom: 1px solid #3d4850;
}

.history-concept .masthead::after {
  height: 3px;
  margin-top: .65rem;
  background: var(--history-red);
  animation: none;
}

.history-concept .mast-kicker,
.history-concept .subline {
  color: #c9c1b2;
}

.history-concept .nav {
  border-color: rgba(255,255,255,.12);
}

.history-concept .nav a {
  color: #e6dfd2;
}

.history-concept .nav a:hover,
.history-concept .nav a[aria-current="page"] {
  color: #fff;
  background: rgba(255,255,255,.08);
}

.history-concept main {
  overflow: clip;
  background: var(--history-paper);
}

.history-concept .section {
  padding: clamp(3.75rem, 7vw, 6.5rem) var(--gutter);
  color: var(--history-ink);
  background: var(--history-paper);
  border-top: 1px solid var(--history-rule);
}

.history-concept .section:nth-of-type(odd):not(.poster-history):not(.closer) {
  background: var(--history-paper-2);
}

.history-concept .section .inner {
  width: min(1180px, 100%);
  max-width: none;
}

.history-concept .poster-history {
  padding-top: clamp(4.5rem, 9vw, 9rem);
  display: block;
  background:
    linear-gradient(90deg, rgba(142,47,42,.045) 1px, transparent 1px) 0 0 / 72px,
    var(--history-paper);
  border-top: 0;
}

.history-concept .poster-history::after {
  display: none;
}

.history-concept .poster-history .inner {
  display: grid;
  grid-template-columns: minmax(0, 1.24fr) minmax(18rem, .76fr);
  gap: 1rem clamp(2rem, 6vw, 6rem);
  align-items: start;
}

.history-concept .poster-history > .inner {
  width: min(1180px, calc(100% - 2 * var(--gutter)));
  max-width: none;
  margin: 0 auto;
  padding: 0;
  position: static;
  pointer-events: auto;
}

.history-concept .poster-history .eyebrow,
.history-concept .poster-history h1,
.history-concept .history-deck,
.history-concept .poster-history .lede {
  grid-column: 1;
}

.history-concept .poster-history h1 {
  max-width: 11ch;
  margin: .15rem 0 .35rem;
  color: var(--history-navy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.25rem, 8.5vw, 8.75rem);
  font-weight: 400;
  line-height: .84;
  letter-spacing: -.055em;
  text-wrap: balance;
}

.history-concept .history-deck {
  max-width: 36ch;
  margin: .35rem 0 1.4rem;
  color: var(--history-red);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.3rem, 2.3vw, 2rem);
  line-height: 1.24;
}

.history-concept .poster-history .lede {
  max-width: 67ch;
  margin: 0;
  color: #4c5052;
  font-size: clamp(.98rem, 1.25vw, 1.13rem);
  line-height: 1.72;
}

.history-concept .eyebrow {
  margin: 0 0 .55rem;
  color: var(--history-red) !important;
  font-family: ui-monospace, "Cascadia Mono", monospace;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.history-concept .record-summary {
  grid-column: 2;
  grid-row: 2 / span 3;
  margin: 0;
  border-top: 4px solid var(--history-red);
}

.history-concept .record-summary > div {
  padding: .8rem 0;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1rem;
  border-bottom: 1px solid var(--history-rule);
}

.history-concept .record-summary dt {
  color: var(--history-muted);
  font-family: ui-monospace, "Cascadia Mono", monospace;
  font-size: .66rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.history-concept .record-summary dd {
  margin: 0;
  color: var(--history-navy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.12rem;
}

.history-concept .chapter-index {
  grid-column: 1 / -1;
  margin-top: clamp(2.5rem, 5vw, 4.5rem);
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  border-top: 1px solid var(--history-rule);
  border-bottom: 1px solid var(--history-rule);
}

.history-concept .chapter-index a {
  min-width: 0;
  padding: .8rem .7rem;
  color: var(--history-ink);
  font-size: .72rem;
  line-height: 1.25;
  text-decoration: none;
  border-right: 1px solid var(--history-rule);
}

.history-concept .chapter-index a:last-child {
  border-right: 0;
}

.history-concept .chapter-index a:hover {
  color: #fff;
  background: var(--history-red);
}

.history-concept .chapter-index span {
  display: block;
  margin-bottom: .25rem;
  color: var(--history-red);
  font-family: ui-monospace, "Cascadia Mono", monospace;
  font-size: .62rem;
  letter-spacing: .1em;
}

.history-concept .chapter-index a:hover span {
  color: #fff;
}

.history-concept .evidence-key {
  grid-column: 1 / -1;
  padding: 1rem 0 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem 2rem;
}

.history-concept .evidence-key p {
  margin: 0;
  color: var(--history-muted);
  font-size: .72rem;
  line-height: 1.45;
}

.history-concept .evidence-key b {
  display: block;
  margin-bottom: .18rem;
  color: var(--history-navy);
  font-family: ui-monospace, "Cascadia Mono", monospace;
  font-size: .63rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.history-concept .method-link {
  grid-column: 1 / -1;
  margin: .15rem 0 0;
  color: var(--history-muted);
  font-size: .72rem;
}

.history-concept .poster-history > .ph-full {
  width: min(1360px, calc(100% - 2 * var(--gutter)));
  margin: clamp(2.5rem, 6vw, 5.5rem) auto 0;
  background: #171b1e;
  border: 1px solid #343a3e;
  box-shadow: none;
  height: auto;
  overflow: hidden;
}

.history-concept .poster-history > .ph-full picture,
.history-concept .poster-history > .ph-full a.gh {
  height: auto;
}

.history-concept .poster-history > .ph-full img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  max-height: none;
  display: block;
  object-fit: cover;
  object-position: center 58%;
  filter: saturate(.9) contrast(1.03);
}

.history-concept .poster-history > .ph-full figcaption {
  position: static;
  margin: 0;
  padding: .85rem 1rem;
  color: #d9d4c9;
  background: #171b1e;
  font-size: .7rem;
  line-height: 1.5;
  text-align: left;
}

.history-concept .poster-history > .ph-full figcaption .credit {
  display: block;
  margin-top: .45rem;
  padding-top: .45rem;
  color: #aaa499;
  background: none;
  border-top: 1px solid #343a3e;
  font-size: .64rem;
  line-height: 1.45;
}

.history-concept h2 {
  max-width: 19ch;
  margin: 0 0 clamp(1.8rem, 4vw, 3.2rem);
  color: var(--history-navy) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.35rem, 5.2vw, 5.4rem);
  font-weight: 400;
  line-height: .98;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.history-concept .flourish {
  display: none;
}

.history-concept .tl {
  max-width: none;
  margin: 0 0 clamp(2.25rem, 4.5vw, 4rem);
  border-top: 2px solid var(--history-navy);
}

.history-concept .tl-item {
  padding: 1.35rem 0;
  display: grid;
  grid-template-columns: minmax(8rem, .28fr) minmax(0, 1fr);
  gap: clamp(1rem, 4vw, 4rem);
  align-items: start;
  border-top: 1px solid var(--history-rule) !important;
}

.history-concept .tl-item:first-child {
  border-top: 0 !important;
}

.history-concept .tl-item .year {
  color: var(--history-red) !important;
  font-family: ui-monospace, "Cascadia Mono", monospace;
  font-size: clamp(.86rem, 1.6vw, 1.12rem);
  font-weight: 700;
  letter-spacing: -.02em;
}

.history-concept .tl-item p {
  max-width: 72ch;
  color: #35393b;
  font-size: clamp(.96rem, 1.2vw, 1.08rem);
  line-height: 1.67;
}

.history-concept .status {
  margin: 0 .35rem 0 0;
  padding: .18rem .34rem;
  display: inline-block;
  color: #fff;
  font-family: ui-monospace, "Cascadia Mono", monospace;
  font-size: .56rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  vertical-align: .12em;
  background: var(--history-red);
  border-radius: 2px;
}

.history-concept .status-unresolved {
  color: #202326;
  background: #d6b866;
}

.history-concept .gallery {
  margin-top: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.35rem, 2.5vw, 2.25rem);
  align-items: start;
  columns: auto;
}

.history-concept .gallery .ph {
  min-width: 0;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  background: #f8f5ee;
  border: 1px solid #aaa397;
  box-shadow: none;
  transform: none;
  overflow: hidden;
}

.history-concept .gallery .ph > a.gh {
  width: 100%;
  display: block;
  line-height: 0;
  background: #22272a;
}

.history-concept .gallery .ph img {
  width: 100%;
  height: auto;
  max-height: none;
  display: block;
  filter: saturate(.96) contrast(1.02);
}

.history-concept .gallery .ph figcaption,
.history-concept .ph figcaption {
  max-width: none;
  padding: .8rem .9rem;
  margin-top: auto;
  color: #45494b;
  background: #f8f5ee;
  font-size: .69rem;
  line-height: 1.48;
}

.history-concept .ph .credit {
  display: block;
  margin-top: .45rem;
  padding-top: .45rem;
  color: #6d706f;
  border-top: 1px solid #d2ccc1;
}

/* Each chapter gets a deliberate plate rather than a uniform two-column rack. */
.history-concept .gallery-origins,
.history-concept .gallery-independent,
.history-concept .gallery-carnival,
.history-concept .gallery-closure {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.history-concept .gallery-origins #ph-curteich-dusk-1966,
.history-concept .gallery-origins #ph-holiday-inn-1970s {
  grid-column: span 6;
}

.history-concept .gallery-origins #ph-slot-joynt-token-1980 {
  width: min(100%, 375px);
  grid-column: span 4;
  justify-self: center;
}

.history-concept .gallery-origins #ph-slot-joynt-1982 {
  grid-column: span 8;
  align-self: center;
}

.history-concept .gallery-independent {
  grid-template-columns: minmax(0, 1.45fr) minmax(17rem, .55fr);
}

.history-concept .gallery-independent #ph-boardwalk-1992 {
  width: min(100%, 390px);
  justify-self: center;
}

.history-concept .gallery-carnival #ph-facade-rising-1995 {
  grid-column: 1 / -1;
  width: min(100%, 980px);
  justify-self: center;
}

.history-concept .gallery-carnival #ph-jocko-night,
.history-concept .gallery-carnival #ph-fortune-teller {
  grid-column: span 6;
}

.history-concept .gallery-closure #ph-closed-boardwalk-2006,
.history-concept .gallery-closure #ph-cupola-rubble-2006 {
  grid-column: 1 / -1;
  width: min(100%, 1040px);
  justify-self: center;
}

.history-concept .gallery-closure #ph-tower-stripped-2006,
.history-concept .gallery-closure #ph-dark-week-before-2006,
.history-concept .gallery-closure #ph-implosion-before-2006,
.history-concept .gallery-closure #ph-implosion-dust-2006 {
  grid-column: span 6;
}

.history-concept .gallery-today {
  align-items: start;
}

.history-concept .ph a,
.history-concept .section a {
  color: #74302c;
}

.history-concept .era-dawn > .inner > p:not(.eyebrow),
.history-concept .record-straight > .inner > p:not(.eyebrow) {
  max-width: 74ch;
  color: #35393b;
  font-size: clamp(.98rem, 1.25vw, 1.1rem);
  line-height: 1.7;
}

.history-concept .record-straight .inner {
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.history-concept .duo {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(17rem, .7fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}

.history-concept .errata {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: correction;
}

.history-concept .errata li {
  margin: 0;
  padding: 1.1rem 0 1.1rem 3.1rem;
  position: relative;
  color: #35393b;
  line-height: 1.6;
  border-top: 1px solid var(--history-rule);
  counter-increment: correction;
}

.history-concept .errata li::before {
  content: counter(correction, decimal-leading-zero);
  top: 1.2rem;
  left: 0;
  color: var(--history-red);
  font-family: ui-monospace, "Cascadia Mono", monospace;
  font-size: .72rem;
}

.history-concept .aside {
  margin-top: 1.5rem;
  padding: 1rem;
  color: #4e5254;
  background: #ded8cd;
  border-left: 4px solid var(--history-red);
}

.history-concept .closer {
  color: #e9e4d9;
  text-align: left;
  background: var(--history-navy) !important;
}

.history-concept .closer .inner {
  margin: 0 auto;
  text-align: left;
}

.history-concept .closer h2 {
  max-width: 15ch;
  color: #f2eee6 !important;
}

.history-concept .closer .lede {
  max-width: 68ch;
  margin: 0 0 1.5rem;
  color: #c8c3b9;
}

.history-concept .closer .btn {
  color: #fff;
  background: var(--history-red);
  border-color: #c16c65;
}

.history-concept .rv {
  opacity: 1;
  transform: none;
}

@media (max-width: 900px) {
  .history-concept .poster-history .inner {
    grid-template-columns: 1fr;
  }

  .history-concept .record-summary {
    grid-column: 1;
    grid-row: auto;
    margin-top: 1.5rem;
  }

  .history-concept .chapter-index {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .history-concept .chapter-index a:nth-child(3) {
    border-right: 0;
  }

  .history-concept .chapter-index a:nth-child(-n+3) {
    border-bottom: 1px solid var(--history-rule);
  }

  .history-concept .duo {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .history-concept .section {
    padding-block: 3.15rem;
  }

  .history-concept .poster-history h1 {
    font-size: clamp(3rem, 16vw, 5.2rem);
  }

  .history-concept .evidence-key,
  .history-concept .gallery {
    grid-template-columns: 1fr;
  }

  .history-concept .gallery > .ph,
  .history-concept .gallery-origins #ph-curteich-dusk-1966,
  .history-concept .gallery-origins #ph-holiday-inn-1970s,
  .history-concept .gallery-origins #ph-slot-joynt-token-1980,
  .history-concept .gallery-origins #ph-slot-joynt-1982,
  .history-concept .gallery-carnival #ph-facade-rising-1995,
  .history-concept .gallery-carnival #ph-jocko-night,
  .history-concept .gallery-carnival #ph-fortune-teller,
  .history-concept .gallery-closure #ph-closed-boardwalk-2006,
  .history-concept .gallery-closure #ph-tower-stripped-2006,
  .history-concept .gallery-closure #ph-dark-week-before-2006,
  .history-concept .gallery-closure #ph-implosion-before-2006,
  .history-concept .gallery-closure #ph-implosion-dust-2006,
  .history-concept .gallery-closure #ph-cupola-rubble-2006 {
    width: 100%;
    grid-column: 1 / -1;
  }

  .history-concept .gallery-origins #ph-slot-joynt-token-1980 {
    width: min(82vw, 340px);
  }

  .history-concept .tl-item {
    grid-template-columns: 1fr;
    gap: .55rem;
  }

  .history-concept .chapter-index {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .history-concept .chapter-index a,
  .history-concept .chapter-index a:nth-child(3) {
    border-right: 1px solid var(--history-rule);
    border-bottom: 1px solid var(--history-rule);
  }

  .history-concept .chapter-index a:nth-child(2n) {
    border-right: 0;
  }

  .history-concept .chapter-index a:nth-last-child(-n+2) {
    border-bottom: 0;
  }
}

@media print {
  .history-concept .masthead,
  .history-concept .ribbon,
  .history-concept .footer,
  .history-concept .chapter-index {
    display: none;
  }

  .history-concept .section {
    padding: 1.25rem 0;
    background: #fff !important;
    break-inside: avoid;
  }
}

/* History gallery doc figures (incl. the grafted own-site artifacts): the base
   .ph-doc fit-content sizing collapses to caption min-content inside the
   documentary gallery grid while lazy images load - fill the grid cell like
   every other plate; images keep their natural width, centered. */
.history-concept .gallery .ph-doc {
  width: 100%;
}
.history-concept .gallery .ph-doc img {
  width: auto;
  max-width: 100%;
}

/* Grafted own-site artifacts, placed as deliberate plates in the 12-column
   chapter galleries (unplaced grid children default to span 1 ≈ one twelfth). */
.history-concept .gallery-carnival #ph-own-homepage-1996 {
  grid-column: 1 / -1;
  width: min(100%, 595px);
  justify-self: center;
}

.history-concept .gallery-closure #ph-own-promo-dec-2005 {
  grid-column: 1 / -1;
  width: min(100%, 575px);
  justify-self: center;
}

/* The Mirage-era gallery, recomposed as a plate map (owner note, July 21:
   the two-column rack left a void under the short web-screenshot card and a
   gap above the wide Strip shot). Mirrors the origins chapter: small doc
   plate beside the tall Ektachrome, the 2002 Strip view centered full-row. */
.history-concept .gallery-transition {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.history-concept .gallery-transition #ph-own-homepage-2000 {
  grid-column: span 4;
  width: min(100%, 288px);
  justify-self: center;
  align-self: center;
}

.history-concept .gallery-transition #ph-surf-buffet-2000 {
  grid-column: span 8;
}

.history-concept .gallery-transition #ph-strip-wide-2002 {
  grid-column: 1 / -1;
  width: min(100%, 640px);
  justify-self: center;
}

@media (max-width: 640px) {
  .history-concept .gallery-transition {
    grid-template-columns: 1fr;
  }

  .history-concept .gallery-transition #ph-own-homepage-2000,
  .history-concept .gallery-transition #ph-surf-buffet-2000,
  .history-concept .gallery-transition #ph-strip-wide-2002 {
    grid-column: auto;
    width: 100%;
  }
}

/* ==========================================================================
   QUIET CREDITS (owner approved the eats lab, July 22, 2026) - two pieces:
   1) .hero-source: one always-visible sentence under every hero image; the
      photograph itself carries nothing. Inside a .poster the paragraph lands
      in the grid row under the photo and must ride above .poster::after's
      bottom gradient (z-index 1). Index + dining keep their manifest/JS chip
      spans in the markup contract; CSS retires them from view.
   2) The eats captions per the approved concept: attribution + AI flag stay
      visible; the itemized notes and the standing-basis boilerplate (already
      stated site-wide in the footer) ride behind a hover/focus/tap reveal
      and always print expanded.
   ========================================================================== */
.hero-source {
  position: relative;
  z-index: 2;
  grid-column: 1 / -1;
  margin: 0;
  padding: 0.5rem var(--gutter) 0.6rem;
  color: #e6dbc4;
  font-size: 0.7rem;
  line-height: 1.45;
}
.hero-source a { color: inherit; }
/* clear the showroom's curtain pillars (.showroom-hero::before/::after, z4,
   width clamp(24px, 6vw, 120px)) and the bottom-right scroll chips
   ("check in", "see tonight's bill") so the line never runs under either */
.page-showroom .hero-source {
  padding-left: calc(clamp(24px, 6vw, 120px) + 1rem);
  padding-right: calc(clamp(24px, 6vw, 120px) + 10rem);
}
.page-rooms .hero-source { padding-right: max(var(--gutter), 8rem); }
.page-index .poster .ph-full figcaption .credit,
.page-dining .poster .ph-full figcaption .credit,
.page-index .poster-live-note,
.page-dining .poster-live-note { display: none; }
@media print {
  .hero-source { color: #444; }
}

/* ---- eats captions (concepts/the eats/credits-quiet, verbatim) ---- */
.page-dining .ph .credit {
  font-size: 0.7rem;
  line-height: 1.5;
  color: #9a9081;
  margin-top: 0.3rem;
}
.page-dining .ph .credit a { color: inherit; text-decoration: none; }
.page-dining .ph .credit a:hover,
.page-dining .ph .credit a:focus { text-decoration: underline; color: var(--brick); }
.page-dining .credit .src-more { display: none; }
.page-dining .credit:hover .src-more,
.page-dining .credit:focus .src-more,
.page-dining .credit:focus-within .src-more { display: inline; }
.page-dining .credit .src-cue {
  display: inline-block;
  font-style: normal;
  font-size: 0.64rem;
  line-height: 1.25;
  color: #8b8172;
  border: 1px solid rgba(122, 110, 90, 0.45);
  border-radius: 999px;
  padding: 0 0.36em;
  margin-left: 0.35em;
  cursor: help;
  user-select: none;
}
.page-dining .credit:hover .src-cue,
.page-dining .credit:focus .src-cue,
.page-dining .credit:focus-within .src-cue { color: var(--brick); border-color: var(--brick); }
@media print {
  .page-dining .credit .src-more { display: inline !important; }
  .page-dining .credit .src-cue { display: none !important; }
}


/* ============================================================ THE ROOM STILL
   MAKES NOISE - the front page's listening invitation + bulb-raceway player
   (concepts/main page 3, July 2026; selected House Bill button + green-and-
   brass 50-bulb floater from that folder's studies). Only the homepage half of
   the lab's stylesheet ships - the full listening chapter on The Casino
   (.casino-sound) stays in the lab, so its rules are NOT here; the
   .casino-sound-floater/-mini-toggle/-now/-return/-progress-row/-volume/-close
   classes below are the floater's own kit, shared verbatim with the lab. The
   floater's element colors use var(--sound-*, fallback) - the --sound-*
   custom properties are lab-scoped and undefined here, so the fallbacks are
   the live values. The fifty progress bulbs are lit by js/home-sound.js from
   --lvl values measured off the recording itself. */

.home-sound-invite {
  --home-sound-gold: #f5bd42;
  --home-sound-aqua: #87d6cf;
  --home-sound-cream: #f7ecd5;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  color: var(--home-sound-cream);
  background:
    radial-gradient(circle at 84% 20%, rgba(101, 21, 40, 0.42), transparent 28rem),
    linear-gradient(120deg, #08090b, #121017 60%, #1a0d13);
  border-block: 1px solid rgba(245, 189, 66, 0.32);
}

.home-sound-invite::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 0.2;
  background: repeating-linear-gradient(
    0deg,
    transparent 0 3px,
    rgba(255, 255, 255, 0.025) 3px 4px
  );
}

.home-sound-inner {
  width: min(1180px, calc(100% - (2 * var(--gutter))));
  margin-inline: auto;
  padding: clamp(3.3rem, 7vw, 6rem) 0;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(20rem, 0.85fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}

.home-sound-image {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
  display: block;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  color: inherit;
  border: 1px solid rgba(245, 189, 66, 0.58);
  background: #08090b;
  box-shadow:
    0 28px 65px rgba(0, 0, 0, 0.5),
    0 0 0 5px rgba(101, 21, 40, 0.3);
  text-align: left;
}

.home-sound-image::after {
  content: "";
  position: absolute;
  inset: 0;
  box-shadow:
    inset 0 0 55px rgba(0, 0, 0, 0.22),
    inset 0 -70px 65px -58px rgba(0, 0, 0, 0.78);
  pointer-events: none;
}

.home-sound-image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center 45%;
}

.home-sound-image > span {
  position: absolute;
  z-index: 1;
  right: 0.85rem;
  bottom: 0.75rem;
  padding: 0.4rem 0.58rem;
  color: #17100d;
  background: var(--home-sound-gold);
  font: 500 0.7rem/1 var(--marquee);
  letter-spacing: 0.1em;
}

.home-sound-copy .eyebrow {
  color: var(--home-sound-gold);
}

.home-sound-copy h2 {
  max-width: 10ch;
  margin: 0.3rem 0 1rem;
  color: var(--home-sound-cream);
  font-family: var(--display);
  font-size: clamp(3.1rem, 6vw, 5.4rem);
  line-height: 0.9;
  text-shadow: 4px 5px 0 #651528;
}

.home-sound-copy > p:not(.eyebrow, .home-sound-note) {
  max-width: 35rem;
  color: #d0c3b0;
  font-size: clamp(1rem, 1.4vw, 1.14rem);
}

.home-sound-cta {
  width: min(100%, 32rem);
  margin-top: 1.5rem;
  padding: 1.1rem 1.35rem;
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  color: var(--home-sound-cream);
  background: #651528;
  border: 3px solid var(--home-sound-cream);
  outline: 2px dotted var(--home-sound-gold);
  outline-offset: -8px;
  box-shadow: 6px 6px 0 #2c0c11;
  cursor: pointer;
  text-align: left;
  text-decoration: none;
  transition: background-color 150ms ease;
}

.home-sound-cta:hover {
  background: #772832;
}

.home-sound-cta:focus-visible {
  outline: 3px solid var(--home-sound-aqua);
  outline-offset: 5px;
}

.home-sound-play {
  width: 2.7rem;
  flex: 0 0 2.7rem;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #651528;
  background: var(--home-sound-gold);
  box-shadow: 0 0 0 3px var(--home-sound-cream);
}

.home-sound-play::before {
  content: "";
  width: 0;
  height: 0;
  margin-left: 3px;
  border-block: 7px solid transparent;
  border-left: 11px solid #651528;
}

.home-sound-invite.is-playing .home-sound-play::before {
  width: 4px;
  height: 15px;
  margin-left: -6px;
  border: 0;
  background: #651528;
  box-shadow: 9px 0 0 #651528;
}

.home-sound-cta small,
.home-sound-cta strong {
  display: block;
}

.home-sound-cta > span:last-child {
  min-width: 0;
}

.home-sound-cta small {
  margin-bottom: 0.28rem;
  color: var(--home-sound-gold);
  font: 700 0.72rem/1.2 var(--body);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.home-sound-cta strong {
  font-family: var(--display);
  font-size: clamp(1.3rem, 2.25vw, 1.55rem);
  line-height: 1.12;
  letter-spacing: 0.01em;
}

.home-sound-note {
  max-width: 36rem;
  margin: 1.2rem 0 0;
  color: #998d7d;
  font-size: 0.7rem;
  line-height: 1.55;
}

.home-sound-note a {
  color: var(--home-sound-aqua);
}

.home-sound-note a:hover,
.home-sound-note a:focus-visible {
  color: var(--home-sound-cream);
}

.home-sound-status {
  min-height: 1.2em;
  margin: 1rem 0 0;
  color: #b6aa98;
  font-size: 0.76rem;
}

.casino-sound-floater {
  position: fixed;
  z-index: 120;
  right: max(18px, env(safe-area-inset-right));
  bottom: max(18px, env(safe-area-inset-bottom));
  width: min(430px, calc(100vw - 36px));
  min-height: 98px;
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 0.7rem;
  padding: 0.75rem;
  border: 1px solid #d49a37;
  border-radius: 4px;
  color: var(--sound-cream, #f7ecd5);
  background:
    linear-gradient(135deg, rgba(101, 21, 40, 0.96), rgba(16, 14, 20, 0.98) 52%),
    #111017;
  box-shadow:
    0 18px 55px rgba(0, 0, 0, 0.55),
    inset 0 0 0 3px rgba(245, 189, 66, 0.12);
  animation: casino-sound-arrive 300ms ease both;
}

.casino-sound-floater[hidden] {
  display: none;
}

.casino-sound-floater::before {
  content: "";
  position: absolute;
  inset: 4px;
  border: 1px dotted rgba(245, 189, 66, 0.34);
  border-radius: 2px;
  pointer-events: none;
}

.casino-sound-mini-toggle,
.casino-sound-volume,
.casino-sound-close,
.casino-sound-return {
  position: relative;
  z-index: 1;
  border: 0;
  color: inherit;
  cursor: pointer;
}

.casino-sound-mini-toggle {
  width: 48px;
  aspect-ratio: 1;
  border-radius: 50%;
  color: #210d0d;
  background: var(--sound-gold, #f5bd42);
  box-shadow: 0 3px 0 #7b2b1e;
}

.casino-sound-mini-toggle span::before {
  content: "";
  position: absolute;
  left: 17px;
  top: 14px;
  width: 5px;
  height: 19px;
  background: #4c111b;
  box-shadow: 10px 0 0 #4c111b;
}

.casino-sound-floater.is-paused .casino-sound-mini-toggle span::before {
  left: 19px;
  top: 13px;
  width: 0;
  height: 0;
  background: transparent;
  box-shadow: none;
  border-block: 11px solid transparent;
  border-left: 16px solid #4c111b;
}

.casino-sound-now {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.casino-sound-now small {
  display: block;
  overflow: hidden;
  color: var(--sound-gold, #f5bd42);
  font: 500 0.6rem/1.1 var(--marquee);
  letter-spacing: 0.13em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.casino-sound-return {
  padding: 0.15rem 0 0.35rem;
  background: transparent;
  font: 400 1rem/1 var(--display);
}

.casino-sound-return:hover,
.casino-sound-return:focus-visible {
  color: var(--sound-aqua, #87d6cf);
  text-decoration: underline;
}

.casino-sound-progress-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.45rem;
  color: #c6b8a5;
  font: 500 0.58rem/1 var(--marquee);
}

.casino-sound-volume,
.casino-sound-close {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: transparent;
}

.casino-sound-volume:hover,
.casino-sound-volume:focus-visible,
.casino-sound-close:hover,
.casino-sound-close:focus-visible {
  background: rgba(255, 255, 255, 0.09);
}

.casino-sound-volume span::before {
  content: "\266A";
  color: var(--sound-aqua, #87d6cf);
  font: 700 1.25rem/1 serif;
}

.casino-sound-floater.is-muted .casino-sound-volume span::before {
  content: "\D7";
  color: #d9a0a5;
}

.casino-sound-close {
  font-size: 1.65rem;
  line-height: 1;
}

/* The selected green-and-brass bulb player, used by the homepage recording. */
.home-sound-floater {
  height: 100px;
  min-height: 100px;
  grid-template-columns: 48px minmax(0, 1fr) 32px 32px;
  border: 2px solid #bb8535;
  border-radius: 3px;
  padding-top: 0.9rem;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.055), transparent 34%, rgba(0, 0, 0, 0.3)),
    linear-gradient(105deg, #173f3d, #102c2c 58%, #211411);
  box-shadow:
    0 18px 55px rgba(0, 0, 0, 0.68),
    inset 0 -5px 0 rgba(32, 12, 9, 0.28);
}

.home-sound-floater::before {
  display: none;
}

.home-sound-floater::after {
  content: "";
  position: absolute;
  z-index: 0;
  left: 6px;
  right: 6px;
  top: 4px;
  height: 7px;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.12), transparent 45%),
    #7b4a22;
  border-bottom: 1px solid rgba(255, 211, 120, 0.35);
  pointer-events: none;
}

.home-sound-floater .casino-sound-now {
  width: 100%;
}

.home-sound-progress-row {
  grid-template-columns: 2.25rem minmax(0, 1fr) 2.25rem;
  font-variant-numeric: tabular-nums;
}

.home-sound-progress-row > span:first-child {
  text-align: right;
}

.home-sound-progress-row > span:last-child {
  text-align: left;
}

.home-sound-progress-track {
  position: relative;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: 13px;
  padding: 3px 2px;
  overflow: hidden;
  contain: size layout paint;
  background: #291b13;
  border: 1px solid rgba(185, 128, 45, 0.56);
  box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.65);
}

.home-sound-progress-bulbs {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.home-sound-progress-bulbs b {
  --b: calc(var(--lvl) / 100);
  flex: 0 0 2%;
  width: 2%;
  min-width: 2%;
  max-width: 2%;
  height: 100%;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 42%,
    #4a3826 0 20%, #33261a 32% 46%, rgba(20, 14, 9, 0.85) 58%, transparent 76%);
}

.home-sound-progress-bulbs b.on {
  opacity: calc(0.52 + var(--b) * 0.48);
  background: radial-gradient(circle at 50% 42%,
    #fff7e2 0 17%, #f6bd4a 29% 47%, rgba(246, 189, 74, 0.48) 60%, transparent 80%);
  box-shadow: 0 0 4px rgba(246, 189, 74, 0.82);
}

.home-sound-progress-bulbs b.now {
  opacity: 1;
  box-shadow: 0 0 5px rgba(255, 247, 226, 0.98);
}

#home-sound-progress {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

@keyframes casino-sound-arrive {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 820px) {
  .home-sound-inner {
    width: min(680px, calc(100% - (2 * var(--gutter))));
    grid-template-columns: 1fr;
  }

  .home-sound-copy {
    grid-row: 1;
  }

  .home-sound-image {
    grid-row: 2;
  }
}

@media (max-width: 560px) {
  .home-sound-inner {
    padding-block: 3rem;
  }

  .home-sound-copy h2 {
    font-size: clamp(2.8rem, 15vw, 4.5rem);
  }

  .casino-sound-floater {
    right: 0;
    bottom: 0;
    width: 100%;
    min-height: 84px;
    border-width: 1px 0 0;
    border-radius: 0;
    padding: 0.65rem max(0.65rem, env(safe-area-inset-right))
      max(0.65rem, env(safe-area-inset-bottom))
      max(0.65rem, env(safe-area-inset-left));
  }

  .casino-sound-mini-toggle {
    width: 44px;
  }

  .casino-sound-volume {
    display: none;
  }

  .casino-sound-floater {
    grid-template-columns: auto 1fr auto;
  }

  .home-sound-floater {
    height: 100px;
    min-height: 100px;
    grid-template-columns: 48px minmax(0, 1fr) 32px;
    border-width: 2px 0 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-sound-invite *,
  .casino-sound-floater {
    animation: none !important;
    transition: none !important;
  }
}


/* ============================================================ THE ROOM TOUR
   - rooms.html "As a guest shot it" rebuilt as five uncropped plates in walk
   order (concepts/rooms-photo-tour, arrangement A - owner's pick, July 25
   2026). Only the section's own rules ship - the lab's chrome (concept bar,
   A/B switch, window-lead) stays in the lab, so the .only-a/.only-b toggle
   classes in the markup are inert here. The lab scoped its --tour-* palette
   on the concept body class; production hosts the same values on .room-tour.
   Deliberately no lightbox: .tour-full-link opens each image's
   full-resolution file (the img/*-full.png pipeline-master copies). Relies
   on .page-rooms' --hotel-* palette (defined in the hotel chapter above). */

.room-tour {
  --tour-mat: #17110f;
  --tour-mat-2: #241a17;
  --tour-rule: rgba(75, 41, 35, 0.22);
  padding-bottom: clamp(2.5rem, 6vw, 4.5rem);
}

.tour-intro {
  display: grid;
  gap: 1.2rem clamp(1.5rem, 4vw, 3.5rem);
  align-items: end;
  margin-bottom: clamp(1.8rem, 4vw, 2.8rem);
}
@media (min-width: 900px) {
  .tour-intro { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); }
}
.tour-intro h2 { margin-bottom: 0.15em; }
.tour-intro p { margin: 0; max-width: 44ch; color: var(--ink-soft); }

/* the ticket strip that heads the tour */
.tour-strip {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0 0 clamp(1rem, 2.5vw, 1.6rem);
  font-family: var(--marquee);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.7rem;
  color: var(--hotel-brown, #4b2923);
}
.tour-strip::before,
.tour-strip::after {
  content: "";
  flex: 1;
  height: 1px;
  background: repeating-linear-gradient(90deg, var(--tour-rule) 0 6px, transparent 6px 12px);
}

/* ---- the lead plate ------------------------------------------------------ */
.tour-lead {
  margin: 0;
  background: linear-gradient(178deg, var(--tour-mat-2), var(--tour-mat));
  border-radius: 4px;
  padding: clamp(0.7rem, 1.8vw, 1.15rem);
  box-shadow: 0 22px 50px rgba(23, 17, 15, 0.28);
}
.tour-lead-frame {
  position: relative;
  border: 1px solid rgba(246, 189, 74, 0.28);
  background: #0d0908;
}
.tour-full-link {
  position: relative;
  display: block;
  color: inherit;
  line-height: 0;
  text-decoration: none;
  cursor: zoom-in;
}
.tour-full-link picture { display: block; }
.tour-fullsize {
  position: absolute;
  z-index: 3;
  top: 0.55rem;
  right: 0.55rem;
  padding: 0.42rem 0.62rem;
  color: var(--hotel-maroon, #6f1727);
  background: rgba(255, 250, 240, 0.94);
  border: 1px solid rgba(111, 23, 39, 0.32);
  box-shadow: 0 0.3rem 0.8rem rgba(0, 0, 0, 0.22);
  font: 700 0.55rem/1 var(--body);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.tour-full-link:hover .tour-fullsize {
  color: #fffaf0;
  background: var(--hotel-maroon, #6f1727);
}
.tour-lead img { width: 100%; height: auto; }
.tour-lead .plate-tag {
  position: absolute;
  left: 0;
  bottom: 0;
  background: rgba(23, 17, 15, 0.78);
  color: #f6bd4a;
  font-family: var(--marquee);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-size: 0.66rem;
  padding: 0.35rem 0.8rem;
  backdrop-filter: blur(2px);
}
.tour-lead figcaption {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.1rem;
  align-items: baseline;
  color: #e8dcc6;
  padding: 0.85rem 0.35rem 0.15rem;
  font-size: 0.95rem;
}
.tour-lead figcaption b { color: #fff5e2; font-family: var(--display); font-weight: 400; letter-spacing: 0.01em; }
.tour-lead figcaption span.sub { color: rgba(232, 220, 198, 0.72); }

/* ---- the pair ------------------------------------------------------------ */
.tour-pair {
  display: grid;
  gap: clamp(1.1rem, 3vw, 2rem);
  margin-top: clamp(1.2rem, 3vw, 2rem);
}
@media (min-width: 860px) {
  /* the dresser frame is much wider than it is tall; giving it the wider
     column keeps both photographs at a similar visual height, uncropped. */
  .tour-pair { grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr); align-items: end; }
}
.tour-plate { margin: 0; }
.tour-plate .plate-img {
  border: 1px solid var(--tour-rule);
  background: #fffaf0;
  padding: 0.45rem;
  box-shadow: 0 12px 26px rgba(43, 26, 25, 0.14);
}
.tour-plate img { width: 100%; height: auto; }
.tour-plate figcaption {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.15rem 0.7rem;
  padding-top: 0.7rem;
  font-size: 0.94rem;
  color: var(--ink-soft);
}
.tour-plate figcaption b { color: var(--hotel-brown, #4b2923); display: block; }
.plate-no {
  font-family: var(--marquee);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  color: var(--hotel-pink, #ef507b);
  border: 1px solid currentColor;
  border-radius: 999px;
  height: 1.55rem;
  min-width: 1.55rem;
  display: grid;
  place-items: center;
  padding: 0 0.3rem;
  align-self: start;
  margin-top: 0.12rem;
}

/* ---- the table view, kept in this section (arrangement A) ---------------- */
.tour-table-inline {
  display: grid;
  gap: clamp(1.1rem, 3vw, 2.2rem);
  align-items: center;
  margin-top: clamp(1.6rem, 4vw, 2.6rem);
  padding-top: clamp(1.6rem, 4vw, 2.4rem);
  border-top: 1px solid var(--tour-rule);
}
@media (min-width: 900px) {
  .tour-table-inline { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); }
}
.tour-table-inline .side-copy p { margin: 0 0 0.7rem; color: var(--ink-soft); }
.tour-table-inline .side-copy h3 {
  font-family: var(--display);
  font-size: clamp(1.4rem, 3vw, 2rem);
  margin: 0 0 0.5rem;
  color: var(--hotel-brown, #4b2923);
}

/* ---- arrangement A's disclosed recomposed overview ---------------------- */
.tour-recomposed {
  display: grid;
  gap: clamp(1.1rem, 3vw, 2.2rem);
  align-items: center;
  margin-top: clamp(1.8rem, 4vw, 3rem);
  padding-top: clamp(1.8rem, 4vw, 2.6rem);
  border-top: 1px solid var(--tour-rule);
}
@media (min-width: 900px) {
  .tour-recomposed { grid-template-columns: minmax(0, 1.35fr) minmax(18rem, 0.65fr); }
}
.tour-recomposed .side-copy p { margin: 0 0 0.7rem; color: var(--ink-soft); }
.tour-recomposed .side-copy h3 {
  margin: 0 0 0.5rem;
  color: var(--hotel-brown, #4b2923);
  font-family: var(--display);
  font-size: clamp(1.4rem, 3vw, 2.2rem);
}

.tour-source-note {
  margin-top: clamp(1.4rem, 3vw, 2rem);
  font-size: 0.82rem;
  line-height: 1.6;
  color: var(--ink-soft);
  max-width: 78ch;
}


/* ============================================================ SELECTED IMAGE
   HEROES - the guestbook's day-facade hero and the gift shop's doorway scene
   (concepts/selected-image-concepts, July 25 2026). Ported verbatim minus the
   lab chrome (.concept-bar, :root concept vars) and one dead rule
   (.guestbook-hero-image img - the class rides the img itself, it has no img
   children). The .forgot-wall-concept class name ships as the lab wrote it
   (history-concept / giftshop-mock precedent). "Rye" in the kicker stack is
   deliberate: not self-hosted, it falls through to Georgia exactly as it did
   in the approved concept - no new font files ship. .forgot-scene > img is a
   CHILD selector: the scene image must stay a direct <img> child of the
   figure (no <picture> wrapper - the 6.18 lesson). */

/* Wish You Were Here */
.guestbook-image-hero {
  position: relative;
  min-height: min(760px, 74vh);
  display: grid;
  align-items: end;
  overflow: hidden;
  color: #fff;
  background: #151015;
  isolation: isolate;
  border-bottom: .7rem solid #742435;
}

.guestbook-image-hero::after {
  content: "";
  position: absolute;
  inset: 1rem;
  z-index: -1;
  border: 1px solid rgba(255, 255, 255, .3);
  pointer-events: none;
}

.guestbook-hero-image {
  position: absolute;
  inset: 0;
  z-index: -4;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 50%;
}

.guestbook-hero-shade {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(14, 9, 12, .92) 0%, rgba(14, 9, 12, .64) 35%, rgba(14, 9, 12, .1) 72%),
    linear-gradient(0deg, rgba(14, 9, 12, .95) 0%, rgba(14, 9, 12, .16) 58%);
}

.guestbook-hero-copy {
  width: min(74rem, calc(100% - 3rem));
  margin: 0 auto;
  padding: 6rem 0 5.5rem;
}

.guestbook-hero-kicker {
  margin: 0 0 .9rem;
  color: #f4bd29;
  font: 700 clamp(.72rem, 1.15vw, .94rem)/1.35 "Rye", Georgia, serif;
  letter-spacing: .07em;
}

.guestbook-hero-kicker span {
  display: inline-block;
  margin-left: .7rem;
  padding: .25rem .45rem;
  color: #e9ddd2;
  background: rgba(24, 17, 20, .75);
  font: 700 .56rem/1 "Public Sans", Arial, sans-serif;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.guestbook-image-hero h1 {
  max-width: 58rem;
  margin: 0;
  color: #f6eedc;
  font: 400 clamp(4.6rem, 9vw, 9rem)/.84 "Alfa Slab One", Georgia, serif;
  letter-spacing: -.045em;
  text-shadow: .08em .08em 0 rgba(111, 23, 39, .76);
}

.guestbook-hero-lede {
  max-width: 44rem;
  margin: 1.4rem 0 0;
  color: rgba(255, 255, 255, .94);
  font-size: clamp(1rem, 1.45vw, 1.18rem);
  line-height: 1.58;
}

.guestbook-hero-workers {
  max-width: 44rem;
  margin: .65rem 0 0;
  color: rgba(255, 255, 255, .7);
  font-size: .86rem;
}

.guestbook-enter {
  display: inline-block;
  margin-top: 1.25rem;
  color: #8fe0dd;
  border-bottom: 1px solid currentColor;
  font: 700 .72rem/2 "Public Sans", Arial, sans-serif;
  letter-spacing: .14em;
  text-decoration: none;
  text-transform: uppercase;
}

.guestbook-enter:hover,
.guestbook-enter:focus-visible {
  color: #f4bd29;
}

.guestbook-hero-source {
  position: absolute;
  left: 1.55rem;
  bottom: 1.2rem;
  margin: 0;
  color: rgba(255, 255, 255, .58);
  font: 500 .62rem/1.3 "Public Sans", Arial, sans-serif;
  letter-spacing: .03em;
}

/* Everything the suitcase forgot */
.forgot-scene figcaption {
  position: absolute;
  z-index: 3;
  right: 1rem;
  bottom: .8rem;
  padding: .36rem .55rem;
  color: rgba(255, 255, 255, .9);
  background: rgba(17, 12, 13, .76);
  font: 600 .68rem/1.25 "Public Sans", Arial, sans-serif;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.forgot-wall-concept {
  padding: 0 0 clamp(4rem, 8vw, 8rem);
}

.forgot-scene {
  position: relative;
  width: 100%;
  min-height: min(760px, 76vh);
  display: grid;
  align-items: end;
  margin: 0;
  overflow: hidden;
  color: #fff;
  background: #151015;
  isolation: isolate;
  border-bottom: .7rem solid #8b2731;
}

.forgot-scene > img {
  position: absolute;
  inset: 0;
  z-index: -4;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 50%;
  filter: saturate(.82) contrast(1.07) brightness(.86) sepia(.06);
}

.forgot-scene-shade {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.018) 0, rgba(255,255,255,.018) 1px, transparent 1px, transparent 4px),
    linear-gradient(90deg, rgba(17, 10, 12, .92) 0%, rgba(17, 10, 12, .62) 35%, rgba(17, 10, 12, .08) 72%),
    linear-gradient(0deg, rgba(17, 10, 12, .96) 0%, rgba(17, 10, 12, .12) 64%);
}

.forgot-scene::after {
  position: absolute;
  inset: 1rem;
  z-index: -1;
  content: "";
  border: 1px solid rgba(255,255,255,.3);
  pointer-events: none;
}

.forgot-scene-copy {
  width: min(74rem, calc(100% - 3rem));
  margin: 0 auto;
  padding: 6rem 0 5.4rem;
}

.forgot-scene-copy .shop-kicker {
  margin: 0 0 .9rem;
  color: #f1c32e;
  font: 700 .76rem/1.3 "Public Sans", Arial, sans-serif;
  letter-spacing: .19em;
  text-transform: uppercase;
}

.forgot-scene-copy .shop-heading {
  max-width: 11ch;
  margin: 0;
  color: #f7edda;
  font: 400 clamp(4.5rem, 8.5vw, 8.5rem)/.84 "Alfa Slab One", Georgia, serif;
  letter-spacing: -.04em;
  text-shadow: .08em .08em 0 rgba(111, 23, 39, .78);
}

.forgot-scene-copy .shop-intro {
  max-width: 43rem;
  margin: 1.35rem 0 0;
  color: rgba(255,255,255,.92);
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  line-height: 1.6;
}

.forgot-enter {
  display: inline-block;
  margin-top: 1.3rem;
  color: #8fe0dd;
  border-bottom: 1px solid currentColor;
  font: 700 .72rem/2 "Public Sans", Arial, sans-serif;
  letter-spacing: .14em;
  text-decoration: none;
  text-transform: uppercase;
}

.forgot-enter:hover,
.forgot-enter:focus-visible {
  color: #f1c32e;
}

.forgot-wall-concept .forgot-inner {
  width: min(1180px, 100%);
  padding-inline: var(--gutter);
  margin-top: clamp(3rem, 6vw, 5rem);
  scroll-margin-top: 1rem;
}

.forgot-wall-concept .sundries-strip {
  margin-top: 0;
}

@media (max-width: 840px) {
  .guestbook-image-hero {
    min-height: 42rem;
  }

  .guestbook-hero-image {
    object-position: 55% center;
  }

  .guestbook-hero-shade {
    background:
      linear-gradient(90deg, rgba(14, 9, 12, .86) 0%, rgba(14, 9, 12, .48) 62%, rgba(14, 9, 12, .1) 100%),
      linear-gradient(0deg, rgba(14, 9, 12, .98) 0%, rgba(14, 9, 12, .12) 70%);
  }

  .guestbook-hero-copy {
    width: calc(100% - 2rem);
    padding: 5rem 0 5rem;
  }

  .forgot-scene-copy {
    width: calc(100% - 2rem);
    padding: 5rem 0 5rem;
  }

  .forgot-scene-copy .shop-heading {
    font-size: clamp(3.4rem, 14vw, 5.5rem);
  }
}

@media (max-width: 520px) {
  .guestbook-image-hero {
    min-height: 39rem;
  }

  .guestbook-image-hero::after {
    inset: .55rem;
  }

  .guestbook-image-hero h1 {
    font-size: clamp(3.6rem, 16vw, 5rem);
  }

  .guestbook-hero-kicker span {
    display: block;
    width: max-content;
    margin: .55rem 0 0;
  }

  .guestbook-hero-lede {
    font-size: .95rem;
  }

  .guestbook-hero-workers {
    display: none;
  }

  .guestbook-hero-source {
    left: 1rem;
    bottom: .8rem;
  }

  .forgot-scene-copy .shop-heading {
    font-size: clamp(3rem, 15vw, 4.4rem);
  }

  .forgot-scene {
    min-height: 40rem;
  }

  .forgot-scene::after {
    inset: .55rem;
  }

  .forgot-scene > img {
    object-position: 58% center;
  }

  .forgot-scene figcaption {
    right: 1rem;
    bottom: .8rem;
    max-width: 52%;
    text-align: right;
  }
}


/* ============================================================ SHOP HOW-TO - 
   the gift shop's basket → register → souvenir-receipt flow, spelled out
   (owner ask, July 25 2026): a three-step counter card above aisle one, a
   chattier basket chip ("Ring it up →" line, giftshop.js), and the print
   button relabeled for the save-as-PDF path with a note under the receipt.
   Scoped to .giftshop-mock like the rest of the shop's kit. */

.giftshop-mock .shop-howto {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 0.9rem 1.4rem;
  margin: 1.7rem 0 0;
  padding: 1.05rem 1.25rem;
  background: #fdf6e4;
  border: 1px dashed rgba(107, 62, 38, 0.5);
  border-radius: 4px;
  box-shadow: 3px 4px 0 rgba(53, 17, 14, 0.16);
}

.giftshop-mock .shop-howto li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.65rem;
  align-items: start;
  font-size: 0.9rem;
  line-height: 1.5;
  color: #4a3423;
}

.giftshop-mock .shop-howto li b {
  width: 1.6rem;
  height: 1.6rem;
  display: grid;
  place-items: center;
  margin-top: 0.1rem;
  border-radius: 50%;
  color: #35110e;
  background: var(--gs-yellow, #f4bd29);
  border: 2px solid #35110e;
  box-shadow: 1px 2px 0 rgba(53, 17, 14, 0.35);
  font-family: var(--marquee);
  font-size: 0.82rem;
}

.giftshop-mock .shop-howto li strong {
  display: block;
  font-family: var(--marquee);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.78rem;
  color: var(--gs-red, #a61f18);
  margin-bottom: 0.12rem;
}

.giftshop-mock .cart-chip em {
  display: block;
  margin-top: 0.18rem;
  font-style: normal;
  font-size: 0.6rem;
  letter-spacing: 0.18em;
  color: var(--gs-yellow, #f4bd29);
}

.giftshop-mock .ring-note,
.giftshop-mock .receipt-note {
  display: block;
  margin-top: 0.6rem;
  font-size: 0.78rem;
  line-height: 1.5;
  color: #6d5842;
}

.giftshop-mock .receipt-note {
  max-width: 46ch;
}

/* ==========================================================================
   VENDOR - PANNELLUM 2.5.7 (the pool QTVR viewer), July 28, 2026
   Matt Petroff's panorama viewer, MIT licence (text: js/pannellum-LICENSE.txt;
   attribution comment kept below). Self-hosted per house rule - no CDN, and
   every url() in it is an embedded data: URI, so nothing external ever
   loads. Drives rooms.html's "Reopen the 2003 tour" dialog via
   js/pannellum-2.5.7.js + js/pool-qtvr.js over the six untouched cube
   faces in img/pool-qtvr/.
   ========================================================================== */
/* Pannellum 2.5.7, https://github.com/mpetroff/pannellum */
.pnlm-container{margin:0;padding:0;overflow:hidden;position:relative;cursor:default;width:100%;height:100%;font-family:Helvetica,"Nimbus Sans L","Liberation Sans",Arial,sans-serif;background:#f4f4f4 url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2267%22%20height%3D%22100%22%20viewBox%3D%220%200%2067%20100%22%3E%0A%3Cpath%20stroke%3D%22%23ccc%22%20fill%3D%22none%22%20d%3D%22M33.5%2C50%2C0%2C63%2C33.5%2C75%2C67%2C63%2C33.5%2C50m-33.5-50%2C67%2C25m-0.5%2C0%2C0%2C75m-66.5-75%2C67-25m-33.5%2C75%2C0%2C25m0-100%2C0%2C50%22%2F%3E%0A%3C%2Fsvg%3E%0A') repeat;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;user-select:none;outline:0;line-height:1.4;contain:content}.pnlm-container *{box-sizing:content-box}.pnlm-ui{position:absolute;width:100%;height:100%;z-index:1}.pnlm-grab{cursor:grab;cursor:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2226%22%20width%3D%2226%22%3E%0A%3Cpath%20stroke%3D%22%23000%22%20stroke-width%3D%221px%22%20fill%3D%22%23fff%22%20d%3D%22m15.3%2020.5s6.38-6.73%204.64-8.24-3.47%201.01-3.47%201.01%203.61-5.72%201.41-6.49c-2.2-0.769-3.33%204.36-3.33%204.36s0.873-5.76-1.06-5.76-1.58%205.39-1.58%205.39-0.574-4.59-2.18-4.12c-1.61%200.468-0.572%205.51-0.572%205.51s-1.58-4.89-2.93-3.79c-1.35%201.11%200.258%205.25%200.572%206.62%200.836%202.43%202.03%202.94%202.17%205.55%22%2F%3E%0A%3C%2Fsvg%3E%0A') 12 8,default}.pnlm-grabbing{cursor:grabbing;cursor:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2226%22%20width%3D%2226%22%3E%0A%3Cpath%20stroke%3D%22%23000%22%20stroke-width%3D%221px%22%20fill%3D%22%23fff%22%20d%3D%22m15.3%2020.5s5.07-5.29%203.77-6.74c-1.31-1.45-2.53%200.14-2.53%200.14s2.74-3.29%200.535-4.06c-2.2-0.769-2.52%201.3-2.52%201.3s0.81-2.13-1.12-2.13-1.52%201.77-1.52%201.77-0.261-1.59-1.87-1.12c-1.61%200.468-0.874%202.17-0.874%202.17s-0.651-1.55-2-0.445c-1.35%201.11-0.68%202.25-0.365%203.62%200.836%202.43%202.03%202.94%202.17%205.55%22%2F%3E%0A%3C%2Fsvg%3E%0A') 12 8,default}.pnlm-sprite{background-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2226%22%20height%3D%22208%22%3E%0A%3Ccircle%20fill-opacity%3D%22.78%22%20cy%3D%22117%22%20cx%3D%2213%22%20r%3D%2211%22%20fill%3D%22%23fff%22%2F%3E%0A%3Ccircle%20fill-opacity%3D%22.78%22%20cy%3D%22143%22%20cx%3D%2213%22%20r%3D%2211%22%20fill%3D%22%23fff%22%2F%3E%0A%3Ccircle%20cy%3D%22169%22%20cx%3D%2213%22%20r%3D%227%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%2F%3E%0A%3Ccircle%20cy%3D%22195%22%20cx%3D%2213%22%20r%3D%227%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%2F%3E%0A%3Ccircle%20cx%3D%2213%22%20cy%3D%22195%22%20r%3D%222.5%22%2F%3E%0A%3Cpath%20d%3D%22m5%2083v6h2v-4h4v-2zm10%200v2h4v4h2v-6zm-5%205v6h6v-6zm-5%205v6h6v-2h-4v-4zm14%200v4h-4v2h6v-6z%22%2F%3E%0A%3Cpath%20d%3D%22m13%20110a7%207%200%200%200%20-7%207%207%207%200%200%200%207%207%207%207%200%200%200%207%20-7%207%207%200%200%200%20-7%20-7zm-1%203h2v2h-2zm0%203h2v5h-2z%22%2F%3E%0A%3Cpath%20d%3D%22m5%2057v6h2v-4h4v-2zm10%200v2h4v4h2v-6zm-10%2010v6h6v-2h-4v-4zm14%200v4h-4v2h6v-6z%22%2F%3E%0A%3Cpath%20d%3D%22m17%2038v2h-8v-2z%22%2F%3E%0A%3Cpath%20d%3D%22m12%209v3h-3v2h3v3h2v-3h3v-2h-3v-3z%22%2F%3E%0A%3Cpath%20d%3D%22m13%20136-6.125%206.125h4.375v7.875h3.5v-7.875h4.375z%22%2F%3E%0A%3Cpath%20d%3D%22m10.428%20173.33v-5.77l5-2.89v5.77zm1-1.73%203-1.73-3.001-1.74z%22%2F%3E%0A%3C%2Fsvg%3E%0A')}.pnlm-container:-moz-full-screen{height:100%!important;width:100%!important;position:static!important}.pnlm-container:-webkit-full-screen{height:100%!important;width:100%!important;position:static!important}.pnlm-container:-ms-fullscreen{height:100%!important;width:100%!important;position:static!important}.pnlm-container:fullscreen{height:100%!important;width:100%!important;position:static!important}.pnlm-render-container{cursor:inherit;position:absolute;height:100%;width:100%}.pnlm-controls{margin-top:4px;background-color:#fff;border:1px solid #999;border-color:rgba(0,0,0,0.4);border-radius:3px;cursor:pointer;z-index:2;-webkit-transform:translateZ(9999px);transform:translateZ(9999px)}.pnlm-control:hover{background-color:#f8f8f8}.pnlm-controls-container{position:absolute;top:0;left:4px;z-index:1}.pnlm-zoom-controls{width:26px;height:52px}.pnlm-zoom-in{width:100%;height:50%;position:absolute;top:0;border-radius:3px 3px 0 0}.pnlm-zoom-out{width:100%;height:50%;position:absolute;bottom:0;background-position:0 -26px;border-top:1px solid #ddd;border-top-color:rgba(0,0,0,0.10);border-radius:0 0 3px 3px}.pnlm-fullscreen-toggle-button,.pnlm-orientation-button,.pnlm-hot-spot-debug-indicator{width:26px;height:26px}.pnlm-hot-spot-debug-indicator{position:absolute;top:50%;left:50%;width:26px;height:26px;margin:-13px 0 0 -13px;background-color:rgba(255,255,255,0.5);border-radius:13px;display:none}.pnlm-orientation-button-inactive{background-position:0 -156px}.pnlm-orientation-button-active{background-position:0 -182px}.pnlm-fullscreen-toggle-button-inactive{background-position:0 -52px}.pnlm-fullscreen-toggle-button-active{background-position:0 -78px}.pnlm-panorama-info{position:absolute;bottom:4px;background-color:rgba(0,0,0,0.7);border-radius:0 3px 3px 0;padding-right:10px;color:#fff;text-align:left;display:none;z-index:2;-webkit-transform:translateZ(9999px);transform:translateZ(9999px)}.pnlm-title-box{position:relative;font-size:20px;display:table;padding-left:5px;margin-bottom:3px}.pnlm-author-box{position:relative;font-size:12px;display:table;padding-left:5px}.pnlm-load-box{position:absolute;top:50%;left:50%;width:200px;height:150px;margin:-75px 0 0 -100px;background-color:rgba(0,0,0,0.7);border-radius:3px;text-align:center;font-size:20px;display:none;color:#fff}.pnlm-load-box p{margin:20px 0}.pnlm-lbox{position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;display:none}.pnlm-loading{animation-duration:1.5s;-webkit-animation-duration:1.5s;animation-name:pnlm-mv;-webkit-animation-name:pnlm-mv;animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;animation-timing-function:linear;-webkit-animation-timing-function:linear;height:10px;width:10px;background-color:#fff;position:relative}@keyframes pnlm-mv{from{left:0;top:0}25%{left:10px;top:0}50%{left:10px;top:10px}75%{left:0;top:10px}to{left:0;top:0}}@-webkit-keyframes pnlm-mv{from{left:0;top:0}25%{left:10px;top:0}50%{left:10px;top:10px}75%{left:0;top:10px}to{left:0;top:0}}.pnlm-load-button{position:absolute;top:50%;left:50%;width:200px;height:100px;margin:-50px 0 0 -100px;background-color:rgba(0,0,0,.7);border-radius:3px;text-align:center;font-size:20px;display:table;color:#fff;cursor:pointer}.pnlm-load-button:hover{background-color:rgba(0,0,0,.8)}.pnlm-load-button p{display:table-cell;vertical-align:middle}.pnlm-info-box{font-size:15px;position:absolute;top:50%;left:50%;width:200px;height:150px;margin:-75px 0 0 -100px;background-color:#000;border-radius:3px;display:table;text-align:center;color:#fff;table-layout:fixed}.pnlm-info-box a,.pnlm-author-box a{color:#fff;word-wrap:break-word;overflow-wrap:break-word}.pnlm-info-box p{display:table-cell;vertical-align:middle;padding:0 5px 0 5px}.pnlm-error-msg{display:none}.pnlm-about-msg{font-size:11px;line-height:11px;color:#fff;padding:5px 8px 5px 8px;background:rgba(0,0,0,0.7);border-radius:3px;position:absolute;top:50px;left:50px;display:none;opacity:0;-moz-transition:opacity .3s ease-in-out;-webkit-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;z-index:1}.pnlm-about-msg a:link,.pnlm-about-msg a:visited{color:#fff}.pnlm-about-msg a:hover,.pnlm-about-msg a:active{color:#eee}.pnlm-hotspot-base{position:absolute;visibility:hidden;cursor:default;vertical-align:middle;top:0;z-index:1}.pnlm-hotspot{height:26px;width:26px;border-radius:13px}.pnlm-hotspot:hover{background-color:rgba(255,255,255,0.2)}.pnlm-hotspot.pnlm-info{background-position:0 -104px}.pnlm-hotspot.pnlm-scene{background-position:0 -130px}div.pnlm-tooltip span{visibility:hidden;position:absolute;border-radius:3px;background-color:rgba(0,0,0,0.7);color:#fff;text-align:center;max-width:200px;padding:5px 10px;margin-left:-220px;cursor:default}div.pnlm-tooltip:hover span{visibility:visible}div.pnlm-tooltip:hover span:after{content:'';position:absolute;width:0;height:0;border-width:10px;border-style:solid;border-color:rgba(0,0,0,0.7) transparent transparent transparent;bottom:-20px;left:-10px;margin:0 50%}.pnlm-compass{position:absolute;width:50px;height:50px;right:4px;bottom:4px;border-radius:25px;background-image:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2250%22%20width%3D%2250%22%3E%0A%3Cpath%20d%3D%22m24.5078%206-3.2578%2018h7.5l-3.25781-18h-0.984376zm-3.2578%2020%203.2578%2018h0.9844l3.2578-18h-7.5zm1.19531%200.9941h5.10938l-2.5547%2014.1075-2.5547-14.1075z%22%2F%3E%0A%3C%2Fsvg%3E%0A');cursor:default;display:none}.pnlm-world{position:absolute;left:50%;top:50%}.pnlm-face{position:absolute;-webkit-transform-origin:0 0;transform-origin:0 0}.pnlm-dragfix,.pnlm-preview-img{position:absolute;height:100%;width:100%}.pnlm-preview-img{background-size:cover;background-position:center}.pnlm-lbar{width:150px;margin:0 auto;border:#fff 1px solid;height:6px}.pnlm-lbar-fill{background:#fff;height:100%;width:0}.pnlm-lmsg{font-size:12px}.pnlm-fade-img{position:absolute;top:0;left:0}.pnlm-pointer{cursor:pointer}

/* ==========================================================================
   THE POOL, RECOVERED (rooms.html) - adopted from concepts/hotel-pool-2003/
   assets/hotel-pool-concept.css, July 28, 2026. Lab rules verbatim with the
   concept's body-class scope (.hotel-pool-concept) re-hosted onto
   .page-rooms, the casino/showroom port precedent; the single added rule is
   commented in place. The retired "Forty years. Not one photograph." rules
   (.pool-missing and friends) stay further up for the concept archives.
   ========================================================================== */
.page-rooms .pool-recovered {
  --pool-ink: #12313b;
  --pool-deep: #0b6570;
  --pool-blue: #5fc9cf;
  --pool-pale: #dff4ee;
  --pool-paper: #fff9e9;
  --pool-maroon: #6f1727;
  --pool-pink: #ef507b;
  --pool-gold: #d7a742;
  position: relative;
  overflow: hidden;
  padding: clamp(5rem, 9vw, 9rem) 0;
  color: var(--pool-ink);
  background:
    radial-gradient(circle at 86% 7%, rgb(255 255 255 / .76), transparent 24rem),
    repeating-linear-gradient(90deg, transparent 0 79px, rgb(11 101 112 / .055) 80px 81px),
    linear-gradient(180deg, #f8f1d9 0 15rem, var(--pool-pale) 15rem 100%);
}

.page-rooms .pool-recovered::before {
  content: "";
  position: absolute;
  inset: 12.5rem 0 auto;
  height: 3.2rem;
  opacity: .48;
  background:
    radial-gradient(70% 100% at 25% 100%, transparent 56%, var(--pool-blue) 57% 63%, transparent 64%) 0 0 / 11rem 3rem repeat-x;
  pointer-events: none;
}

.page-rooms .pool-recovered .inner {
  position: relative;
  z-index: 1;
  width: min(1180px, calc(100% - 2rem));
  margin-inline: auto;
}

.page-rooms .pool-recovery-heading {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: start;
  margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.page-rooms .pool-recovery-heading .eyebrow {
  color: var(--pool-maroon);
}

.page-rooms .pool-recovery-heading h2 {
  max-width: none;
  margin: .3rem 0 0;
  color: var(--pool-deep);
  font-size: clamp(3.6rem, 6.5vw, 5.5rem);
  line-height: .88;
  letter-spacing: -.045em;
  text-shadow: .045em .055em 0 rgb(255 255 255 / .96);
}

.page-rooms .pool-recovery-intro {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 4vw, 4rem);
  max-width: none;
  padding: 1.1rem 0 1.1rem 1.5rem;
  border-left: 4px solid var(--pool-gold);
  font-size: clamp(1.05rem, 1.65vw, 1.35rem);
  line-height: 1.62;
}

.page-rooms .pool-recovery-intro p {
  margin: 0;
}

.page-rooms .pool-recovery-intro p + p {
  margin-top: 0;
  color: var(--pool-deep);
  font-weight: 700;
}

.page-rooms .pool-record {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0 0 clamp(2.75rem, 6vw, 5rem);
  border: 1px solid rgb(11 101 112 / .38);
  background: rgb(255 249 233 / .9);
  box-shadow: .65rem .8rem 0 rgb(11 101 112 / .13);
}

.page-rooms .pool-record p {
  min-width: 0;
  margin: 0;
  padding: 1rem 1.1rem 1.15rem;
}

.page-rooms .pool-record p + p {
  border-left: 1px solid rgb(11 101 112 / .22);
}

.page-rooms .pool-record span,
.page-rooms .pool-record strong,
.page-rooms .pool-record small {
  display: block;
}

.page-rooms .pool-record span {
  margin-bottom: .35rem;
  color: var(--pool-maroon);
  font: 800 .65rem/1.15 "Public Sans", sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.page-rooms .pool-record strong {
  color: var(--pool-deep);
  font: 400 clamp(1rem, 1.6vw, 1.3rem)/1.12 "Alfa Slab One", serif;
}

.page-rooms .pool-record small {
  margin-top: .28rem;
  color: #586667;
  font-size: .72rem;
  line-height: 1.25;
}

.page-rooms .pool-record-qtvr {
  background:
    radial-gradient(circle at 88% 12%, rgb(95 201 207 / .2), transparent 4.5rem),
    #fffdf5;
}

.page-rooms .pool-qtvr-launch {
  display: inline-flex;
  gap: .55rem;
  align-items: center;
  margin-top: .8rem;
  padding: .55rem .7rem .55rem .55rem;
  color: #fffdf5;
  background: var(--pool-deep);
  border: 1px solid #064b54;
  box-shadow: .2rem .25rem 0 rgb(11 101 112 / .18);
  font: 800 .6rem/1.15 "Public Sans", sans-serif;
  letter-spacing: .065em;
  text-align: left;
  text-transform: uppercase;
  cursor: pointer;
}

.page-rooms .pool-qtvr-launch:hover,
.page-rooms .pool-qtvr-launch:focus-visible {
  color: #102f37;
  background: var(--pool-gold);
  border-color: #ad7920;
}

.page-rooms .pool-qtvr-launch > span:last-child {
  color: #fffdf5;
}

.page-rooms .pool-qtvr-launch:hover > span:last-child,
.page-rooms .pool-qtvr-launch:focus-visible > span:last-child {
  color: #102f37;
}

.page-rooms .pool-qtvr-launch .pool-qtvr-launch-icon {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  color: var(--pool-deep);
  background: #fffdf5;
  border: 2px solid currentColor;
  border-radius: 50%;
  font-size: .52rem;
  letter-spacing: -.02em;
}

.page-rooms .pool-angle {
  color: var(--pool-deep);
  font: 800 .65rem/1.1 "Public Sans", sans-serif;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.page-rooms .pool-gallery {
  width: min(1480px, calc(100vw - 3rem));
  max-width: none;
  margin: 0 auto clamp(4rem, 8vw, 7rem);
  margin-left: 50%;
  transform: translateX(-50%);
}

.page-rooms .pool-gallery-stage {
  margin: 0;
  overflow: hidden;
  color: var(--pool-ink);
  background: var(--pool-paper);
  border: 2px solid var(--pool-deep);
  box-shadow: .8rem 1rem 0 rgb(11 101 112 / .2), 0 2rem 4rem rgb(18 49 59 / .15);
}

.page-rooms .pool-gallery-open {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  padding: 0;
  overflow: hidden;
  color: #fff;
  background: #082e35;
  border: 0;
  border-bottom: 1px solid rgb(11 101 112 / .35);
  cursor: zoom-in;
}

/* production only: the lab's stage img was a bare child of the button;
   the site's tier idiom wraps it in <picture>, which must fill the
   aspect-ratio box for object-fit: contain to keep working */
.page-rooms .pool-gallery-open picture {
  display: block;
  width: 100%;
  height: 100%;
}

.page-rooms .pool-gallery-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: filter .35s ease, transform .55s ease, opacity .2s ease;
}

.page-rooms .pool-gallery-open:hover .pool-gallery-image,
.page-rooms .pool-gallery-open:focus-visible .pool-gallery-image {
  filter: saturate(1.045) contrast(1.02);
  transform: scale(1.008);
}

.page-rooms .pool-gallery-open-label {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  display: inline-flex;
  gap: .5rem;
  align-items: center;
  padding: .65rem .85rem;
  color: #fffdf5;
  background: rgb(7 38 44 / .88);
  border: 1px solid rgb(255 255 255 / .5);
  font: 800 .68rem/1 "Public Sans", sans-serif;
  letter-spacing: .1em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
}

.page-rooms .pool-gallery-open-label span {
  color: var(--pool-gold);
  font-size: 1.15rem;
  line-height: .7;
}

.page-rooms .pool-gallery-stage figcaption {
  display: grid;
  grid-template-columns: minmax(14rem, .85fr) minmax(18rem, 1.15fr);
  gap: .45rem clamp(1.5rem, 5vw, 5rem);
  align-items: center;
  padding: clamp(1.25rem, 3.2vw, 2.4rem);
}

.page-rooms .pool-gallery-stage figcaption b {
  grid-column: 1;
  color: var(--pool-maroon);
  font: 400 clamp(1.8rem, 3.5vw, 3.35rem)/.98 "Alfa Slab One", serif;
}

.page-rooms .pool-gallery-kicker {
  grid-column: 1;
}

.page-rooms .pool-gallery-description {
  grid-column: 2;
  grid-row: 1 / span 2;
  color: #354e51;
  font-size: clamp(.92rem, 1.5vw, 1.05rem);
  line-height: 1.55;
}

.page-rooms .pool-gallery-disclosure {
  grid-column: 1 / -1;
  padding-top: .75rem;
  border-top: 1px solid rgb(11 101 112 / .2);
  color: #617174;
  font: 700 .68rem/1.4 "Public Sans", sans-serif;
  letter-spacing: .035em;
}

.page-rooms .pool-gallery-filmstrip {
  display: grid;
  grid-template-columns: repeat(6, minmax(9rem, 1fr));
  gap: .65rem;
  align-items: stretch;
  margin-top: 1.5rem;
  padding: .2rem .2rem .8rem;
  overflow-x: auto;
  scrollbar-color: var(--pool-deep) rgb(11 101 112 / .12);
}

.page-rooms .pool-gallery-thumb {
  min-width: 9rem;
  padding: 0;
  overflow: hidden;
  color: var(--pool-ink);
  text-align: left;
  background: #fffdf3;
  border: 1px solid rgb(11 101 112 / .35);
  box-shadow: .25rem .3rem 0 rgb(11 101 112 / .1);
  cursor: pointer;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.page-rooms .pool-gallery-thumb:hover,
.page-rooms .pool-gallery-thumb:focus-visible {
  border-color: var(--pool-deep);
  transform: translateY(-2px);
}

.page-rooms .pool-gallery-thumb.is-active {
  border-color: var(--pool-maroon);
  box-shadow: 0 0 0 2px var(--pool-maroon), .3rem .4rem 0 rgb(111 23 39 / .16);
}

.page-rooms .pool-gallery-thumb img {
  display: block;
  width: 100%;
  height: clamp(5.8rem, 6vw, 7rem);
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-bottom: 1px solid rgb(11 101 112 / .18);
}

.page-rooms .pool-gallery-thumb > span {
  display: grid;
  gap: .2rem;
  min-height: 3.65rem;
  align-content: center;
  padding: .65rem .7rem;
  color: var(--pool-maroon);
  font: 400 .9rem/1.05 "Alfa Slab One", serif;
}

.page-rooms .pool-gallery-thumb small {
  color: var(--pool-deep);
  font: 800 .55rem/1 "Public Sans", sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.page-rooms .pool-image-dialog {
  width: min(94vw, 1500px);
  max-width: none;
  max-height: 94vh;
  padding: 0;
  overflow: visible;
  color: #fffdf3;
  background: transparent;
  border: 0;
}

.page-rooms .pool-image-dialog::backdrop {
  background: rgb(3 17 20 / .94);
  backdrop-filter: blur(8px);
}

.page-rooms .pool-dialog-shell {
  position: relative;
  overflow: hidden;
  background: #071f24;
  border: 1px solid rgb(255 255 255 / .34);
  box-shadow: 0 2rem 7rem rgb(0 0 0 / .55);
}

.page-rooms .pool-dialog-close {
  position: absolute;
  z-index: 2;
  top: .75rem;
  right: .75rem;
  width: 2.6rem;
  height: 2.6rem;
  padding: 0 0 .15rem;
  color: #fff;
  background: rgb(3 22 26 / .85);
  border: 1px solid rgb(255 255 255 / .55);
  border-radius: 50%;
  font: 300 1.7rem/1 Arial, sans-serif;
  cursor: pointer;
}

.page-rooms .pool-dialog-image-wrap {
  display: grid;
  min-height: min(65vh, 54rem);
  place-items: center;
  background: #020b0d;
}

.page-rooms .pool-dialog-image {
  display: block;
  max-width: 100%;
  max-height: min(70vh, 54rem);
  object-fit: contain;
}

.page-rooms .pool-dialog-caption {
  display: grid;
  grid-template-columns: minmax(14rem, 1fr) auto;
  gap: .7rem 2rem;
  align-items: center;
  padding: 1rem 1.25rem 1.2rem;
}

.page-rooms .pool-dialog-title {
  display: block;
  margin-top: .25rem;
  color: #fff9e9;
  font: 400 clamp(1.25rem, 2.3vw, 2.1rem)/1 "Alfa Slab One", serif;
}

.page-rooms .pool-dialog-kicker {
  color: var(--pool-gold);
}

.page-rooms .pool-dialog-controls {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .45rem;
}

.page-rooms .pool-dialog-controls button {
  padding: .7rem .9rem;
  color: #d9e7e7;
  background: transparent;
  border: 1px solid rgb(255 255 255 / .3);
  font: 800 .65rem/1 "Public Sans", sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}

.page-rooms .pool-dialog-controls button.is-active {
  color: #092f36;
  background: var(--pool-gold);
  border-color: var(--pool-gold);
}

/* July 28 evening addition (owner: pages load fast, big files behind an
   explicit download) - the dialog's Download link wears the mode buttons'
   furniture; js/pool-gallery.js fills its href and size per selection */
.page-rooms .pool-dialog-download {
  padding: .7rem .9rem;
  color: #d9e7e7;
  border: 1px solid rgb(255 255 255 / .3);
  font: 800 .65rem/1 "Public Sans", sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
}

.page-rooms .pool-dialog-download:hover,
.page-rooms .pool-dialog-download:focus-visible {
  color: var(--pool-gold);
  border-color: var(--pool-gold);
}

.page-rooms .pool-dialog-note {
  grid-column: 1 / -1;
  margin: 0;
  padding-top: .65rem;
  border-top: 1px solid rgb(255 255 255 / .16);
  color: #aabfc0;
  font-size: .78rem;
  line-height: 1.4;
}

.page-rooms .pool-qtvr-dialog {
  width: min(96vw, 1680px);
  max-width: none;
  max-height: 96vh;
  padding: 0;
  overflow: visible;
  color: #ecf2ef;
  background: transparent;
  border: 0;
}

.page-rooms .pool-qtvr-dialog::backdrop {
  background: rgb(2 14 17 / .95);
  backdrop-filter: blur(8px);
}

.page-rooms .pool-qtvr-shell {
  overflow: hidden;
  background: #0c2429;
  border: 1px solid rgb(255 255 255 / .32);
  box-shadow: 0 2rem 8rem rgb(0 0 0 / .62);
}

.page-rooms .pool-qtvr-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem 2rem;
  align-items: start;
  padding: 1rem 1.1rem;
  background:
    linear-gradient(180deg, rgb(255 255 255 / .05), transparent),
    #102f35;
  border-bottom: 1px solid rgb(255 255 255 / .15);
}

.page-rooms .pool-qtvr-header h3,
.page-rooms .pool-qtvr-header p {
  margin: 0;
}

.page-rooms .pool-qtvr-header h3 {
  margin-top: .2rem;
  color: #fff9e9;
  font: 400 clamp(1.35rem, 2.5vw, 2.35rem)/1 "Alfa Slab One", serif;
}

.page-rooms .pool-qtvr-header > div > p:last-child {
  max-width: 65rem;
  margin-top: .5rem;
  color: #b8c9c8;
  font-size: .82rem;
  line-height: 1.45;
}

.page-rooms .pool-qtvr-label {
  color: var(--pool-gold);
  font: 800 .62rem/1 "Public Sans", sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.page-rooms .pool-qtvr-close {
  width: 2.65rem;
  height: 2.65rem;
  padding: 0 0 .15rem;
  color: #fff;
  background: rgb(0 0 0 / .24);
  border: 1px solid rgb(255 255 255 / .42);
  border-radius: 50%;
  font: 300 1.75rem/1 Arial, sans-serif;
  cursor: pointer;
}

.page-rooms .pool-qtvr-player {
  position: relative;
  padding: .45rem;
  background: #bec4c1;
  border-top: 1px solid #f4f5f3;
  border-bottom: 1px solid #050b0d;
}

.page-rooms .pool-qtvr-player-bar {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: .75rem;
  align-items: center;
  height: 1.9rem;
  padding: 0 .5rem;
  color: #273034;
  background: linear-gradient(180deg, #f2f3f1, #bfc4c1);
  border: 1px solid #7e8582;
  border-bottom: 0;
  font: 700 .64rem/1 "Public Sans", sans-serif;
  letter-spacing: .025em;
}

.page-rooms .pool-qtvr-player-mark {
  display: inline-grid;
  height: 1.25rem;
  padding: 0 .4rem;
  place-items: center;
  color: #fff;
  background: #286b9a;
  border-radius: .15rem;
  font-size: .55rem;
  letter-spacing: .08em;
}

.page-rooms .pool-qtvr-player-year {
  color: #5d6565;
}

.page-rooms .pool-qtvr-viewer {
  width: 100%;
  height: min(68vh, 800px);
  min-height: 28rem;
  background: #06181c;
  border: 1px solid #747b78;
  outline: none;
}

.page-rooms .pool-qtvr-viewer:focus-visible {
  box-shadow: inset 0 0 0 3px var(--pool-gold);
}

.page-rooms .pool-qtvr-viewer .pnlm-controls-container {
  opacity: .88;
}

.page-rooms .pool-qtvr-loading {
  position: absolute;
  inset: 50% auto auto 50%;
  z-index: 2;
  margin: 0;
  padding: .7rem .9rem;
  color: #fff;
  background: rgb(5 26 30 / .88);
  border: 1px solid rgb(255 255 255 / .45);
  font: 800 .67rem/1.25 "Public Sans", sans-serif;
  letter-spacing: .06em;
  text-transform: uppercase;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.page-rooms .pool-qtvr-footer {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .85fr);
  gap: 1rem 3rem;
  padding: .9rem 1.1rem 1rem;
  color: #b6c8c8;
  background: #0c2429;
  font-size: .75rem;
  line-height: 1.45;
}

.page-rooms .pool-qtvr-footer p {
  margin: 0;
}

.page-rooms .pool-qtvr-footer b {
  color: var(--pool-gold);
}

.page-rooms .pool-qtvr-footer code {
  color: #e9f0ed;
  font-size: .72rem;
}

.page-rooms .pool-document {
  display: grid;
  grid-template-columns: .55fr .95fr 1.5fr;
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: center;
  margin: clamp(4rem, 9vw, 8rem) 0 0;
  padding: clamp(1.5rem, 4vw, 3.25rem);
  color: #261f1c;
  background:
    repeating-linear-gradient(0deg, transparent 0 31px, rgb(111 23 39 / .07) 32px),
    #fffdf5;
  border-top: 5px solid var(--pool-maroon);
  border-bottom: 1px solid rgb(111 23 39 / .35);
  box-shadow: 0 1.2rem 3rem rgb(18 49 59 / .12);
}

.page-rooms .pool-document p,
.page-rooms .pool-document blockquote {
  margin: 0;
}

.page-rooms .pool-document-mark {
  color: var(--pool-maroon);
  font: 800 .72rem/1.2 "Public Sans", sans-serif;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.page-rooms .pool-document blockquote {
  color: var(--pool-maroon);
  font: 400 clamp(1.6rem, 3.4vw, 3.3rem)/1 "Alfa Slab One", serif;
}

.page-rooms .pool-document > p:last-child {
  font-size: .93rem;
  line-height: 1.58;
}

.page-rooms .pool-source-note {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(18rem, .9fr);
  gap: clamp(2rem, 7vw, 7rem);
  margin-top: clamp(3rem, 6vw, 5rem);
  padding-top: 1.5rem;
  border-top: 1px solid rgb(11 101 112 / .4);
  color: #466164;
  font-size: .86rem;
  line-height: 1.58;
}

.page-rooms .pool-source-note p {
  margin: 0;
}

.page-rooms .pool-source-note b {
  color: var(--pool-deep);
}

@media (max-width: 780px) {
  .page-rooms .pool-recovery-heading,
  .page-rooms .pool-gallery-stage figcaption,
  .page-rooms .pool-dialog-caption,
  .page-rooms .pool-qtvr-footer,
  .page-rooms .pool-document,
  .page-rooms .pool-source-note {
    grid-template-columns: 1fr;
  }

  .page-rooms .pool-recovery-heading {
    gap: 1.5rem;
  }

  .page-rooms .pool-recovery-heading h2 {
    max-width: none;
  }

  .page-rooms .pool-recovery-intro {
    grid-template-columns: 1fr;
    gap: .8rem;
    padding-left: 1rem;
  }

  .page-rooms .pool-recovery-intro p + p {
    margin-top: .5rem;
  }

  .page-rooms .pool-record {
    grid-template-columns: 1fr 1fr;
  }

  .page-rooms .pool-record p:nth-child(3) {
    border-left: 0;
    border-top: 1px solid rgb(11 101 112 / .22);
  }

  .page-rooms .pool-record p:nth-child(4) {
    border-top: 1px solid rgb(11 101 112 / .22);
  }

  .page-rooms .pool-gallery-stage figcaption {
    gap: .4rem;
  }

  .page-rooms .pool-gallery-description {
    grid-column: 1;
    grid-row: auto;
    margin-top: .45rem;
  }

  .page-rooms .pool-gallery-disclosure {
    grid-column: 1;
  }

  .page-rooms .pool-gallery-open-label {
    right: .65rem;
    bottom: .65rem;
  }

  .page-rooms .pool-dialog-image-wrap {
    min-height: 45vh;
  }

  .page-rooms .pool-dialog-controls {
    justify-content: flex-start;
  }

  .page-rooms .pool-dialog-note {
    grid-column: 1;
  }

  .page-rooms .pool-qtvr-header {
    gap: .75rem;
  }

  .page-rooms .pool-qtvr-viewer {
    height: 58vh;
    min-height: 22rem;
  }

  .page-rooms .pool-qtvr-footer {
    gap: .6rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-rooms .pool-gallery-image,
  .page-rooms .pool-gallery-thumb {
    transition: none;
  }
}
