:root {
  --text: #f9f3ea;
  --muted: rgba(249, 243, 234, 0.82);
  --soft: rgba(249, 243, 234, 0.62);
  --gold: #ffd36d;
  --lime: #d8ff76;
  --rose: #ff8da1;
  --cyan: #9cf5f2;
  --violet: #b7a4ff;
  --navy: #08121f;
  --outline: rgba(255, 248, 232, 0.16);
  --panel-bg: rgba(23, 28, 55, 0.78);
  --shadow: 0 28px 90px rgba(5, 8, 24, 0.48);
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }

body {
  margin: 0;
  color: var(--text);
  background:
    radial-gradient(circle at 20% 12%, rgba(255, 142, 152, 0.16), transparent 18%),
    radial-gradient(circle at 80% 18%, rgba(156, 245, 242, 0.14), transparent 16%),
    linear-gradient(180deg, #08121f 0%, #121f36 38%, #1e1736 72%, #120f21 100%);
  font-family: "Marker Felt", "Chalkduster", "Comic Sans MS", "Bradley Hand", cursive;
  cursor: url("/hotdog-cursor.svg") 10 6, auto;
  overflow-x: hidden;
  transition: background 420ms var(--ease);
}

button, input, textarea {
  font: inherit;
  cursor: url("/hotdog-cursor.svg") 10 6, pointer;
}

body[data-theme="entry-fairground"] {
  background:
    radial-gradient(circle at 14% 18%, rgba(255, 111, 85, 0.18), transparent 18%),
    radial-gradient(circle at 88% 16%, rgba(183, 164, 255, 0.18), transparent 18%),
    linear-gradient(180deg, #09131f 0%, #102544 48%, #20173b 100%);
}

body[data-theme="peach-parlor"] {
  background:
    radial-gradient(circle at 20% 20%, rgba(255, 181, 143, 0.24), transparent 18%),
    radial-gradient(circle at 75% 20%, rgba(255, 226, 160, 0.16), transparent 18%),
    linear-gradient(180deg, #1f1426 0%, #4b2740 48%, #24141a 100%);
}

body[data-theme="door-hall"] {
  background:
    radial-gradient(circle at 50% 14%, rgba(177, 226, 255, 0.18), transparent 18%),
    linear-gradient(180deg, #0c1220 0%, #16233f 50%, #13111b 100%);
}

body[data-theme="hotdog-orrery"] {
  background:
    radial-gradient(circle at 28% 12%, rgba(255, 206, 109, 0.2), transparent 18%),
    radial-gradient(circle at 76% 28%, rgba(255, 111, 85, 0.16), transparent 16%),
    linear-gradient(180deg, #120f21 0%, #2a214f 54%, #111827 100%);
}

body[data-theme="clap-chapel"] {
  background:
    radial-gradient(circle at 50% 10%, rgba(255, 241, 196, 0.18), transparent 18%),
    linear-gradient(180deg, #0f1019 0%, #2d1c39 54%, #18121b 100%);
}

body[data-theme="cash-garden"] {
  background:
    radial-gradient(circle at 20% 20%, rgba(216, 255, 118, 0.18), transparent 18%),
    radial-gradient(circle at 76% 22%, rgba(255, 211, 109, 0.18), transparent 18%),
    linear-gradient(180deg, #12211a 0%, #24442f 48%, #1d1a24 100%);
}

body[data-theme="echo-bureau"] {
  background:
    radial-gradient(circle at 50% 18%, rgba(183, 164, 255, 0.14), transparent 16%),
    linear-gradient(180deg, #10131d 0%, #25304f 38%, #391f48 100%);
}

body[data-theme="button-observatory"] {
  background:
    radial-gradient(circle at 32% 16%, rgba(156, 245, 242, 0.16), transparent 16%),
    radial-gradient(circle at 66% 24%, rgba(255, 211, 109, 0.16), transparent 16%),
    linear-gradient(180deg, #07111d 0%, #13284c 50%, #0f1728 100%);
}

body[data-theme="millionaire-lagoon"] {
  background:
    radial-gradient(circle at 50% 8%, rgba(156, 245, 242, 0.2), transparent 14%),
    linear-gradient(180deg, #081b23 0%, #154259 46%, #171437 100%);
}

body[data-theme="mask-theatre"] {
  background:
    radial-gradient(circle at 50% 12%, rgba(255, 143, 164, 0.18), transparent 16%),
    linear-gradient(180deg, #1b0e1f 0%, #351636 52%, #15111c 100%);
}

body[data-theme="drawer-museum"] {
  background:
    radial-gradient(circle at 22% 18%, rgba(255, 211, 109, 0.16), transparent 18%),
    linear-gradient(180deg, #121317 0%, #2e2333 44%, #1c1320 100%);
}

body[data-theme="finale-won"] {
  background:
    radial-gradient(circle at 50% 20%, rgba(216, 255, 118, 0.2), transparent 16%),
    radial-gradient(circle at 70% 10%, rgba(255, 211, 109, 0.18), transparent 18%),
    linear-gradient(180deg, #0e1b1f 0%, #12343b 42%, #172133 100%);
}

body[data-theme="finale-lost"] {
  background:
    radial-gradient(circle at 40% 16%, rgba(255, 141, 161, 0.18), transparent 16%),
    linear-gradient(180deg, #130f1b 0%, #2c1731 46%, #1d1321 100%);
}

.world-backdrop,
.sky-noise {
  position: fixed;
  inset: 0;
  pointer-events: none;
}

.world-backdrop { overflow: hidden; }

.curtain {
  position: absolute;
  top: -8vh;
  bottom: -8vh;
  width: 18vw;
  min-width: 96px;
  background:
    repeating-linear-gradient(
      90deg,
      rgba(132, 16, 50, 0.94) 0 16px,
      rgba(173, 34, 70, 0.98) 16px 32px,
      rgba(95, 8, 35, 0.94) 32px 48px
    );
  box-shadow: inset -18px 0 36px rgba(16, 3, 9, 0.42);
  opacity: 0.92;
}

.curtain-left { left: -4vw; transform: rotate(2deg); }
.curtain-right { right: -4vw; transform: scaleX(-1) rotate(2deg); }

.moon-face {
  position: absolute;
  top: 6vh;
  right: 10vw;
  width: min(22vw, 220px);
  aspect-ratio: 1;
  border-radius: 43% 57% 48% 52% / 55% 43% 57% 45%;
  background: radial-gradient(circle at 36% 36%, rgba(255,252,240,0.98), rgba(255,215,136,0.96) 36%, rgba(255,154,102,0.88) 72%, rgba(255,141,161,0.74) 100%);
  box-shadow: 0 0 0 2px rgba(255,248,232,0.28), 0 0 80px rgba(255,211,109,0.28);
  animation: driftMoon 12s ease-in-out infinite alternate;
}

.moon-eye, .moon-mouth {
  position: absolute;
  display: block;
  background: rgba(49, 24, 66, 0.88);
}

.moon-eye {
  top: 40%;
  width: 12%;
  height: 17%;
  border-radius: 50%;
}

.moon-eye.left { left: 31%; }
.moon-eye.right { right: 27%; }
.moon-mouth {
  left: 34%;
  right: 26%;
  bottom: 28%;
  height: 8%;
  border-radius: 0 0 40px 40px;
}

.floating-shape,
.star-ribbon {
  position: absolute;
}

.floating-shape {
  border-radius: 48% 52% 60% 40% / 42% 44% 56% 58%;
  border: 2px solid rgba(255,248,232,0.16);
  box-shadow: inset 0 0 24px rgba(255,255,255,0.06), 0 16px 36px rgba(0,0,0,0.14);
  animation: drift 13s ease-in-out infinite;
}

.shape-a {
  left: 8vw; top: 24vh; width: 110px; height: 146px;
  background: linear-gradient(180deg, rgba(255,111,85,0.66), rgba(255,211,109,0.22));
}
.shape-b {
  right: 15vw; top: 48vh; width: 84px; height: 118px;
  background: linear-gradient(180deg, rgba(156,245,242,0.66), rgba(183,164,255,0.24));
  animation-direction: reverse;
}
.shape-c {
  left: 19vw; bottom: 14vh; width: 124px; height: 90px;
  background: linear-gradient(180deg, rgba(216,255,118,0.56), rgba(156,245,242,0.22));
}

.star-ribbon {
  width: 220px; height: 16px;
  background:
    radial-gradient(circle, rgba(255,255,255,0.95) 0 1.5px, transparent 2px),
    linear-gradient(90deg, transparent, rgba(255,255,255,0.08), transparent);
  background-size: 28px 16px, 100% 100%;
}

.ribbon-a { left: 24vw; top: 10vh; transform: rotate(-12deg); }
.ribbon-b { right: 18vw; bottom: 19vh; transform: rotate(11deg); }

.ground-haze {
  position: absolute;
  left: 10vw; right: 10vw; bottom: -8vh;
  height: 26vh; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,211,109,0.14), transparent 70%);
  filter: blur(18px);
}

.sky-noise {
  opacity: 0.15;
  background:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,0.9) 0 1px, transparent 1.4px),
    radial-gradient(circle at 67% 32%, rgba(255,255,255,0.9) 0 1px, transparent 1.4px),
    radial-gradient(circle at 48% 14%, rgba(255,255,255,0.9) 0 1px, transparent 1.4px),
    radial-gradient(circle at 80% 72%, rgba(255,255,255,0.9) 0 1px, transparent 1.4px),
    radial-gradient(circle at 32% 78%, rgba(255,255,255,0.9) 0 1px, transparent 1.4px);
}

.page-shell {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  width: min(1480px, calc(100vw - 20px));
  margin: 0 auto;
  padding: 12px 0 44px;
}

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 0 8px 14px;
}

.brand-lockup {
  display: grid;
  gap: 8px;
  padding: 14px 18px 16px;
  border-radius: 28px 18px 34px 12px;
  background:
    radial-gradient(circle at 20% 0%, rgba(255,255,255,0.18), transparent 24%),
    linear-gradient(135deg, rgba(61,16,36,0.92), rgba(22,31,72,0.9));
  border: 1px solid rgba(255,248,232,0.14);
  box-shadow: 0 16px 40px rgba(4, 8, 22, 0.24);
  transform: rotate(-1.2deg);
}
.brand-mark {
  font-family: "Papyrus", "Herculanum", "Luminari", fantasy;
  font-size: 0.96rem;
  letter-spacing: 0.36em;
  text-transform: uppercase;
  color: var(--gold);
}
.brand-sub {
  display: inline-flex;
  width: fit-content;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  border: 1px dashed rgba(255,248,232,0.18);
  color: var(--muted);
  transform: rotate(1deg);
}

.utility-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.oracle-note,
.utility-btn,
.question-number,
.eyebrow,
.score-label,
.ticket strong,
.field label,
.room-chip span {
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.oracle-note {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 10px 14px;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255,141,161,0.16), rgba(183,164,255,0.12));
  border: 1px dashed rgba(255,248,232,0.2);
  color: var(--soft);
  font-size: 0.76rem;
}

.utility-btn {
  appearance: none;
  border: 1px solid rgba(255,248,232,0.2);
  border-radius: 999px;
  padding: 11px 18px;
  background:
    radial-gradient(circle at 20% 0%, rgba(255,255,255,0.16), transparent 24%),
    linear-gradient(135deg, rgba(39,22,77,0.96), rgba(17,55,90,0.96));
  color: var(--text);
  box-shadow: 0 14px 34px rgba(6, 10, 26, 0.24);
  transition: transform 180ms var(--ease), border-color 180ms var(--ease);
}

.utility-btn:hover,
.utility-btn:focus-visible {
  outline: none;
  transform: translateY(-2px) rotate(-1deg);
  border-color: rgba(255,211,109,0.45);
}

.app-shell { flex: 1; position: relative; }

.panel {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 0%, rgba(255,255,255,0.1), transparent 24%),
    linear-gradient(160deg, rgba(18,25,51,0.84), rgba(49,18,67,0.88));
  border: 1px solid var(--outline);
  border-radius: 34px 12px 46px 18px;
  box-shadow: var(--shadow);
  backdrop-filter: blur(12px);
}

.panel::before {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1px dashed rgba(255,248,232,0.08);
  border-radius: 26px 10px 34px 14px;
  pointer-events: none;
}

.fade-up { animation: fadeUp 420ms var(--ease); }

.entry-fairground {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
  gap: 20px;
}

.entry-spectacle,
.entry-marquee {
  padding: clamp(28px, 5vw, 54px);
}

.entry-spectacle {
  transform: rotate(-1.3deg);
  min-height: 72vh;
  display: grid;
  place-items: center;
  text-align: center;
}
.entry-marquee { transform: rotate(1.1deg); }

.entry-banner {
  display: inline-flex;
  width: fit-content;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  color: var(--lime);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-size: 0.78rem;
}

.entry-title,
.result-title,
.locked-title {
  margin: 18px 0 0;
  font-family: "Papyrus", "Herculanum", "Luminari", fantasy;
  font-size: clamp(2.3rem, 6vw, 4.5rem);
  line-height: 0.9;
  max-width: 10ch;
}

.prize-title {
  margin: 0;
  max-width: none;
  font-size: clamp(3.3rem, 10vw, 7.2rem);
  line-height: 0.86;
  text-transform: uppercase;
}

.entry-copy,
.result-copy,
.locked-copy,
.question-copy,
.score-rule,
.microcopy,
.helper {
  font-size: clamp(1rem, 1.45vw, 1.1rem);
  line-height: 1.7;
  color: var(--muted);
}

.entry-actions,
.button-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 18px;
  justify-content: center;
}

.marquee-hotdog,
.marquee-wheel,
.marquee-stars {
  position: absolute;
}

.entry-marquee {
  position: relative;
  min-height: 520px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.marquee-wheel {
  width: 120px; height: 120px; border-radius: 50%;
  border: 14px solid rgba(255,211,109,0.65);
  box-shadow: inset 0 0 0 10px rgba(21,55,90,0.8);
}
.wheel-a { left: 40px; bottom: 34px; }
.wheel-b { right: 46px; bottom: 42px; }
.marquee-hotdog {
  left: 50%; top: 110px; width: 180px; height: 90px;
  transform: translateX(-50%) rotate(-12deg);
  border-radius: 999px;
  background: linear-gradient(180deg, #d9a46d, #ab6d3d);
  box-shadow: inset 0 0 0 12px rgba(158,60,65,0.96), 0 16px 42px rgba(0,0,0,0.22);
}
.marquee-hotdog::after {
  content: "";
  position: absolute;
  inset: 32px 26px;
  border-radius: 999px;
  border-top: 6px solid rgba(255,211,109,0.92);
}
.marquee-stars {
  inset: 34px 24px auto;
  height: 160px;
  background:
    radial-gradient(circle at 12% 20%, rgba(255,255,255,0.9) 0 2px, transparent 3px),
    radial-gradient(circle at 46% 38%, rgba(255,255,255,0.9) 0 2px, transparent 3px),
    radial-gradient(circle at 70% 12%, rgba(255,255,255,0.9) 0 2px, transparent 3px),
    radial-gradient(circle at 86% 46%, rgba(255,255,255,0.9) 0 2px, transparent 3px);
}
.marquee-copy { position: relative; z-index: 1; margin-top: auto; }

.btn {
  appearance: none;
  border: 0;
  border-radius: 22px;
  min-height: 56px;
  padding: 14px 22px;
  transition: transform 180ms var(--ease), opacity 180ms var(--ease), border-color 180ms var(--ease);
}

.btn-primary {
  background:
    radial-gradient(circle at 20% 0%, rgba(255,255,255,0.3), transparent 24%),
    linear-gradient(135deg, #ffce6d, #ff8da1 58%, #b7a4ff);
  color: #281225;
  font-size: clamp(1.1rem, 2vw, 1.35rem);
  min-height: 72px;
  padding-inline: 34px;
}
.btn-secondary {
  background: rgba(255,255,255,0.08);
  color: var(--text);
  border: 1px solid rgba(255,248,232,0.14);
}

.btn:hover,
.btn:focus-visible,
.choice-btn:hover,
.choice-btn:focus-visible {
  outline: none;
  transform: translateY(-3px) rotate(-0.5deg);
}

.btn:disabled { opacity: 0.46; transform: none; }

.question-stage,
.result-stage,
.locked-stage {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(290px, 340px);
  gap: 20px;
}

.room-scene {
  min-height: min(76vh, 860px);
  padding: clamp(22px, 4vw, 34px);
  display: grid;
  grid-template-columns: minmax(240px, 0.78fr) minmax(0, 1fr);
  gap: 24px;
  align-items: stretch;
  transform: rotate(-0.6deg);
}

.scene-drift {
  position: relative;
  min-height: 320px;
  border-radius: 42px 18px 56px 22px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,248,232,0.12);
  overflow: hidden;
}

.scene-copy {
  display: grid;
  align-content: start;
  gap: 16px;
}

.question-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.question-number,
.eyebrow,
.score-label,
.ticket strong,
.field label,
.room-chip span {
  font-size: 0.78rem;
  color: var(--cyan);
}

.progress {
  flex: 0 0 min(240px, 42%);
  height: 14px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,248,232,0.12);
}

.progress > span {
  display: block;
  height: 100%;
  background: repeating-linear-gradient(90deg, rgba(255,211,109,0.96) 0 16px, rgba(255,141,161,0.92) 16px 32px, rgba(156,245,242,0.92) 32px 48px, rgba(183,164,255,0.92) 48px 64px);
  transition: width 300ms var(--ease);
}

.room-chip {
  display: grid;
  gap: 6px;
}

.attempt-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 0.8rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--lime);
}

.room-chip strong {
  font-family: "Papyrus", "Herculanum", "Luminari", fantasy;
  font-size: clamp(1.2rem, 1.6vw, 1.55rem);
}

.question-text {
  margin: 0;
  font-family: "Papyrus", "Herculanum", "Luminari", fantasy;
  font-size: clamp(1.4rem, 2.3vw, 2.15rem);
  line-height: 1.02;
  max-width: 22ch;
}

.choice-list {
  display: grid;
  gap: 14px;
  margin-top: 8px;
}

.choice-btn {
  appearance: none;
  width: 100%;
  text-align: left;
  border: 1px solid rgba(255,248,232,0.14);
  border-radius: 24px;
  padding: 18px 18px 18px 20px;
  background:
    radial-gradient(circle at 100% 0%, rgba(255,255,255,0.14), transparent 22%),
    linear-gradient(135deg, rgba(14,51,79,0.95), rgba(65,22,83,0.95));
  color: var(--text);
  transition:
    transform 160ms var(--ease),
    box-shadow 160ms var(--ease),
    border-color 160ms var(--ease),
    background 160ms var(--ease);
}

.choice-btn:nth-child(odd) { transform: rotate(0.7deg); }
.choice-btn:nth-child(even) { transform: rotate(-0.6deg); }

.choice-btn b {
  display: block;
  margin-bottom: 8px;
  color: var(--lime);
  font-size: 0.76rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.choice-btn span { display: block; line-height: 1.5; font-size: 1.04rem; }

.choice-btn.is-selected {
  background:
    radial-gradient(circle at 100% 0%, rgba(255,255,255,0.24), transparent 22%),
    linear-gradient(135deg, rgba(255,211,109,0.95), rgba(255,111,85,0.95), rgba(183,164,255,0.9));
  color: #241127;
  border-color: rgba(255,248,232,0.82);
  box-shadow:
    0 0 0 3px rgba(255,211,109,0.34),
    0 18px 36px rgba(14, 8, 20, 0.26);
}
.choice-btn.is-selected:nth-child(odd) { transform: translateX(10px) rotate(0.7deg) scale(1.02); }
.choice-btn.is-selected:nth-child(even) { transform: translateX(10px) rotate(-0.6deg) scale(1.02); }
.choice-btn.is-selected b { color: #271112; }
.choice-btn.is-selected span {
  font-weight: 700;
}

.stage-actions { margin-top: 8px; }
.stage-sidebar {
  display: grid;
  gap: 14px;
  align-content: start;
}
.question-stage .stage-sidebar { padding-top: 18px; }
.side-card,
.ticket {
  padding: 18px 20px;
}
.tilt-a { transform: rotate(-1.1deg); }
.tilt-b { transform: rotate(1.2deg); }
.tilt-c { transform: rotate(-0.8deg); }

.score-value {
  font-family: "Papyrus", "Herculanum", "Luminari", fantasy;
  font-size: clamp(1.9rem, 3.6vw, 3rem);
  line-height: 0.95;
}

.ticket {
  border: 1px dashed rgba(255,248,232,0.16);
}

.result-main,
.locked-panel {
  padding: clamp(24px, 4vw, 36px);
}

.result-main { min-height: min(70vh, 720px); }
.result-fireworks {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 22%, rgba(255,211,109,0.22), transparent 12%),
    radial-gradient(circle at 78% 18%, rgba(216,255,118,0.2), transparent 12%),
    radial-gradient(circle at 68% 58%, rgba(183,164,255,0.18), transparent 14%);
  pointer-events: none;
}

.stat-line {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: baseline;
  margin: 18px 0;
}
.stat-line strong {
  font-family: "Papyrus", "Herculanum", "Luminari", fantasy;
  font-size: clamp(2rem, 4vw, 3.3rem);
  color: var(--gold);
}

.attempt-result-line {
  margin-top: -4px;
}

.claim-form {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.field { display: grid; gap: 8px; }
.field input {
  width: 100%;
  min-height: 56px;
  border-radius: 20px;
  border: 1px solid rgba(255,248,232,0.16);
  background: rgba(255,255,255,0.08);
  color: var(--text);
  padding: 0 16px;
}
.field input::placeholder { color: rgba(255,243,234,0.46); }
.field input:focus-visible {
  outline: 1px solid rgba(255,211,109,0.6);
  outline-offset: 2px;
}

.status-note { color: var(--lime); }

.loading-view { padding: 48px 18px; }
.loading-view h1 {
  margin-top: 10px;
  font-family: "Papyrus", "Herculanum", "Luminari", fantasy;
  font-size: clamp(1.8rem, 3.8vw, 2.7rem);
  line-height: 0.95;
}

.room-prop { position: absolute; }

.theme-peach-parlor .scene-drift {
  background: linear-gradient(180deg, rgba(255,181,143,0.18), rgba(107,46,53,0.18));
}
.theme-peach-parlor .room-scene {
  background:
    radial-gradient(circle at 12% 0%, rgba(255,234,184,0.14), transparent 22%),
    linear-gradient(140deg, rgba(82,35,54,0.92), rgba(37,16,31,0.88));
}
.theme-peach-parlor .choice-list { gap: 18px; }
.theme-peach-parlor .choice-btn {
  border-radius: 999px;
  padding-inline: 24px;
  background:
    radial-gradient(circle at 10% 20%, rgba(255,236,199,0.26), transparent 22%),
    linear-gradient(135deg, rgba(120,45,62,0.96), rgba(233,131,116,0.84));
}
.theme-peach-parlor .peach-cloud {
  width: 110px; height: 80px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,211,109,0.9), rgba(255,162,127,0.8));
  filter: blur(1px);
  animation: peachFloat 6s ease-in-out infinite;
}
.theme-peach-parlor .peach-cloud.one { left: 30px; top: 34px; }
.theme-peach-parlor .peach-cloud.two { right: 26px; top: 118px; animation-delay: -2s; }
.theme-peach-parlor .ribbon-orbit {
  left: 50%; top: 50%; width: 180px; height: 180px;
  transform: translate(-50%, -50%);
  border: 2px dashed rgba(255,248,232,0.28);
  border-radius: 50%;
  animation: spinSlow 12s linear infinite;
}
.theme-peach-parlor .peach-face {
  left: 50%; bottom: 28px; width: 160px; height: 160px;
  transform: translateX(-50%);
  border-radius: 48% 52% 52% 48%;
  background: radial-gradient(circle at 36% 32%, rgba(255,255,240,0.9), rgba(255,186,123,0.92) 38%, rgba(255,134,120,0.86) 100%);
}

.theme-door-hall .scene-drift { background: linear-gradient(180deg, rgba(14,20,36,0.3), rgba(26,38,72,0.2)); }
.theme-door-hall .room-scene {
  transform: rotate(0.8deg);
  background:
    linear-gradient(180deg, rgba(9,14,28,0.94), rgba(18,29,58,0.88));
}
.theme-door-hall .choice-btn {
  border-radius: 14px 14px 6px 6px;
  min-height: 92px;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,0.08), transparent 26%),
    linear-gradient(180deg, rgba(45,58,90,0.94), rgba(13,18,38,0.98));
}
.theme-door-hall .choice-btn:nth-child(odd),
.theme-door-hall .choice-btn:nth-child(even) { transform: none; }
.theme-door-hall .hall-door {
  top: 64px; width: 72px; height: 170px; border-radius: 14px 14px 6px 6px;
  display: flex; align-items: center; justify-content: center;
  font-family: "Papyrus", "Herculanum", "Luminari", fantasy; font-size: 1.6rem;
  color: var(--gold);
  background: linear-gradient(180deg, rgba(47,60,98,0.96), rgba(20,26,47,0.98));
  border: 1px solid rgba(255,248,232,0.18);
}
.theme-door-hall .door-a { left: 24px; transform: rotate(-4deg); }
.theme-door-hall .door-b { left: 112px; transform: rotate(2deg); }
.theme-door-hall .door-c { right: 112px; transform: rotate(-2deg); }
.theme-door-hall .door-d { right: 24px; transform: rotate(4deg); }

.theme-hotdog-orrery .scene-drift { background: radial-gradient(circle at center, rgba(255,211,109,0.1), rgba(18,16,42,0.18)); }
.theme-hotdog-orrery .room-scene {
  transform: rotate(-1.6deg);
  background:
    radial-gradient(circle at 70% 10%, rgba(255,206,109,0.12), transparent 18%),
    linear-gradient(145deg, rgba(25,19,56,0.94), rgba(10,14,30,0.9));
}
.theme-hotdog-orrery .choice-list {
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.theme-hotdog-orrery .choice-btn {
  min-height: 128px;
  border-radius: 50% 46% 44% 52% / 18% 18% 26% 26%;
  background:
    radial-gradient(circle at 50% 14%, rgba(255,214,130,0.28), transparent 26%),
    linear-gradient(160deg, rgba(36,32,94,0.96), rgba(80,27,78,0.92));
}
.theme-hotdog-orrery .orbit-ring {
  position: absolute; left: 50%; top: 50%; border-radius: 50%;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(255,248,232,0.2);
  animation: spinSlow 10s linear infinite;
}
.theme-hotdog-orrery .ring-a { width: 220px; height: 220px; }
.theme-hotdog-orrery .ring-b { width: 140px; height: 140px; animation-direction: reverse; }
.theme-hotdog-orrery .orbit-hotdog {
  left: 50%; top: 50%; width: 140px; height: 70px;
  transform: translate(-50%, -50%) rotate(-10deg);
  border-radius: 999px;
  background: linear-gradient(180deg, #d8a46d, #b06d3c);
  box-shadow: inset 0 0 0 10px rgba(159,54,55,0.96);
}
.theme-hotdog-orrery .orbit-hotdog::after {
  content: ""; position: absolute; inset: 22px 20px;
  border-radius: 999px; border-top: 5px solid rgba(255,211,109,0.9);
}
.theme-hotdog-orrery .orbit-star {
  width: 16px; height: 16px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,0.95), rgba(255,211,109,0.74));
}
.theme-hotdog-orrery .s1 { left: 54px; top: 48px; }
.theme-hotdog-orrery .s2 { right: 44px; top: 126px; }
.theme-hotdog-orrery .s3 { left: 160px; bottom: 40px; }

.theme-clap-chapel .scene-drift { background: linear-gradient(180deg, rgba(255,241,196,0.08), rgba(66,32,78,0.16)); }
.theme-clap-chapel .room-scene {
  background:
    linear-gradient(180deg, rgba(31,18,32,0.96), rgba(53,27,60,0.9));
}
.theme-clap-chapel .choice-list { gap: 10px; }
.theme-clap-chapel .choice-btn {
  border-radius: 10px;
  min-height: 72px;
  padding-block: 16px;
  background:
    linear-gradient(180deg, rgba(69,35,63,0.96), rgba(25,20,29,0.96));
  box-shadow: inset 0 -4px 0 rgba(255,241,196,0.08);
}
.theme-clap-chapel .chapel-arch {
  left: 50%; top: 18px; width: 220px; height: 220px;
  transform: translateX(-50%);
  border: 2px solid rgba(255,248,232,0.22);
  border-bottom: none;
  border-radius: 220px 220px 0 0;
}
.theme-clap-chapel .chapel-hand {
  bottom: 28px; width: 110px; height: 150px;
  background: linear-gradient(180deg, rgba(255,226,180,0.92), rgba(211,160,140,0.9));
  border-radius: 40px;
}
.theme-clap-chapel .left { left: 48px; transform: rotate(-18deg); }
.theme-clap-chapel .right { right: 48px; transform: rotate(18deg); }
.theme-clap-chapel .chapel-wave {
  left: 50%; top: 46%; width: 220px; height: 220px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  border: 2px dotted rgba(255,248,232,0.16);
  animation: pulseOut 2.6s ease-out infinite;
}
.theme-clap-chapel .wave-b { animation-delay: 1.2s; }

.theme-cash-garden .scene-drift { background: linear-gradient(180deg, rgba(216,255,118,0.08), rgba(35,68,47,0.18)); }
.theme-cash-garden .room-scene {
  background:
    radial-gradient(circle at 20% 0%, rgba(216,255,118,0.16), transparent 22%),
    linear-gradient(160deg, rgba(22,42,28,0.96), rgba(34,67,47,0.92));
}
.theme-cash-garden .choice-btn {
  border-radius: 28px 10px 34px 8px;
  background:
    radial-gradient(circle at 12% 20%, rgba(216,255,118,0.18), transparent 22%),
    linear-gradient(135deg, rgba(60,102,55,0.96), rgba(25,47,37,0.94));
}
.theme-cash-garden .bill-flower {
  bottom: 24px; width: 10px; height: 180px; background: rgba(216,255,118,0.54);
}
.theme-cash-garden .bill-flower::before {
  content: ""; position: absolute; left: -30px; top: -8px; width: 70px; height: 48px;
  border-radius: 18px; background: linear-gradient(180deg, rgba(216,255,118,0.96), rgba(120,178,74,0.94));
  box-shadow: inset 0 0 0 2px rgba(17,66,36,0.28);
}
.theme-cash-garden .stem-a { left: 56px; transform: rotate(-6deg); }
.theme-cash-garden .stem-b { left: 150px; height: 160px; }
.theme-cash-garden .stem-c { right: 78px; height: 190px; transform: rotate(8deg); }
.theme-cash-garden .little-sun {
  right: 34px; top: 34px; width: 78px; height: 78px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,220,0.98), rgba(255,211,109,0.86));
}

.theme-echo-bureau .scene-drift { background: linear-gradient(180deg, rgba(183,164,255,0.08), rgba(46,35,68,0.2)); }
.theme-echo-bureau .room-scene {
  transform: rotate(1deg);
  background:
    linear-gradient(150deg, rgba(26,28,43,0.96), rgba(52,33,72,0.92));
}
.theme-echo-bureau .choice-list { gap: 10px; }
.theme-echo-bureau .choice-btn {
  border-radius: 12px;
  background:
    linear-gradient(180deg, rgba(241,231,214,0.92), rgba(198,185,168,0.88));
  color: #2b2131;
  border-color: rgba(30,20,36,0.24);
  box-shadow: inset 0 -8px 0 rgba(108,84,99,0.16);
}
.theme-echo-bureau .choice-btn b { color: #73416c; }
.theme-echo-bureau .filing-cabinet {
  left: 50%; bottom: 24px; width: 180px; height: 220px; transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(61,73,110,0.94), rgba(30,36,60,0.98));
  border-radius: 16px;
}
.theme-echo-bureau .filing-drawer {
  left: 50%; width: 140px; height: 52px; transform: translateX(-50%);
  background: rgba(255,248,232,0.08); border: 1px solid rgba(255,248,232,0.16); border-radius: 12px;
}
.theme-echo-bureau .one { bottom: 154px; }
.theme-echo-bureau .two { bottom: 78px; }
.theme-echo-bureau .filing-stamp {
  right: 30px; top: 40px; width: 82px; height: 82px; border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,211,109,0.94), rgba(176,112,61,0.94));
  transform: rotate(16deg);
}

