/* =====================================================================
   PAEDZ Signature Review — Theme 0.15.5 (0.16.1: balanced hero composition)
   Loaded only on single reviews (inc/setup.php). Every rule is scoped to
   .rv2, so articles, news, cards and the gallery carousel are unaffected.

   Composition
     1. Cover spread: authentic artwork beside the title column (never
        under the title), the paper score stamp on the seam.
     2. Reading column + side column (game dossier, numbered section index).
     3. Final verdict: stamp, the review's own summary, pros/cons ledger.
   Colour = the logo's own meaning: green ≥ 8 · amber ≥ 6 · red < 6.
   ===================================================================== */

.rv2 {
  --rv-tone: var(--fg-3);
  --rv-tone-ink: #3b4040;               /* tone on paper (AA on --paper) */
  --rv-art-max: 560px; /* 0.16.0: desktop hero 420–560px */
  --rv-col: 44rem;                      /* reading measure (~70ch Arabic at 19px) */
  --rv-shell: 1280px;                   /* 0.16.1: hero and body share one 1280px composition */
  --rv-panel: #0a0c0d;                  /* hero information surface (the art fades into it) */
  --rv-hw: min(var(--rv-shell), calc(100vw - var(--gutter) - var(--gutter-r)));
}
.rv2.tone-g, .rv2 .tone-g { --rv-tone: var(--green); --rv-tone-ink: #1d7a37; }
.rv2.tone-a, .rv2 .tone-a { --rv-tone: var(--amber); --rv-tone-ink: #93590c; }
.rv2.tone-r, .rv2 .tone-r { --rv-tone: var(--red-2); --rv-tone-ink: #b3200f; }
.rv2 .rv2-k { margin: 0; font-family: var(--f-head); font-weight: 800; font-size: var(--t-12); letter-spacing: .04em; color: var(--fg-3); }

/* ---------------------------------------------------------------- hero */
.rv2-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); background: var(--bg); }
.rv2-art { position: relative; overflow: hidden; background: #050606; aspect-ratio: auto; min-width: 0; height: min(calc(100vw / var(--ar, 1.7778)), var(--rv-art-cap, 420px)); } /* 0.16.0: tablet ≤420px, phone ≤320px, never cropped below 1100px */
@media (max-width: 759px) { .rv2 { --rv-art-cap: 320px; } }
.rv2-art-img { position: relative; z-index: 1; display: block; width: 100%; height: 100%; object-fit: cover; object-position: var(--rv-focus, 50% 45%); } /* 0.16.1: per-image focal point (Media Library field) */
/* portrait / square / mid art: shown whole over a darkened blur of the same image (no invented art) */
.rv2-art-img { object-fit: contain; }
.rv2.art-mid .rv2-art-img, .rv2.art-tall .rv2-art-img { object-fit: contain; }
.rv2-art-bg { position: absolute; inset: -40px; background-size: cover; background-position: center; filter: blur(34px) saturate(115%) brightness(.42); transform: translateZ(0); }
.rv2.art-tall .rv2-art { height: var(--rv-art-cap, 420px); }
/* soft fade where the art meets the page (bottom on stacked layouts); never across the middle of the art */
.rv2-art::after { content: ""; position: absolute; inset: auto 0 0; height: 18%; z-index: 2; background: linear-gradient(to top, var(--bg), transparent); pointer-events: none; }

.rv2-plate { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-5); width: 100%; max-width: calc(var(--rv-shell) + var(--gutter) + var(--gutter-r)); margin-inline: auto; padding: var(--sp-5) var(--gutter-r) var(--sp-6) var(--gutter); }
.rv2.has-art .rv2-plate { z-index: 3; } /* 0.16.1: the text no longer overlaps the art */
.rv2-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.rv2-title { margin: 10px 0 0; font-family: var(--f-head); font-weight: 900; font-size: clamp(1.9rem, 1.35rem + 2.3vw, 3.35rem); line-height: 1.12; letter-spacing: -.01em; text-wrap: balance; overflow-wrap: anywhere; }
.rv2-title-main { display: block; }
.rv2-title.title-long { font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.8rem); }
.rv2-title.title-xl { font-size: clamp(1.6rem, 1.25rem + 1.4vw, 2.35rem); }
.rv2.no-art .rv2-hero { border-top: 3px solid var(--rv-tone); background: linear-gradient(180deg, var(--s1), var(--bg) 70%); }
.rv2.no-art .rv2-plate { padding-top: var(--sp-7); }
.rv2-title-sep { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rv2-title-sub { display: block; margin-top: .45em; font-weight: 700; font-size: .56em; line-height: 1.45; color: var(--fg-2); letter-spacing: 0; }
.rv2-dek { margin: var(--sp-4) 0 0; max-width: 40rem; font-size: clamp(1.05rem, 1rem + .25vw, 1.2rem); line-height: 1.85; color: var(--fg-2); }
.rv2-dek-verdict { color: var(--fg); font-weight: 600; }
.rv2-by { margin-top: 0; }
/* 0.16.1: author, date, reviewed platforms and the score form one row of the information block */
.rv2-meta { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px 28px; margin-top: var(--sp-5); padding-top: var(--sp-4); border-top: 1px solid var(--line); }
.rv2-meta-l { min-width: 0; }
.rv2-meta-l > .rv2-tested { margin-top: 12px; padding-top: 0; border-top: 0; }
.rv2-meta > .rv2-stamp--hero { justify-self: end; }
.rv2-by .byline { margin: 0; }
.rv2-tested { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: var(--sp-4); padding-top: var(--sp-4); border-top: 1px solid var(--line); }
.rv2-tested-k { font-family: var(--f-head); font-weight: 800; font-size: var(--t-14); color: var(--fg-3); }
.rv2-tested-l { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.rv2-tested-l li { padding: 3px 10px 2px; border: 1px solid var(--line-2); border-radius: 2px; font-family: var(--f-head); font-weight: 800; font-size: var(--t-14); line-height: 1.5; color: var(--fg); direction: ltr; unicode-bidi: isolate; }

/* ---------------------------------------------------------- score stamp */
.rv2-stamp { position: relative; display: grid; justify-items: center; align-content: start; gap: 6px; width: 152px; padding: 14px 14px 16px; background: var(--paper); color: var(--paper-ink); border-top: 6px solid var(--rv-tone); border-radius: 2px; box-shadow: 0 22px 48px -18px rgba(0,0,0,.85); }
.rv2-stamp-fig { display: flex; align-items: baseline; gap: 2px; direction: ltr; unicode-bidi: isolate; }
.rv2-stamp-num { font-family: var(--f-num); font-size: 5.6rem; line-height: .82; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.rv2-stamp-of { font-family: var(--f-num); font-size: 1.6rem; line-height: 1; color: var(--paper-ink-2); }
.rv2-stamp-word { font-family: var(--f-head); font-weight: 900; font-size: 1.05rem; line-height: 1.3; text-align: center; color: var(--rv-tone-ink); }
.rv2-ticks { display: grid; grid-template-columns: repeat(10, 1fr); gap: 3px; width: 100%; margin-top: 4px; direction: ltr; }
.rv2-ticks i { position: relative; height: 7px; background: rgba(16,18,18,.13); overflow: hidden; }
.rv2-ticks i::before { content: ""; position: absolute; inset: 0 auto 0 0; width: calc(var(--f, 0) * 100%); background: var(--rv-tone-ink); }
.rv2-stamp.is-two .rv2-stamp-num { font-size: 4.9rem; }
.rv2-stamp.is-long .rv2-stamp-num { font-size: 4.1rem; letter-spacing: -.02em; }
.rv2-stamp--hero { width: 132px; padding: 12px 12px 14px; box-shadow: 0 14px 30px -16px rgba(0,0,0,.9); }
.rv2-stamp--hero .rv2-stamp-num { font-size: 4.6rem; }
.rv2-stamp--hero.is-two .rv2-stamp-num { font-size: 4rem; }
.rv2-stamp--hero.is-long .rv2-stamp-num { font-size: 3.4rem; }
.rv2-stamp--hero .rv2-stamp-of { font-size: 1.35rem; }
.rv2-stamp--hero .rv2-stamp-word { font-size: .98rem; }
.rv2-stamp--end { width: 200px; padding: 18px 18px 20px; }
.rv2-stamp--end .rv2-stamp-num { font-size: 7.4rem; }
.rv2-stamp--end .rv2-stamp-of { font-size: 2rem; }
.rv2-stamp--end .rv2-stamp-word { font-size: 1.25rem; }
.rv2-stamp--end.is-two .rv2-stamp-num { font-size: 6.4rem; }
.rv2-stamp--end.is-long .rv2-stamp-num { font-size: 5.4rem; }
.rv2-stamp--end .rv2-ticks i { height: 9px; }

/* -------------------------------------------------------------- body */
.rv2-body { padding-top: var(--sp-6); }
.rv2-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-6); max-width: var(--rv-shell); margin-inline: auto; }
.rv2-read { min-width: 0; }
.rv2 .toc-m { display: block; margin: 0 0 var(--sp-6); }

.rv2-prose { max-width: var(--rv-col); margin-inline: auto; font-size: clamp(1.0625rem, 1rem + .25vw, 1.1875rem); line-height: 2; counter-reset: rvsec; }
.rv2-prose > p, .rv2-prose .pae-review-content > p { color: #e6e5e0; }
.rv2-prose h2:not(.paedz-no-toc) { counter-increment: rvsec; position: relative; margin: 2.6em 0 .85em; padding-top: 22px; border-top: 1px solid var(--line); font-family: var(--f-head); font-weight: 900; font-size: clamp(1.45rem, 1.2rem + .9vw, 2rem); line-height: 1.3; text-wrap: balance; scroll-margin-top: calc(var(--head-h) + 24px); }
.rv2-prose h2:not(.paedz-no-toc)::before { content: counter(rvsec, decimal-leading-zero); position: absolute; top: -.62em; inset-inline-start: 0; padding-inline-end: 12px; background: var(--bg); font-family: var(--f-num); font-size: 1.05rem; font-weight: 400; letter-spacing: .14em; line-height: 1; color: var(--rv-tone); direction: ltr; unicode-bidi: isolate; }
.rv2-prose > h2:first-child:not(.paedz-no-toc), .rv2-prose > :first-child h2:first-child:not(.paedz-no-toc) { margin-top: 1em; }
.rv2-prose h3 { margin: 1.9em 0 .6em; font-family: var(--f-head); font-weight: 800; font-size: clamp(1.15rem, 1.08rem + .3vw, 1.35rem); line-height: 1.4; scroll-margin-top: calc(var(--head-h) + 24px); }
.rv2-prose :is(figure.wp-block-image, .wp-block-image, .pae-gallery-wrap) { margin-block: 2em; }
.rv2-prose img { border-radius: 3px; }
.rv2-prose figcaption, .rv2-prose .wp-element-caption { margin-top: 8px; font-size: .85rem; line-height: 1.7; color: var(--fg-3); }

/* ------------------------------------------------------- side column */
.rv2-aside { min-width: 0; display: grid; gap: var(--sp-5); align-content: start; }
.rv2-dossier { padding: 18px 20px 16px; border: 1px solid var(--line); border-top: 2px solid var(--rv-tone); border-radius: 3px; background: var(--s1); }
.rv2-dossier-head { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.rv2-dossier-cover { flex: 0 0 auto; width: 62px; height: 82px; object-fit: cover; border-radius: 2px; }
.rv2-dossier-name { margin: 4px 0 0; font-family: var(--f-head); font-weight: 900; font-size: 1.12rem; line-height: 1.35; overflow-wrap: anywhere; }
.rv2-facts { display: grid; gap: 0; margin: 0; }
.rv2-facts > div { display: grid; grid-template-columns: 7.2em minmax(0, 1fr); gap: 10px; padding: 9px 0; border-top: 1px solid var(--line); }
.rv2-facts dt { font-family: var(--f-head); font-weight: 700; font-size: var(--t-14); color: var(--fg-3); }
.rv2-facts dd { margin: 0; font-weight: 600; font-size: var(--t-15); line-height: 1.6; overflow-wrap: anywhere; }
.rv2-facts dd a { text-decoration: underline; text-decoration-color: rgba(255,255,255,.3); text-underline-offset: .25em; }
.rv2-dossier-link { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); font-family: var(--f-head); font-weight: 800; font-size: var(--t-15); color: var(--fg); }
.rv2-dossier-link::after { content: "←"; font-family: var(--f-body); color: var(--rv-tone); }
.rv2-dossier-link:hover { color: #fff; }

/* numbered section index (the existing navigator markup + script, restyled) */
.rv2-index { display: none; } /* below desktop the compact collapsible list (.toc-m) is the only index */
.rv2-index .toc { padding: 0; border: 0; background: none; border-radius: 0; }
.rv2-index .toc-h { margin: 0 0 10px; font-size: var(--t-12); letter-spacing: .04em; color: var(--fg-3); }
.rv2-index .toc-progress { height: 2px; margin-bottom: 6px; background: var(--line); }
.rv2-index .toc-progress i { background: var(--rv-tone); }
.rv2 .toc-nav ol { counter-reset: rvidx; }
.rv2 .toc-nav a:not(.sub):not([href="#verdict-h"]) { counter-increment: rvidx; }
.rv2 .toc-nav a { display: flex; gap: 12px; align-items: baseline; }
.rv2-index .toc-nav a { padding: 9px 0 9px 4px; border-inline-start: 0 !important; border-bottom: 1px solid var(--line); background: none !important; color: var(--fg-2); font-size: var(--t-15); line-height: 1.5; }
.rv2 .toc-nav a:not(.sub):not([href="#verdict-h"])::before { content: counter(rvidx, decimal-leading-zero); flex: 0 0 auto; min-width: 1.6em; font-family: var(--f-num); font-size: 1rem; letter-spacing: .08em; color: var(--fg-3); direction: ltr; unicode-bidi: isolate; }
.rv2 .toc-nav a[href="#verdict-h"]::before { content: "■"; flex: 0 0 auto; min-width: 1.6em; font-size: .7rem; color: var(--rv-tone); }
.rv2-index .toc-nav a.sub { padding-inline-start: 2.4em; font-size: var(--t-14); color: var(--fg-3); }
.rv2-index .toc-nav a.on, .rv2-index .toc-nav a:hover { color: #fff; }
.rv2-index .toc-nav a.on::before { color: var(--rv-tone) !important; }
.rv2 .toc-m { border: 1px solid var(--line); border-radius: 3px; background: var(--s1); }

/* ------------------------------------------------------- final verdict */
.rv2-verdict { position: relative; max-width: var(--rv-shell); margin: var(--sp-8) auto 0; padding: clamp(24px, 3vw, 44px); background: var(--s1); border: 1px solid var(--line); border-top: 3px solid var(--rv-tone); border-radius: 3px; scroll-margin-top: calc(var(--head-h) + 24px); }
.rv2-verdict-top { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-5); align-items: start; }
.rv2-verdict .rv2-k { color: var(--rv-tone); }
.rv2-verdict h2 { margin: 6px 0 0; font-family: var(--f-head); font-weight: 900; font-size: clamp(1.7rem, 1.35rem + 1.2vw, 2.4rem); line-height: 1.2; }
.rv2-verdict-body { margin-top: var(--sp-4); max-width: 46rem; font-size: clamp(1.05rem, 1rem + .25vw, 1.2rem); line-height: 2; color: #e6e5e0; }
.rv2-verdict-body p { margin: 0 0 .9em; }
.rv2-verdict-body p:last-child { margin-bottom: 0; }
.rv2-verdict--close { padding-block: 22px; }
.rv2-verdict--close .rv2-verdict-top { align-items: center; }
.rv2-verdict--close .rv2-tested { border-top: 0; padding-top: 0; margin-top: 10px; }

.rv2-ledger { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-5) var(--sp-7); margin-top: var(--sp-6); padding-top: var(--sp-5); border-top: 1px solid var(--line); }
.rv2-ledger-col h3 { display: flex; align-items: center; gap: 10px; margin: 0 0 6px; font-family: var(--f-head); font-weight: 900; font-size: 1.15rem; }
.rv2-count { font-family: var(--f-num); font-weight: 400; font-size: .95rem; letter-spacing: .06em; color: var(--fg-3); direction: ltr; }
.rv2-ledger ul { margin: 0; padding: 0; list-style: none; }
.rv2-ledger li { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 12px; align-items: start; padding: 11px 0; border-bottom: 1px solid var(--line); font-size: var(--t-16); line-height: 1.8; }
.rv2-ledger li:last-child { border-bottom: 0; }
.rv2-mark { display: grid; place-items: center; width: 22px; height: 22px; margin-top: 4px; border: 1px solid currentColor; border-radius: 2px; font-family: var(--f-head); font-weight: 900; font-size: .95rem; line-height: 1; }
.rv2-ledger .is-pro .rv2-mark { color: var(--green); }
.rv2-ledger .is-con .rv2-mark { color: var(--red-2); }
.rv2-ledger .is-pro h3 { color: #c9f0d3; }
.rv2-ledger .is-con h3 { color: #ffd1cb; }

.rv2-foot { max-width: var(--rv-shell); margin-inline: auto; }

/* ------------------------------------------------------------ tablet */
@media (min-width: 760px) {
  .rv2-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--sp-5); }
  .rv2-ledger { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rv2-ledger.is-single { grid-template-columns: minmax(0, 1fr); }
  .rv2-verdict-top { grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--sp-7); }
}

/* ------------------------------------------------- desktop: cover spread */
@media (min-width: 1100px) {
  /* 0.16.1 — one centred composition: art ≈60% · information ≈40%, the same 1280px width as the body below.
     The art box follows the image's own ratio (wide art is not cropped at common widths), between 380 and 500px tall. */
  .rv2.has-art .rv2-hero { grid-template-columns: minmax(0, 40fr) minmax(0, 60fr); grid-template-areas: "plate art"; align-items: stretch; width: var(--rv-hw); max-width: var(--rv-shell); margin: var(--sp-5) auto 0; background: var(--rv-panel); border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
  .rv2.has-art .rv2-art { grid-area: art; min-width: 0; max-height: none; height: clamp(380px, calc(var(--rv-hw) * .6 / var(--ar, 1.7778)), 500px); }
  .rv2.art-mid.has-art .rv2-art, .rv2.art-tall.has-art .rv2-art { height: clamp(420px, calc(var(--rv-hw) * .6 / 1.7778), 500px); }
  .rv2.has-art.art-wide .rv2-art-img { object-fit: cover; }
  /* the art fades into the information surface on its inner edge only: smooth eased stops, nothing over the centre */
  .rv2.has-art .rv2-art::after { inset: 0 auto 0 0; inset-inline-start: 0; inset-inline-end: auto; width: 16%; height: auto; background: linear-gradient(to left, var(--rv-panel) 0%, rgba(10,12,13,.82) 22%, rgba(10,12,13,.45) 52%, rgba(10,12,13,.14) 80%, rgba(10,12,13,0) 100%); }
  html[dir="ltr"] .rv2.has-art .rv2-art::after { background: linear-gradient(to right, var(--rv-panel) 0%, rgba(10,12,13,.82) 22%, rgba(10,12,13,.45) 52%, rgba(10,12,13,.14) 80%, rgba(10,12,13,0) 100%); }
  .rv2.has-art .rv2-plate { grid-area: plate; grid-template-columns: minmax(0, 1fr); align-content: center; gap: 0; margin: 0; max-width: none; padding: 36px 40px 32px 28px; padding-inline-start: 40px; padding-inline-end: 24px; background: var(--rv-panel); }
  .rv2.has-art .rv2-title { font-size: clamp(1.9rem, 1rem + 1.45vw, 2.75rem); line-height: 1.14; }
  .rv2.has-art .rv2-title.title-long { font-size: clamp(1.7rem, .95rem + 1.15vw, 2.3rem); }
  .rv2.has-art .rv2-title.title-xl { font-size: clamp(1.5rem, .9rem + .95vw, 1.95rem); }
  .rv2.has-art .rv2-dek { font-size: 1.05rem; line-height: 1.75; }
  .rv2.has-art .rv2-tested-l li { font-size: var(--t-13, .8125rem); padding: 2px 8px 1px; }
  .rv2.has-art .rv2-tested-l li[data-pf] { padding-inline-start: 18px; }
  .rv2.no-art .rv2-hero { max-width: var(--rv-shell); width: var(--rv-hw); margin: var(--sp-5) auto 0; border: 1px solid var(--line); border-top: 3px solid var(--rv-tone); border-radius: 6px; }
  .rv2.no-art .rv2-plate { max-width: 52rem; margin-inline: 0; padding: var(--sp-7) 40px; }
  .rv2-grid.has-aside { grid-template-columns: minmax(0, var(--rv-col)) 300px; grid-template-areas: "read aside"; justify-content: space-between; column-gap: var(--sp-8); }
  .rv2-grid.has-aside > .rv2-read { grid-area: read; }
  .rv2-grid.has-aside > .rv2-aside { grid-area: aside; position: relative; }
  .rv2-grid.has-aside .rv2-prose { margin-inline: 0; }
  .rv2-index { display: block; position: sticky; top: calc(var(--head-h) + 24px); }
  .rv2-grid.has-toc .toc-m { display: none; }
  .rv2-facts { grid-template-columns: minmax(0, 1fr); }
}

/* ------------------------------------------------------------- mobile */
@media (max-width: 759px) {
  .rv2-plate { gap: var(--sp-4); padding-bottom: var(--sp-5); }
  .rv2-title { font-size: clamp(1.75rem, 1.2rem + 3.6vw, 2.25rem); }
  /* 0.16.1: the hero score stays a compact stamp beside author/date/platforms */
  .rv2-meta { grid-template-columns: minmax(0, 1fr) auto; gap: 12px 14px; }
  .rv2-stamp--hero { width: 104px; padding: 9px 9px 11px; gap: 4px; }
  .rv2-stamp--hero .rv2-stamp-num { font-size: 3.6rem; }
  .rv2-stamp--hero.is-two .rv2-stamp-num { font-size: 3.15rem; }
  .rv2-stamp--hero.is-long .rv2-stamp-num { font-size: 2.65rem; }
  .rv2-stamp--hero .rv2-stamp-of { font-size: 1.1rem; }
  .rv2-stamp--hero .rv2-stamp-word { font-size: .86rem; }
  .rv2-stamp--hero .rv2-ticks i { height: 5px; }
  .rv2-stamp--end { width: 100%; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "fig word" "fig ticks"; justify-items: start; align-items: center; column-gap: 18px; }
  .rv2-stamp--end .rv2-stamp-fig { grid-area: fig; }
  .rv2-stamp--end .rv2-stamp-num { font-size: 5rem; }
  .rv2-stamp--end .rv2-stamp-word { grid-area: word; text-align: start; }
  .rv2-stamp--end .rv2-ticks { grid-area: ticks; margin: 0; }
  .rv2-body { padding-top: var(--sp-5); }
  .rv2-dossier { padding: 14px 16px 12px; }
  .rv2-facts > div { grid-template-columns: 6.4em minmax(0, 1fr); padding: 8px 0; }
  .rv2-verdict { margin-top: var(--sp-7); margin-inline: calc(var(--gutter) * -1) calc(var(--gutter-r) * -1); border-inline: 0; border-radius: 0; }
  .rv2-prose h2:not(.paedz-no-toc) { margin-top: 2.2em; }
}

@media (prefers-reduced-motion: reduce) {
  .rv2 *, .rv2 *::before, .rv2 *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
@media print {
  .rv2-art-bg, .rv2-index, .rv2 .toc-m { display: none !important; }
  .rv2-stamp { box-shadow: none; border: 1px solid #999; }
}

/* ------------------------------------------- 0.18.0 — framed reading area
   The reading column, game dossier, section index, final verdict and footer sit in one dark frame that matches the
   hero card above it (same surface, hairline and radius, same 1280px composition). Phones: a full-bleed band. */
.rv2 { --rv-frame: var(--rv-panel); --rv-frame-line: var(--line); }
.rv2 .rv2-body { background: var(--rv-frame); border-block: 1px solid var(--rv-frame-line); margin-top: var(--sp-5); padding-block: var(--sp-5) var(--sp-6); }
.rv2 .rv2-prose h2:not(.paedz-no-toc)::before { background: var(--rv-frame); }
.rv2 .rv2-verdict { background: var(--s1); }
.rv2 .rv2-foot { margin-top: var(--sp-6); }
.rv2 .rv2-foot .art-foot { margin-top: 0; }
@media (min-width: 760px) {
  .rv2 .rv2-body { width: var(--rv-hw); max-width: var(--rv-shell); margin: var(--sp-5) auto 0; padding: clamp(24px, 3vw, 44px); border: 1px solid var(--rv-frame-line); border-radius: 6px; }
  .rv2 .rv2-grid, .rv2 .rv2-verdict { max-width: none; }
  .rv2 .rv2-prose { max-width: 46rem; }
}
@media (min-width: 1100px) {
  /* reading measure 48rem + 320px side column; the space between them stays a steady gutter, not a hole */
  .rv2 .rv2-grid.has-aside { grid-template-columns: minmax(0, 48rem) 320px; column-gap: clamp(40px, 4vw, 72px); justify-content: space-between; }
  .rv2 .rv2-grid.has-aside .rv2-prose { max-width: 48rem; }
  .rv2 .rv2-grid:not(.has-aside) .rv2-prose { max-width: 48rem; margin-inline: auto; }
  .rv2 .rv2-verdict { margin-top: var(--sp-7); }
}
@media (max-width: 759px) {
  .rv2 .rv2-verdict { margin-inline: calc(var(--gutter) * -1) calc(var(--gutter-r) * -1); }
}
/* legacy fallback template (unrecognised review markup): the same frame around its reading grid */
.legacy-review .legacy-grid { background: var(--rv-panel, #0a0c0d); border: 1px solid var(--line); border-radius: 6px; padding: clamp(18px, 3vw, 40px); }
@media (max-width: 759px) { .legacy-review .legacy-grid { border-inline: 0; border-radius: 0; margin-inline: calc(var(--gutter) * -1) calc(var(--gutter-r) * -1); padding-inline: var(--gutter-r) var(--gutter); } }
