/* The Last of Us Quiz Room - overgrown survivor trial */

:root {
  --qr-bg: #0c1112; --qr-bg-elev: #161e1f; --qr-fg: #ddd6c2; --qr-fg-dim: #9f947f;
  --qr-accent: #c46a2c; --qr-accent-dim: #6e3a13; --qr-warn: #e6c14a; --qr-danger: #a63a2a; --qr-radius: 6px;
  --qr-tlou-shadow: #080c0c; --qr-tlou-panel: #1d2624; --qr-tlou-olive: #253b2e; --qr-tlou-moss: #4a5b3e; --qr-tlou-denim: #364b59;
  --qr-tlou-concrete: #a0977c; --qr-tlou-fungus: #c2aa7d; --qr-tlou-rust: #963223; --qr-tlou-line: rgba(221, 214, 194, 0.16); --qr-tlou-glow: rgba(196, 106, 44, 0.18);
}

body[data-room="the-last-of-us"] {
  margin: 0; color: var(--qr-fg); font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  background:
    radial-gradient(circle at 50% 0, rgba(74, 91, 62, 0.22), transparent 32%),
    linear-gradient(180deg, #111817 0%, var(--qr-bg) 52%, #060909 100%);
}

body[data-room="the-last-of-us"] #qr-root { max-width: 488px; }

body[data-room="the-last-of-us"] .qr-stage { display: flex; flex-direction: column; gap: 16px; }

body[data-room="the-last-of-us"] .qr-progress {
  color: var(--qr-tlou-concrete); font-family: 'Press Start 2P', monospace; font-size: 10px; letter-spacing: 0; text-align: right;
}

body[data-room="the-last-of-us"] .qr-board {
  position: relative;
  min-height: 340px;
  overflow: hidden;
  padding: 18px 16px 20px;
  background:
    linear-gradient(180deg, rgba(221, 214, 194, 0.045), transparent 130px),
    repeating-linear-gradient(0deg, rgba(194, 170, 125, 0.035) 0 1px, transparent 1px 12px),
    var(--qr-bg-elev);
  border: 1px solid rgba(194, 170, 125, 0.28);
  border-radius: var(--qr-radius);
  box-shadow: 0 10px 0 rgba(0, 0, 0, 0.28), inset 0 0 0 1px rgba(221, 214, 194, 0.035);
}

body[data-room="the-last-of-us"] .qr-board::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.035), transparent 18%, transparent 82%, rgba(0, 0, 0, 0.16)),
    radial-gradient(circle at 12% 12%, rgba(74, 91, 62, 0.12), transparent 28%);
}

body[data-room="the-last-of-us"] .qr-board > * {
  position: relative;
  z-index: 1;
}

body[data-room="the-last-of-us"] .qr-scene {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 0 16px;
  border: 1px solid rgba(194, 170, 125, 0.34);
  border-radius: var(--qr-radius);
  background: var(--qr-tlou-shadow);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.42), 0 4px 0 rgba(0, 0, 0, 0.18);
  image-rendering: pixelated;
  image-rendering: -moz-crisp-edges;
  image-rendering: crisp-edges;
  animation: qr-tlou-scene-fade 320ms ease-out both;
}

body[data-room="the-last-of-us"] .qr-choice-prompt {
  margin: 0 0 14px;
  padding: 0 0 12px;
  border-bottom: 1px dashed rgba(194, 170, 125, 0.22);
}

body[data-room="the-last-of-us"] .qr-choice-prompt h2,
body[data-room="the-last-of-us"] .qr-board h2 {
  margin: 0 0 8px;
  color: var(--qr-accent);
  font-family: 'Press Start 2P', monospace;
  font-size: 14px;
  letter-spacing: 0;
  line-height: 1.45;
  text-transform: uppercase;
}

body[data-room="the-last-of-us"] .qr-choice-prompt p {
  margin: 0; color: var(--qr-fg-dim); font-size: 14px; line-height: 1.55;
}