.theme-button-observatory .scene-drift { background: linear-gradient(180deg, rgba(156,245,242,0.06), rgba(19,40,76,0.22)); }
.theme-button-observatory .room-scene {
  background:
    linear-gradient(180deg, rgba(9,18,27,0.96), rgba(18,41,74,0.92));
}
.theme-button-observatory .choice-list {
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.theme-button-observatory .choice-btn {
  min-height: 112px;
  border-radius: 26px;
  background:
    radial-gradient(circle at 50% 22%, rgba(156,245,242,0.24), transparent 24%),
    linear-gradient(160deg, rgba(17,58,93,0.96), rgba(10,21,36,0.94));
  box-shadow: 0 0 0 1px rgba(156,245,242,0.12), 0 0 26px rgba(156,245,242,0.08);
}
.theme-button-observatory .control-dial {
  bottom: 28px; width: 96px; height: 96px; border-radius: 50%;
  border: 12px solid rgba(255,211,109,0.72);
  box-shadow: inset 0 0 0 8px rgba(17,57,93,0.86);
}
.theme-button-observatory .one { left: 54px; }
.theme-button-observatory .two { right: 54px; }
.theme-button-observatory .sky-grid {
  left: 36px; right: 36px; top: 34px; bottom: 140px;
  background:
    linear-gradient(rgba(255,255,255,0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.08) 1px, transparent 1px);
  background-size: 28px 28px;
}
.theme-button-observatory .sky-star {
  width: 18px; height: 18px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,0.95), rgba(255,211,109,0.78));
}
.theme-button-observatory .a { left: 72px; top: 74px; }
.theme-button-observatory .b { left: 184px; top: 126px; }
.theme-button-observatory .c { right: 84px; top: 90px; }

