/* ============================================================
   PAGES-V2 — Leadership + Announcements in the V2 dark system.

   Everything structural, chromatic and typographic already lives in
   v2.css: the tokens, the glass nav, the buttons, the footer, the
   `[data-reveal]` entrance, the compact and reduced-motion blocks. This
   file holds ONLY the blocks those two pages add, in the same order the
   pages read.

   Directions chosen from the Figma boards (2026-09-22):
     Leadership     A · The spreads   (Figma 791:2)
     Announcements  C · The board     (Figma 793:269)
   ============================================================ */

/* ── the shared page header ──────────────────────────────────
   The landing page opens on a pinned hero, so its H1 is centred in a
   viewport. These pages have no hero: the header IS the top of the page,
   and it needs enough air above it to clear the floating nav without
   looking like it is hiding behind it. */
.phd{
  display:flex; flex-direction:column; align-items:center;
  gap:calc(30 * var(--s));
  padding:calc(212 * var(--s)) calc(120 * var(--s)) 0;
}
.phd__h1{
  margin:0; font-family:var(--serif); font-weight:400;
  font-size:calc(80 * var(--s)); line-height:.98; letter-spacing:-.03em;
  text-align:center; color:var(--ink);
}
/* the second line is the italic lilac one, exactly as on the landing page */
.phd__h1 em{ display:block; font-style:italic; color:var(--lilac); }
.phd__lead{
  margin:0; width:calc(760 * var(--s)); text-align:center;
  color:var(--body); font-size:calc(16 * var(--s)); line-height:1.55; letter-spacing:-.01em;
}

/* ── the plate ───────────────────────────────────────────────
   Every image on this site fades to EXACTLY the page colour rather than
   ending on an edge — the rule the hero bed had to learn. Until real
   photography exists these are gradient placeholders that already obey
   it, so dropping a photo in later changes the fill and nothing else. */
