/* The SAME markup as the page, re-laid as one A4 sheet.
 *
 * This is not the website at a narrower width — it is a real A4 grid, in mm and
 * pt, and every block has an explicit height budget. The budget for 297mm at a
 * 13mm margin is 271mm of content; if you add a block you must take the mm out
 * of another one, and `node epk/build-pdf.mjs --verify` fails the build when the
 * result is not exactly 1 page. That check is the only thing standing between
 * "looks fine in the preview" and a two-page press kit.
 *
 * Loaded with media="print" so it also drives Chrome's --print-to-pdf.
 */
@page{size:A4;margin:0}
html,body{margin:0;padding:0}
body{
  background:#05090a;color:#dfe8e5;
  /* Chrome drops every background and every light-on-dark colour unless this is
     set. Without it the whole sheet prints as black text on white — the exact
     failure that makes a dark press kit look broken rather than deliberate. */
  -webkit-print-color-adjust:exact;print-color-adjust:exact;
}
.sheet{
  width:210mm;height:297mm;max-width:none;
  padding:13mm 14mm 13mm;margin:0;
  display:flex;flex-direction:column;
  overflow:hidden;                 /* a one-page sheet may never spill */
}

/* screen-only furniture */
.no-print,.dl{display:none !important}

/* The screen backdrop is `position:fixed`, which in a print context is painted
   once per page and pinned to the paper rather than to the layout. Off, and
   re-hung inside the sheet instead. */
body::before{display:none !important}
.sheet::before{
  content:"";position:absolute;z-index:0;pointer-events:none;
  /* Hung below the photo strip on purpose: the strip is opaque and full-width,
     so anything behind its band is simply not on the page. From 88mm down the
     right column is empty all the way to the Live block, and that is the only
     place a full-height figure can actually be seen. */
  /* Moved in off the right edge (Dave, 2026-09-01) so the whole figure is on
     the sheet, and still hung below the strip's opaque band. */
  top:86mm;right:14mm;width:98mm;height:194mm;
  background:url(../img/seal-drawing.svg) right center/contain no-repeat;
  /* The 87 paths are filled, not stroked, and were black — see epk.css. Now
     that they are white this reads far stronger than the .20 it replaces,
     despite the lower number. */
  opacity:.13;
}
.sheet > *{position:relative;z-index:1}

.masthead{padding-bottom:3.2mm;border-bottom:.25pt solid rgba(143,163,164,.30)}
.mark{width:38mm}
.tele{font-size:6pt;letter-spacing:.2em}

.strip{grid-template-columns:repeat(4,1fr);gap:1.8mm;margin:4.6mm 0 5.2mm;height:80mm}
.strip img{height:100%;aspect-ratio:auto}
.strip figure:first-child img{aspect-ratio:auto}

.display{font-size:28pt;line-height:.88;margin:0 0 3.4mm;letter-spacing:-.035em}
.narr{font-size:9.2pt;line-height:1.46;margin:0 0 2.1mm;max-width:122mm;color:#c9d6d3}

.block{margin:0 0 3.8mm}
.block > h2{margin:0 0 2.4mm}
.cols{display:grid;grid-template-columns:1.15fr 1fr;gap:9mm}

.rel li{font-size:8.8pt;padding:1.6mm 0;border-bottom:.25pt solid rgba(143,163,164,.22)}
.rel .t span{font-size:8pt}
.rel .d{font-size:6pt}

.facts{font-size:8.8pt}
.facts li{padding:1.6mm 0;border-bottom:.25pt solid rgba(143,163,164,.22)}
.facts b{font-size:6pt;width:19mm;padding-top:.5mm}

/* The aside pairs the fourth photo with the video's poster frame — a <video>
   prints as its poster, which is what is wanted on paper.
   ⚠ Its height is PINNED, and that is not cosmetic. Left to their 3:4 and 9:16
   ratios at half the sheet's width these two are ~160mm tall each; they pushed
   the releases, the links and the contact block off the bottom, and because
   .sheet is overflow:hidden they did not spill onto a second page — they were
   silently cut off, with build-pdf.mjs still reporting a happy 1 page. That is
   why the build now also asserts the contact block survived. */
/* The zig-zag flattens to two compact bands, and the VIDEO ROW LOSES ITS MEDIA
   entirely (Dave, 2026-09-01): a poster frame of a clip that paper cannot play
   is a picture pretending to be a feature, and those millimetres buy a bigger
   photograph instead. So row two is text only and runs the full measure. */
.zig{gap:3.4mm;margin:0 0 4.4mm}
.zig{display:grid}
.zrow{display:grid;grid-template-columns:48mm 1fr;gap:5.5mm;align-items:start}
.zmedia img{height:54mm;aspect-ratio:auto;object-fit:cover}
/* Row two keeps its TEXT and loses its media. The Live facts live here now, so
   the row cannot go entirely — but a still of a clip paper cannot play is a
   picture pretending to be a feature, and the caption under it is about the
   clip, so `.fine` stays hidden. The video is named once in the contact line. */
.zrow.rev{grid-template-columns:1fr}
.zrow.rev .ztext{max-width:112mm}
.zrow.rev .zmedia{display:none}
.ztext h2{margin:0 0 1.6mm}
.ztext .narr{margin:0;max-width:none}
/* Both of these are print-side overrides of an epk.css default, and both were
   lost twice to careless block edits of this file — .fine hidden, .print-only
   shown. Losing the second is silent: the sheet just quietly stops naming the
   video and the press kit. */
.fine{display:none}
.print-only{display:block;margin-top:1mm}

.links{gap:1.4mm}
.links a{font-size:7pt;padding:1.6mm 3mm;border:.25pt solid rgba(143,163,164,.30);color:#8fa3a4}

/* The contact block is pinned to the foot of the sheet rather than following
   the flow: it is the one thing a promoter has to find in two seconds, and on a
   one-pager "bottom of the page" is a more reliable address than "after the
   links". margin-top:auto does it, which is why .sheet is a flex column. */
.contact{margin-top:auto;border-top:.25pt solid rgba(143,163,164,.30);padding-top:2.8mm}
.contact .mail{font-size:13pt;margin:.8mm 0 .6mm;color:#3fdcaa}

a{text-decoration:none}