.theme-millionaire-lagoon .scene-drift { background: linear-gradient(180deg, rgba(156,245,242,0.12), rgba(21,66,89,0.26)); }
.theme-millionaire-lagoon .room-scene {
  transform: rotate(-1.2deg);
  background:
    radial-gradient(circle at 50% 0%, rgba(156,245,242,0.14), transparent 22%),
    linear-gradient(180deg, rgba(8,31,40,0.96), rgba(25,67,90,0.92));
}
.theme-millionaire-lagoon .choice-btn {
  border-radius: 999px 999px 30px 30px;
  background:
    radial-gradient(circle at 50% 18%, rgba(255,255,255,0.18), transparent 22%),
    linear-gradient(180deg, rgba(21,96,114,0.88), rgba(10,38,52,0.96));
}
.theme-millionaire-lagoon .lagoon-wave {
  left: -10%; right: -10%; height: 60px; border-radius: 999px;
  background: rgba(156,245,242,0.16);
}
.theme-millionaire-lagoon .wave-1 { bottom: 28px; }
.theme-millionaire-lagoon .wave-2 { bottom: 86px; opacity: 0.7; }
.theme-millionaire-lagoon .wave-3 { bottom: 144px; opacity: 0.48; }
.theme-millionaire-lagoon .lagoon-eye {
  left: 50%; top: 72px; width: 100px; height: 100px;
  transform: translateX(-50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,0.98), rgba(156,245,242,0.82));
  box-shadow: inset 0 0 0 22px rgba(28,74,83,0.74);
}

