/* Taylor Swift Quiz Room - eras archive, stage light, ink, and woods */

/* 1. Room variables */
:root,
body[data-room="taylor-swift"],
.qr-room-taylor-swift {
  --qr-bg: #0d0f1d;
  --qr-bg-elev: #191827;
  --qr-fg: #f3ece5;
  --qr-fg-dim: #c6b5b7;
  --qr-accent: #b77bd8;
  --qr-accent-dim: #644378;
  --qr-warn: #efcf74;
  --qr-danger: #be243a;
  --qr-radius: 6px;
  --qr-ts-ink: #1f1922;
  --qr-ts-cream: #f6ecda;
  --qr-ts-sage: #5d6f5e;
  --qr-ts-copper: #bb8440;
  --qr-ts-red: #be243a;
  --qr-ts-pink: #f5a8cc;
  --qr-ts-blue: #74b2de;
  --qr-ts-lavender: #8f6fc9;
  --qr-ts-line: rgba(239, 207, 116, 0.28);
  --qr-ts-prop-cardigan: url("objects/cardigan.png");
  --qr-ts-prop-scarf: url("objects/scarf_red.png");
  --qr-ts-prop-snake: url("objects/snake_silver.png");
  --qr-ts-prop-polaroid: url("objects/polaroid.png");
  --qr-ts-prop-lavender: url("objects/lavender.png");
  --qr-ts-prop-mic: url("objects/mic_pop.png");
  --qr-ts-prop-vinyl: url("objects/vinyl_record.png");
  --qr-ts-prop-bracelet: url("objects/friendship_bracelet.png");
  --qr-ts-prop-leaf: url("objects/leaf_autumn.png");
  --qr-ts-prop-medallion: url("objects/medallion_13.png");
}

/* 2. Base typography and frame */
body[data-room="taylor-swift"] {
  background: linear-gradient(180deg, rgba(116, 178, 222, 0.12) 0%, rgba(13, 15, 29, 0) 28%), repeating-linear-gradient(90deg, rgba(246, 236, 218, 0.025) 0 1px, transparent 1px 18px), var(--qr-bg);
  color: var(--qr-fg);
  font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
}
body[data-room="taylor-swift"] #qr-root { max-width: 500px; padding: 24px 16px 32px; }
body[data-room="taylor-swift"] .qr-stage { gap: 14px; }
body[data-room="taylor-swift"] .qr-progress {
  color: var(--qr-ts-cream);
  font-family: "Press Start 2P", monospace;
  font-size: 10px;
  letter-spacing: 0;
  text-align: right;
}
body[data-room="taylor-swift"] .qr-board {
  position: relative;
  overflow: hidden;
  min-height: 340px;
  padding: 18px 16px 20px;
  background: linear-gradient(180deg, rgba(245, 168, 204, 0.08), rgba(13, 15, 29, 0) 38%), linear-gradient(180deg, var(--qr-bg-elev), var(--qr-ts-ink));
  border: 1px solid var(--qr-accent-dim);
  border-radius: var(--qr-radius);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.36), inset 0 0 0 1px rgba(246, 236, 218, 0.04);
}
body[data-room="taylor-swift"] .qr-board::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, transparent 0 48%, rgba(246, 236, 218, 0.035) 49% 51%, transparent 52%), repeating-linear-gradient(0deg, transparent 0 13px, rgba(246, 236, 218, 0.018) 14px);
}
body[data-room="taylor-swift"] .qr-board > * { position: relative; z-index: 1; }
body[data-room="taylor-swift"] .qr-board h1,
body[data-room="taylor-swift"] .qr-board h2,
body[data-room="taylor-swift"] .qr-board h3,
body[data-room="taylor-swift"] .qr-choice-prompt h1,
body[data-room="taylor-swift"] .qr-choice-prompt h2,
body[data-room="taylor-swift"] .qr-choice-prompt h3 {
  color: var(--qr-fg);
  font-family: "Press Start 2P", monospace;
  letter-spacing: 0;
  line-height: 1.45;
}
body[data-room="taylor-swift"] .qr-choice-prompt { margin: 0 0 14px; color: var(--qr-fg-dim); }
body[data-room="taylor-swift"] .qr-choice-prompt h2 { margin: 0 0 8px; color: var(--qr-accent); font-size: 14px; }
body[data-room="taylor-swift"] .qr-choice-prompt p { margin: 0; color: var(--qr-fg-dim); font-size: 14px; line-height: 1.55; }
body[data-room="taylor-swift"] .qr-scene {
  display: block;
  width: 100%;
  aspect-ratio: 8 / 3;
  height: auto;
  max-height: 168px;
  object-fit: cover;
  margin: 0 0 16px;
  border: 1px solid var(--qr-ts-line);
  border-radius: var(--qr-radius);
  background: var(--qr-bg);
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  animation: qr-ts-scene-in 300ms ease-out both;
}