.plate{
  position:relative; overflow:hidden;
  background:linear-gradient(180deg, #1B1A19 0%, #131211 58%, var(--page) 100%);
}
.plate::after{
  content:attr(data-label);
  position:absolute; left:0; right:0; top:50%; transform:translateY(-50%);
  text-align:center; font-family:var(--mono); font-size:calc(10 * var(--s));
  letter-spacing:.12em; text-transform:uppercase; color:#52514D;
}

/* ============================================================
   LEADERSHIP — A · THE SPREADS
   ============================================================ */
.spreads{ padding-top:calc(130 * var(--s)); }
.spread{
  display:grid; align-items:center;
  grid-template-columns:calc(720 * var(--s)) 1fr;
  column-gap:calc(72 * var(--s));
}
.spread + .spread{ margin-top:calc(110 * var(--s)); }
/* 🔴 the flip swaps the COLUMNS, not the DOM order. Source order stays
   plate-then-copy on both so the reading order is right when the grid
   collapses on a phone. */
.spread--flip{ grid-template-columns:1fr calc(720 * var(--s)); }
.spread--flip .spread__plate{ grid-column:2; grid-row:1; }
.spread--flip .spread__copy{ grid-column:1; grid-row:1; }
.spread__plate{ height:calc(440 * var(--s)); }
.spread__copy{ padding-right:calc(120 * var(--s)); }
.spread--flip .spread__copy{ padding-right:0; padding-left:calc(120 * var(--s)); }
.spread__tag{
  margin:0 0 calc(16 * var(--s)); font-family:var(--mono);
  font-size:calc(11 * var(--s)); letter-spacing:.12em; color:var(--lilac);
}
.spread__name{
  margin:0 0 calc(14 * var(--s)); font-family:var(--serif); font-weight:400;
  font-size:calc(44 * var(--s)); line-height:1.08; letter-spacing:-.025em; color:var(--ink);
}
.spread__role{
  margin:0 0 calc(30 * var(--s)); font-family:var(--mono);
  font-size:calc(12 * var(--s)); line-height:1.5; letter-spacing:.06em; color:var(--muted);
}
.spread__bio{
  margin:0; color:var(--body); font-size:calc(15 * var(--s)); line-height:1.73;
}
.spread__bio + .spread__bio{ margin-top:calc(18 * var(--s)); }

/* ── the team ── */
.team{ padding:calc(150 * var(--s)) calc(120 * var(--s)) 0; }
.team__head{ display:flex; flex-direction:column; align-items:center; gap:calc(28 * var(--s)); }
.team__h2{
  margin:0; font-family:var(--serif); font-weight:400;
  font-size:calc(54 * var(--s)); line-height:1.06; letter-spacing:-.025em;
  text-align:center; color:var(--ink);
}
.team__h2 em{ display:block; font-style:italic; color:var(--lilac); }
.tgrid{
  display:grid; grid-template-columns:repeat(3, 1fr);
  column-gap:calc(30 * var(--s)); margin-top:calc(70 * var(--s));
}
.tcol__plate{ height:calc(440 * var(--s)); margin-bottom:calc(22 * var(--s)); }
.tcol__more{ display:none; }
.tgrid__hint{ display:none; align-items:center; gap:8px; margin:18px 0 0; font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.tgrid__hint i{ display:block; width:18px; height:4px; border-radius:2px; background:var(--hairline, #2A2A27); }
.tgrid__hint i:first-child{ background:var(--lilac); }
.tcol__n{
  margin:0 0 calc(10 * var(--s)); font-family:var(--mono);
  font-size:calc(11 * var(--s)); letter-spacing:.12em; color:var(--lilac);
}
.tcol__name{
  margin:0 0 calc(10 * var(--s)); font-family:var(--serif); font-weight:400;
  font-size:calc(26 * var(--s)); line-height:1.15; letter-spacing:-.02em; color:var(--ink);
}
.tcol__role{
  margin:0 0 calc(18 * var(--s)); font-family:var(--mono);
  font-size:calc(11 * var(--s)); line-height:1.55; letter-spacing:.08em; color:var(--muted);
}
.tcol__bio{ margin:0; color:var(--body); font-size:calc(14 * var(--s)); line-height:1.71; }

/* ============================================================
   ANNOUNCEMENTS — C · THE BOARD
   ============================================================ */
.feat{ position:relative; height:calc(540 * var(--s)); margin-top:calc(130 * var(--s)); }
.feat__inner{
  position:absolute; left:calc(120 * var(--s)); bottom:calc(70 * var(--s));
  width:calc(760 * var(--s));
}
.feat__year{
  margin:0 0 calc(18 * var(--s)); font-family:var(--mono); font-weight:500;
  font-size:calc(13 * var(--s)); letter-spacing:.10em; color:var(--lilac);
}
.feat__h2{
  margin:0 0 calc(18 * var(--s)); font-family:var(--serif); font-weight:400;
  font-size:calc(54 * var(--s)); line-height:1.07; letter-spacing:-.03em; color:var(--ink);
}
.feat__sub{ margin:0; color:var(--body); font-size:calc(16 * var(--s)); line-height:1.69; }

.agrid{
  display:grid; grid-template-columns:repeat(3, 1fr);
  gap:calc(24 * var(--s)); padding:calc(90 * var(--s)) calc(120 * var(--s)) 0;
}
/* the same glass as the nav pill, so the cards read as chrome belonging to
   this system rather than as widgets dropped onto it */
.acard{
  display:flex; flex-direction:column; border-radius:calc(20 * var(--s));
  padding:calc(28 * var(--s));
  background:linear-gradient(180deg, rgba(var(--glass-ink),.90), rgba(var(--glass-ink),.78));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.10);
  -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px);
}
.acard__year{
  margin:0 0 calc(14 * var(--s)); font-family:var(--mono); font-weight:500;
  font-size:calc(12 * var(--s)); letter-spacing:.10em; color:var(--lilac);
}
.acard__h3{
  margin:0 0 calc(14 * var(--s)); font-family:var(--serif); font-weight:400;
  font-size:calc(24 * var(--s)); line-height:1.2; letter-spacing:-.02em; color:var(--ink);
}
.acard__sub{ margin:0; color:var(--body); font-size:calc(14 * var(--s)); line-height:1.64; }
/* 🔑 `margin-top:auto` is what floors the chip. The cards are grid items in
   one row, so they are already equal height — the auto margin eats the
   slack so every chip in a row sits on the same line without pinning the
   headline to a fixed number of lines. */
.acard__chip{ margin-top:auto; padding-top:calc(26 * var(--s)); }
.chip{
  display:inline-block; font-family:var(--mono);
  font-size:calc(10 * var(--s)); letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted); border:1px solid var(--hairline); border-radius:calc(11 * var(--s));
  padding:calc(5 * var(--s)) calc(11 * var(--s));
}

/* the closing rule both pages end on, before the footer */
.pfoot{ padding:calc(130 * var(--s)) calc(120 * var(--s)) 0; }
.pfoot hr{ border:0; height:1px; background:var(--hairline); margin:0; }

/* ============================================================
   COMPACT — one column, no grids
   ============================================================ */
@media (max-width:1040px){
  .phd{ padding:132px 22px 0; gap:18px; }
  /* fluid, because these headlines are now full sentences: a fixed 38px
     fits a 390 phone and breaks a 360 one. */
  .phd__h1{ font-size:clamp(30px, 9.4vw, 40px); line-height:1.02; }
  .phd__lead{ width:auto; font-size:15px; }

  .spreads{ padding-top:60px; }
  .spread,.spread--flip{ grid-template-columns:1fr; row-gap:26px; }
  /* the flip's explicit grid placement has to be undone or the copy and
     the plate both land in column 1 row 1, on top of each other */
  .spread--flip .spread__plate,
  .spread--flip .spread__copy{ grid-column:1; grid-row:auto; }
  .spread + .spread{ margin-top:56px; }
  .spread__plate{ height:34svh; }
  .spread__copy,.spread--flip .spread__copy{ padding:0 22px; }
  .spread__tag{ font-size:11px; }
  .spread__name{ font-size:30px; }
  .spread__role{ margin-bottom:20px; font-size:12px; }
  .spread__bio{ font-size:15px; }
  .spread__bio + .spread__bio{ margin-top:16px; }

  .team{ padding:80px 22px 0; }
  .team__h2{ font-size:30px; }
  /* 2026-10-01: the team is a HORIZONTAL SWIPE on a phone, not a stack, so
     it reads differently from the two founder spreads above it. Cards are
     smaller (≈74% of the screen) and the next one peeks in to say "swipe". */
  .tgrid{ display:flex; gap:14px; margin:34px -22px 0; padding:0 22px 6px;
    overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory;
    scroll-padding-left:22px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .tgrid::-webkit-scrollbar{ display:none; }
  .tcol{ flex:0 0 74%; min-width:0; scroll-snap-align:start; }
  .tcol__plate{ height:auto; aspect-ratio:4 / 5; margin-bottom:14px; border-radius:14px; overflow:hidden; }
  /* the whole team column rides `--s` in the desktop rules, so on a phone
     it collapses to 8-10px. The ramp has to be restated, not scaled. */
  .tcol__n{ font-size:11px; margin-bottom:6px; }
  .tcol__name{ font-size:21px; margin-bottom:6px; }
  .tcol__role{ font-size:11px; margin-bottom:12px; }
  .tcol__bio{ font-size:13.5px; line-height:1.6; }
  .tcol__bio + .tcol__bio{ margin-top:10px; }
  /* 5 lines (13.5 × 1.6 = 21.6px) then a fade + View more; opens in place */
  .tcol__bios{ position:relative; max-height:108px; overflow:hidden; transition:max-height .45s var(--ease-io, ease); }
  .tcol__bios::after{ content:''; position:absolute; left:0; right:0; bottom:0; height:44px; background:linear-gradient(to bottom, rgba(10,10,10,0), var(--page, #0A0A0A)); pointer-events:none; transition:opacity .3s; }
  .tcol.is-open .tcol__bios{ max-height:900px; }
  .tcol.is-open .tcol__bios::after{ opacity:0; }
  .tcol__more{ display:inline-flex; align-items:center; gap:6px; margin:10px 0 0; padding:6px 0; border:0; background:none; cursor:pointer;
    font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--lilac); }
  .tcol__more::after{ content:'↓'; transition:transform .3s; }
  .tcol.is-open .tcol__more::after{ transform:rotate(180deg); }
  .tgrid{ align-items:flex-start; }
  .tgrid__hint{ display:flex; }

  .feat{ height:auto; margin-top:60px; padding-bottom:0; }
  .feat__inner{ position:static; width:auto; padding:0 22px; }
  .feat::before{ content:''; display:block; height:40svh; }
  .feat__year{ font-size:12px; margin-bottom:14px; }
  .feat__h2{ font-size:30px; }
  .feat__sub{ font-size:15px; }
  .agrid{ grid-template-columns:1fr; gap:16px; padding:50px 22px 0; }
  .acard{ padding:24px; }
  /* one card per row on a phone, so the card's own ramp has to be restated
     off `--s` exactly like the team column above */
  .acard__year{ font-size:12px; margin-bottom:12px; }
  .acard__h3{ font-size:22px; margin-bottom:12px; }
  .acard__sub{ font-size:15px; }
  .acard__chip{ padding-top:20px; }
  .chip{ font-size:11px; border-radius:12px; padding:6px 12px; }

  .pfoot{ padding:70px 22px 0; }
}

/* ============================================================
   REDUCED MOTION — nothing here animates by itself, but the shared
   `[data-reveal]` start-state is opacity 0 and must be released.
   ============================================================ */
@media (prefers-reduced-motion: reduce){
  .js [data-reveal]{ opacity:1 !important; transform:none !important; }
}

/* ============================================================
   2026-09-25 · real founder portraits + PRESS & POSTS
   ============================================================ */
.plate--photo::after{ display:none; }
.plate--photo picture,.plate--photo img{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.plate--photo{ background:#0F0F0D; }
/* the whole portrait, at the plate's (shorter) height — its edges are
   already this colour, so it sits in the plate without a seam */
.plate--photo img{ object-fit:contain; object-position:50% 100%;
  -webkit-mask-image:linear-gradient(to right, transparent 20%, #000 34%, #000 66%, transparent 80%), linear-gradient(to bottom, transparent, #000 14%);
  -webkit-mask-composite:source-in; mask-image:linear-gradient(to right, transparent 20%, #000 34%, #000 66%, transparent 80%), linear-gradient(to bottom, transparent, #000 14%); mask-composite:intersect; }

.press{ padding:calc(40 * var(--s)) calc(120 * var(--s)) 0; }
.press__head{ display:flex; align-items:center; justify-content:space-between; gap:calc(24 * var(--s)); margin-bottom:calc(32 * var(--s)); }
.press__label,.mlabel{
  margin:0; font-family:var(--mono); font-weight:500; font-size:calc(11 * var(--s));
  letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
}
.press__chips{ display:flex; flex-wrap:wrap; gap:calc(8 * var(--s)); }
/* desktop: the newsroom tabs sit CENTRED, the label stacked above them (user, 2026-09-28) */
@media (min-width:1040px){
  .press__head{ flex-direction:column; justify-content:center; gap:calc(16 * var(--s)); margin-bottom:calc(40 * var(--s)); }
}
.pchip{
  font-family:var(--mono); font-weight:500; font-size:calc(11 * var(--s)); letter-spacing:.06em;
  color:var(--ink); background:transparent; border:1px solid rgba(244,243,239,.2); border-radius:999px;
  padding:calc(8 * var(--s)) calc(14 * var(--s)); cursor:pointer; transition:background-color .3s var(--ease-io), color .3s var(--ease-io), border-color .3s;
}
.pchip:hover{ border-color:rgba(244,243,239,.45); }
.pchip.is-on{ background:var(--lilac); color:#0A0A0A; border-color:var(--lilac); }
/* Newsroom TABS (2026-09-28): In the news / FRND news. Same chips, reset as
   an underlined tab bar — the active tab is ink with a lilac rule. */
.ptabs{ gap:calc(6 * var(--s)); padding:calc(4 * var(--s)); border-radius:999px; background:#121210; box-shadow:inset 0 0 0 1px var(--hairline); }
.pchip.ptab{ border:0; background:transparent; color:var(--muted); display:inline-flex; align-items:center; gap:calc(10 * var(--s));
  font-size:calc(13 * var(--s)); padding:calc(11 * var(--s)) calc(20 * var(--s)); border-radius:999px; transition:background-color .35s var(--ease-io), color .35s var(--ease-io); }
.pchip.ptab:hover{ color:var(--ink); }
.pchip.ptab.is-on{ background:var(--ink); color:#0A0A0A; }
.ptab__n{ display:inline-grid; place-items:center; min-width:calc(22 * var(--s)); height:calc(22 * var(--s)); padding:0 calc(6 * var(--s)); border-radius:999px;
  font-family:var(--mono); font-size:calc(10.5 * var(--s)); letter-spacing:.04em; background:rgba(255,255,255,.08); color:inherit; }
.pchip.ptab.is-on .ptab__n{ background:rgba(10,10,10,.12); }
.pgrid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:calc(24 * var(--s)); }
.pcard{
  display:flex; flex-direction:column; border-radius:calc(20 * var(--s)); overflow:hidden; color:inherit;
  background:linear-gradient(180deg, rgba(var(--glass-ink),.90), rgba(var(--glass-ink),.78));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.pcard[hidden]{ display:none; }
.pcard__img,.pcard__quote{ display:block; aspect-ratio:16 / 10; overflow:hidden; background:#121210; }
.pcard__img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform 1.2s var(--ease); }
.pcard:hover .pcard__img img{ transform:scale(1.03); }
/* video + campaign-film cards carry a play affordance; the chip and the
   "Watch" label alone do not read as playable at thumbnail size. Cream on
   a scrim, same vocabulary as the rest of the page. */
.pcard__img{ position:relative; }
.pcard__play{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  display:grid; place-items:center;
  width:calc(52 * var(--s)); height:calc(52 * var(--s)); border-radius:999px;
  background:rgba(10,10,10,.52); box-shadow:inset 0 0 0 1px rgba(255,255,255,.34);
  color:var(--ink); font-size:calc(15 * var(--s)); padding-left:calc(3 * var(--s));
  backdrop-filter:blur(2px); transition:background .3s var(--ease), transform .3s var(--ease);
}
.pcard:hover .pcard__play{ background:rgba(10,10,10,.68); transform:translate(-50%,-50%) scale(1.06); }
.pcard__quote{
  display:flex; align-items:center; padding:0 calc(32 * var(--s)); background:#241E30;
  font-family:var(--serif); font-style:italic; font-size:calc(28 * var(--s)); line-height:1.12; letter-spacing:-.01em; color:var(--lilac);
}
.pcard__body{ display:flex; flex-direction:column; gap:calc(12 * var(--s)); padding:calc(24 * var(--s)); flex:1; }
.pcard__meta{ font-family:var(--mono); font-weight:500; font-size:calc(10 * var(--s)); line-height:1.5; letter-spacing:.10em; text-transform:uppercase; color:var(--lilac); }
.pcard__h3{ font-family:var(--serif); font-size:calc(23 * var(--s)); line-height:1.12; letter-spacing:-.01em; color:var(--ink); }
.pcard__sub{ color:var(--body); font-size:calc(14 * var(--s)); line-height:1.55; }
.pcard__foot{ margin-top:auto; padding-top:calc(10 * var(--s)); display:flex; align-items:center; justify-content:space-between; }
.pcard__go{ font-family:var(--mono); font-weight:500; font-size:calc(10 * var(--s)); letter-spacing:.10em; text-transform:uppercase; color:var(--ink); transition:color .3s; }
.pcard:hover .pcard__go{ color:var(--lilac); }
.mlabel{ padding:calc(96 * var(--s)) calc(120 * var(--s)) 0; margin-top:calc(96 * var(--s)); border-top:1px solid var(--hairline); }
.mlabel + .feat{ margin-top:calc(24 * var(--s)); height:calc(420 * var(--s)); }

@media (max-width:1039px){
  .press{ padding:24px 22px 0; }
  .press__head{ flex-direction:column; align-items:flex-start; gap:16px; margin-bottom:22px; }
  .press__label,.mlabel{ font-size:11px; }
  .pchip{ font-size:11px; padding:8px 13px; }
  .ptabs{ width:100%; display:grid; grid-template-columns:1fr 1fr; padding:4px; }
  .pchip.ptab{ justify-content:center; font-size:13px; padding:11px 10px; }
  .ptab__n{ min-width:20px; height:20px; font-size:10px; }
  .pgrid{ grid-template-columns:1fr; gap:18px; }
  .pcard{ border-radius:16px; }
  .pcard__quote{ font-size:24px; padding:0 26px; }
  .pcard__body{ padding:20px; gap:10px; }
  .pcard__meta,.pcard__go{ font-size:10px; }
  .pcard__h3{ font-size:22px; }
  .pcard__sub{ font-size:14px; line-height:23px; }
  .pcard__play{ width:44px; height:44px; font-size:13px; }
  .mlabel{ padding:64px 22px 0; margin-top:64px; }
  .mlabel + .feat{ margin-top:12px; }
}

/* ============================================================
   GET IN TOUCH — contact.html (2026-10-02, Figma 1108:4 / 1108:120)
   "Two doors": centred header (shared .phd), two equal inbox cards,
   then the landing CTA's dawn bloom bed fading up out of the page.
   ============================================================ */
.gt-hd{ padding-top:calc(196 * var(--s)); }
.gt{
  display:grid; grid-template-columns:repeat(2, calc(576 * var(--s)));
  justify-content:center; gap:calc(24 * var(--s));
  padding:calc(72 * var(--s)) calc(120 * var(--s)) 0;
  position:relative; z-index:1;
}
.gt__card{
  position:relative; overflow:hidden;
  display:flex; flex-direction:column; align-items:flex-start;
  min-height:calc(400 * var(--s));
  padding:calc(40 * var(--s));
  background:#191916; border:1px solid rgba(255,255,255,.08);
  border-radius:calc(28 * var(--s));
}

.gt__k{
  margin:0; font-family:var(--mono); font-size:calc(11 * var(--s)); font-weight:500;
  letter-spacing:.18em; text-transform:uppercase; color:var(--muted);
}
.gt__t{
  margin:calc(20 * var(--s)) 0 0; font-family:var(--serif); font-weight:400;
  font-size:calc(44 * var(--s)); line-height:1.09; color:var(--ink);
}
.gt__d{
  margin:calc(16 * var(--s)) 0 0; max-width:calc(470 * var(--s));
  font-size:calc(15 * var(--s)); line-height:1.53; color:var(--body);
}
.gt__e{
  margin-top:auto; padding-top:calc(28 * var(--s));
  font-family:var(--serif); font-style:italic; font-size:calc(48 * var(--s)); line-height:1.08;
  color:var(--lilac); text-decoration:none; letter-spacing:-.01em;
  transition:opacity .25s ease;
}
.gt__e:hover{ opacity:.8; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.12em; }
.gt__acts{ display:flex; flex-wrap:wrap; gap:calc(10 * var(--s)); margin-top:calc(28 * var(--s)); }
.gt__copy{ cursor:pointer; font-family:var(--sans); }
.gt__copy.is-done{ border-color:var(--lilac); color:var(--lilac); }
/* the closing bed: the landing CTA's dawn bloom, rising out of the page */
.gt-bed{
  position:relative; height:calc(520 * var(--s)); margin-top:calc(36 * var(--s));
  overflow:hidden; pointer-events:none;
}
.gt-bed img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 100%; display:block; }
/* the loop: same box + same cover-crop as the still; top masked away so the
   sky and glow never swim (the landing .cta__bed recipe). The fade sits on
   top of both. */
.gt-bed__loop{
  position:absolute; inset:0; overflow:hidden;
  -webkit-mask-image:linear-gradient(to bottom, transparent 34%, #000 58%);
          mask-image:linear-gradient(to bottom, transparent 34%, #000 58%);
}
.gt-bed__loop .cta__loop{ object-position:50% 100%; }
.gt-bed::after{ z-index:1; 
  content:""; position:absolute; left:0; right:0; top:0; height:58%;
  background:linear-gradient(180deg, var(--page) 0%, rgba(10,10,10,0) 100%);
}

@media (max-width:1040px){
  .gt-hd{ padding-top:124px; }
  .gt{ grid-template-columns:1fr; gap:20px; padding:40px 16px 0; }
  .gt__card{ min-height:0; padding:24px; border-radius:24px; }
  .gt__k{ font-size:10px; }
  .gt__t{ margin-top:14px; font-size:32px; line-height:1.12; }
  .gt__d{ margin-top:10px; font-size:14px; line-height:1.5; }
  .gt__e{ margin-top:0; padding-top:26px; font-size:34px; }
  .gt__acts{ flex-direction:column; align-items:flex-start; gap:8px; margin-top:18px; }
  .gt-bed{ height:300px; margin-top:20px; }
}

/* A newsroom item with no photograph — a press release rather than coverage.
   Instead of a stock image it gets a masthead panel naming the document, in
   the page's own serif. Same box as .pcard__img so the grid never jumps. */
.pcard__img--mast{
  display:flex; align-items:center; justify-content:center; text-align:center;
  padding:0 calc(28 * var(--s));
  background:#17161B;
  box-shadow:inset 0 0 0 1px var(--hairline);
}
.pcard__img--mast span{
  font-family:var(--serif); font-weight:400; font-style:italic;
  font-size:calc(30 * var(--s)); line-height:1.1; letter-spacing:-.02em;
  color:var(--lilac);
}
@media (max-width:1040px){
  .pcard__img--mast{ padding:0 20px; }
  .pcard__img--mast span{ font-size:24px; }
}