.theme-mask-theatre .scene-drift { background: linear-gradient(180deg, rgba(255,141,161,0.1), rgba(53,22,54,0.24)); }
.theme-mask-theatre .room-scene {
  background:
    linear-gradient(180deg, rgba(34,12,32,0.96), rgba(62,20,49,0.92));
}
.theme-mask-theatre .choice-list { gap: 16px; }
.theme-mask-theatre .choice-btn {
  border-radius: 50px 12px 50px 12px;
  background:
    radial-gradient(circle at 82% 10%, rgba(255,255,255,0.14), transparent 20%),
    linear-gradient(135deg, rgba(91,29,78,0.96), rgba(29,15,33,0.98));
}
.theme-mask-theatre .stage-mask {
  top: 78px; width: 110px; height: 150px;
  border-radius: 48% 52% 44% 56% / 36% 36% 64% 64%;
  background: linear-gradient(180deg, rgba(255,244,222,0.94), rgba(255,187,170,0.92));
  box-shadow: inset 0 0 0 2px rgba(49,24,66,0.24);
}
.theme-mask-theatre .mask-left { left: 56px; transform: rotate(-10deg); }
.theme-mask-theatre .mask-right { right: 56px; transform: rotate(10deg); }
.theme-mask-theatre .stage-spotlight {
  left: 50%; top: -30px; width: 260px; height: 340px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(255,255,240,0.32), transparent 70%);
  clip-path: polygon(46% 0, 54% 0, 100% 100%, 0 100%);
}

