/* Jujutsu Kaisen Quiz Room - cursed-energy violet, teal, red, and talisman gold */

/* 1. Room variables */
:root,
body[data-room="jujutsu-kaisen"],
.qr-room-jujutsu-kaisen {
  --qr-bg: #060610;
  --qr-bg-elev: #12101e;
  --qr-fg: #f0e7d2;
  --qr-fg-dim: #c8c7d8;
  --qr-accent: #7b4fd3;
  --qr-accent-dim: #49316f;
  --qr-warn: #e2b84f;
  --qr-danger: #b73434;
  --qr-radius: 6px;
  --qr-jjk-cyan: #35c5bd;
  --qr-jjk-green: #6e9f5c;
  --qr-jjk-navy: #2b2631;
  --qr-jjk-paper: #f0e7d2;
  --qr-jjk-line: rgba(200, 199, 216, 0.18);
  --qr-jjk-shadow: rgba(0, 0, 0, 0.74);
}

* { box-sizing: border-box; }

/* 2. Base typography and frame */
body[data-room="jujutsu-kaisen"] {
  margin: 0;
  padding: 0;
  min-height: 100vh;
  color: var(--qr-fg);
  background: linear-gradient(180deg, #12101e 0%, #060610 58%, #000 100%);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  display: flex;
  flex-direction: column;
  align-items: center;
}

body[data-room="jujutsu-kaisen"] #qr-root {
  width: 100%;
  max-width: 500px;
  padding: 24px 16px;
}

body[data-room="jujutsu-kaisen"] .qr-stage {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

body[data-room="jujutsu-kaisen"] .qr-progress {
  color: var(--qr-jjk-cyan);
  font-family: "Press Start 2P", monospace;
  font-size: 10px;
  letter-spacing: 1px;
  text-align: right;
  text-shadow: 0 2px 0 #000;
}

body[data-room="jujutsu-kaisen"] .qr-board {
  position: relative;
  min-height: 350px;
  padding: 20px 16px 22px;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(36, 33, 74, 0.86), rgba(18, 16, 30, 0.98));
  border: 1px solid var(--qr-accent-dim);
  border-radius: var(--qr-radius);
  box-shadow: 0 12px 0 rgba(0, 0, 0, 0.34), inset 0 0 0 1px rgba(240, 231, 210, 0.04);
}

body[data-room="jujutsu-kaisen"] .qr-board::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(0deg, transparent 0 9px, rgba(240, 231, 210, 0.025) 9px 10px);
}

body[data-room="jujutsu-kaisen"] .qr-board > * {
  position: relative;
  z-index: 1;
}

body[data-room="jujutsu-kaisen"] .qr-board h1,
body[data-room="jujutsu-kaisen"] .qr-board h2,
body[data-room="jujutsu-kaisen"] .qr-choice-prompt h2 {
  margin: 0 0 8px;
  color: var(--qr-accent);
  font-family: "Press Start 2P", monospace;
  font-size: 14px;
  line-height: 1.45;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-shadow: 0 2px 0 #000;
}

body[data-room="jujutsu-kaisen"] .qr-choice-prompt p,
body[data-room="jujutsu-kaisen"] .qr-board p {
  color: var(--qr-fg-dim);
  font-size: 14px;
  line-height: 1.55;
}

body[data-room="jujutsu-kaisen"] .qr-scene {
  display: block;
  width: 100%;
  height: auto;
  max-height: 188px;
  object-fit: cover;
  margin: 0 0 16px;
  border: 1px solid var(--qr-jjk-line);
  border-radius: var(--qr-radius);
  background: var(--qr-bg);
  box-shadow: 0 0 0 2px rgba(73, 49, 111, 0.20), 0 10px 18px rgba(0, 0, 0, 0.28);
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  animation: qr-jjk-scene-in 360ms ease-out both;
}

