/* Dune Quiz Room - Arrakis pixel dossier theme */

/* 1. Room variables */
:root,
body[data-room="dune"],
.qr-room-dune {
  --qr-bg: #100906;
  --qr-bg-elev: #1b120c;
  --qr-fg: #f4dfbd;
  --qr-fg-dim: rgba(244, 223, 189, 0.68);
  --qr-accent: #d6933c;
  --qr-accent-dim: #7b4319;
  --qr-warn: #efd171;
  --qr-danger: #c55334;
  --qr-radius: 6px;
  --qr-dune-black: #080706;
  --qr-dune-brown: #2b1a10;
  --qr-dune-umber: #6f421d;
  --qr-dune-sand: #ecc98b;
  --qr-dune-blue: #2f6479;
  --qr-dune-steel: #89908d;
  --qr-dune-ivory: #e2dfcf;
  --qr-dune-line: rgba(236, 201, 139, 0.22);
  --qr-dune-line-strong: rgba(236, 201, 139, 0.42);
  --qr-dune-shadow: rgba(0, 0, 0, 0.74);
  --qr-dune-glow: rgba(214, 147, 60, 0.22);
}

* { box-sizing: border-box; }

/* 2. Base typography and frame */
body[data-room="dune"] {
  margin: 0; padding: 0; min-height: 100vh; color: var(--qr-fg);
  background: linear-gradient(180deg, #2a190d 0%, #160d08 38%, #050302 100%);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  display: flex; flex-direction: column; align-items: center;
}
body[data-room="dune"] #qr-root { width: 100%; max-width: 500px; padding: 24px 16px; }
body[data-room="dune"] .qr-stage { display: flex; flex-direction: column; gap: 16px; }
body[data-room="dune"] .qr-progress {
  align-self: flex-end; color: var(--qr-dune-sand); font-family: 'Press Start 2P', monospace;
  font-size: 10px; letter-spacing: 1px; text-shadow: 0 2px 0 #000;
}
body[data-room="dune"] .qr-board {
  position: relative; min-height: 340px; padding: 18px 16px 20px; overflow: hidden; color: var(--qr-fg);
  background: linear-gradient(180deg, rgba(214,147,60,.08), transparent 32%), var(--qr-bg-elev);
  border: 1px solid var(--qr-dune-line); border-radius: var(--qr-radius);
  box-shadow: 0 12px 0 rgba(0,0,0,.22), inset 0 0 0 1px rgba(244,223,189,.05);
}
body[data-room="dune"] .qr-board::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .18;
  background: linear-gradient(90deg, rgba(244,223,189,.05) 1px, transparent 1px), linear-gradient(180deg, rgba(244,223,189,.035) 1px, transparent 1px);
  background-size: 18px 18px;
}
body[data-room="dune"] .qr-board > * { position: relative; z-index: 1; }
body[data-room="dune"] .qr-board h1,
body[data-room="dune"] .qr-board h2,
body[data-room="dune"] .qr-board h3,
body[data-room="dune"] .qr-choice-prompt h1,
body[data-room="dune"] .qr-choice-prompt h2,
body[data-room="dune"] .qr-choice-prompt h3 {
  color: var(--qr-accent); font-family: 'Press Start 2P', monospace; letter-spacing: 1px; text-transform: uppercase;
}
body[data-room="dune"] .qr-board h2,
body[data-room="dune"] .qr-choice-prompt h2 { margin: 0 0 8px; font-size: 14px; line-height: 1.5; }
body[data-room="dune"] .qr-choice-prompt { margin: 0 0 14px; }
body[data-room="dune"] .qr-choice-prompt p,
body[data-room="dune"] .qr-board p { color: var(--qr-fg-dim); font-size: 14px; line-height: 1.58; }
body[data-room="dune"] .qr-scene {
  display: block; width: 100%; height: auto; max-height: 178px; object-fit: cover; margin: 0 0 16px;
  background: var(--qr-bg); border: 1px solid var(--qr-dune-line-strong); border-radius: var(--qr-radius);
  image-rendering: pixelated; image-rendering: crisp-edges; box-shadow: 0 0 0 3px rgba(214,147,60,.08);
  animation: qr-dune-scene-in 360ms ease-out both;
}
body[data-room="dune"] .qr-prop,
body[data-room="dune"] .qr-object { image-rendering: pixelated; animation: qr-dune-prop-bob 2400ms ease-in-out infinite; }