body[data-room="the-last-of-us"] .qr-btn {
  width: 100%;
  min-height: 44px;
  margin-top: 16px;
  padding: 12px 18px;
  color: #160f0b;
  background: linear-gradient(180deg, var(--qr-warn), var(--qr-accent));
  border: 1px solid rgba(230, 193, 74, 0.28);
  border-radius: var(--qr-radius);
  box-shadow: 0 4px 0 var(--qr-accent-dim);
  cursor: pointer;
  font-family: 'Press Start 2P', monospace;
  font-size: 11px;
  letter-spacing: 0;
  text-transform: uppercase;
  transition: transform 100ms ease, filter 100ms ease, box-shadow 100ms ease;
}

body[data-room="the-last-of-us"] .qr-btn:hover,
body[data-room="the-last-of-us"] .qr-btn:focus-visible {
  filter: brightness(1.08); transform: translateY(-1px);
}

body[data-room="the-last-of-us"] .qr-btn:active {
  transform: translateY(2px); box-shadow: 0 2px 0 var(--qr-accent-dim);
}

body[data-room="the-last-of-us"] .qr-btn:disabled {
  cursor: not-allowed; filter: grayscale(0.45); opacity: 0.52; transform: none;
}

body[data-room="the-last-of-us"] .qr-choice-list { display: grid; grid-template-columns: 1fr; gap: 9px; margin: 0; }

body[data-room="the-last-of-us"] .qr-choice {
  appearance: none;
  position: relative;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-height: 64px;
  width: 100%;
  padding: 10px 12px;
  overflow: hidden;
  color: var(--qr-fg);
  background: linear-gradient(180deg, rgba(221, 214, 194, 0.055), rgba(0, 0, 0, 0.08)), var(--qr-bg);
  border: 1px solid var(--qr-accent-dim);
  border-radius: var(--qr-radius);
  box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.22);
  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="the-last-of-us"] .qr-choice::before {
  content: '';
  width: 48px;
  height: 48px;
  background-image: var(--qr-choice-icon, url("objects/backpack.png"));
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  image-rendering: pixelated;
  opacity: 0.94;
  animation: qr-tlou-prop-bob 5.4s ease-in-out infinite;
}

body[data-room="the-last-of-us"] .qr-choice:hover,
body[data-room="the-last-of-us"] .qr-choice:focus-visible {
  border-color: var(--qr-accent);
  box-shadow: 0 5px 0 rgba(0, 0, 0, 0.24), inset 0 -2px 0 rgba(0, 0, 0, 0.16);
  transform: translateY(-2px);
}

body[data-room="the-last-of-us"] .qr-choice.picked {
  color: #17130f;
  background: linear-gradient(180deg, rgba(230, 193, 74, 0.92), rgba(196, 106, 44, 0.82));
  border-color: var(--qr-warn);
  animation: qr-tlou-choice-lift 220ms ease-out;
}

body[data-room="the-last-of-us"] .qr-choice:disabled { cursor: not-allowed; }

body[data-room="the-last-of-us"] .qr-choice:disabled:not(.picked) {
  filter: grayscale(0.42); opacity: 0.48;
}

body[data-room="the-last-of-us"] .qr-counter,
body[data-room="the-last-of-us"] .qr-status {
  margin: 0 0 10px;
  padding: 9px 10px;
  color: var(--qr-fg-dim);
  background: rgba(8, 12, 12, 0.58);
  border: 1px solid rgba(194, 170, 125, 0.24);
  border-radius: var(--qr-radius);
  font-family: 'Press Start 2P', monospace;
  font-size: 10px;
  letter-spacing: 0;
  line-height: 1.4;
  text-align: center;
}