/* 3. Shared controls */
body[data-room="taylor-swift"] .qr-choice-list { display: grid; grid-template-columns: 1fr; gap: 10px; margin: 0 0 12px; }
body[data-room="taylor-swift"] .qr-choice {
  appearance: none;
  position: relative;
  width: 100%;
  min-height: 58px;
  overflow: hidden;
  padding: 12px 13px 12px 56px;
  color: var(--qr-fg);
  background: linear-gradient(135deg, rgba(246, 236, 218, 0.07), rgba(116, 178, 222, 0.025)), var(--qr-bg);
  border: 1px solid rgba(183, 123, 216, 0.46);
  border-radius: var(--qr-radius);
  box-shadow: inset 0 0 0 1px rgba(246, 236, 218, 0.04);
  cursor: pointer;
  font-family: inherit;
  font-size: 13px;
  line-height: 1.45;
  text-align: left;
  touch-action: manipulation;
  transition: transform 120ms ease, border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
}
body[data-room="taylor-swift"] .qr-choice::before {
  content: "";
  position: absolute;
  left: 13px;
  top: 50%;
  width: 30px;
  height: 30px;
  transform: translateY(-50%);
  background: var(--qr-ts-choice-icon, var(--qr-ts-prop-bracelet)) center / contain no-repeat;
  image-rendering: pixelated;
  filter: drop-shadow(0 4px 0 rgba(0, 0, 0, 0.18));
  animation: qr-ts-prop-bob 2.8s ease-in-out infinite;
}
body[data-room="taylor-swift"] .qr-choice::after {
  content: "";
  position: absolute;
  top: 8px;
  bottom: 8px;
  left: 48px;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(239, 207, 116, 0.40), transparent);
}
body[data-room="taylor-swift"] .qr-choice:hover:not(:disabled),
body[data-room="taylor-swift"] .qr-choice:focus-visible {
  border-color: var(--qr-warn);
  box-shadow: 0 0 0 2px rgba(239, 207, 116, 0.15), inset 0 0 0 1px rgba(246, 236, 218, 0.08);
  transform: translateY(-1px);
}
body[data-room="taylor-swift"] .qr-choice.picked {
  background: linear-gradient(135deg, rgba(183, 123, 216, 0.24), rgba(245, 168, 204, 0.10)), var(--qr-ts-ink);
  border-color: var(--qr-accent);
  color: var(--qr-fg);
  opacity: 1;
  animation: qr-ts-choice-lift 180ms ease-out both;
}
body[data-room="taylor-swift"] .qr-choice:disabled:not(.picked) { opacity: 0.56; cursor: not-allowed; filter: grayscale(0.35); }
body[data-room="taylor-swift"] .qr-btn {
  appearance: none;
  width: 100%;
  min-height: 44px;
  margin-top: 16px;
  padding: 12px 18px;
  color: #16111a;
  background: linear-gradient(180deg, var(--qr-warn), var(--qr-accent));
  border: 1px solid rgba(246, 236, 218, 0.18);
  border-radius: var(--qr-radius);
  box-shadow: 0 5px 0 var(--qr-accent-dim);
  cursor: pointer;
  font-family: "Press Start 2P", monospace;
  font-size: 11px;
  letter-spacing: 0;
  line-height: 1.35;
  transition: transform 100ms ease, filter 100ms ease, box-shadow 100ms ease;
}
body[data-room="taylor-swift"] .qr-btn:hover:not(:disabled),
body[data-room="taylor-swift"] .qr-btn:focus-visible { filter: brightness(1.06); transform: translateY(-1px); box-shadow: 0 6px 0 var(--qr-accent-dim), 0 0 16px rgba(183, 123, 216, 0.28); }
body[data-room="taylor-swift"] .qr-btn:disabled { opacity: 0.52; cursor: not-allowed; filter: grayscale(0.45); transform: none; box-shadow: none; }
body[data-room="taylor-swift"] .qr-outcome {
  position: relative;
  margin-top: 13px;
  padding: 13px 14px;
  color: var(--qr-fg);
  background: rgba(13, 15, 29, 0.78);
  border: 1px solid rgba(239, 207, 116, 0.45);
  border-left: 4px solid var(--qr-accent);
  border-radius: var(--qr-radius);
  box-shadow: inset 0 0 0 1px rgba(246, 236, 218, 0.04);
  font-size: 13px;
  line-height: 1.55;
  animation: qr-ts-scene-in 220ms ease-out both;
}
body[data-room="taylor-swift"] .qr-outcome[hidden],
body[data-room="taylor-swift"] .qr-choice-list[hidden] { display: none; }
body[data-room="taylor-swift"] .qr-counter,
body[data-room="taylor-swift"] .qr-status { color: var(--qr-fg-dim); font-family: "Press Start 2P", monospace; font-size: 10px; letter-spacing: 0; }
body[data-room="taylor-swift"] .qr-counter span,
body[data-room="taylor-swift"] .qr-status.win,
body[data-room="taylor-swift"] .qr-status span { color: var(--qr-warn); }
body[data-room="taylor-swift"] .qr-status.warn { color: var(--qr-warn); }
body[data-room="taylor-swift"] .qr-status.bad { color: var(--qr-danger); }
body[data-room="taylor-swift"] .qr-hint { padding: 10px 12px; color: var(--qr-warn); background: rgba(239, 207, 116, 0.06); border-left: 3px solid var(--qr-warn); border-radius: var(--qr-radius); font-size: 12px; line-height: 1.45; }
body[data-room="taylor-swift"] .qr-result-sprite {
  width: 224px;
  height: 224px;
  object-fit: contain;
  object-position: center;
  background: linear-gradient(180deg, rgba(245, 168, 204, 0.10), rgba(116, 178, 222, 0.06)), var(--qr-bg);
  border: 4px solid var(--qr-accent);
  box-shadow: 0 8px 0 var(--qr-accent-dim), 0 0 0 1px rgba(246, 236, 218, 0.12);
  animation: qr-ts-sprite-in 520ms cubic-bezier(.22, 1.18, .36, 1) both;
}
body[data-room="taylor-swift"] .qr-result-eyebrow,
body[data-room="taylor-swift"] .qr-result-dossier-eyebrow { color: var(--qr-accent); font-family: "Press Start 2P", monospace; letter-spacing: 0; }
body[data-room="taylor-swift"] .qr-result-name { color: var(--qr-fg) !important; line-height: 1.35; }
body[data-room="taylor-swift"] .qr-result-receipts.qr-result-dossier { background: linear-gradient(180deg, rgba(246, 236, 218, 0.08), rgba(13, 15, 29, 0.38)), var(--qr-bg-elev); border: 1px solid var(--qr-ts-line); }