/* 3. Shared controls, choice cards, counters */
body[data-room="dune"] .qr-btn {
  appearance: none; width: 100%; min-height: 44px; margin-top: 16px; padding: 12px 18px;
  color: #120905; background: linear-gradient(180deg, #efbe63 0%, var(--qr-accent) 100%);
  border: 1px solid var(--qr-accent-dim); border-radius: var(--qr-radius); box-shadow: 0 3px 0 #5a2b10;
  font-family: 'Press Start 2P', monospace; font-size: 11px; letter-spacing: 1px; text-transform: uppercase; cursor: pointer;
  transition: filter 120ms ease, transform 120ms ease, box-shadow 120ms ease;
}
body[data-room="dune"] .qr-btn:hover,
body[data-room="dune"] .qr-btn:focus-visible { filter: brightness(1.08); transform: translateY(-1px); }
body[data-room="dune"] .qr-btn:active { transform: translateY(2px); box-shadow: 0 1px 0 #5a2b10; }
body[data-room="dune"] .qr-btn:disabled { opacity: .52; cursor: not-allowed; transform: none; filter: grayscale(.45); }
body[data-room="dune"] .qr-btn-sm { width: auto; min-height: 44px; margin-top: 0; padding: 9px 12px; font-size: 9px; }
body[data-room="dune"] .qr-actions { display: flex; gap: 10px; margin-top: 12px; }
body[data-room="dune"] .qr-actions .qr-btn { width: auto; flex: 1; margin-top: 0; }
body[data-room="dune"] .qr-choice-list,
body[data-room="dune"] .qr-choice-grid { display: grid; grid-template-columns: 1fr; gap: 9px; margin: 0 0 12px; }
body[data-room="dune"] .qr-choice-grid { grid-template-columns: 1fr 1fr; }
body[data-room="dune"] .qr-choice {
  appearance: none; min-height: 58px; padding: 12px 13px; color: var(--qr-fg);
  background: linear-gradient(90deg, rgba(47,100,121,.13), transparent 38%), #130c08;
  border: 2px solid rgba(214,147,60,.46); border-radius: var(--qr-radius);
  font-family: inherit; font-size: 13px; line-height: 1.42; text-align: left; cursor: pointer;
  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;
}
body[data-room="dune"] .qr-choice:hover,
body[data-room="dune"] .qr-choice:focus-visible { border-color: var(--qr-warn); animation: qr-dune-choice-lift 160ms ease-out both; }
body[data-room="dune"] .qr-choice.picked {
  color: #120905; background: linear-gradient(180deg, #efd171, #d6933c);
  border-color: var(--qr-dune-ivory); box-shadow: inset 0 0 0 2px rgba(18,9,5,.16);
}
body[data-room="dune"] .qr-choice:disabled:not(.picked) { opacity: .55; cursor: not-allowed; }
body[data-room="dune"] .qr-choice-name {
  display: block; margin-bottom: 5px; color: var(--qr-warn);
  font-family: 'Press Start 2P', monospace; font-size: 10px; line-height: 1.45; letter-spacing: 1px;
}
body[data-room="dune"] .qr-choice.picked .qr-choice-name { color: #1b120c; }
body[data-room="dune"] .qr-counter,
body[data-room="dune"] .qr-status {
  color: var(--qr-fg-dim); font-family: 'Press Start 2P', monospace; font-size: 10px; letter-spacing: 1px; line-height: 1.55;
}
body[data-room="dune"] .qr-counter span,
body[data-room="dune"] .qr-status span { color: var(--qr-warn); }
body[data-room="dune"] .qr-counter.complete span,
body[data-room="dune"] .qr-status.win { color: var(--qr-dune-blue); }
body[data-room="dune"] .qr-status.warn { color: var(--qr-warn); }
body[data-room="dune"] .qr-status.bad { color: var(--qr-danger); }
body[data-room="dune"] .qr-hint,
body[data-room="dune"] .qr-resume-banner,
body[data-room="dune"] .qr-outcome {
  color: var(--qr-fg-dim); background: rgba(8,7,6,.42); border: 1px solid var(--qr-dune-line); border-radius: var(--qr-radius); padding: 10px 12px;
}
body[data-room="dune"] .qr-hint { color: var(--qr-warn); border-style: dashed; }

/* 4. Puzzle 1 - Gom Jabbar test */
body[data-room="dune"] .qr-dune-gomjabbar { --qr-dune-local-accent: var(--qr-dune-steel); }
body[data-room="dune"] .qr-board:has(img[src$="scene_gomjabbar.png"]) { --qr-dune-local-accent: var(--qr-dune-steel); }
body[data-room="dune"] .qr-board:has(.qr-dune-gomjabbar-done) { --qr-dune-local-accent: var(--qr-dune-steel); }
body[data-room="dune"] .qr-dune-gomjabbar .qr-scene,
body[data-room="dune"] img[src$="scene_gomjabbar.png"] { border-color: rgba(137,144,141,.58); box-shadow: 0 0 0 3px rgba(137,144,141,.10); }
body[data-room="dune"] .qr-board:has(.qr-dune-gomjabbar-done) .qr-choice { border-color: rgba(137,144,141,.50); }
body[data-room="dune"] .qr-board:has(.qr-dune-gomjabbar-done) .qr-choice-name { color: var(--qr-dune-ivory); }
body[data-room="dune"] .qr-board:has(.qr-dune-gomjabbar-done) .qr-choice.picked { background: linear-gradient(180deg, var(--qr-dune-steel), var(--qr-dune-ivory)); color: #080706; }
body[data-room="dune"] .qr-board:has(.qr-dune-gomjabbar-done) .qr-outcome { border-color: rgba(137,144,141,.44); }
body[data-room="dune"] .qr-dune-gomjabbar-prompt,
body[data-room="dune"] .qr-dune-gomjabbar-test {
  padding: 12px; background: rgba(8,7,6,.44); border: 1px solid rgba(137,144,141,.36); border-radius: var(--qr-radius);
}
body[data-room="dune"] .qr-dune-gomjabbar-box {
  position: relative; min-height: 92px; margin: 12px 0;
  background: radial-gradient(circle at 50% 42%, rgba(197,83,52,.20), transparent 32%), linear-gradient(180deg, #1f2020, #0b0908);
  border: 2px solid var(--qr-dune-steel); border-radius: var(--qr-radius);
}
body[data-room="dune"] .qr-dune-gomjabbar-box::after {
  content: ''; position: absolute; right: 18px; top: 18px; width: 34px; height: 34px;
  border-top: 3px solid var(--qr-dune-ivory); border-right: 3px solid var(--qr-dune-ivory); transform: rotate(45deg);
}
body[data-room="dune"] .qr-dune-gomjabbar-needle {
  width: 72px; height: 8px; background: linear-gradient(90deg, var(--qr-dune-ivory), var(--qr-dune-steel));
  border-radius: 999px; box-shadow: 0 0 12px rgba(226,223,207,.26);
}
body[data-room="dune"] .qr-dune-gomjabbar-choice { border-color: rgba(137,144,141,.48); }
body[data-room="dune"] .qr-dune-gomjabbar-choice.picked { background: var(--qr-dune-steel); color: #080706; }
body[data-room="dune"] .qr-dune-gomjabbar-done { border-color: var(--qr-dune-steel); }

/* 5. Puzzle 2 - The Sand Walk */
body[data-room="dune"] .qr-dune-walk { display: flex; flex-direction: column; gap: 14px; }
body[data-room="dune"] .qr-dune-walk .qr-scene { border-color: rgba(239,209,113,.48); box-shadow: 0 0 0 3px rgba(239,209,113,.09); }
body[data-room="dune"] .qr-dune-walk-prompt h2 { margin: 0 0 5px; color: var(--qr-warn); font-size: 16px; }
body[data-room="dune"] .qr-dune-walk-prompt p { margin: 0; color: var(--qr-fg-dim); font-size: 14px; line-height: 1.56; }
body[data-room="dune"] .qr-dune-walk-tutorial {
  position: relative; display: flex; flex-direction: column; gap: 10px; padding: 14px;
  background: linear-gradient(180deg, rgba(47,100,121,.12), rgba(8,7,6,.42));
  border: 2px dashed var(--qr-dune-blue); border-radius: var(--qr-radius); animation: qr-dune-panel-in 280ms ease-out both;
}
body[data-room="dune"] .qr-dune-walk-tutorial-text { color: var(--qr-fg); font-size: 13px; line-height: 1.5; }
body[data-room="dune"] .qr-dune-walk-tutorial-demo { display: flex; align-items: center; justify-content: center; gap: 12px; }
body[data-room="dune"] .qr-dune-walk-demo-dot {
  width: 14px; height: 14px; border-radius: 50%; background: var(--qr-warn); box-shadow: 0 0 0 3px rgba(239,209,113,.12);
}
body[data-room="dune"] .qr-dune-walk-demo-meter,
body[data-room="dune"] .qr-dune-walk-meter { position: relative; overflow: hidden; background: #080706; border: 1px solid var(--qr-accent-dim); border-radius: 4px; }
body[data-room="dune"] .qr-dune-walk-demo-meter { flex: 1; max-width: 160px; height: 9px; }
body[data-room="dune"] .qr-dune-walk-demo-meter-fill,
body[data-room="dune"] .qr-dune-walk-meter-fill { background: linear-gradient(90deg, var(--qr-dune-blue), var(--qr-warn) 58%, var(--qr-danger)); }
body[data-room="dune"] .qr-dune-walk-stage {
  position: relative; display: flex; flex-direction: column; gap: 14px; min-height: 320px; padding: 18px 16px; overflow: hidden;
  background: linear-gradient(180deg, rgba(111,66,29,.96) 0%, rgba(214,147,60,.88) 62%, rgba(236,201,139,.95) 100%);
  border: 2px solid var(--qr-accent-dim); border-radius: 10px;
}
body[data-room="dune"] .qr-dune-walk-stage::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .32;
  background: repeating-linear-gradient(-8deg, transparent 0 16px, rgba(255,255,255,.08) 17px 18px);
}
body[data-room="dune"] .qr-dune-walk-counter {
  color: var(--qr-dune-ivory); font-family: 'Press Start 2P', monospace; font-size: 11px; letter-spacing: 2px; text-align: center;
  text-shadow: 0 2px 0 rgba(0,0,0,.42);
}
body[data-room="dune"] .qr-dune-walk-counter strong { display: inline-block; min-width: 28px; color: var(--qr-warn); font-size: 14px; }
body[data-room="dune"] .qr-dune-walk-desert {
  position: relative; flex: 1; min-height: 140px; overflow: hidden; isolation: isolate;
  background: radial-gradient(ellipse at 50% 100%, rgba(12,8,6,.22), transparent 48%), linear-gradient(180deg, rgba(236,201,139,.06), rgba(236,201,139,.42));
  border: 1px solid rgba(111,66,29,.42); border-radius: 8px;
}
body[data-room="dune"] .qr-dune-walk-worm,
body[data-room="dune"] .qr-dune-walk-loss-worm {
  background: radial-gradient(ellipse at 50% 100%, #6f421d 0%, #2b1a10 58%, transparent 100%);
  filter: drop-shadow(0 -4px 10px rgba(12,8,6,.42));
}
body[data-room="dune"] .qr-dune-walk-print { width: 12px; height: 6px; border-radius: 50%; background: rgba(43,26,16,.62); }
body[data-room="dune"] .qr-dune-walk-meter-row { display: flex; align-items: center; gap: 10px; }
body[data-room="dune"] .qr-dune-walk-meter-label {
  min-width: 88px; color: var(--qr-dune-ivory); font-family: 'Press Start 2P', monospace; font-size: 9px; letter-spacing: 1px;
  text-shadow: 0 1px 0 rgba(0,0,0,.45);
}
body[data-room="dune"] .qr-dune-walk-meter { flex: 1; height: 18px; }
body[data-room="dune"] .qr-dune-walk-meter-pct { color: #fff; font-family: 'Press Start 2P', monospace; font-size: 9px; letter-spacing: 1px; text-shadow: 0 0 5px #000; }
body[data-room="dune"] .qr-dune-walk-step {
  appearance: none; width: 100%; min-height: 60px; padding: 18px 16px; color: #120905;
  background: linear-gradient(180deg, #f4ce72, #d6933c); border: 2px solid #6f421d; border-radius: 8px; box-shadow: 0 4px 0 #6f421d;
  font-family: 'Press Start 2P', monospace; font-size: 14px; letter-spacing: 3px; cursor: pointer;
}
body[data-room="dune"] .qr-dune-walk-step:hover { filter: brightness(1.08); }
body[data-room="dune"] .qr-dune-walk-step:active { transform: translateY(2px) scale(.97); box-shadow: 0 1px 0 #6f421d; }
body[data-room="dune"] .qr-dune-walk-retries { color: rgba(255,255,255,.88); font-family: 'Press Start 2P', monospace; font-size: 9px; letter-spacing: 1px; text-align: center; }
body[data-room="dune"] .qr-dune-walk-loss { background: rgba(12,8,6,.92); backdrop-filter: blur(1px); }
body[data-room="dune"] .qr-dune-walk-loss-text { color: var(--qr-danger); font-family: 'Press Start 2P', monospace; font-size: 13px; letter-spacing: 2px; text-shadow: 0 0 8px rgba(197,83,52,.62); }
body[data-room="dune"] .qr-dune-walk-summary {
  margin-top: 4px; padding: 12px; color: var(--qr-warn); background: rgba(8,7,6,.52); border: 1px solid var(--qr-dune-line); border-radius: var(--qr-radius);
  font-family: 'Press Start 2P', monospace; font-size: 11px; letter-spacing: 1px; line-height: 1.6; text-align: center;
}

/* 6. Puzzle 3 - Fremen sietch */
body[data-room="dune"] .qr-dune-fremen { --qr-dune-local-accent: var(--qr-dune-blue); }
body[data-room="dune"] .qr-board:has(img[src$="scene_fremen.png"]) { --qr-dune-local-accent: var(--qr-dune-blue); }
body[data-room="dune"] .qr-board:has(.qr-dune-fremen-done) { --qr-dune-local-accent: var(--qr-dune-blue); }
body[data-room="dune"] .qr-dune-fremen .qr-scene,
body[data-room="dune"] img[src$="scene_fremen.png"] { border-color: rgba(47,100,121,.68); box-shadow: 0 0 0 3px rgba(47,100,121,.14); }
body[data-room="dune"] .qr-board:has(.qr-dune-fremen-done) .qr-choice { border-color: rgba(47,100,121,.58); }
body[data-room="dune"] .qr-board:has(.qr-dune-fremen-done) .qr-choice-name { color: #8ec0d1; }
body[data-room="dune"] .qr-board:has(.qr-dune-fremen-done) .qr-choice.picked { background: linear-gradient(180deg, #4f8799, var(--qr-dune-blue)); color: #fff; }
body[data-room="dune"] .qr-board:has(.qr-dune-fremen-done) .qr-outcome { border-color: rgba(47,100,121,.46); }
body[data-room="dune"] .qr-dune-fremen-roster,
body[data-room="dune"] .qr-dune-fremen-sietch { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin: 12px 0; }
body[data-room="dune"] .qr-dune-fremen-card {
  min-height: 64px; padding: 10px; color: var(--qr-fg);
  background: linear-gradient(180deg, rgba(47,100,121,.18), rgba(8,7,6,.38));
  border: 2px solid rgba(47,100,121,.58); border-radius: var(--qr-radius);
}
body[data-room="dune"] .qr-dune-fremen-card.picked,
body[data-room="dune"] .qr-dune-fremen-card.active { background: rgba(47,100,121,.36); border-color: var(--qr-warn); }
body[data-room="dune"] .qr-dune-fremen-water { height: 14px; overflow: hidden; background: #080706; border: 1px solid var(--qr-dune-blue); border-radius: 999px; }
body[data-room="dune"] .qr-dune-fremen-water-fill { height: 100%; background: linear-gradient(90deg, var(--qr-dune-blue), var(--qr-dune-ivory)); }
body[data-room="dune"] .qr-dune-fremen-status { color: var(--qr-dune-blue); font-family: 'Press Start 2P', monospace; font-size: 10px; letter-spacing: 1px; }
body[data-room="dune"] .qr-dune-fremen-knife { width: 72px; height: 72px; image-rendering: pixelated; animation: qr-dune-prop-bob 2600ms ease-in-out infinite; }
body[data-room="dune"] .qr-dune-fremen-choice { border-color: rgba(47,100,121,.52); }
body[data-room="dune"] .qr-dune-fremen-choice.picked { background: var(--qr-dune-blue); color: #fff; }
body[data-room="dune"] .qr-dune-fremen-done { border-color: var(--qr-dune-blue); }

/* 7. Puzzle 4 - Spice field */
body[data-room="dune"] .qr-dune-spice { --qr-dune-local-accent: var(--qr-warn); }
body[data-room="dune"] .qr-board:has(img[src$="scene_spice.png"]) { --qr-dune-local-accent: var(--qr-warn); }
body[data-room="dune"] .qr-board:has(.qr-dune-spice-done) { --qr-dune-local-accent: var(--qr-warn); }
body[data-room="dune"] .qr-dune-spice .qr-scene,
body[data-room="dune"] img[src$="scene_spice.png"] { border-color: rgba(239,209,113,.62); box-shadow: 0 0 0 3px rgba(239,209,113,.10); }
body[data-room="dune"] .qr-board:has(.qr-dune-spice-done) .qr-choice { border-color: rgba(239,209,113,.52); }
body[data-room="dune"] .qr-board:has(.qr-dune-spice-done) .qr-choice-name { color: var(--qr-warn); }
body[data-room="dune"] .qr-board:has(.qr-dune-spice-done) .qr-choice.picked { background: linear-gradient(180deg, var(--qr-warn), var(--qr-accent)); color: #120905; }
body[data-room="dune"] .qr-board:has(.qr-dune-spice-done) .qr-outcome { border-color: rgba(239,209,113,.44); }
body[data-room="dune"] .qr-dune-spice-field {
  position: relative; min-height: 150px; margin: 12px 0; overflow: hidden;
  background: radial-gradient(circle at 20% 30%, rgba(239,209,113,.20), transparent 22%), linear-gradient(180deg, rgba(214,147,60,.20), rgba(111,66,29,.52));
  border: 1px solid rgba(239,209,113,.36); border-radius: var(--qr-radius);
}
body[data-room="dune"] .qr-dune-spice-field::before {
  content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(12deg, transparent 0 18px, rgba(239,209,113,.16) 19px 20px);
}
body[data-room="dune"] .qr-dune-spice-harvester { width: 96px; height: 58px; image-rendering: pixelated; filter: drop-shadow(0 5px 0 rgba(0,0,0,.24)); }
body[data-room="dune"] .qr-dune-spice-cloud { position: absolute; width: 70px; height: 30px; border-radius: 50%; background: rgba(239,209,113,.34); filter: blur(2px); }
body[data-room="dune"] .qr-dune-spice-meter { height: 16px; overflow: hidden; background: #080706; border: 1px solid var(--qr-warn); border-radius: 4px; }
body[data-room="dune"] .qr-dune-spice-meter-fill { height: 100%; background: linear-gradient(90deg, var(--qr-accent), var(--qr-warn), var(--qr-danger)); animation: qr-dune-meter-glow 1400ms ease-in-out infinite; }
body[data-room="dune"] .qr-dune-spice-choice { border-color: rgba(239,209,113,.48); }
body[data-room="dune"] .qr-dune-spice-choice.picked { background: var(--qr-warn); color: #120905; }
body[data-room="dune"] .qr-dune-spice-warning { color: var(--qr-danger); font-family: 'Press Start 2P', monospace; font-size: 10px; letter-spacing: 1px; }
body[data-room="dune"] .qr-dune-spice-done { border-color: var(--qr-warn); }

/* 8. Puzzle 5 - Imperial finale */
body[data-room="dune"] .qr-dune-emperor { --qr-dune-local-accent: var(--qr-dune-ivory); }
body[data-room="dune"] .qr-board:has(img[src$="scene_emperor.png"]) { --qr-dune-local-accent: var(--qr-dune-ivory); }
body[data-room="dune"] .qr-board:has(.qr-dune-emperor-done) { --qr-dune-local-accent: var(--qr-dune-ivory); }
body[data-room="dune"] .qr-dune-emperor .qr-scene,
body[data-room="dune"] img[src$="scene_emperor.png"] { border-color: rgba(226,223,207,.62); box-shadow: 0 0 0 3px rgba(226,223,207,.10); }
body[data-room="dune"] .qr-board:has(.qr-dune-emperor-done) .qr-choice { border-color: rgba(226,223,207,.52); }
body[data-room="dune"] .qr-board:has(.qr-dune-emperor-done) .qr-choice-name { color: var(--qr-dune-ivory); }
body[data-room="dune"] .qr-board:has(.qr-dune-emperor-done) .qr-choice.picked { background: linear-gradient(180deg, var(--qr-dune-ivory), var(--qr-warn)); color: #120905; }
body[data-room="dune"] .qr-board:has(.qr-dune-emperor-done) .qr-outcome { border-color: rgba(226,223,207,.44); }
body[data-room="dune"] .qr-dune-emperor-court { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 12px 0; }
body[data-room="dune"] .qr-dune-emperor-banner,
body[data-room="dune"] .qr-dune-emperor-choice {
  min-height: 58px; padding: 10px; color: var(--qr-dune-ivory);
  background: linear-gradient(180deg, rgba(226,223,207,.12), rgba(8,7,6,.42));
  border: 1px solid rgba(226,223,207,.38); border-radius: var(--qr-radius);
}
body[data-room="dune"] .qr-dune-emperor-choice.picked,
body[data-room="dune"] .qr-dune-emperor-choice.active { color: #120905; background: var(--qr-dune-ivory); border-color: var(--qr-warn); }
body[data-room="dune"] .qr-dune-emperor-seal {
  width: 72px; height: 72px; margin: 8px auto; border-radius: 50%;
  background: radial-gradient(circle, var(--qr-warn), var(--qr-accent) 62%, var(--qr-accent-dim)); box-shadow: 0 0 18px rgba(239,209,113,.22);
}
body[data-room="dune"] .qr-dune-emperor-status { color: var(--qr-dune-ivory); font-family: 'Press Start 2P', monospace; font-size: 10px; letter-spacing: 1px; text-align: center; }
body[data-room="dune"] .qr-dune-emperor-count { color: var(--qr-warn); }
body[data-room="dune"] .qr-dune-emperor-threat { color: var(--qr-danger); }
body[data-room="dune"] .qr-dune-emperor-done { border-color: var(--qr-dune-ivory); }

/* 9. Result screen */
body[data-room="dune"] .qr-result { padding: 30px 6px 12px; text-align: center; }
body[data-room="dune"] .qr-result-sprite-wrap { display: flex; justify-content: center; margin-bottom: 16px; }
body[data-room="dune"] .qr-result-sprite {
  width: 216px; height: 216px; object-fit: contain; image-rendering: pixelated;
  background: radial-gradient(circle at 50% 42%, rgba(214,147,60,.16), transparent 58%), var(--qr-bg-elev);
  border: 4px solid var(--qr-accent); border-radius: var(--qr-radius); box-shadow: 0 8px 0 var(--qr-accent-dim);
  animation: qr-dune-sprite-in 560ms cubic-bezier(.22, 1.2, .36, 1) both;
}
body[data-room="dune"] .qr-result-eyebrow,
body[data-room="dune"] .qr-result-dossier-eyebrow {
  color: var(--qr-warn); font-family: 'Press Start 2P', monospace; font-size: 10px; letter-spacing: 2px; text-transform: uppercase;
}
body[data-room="dune"] .qr-result-name { color: var(--qr-fg) !important; font-family: 'Press Start 2P', monospace; font-size: 20px; line-height: 1.35; }
body[data-room="dune"] .qr-result-tagline { margin: 0 0 14px; color: var(--qr-fg-dim); font-size: 14px; font-style: italic; }
body[data-room="dune"] .qr-result-desc { padding: 0 6px; color: var(--qr-fg); font-size: 15px; line-height: 1.62; text-align: left; }
body[data-room="dune"] .qr-result-runner { color: var(--qr-fg-dim); font-size: 13px; }
body[data-room="dune"] .qr-result-receipts.qr-result-dossier {
  background: linear-gradient(180deg, rgba(214,147,60,.12), rgba(8,7,6,.62)); border-color: var(--qr-dune-line-strong);
}
body[data-room="dune"] .qr-result-dossier-lines li { color: var(--qr-fg); border-bottom-color: rgba(236,201,139,.24); }
body[data-room="dune"] .qr-result-share-row { gap: 8px; }
body[data-room="dune"] .qr-btn-secondary,
body[data-room="dune"] .qr-result-cta { color: var(--qr-fg); background: rgba(8,7,6,.54); border: 1px solid var(--qr-dune-line); box-shadow: none; }
body[data-room="dune"] .qr-result-cta:hover,
body[data-room="dune"] .qr-result-cta:focus-visible { border-color: var(--qr-warn); }

/* 10. Animations */
@keyframes qr-dune-scene-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes qr-dune-panel-in {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes qr-dune-sprite-in {
  from { opacity: 0; transform: translateY(-12px) scale(.88); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes qr-dune-prop-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes qr-dune-choice-lift {
  from { transform: translateY(0); }
  to { transform: translateY(-2px); }
}
@keyframes qr-dune-meter-glow {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.22); }
}

/* 11. Mobile responsive */
@media (max-width: 520px) {
  body[data-room="dune"] #qr-root { padding: 16px 12px; }
  body[data-room="dune"] .qr-board { min-height: 320px; padding: 16px 12px 18px; }
  body[data-room="dune"] .qr-board h2,
  body[data-room="dune"] .qr-choice-prompt h2,
  body[data-room="dune"] .qr-dune-walk-prompt h2 { font-size: 12px; line-height: 1.55; }
  body[data-room="dune"] .qr-choice-prompt p,
  body[data-room="dune"] .qr-dune-walk-prompt p,
  body[data-room="dune"] .qr-result-desc { font-size: 14px; }
  body[data-room="dune"] .qr-scene { max-height: 152px; }
  body[data-room="dune"] .qr-choice-grid,
  body[data-room="dune"] .qr-dune-fremen-roster,
  body[data-room="dune"] .qr-dune-fremen-sietch,
  body[data-room="dune"] .qr-dune-emperor-court { grid-template-columns: 1fr; }
  body[data-room="dune"] .qr-choice,
  body[data-room="dune"] .qr-btn,
  body[data-room="dune"] .qr-btn-sm,
  body[data-room="dune"] .qr-dune-walk-step { min-height: 44px; }
  body[data-room="dune"] .qr-actions,
  body[data-room="dune"] .qr-dune-walk-loss-actions { flex-direction: column; }
  body[data-room="dune"] .qr-dune-walk-stage { min-height: 300px; padding: 14px 12px; }
  body[data-room="dune"] .qr-dune-walk-meter-row { align-items: stretch; flex-direction: column; gap: 6px; }
  body[data-room="dune"] .qr-dune-walk-meter-label { min-width: 0; }
  body[data-room="dune"] .qr-dune-walk-demo-meter { max-width: 124px; }
  body[data-room="dune"] .qr-result-sprite { width: 192px; height: 192px; }
  body[data-room="dune"] .qr-result-name { font-size: 17px; }
}

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