.theme-drawer-museum .scene-drift { background: linear-gradient(180deg, rgba(255,211,109,0.06), rgba(46,35,51,0.22)); }
.theme-drawer-museum .room-scene {
  transform: rotate(1.1deg);
  background:
    linear-gradient(150deg, rgba(25,18,21,0.96), rgba(60,38,43,0.92));
}
.theme-drawer-museum .choice-btn {
  border-radius: 12px;
  background:
    linear-gradient(180deg, rgba(92,65,56,0.98), rgba(48,34,31,0.98));
  box-shadow: inset 0 -8px 0 rgba(18,12,12,0.22);
}
.theme-drawer-museum .museum-frame {
  top: 34px; width: 100px; height: 130px;
  border: 10px solid rgba(255,211,109,0.72);
  background: rgba(255,248,232,0.1);
}
.theme-drawer-museum .one { left: 48px; transform: rotate(-6deg); }
.theme-drawer-museum .two { right: 48px; transform: rotate(6deg); }
.theme-drawer-museum .museum-drawer {
  left: 50%; bottom: 36px; width: 220px; height: 78px;
  transform: translateX(-50%);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(95,70,66,0.96), rgba(48,35,34,0.98));
}
.theme-drawer-museum .museum-hotdog {
  left: 50%; bottom: 72px; width: 130px; height: 58px; transform: translateX(-50%) rotate(-8deg);
  border-radius: 999px;
  background: linear-gradient(180deg, #d8a46d, #b06d3c);
  box-shadow: inset 0 0 0 10px rgba(159,54,55,0.96);
}

.scene-wipe {
  position: fixed;
  inset: 0;
  z-index: 30;
  pointer-events: none;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 30% 30%, rgba(255,211,109,0.16), transparent 18%),
    radial-gradient(circle at 70% 40%, rgba(255,141,161,0.16), transparent 18%),
    linear-gradient(180deg, rgba(7,15,24,0.84), rgba(30,16,50,0.92));
  animation: wipeIn 1120ms var(--ease) forwards;
}