/* 3. Shared controls, choices, counters, and status */
body[data-room="jujutsu-kaisen"] .qr-btn {
  appearance: none;
  width: 100%;
  min-height: 44px;
  margin-top: 16px;
  padding: 12px 18px;
  color: #060610;
  background: linear-gradient(180deg, var(--qr-warn), #d99970);
  border: 1px solid rgba(240, 231, 210, 0.32);
  border-radius: var(--qr-radius);
  box-shadow: 0 4px 0 #6b3f31;
  font-family: "Press Start 2P", monospace;
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform 100ms ease, filter 120ms ease, box-shadow 120ms ease;
}

body[data-room="jujutsu-kaisen"] .qr-btn:hover { filter: brightness(1.08); transform: translateY(-1px); }
body[data-room="jujutsu-kaisen"] .qr-btn:active { transform: translateY(2px); box-shadow: 0 2px 0 #6b3f31; }
body[data-room="jujutsu-kaisen"] .qr-btn:disabled { opacity: 0.48; cursor: not-allowed; filter: grayscale(0.45); }
body[data-room="jujutsu-kaisen"] .qr-actions { display: flex; gap: 10px; }
body[data-room="jujutsu-kaisen"] .qr-actions .qr-btn { width: auto; flex: 1; }

body[data-room="jujutsu-kaisen"] .qr-choice-list,
body[data-room="jujutsu-kaisen"] .qr-choice-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin: 12px 0;
}

body[data-room="jujutsu-kaisen"] .qr-choice {
  appearance: none;
  min-height: 56px;
  padding: 13px 14px;
  color: var(--qr-fg);
  background: rgba(6, 6, 16, 0.74);
  border: 1px solid var(--qr-accent-dim);
  border-radius: var(--qr-radius);
  font-family: inherit;
  font-size: 13px;
  line-height: 1.45;
  text-align: left;
  cursor: pointer;
  transition: transform 120ms ease, border-color 120ms ease, background 160ms ease;
}

body[data-room="jujutsu-kaisen"] .qr-choice:hover,
body[data-room="jujutsu-kaisen"] .qr-choice:focus-visible {
  border-color: var(--qr-jjk-cyan);
  background: rgba(53, 197, 189, 0.10);
  animation: qr-jjk-choice-lift 160ms ease-out both;
}

body[data-room="jujutsu-kaisen"] .qr-choice.picked {
  border-color: var(--qr-warn);
  background: rgba(226, 184, 79, 0.14);
}

body[data-room="jujutsu-kaisen"] .qr-choice-name,
body[data-room="jujutsu-kaisen"] .qr-counter,
body[data-room="jujutsu-kaisen"] .qr-status {
  font-family: "Press Start 2P", monospace;
  letter-spacing: 1px;
}

body[data-room="jujutsu-kaisen"] .qr-choice-name { display: block; margin: 0 0 5px; color: var(--qr-warn); font-size: 10px; }
body[data-room="jujutsu-kaisen"] .qr-counter,
body[data-room="jujutsu-kaisen"] .qr-status { min-height: 18px; color: var(--qr-fg-dim); font-size: 10px; text-align: center; }
body[data-room="jujutsu-kaisen"] .qr-counter span,
body[data-room="jujutsu-kaisen"] .qr-status.win { color: var(--qr-jjk-cyan); }
body[data-room="jujutsu-kaisen"] .qr-status.warn { color: var(--qr-warn); }
body[data-room="jujutsu-kaisen"] .qr-status.bad { color: var(--qr-danger); }

body[data-room="jujutsu-kaisen"] .qr-hint,
body[data-room="jujutsu-kaisen"] .qr-outcome,
body[data-room="jujutsu-kaisen"] .qr-resume-banner {
  color: var(--qr-fg-dim);
  background: rgba(6, 6, 16, 0.66);
  border: 1px solid var(--qr-accent-dim);
  border-radius: var(--qr-radius);
}

body[data-room="jujutsu-kaisen"] .qr-hint { padding: 10px 12px; color: var(--qr-warn); }

/* 4. Puzzle 1: jjk-incident real hooks */
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-incident-done) .qr-choice-prompt h2 { color: var(--qr-danger); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-incident-done) .qr-scene { border-color: rgba(183, 52, 52, 0.58); box-shadow: 0 0 0 2px rgba(183, 52, 52, 0.18); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-incident-done) .qr-choice-name { color: var(--qr-danger); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-incident-done) .qr-choice { border-color: rgba(183, 52, 52, 0.46); background: rgba(183, 52, 52, 0.08); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-incident-done) .qr-choice:hover { border-color: var(--qr-danger); background: rgba(183, 52, 52, 0.14); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-incident-done) .qr-choice.picked { border-color: var(--qr-warn); background: rgba(226, 184, 79, 0.14); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-incident-done) .qr-outcome { border-color: rgba(183, 52, 52, 0.60); color: var(--qr-jjk-paper); }
body[data-room="jujutsu-kaisen"] .qr-jjk-incident-done { background: linear-gradient(180deg, var(--qr-danger), #d99970); }

/* 5. Puzzle 2: jjk-domain classes from jjk_domain.js */
body[data-room="jujutsu-kaisen"] .qr-jjk-domain { display: flex; flex-direction: column; gap: 14px; position: relative; }
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-prompt h2 { color: var(--qr-jjk-cyan); font-size: 15px; }
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-prompt p { margin: 0; color: var(--qr-fg-dim); line-height: 1.55; font-size: 14px; }

body[data-room="jujutsu-kaisen"] .qr-jjk-domain-status {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  padding: 8px;
  color: var(--qr-fg-dim);
  background: rgba(6, 6, 16, 0.58);
  border: 1px solid var(--qr-jjk-line);
  border-radius: var(--qr-radius);
  font-family: "Press Start 2P", monospace;
  font-size: 9px;
  letter-spacing: 1px;
  text-align: center;
}

body[data-room="jujutsu-kaisen"] .qr-jjk-domain-status strong { display: block; margin-top: 3px; color: var(--qr-warn); font-size: 13px; }

body[data-room="jujutsu-kaisen"] .qr-jjk-domain-triangle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 9px;
  color: var(--qr-fg-dim);
  background: rgba(18, 16, 30, 0.88);
  border: 1px dashed var(--qr-accent-dim);
  border-radius: var(--qr-radius);
  font-family: "Press Start 2P", monospace;
  font-size: 9px;
  line-height: 1.45;
  letter-spacing: 1px;
  text-align: center;
  flex-wrap: wrap;
}

body[data-room="jujutsu-kaisen"] .qr-jjk-domain-triangle span.beat { color: var(--qr-jjk-cyan); }

body[data-room="jujutsu-kaisen"] .qr-jjk-domain-board {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 10px;
  background: radial-gradient(circle at 50% 48%, rgba(123, 79, 211, 0.20), transparent 62%), var(--qr-bg);
  border: 2px solid var(--qr-accent-dim);
  border-radius: var(--qr-radius);
  box-shadow: inset 0 0 22px rgba(123, 79, 211, 0.20);
  animation: qr-jjk-domain-rift 600ms ease-out both;
}

body[data-room="jujutsu-kaisen"] .qr-jjk-domain-cell {
  appearance: none;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 80px;
  color: #8e7ab5;
  background: rgba(18, 16, 30, 0.92);
  border: 1.5px solid #49316f;
  border-radius: var(--qr-radius);
  font-family: "Press Start 2P", monospace;
  font-size: 9px;
  letter-spacing: 1px;
  transition: transform 120ms ease, border-color 160ms ease, background 160ms ease;
}

body[data-room="jujutsu-kaisen"] .qr-jjk-domain-cell.open { background: rgba(6, 6, 16, 0.92); }
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-cell.claim-yours { color: var(--qr-bg); background: rgba(53, 197, 189, 0.82); border-color: var(--qr-jjk-cyan); animation: qr-jjk-sigil-pulse 320ms ease-out; }
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-cell.claim-ai { color: var(--qr-jjk-paper); background: rgba(183, 52, 52, 0.62); border-color: var(--qr-danger); animation: qr-jjk-sigil-pulse 320ms ease-out; }
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-cell.selectable { cursor: pointer; box-shadow: inset 0 0 0 1px rgba(53, 197, 189, 0.28); }
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-cell.selectable:hover { border-color: var(--qr-jjk-cyan); transform: translateY(-2px) scale(1.02); }

body[data-room="jujutsu-kaisen"] .qr-jjk-domain-techs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-tech {
  appearance: none;
  min-height: 52px;
  padding: 10px 8px;
  color: var(--qr-fg);
  background: var(--qr-bg);
  border: 1.5px solid var(--qr-accent-dim);
  border-radius: var(--qr-radius);
  font-family: "Press Start 2P", monospace;
  font-size: 10px;
  letter-spacing: 1px;
  cursor: pointer;
}
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-tech[data-tech="curse"] { border-color: rgba(183, 52, 52, 0.72); }
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-tech[data-tech="reverse"] { border-color: rgba(53, 197, 189, 0.72); }
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-tech[data-tech="domain"] { border-color: rgba(123, 79, 211, 0.92); }
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-tech .tech-glyph { color: var(--qr-warn); font-size: 14px; }
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-tech:hover { border-color: var(--qr-warn); filter: brightness(1.18); }
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-tech.locked-pick { color: var(--qr-bg); background: var(--qr-warn); border-color: var(--qr-warn); }

body[data-room="jujutsu-kaisen"] .qr-jjk-domain-feedback,
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-instruction,
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-result {
  font-family: "Press Start 2P", monospace;
  font-size: 10px;
  line-height: 1.6;
  letter-spacing: 1px;
  text-align: center;
}
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-feedback.win { color: var(--qr-jjk-cyan); }
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-feedback.loss { color: var(--qr-danger); }
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-feedback.tie { color: var(--qr-warn); }
body[data-room="jujutsu-kaisen"] .qr-jjk-domain-result { padding: 12px; color: var(--qr-warn); background: rgba(6, 6, 16, 0.72); border: 1px solid var(--qr-accent-dim); border-radius: var(--qr-radius); }

/* 6. Puzzle 3: jjk-tokyo real hooks */
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-tokyo-done) .qr-choice-prompt h2 { color: var(--qr-jjk-green); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-tokyo-done) .qr-scene { border-color: rgba(110, 159, 92, 0.60); box-shadow: 0 0 0 2px rgba(110, 159, 92, 0.18); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-tokyo-done) .qr-choice-name { color: var(--qr-jjk-green); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-tokyo-done) .qr-choice { border-color: rgba(110, 159, 92, 0.50); background: rgba(110, 159, 92, 0.10); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-tokyo-done) .qr-choice:hover { border-color: var(--qr-jjk-cyan); background: rgba(53, 197, 189, 0.11); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-tokyo-done) .qr-choice.picked { border-color: var(--qr-jjk-cyan); background: rgba(53, 197, 189, 0.14); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-tokyo-done) .qr-outcome { border-color: rgba(110, 159, 92, 0.66); color: var(--qr-jjk-paper); }
body[data-room="jujutsu-kaisen"] .qr-jjk-tokyo-done { background: linear-gradient(180deg, var(--qr-jjk-green), var(--qr-jjk-cyan)); }