/* 4. Shared Taylor puzzle surfaces */
.qr-ts-bridge,
.qr-ts-easter,
.qr-ts-build,
.qr-ts-cut,
.qr-ts-eramatch { display: flex; flex-direction: column; gap: 14px; }
.qr-ts-lyrics {
  min-height: 64px;
  margin: 0;
  padding: 15px 16px;
  color: var(--qr-fg);
  background: linear-gradient(180deg, rgba(246, 236, 218, 0.08), rgba(13, 15, 29, 0.18)), rgba(13, 15, 29, 0.54);
  border: 1px solid rgba(239, 207, 116, 0.26);
  border-radius: var(--qr-radius);
  box-shadow: inset 0 0 0 1px rgba(246, 236, 218, 0.035);
  font-size: 14px;
  font-style: italic;
  line-height: 1.65;
  text-align: center;
}
.qr-ts-lyrics em { color: var(--qr-warn); font-style: normal; }
body[data-room="taylor-swift"] .qr-board:has(.qr-ts-bridge) { border-color: rgba(116, 178, 222, 0.52); }
body[data-room="taylor-swift"] .qr-board:has(.qr-ts-easter) { border-color: rgba(239, 207, 116, 0.45); }
body[data-room="taylor-swift"] .qr-board:has(.qr-ts-build) { border-color: rgba(93, 111, 94, 0.72); }
body[data-room="taylor-swift"] .qr-board:has(.qr-ts-cut) { border-color: rgba(190, 36, 58, 0.62); }
body[data-room="taylor-swift"] .qr-board:has(.qr-ts-eramatch) { border-color: rgba(245, 168, 204, 0.52); }