body[data-room="the-last-of-us"] .qr-counter span { color: var(--qr-warn); }
body[data-room="the-last-of-us"] .qr-counter.complete span { color: #8fbf74; }
body[data-room="the-last-of-us"] .qr-status.warn { color: var(--qr-warn); }
body[data-room="the-last-of-us"] .qr-status.win { color: #8fbf74; }
body[data-room="the-last-of-us"] .qr-status.bad { color: var(--qr-danger); }

body[data-room="the-last-of-us"] .qr-outcome {
  margin-top: 14px;
  padding: 13px 14px;
  color: var(--qr-fg);
  background: rgba(8, 12, 12, 0.66);
  border: 1px dashed var(--qr-accent);
  border-radius: var(--qr-radius);
  font-size: 13px;
  line-height: 1.55;
  animation: qr-tlou-scene-fade 220ms ease-out both;
}

/* Puzzle 1: Inventory triage */
body[data-room="the-last-of-us"] .qr-tlou-inv .qr-scene { border-color: rgba(74, 91, 62, 0.72); }
body[data-room="the-last-of-us"] .qr-tlou-inv .qr-choice-prompt h2 { color: var(--qr-tlou-fungus); }
body[data-room="the-last-of-us"] .qr-inv-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0 0 12px; }
body[data-room="the-last-of-us"] .qr-inv-item {
  appearance: none;
  position: relative;
  min-height: 92px;
  padding: 8px 6px;
  color: var(--qr-fg);
  background: linear-gradient(180deg, rgba(74, 91, 62, 0.12), rgba(0, 0, 0, 0.08)), var(--qr-bg);
  border: 1px solid var(--qr-tlou-moss);
  border-radius: var(--qr-radius);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-family: inherit;
  font-size: 11px;
  line-height: 1.25;
  text-align: center;
  touch-action: manipulation;
  transition: transform 120ms ease, border-color 120ms ease, opacity 120ms ease, background 120ms ease;
}
body[data-room="the-last-of-us"] .qr-inv-item img {
  width: 48px; height: 48px; image-rendering: pixelated;
}
body[data-room="the-last-of-us"] .qr-inv-item:hover,
body[data-room="the-last-of-us"] .qr-inv-item:focus-visible {
  border-color: var(--qr-warn); transform: translateY(-2px);
}
body[data-room="the-last-of-us"] .qr-inv-item.dropped {
  background: rgba(150, 50, 35, 0.12); border-color: var(--qr-danger); border-style: dashed; opacity: 0.42;
}
body[data-room="the-last-of-us"] .qr-tlou-inv-done { background: linear-gradient(180deg, var(--qr-tlou-fungus), var(--qr-accent)); }

/* Puzzle 2: Clicker's Hall */
body[data-room="the-last-of-us"] .qr-tlou-clickers { display: flex; flex-direction: column; gap: 14px; }
body[data-room="the-last-of-us"] .qr-tlou-clickers .qr-scene { border-color: rgba(166, 58, 42, 0.52); }
body[data-room="the-last-of-us"] .qr-tlou-clickers-prompt h2 { color: var(--qr-danger); }
body[data-room="the-last-of-us"] .qr-tlou-clickers-prompt p { color: var(--qr-fg-dim); font-size: 14px; line-height: 1.55; margin: 0; }
body[data-room="the-last-of-us"] .qr-tlou-clickers-progress {
  color: var(--qr-tlou-concrete);
  font-family: 'Press Start 2P', monospace;
  font-size: 10px;
  letter-spacing: 0;
  text-align: center;
}
body[data-room="the-last-of-us"] .qr-tlou-clickers-stage {
  min-height: 284px;
  padding: 15px;
  background: linear-gradient(180deg, rgba(54, 75, 89, 0.16), rgba(8, 12, 12, 0.34)), var(--qr-tlou-panel);
  border: 1px solid rgba(194, 170, 125, 0.30);
  border-radius: var(--qr-radius);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.24);
}
body[data-room="the-last-of-us"] .qr-tlou-clickers-title {
  color: var(--qr-warn);
  font-family: 'Press Start 2P', monospace;
  font-size: 10px;
  letter-spacing: 0;
  line-height: 1.45;
  text-align: center;
}
body[data-room="the-last-of-us"] .qr-tlou-clickers-text { color: var(--qr-fg); font-size: 14px; line-height: 1.5; }
body[data-room="the-last-of-us"] .qr-tlou-clickers-clicker-row { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 6px 0; }
body[data-room="the-last-of-us"] .qr-tlou-clickers-clicker {
  width: 72px;
  height: 72px;
  image-rendering: pixelated;
  filter: drop-shadow(0 0 8px rgba(150, 50, 35, 0.52));
  animation: qr-tlou-prop-bob 3.8s ease-in-out infinite;
}
body[data-room="the-last-of-us"] .qr-tlou-clickers-clicker.near { transform: scale(1.35); filter: drop-shadow(0 0 12px rgba(166, 58, 42, 0.74)); }
body[data-room="the-last-of-us"] .qr-tlou-clickers-distance {
  color: var(--qr-danger);
  font-family: 'Press Start 2P', monospace;
  font-size: 9px;
  letter-spacing: 0;
  line-height: 1.5;
}
body[data-room="the-last-of-us"] .qr-tlou-clickers-meter-label { color: var(--qr-fg-dim); font-family: 'Press Start 2P', monospace; font-size: 9px; letter-spacing: 0; }
body[data-room="the-last-of-us"] .qr-tlou-clickers-meter {
  height: 15px;
  background: var(--qr-tlou-shadow);
  border: 1px solid var(--qr-accent-dim);
  border-radius: 4px;
}
body[data-room="the-last-of-us"] .qr-tlou-clickers-meter-fill {
  background: linear-gradient(90deg, var(--qr-tlou-olive), #7fbd6b 48%, var(--qr-warn) 76%, var(--qr-danger) 100%);
  animation: qr-tlou-meter-pulse 1.6s ease-in-out infinite;
}
body[data-room="the-last-of-us"] .qr-tlou-clickers-meter-pct { font-family: 'Press Start 2P', monospace; font-size: 8px; letter-spacing: 0; }
body[data-room="the-last-of-us"] .qr-tlou-clickers-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
body[data-room="the-last-of-us"] .qr-tlou-clickers-action {
  min-height: 64px;
  color: var(--qr-fg);
  background: var(--qr-bg);
  border: 1px solid var(--qr-tlou-moss);
  border-radius: var(--qr-radius);
}
body[data-room="the-last-of-us"] .qr-tlou-clickers-action:hover,
body[data-room="the-last-of-us"] .qr-tlou-clickers-action:focus-visible { border-color: var(--qr-warn); transform: translateY(-1px); }
body[data-room="the-last-of-us"] .qr-tlou-clickers-action-label { color: var(--qr-warn); font-family: 'Press Start 2P', monospace; font-size: 9px; letter-spacing: 0; }
body[data-room="the-last-of-us"] .qr-tlou-clickers-action-desc { color: var(--qr-fg-dim); font-size: 11px; }
body[data-room="the-last-of-us"] .qr-tlou-clickers-skip {
  min-height: 44px;
  color: var(--qr-fg-dim);
  background: rgba(8, 12, 12, 0.24);
  border: 1px dashed var(--qr-accent-dim);
  border-radius: var(--qr-radius);
  font-family: 'Press Start 2P', monospace;
  font-size: 10px;
  letter-spacing: 0;
}
body[data-room="the-last-of-us"] .qr-tlou-clickers-skip:hover,
body[data-room="the-last-of-us"] .qr-tlou-clickers-skip:focus-visible { color: var(--qr-warn); border-color: var(--qr-warn); }
body[data-room="the-last-of-us"] .qr-tlou-clickers-outcome.clean { background: rgba(74, 91, 62, 0.26); border-color: #8fbf74; }
body[data-room="the-last-of-us"] .qr-tlou-clickers-outcome.heard { background: rgba(166, 58, 42, 0.18); border-color: var(--qr-danger); }
body[data-room="the-last-of-us"] .qr-tlou-clickers-outcome.skip { background: rgba(160, 151, 124, 0.12); border-style: dashed; color: var(--qr-fg-dim); }
body[data-room="the-last-of-us"] .qr-tlou-clickers-summary {
  color: var(--qr-warn);
  background: rgba(8, 12, 12, 0.64);
  border: 1px solid rgba(230, 193, 74, 0.35);
  border-radius: var(--qr-radius);
  font-family: 'Press Start 2P', monospace;
  font-size: 10px;
  letter-spacing: 0;
}

/* Puzzle 3: The Trade */
body[data-room="the-last-of-us"] .qr-trade .qr-scene { border-color: rgba(196, 106, 44, 0.48); }
body[data-room="the-last-of-us"] .qr-trade .qr-choice-prompt h2 { color: var(--qr-warn); }
body[data-room="the-last-of-us"] .qr-trade .qr-choice-list { gap: 10px; }
body[data-room="the-last-of-us"] .qr-trade .qr-choice { border-color: rgba(196, 106, 44, 0.46); }
body[data-room="the-last-of-us"] .qr-trade .qr-choice:hover,
body[data-room="the-last-of-us"] .qr-trade .qr-choice:focus-visible { border-color: var(--qr-warn); }
body[data-room="the-last-of-us"] .qr-trade .qr-choice[data-id="trust"] { --qr-choice-icon: url("objects/med_kit.png"); }
body[data-room="the-last-of-us"] .qr-trade .qr-choice[data-id="haggle"] { --qr-choice-icon: url("objects/keys.png"); }
body[data-room="the-last-of-us"] .qr-trade .qr-choice[data-id="refuse"] { --qr-choice-icon: url("objects/revolver.png"); }
body[data-room="the-last-of-us"] .qr-trade .qr-choice[data-id="rob"] { --qr-choice-icon: url("objects/switchblade.png"); }
body[data-room="the-last-of-us"] .qr-trade .qr-choice[data-id="walkaround"] { --qr-choice-icon: url("objects/backpack.png"); }
body[data-room="the-last-of-us"] .qr-trade .qr-outcome { border-color: var(--qr-warn); background: rgba(196, 106, 44, 0.10); }
body[data-room="the-last-of-us"] .qr-trade-done { background: linear-gradient(180deg, var(--qr-warn), var(--qr-accent)); }

/* Puzzle 4: The Blocked Way */
body[data-room="the-last-of-us"] .qr-hospital .qr-scene { border-color: rgba(160, 151, 124, 0.56); }
body[data-room="the-last-of-us"] .qr-hospital .qr-choice-prompt h2 { color: var(--qr-tlou-concrete); }
body[data-room="the-last-of-us"] .qr-hospital .qr-choice {
  background: linear-gradient(90deg, rgba(54, 75, 89, 0.14), rgba(8, 12, 12, 0.10)), var(--qr-bg);
  border-color: rgba(160, 151, 124, 0.38);
}
body[data-room="the-last-of-us"] .qr-hospital .qr-choice:hover,
body[data-room="the-last-of-us"] .qr-hospital .qr-choice:focus-visible { border-color: var(--qr-tlou-concrete); }
body[data-room="the-last-of-us"] .qr-hospital .qr-choice[data-id="force"] { --qr-choice-icon: url("objects/revolver.png"); }
body[data-room="the-last-of-us"] .qr-hospital .qr-choice[data-id="stealth"] { --qr-choice-icon: url("objects/keys.png"); }
body[data-room="the-last-of-us"] .qr-hospital .qr-choice[data-id="talk"] { --qr-choice-icon: url("objects/firefly_pin.png"); }
body[data-room="the-last-of-us"] .qr-hospital .qr-choice[data-id="wait"] { --qr-choice-icon: url("objects/water_bottle.png"); }
body[data-room="the-last-of-us"] .qr-hospital .qr-choice.picked {
  background: linear-gradient(180deg, rgba(160, 151, 124, 0.92), rgba(84, 75, 62, 0.90));
  color: #0c1112;
}
body[data-room="the-last-of-us"] .qr-hospital .qr-outcome { border-color: var(--qr-tlou-concrete); background: rgba(160, 151, 124, 0.10); }
body[data-room="the-last-of-us"] .qr-hospital-done { background: linear-gradient(180deg, var(--qr-tlou-concrete), var(--qr-tlou-denim)); color: #0b0f10; }

/* Puzzle 5: The Last Call */
body[data-room="the-last-of-us"] .qr-lie .qr-scene { border-color: rgba(74, 91, 62, 0.64); }
body[data-room="the-last-of-us"] .qr-lie .qr-choice-prompt h2 { color: #8fbf74; }
body[data-room="the-last-of-us"] .qr-lie .qr-choice {
  background: linear-gradient(180deg, rgba(74, 91, 62, 0.11), rgba(194, 170, 125, 0.045)), var(--qr-bg);
  border-color: rgba(74, 91, 62, 0.62);
}
body[data-room="the-last-of-us"] .qr-lie .qr-choice:hover,
body[data-room="the-last-of-us"] .qr-lie .qr-choice:focus-visible { border-color: #8fbf74; }
body[data-room="the-last-of-us"] .qr-lie .qr-choice[data-id="protect"] { --qr-choice-icon: url("objects/med_kit.png"); }
body[data-room="the-last-of-us"] .qr-lie .qr-choice[data-id="honest"] { --qr-choice-icon: url("objects/firefly_pin.png"); }
body[data-room="the-last-of-us"] .qr-lie .qr-choice[data-id="careful"] { --qr-choice-icon: url("objects/keys.png"); }
body[data-room="the-last-of-us"] .qr-lie .qr-choice[data-id="ask"] { --qr-choice-icon: url("objects/water_bottle.png"); }
body[data-room="the-last-of-us"] .qr-lie .qr-choice[data-id="stay"] { --qr-choice-icon: url("objects/guitar.png"); }
body[data-room="the-last-of-us"] .qr-lie .qr-choice.picked {
  background: linear-gradient(180deg, rgba(143, 191, 116, 0.82), rgba(74, 91, 62, 0.84));
  color: #09100b;
}
body[data-room="the-last-of-us"] .qr-lie .qr-outcome { border-color: #8fbf74; background: rgba(74, 91, 62, 0.18); }
body[data-room="the-last-of-us"] .qr-lie-done { background: linear-gradient(180deg, #8fbf74, var(--qr-tlou-moss)); color: #071009; }

/* Result screen */
body[data-room="the-last-of-us"] .qr-result { padding: 30px 10px; text-align: center; }
body[data-room="the-last-of-us"] .qr-result-sprite-wrap { display: flex; justify-content: center; margin-bottom: 16px; }
body[data-room="the-last-of-us"] .qr-result-sprite {
  width: 224px;
  height: 224px;
  object-fit: contain;
  border: 4px solid var(--qr-accent);
  border-radius: var(--qr-radius);
  background: radial-gradient(circle at 50% 18%, rgba(74, 91, 62, 0.24), transparent 54%), var(--qr-tlou-panel);
  box-shadow: 0 8px 0 var(--qr-accent-dim), 0 0 24px rgba(196, 106, 44, 0.10);
  image-rendering: pixelated;
  animation: qr-tlou-sprite-in 560ms cubic-bezier(.22, 1.2, .36, 1) both;
}
body[data-room="the-last-of-us"] .qr-result-eyebrow,
body[data-room="the-last-of-us"] .qr-result-dossier-eyebrow { color: var(--qr-warn); letter-spacing: 0; }
body[data-room="the-last-of-us"] .qr-result-name { color: var(--qr-fg); font-size: 20px; line-height: 1.35; }
body[data-room="the-last-of-us"] .qr-result-tagline { color: var(--qr-tlou-fungus); }
body[data-room="the-last-of-us"] .qr-result-desc { color: var(--qr-fg); font-size: 15px; line-height: 1.6; text-align: left; }
body[data-room="the-last-of-us"] .qr-result-runner { color: var(--qr-fg-dim); font-size: 13px; }
body[data-room="the-last-of-us"] .qr-result-receipts.qr-result-dossier {
  background: linear-gradient(180deg, rgba(194, 170, 125, 0.10), rgba(74, 91, 62, 0.06)), var(--qr-bg-elev);
  border: 1px solid rgba(194, 170, 125, 0.34);
}
body[data-room="the-last-of-us"] .qr-result-dossier-lines li { color: var(--qr-fg); }
body[data-room="the-last-of-us"] .qr-result-cta { border-color: rgba(196, 106, 44, 0.34); }
body[data-room="the-last-of-us"] .qr-result-cta:hover,
body[data-room="the-last-of-us"] .qr-result-cta:focus-visible { border-color: var(--qr-warn); }

@keyframes qr-tlou-sprite-in {
  from { opacity: 0; transform: translateY(-14px) scale(0.86); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes qr-tlou-scene-fade {
  from { opacity: 0; transform: translateY(5px); filter: saturate(0.7); }
  to { opacity: 1; transform: translateY(0); filter: saturate(1); }
}

@keyframes qr-tlou-prop-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}

@keyframes qr-tlou-choice-lift {
  from { transform: translateY(2px); }
  to { transform: translateY(0); }
}

@keyframes qr-tlou-meter-pulse {
  0%, 100% { filter: brightness(0.92); }
  50% { filter: brightness(1.18); }
}

@media (max-width: 600px) {
  body[data-room="the-last-of-us"] #qr-root { padding: 18px 12px; }
  body[data-room="the-last-of-us"] .qr-board { padding: 14px 12px 16px; min-height: 320px; }
  body[data-room="the-last-of-us"] .qr-scene { margin-bottom: 14px; }
  body[data-room="the-last-of-us"] .qr-choice-prompt h2,
  body[data-room="the-last-of-us"] .qr-board h2 { font-size: 12px; line-height: 1.45; }
  body[data-room="the-last-of-us"] .qr-choice-prompt p { font-size: 13px; }
  body[data-room="the-last-of-us"] .qr-choice { grid-template-columns: 44px minmax(0, 1fr); min-height: 60px; padding: 10px; font-size: 12px; }
  body[data-room="the-last-of-us"] .qr-choice::before { width: 44px; height: 44px; }
  body[data-room="the-last-of-us"] .qr-inv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  body[data-room="the-last-of-us"] .qr-inv-item { min-height: 88px; font-size: 10px; }
  body[data-room="the-last-of-us"] .qr-inv-item img { width: 44px; height: 44px; }
  body[data-room="the-last-of-us"] .qr-tlou-clickers-stage { min-height: 276px; padding: 12px; }
  body[data-room="the-last-of-us"] .qr-tlou-clickers-actions { grid-template-columns: 1fr; }
  body[data-room="the-last-of-us"] .qr-tlou-clickers-action { min-height: 58px; }
  body[data-room="the-last-of-us"] .qr-tlou-clickers-clicker { width: 64px; height: 64px; }
  body[data-room="the-last-of-us"] .qr-result-sprite { width: 192px; height: 192px; }
}

@media (max-width: 380px) {
  body[data-room="the-last-of-us"] .qr-inv-grid { grid-template-columns: 1fr; }
  body[data-room="the-last-of-us"] .qr-choice { grid-template-columns: 40px minmax(0, 1fr); }
  body[data-room="the-last-of-us"] .qr-choice::before { width: 40px; height: 40px; }
}

@media (prefers-reduced-motion: reduce) {
  body[data-room="the-last-of-us"] *,
  body[data-room="the-last-of-us"] *::before,
  body[data-room="the-last-of-us"] *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