/* 7. Puzzle 4: jjk-curse real hooks */
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-curse-done) .qr-choice-prompt h2 { color: var(--qr-warn); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-curse-done) .qr-scene { border-color: rgba(123, 79, 211, 0.72); box-shadow: 0 0 0 2px rgba(123, 79, 211, 0.22); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-curse-done) .qr-choice-name { color: var(--qr-warn); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-curse-done) .qr-choice { border-color: rgba(123, 79, 211, 0.58); background: rgba(123, 79, 211, 0.10); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-curse-done) .qr-choice:hover { border-color: var(--qr-warn); background: rgba(226, 184, 79, 0.11); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-curse-done) .qr-choice.picked { border-color: var(--qr-warn); background: rgba(226, 184, 79, 0.16); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-curse-done) .qr-outcome { border-color: rgba(226, 184, 79, 0.66); color: var(--qr-jjk-paper); }
body[data-room="jujutsu-kaisen"] .qr-jjk-curse-done { background: linear-gradient(180deg, var(--qr-warn), var(--qr-accent)); }

/* 8. Puzzle 5: jjk-shibuya real hooks */
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-shibuya-done) .qr-choice-prompt h2 { color: var(--qr-danger); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-shibuya-done) .qr-scene { border-color: rgba(183, 52, 52, 0.68); box-shadow: 0 0 0 2px rgba(183, 52, 52, 0.20); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-shibuya-done) .qr-choice-name { color: var(--qr-danger); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-shibuya-done) .qr-choice { border-color: rgba(43, 38, 49, 0.95); background: rgba(43, 38, 49, 0.72); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-shibuya-done) .qr-choice:hover { border-color: var(--qr-danger); background: rgba(183, 52, 52, 0.12); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-shibuya-done) .qr-choice.picked { border-color: var(--qr-danger); background: rgba(183, 52, 52, 0.18); }
body[data-room="jujutsu-kaisen"] .qr-board:has(.qr-jjk-shibuya-done) .qr-outcome { border-color: rgba(183, 52, 52, 0.66); color: var(--qr-jjk-paper); }
body[data-room="jujutsu-kaisen"] .qr-jjk-shibuya-done { background: linear-gradient(180deg, var(--qr-danger), var(--qr-accent)); }