/* 5. Puzzle 1: Spot the Real Bridge */
.qr-ts-bridge .qr-scene { border-color: rgba(116, 178, 222, 0.58); }
.qr-ts-bridge .qr-choice-prompt {
  padding: 12px 13px;
  background: rgba(116, 178, 222, 0.08);
  border: 1px solid rgba(116, 178, 222, 0.26);
  border-radius: var(--qr-radius);
}
.qr-ts-bridge .qr-choice-prompt h2 { color: var(--qr-ts-blue); }
.qr-ts-bridge .qr-ts-lyrics { border-color: rgba(116, 178, 222, 0.36); }
.qr-ts-bridge .qr-choice { --qr-ts-choice-icon: var(--qr-ts-prop-mic); border-color: rgba(116, 178, 222, 0.46); }
.qr-ts-bridge .qr-choice[data-id="tim"] { --qr-ts-choice-icon: var(--qr-ts-prop-leaf); }
.qr-ts-bridge .qr-choice[data-id="rep"] { --qr-ts-choice-icon: var(--qr-ts-prop-snake); }
.qr-ts-bridge .qr-choice[data-id^="fake"] { --qr-ts-choice-icon: var(--qr-ts-prop-polaroid); }
.qr-ts-bridge .qr-choice.picked { border-color: var(--qr-ts-blue); box-shadow: 0 0 0 2px rgba(116, 178, 222, 0.18); }
.qr-ts-bridge .qr-outcome { border-left-color: var(--qr-ts-blue); }
.qr-ts-bridge-done { background: linear-gradient(180deg, var(--qr-ts-blue), var(--qr-accent)); }

/* 6. Puzzle 2: Easter Egg */
.qr-ts-easter .qr-scene { border-color: rgba(239, 207, 116, 0.58); }
.qr-ts-easter .qr-choice-prompt {
  padding: 12px 13px;
  background: rgba(239, 207, 116, 0.07);
  border: 1px solid rgba(239, 207, 116, 0.26);
  border-radius: var(--qr-radius);
}
.qr-ts-easter .qr-choice-prompt h2 { color: var(--qr-warn); }
.qr-ts-easter .qr-ts-lyrics { color: var(--qr-ts-cream); border-color: rgba(239, 207, 116, 0.38); }
.qr-ts-easter .qr-choice { --qr-ts-choice-icon: var(--qr-ts-prop-medallion); min-height: 72px; padding-right: 10px; }
.qr-ts-easter .qr-choice-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.qr-ts-easter .qr-choice[data-id="fearless"] { --qr-ts-choice-icon: var(--qr-ts-prop-leaf); }
.qr-ts-easter .qr-choice[data-id="era1989"] { --qr-ts-choice-icon: var(--qr-ts-prop-polaroid); }
.qr-ts-easter .qr-choice[data-id="reputation"] { --qr-ts-choice-icon: var(--qr-ts-prop-snake); }
.qr-ts-easter .qr-choice[data-id="lover"] { --qr-ts-choice-icon: var(--qr-ts-prop-bracelet); }
.qr-ts-easter .qr-choice[data-id="folklore"] { --qr-ts-choice-icon: var(--qr-ts-prop-cardigan); }
.qr-ts-easter .qr-choice[data-id="speak_now"] { --qr-ts-choice-icon: var(--qr-ts-prop-mic); }
.qr-ts-easter .qr-choice[data-id="evermore"] { --qr-ts-choice-icon: var(--qr-ts-prop-lavender); }
.qr-ts-easter .qr-choice[data-id="midnights"] { --qr-ts-choice-icon: var(--qr-ts-prop-vinyl); }
.qr-ts-easter .qr-choice[data-id="ttpd"] { --qr-ts-choice-icon: var(--qr-ts-prop-medallion); }
.qr-ts-easter .qr-choice.picked { border-color: var(--qr-warn); }
.qr-ts-easter-done { background: linear-gradient(180deg, var(--qr-warn), var(--qr-ts-copper)); }