.wipe-river,
.wipe-orb {
  position: absolute;
}

.wipe-river {
  width: 140vw; height: 24vh;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  filter: blur(12px);
  animation: ribbonRush 1120ms var(--ease) forwards;
}
.river-a { top: 22%; transform: rotate(-18deg); }
.river-b { bottom: 18%; transform: rotate(14deg); }

.wipe-orb {
  width: 18vw; height: 18vw; max-width: 220px; max-height: 220px;
  border-radius: 50%;
  opacity: 0.88;
  animation: orbitBurst 920ms var(--ease) forwards;
}
.orb-a { left: 16%; top: 18%; background: radial-gradient(circle, rgba(255,211,109,0.9), transparent 72%); }
.orb-b { right: 14%; top: 28%; background: radial-gradient(circle, rgba(156,245,242,0.9), transparent 72%); animation-delay: 60ms; }
.orb-c { left: 42%; bottom: 14%; background: radial-gradient(circle, rgba(255,141,161,0.92), transparent 72%); animation-delay: 100ms; }

.wipe-copy {
  position: relative;
  text-align: center;
  z-index: 1;
  display: grid;
  gap: 10px;
  justify-items: center;
  animation: wobbleFloat 1120ms var(--ease) forwards;
}
.wipe-copy span {
  display: block;
  font-size: 0.8rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--lime);
}
.wipe-copy strong {
  display: block;
  font-family: "Papyrus", "Herculanum", "Luminari", fantasy;
  font-size: clamp(2rem, 5vw, 3.8rem);
  line-height: 0.92;
}
.wipe-copy em {
  display: block;
  max-width: 40ch;
  font-style: normal;
  color: var(--muted);
  font-size: clamp(0.98rem, 1.8vw, 1.2rem);
}