/* 9. Result and dossier */
body[data-room="jujutsu-kaisen"] .qr-result { padding: 28px 8px; text-align: center; }
body[data-room="jujutsu-kaisen"] .qr-result-sprite {
  width: 224px;
  height: 224px;
  object-fit: contain;
  image-rendering: pixelated;
  border: 4px solid var(--qr-accent);
  border-radius: var(--qr-radius);
  background: radial-gradient(circle at 50% 45%, rgba(123, 79, 211, 0.22), transparent 64%), var(--qr-bg);
  box-shadow: 0 8px 0 var(--qr-accent-dim), 0 0 24px rgba(123, 79, 211, 0.28);
  animation: qr-jjk-sprite-in 560ms cubic-bezier(.2, 1.15, .34, 1) both;
}
body[data-room="jujutsu-kaisen"] .qr-result-eyebrow,
body[data-room="jujutsu-kaisen"] .qr-result-dossier-eyebrow { color: var(--qr-jjk-cyan); }
body[data-room="jujutsu-kaisen"] .qr-result-name { color: var(--qr-fg); text-shadow: 0 2px 0 #000; }
body[data-room="jujutsu-kaisen"] .qr-result-tagline { color: var(--qr-warn); }
body[data-room="jujutsu-kaisen"] .qr-result-desc,
body[data-room="jujutsu-kaisen"] .qr-result-runner { color: var(--qr-fg-dim); }
body[data-room="jujutsu-kaisen"] .qr-result-receipts.qr-result-dossier { background: rgba(18, 16, 30, 0.92); border-color: var(--qr-accent-dim); }

/* 10. Motion */
@keyframes qr-jjk-scene-in {
  from { opacity: 0; transform: translateY(8px); filter: saturate(0.5); }
  to { opacity: 1; transform: translateY(0); filter: saturate(1); }
}
@keyframes qr-jjk-sprite-in {
  from { opacity: 0; transform: translateY(-14px) scale(0.86); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes qr-jjk-prop-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes qr-jjk-choice-lift {
  from { transform: translateY(0); }
  to { transform: translateY(-2px); }
}
@keyframes qr-jjk-domain-rift {
  from { opacity: 0.72; transform: scale(0.98); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes qr-jjk-sigil-pulse {
  0% { transform: scale(0.86); box-shadow: 0 0 0 0 rgba(53, 197, 189, 0); }
  60% { transform: scale(1.04); box-shadow: 0 0 0 5px rgba(53, 197, 189, 0.22); }
  100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(53, 197, 189, 0); }
}

/* 11. Mobile */
@media (max-width: 520px) {
  body[data-room="jujutsu-kaisen"] #qr-root { padding: 16px 12px; }
  body[data-room="jujutsu-kaisen"] .qr-board { min-height: 330px; padding: 16px 12px 18px; }
  body[data-room="jujutsu-kaisen"] .qr-board h2,
  body[data-room="jujutsu-kaisen"] .qr-choice-prompt h2,
  body[data-room="jujutsu-kaisen"] .qr-jjk-domain-prompt h2 { font-size: 12px; line-height: 1.55; }
  body[data-room="jujutsu-kaisen"] .qr-scene { max-height: 156px; }
  body[data-room="jujutsu-kaisen"] .qr-btn,
  body[data-room="jujutsu-kaisen"] .qr-choice,
  body[data-room="jujutsu-kaisen"] .qr-jjk-domain-tech,
  body[data-room="jujutsu-kaisen"] .qr-jjk-domain-cell { min-height: 44px; }
  body[data-room="jujutsu-kaisen"] .qr-jjk-domain-cell { font-size: 8px; }
  body[data-room="jujutsu-kaisen"] .qr-jjk-domain-techs,
  body[data-room="jujutsu-kaisen"] .qr-jjk-curse-targets,
  body[data-room="jujutsu-kaisen"] .qr-jjk-curse-tools { grid-template-columns: 1fr; }
  body[data-room="jujutsu-kaisen"] .qr-jjk-incident-clues,
  body[data-room="jujutsu-kaisen"] .qr-jjk-incident-grid,
  body[data-room="jujutsu-kaisen"] .qr-jjk-tokyo-roster,
  body[data-room="jujutsu-kaisen"] .qr-jjk-tokyo-training,
  body[data-room="jujutsu-kaisen"] .qr-jjk-shibuya-platform { grid-template-columns: 1fr; }
  body[data-room="jujutsu-kaisen"] .qr-result-sprite { width: 192px; height: 192px; }
}

@media (prefers-reduced-motion: reduce) {
  body[data-room="jujutsu-kaisen"] *,
  body[data-room="jujutsu-kaisen"] *::before,
  body[data-room="jujutsu-kaisen"] *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