/* 7. Puzzle 3: Build the Bridge */
.qr-ts-build .qr-scene { border-color: rgba(93, 111, 94, 0.72); }
.qr-ts-build .qr-choice-prompt {
  padding: 12px 13px;
  background: rgba(93, 111, 94, 0.16);
  border: 1px solid rgba(93, 111, 94, 0.38);
  border-radius: var(--qr-radius);
}
.qr-ts-build .qr-choice-prompt h2 { color: var(--qr-ts-sage); }
.qr-ts-build .qr-ts-lyrics { border-color: rgba(93, 111, 94, 0.46); background: linear-gradient(180deg, rgba(93, 111, 94, 0.17), rgba(13, 15, 29, 0.22)), rgba(13, 15, 29, 0.62); }
.qr-ts-build .qr-choice-list { gap: 9px; }
.qr-ts-build .qr-choice[data-id="cottagecore"] { --qr-ts-choice-icon: var(--qr-ts-prop-cardigan); }
.qr-ts-build .qr-choice[data-id="vengeful"] { --qr-ts-choice-icon: var(--qr-ts-prop-snake); }
.qr-ts-build .qr-choice[data-id="country"] { --qr-ts-choice-icon: var(--qr-ts-prop-leaf); }
.qr-ts-build .qr-choice[data-id="solo_pen"] { --qr-ts-choice-icon: var(--qr-ts-prop-mic); }
.qr-ts-build .qr-choice[data-id="glossy"] { --qr-ts-choice-icon: var(--qr-ts-prop-polaroid); }
.qr-ts-build .qr-choice[data-id="winter_fiction"] { --qr-ts-choice-icon: var(--qr-ts-prop-lavender); }
.qr-ts-build .qr-choice[data-id="lavender"] { --qr-ts-choice-icon: var(--qr-ts-prop-vinyl); }
.qr-ts-build .qr-choice[data-id="typewriter"] { --qr-ts-choice-icon: var(--qr-ts-prop-medallion); }
.qr-ts-build .qr-choice[data-id="pastel"] { --qr-ts-choice-icon: var(--qr-ts-prop-bracelet); }
.qr-ts-build .qr-choice:nth-child(odd) { border-color: rgba(93, 111, 94, 0.52); }
.qr-ts-build .qr-choice:nth-child(even) { border-color: rgba(239, 207, 116, 0.32); }
.qr-ts-build .qr-choice.picked { border-color: var(--qr-ts-sage); box-shadow: 0 0 0 2px rgba(93, 111, 94, 0.20); }
.qr-ts-build-done { background: linear-gradient(180deg, var(--qr-ts-sage), var(--qr-accent)); }

/* 8. Puzzle 4: The Radio Cut */
.qr-ts-cut .qr-scene { border-color: rgba(190, 36, 58, 0.70); }
.qr-ts-cut .qr-choice-prompt {
  padding: 12px 13px;
  background: rgba(190, 36, 58, 0.12);
  border: 1px solid rgba(190, 36, 58, 0.34);
  border-radius: var(--qr-radius);
}
.qr-ts-cut .qr-choice-prompt h2 { color: var(--qr-ts-red); }
.qr-ts-cut .qr-choice { --qr-ts-choice-icon: var(--qr-ts-prop-scarf); border-color: rgba(190, 36, 58, 0.44); }
.qr-ts-cut .qr-choice[data-id="scarf"] { --qr-ts-choice-icon: var(--qr-ts-prop-scarf); }
.qr-ts-cut .qr-choice[data-id="rage"] { --qr-ts-choice-icon: var(--qr-ts-prop-snake); }
.qr-ts-cut .qr-choice[data-id="fall"] { --qr-ts-choice-icon: var(--qr-ts-prop-leaf); }
.qr-ts-cut .qr-choice[data-id="speech"] { --qr-ts-choice-icon: var(--qr-ts-prop-mic); }
.qr-ts-cut .qr-choice[data-id="winter"] { --qr-ts-choice-icon: var(--qr-ts-prop-lavender); }
.qr-ts-cut .qr-choice[data-id="mom"] { --qr-ts-choice-icon: var(--qr-ts-prop-vinyl); }
.qr-ts-cut .qr-choice[data-id="thesis"] { --qr-ts-choice-icon: var(--qr-ts-prop-medallion); }
.qr-ts-cut .qr-choice[data-id="dance"] { --qr-ts-choice-icon: var(--qr-ts-prop-bracelet); }
.qr-ts-cut .qr-choice:hover:not(:disabled) { border-color: var(--qr-ts-red); }
.qr-ts-cut .qr-choice.picked { border-color: var(--qr-ts-red); background: linear-gradient(135deg, rgba(190, 36, 58, 0.26), rgba(239, 207, 116, 0.08)), var(--qr-ts-ink); }
.qr-ts-cut .qr-outcome { border-left-color: var(--qr-ts-red); }
.qr-ts-cut-done { background: linear-gradient(180deg, var(--qr-ts-red), var(--qr-ts-copper)); color: var(--qr-ts-cream); }