.scene-wipe.theme-peach-parlor { background: linear-gradient(180deg, rgba(77,25,34,0.92), rgba(241,121,112,0.5), rgba(29,17,24,0.96)); }
.scene-wipe.theme-door-hall { background: linear-gradient(180deg, rgba(10,14,25,0.96), rgba(27,41,74,0.9), rgba(10,12,18,0.96)); }
.scene-wipe.theme-hotdog-orrery { background: radial-gradient(circle at 50% 50%, rgba(255,206,109,0.16), transparent 18%), linear-gradient(180deg, rgba(25,19,56,0.96), rgba(7,13,25,0.98)); }
.scene-wipe.theme-clap-chapel { background: linear-gradient(180deg, rgba(25,16,24,0.98), rgba(79,41,87,0.86), rgba(20,13,20,0.98)); }
.scene-wipe.theme-cash-garden { background: linear-gradient(180deg, rgba(21,43,26,0.98), rgba(68,116,62,0.82), rgba(20,19,23,0.98)); }
.scene-wipe.theme-echo-bureau { background: linear-gradient(180deg, rgba(18,19,28,0.98), rgba(67,42,82,0.84), rgba(17,15,23,0.98)); }
.scene-wipe.theme-button-observatory { background: linear-gradient(180deg, rgba(8,15,24,0.98), rgba(13,46,82,0.88), rgba(8,15,24,0.98)); }
.scene-wipe.theme-millionaire-lagoon { background: linear-gradient(180deg, rgba(10,26,34,0.98), rgba(19,88,106,0.86), rgba(15,18,42,0.98)); }
.scene-wipe.theme-mask-theatre { background: linear-gradient(180deg, rgba(28,10,26,0.98), rgba(94,28,69,0.82), rgba(24,12,22,0.98)); }
.scene-wipe.theme-drawer-museum { background: linear-gradient(180deg, rgba(26,18,17,0.98), rgba(73,48,41,0.88), rgba(19,12,16,0.98)); }

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(16px) rotate(-1deg); }
  to { opacity: 1; transform: translateY(0) rotate(0); }
}
@keyframes driftMoon {
  from { transform: translateY(0) rotate(-3deg); }
  to { transform: translateY(12px) rotate(3deg); }
}
@keyframes drift {
  from { transform: translateY(0) rotate(8deg); }
  to { transform: translateY(-18px) rotate(16deg); }
}
@keyframes spinSlow {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to { transform: translate(-50%, -50%) rotate(360deg); }
}
@keyframes peachFloat {
  from { transform: translateY(0) scale(1); }
  to { transform: translateY(-16px) scale(1.04); }
}
@keyframes pulseOut {
  from { opacity: 0.56; transform: translate(-50%, -50%) scale(0.7); }
  to { opacity: 0; transform: translate(-50%, -50%) scale(1.32); }
}
@keyframes wipeIn {
  0% { opacity: 0; transform: scale(0.96); }
  18% { opacity: 1; }
  70% { opacity: 1; transform: scale(1); }
  100% { opacity: 0; transform: scale(1.04); }
}
@keyframes orbitBurst {
  from { opacity: 0; transform: scale(0.4); }
  30% { opacity: 1; }
  to { opacity: 0; transform: scale(1.4); }
}
@keyframes wobbleFloat {
  0% { opacity: 0; transform: translateY(36px) rotate(-6deg) scale(0.86); }
  22% { opacity: 1; transform: translateY(0) rotate(3deg) scale(1); }
  56% { transform: translateY(-8px) rotate(-2deg) scale(1.02); }
  100% { opacity: 0; transform: translateY(-18px) rotate(5deg) scale(1.04); }
}
@keyframes ribbonRush {
  0% { opacity: 0; transform: translateX(-8vw) rotate(-24deg) scaleX(0.7); }
  28% { opacity: 1; }
  100% { opacity: 0; transform: translateX(6vw) rotate(18deg) scaleX(1.16); }
}

@media (max-width: 1024px) {
  .entry-fairground,
  .question-stage,
  .result-stage,
  .locked-stage,
  .room-scene {
    grid-template-columns: 1fr;
  }

  .scene-drift { min-height: 260px; }
  .theme-hotdog-orrery .choice-list,
  .theme-button-observatory .choice-list { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .page-shell { width: min(100vw - 16px, 1300px); }
  .topbar { flex-direction: column; align-items: stretch; }
  .utility-row { justify-content: flex-start; }
  .entry-actions,
  .button-row { display: grid; }
  .btn,
  .utility-btn { width: 100%; }
  .curtain { width: 20vw; }
}

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