/* Resident Evil Revelations zone: BSAA field-manual theme. Dark tactical palette, cyan accent, square corners,
   corner-tick frames and scanlines. Local font stacks only. */

body.zone-resident-evil-revelations, .zone-resident-evil-revelations {
  color-scheme: dark;
  --rer-bg: #060a11;
  --rer-card: #0b1420;
  --rer-card-2: #0f1b2a;
  --rer-ink: #e4edf5;
  --rer-muted: #8597a8;
  --rer-accent: #6cc8ee;
  --rer-border: #6cc8ee47;
  --rer-danger: #d23a2e;
  --rer-ease: cubic-bezier(.4, 0, .2, 1);
  --rer-display: "Rajdhani", "Barlow Semi Condensed", "Bahnschrift", "DIN Alternate", "Roboto Condensed", "Arial Narrow", sans-serif;
  --rer-body: "Noto Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --bg: var(--rer-bg);
  --bg-stripe: transparent;
  --card: var(--rer-card);
  --card-2: var(--rer-card-2);
  --line: var(--rer-border);
  --bevel: var(--rer-border);
  --ink: var(--rer-ink);
  --ink-2: #b9c7d4;
  --ink-3: var(--rer-muted);
  --link: var(--rer-accent);
  --btn-top: var(--rer-card-2);
  --btn-bot: var(--rer-card);
  --title-top: var(--rer-card-2);
  --title-bot: var(--rer-card-2);
  --cursor: var(--rer-accent);
  --cursor-2: #a9e2f7;
  --glow: rgba(108, 200, 238, .3);
  --shell: var(--rer-accent);
  --shell-hi: #a9e2f7;
  --shell-lo: #2a6d8a;
  --shell-ink: #04121b;
  --radius: 0;
  --font: var(--rer-body);
  --z-display: var(--rer-display);
  --z-nav-bg: rgba(6, 10, 17, .92);
  --z-footer-bg: #04070c;
  --z-footer-ink: var(--rer-muted);
  background: var(--rer-bg);
  color: var(--rer-ink);
  font-family: var(--rer-body);
}
body.zone-resident-evil-revelations::before {
  content: ""; position: fixed; inset: 0; z-index: 100; pointer-events: none;
  background: repeating-linear-gradient(0deg, rgba(255, 255, 255, .018) 0 1px, transparent 1px 3px);
}
html:has(.zone-resident-evil-revelations) { scroll-padding-top: 72px; background: #060a11; }
.zone-resident-evil-revelations :focus-visible { outline: 2px solid var(--rer-accent); outline-offset: 2px; }
.zone-resident-evil-revelations ::selection { background: var(--rer-accent); color: #04121b; }

/* ---------- Header */
.rer-header { border-bottom: 1px solid var(--rer-border); background: linear-gradient(180deg, #08101a, #060a11); }
.rer-header-inner { width: min(80rem, 100% - 32px); margin: 0 auto; padding: 14px 0; display: flex; align-items: center; gap: 20px; }
.rer-brand { display: flex; align-items: center; gap: 12px; margin-right: auto; color: var(--rer-ink); text-decoration: none; min-width: 0; }
.rer-brand-mark { flex: none; width: 44px; height: 44px; padding: 2px; display: block; border: 1px solid var(--rer-accent); background: #050a12; box-shadow: 0 0 0 1px rgba(108, 200, 238, .15), 0 0 14px rgba(108, 200, 238, .3); }
.rer-brand-mark img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rer-brand-text { display: grid; line-height: 1.1; min-width: 0; }
.rer-brand-text strong { font: 700 1.15rem/1.1 var(--rer-display); letter-spacing: .18em; text-transform: uppercase; }
.rer-brand-text small { color: var(--rer-muted); font: 600 .72rem/1.3 var(--rer-display); letter-spacing: .2em; text-transform: uppercase; }
.rer-uplink { display: inline-flex; align-items: center; gap: 8px; color: var(--rer-muted); font: 600 .72rem/1 var(--rer-display); letter-spacing: .24em; text-transform: uppercase; }
.rer-uplink i { width: 7px; height: 7px; border-radius: 50%; background: #5fe08f; box-shadow: 0 0 8px #5fe08f; animation: rer-blink 2.4s var(--rer-ease) infinite; }
@keyframes rer-blink { 50% { opacity: .35; } }
.rer-tools { display: flex; align-items: center; gap: 16px; }
.zone-resident-evil-revelations .zone-exit { color: var(--rer-muted); font: 600 .8rem/1 var(--rer-display); letter-spacing: .14em; text-transform: uppercase; }
.zone-resident-evil-revelations .zone-search { border-radius: 0; height: 38px; background: #0b1420; border: 1px solid var(--rer-border); box-shadow: none; }
.zone-resident-evil-revelations .zone-search:focus-within { border-color: var(--rer-accent); box-shadow: 0 0 0 1px var(--rer-accent); }
.zone-resident-evil-revelations .zone-search input[type="search"] { color: var(--rer-ink); }
.zone-resident-evil-revelations .zone-search input::placeholder { color: var(--rer-muted); }
.zone-resident-evil-revelations .zone-search button { border-radius: 0; background: transparent; color: var(--rer-accent); }
.zone-resident-evil-revelations .zone-nav { border-bottom: 1px solid var(--rer-border); }
.zone-resident-evil-revelations .zone-nav-inner { width: min(80rem, 100% - 32px); height: 48px; gap: 0; }
.zone-resident-evil-revelations .zone-nav a { border-radius: 0; padding: 14px 16px; color: var(--rer-muted); font: 700 .86rem/1 var(--rer-display); letter-spacing: .2em; text-transform: uppercase; border-bottom: 2px solid transparent; transition: color .15s var(--rer-ease), border-color .15s var(--rer-ease); }
.zone-resident-evil-revelations .zone-nav a:hover { background: transparent; color: var(--rer-ink); }
.zone-resident-evil-revelations .zone-nav a[aria-current] { background: transparent; color: var(--rer-accent); border-bottom-color: var(--rer-accent); }
.zone-resident-evil-revelations .crumbs { width: min(80rem, 100% - 32px); }
.zone-resident-evil-revelations .crumbs a { border-radius: 0; background: transparent; font-family: var(--rer-display); letter-spacing: .08em; text-transform: uppercase; }

/* ---------- Shared pieces */
.rer { overflow-x: clip; }
.rer-wrap { width: min(80rem, 100% - 32px); margin: 0 auto; }
.rer-eyebrow { margin: 0 0 10px; color: var(--rer-accent); font: 600 14px/1.2 var(--rer-display); letter-spacing: 7px; text-transform: uppercase; }
.rer-eyebrow span { color: var(--rer-muted); }
.rer-frame { position: relative; border: 1px solid var(--rer-border); background: linear-gradient(180deg, rgba(11, 20, 32, .92), rgba(8, 14, 23, .92)); padding: 18px 20px; }
.rer-frame::before, .rer-frame::after { content: ""; position: absolute; width: 12px; height: 12px; border: 2px solid var(--rer-accent); pointer-events: none; }
.rer-frame::before { top: -2px; left: -2px; border-right: 0; border-bottom: 0; }
.rer-frame::after { right: -2px; bottom: -2px; border-left: 0; border-top: 0; }
.rer-frame-label { display: flex; justify-content: space-between; gap: 12px; margin: 0 0 12px; color: var(--rer-accent); font: 700 .78rem/1.2 var(--rer-display); letter-spacing: .3em; text-transform: uppercase; }
.rer-frame-label span { color: var(--rer-muted); letter-spacing: .14em; }
.rer-note { color: var(--rer-muted); font-size: .86rem; line-height: 1.55; }
.rer-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border: 1px solid var(--rer-accent); color: var(--rer-accent); font: 700 .82rem/1 var(--rer-display); letter-spacing: .22em; text-decoration: none; text-transform: uppercase; transition: background .15s var(--rer-ease), color .15s var(--rer-ease); }
.rer-btn::after { content: "›"; font-size: 1.1em; }
.rer-btn:hover { background: var(--rer-accent); color: #04121b; }
.rer-kv { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 10px 0; }
.rer-kv div { display: grid; gap: 2px; }
.rer-kv dt { color: var(--rer-muted); font: 600 .7rem/1 var(--rer-display); letter-spacing: .2em; text-transform: uppercase; }
.rer-kv dd { margin: 0; font: 700 1rem/1.2 var(--rer-display); letter-spacing: .04em; }
.rer-kv-col { display: grid; gap: 10px; }
.rer-kv-col div { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--rer-border); padding-bottom: 6px; }
.rer-kv-col dt { letter-spacing: .08em; font-size: .82rem; text-transform: none; color: var(--rer-ink); font-family: var(--rer-body); font-weight: 500; }
.rer-kv-col dd { color: var(--rer-accent); }
.rer-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.rer-chips li { padding: 5px 9px; border: 1px solid var(--rer-border); background: rgba(108, 200, 238, .05); font-size: .82rem; }
.rer-ports { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0; }
.rer-ports img { width: 48px; height: auto; border: 1px solid var(--rer-border); background: #04070c; image-rendering: auto; }

/* ---------- Hero */
.rer-hero { position: relative; border-bottom: 1px solid var(--rer-border); background: #060a11 url("hero-areas.webp") center / cover no-repeat; }
.rer-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #060a11 0%, rgba(6, 10, 17, .9) 45%, rgba(6, 10, 17, .7) 100%), linear-gradient(0deg, #060a11, transparent 40%); }
.rer-hero-inner { position: relative; width: min(80rem, 100% - 32px); margin: 0 auto; padding: 64px 0 56px; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .9fr); gap: 48px; align-items: start; }
.rer-title { margin: 0 0 18px; font-family: var(--rer-display); text-transform: uppercase; line-height: .9; }
.rer-title-small { display: block; color: var(--rer-ink); font-size: clamp(1.1rem, 2.2vw, 1.6rem); font-weight: 600; letter-spacing: .5em; }
.rer-title-small sup { font-size: .5em; letter-spacing: 0; }
.rer-title-big { display: block; margin-top: 8px; color: var(--rer-ink); font-size: clamp(3rem, 9vw, 6.6rem); font-weight: 700; letter-spacing: .06em; text-shadow: 0 0 32px rgba(108, 200, 238, .35); }
.rer-lede { max-width: 58ch; margin: 0 0 28px; color: #b9c7d4; font-size: 1.02rem; line-height: 1.65; }
.rer-menu { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--rer-border); max-width: 560px; }
.rer-menu a { display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--rer-border); color: var(--rer-ink); text-decoration: none; transition: background .15s var(--rer-ease), padding .15s var(--rer-ease); }
.rer-menu-no { color: var(--rer-muted); font: 600 .85rem/1 var(--rer-display); letter-spacing: .2em; }
.rer-menu-title { font: 700 1.3rem/1 var(--rer-display); letter-spacing: .2em; text-transform: uppercase; }
.rer-menu-count { color: var(--rer-muted); font-size: .8rem; text-align: right; }
.rer-menu a:hover, .rer-menu a[aria-current] { background: linear-gradient(90deg, rgba(108, 200, 238, .16), transparent); padding-left: 22px; }
.rer-menu a[aria-current] .rer-menu-title, .rer-menu a[aria-current] .rer-menu-no { color: var(--rer-accent); }
.rer-keys { display: flex; align-items: center; gap: 6px; margin: 18px 0 0; color: var(--rer-muted); font: 600 .75rem/1 var(--rer-display); letter-spacing: .2em; text-transform: uppercase; }
.rer-keys[hidden] { display: none; }
.rer-keys kbd { min-width: 24px; padding: 4px 6px; border: 1px solid var(--rer-border); color: var(--rer-ink); font: 700 .75rem/1 var(--rer-display); text-align: center; }
.rer-keys kbd:nth-child(2) { margin-right: 8px; }
.rer-keys kbd:last-child { margin-left: 8px; }
.rer-brief { padding: 22px 24px 24px; backdrop-filter: blur(6px); }
.rer-logo { position: relative; display: grid; place-items: center; margin: 4px 0 18px; padding: 18px 0 10px; }
.rer-logo-glow { position: absolute; inset: 50% auto auto 50%; width: 100%; max-width: 312px; height: auto; transform: translate(-50%, -50%); opacity: .55; }
.rer-logo-1 { position: relative; width: min(304px, 90%); height: auto; }
.rer-logo-2 { position: relative; width: min(220px, 66%); height: auto; margin-top: 8px; }
.rer-brief-body h3 { margin: 0; font: 700 1.6rem/1.1 var(--rer-display); letter-spacing: .16em; text-transform: uppercase; }
.rer-brief-count { margin: 4px 0 10px; color: var(--rer-accent); font: 600 .9rem/1.2 var(--rer-display); letter-spacing: .14em; text-transform: uppercase; }
.rer-brief-body p:not(.rer-brief-count) { margin: 0 0 16px; color: #b9c7d4; font-size: .95rem; line-height: 1.6; }
.rer-brief-body[hidden] { display: none; }
.rer-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin: 22px 0 0; border: 1px solid var(--rer-border); background: var(--rer-border); }
.rer-stats div { padding: 10px 8px; background: #08111c; text-align: center; }
.rer-stats dt { color: var(--rer-muted); font: 600 .66rem/1 var(--rer-display); letter-spacing: .18em; text-transform: uppercase; }
.rer-stats dd { margin: 6px 0 0; color: var(--rer-accent); font: 700 1.6rem/1 var(--rer-display); }

/* ---------- Sections */
.rer-sec { padding: 64px 0 24px; scroll-margin-top: 60px; }
.rer-sec-head { display: flex; flex-direction: column; margin-bottom: 26px; padding-bottom: 14px; border-bottom: 1px solid var(--rer-border); }
.rer-sec-head h2 { margin: 0; font: 700 clamp(2rem, 4.4vw, 3rem)/1 var(--rer-display); letter-spacing: .12em; text-transform: uppercase; }
.rer-sub { display: flex; flex-wrap: wrap; align-items: baseline; gap: 14px; margin: 40px 0 16px; font: 700 1.5rem/1 var(--rer-display); letter-spacing: .14em; text-transform: uppercase; }
.rer-sub span { color: var(--rer-muted); font-size: .9rem; letter-spacing: .16em; }
.rer-pages { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; margin: 28px 0 0; padding: 0; list-style: none; }
.rer-pages a { display: grid; gap: 6px; height: 100%; padding: 14px 16px; border: 1px solid var(--rer-border); border-left: 3px solid var(--rer-accent); background: var(--rer-card); color: var(--rer-ink); text-decoration: none; transition: background .15s var(--rer-ease); }
.rer-pages a:hover { background: var(--rer-card-2); }
.rer-pages strong { font: 700 1.05rem/1.2 var(--rer-display); letter-spacing: .06em; text-transform: uppercase; }
.rer-pages small { color: var(--rer-muted); font-size: .84rem; line-height: 1.45; }

/* Genesis */
.rer-genesis { background: linear-gradient(180deg, transparent, rgba(108, 200, 238, .04), transparent); }
.rer-genesis-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 36px; align-items: center; }
.rer-genesis p { max-width: 64ch; line-height: 1.65; color: #b9c7d4; }
.rer-hints { display: grid; gap: 8px; margin: 18px 0; padding: 0; list-style: none; }
.rer-hints li { padding: 10px 14px; border-left: 3px solid var(--rer-accent); background: rgba(108, 200, 238, .06); }
.rer-scan { display: grid; justify-items: center; gap: 8px; margin: 0; padding: 10px; }
.rer-scan img { display: block; width: 100%; max-width: 800px; height: auto; aspect-ratio: 5 / 3; }
.rer-scan figcaption { color: var(--rer-muted); font: 600 .7rem/1 var(--rer-display); letter-spacing: .2em; text-transform: uppercase; }

/* Episodes */
.rer-ep-feature { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.rer-ep-card { overflow: hidden; padding: 22px; }
.rer-ep-art { position: absolute; top: -18px; right: -18px; width: 150px; height: auto; opacity: .35; mix-blend-mode: screen; pointer-events: none; }
.rer-ep-no { position: relative; margin: 0; color: var(--rer-accent); font: 700 .8rem/1 var(--rer-display); letter-spacing: .3em; text-transform: uppercase; }
.rer-ep-card h3 { position: relative; margin: 8px 0 12px; font: 700 1.7rem/1.05 var(--rer-display); letter-spacing: .06em; text-transform: uppercase; }
.rer-ep-card h3 a { color: var(--rer-ink); text-decoration: none; }
.rer-ep-card h3 a:hover { color: var(--rer-accent); }
.rer-ep-card blockquote { position: relative; margin: 0; padding: 0 0 0 12px; border-left: 2px solid var(--rer-border); color: #b9c7d4; font-size: .88rem; font-style: italic; line-height: 1.55; }
.rer-ep-card cite { display: block; margin-top: 6px; color: var(--rer-muted); font-size: .78rem; font-style: normal; }
.rer-times { width: 100%; margin-top: 14px; border-collapse: collapse; font: 600 .9rem/1 var(--rer-display); letter-spacing: .06em; }
.rer-times th { color: var(--rer-muted); font-weight: 600; letter-spacing: .2em; text-align: left; padding: 6px 4px; border-bottom: 1px solid var(--rer-border); }
.rer-times td { padding: 7px 4px; border-bottom: 1px solid rgba(108, 200, 238, .1); }
.rer-times td:nth-child(2) { color: var(--rer-accent); }
.rer-index-head { display: flex; align-items: baseline; justify-content: space-between; margin: 36px 0 12px; }
.rer-index-head .rer-frame-label { margin: 0; }
.rer-counter { margin: 0; color: var(--rer-muted); font: 600 1.2rem/1 var(--rer-display); letter-spacing: .12em; }
.rer-counter b { color: var(--rer-ink); font-size: 1.6rem; }
.rer-index { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 0; list-style: none; border: 1px solid var(--rer-border); background: var(--rer-border); }
.rer-index a { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; align-items: center; height: 100%; padding: 14px 16px; background: var(--rer-card); color: var(--rer-ink); text-decoration: none; transition: background .15s var(--rer-ease); }
.rer-index a:hover { background: var(--rer-card-2); }
.rer-index-no { grid-row: span 3; color: var(--rer-accent); font: 700 1.8rem/1 var(--rer-display); }
.rer-index strong { font: 700 1.1rem/1.15 var(--rer-display); letter-spacing: .08em; text-transform: uppercase; }
.rer-index small { color: var(--rer-muted); font-size: .8rem; }
.rer-pips { display: flex; gap: 4px; }
.rer-pips i { width: 18px; height: 4px; background: var(--rer-accent); }

/* Arsenal */
.rer-arsenal { display: grid; grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); gap: 20px; align-items: start; }
.rer-tabs { max-height: 560px; overflow: auto; margin: 0; padding: 0; list-style: none; border: 1px solid var(--rer-border); scrollbar-color: var(--rer-border) transparent; }
.rer-tabs a { display: grid; gap: 2px; padding: 9px 14px; border-bottom: 1px solid rgba(108, 200, 238, .12); color: var(--rer-ink); font: 700 1rem/1.15 var(--rer-display); letter-spacing: .06em; text-decoration: none; transition: background .15s var(--rer-ease); }
.rer-tabs a span { color: var(--rer-muted); font-size: .68rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; }
.rer-tabs a:hover { background: rgba(108, 200, 238, .08); }
.rer-tabs a[aria-current] { background: linear-gradient(90deg, rgba(108, 200, 238, .2), transparent); box-shadow: inset 3px 0 0 var(--rer-accent); color: var(--rer-accent); }
.rer-wdata { min-height: 300px; }
.rer-wpanel h3 { margin: 0; font: 700 2.2rem/1 var(--rer-display); letter-spacing: .08em; text-transform: uppercase; }
.rer-wpanel[hidden] { display: none; }
.rer-wpanel > p { color: #b9c7d4; }
.rer-parts { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.rer-parts li { display: grid; gap: 4px; padding: 14px 16px; }
.rer-parts strong { font: 700 1.1rem/1.1 var(--rer-display); letter-spacing: .1em; text-transform: uppercase; }
.rer-part-short { color: #b9c7d4; font-size: .85rem; }
.rer-part-vals { color: var(--rer-accent); font: 600 .9rem/1.3 var(--rer-display); letter-spacing: .04em; }
.rer-part-vals { display: block; }
.rer-part-vals b { display: inline-block; min-width: 6.5em; color: var(--rer-muted); font-weight: 600; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }

/* Enemies */
.rer-enemies { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.rer-enemies li { display: flex; flex-direction: column; }
.rer-tag { margin: 0; color: var(--rer-danger); font: 700 .74rem/1 var(--rer-display); letter-spacing: .3em; }
.rer-enemies h3 { margin: 8px 0 8px; font: 700 1.5rem/1.05 var(--rer-display); letter-spacing: .08em; text-transform: uppercase; }
.rer-enemies p:not(.rer-tag) { flex: 1; margin: 0; color: #b9c7d4; font-size: .9rem; line-height: 1.55; }
.rer-enemies .rer-kv { margin: 14px 0 0; padding-top: 10px; border-top: 1px solid var(--rer-border); }

/* Items */
.rer-items { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.rer-itemlist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 0; list-style: none; border: 1px solid var(--rer-border); background: var(--rer-border); }
.rer-itemlist li { display: grid; gap: 3px; padding: 10px 14px; background: var(--rer-card); }
.rer-itemlist strong { font: 700 1rem/1.15 var(--rer-display); letter-spacing: .06em; text-transform: uppercase; }
.rer-itemlist small { color: var(--rer-muted); font-size: .8rem; line-height: 1.4; }

/* Raid */
.rer-route ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 0; list-style: none; background: var(--rer-border); border: 1px solid var(--rer-border); }
.rer-route li { display: grid; grid-template-columns: auto 1fr; gap: 2px 14px; align-items: center; padding: 18px; background: #08111c; }
.rer-route strong { font: 700 1.8rem/1 var(--rer-display); letter-spacing: .2em; }
.rer-route small { color: var(--rer-muted); font-size: .82rem; }
.rer-route .rer-note { margin: 12px 0 0; }
.rer-stages { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; margin: 18px 0; padding: 0; list-style: none; }
.rer-stages li { display: grid; gap: 3px; padding: 10px 12px; border: 1px solid var(--rer-border); background: var(--rer-card); }
.rer-stages span { color: var(--rer-accent); font: 700 .72rem/1 var(--rer-display); letter-spacing: .24em; text-transform: uppercase; }
.rer-stages strong { font: 700 1rem/1.15 var(--rer-display); letter-spacing: .06em; text-transform: uppercase; }
.rer-stages small { color: var(--rer-muted); font-size: .76rem; }
.rer-raid-grid { display: grid; grid-template-columns: 1fr 1.3fr 1fr; gap: 16px; align-items: start; }
.rer-talents { display: grid; gap: 8px; margin: 0; }
.rer-talents div { display: grid; gap: 2px; padding-bottom: 8px; border-bottom: 1px solid rgba(108, 200, 238, .12); }
.rer-talents dt { font: 700 1rem/1.1 var(--rer-display); letter-spacing: .08em; text-transform: uppercase; }
.rer-talents dd { margin: 0; color: var(--rer-muted); font-size: .84rem; }
.rer-talents dd small { display: block; margin-top: 2px; color: var(--rer-accent); font-size: .76rem; }
.rer-ports-raid img { width: 40px; }

/* Files */
.rer-files { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1px; margin: 0; padding: 0; list-style: none; border: 1px solid var(--rer-border); background: var(--rer-border); }
.rer-files a { display: grid; gap: 4px; height: 100%; padding: 12px 14px; background: var(--rer-card); color: var(--rer-ink); font-size: .9rem; line-height: 1.4; text-decoration: none; transition: background .15s var(--rer-ease); }
.rer-files a:hover { background: var(--rer-card-2); }
.rer-files span { color: var(--rer-accent); font: 700 .72rem/1 var(--rer-display); letter-spacing: .24em; text-transform: uppercase; }

.zone-resident-evil-revelations .ad-slot { width: min(80rem, 100% - 32px); margin-left: auto; margin-right: auto; }

/* ---------- Guide pages (default zone article layout) */
.zone-resident-evil-revelations .window { border: 1px solid var(--rer-border); border-radius: 0; background: var(--rer-card); box-shadow: none; }
.zone-resident-evil-revelations .window-title { border-radius: 0; background: var(--rer-card-2); color: var(--rer-accent); font-family: var(--rer-display); letter-spacing: .2em; text-transform: uppercase; }
.zone-resident-evil-revelations .article-head { position: relative; border-left: 3px solid var(--rer-accent); }
.zone-resident-evil-revelations .article-head h1 { font-family: var(--rer-display); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.zone-resident-evil-revelations .article-meta { font-family: var(--rer-display); letter-spacing: .12em; text-transform: uppercase; }
.zone-resident-evil-revelations .prose h2 { border-radius: 0; background: linear-gradient(90deg, rgba(108, 200, 238, .12), transparent); font-family: var(--rer-display); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.zone-resident-evil-revelations .prose h2::before { border-radius: 0; width: 3px; }
.zone-resident-evil-revelations .prose h3 { font-family: var(--rer-display); font-size: 1.25rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.zone-resident-evil-revelations .prose h3::before { border-radius: 0; width: .45em; height: .45em; box-shadow: none; }
.zone-resident-evil-revelations .prose table { border-radius: 0; font-variant-numeric: tabular-nums; }
.zone-resident-evil-revelations .prose th { color: var(--rer-accent); font-family: var(--rer-display); letter-spacing: .12em; text-transform: uppercase; }
.zone-resident-evil-revelations .prose tbody tr:hover td { background: rgba(108, 200, 238, .05); }
.zone-resident-evil-revelations .prose blockquote { border-radius: 0; border-left-width: 3px; font-style: italic; }
.zone-resident-evil-revelations .toc a { border-radius: 0; }
.zone-resident-evil-revelations .toc a.is-active { border-left-color: var(--rer-accent); }
.zone-resident-evil-revelations .lr-btn { border-radius: 0; background: var(--rer-card); }
.zone-resident-evil-revelations .lr-key { border-radius: 0; }

/* ---------- Footer */
.rer-footer { margin-top: 64px; border-top: 1px solid var(--rer-border); background: #04070c; color: var(--rer-muted); }
.rer-footer-inner { width: min(80rem, 100% - 32px); margin: 0 auto; padding: 32px 0 26px; display: grid; gap: 16px; }
.rer-footer-tag { margin: 0; font: 600 .8rem/1 var(--rer-display); letter-spacing: .3em; text-transform: uppercase; }
.rer-footer-tag span { color: var(--rer-accent); }
.rer-footer-links, .rer-footer-base { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.rer-footer-links a { color: var(--rer-ink); font: 700 .86rem/1 var(--rer-display); letter-spacing: .18em; text-decoration: none; text-transform: uppercase; }
.rer-footer-links a:hover, .rer-footer-base a:hover { color: var(--rer-accent); }
.rer-footer-base a, .rer-footer-base .linklike { color: var(--rer-muted); font-size: .85rem; }
.rer-legal { margin: 0; max-width: 90ch; font-size: .78rem; line-height: 1.55; }

/* ---------- Responsive */
/* In-game icons: fixed boxes, pixel art kept crisp. */
.rer-ico { display: block; flex: none; object-fit: contain; image-rendering: pixelated; }
.rer-tabs a { grid-template-columns: 32px minmax(0, 1fr); column-gap: 10px; align-items: center; }
.rer-tabs a .rer-ico { grid-row: span 2; width: 32px; height: 24px; }
.rer-tabs a span, .rer-tabs a { min-width: 0; }
.rer-ico-lg { width: 128px; height: 96px; margin-bottom: 10px; border: 1px solid var(--rer-border); background: #05080c; }
.rer-parts strong { display: flex; align-items: center; gap: 8px; }
.rer-ico-part { width: 24px; height: 24px; }
.rer-itemlist li { grid-template-columns: 64px minmax(0, 1fr); column-gap: 12px; align-items: center; }
.rer-itemlist li .rer-ico { grid-row: span 2; width: 64px; height: 48px; background: #05080c; }
.rer-itemlist li strong, .rer-itemlist li small { grid-column: 2; }
.rer-chips-ico li { display: inline-flex; align-items: center; gap: 6px; }
.rer-chips-ico .rer-ico { width: 32px; height: 24px; }
.zone-resident-evil-revelations .prose td img { display: block; width: 64px; height: 48px; max-width: none; margin: 0; border: 0; border-radius: 0; background: #05080c; image-rendering: pixelated; }
.zone-resident-evil-revelations .prose h3 img { display: inline-block; width: 24px; height: 24px; margin: 0 6px 0 0; vertical-align: -3px; border: 0; border-radius: 0; image-rendering: pixelated; }

@media (max-width: 1020px) {
  .rer-hero-inner { grid-template-columns: 1fr; gap: 32px; }
  .rer-ep-feature, .rer-enemies { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rer-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rer-raid-grid { grid-template-columns: 1fr 1fr; }
  .rer-raid-grid > :nth-child(2) { grid-column: span 2; grid-row: 2; }
  .rer-items { grid-template-columns: 1fr; }
  .rer-uplink { display: none; }
}
@media (max-width: 760px) {
  .rer-brand-mark { width: 36px; height: 36px; padding: 1px; }
  .rer-header-inner { flex-wrap: wrap; gap: 12px; }
  .rer-tools { width: 100%; justify-content: space-between; }
  .zone-resident-evil-revelations .zone-search { width: auto; flex: 1; }
  .rer-hero-inner { padding: 40px 0 36px; }
  .rer-title-small { letter-spacing: .3em; }
  .rer-menu-count { display: none; }
  .rer-menu a { grid-template-columns: 36px 1fr; }
  .rer-ep-feature, .rer-enemies, .rer-index, .rer-route ol, .rer-raid-grid, .rer-genesis-grid, .rer-itemlist { grid-template-columns: 1fr; }
  .rer-raid-grid > :nth-child(2) { grid-column: auto; grid-row: auto; }
  .rer-arsenal { grid-template-columns: 1fr; }
  .rer-tabs { display: flex; max-height: none; overflow-x: auto; border-bottom: 0; }
  .rer-tabs li { flex: none; }
  .rer-tabs a { border-right: 1px solid rgba(108, 200, 238, .12); border-bottom: 1px solid var(--rer-border); }
  .rer-tabs a[aria-current] { box-shadow: inset 0 -3px 0 var(--rer-accent); }
  .rer-stats dd { font-size: 1.3rem; }
  .rer-sec { padding-top: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  .zone-resident-evil-revelations *, .zone-resident-evil-revelations *::before { transition: none !important; animation: none !important; }
}

/* Ship map page: 3D ship viewer (rer-map.js) and the area list, which is the whole page without JS. */
.rer-map-page h1 { margin: 0; font: 700 clamp(2rem, 4.4vw, 3rem)/1 var(--rer-display); letter-spacing: .12em; text-transform: uppercase; }
.rer-map-count { color: var(--rer-muted); font-size: .45em; letter-spacing: .16em; vertical-align: middle; }
.rer-map-page .rer-sec-head p:last-child { margin: 14px 0 0; color: var(--rer-muted); max-width: 60ch; }
.rer-map-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.rer-map-bar .rer-frame-label { margin: 0; }
.rer-map-sel { margin-left: 8px; color: var(--rer-ink); }
.rer-map-tools { display: flex; gap: 8px; }
.rer-map-tools .rer-btn { padding: 8px 14px; cursor: pointer; background: transparent; }
.rer-map-stage { position: relative; height: min(68vh, 560px); min-height: 320px; border: 1px solid var(--rer-border); overflow: hidden; touch-action: none;
  background: radial-gradient(ellipse at 50% 55%, #0f2234 0%, #03070c 70%), #03070c; }
.rer-map-stage canvas { display: block; width: 100%; height: 100%; cursor: grab; }
.rer-map-stage canvas:active { cursor: grabbing; }
@media (max-width: 600px) { .rer-map-stage { height: min(58vh, 440px); } }
.rer-map-hint { margin: 0; padding: 24px; color: var(--rer-muted); }
.rer-map-tip { position: absolute; left: 0; top: 0; pointer-events: none; padding: 5px 9px; border: 1px solid var(--rer-accent); background: #03070ce6; color: var(--rer-ink); font: 700 .85rem/1 var(--rer-display); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.rer-map-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 10px 0 0; color: var(--rer-muted); font-size: .85rem; }
.rer-map-swatch { display: inline-block; width: 14px; height: 10px; border: 1px solid var(--rer-accent); background: #6cc8ee33; margin-right: -8px; }
.rer-map-swatch.is-link { border-color: var(--rer-muted); background: #8597a822; }
.rer-map-dir { margin-left: auto; font: 600 .8rem/1 var(--rer-display); letter-spacing: .16em; text-transform: uppercase; }
.rer-map-areas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.rer-map-areas button { width: 100%; height: 100%; display: flex; flex-direction: column; gap: 6px; padding: 12px; text-align: left; cursor: pointer; border: 1px solid var(--rer-border); background: var(--rer-card); color: var(--rer-ink); font: inherit; }
.rer-map-areas button:hover, .rer-map-areas button:focus-visible { border-color: #ffd166; }
.rer-map-areas button.is-current { border-color: var(--rer-danger); background: #d23a2e1f; }
.rer-map-areas strong { display: flex; align-items: center; gap: 10px; font: 700 1rem/1.2 var(--rer-display); letter-spacing: .08em; text-transform: uppercase; }
.rer-map-areas span:not(.rer-map-key) { color: var(--rer-muted); font-size: .88rem; line-height: 1.5; }
.rer-map-key { display: inline-grid; place-items: center; min-width: 30px; height: 24px; padding: 0 6px; border: 1px solid var(--rer-accent); color: var(--rer-accent); font: 700 .8rem/1 var(--rer-display); }