/* 9. Puzzle 5: The Era Match */
body[data-room="taylor-swift"] .qr-ts-eramatch.qr-ts-eramatch { gap: 14px; }
body[data-room="taylor-swift"] .qr-ts-eramatch .qr-scene { border-color: rgba(245, 168, 204, 0.58); }
body[data-room="taylor-swift"] .qr-ts-eramatch-prompt {
  padding: 12px 13px;
  background: rgba(245, 168, 204, 0.08);
  border: 1px solid rgba(245, 168, 204, 0.28);
  border-radius: var(--qr-radius);
}
body[data-room="taylor-swift"] .qr-ts-eramatch-prompt h2 { margin: 0 0 8px; color: var(--qr-ts-pink); font-family: "Press Start 2P", monospace; font-size: 14px; letter-spacing: 0; }
body[data-room="taylor-swift"] .qr-ts-eramatch-prompt p { margin: 0; color: var(--qr-fg-dim); font-size: 14px; line-height: 1.55; }
body[data-room="taylor-swift"] .qr-ts-eramatch-status.qr-ts-eramatch-status {
  padding: 10px 12px;
  color: var(--qr-ts-cream);
  background: rgba(13, 15, 29, 0.58);
  border: 1px solid rgba(245, 168, 204, 0.26);
  border-radius: var(--qr-radius);
  font-family: "Press Start 2P", monospace;
  font-size: 10px;
  letter-spacing: 0;
}
body[data-room="taylor-swift"] .qr-ts-eramatch-cols.qr-ts-eramatch-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
body[data-room="taylor-swift"] .qr-ts-eramatch-col.qr-ts-eramatch-col {
  padding: 10px;
  background: linear-gradient(180deg, rgba(246, 236, 218, 0.06), rgba(13, 15, 29, 0.12)), var(--qr-bg);
  border: 1px solid rgba(183, 123, 216, 0.36);
  border-radius: var(--qr-radius);
  gap: 8px;
}
body[data-room="taylor-swift"] .qr-ts-eramatch-col-head.qr-ts-eramatch-col-head { color: var(--qr-ts-pink); font-family: "Press Start 2P", monospace; font-size: 9px; letter-spacing: 0; text-align: center; }
body[data-room="taylor-swift"] .qr-ts-eramatch-tile.qr-ts-eramatch-tile {
  min-height: 60px;
  padding: 11px 10px;
  color: var(--qr-fg);
  background: var(--qr-ts-ink);
  border: 1px solid rgba(183, 123, 216, 0.48);
  border-radius: var(--qr-radius);
  box-shadow: inset 0 0 0 1px rgba(246, 236, 218, 0.04);
  font-size: 12px;
  line-height: 1.45;
  transition: transform 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
}
body[data-room="taylor-swift"] .qr-ts-eramatch-tile:hover:not(:disabled),
body[data-room="taylor-swift"] .qr-ts-eramatch-tile:focus-visible { filter: none; transform: translateY(-1px); border-color: var(--qr-ts-pink); box-shadow: 0 0 0 2px rgba(245, 168, 204, 0.16); }
body[data-room="taylor-swift"] .qr-ts-eramatch-tile.selected { border-color: var(--qr-warn); box-shadow: 0 0 0 2px rgba(239, 207, 116, 0.22); }
body[data-room="taylor-swift"] .qr-ts-eramatch-tile.paired { background: linear-gradient(135deg, rgba(245, 168, 204, 0.13), rgba(116, 178, 222, 0.05)), var(--qr-ts-ink); }
body[data-room="taylor-swift"] .qr-ts-eramatch-tile-era { color: var(--qr-warn); font-family: "Press Start 2P", monospace; font-size: 10px; letter-spacing: 0; }
body[data-room="taylor-swift"] .qr-ts-eramatch-tile-sub,
body[data-room="taylor-swift"] .qr-ts-eramatch-tile-mood { color: var(--qr-fg-dim); }
body[data-room="taylor-swift"] .qr-ts-eramatch-tile-bond { font-family: "Press Start 2P", monospace; font-size: 8px; letter-spacing: 0; }
body[data-room="taylor-swift"] .qr-ts-eramatch-actions.qr-ts-eramatch-actions { display: flex; gap: 8px; }
body[data-room="taylor-swift"] .qr-ts-eramatch-actions .qr-btn { flex: 1; width: auto; margin-top: 0; min-height: 44px; }
body[data-room="taylor-swift"] .qr-ts-eramatch-skip { background: transparent; color: var(--qr-fg); border-color: rgba(245, 168, 204, 0.35); box-shadow: none; }
body[data-room="taylor-swift"] .qr-ts-eramatch-result.qr-ts-eramatch-result {
  padding: 13px 14px;
  color: var(--qr-ts-pink);
  background: rgba(13, 15, 29, 0.78);
  border: 1px solid rgba(245, 168, 204, 0.42);
  border-radius: var(--qr-radius);
  font-family: "Press Start 2P", monospace;
  font-size: 10px;
  letter-spacing: 0;
  line-height: 1.65;
}
body[data-room="taylor-swift"] .qr-ts-eramatch-done { background: linear-gradient(180deg, var(--qr-ts-pink), var(--qr-accent)); }

/* 10. Motion */
@keyframes qr-ts-sprite-in {
  0% { opacity: 0; transform: translateY(10px) scale(0.94); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes qr-ts-scene-in {
  0% { opacity: 0; transform: translateY(4px); }
  100% { opacity: 1; transform: translateY(0); }
}
@keyframes qr-ts-prop-bob {
  0%, 100% { transform: translateY(-50%); }
  50% { transform: translateY(calc(-50% - 2px)); }
}
@keyframes qr-ts-choice-lift {
  0% { transform: translateY(0); }
  60% { transform: translateY(-2px); }
  100% { transform: translateY(-1px); }
}
@media (prefers-reduced-motion: reduce) {
  body[data-room="taylor-swift"] *,
  body[data-room="taylor-swift"] *::before,
  body[data-room="taylor-swift"] *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}

/* 11. Mobile */
@media (max-width: 560px) {
  body[data-room="taylor-swift"] #qr-root { max-width: 100%; padding: 18px 12px 28px; }
  body[data-room="taylor-swift"] .qr-board { min-height: 320px; padding: 15px 12px 18px; }
  body[data-room="taylor-swift"] .qr-scene { max-height: 148px; margin-bottom: 14px; }
  body[data-room="taylor-swift"] .qr-choice-prompt h2,
  body[data-room="taylor-swift"] .qr-ts-eramatch-prompt h2 { font-size: 12px; }
  body[data-room="taylor-swift"] .qr-choice-prompt p,
  body[data-room="taylor-swift"] .qr-ts-lyrics,
  body[data-room="taylor-swift"] .qr-outcome { font-size: 13px; }
  body[data-room="taylor-swift"] .qr-choice,
  body[data-room="taylor-swift"] .qr-btn,
  body[data-room="taylor-swift"] .qr-ts-eramatch-tile { min-height: 44px; }
  body[data-room="taylor-swift"] .qr-choice { padding: 11px 11px 11px 50px; }
  body[data-room="taylor-swift"] .qr-choice::before { left: 11px; width: 28px; height: 28px; }
  body[data-room="taylor-swift"] .qr-choice::after { left: 44px; }
  .qr-ts-easter .qr-choice-list,
  body[data-room="taylor-swift"] .qr-ts-eramatch-cols.qr-ts-eramatch-cols { grid-template-columns: 1fr; }
  body[data-room="taylor-swift"] .qr-ts-eramatch-actions.qr-ts-eramatch-actions { flex-direction: column; }
}
@media (max-width: 380px) {
  body[data-room="taylor-swift"] .qr-choice { font-size: 12px; }
  body[data-room="taylor-swift"] .qr-btn { font-size: 10px; padding-left: 12px; padding-right: 12px; }
  body[data-room="taylor-swift"] .qr-result-sprite { width: 192px; height: 192px; }
}
