/* Investor Relations pages: section menu, company overview and profile cards.
   Shared by investor-relations.html and the ir-*.html sub pages. */

/* Hero: heading centred, as on most IR sites. */
.ir-hero .wrap { text-align: center; }
.ir-hero .kicker { justify-content: center; }
.ir-hero h1 { margin-left: auto; margin-right: auto; }
.ir-hero p { margin-left: auto; margin-right: auto; }

/* Section menu under the hero. Hover or keyboard focus opens a group; on narrow
   screens every link is listed flat in one scrolling row. */
.irnav { position: relative; z-index: 20; background: #0a1512; border-bottom: 1px solid rgba(255,255,255,.08); }
.irnav__in { display: flex; justify-content: center; align-items: stretch; gap: 0; }
.irnav__a { display: flex; align-items: center; gap: 7px; padding: 0 22px; min-height: 58px;
  font: 600 15px/1 "Space Grotesk", sans-serif; letter-spacing: -.1px;
  color: rgba(255,255,255,.88); text-decoration: none; white-space: nowrap; transition: background .18s ease, color .18s ease; }
.irnav__a:hover, .irnav__a:focus-visible { color: #fff; background: rgba(255,255,255,.06); }
/* the current section is a solid block, as on the Climb and AVAX One IR sites */
.irnav__a.is-on { color: #fff; background: #10A37E; }
.irnav__caret { font-size: 9px; opacity: .7; }
.irnav__item { position: relative; }
.irnav__drop { position: absolute; top: 100%; left: 0; min-width: 220px; padding: 8px 0;
  background: #0a1512; border: 1px solid rgba(255,255,255,.1); border-top: 0;
  opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .18s ease, transform .18s ease, visibility .18s; }
.irnav__item:hover .irnav__drop, .irnav__item:focus-within .irnav__drop { opacity: 1; visibility: visible; transform: none; }
.irnav__drop a { display: block; padding: 11px 22px; font-size: 15px; color: rgba(236,231,221,.82); text-decoration: none; }
.irnav__drop a:hover, .irnav__drop a:focus-visible, .irnav__drop a.is-on { color: #fff; background: rgba(16,163,126,.16); }
.irnav__flat { display: none; }
@media (max-width: 900px) {
  .irnav__in { justify-content: flex-start; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .irnav__in::-webkit-scrollbar { display: none; }
  .irnav__item, .irnav__in > .irnav__a { display: none; }
  .irnav__in > .irnav__a.irnav__flat { display: flex; }
  .irnav__a { padding: 15px 14px; }
}

/* Company overview: the first section of the page. */
.ir-about { display: grid; grid-template-columns: 1fr 1.6fr; gap: 56px; align-items: start; }
.ir-about .kicker { color: var(--emerald); }
.ir-about h2 { margin-top: 14px; }
.ir-about p { font-size: 18px; line-height: 1.75; color: rgba(7,7,7,.76); }
@media (max-width: 980px) { .ir-about { grid-template-columns: 1fr; gap: 22px; } }

/* Section head with a "see all" link on the right. */
.ir-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px 32px; flex-wrap: wrap; margin-bottom: 34px; }
.ir-head .kicker { color: var(--emerald); }
.ir-head h2 { margin-top: 14px; }
.ir-more { font: 500 11px/1 "IBM Plex Mono", monospace; letter-spacing: 1.6px; text-transform: uppercase;
  color: var(--emerald); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 3px; }
.ir-more:hover { color: var(--ink); }

/* Profile cards: a large headshot, then name, role, optional bio and LinkedIn. */
.irp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.irp-grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1100px) { .irp-grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px) { .irp-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; } }
.irp { display: flex; flex-direction: column; background: #fff; border: 1px solid rgba(7,7,7,.12); }
.irp__img { width: 128px; height: 128px; margin: 22px 22px 0; overflow: hidden; background: #ecebe7;
  border: 1px solid rgba(7,7,7,.1); }
.irp__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.irp__body { display: flex; flex-direction: column; gap: 8px; padding: 22px 22px 24px; flex: 1; }
.irp__code { align-self: flex-start; font: 600 9px/1 "IBM Plex Mono", monospace; letter-spacing: 1.4px;
  color: var(--bone); background: var(--emerald); padding: 5px 7px; }
.irp__name { margin-top: 6px; font-size: 21px; font-weight: 600; letter-spacing: -.4px; line-height: 1.2; }
.irp__role { font-size: 14px; font-weight: 500; color: var(--emerald); }
.irp__bio { margin-top: 6px; font-size: 15px; line-height: 1.65; color: rgba(7,7,7,.7); }
.irp__in { margin-top: auto; padding-top: 12px; display: inline-flex; align-items: center; gap: 7px; align-self: flex-start;
  font: 500 11px/1 "IBM Plex Mono", monospace; letter-spacing: 1.4px; text-transform: uppercase;
  color: var(--ink); text-decoration: none; }
.irp__in:hover { color: var(--emerald); }
.irp__in svg { flex: 0 0 auto; }
.irp-sub { margin-top: 64px; }
.irp-note { margin-top: 12px; max-width: 46em; font-size: 15px; line-height: 1.6; color: #5B5B57; }

/* From investor-relations.html: press cards, contact and notes. */
/* Investor Relations. Banner, intro, latest press,
   leadership and board in the About page's card format. */
.ir-sec, .ir-sec.bp { min-height: 0; display: block; padding: clamp(64px, 8vw, 104px) 0; }
.ir-h { font-size: clamp(28px, 3.4vw, 42px); letter-spacing: -1px; line-height: 1.1; }
.ir-intro { display: grid; grid-template-columns: 1fr 1.4fr; gap: 56px; align-items: start; }
.ir-intro p { font-size: 18px; line-height: 1.75; color: rgba(7,7,7,.74); }
.ir-intro p + p { margin-top: 16px; }
.ir-pres-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px 32px; }
.ir-pres-head .kicker { color: var(--emerald); }
.ir-pres-head h2 { margin-top: 14px; }
.ir-pres-head p { margin-top: 10px; font-size: 16px; line-height: 1.6; color: rgba(7,7,7,.66); }
.ir-pres-head .ir-btns { margin-top: 0; }
/* The frame is sized from the viewport height so the 16:9 stage always matches
   the slide exactly. Clamping the height alone left the stage wider than 16:9,
   and the contained slide then sat between two dead bars. */
/* Deck: aside on the left, slide on the right. */

/* The slide is the thing. No frame around it beyond its own edge and a shadow,
   and the stage is exactly 16:9 so nothing is letterboxed. */



.ir-btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.ir-btns .btn--ghost { clip-path: none; color: var(--ink); border-color: rgba(7,7,7,.35); }
.ir-btns .btn--ghost:hover { color: var(--emerald); border-color: var(--emerald); }
.ir-press-head { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.ir-press-all { font: 500 11px/1 "IBM Plex Mono", monospace; letter-spacing: 1.6px; text-transform: uppercase;
  color: var(--emerald); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 3px; }
.ir-press-all:hover { color: var(--ink); }
/* auto-fit with a hard max keeps one release the size of a card instead of
   stretching it across the row, and lines up cleanly as more are added */
.ir-press { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 380px)); gap: 22px; margin-top: 34px; }
.ir-pr { display: flex; flex-direction: column; background: #fff; border: 1px solid rgba(7,7,7,.12); color: var(--ink);
  text-decoration: none; transition: border-color .2s, transform .2s, box-shadow .2s; }
.ir-pr:hover { border-color: var(--emerald); transform: translateY(-3px); box-shadow: 0 14px 30px rgba(7,7,7,.08); }
.ir-pr__img { aspect-ratio: 16 / 9; overflow: hidden; background: #e9e6df; }
.ir-pr__img img { width: 100%; height: 100%; object-fit: cover; display: block; filter: grayscale(.15); }
/* a release thumbnail is artwork, not a photograph, so it keeps its own colour */
.ir-pr--release .ir-pr__img img { filter: none; }
.ir-pr__body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.ir-pr__meta { font: 500 10px/1.4 "IBM Plex Mono", monospace; letter-spacing: 1.6px; text-transform: uppercase; color: var(--emerald); }
.ir-pr__t { font-size: 19px; font-weight: 600; line-height: 1.3; letter-spacing: -.3px; }
.ir-pr__go { margin-top: auto; font-size: 13px; color: rgba(7,7,7,.6); }
.ir-team-head { margin-bottom: 32px; }
.ir-team-head .kicker { color: var(--emerald); }
.ir-team-head h2 { margin-top: 14px; }
.ir-contact { margin: 0; padding-top: 26px; border-top: 1px solid rgba(7,7,7,.14); font-size: 18px; letter-spacing: -.2px; color: #070707; }
.ir-contact a { color: var(--emerald, #10A37E); }
.ir-cta-sec { min-height: 0; display: block; padding: 0 0 clamp(64px, 8vw, 104px); }
.ir-cta-box { position: relative; overflow: hidden; display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; align-items: center;
  padding: clamp(36px, 5vw, 64px); background: #0a1512; color: #fff;
  clip-path: polygon(0 0, calc(100% - 28px) 0, 100% 28px, 100% 100%, 0 100%); }
.ir-cta-box::before { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background-image: linear-gradient(rgba(16,163,126,.14) 1px, transparent 1px), linear-gradient(90deg, rgba(16,163,126,.14) 1px, transparent 1px);
  background-size: 44px 44px; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 70%); mask-image: linear-gradient(90deg, transparent 0%, #000 70%); }
.ir-cta-box::after { content: ''; position: absolute; right: -120px; bottom: -160px; width: 420px; height: 420px; border-radius: 50%;
  background: radial-gradient(circle, rgba(16,163,126,.35), transparent 65%); pointer-events: none; }
.ir-cta-box > * { position: relative; z-index: 1; }
.ir-cta-box .kicker { color: var(--signal); }
.ir-cta-box h2 { margin-top: 14px; font-size: clamp(30px, 3.6vw, 48px); line-height: 1.08; letter-spacing: -1.2px; }
.ir-cta-box p { margin-top: 14px; max-width: 520px; font-size: 16px; line-height: 1.65; color: rgba(255,255,255,.74); }
.ir-cta-act { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; justify-self: end; }
.ir-cta-act .btn--ghost { clip-path: none; color: #fff; border-color: rgba(255,255,255,.4); }
.ir-cta-act .btn--ghost:hover { border-color: var(--signal); color: var(--signal); }
.ir-cta-mail { font: 500 12px/1.4 "IBM Plex Mono", monospace; letter-spacing: 1px; color: rgba(255,255,255,.6); }
.ir-cta-mail a { color: #fff; }
.ir-note { margin-top: 18px; font-size: 12px; line-height: 1.6; color: rgba(7,7,7,.55); max-width: 60em; }
@media (max-width: 900px) { .ir-cta-box { grid-template-columns: 1fr; gap: 26px; } .ir-cta-act { justify-self: start; } }
@media (max-width: 980px) { .ir-intro { grid-template-columns: 1fr; gap: 24px; } .ir-press { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .ir-press { grid-template-columns: 1fr; } }

/* Phones, last so it wins over the card rules above. */
@media (max-width: 560px) {
  .irp-grid, .irp-grid--4 { grid-template-columns: 1fr; gap: 14px; }
  /* phones: headshot beside the text instead of a full-width photo */
  .irp { flex-direction: row; align-items: flex-start; }
  .irp__img { flex: 0 0 88px; width: 88px; height: 88px; margin: 14px 0 14px 14px; }
  .irp__body { padding: 14px 16px 16px; gap: 6px; min-width: 0; }
  .irp__name { margin-top: 2px; font-size: 18px; }
  .irp__role { font-size: 13px; }
  .irp__bio { font-size: 14px; margin-top: 2px; }
  .irp__in { padding-top: 8px; }
}

/* Simple text and contact blocks on the IR sub pages. */
.ir-text { max-width: 46em; font-size: 18px; line-height: 1.7; color: rgba(7,7,7,.76); }
.ir-text a { color: var(--emerald); }
.ir-contacts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ir-ct { padding: 22px 22px 24px; background: #fff; border: 1px solid rgba(7,7,7,.12); }
.ir-ct__k { font: 500 10px/1.4 "IBM Plex Mono", monospace; letter-spacing: 1.6px; text-transform: uppercase; color: var(--emerald); }
.ir-ct__v { margin-top: 10px; font-size: 17px; line-height: 1.6; color: #070707; }
.ir-ct__v a { color: var(--emerald); }
@media (max-width: 900px) { .ir-contacts { grid-template-columns: 1fr; } }

/* Overview buttons under the company description. */
.ir-btns--overview { margin-top: 26px; }

/* Email alerts: a full-width banner, prominent as in the Elevate IR example. */
.ir-alerts-sec { display: block; min-height: 0; background: var(--bone); padding: clamp(56px, 7vw, 88px) 0; }
.ir-alerts { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
  padding: clamp(28px, 4vw, 44px) clamp(24px, 4vw, 52px); background: #0A4938; color: #fff; text-decoration: none; transition: background .2s ease; }
.ir-alerts:hover { background: #0c5a45; }
.ir-alerts__t { display: block; font-size: clamp(26px, 3vw, 36px); font-weight: 600; letter-spacing: -.8px; line-height: 1.1; }
.ir-alerts__s { display: block; margin-top: 8px; font-size: 16px; color: rgba(255,255,255,.82); }
.ir-alerts__btn { flex: 0 0 auto; padding: 14px 26px; border: 1px solid rgba(255,255,255,.6);
  font: 600 13px/1 "IBM Plex Mono", monospace; letter-spacing: 1.4px; text-transform: uppercase; }
.ir-alerts:hover .ir-alerts__btn { background: #fff; color: #0A4938; }

/* Contacts block at the foot of every IR page. */
.ir-contact-sec { padding-top: clamp(48px, 6vw, 80px); border-top: 1px solid rgba(7,7,7,.1); }
.ir-contact-sec--note { padding-top: 0; border-top: 0; }
.ir-contacts--2 { grid-template-columns: repeat(2, minmax(0, 420px)); }
.ir-contact-sec .ir-note { margin-top: 28px; }
@media (max-width: 900px) { .ir-contacts--2 { grid-template-columns: 1fr; } }

/* Presentations list (Climb-style row: thumbnail, date, title, view and download). */
.ir-decks { display: grid; gap: 22px; max-width: 980px; }
.ir-deck { display: grid; grid-template-columns: 300px 1fr; gap: 28px; align-items: center; padding: 22px; background: #fff; border: 1px solid rgba(7,7,7,.12); }
.ir-deck__thumb { aspect-ratio: 16 / 9; display: flex; flex-direction: column; justify-content: space-between; padding: 16px 18px;
  background: #0a1512; color: #fff; border: 1px solid rgba(7,7,7,.12); }
.ir-deck__thumb b { font-size: 22px; letter-spacing: -.4px; }
.ir-deck__thumb span { font: 500 9px/1.3 "IBM Plex Mono", monospace; letter-spacing: 1.4px; text-transform: uppercase; color: #2EE6A8; }
.ir-deck__meta { font: 500 10px/1.4 "IBM Plex Mono", monospace; letter-spacing: 1.6px; text-transform: uppercase; color: var(--emerald); }
.ir-deck__t { margin-top: 8px; font-size: 22px; font-weight: 600; letter-spacing: -.4px; line-height: 1.25; }
.ir-deck__links { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 12px; }
.ir-deck__tag { display: inline-block; margin-top: 12px; padding: 4px 8px; background: #FFF4D6; color: #7A5A00;
  font: 500 10px/1.3 "IBM Plex Mono", monospace; letter-spacing: 1px; text-transform: uppercase; }
@media (max-width: 760px) { .ir-deck { grid-template-columns: 1fr; gap: 18px; } }
.ir-deck__links .btn--ghost { clip-path: none; color: var(--ink); border-color: rgba(7,7,7,.35); }

/* Company Info is one page: the menu scrolls to each section, clear of the floating header. */
html { scroll-behavior: smooth; }
.ir-anchor { scroll-margin-top: 84px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Company overview: photo beside a description card, then a row of key facts. */
.ir-ov { display: grid; grid-template-columns: 1fr 1.15fr; gap: 0; align-items: stretch;
  background: #fff; border: 1px solid rgba(7,7,7,.12); }
.ir-ov__media { position: relative; margin: 0; min-height: 360px; overflow: hidden; background: #0a1512; }
.ir-ov__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ir-ov__media figcaption { position: absolute; left: 16px; bottom: 14px; padding: 6px 10px; background: rgba(7,7,7,.66); color: #fff;
  font: 500 10px/1.3 "IBM Plex Mono", monospace; letter-spacing: 1.2px; text-transform: uppercase; }
.ir-ov__card { display: block; padding: clamp(28px, 4vw, 52px); }
.ir-ov__card .ir-h { margin-top: 0; }
.ir-ov__card .ir-desc { margin-top: 18px; }
.ir-ov__card .ir-desc p { font-size: 16.5px; line-height: 1.75; }
.ir-facts { margin-top: 22px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ir-fact { display: flex; flex-direction: column; gap: 8px; padding: 20px 22px; background: #fff; border: 1px solid rgba(7,7,7,.12);
  border-top: 3px solid #10A37E; }
.ir-fact__k { font: 500 10px/1.3 "IBM Plex Mono", monospace; letter-spacing: 1.6px; text-transform: uppercase; color: var(--emerald); }
.ir-fact__v { font-size: 16px; font-weight: 500; line-height: 1.45; color: #070707; }
.ir-ov > *, .ir-facts > * { min-width: 0; }
.ir-ov__card .ir-desc p, .ir-fact__v { overflow-wrap: break-word; }
@media (max-width: 980px) { .ir-ov { grid-template-columns: minmax(0, 1fr); } .ir-ov__media { min-height: 0; aspect-ratio: 16 / 9; } .ir-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ir-facts { grid-template-columns: minmax(0, 1fr); } .ir-ov__card { padding: 24px 20px; } }

/* Press releases list (Climb layout): filters, then date over title with a dashed rule. */
.ir-filters { display: flex; flex-wrap: wrap; gap: 16px 24px; margin-bottom: 28px; }
.ir-filter { display: flex; flex-direction: column; gap: 6px; min-width: 200px; }
.ir-filter span { font: 500 10px/1.3 "IBM Plex Mono", monospace; letter-spacing: 1.6px; text-transform: uppercase; color: var(--emerald); }
.ir-filter select { padding: 11px 12px; font: 500 15px/1.2 "Space Grotesk", sans-serif; color: #070707; background: #fff;
  border: 1px solid rgba(7,7,7,.25); border-radius: 0; }
.ir-prlist { list-style: none; margin: 0; padding: 0; max-width: 980px; border-top: 1px dashed rgba(7,7,7,.25); }
.ir-prlist__item { padding: 22px 0; border-bottom: 1px dashed rgba(7,7,7,.25); }
.ir-prlist__date { font: 500 12px/1.4 "IBM Plex Mono", monospace; letter-spacing: 1px; color: rgba(7,7,7,.6); }
.ir-prlist__t { display: inline-block; margin-top: 8px; font-size: 20px; font-weight: 600; line-height: 1.35; letter-spacing: -.3px;
  color: #070707; text-decoration: none; }
.ir-prlist__t:hover { color: var(--emerald); text-decoration: underline; text-underline-offset: 4px; }

/* Email alerts page (Climb layout): one column of stacked fields, notifications in two columns. */
.ir-alerts-page { max-width: 830px; margin: 0 auto; }
.ir-alertform { margin-top: 26px; }
.ea-field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; max-width: 404px; }
.ea-field--select { max-width: 230px; }
.ea-field label { font-size: 14px; color: #070707; }
.ea-field input, .ea-field select { width: 100%; padding: 13px 14px; font: 400 16px/1.2 "Space Grotesk", sans-serif; color: #070707;
  background: #fff; border: 1px solid rgba(7,7,7,.22); border-radius: 0; }
.ea-field input:focus, .ea-field select:focus { outline: 2px solid #10A37E; outline-offset: 0; border-color: #10A37E; }
.ea-h { margin: 34px 0 18px; font-size: 26px; font-weight: 600; letter-spacing: -.4px; }
.ea-notif { display: grid; grid-template-columns: 220px 1fr; gap: 24px 36px; margin-bottom: 26px; }
.ea-col__h { font-size: 16px; letter-spacing: 1.6px; text-transform: uppercase; line-height: 1.6; margin-bottom: 14px; color: #070707; }
.ea-notif label { display: flex; align-items: center; gap: 10px; padding: 5px 0; font-size: 14px; color: rgba(7,7,7,.8); cursor: pointer; }
.ea-sub { padding-left: 20px; }
.ea-submit { min-width: 210px; justify-content: center; clip-path: none; color: var(--emerald); border-color: var(--emerald); }
.ea-submit:hover { background: var(--emerald); color: #fff; }
.ea-privacy { margin-top: 30px; font-size: 16px; }
@media (max-width: 560px) { .ea-notif { grid-template-columns: 1fr; } .ea-field, .ea-field--select { max-width: none; } }

/* Email alerts: undo the contact form's boxed look and uppercase labels for this Climb-style layout. */
.cform.ir-alertform { background: transparent; border: 0; padding: 0; }
.ir-alertform .ea-field label { display: block; margin: 0; font: 400 14px/1.4 "Space Grotesk", sans-serif; letter-spacing: 0; text-transform: none; color: #070707; }
.ir-alertform .ea-notif label, .ir-alertform label.consent { display: flex; align-items: center; gap: 10px; margin: 0;
  font: 400 14px/1.45 "Space Grotesk", sans-serif; letter-spacing: 0; text-transform: none; color: rgba(7,7,7,.8); }
.ir-alertform label.consent { align-items: flex-start; margin: 4px 0 24px; max-width: 620px; }
.ir-alertform input[type="checkbox"] { flex: 0 0 auto; width: 16px; height: 16px; padding: 0; margin: 2px 0 0; accent-color: #0A4938; }
.ir-alertform .ea-submit { width: auto; margin-top: 0; padding: 15px 26px; background: transparent; font: 600 16px/1 "Space Grotesk", sans-serif;
  letter-spacing: 0; text-transform: none; border: 1px solid var(--emerald); color: var(--emerald); }
.ir-alertform .ea-submit:hover { background: var(--emerald); color: #fff; }

/* Bio rows (management team and board): headshot on the left, name, title, full bio and LinkedIn on the right. */
.irb-list { display: grid; gap: 0; max-width: 1080px; border-top: 1px solid rgba(7,7,7,.12); }
.irb { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 32px; padding: 32px 0; border-bottom: 1px solid rgba(7,7,7,.12); }
.irb__img { width: 150px; height: 150px; overflow: hidden; background: #ecebe7; border: 1px solid rgba(7,7,7,.1); }
.irb__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.irb__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.irb__name { margin-top: 8px; font-size: 24px; font-weight: 600; letter-spacing: -.5px; line-height: 1.2; }
.irb__role { font-size: 15px; font-weight: 500; color: var(--emerald); }
.irb__bio { margin-top: 10px; font-size: 16px; line-height: 1.75; color: rgba(7,7,7,.76); max-width: 62em; }
.irb .irp__in { margin-top: 12px; padding-top: 0; }
@media (max-width: 640px) { .irb { grid-template-columns: 1fr; gap: 16px; padding: 26px 0; } .irb__img { width: 112px; height: 112px; } }

/* Leadership cards: black-and-white portraits, colour on hover; the full bio opens in a dialog. */
.ldr-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 36px 28px; }
.ldr-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1080px; }
.ldr-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1000px) { .ldr-grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .ldr-grid--3, .ldr-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; } }
.ldr__btn { display: flex; flex-direction: column; align-items: flex-start; width: 100%; padding: 0; margin: 0; text-align: left;
  background: none; border: 0; color: inherit; font: inherit; cursor: pointer; }
.ldr__img { display: block; width: 100%; aspect-ratio: 4 / 5; overflow: hidden; background: #e7e6e2; }
.ldr__img img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 20%;
  filter: grayscale(1) contrast(1.06); transform: scale(1.001); transition: filter .45s ease, transform .6s cubic-bezier(.2,.8,.2,1); }
.ldr__btn:hover .ldr__img img, .ldr__btn:focus-visible .ldr__img img { filter: grayscale(0) contrast(1); transform: scale(1.035); }
.ldr__btn:focus-visible { outline: 2px solid #10A37E; outline-offset: 4px; }
.ldr__name { margin-top: 16px; font-size: 20px; font-weight: 600; letter-spacing: -.4px; line-height: 1.2; color: #070707; }
.ldr__role { margin-top: 5px; font-size: 14px; line-height: 1.4; color: rgba(7,7,7,.62); }
.ldr__more { margin-top: 12px; display: inline-flex; gap: 8px; align-items: center; padding-bottom: 3px; border-bottom: 1px solid currentColor;
  font: 500 11px/1 "IBM Plex Mono", monospace; letter-spacing: 1.4px; text-transform: uppercase; color: var(--emerald); }
.ldr__btn:hover .ldr__more { color: #070707; }
@media (max-width: 760px) { .ldr__name { font-size: 17px; } .ldr__role { font-size: 13px; } }

.ldr-dlg { margin: auto; inset: 0; width: min(940px, calc(100vw - 32px)); max-height: calc(100vh - 48px); padding: 0; border: 0; background: #fff; color: #070707;
  box-shadow: 0 30px 80px rgba(0,0,0,.35); }
.ldr-dlg::backdrop { background: rgba(7,10,9,.72); backdrop-filter: blur(2px); }
.ldr-dlg__in-wrap { position: relative; display: grid; grid-template-columns: 320px minmax(0, 1fr); }
.ldr-dlg__img { background: #e7e6e2; }
.ldr-dlg__img img { display: block; width: 100%; height: 100%; min-height: 360px; object-fit: cover; object-position: center 20%; }
.ldr-dlg__body { padding: 44px 44px 40px; overflow-y: auto; max-height: calc(100vh - 48px); }
.ldr-dlg__role { font: 500 11px/1.4 "IBM Plex Mono", monospace; letter-spacing: 1.6px; text-transform: uppercase; color: var(--emerald); }
.ldr-dlg__name { margin-top: 10px; font-size: 32px; font-weight: 600; letter-spacing: -.8px; line-height: 1.15; }
.ldr-dlg__bio p { margin-top: 20px; font-size: 16px; line-height: 1.8; color: rgba(7,7,7,.78); }
.ldr-dlg__in { display: inline-block; margin-top: 22px; padding-bottom: 3px; border-bottom: 1px solid currentColor; color: var(--emerald);
  font: 500 12px/1 "IBM Plex Mono", monospace; letter-spacing: 1.4px; text-transform: uppercase; text-decoration: none; }
.ldr-dlg__close { position: absolute; top: 12px; right: 14px; z-index: 2; width: 40px; height: 40px; border: 0; background: rgba(255,255,255,.9);
  font-size: 28px; line-height: 1; cursor: pointer; color: #070707; }
.ldr-dlg__close:hover { background: #070707; color: #fff; }
html.ldr-open { overflow: hidden; }
@media (max-width: 760px) {
  .ldr-dlg__in-wrap { grid-template-columns: 1fr; }
  .ldr-dlg__img img { min-height: 0; height: 260px; }
  .ldr-dlg__body { padding: 26px 22px 30px; max-height: none; }
  .ldr-dlg { overflow-y: auto; }
  .ldr-dlg__name { font-size: 26px; }
}

/* Leadership cards with the bio on the page: small black-and-white headshot beside name and title,
   full bio underneath. Two per row. */
.ldc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ldc { display: flex; flex-direction: column; padding: 28px 30px 26px; background: #fff; border: 1px solid rgba(7,7,7,.12);
  transition: border-color .2s ease, box-shadow .2s ease; }
.ldc:hover { border-color: rgba(10,73,56,.35); box-shadow: 0 12px 28px rgba(7,7,7,.06); }
.ldc__head { display: flex; align-items: center; gap: 18px; padding-bottom: 18px; border-bottom: 1px solid rgba(7,7,7,.1); }
.ldc__img { flex: 0 0 auto; width: 116px; height: 116px; overflow: hidden; background: #e7e6e2; }
.ldc__img img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 18%;
  filter: grayscale(1) contrast(1.05); }
.ldc__name { font-size: 20px; font-weight: 600; letter-spacing: -.4px; line-height: 1.2; color: #070707; }
.ldc__role { display: block; margin-top: 5px; font-size: 13.5px; font-weight: 500; line-height: 1.4; color: var(--emerald); }
.ldc__bio { margin-top: 18px; font-size: 14.5px; line-height: 1.75; color: rgba(7,7,7,.74); }
.ldc__in { align-self: flex-start; margin-top: auto; padding-top: 16px; color: #070707; text-decoration: none;
  font: 500 11px/1 "IBM Plex Mono", monospace; letter-spacing: 1.4px; text-transform: uppercase; }
.ldc__in:hover { color: var(--emerald); }
@media (max-width: 860px) { .ldc-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .ldc { padding: 22px 20px; } .ldc__img { width: 92px; height: 92px; } .ldc__name { font-size: 18px; } }

/* Explore tiles on the IR overview: a plain map of every IR page. */
.ir-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid rgba(7,7,7,.14); border-left: 1px solid rgba(7,7,7,.14); }
.ir-tile { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 26px 28px 30px; min-height: 170px;
  border-right: 1px solid rgba(7,7,7,.14); border-bottom: 1px solid rgba(7,7,7,.14); color: #070707; text-decoration: none; transition: background .2s ease; }
.ir-tile:hover { background: #fff; }
.ir-tile__k { font: 500 10px/1.3 "IBM Plex Mono", monospace; letter-spacing: 1.6px; text-transform: uppercase; color: var(--emerald); }
.ir-tile__t { font-size: 22px; font-weight: 600; letter-spacing: -.4px; line-height: 1.2; }
.ir-tile__d { font-size: 14.5px; line-height: 1.6; color: rgba(7,7,7,.66); max-width: 30em; }
.ir-tile__go { margin-top: auto; padding-top: 10px; font-size: 18px; color: var(--emerald); transition: transform .2s ease; }
.ir-tile:hover .ir-tile__go { transform: translateX(4px); }
@media (max-width: 900px) { .ir-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ir-tiles { grid-template-columns: minmax(0, 1fr); } .ir-tile { min-height: 0; } }

/* Team: a plain 3-column grid, no boxes. Grayscale photo on top, then name, title, bio and LinkedIn. */
.ldc-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 40px; }
.ldc, .ldc:hover { padding: 0; background: none; border: 0; box-shadow: none; }
.ldc__head { flex-direction: column; align-items: flex-start; gap: 16px; padding-bottom: 0; border-bottom: 0; }
.ldc__img { width: 140px; height: 140px; }
.ldc__bio { margin-top: 14px; }
.ldc__in { padding-top: 14px; }
@media (max-width: 1000px) { .ldc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .ldc-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; } .ldc { padding: 0; } .ldc__img { width: 120px; height: 120px; } }

/* Team: two per row, each person in a bordered box; a line divides the photo, name and title from the bio. */
.ldc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ldc, .ldc:hover { padding: 30px 32px 28px; background: #fff; border: 1px solid rgba(7,7,7,.14); box-shadow: none; }
.ldc__head { padding-bottom: 20px; border-bottom: 1px solid rgba(7,7,7,.12); }
.ldc__bio { margin-top: 18px; }
@media (max-width: 1000px) { .ldc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .ldc-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; } .ldc, .ldc:hover { padding: 24px 22px; } }

/* Team: two per row, no boxes. Only lines between people: a line down the middle and a line under each row. */
.ldc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-top: 1px solid rgba(7,7,7,.14); }
.ldc, .ldc:hover { padding: 36px 40px 34px 0; background: none; border: 0; border-bottom: 1px solid rgba(7,7,7,.14); box-shadow: none; }
.ldc:nth-child(2n) { padding: 36px 0 34px 40px; border-left: 1px solid rgba(7,7,7,.14); }
.ldc__head { padding-bottom: 0; border-bottom: 0; }
.ldc__bio { margin-top: 16px; }
@media (max-width: 760px) {
  .ldc-grid { grid-template-columns: minmax(0, 1fr); }
  .ldc, .ldc:hover, .ldc:nth-child(2n) { padding: 28px 0; border-left: 0; }
}

/* Team bios: four lines, then a Read more toggle (script at the bottom of the
   Company Info and Governance pages). */
.ldc__bio { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; overflow: hidden; }
.ldc.is-open .ldc__bio { display: block; -webkit-line-clamp: unset; line-clamp: none; overflow: visible; }
.ldc__foot { display: flex; align-items: center; gap: 28px; padding-top: 16px; }
.ldc__foot .ldc__in { margin-top: 0; padding-top: 0; }
.ldc__more { padding: 0; background: none; border: 0; cursor: pointer; color: var(--emerald);
  font: 500 11px/1 "IBM Plex Mono", monospace; letter-spacing: 1.4px; text-transform: uppercase; }
.ldc__more::after { content: " +"; }
.ldc.is-open .ldc__more::after { content: " \2212"; }
.ldc__more[hidden] { display: none; }
.ldc__more:hover, .ldc__foot .ldc__in:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Team sections on Warm Graphite, so the greyscale portraits sit in a matching tone.
   Photo and name share one row, so the space beside the portrait is used. */
.ir-team-sec { background: var(--graphite); color: #ece7dd; }
.ir-team-sec.bp::before { background-image:
    linear-gradient(rgba(236,231,221,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(236,231,221,.045) 1px, transparent 1px); }
.ir-team-sec .ir-h { color: #fefefe; }
.ir-team-sec .irp-note { color: rgba(236,231,221,.62); }
.ir-team-sec .ldc-grid { border-top-color: rgba(236,231,221,.16); }
.ir-team-sec .ldc, .ir-team-sec .ldc:hover { border-bottom-color: rgba(236,231,221,.16); }
.ir-team-sec .ldc:nth-child(2n) { border-left-color: rgba(236,231,221,.16); }
.ir-team-sec .ldc__head { flex-direction: row; align-items: flex-end; gap: 24px; }
.ir-team-sec .ldc__img { width: 128px; height: 128px; background: #1f1f1d; }
.ir-team-sec .ldc__img img { filter: grayscale(1) contrast(1.05) brightness(.94); }
.ir-team-sec .ldc__name { font-size: 22px; color: #fefefe; }
.ir-team-sec .ldc__role { margin-top: 8px; color: var(--mint); }
.ir-team-sec .ldc__bio { margin-top: 22px; color: rgba(236,231,221,.74); }
.ir-team-sec .ldc__more { color: var(--mint); }
.ir-team-sec .ldc__foot .ldc__in { color: rgba(236,231,221,.86); }
.ir-team-sec .ldc__foot .ldc__in:hover { color: #fefefe; }
@media (max-width: 560px) {
  .ir-team-sec .ldc__head { gap: 16px; }
  .ir-team-sec .ldc__img { width: 96px; height: 96px; }
  .ir-team-sec .ldc__name { font-size: 19px; }
}

/* Presentations: the first slide is the title card; View opens the reader in a
   dialog, Download gets the PDF. Filled by assets/js/ir-deck.js. */
.prc { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 64px); align-items: center; }
.prc[hidden] { display: none; }
.prc__thumb { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; padding: 0; border: 0; overflow: hidden;
  background: #0a1512; cursor: pointer; clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%);
  box-shadow: 0 26px 70px rgba(7,7,7,.18); }
.prc__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.prc__thumb:hover img, .prc__thumb:focus-visible img { transform: scale(1.025); }
.prc__thumb:focus-visible { outline: 2px solid var(--signal); outline-offset: 4px; }
.prc__play { position: absolute; right: 18px; bottom: 18px; padding: 10px 14px; background: rgba(7,7,7,.78); color: #fefefe;
  font: 500 11px/1 "IBM Plex Mono", monospace; letter-spacing: 1.4px; text-transform: uppercase; transition: background .2s; }
.prc__thumb:hover .prc__play { background: var(--signal); color: var(--emerald); }
.prc__meta { font: 500 10.5px/1.4 "IBM Plex Mono", monospace; letter-spacing: 1.6px; text-transform: uppercase; color: var(--emerald); }
.prc__t { margin-top: 12px; font-size: clamp(24px, 2.6vw, 32px); font-weight: 600; letter-spacing: -.6px; line-height: 1.15; }
.prc__d { margin-top: 12px; font-size: 15.5px; line-height: 1.65; color: rgba(7,7,7,.66); }
.prc__btns { margin-top: 24px; }
.prc__edgar { display: inline-block; margin-top: 18px; color: var(--ink); text-decoration: none;
  font: 500 11px/1 "IBM Plex Mono", monospace; letter-spacing: 1.4px; text-transform: uppercase; }
.prc__edgar:hover { color: var(--emerald); }
.prc__edgar[hidden] { display: none; }
@media (max-width: 860px) { .prc { grid-template-columns: minmax(0, 1fr); gap: 24px; } }

/* Reader dialog */
.dvm { position: fixed; inset: 0; margin: auto; width: min(1280px, calc(100vw - 32px), calc((100vh - 150px) * 16 / 9));
  max-width: none; max-height: none; padding: 0; border: 0; background: transparent; color: #fefefe; overflow: visible; }
.dvm::backdrop { background: rgba(7,7,7,.9); }
.dvm__bar { display: flex; align-items: center; gap: 22px; margin-bottom: 14px; }
.dvm__name { flex: 1; min-width: 0; font-size: 15px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dv { min-width: 0; outline: none; }
.dv__stage { position: relative; aspect-ratio: 16 / 9; width: 100%; overflow: hidden; background: #0a1512; cursor: pointer;
  touch-action: pan-y; user-select: none; }
.dv__stage img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; }
.dv__prog { height: 2px; margin-top: 14px; background: rgba(255,255,255,.14); }
.dv__prog span { display: block; height: 100%; width: 0; background: var(--signal); transition: width .3s ease; }
.dv__foot { display: flex; align-items: center; gap: 18px; margin-top: 14px; }
.dv__step { flex: none; background: none; border: 0; padding: 6px 0; color: #fefefe; cursor: pointer; text-decoration: none;
  font: 500 11px/1 "IBM Plex Mono", monospace; letter-spacing: 1.6px; text-transform: uppercase; transition: color .2s, opacity .2s; }
.dv__step:hover { color: var(--mint); }
.dv__step:focus-visible { outline: 2px solid var(--mint); outline-offset: 3px; }
.dv__step[disabled] { opacity: .28; pointer-events: none; }
.dv__now { flex: 1; min-width: 0; display: flex; align-items: baseline; gap: 14px; }
.dv__count { flex: none; font: 500 11px/1 "IBM Plex Mono", monospace; letter-spacing: 1.6px; color: var(--mint); }
.dv__title { min-width: 0; font-size: 14px; color: rgba(254,254,254,.66); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dv:fullscreen { display: flex; flex-direction: column; justify-content: center; background: #070707; padding: 20px; }
@media (max-width: 620px) { .dv__title { display: none; } .dvm__bar { gap: 14px; } .dv__foot { gap: 14px; } }

/* Team photo cards (24 Oct 2026): three columns of full portraits under a black shade,
   name and role on the photo, the bio rising over it on hover, focus or tap. */
.tpc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.tpc { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: #1f1f1d; cursor: pointer; outline: none; color: #fefefe; }
.tpc:focus-visible { box-shadow: 0 0 0 2px var(--mint); }
.tpc__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 18%;
  filter: grayscale(1) contrast(1.05); transition: transform .7s ease; }
.tpc::after { content: ""; position: absolute; inset: 0; pointer-events: none; transition: background-color .45s ease;
  background-color: rgba(7,7,7,.16);
  background-image: linear-gradient(180deg, rgba(7,7,7,0) 40%, rgba(7,7,7,.55) 68%, rgba(7,7,7,.92) 100%); }
.tpc__plus { position: absolute; top: 14px; right: 14px; z-index: 2; width: 30px; height: 30px; display: grid; place-items: center;
  border: 1px solid rgba(254,254,254,.45); color: #fefefe; font: 400 18px/1 "IBM Plex Mono", monospace; transition: transform .35s, border-color .35s, color .35s; }
.tpc__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; max-height: 100%; display: flex; flex-direction: column; padding: 26px 26px 24px; }
.tpc__name { margin: 0; font-size: 22px; font-weight: 600; letter-spacing: -.4px; line-height: 1.2; color: #fefefe; }
.tpc__role { display: block; margin-top: 6px; font-size: 13.5px; font-weight: 500; line-height: 1.4; color: var(--mint); }
.tpc__detail { display: grid; grid-template-rows: 0fr; min-height: 0; opacity: 0; transition: grid-template-rows .5s ease, opacity .35s ease; }
.tpc__scroll { min-height: 0; overflow: hidden; }
.tpc__bio { margin: 16px 0 0; font-size: 14px; line-height: 1.65; color: rgba(236,231,221,.86); }
.tpc__in { display: inline-block; margin-top: 14px; color: #fefefe; text-decoration: none;
  font: 500 11px/1 "IBM Plex Mono", monospace; letter-spacing: 1.4px; text-transform: uppercase; }
.tpc__in:hover { color: var(--mint); }
/* open: darker shade, bio in, scrolls if longer than the card */
.tpc:hover::after, .tpc:focus-within::after, .tpc.is-open::after { background-color: rgba(7,7,7,.8); }
.tpc:hover .tpc__img, .tpc:focus-within .tpc__img, .tpc.is-open .tpc__img { transform: scale(1.04); }
.tpc:hover .tpc__detail, .tpc:focus-within .tpc__detail, .tpc.is-open .tpc__detail { grid-template-rows: 1fr; opacity: 1; }
.tpc:hover .tpc__scroll, .tpc:focus-within .tpc__scroll, .tpc.is-open .tpc__scroll { overflow-y: auto; scrollbar-width: thin; }
.tpc:hover .tpc__plus, .tpc:focus-within .tpc__plus, .tpc.is-open .tpc__plus { transform: rotate(45deg); border-color: var(--mint); color: var(--mint); }
@media (hover: none) { .tpc:hover::after { background-color: rgba(7,7,7,.16); } .tpc:not(.is-open):hover .tpc__detail { grid-template-rows: 0fr; opacity: 0; }
  .tpc:not(.is-open):hover .tpc__img { transform: none; } .tpc:not(.is-open):hover .tpc__plus { transform: none; border-color: rgba(254,254,254,.45); color: #fefefe; } }
@media (prefers-reduced-motion: reduce) { .tpc__img, .tpc__detail, .tpc::after, .tpc__plus { transition: none; } }
@media (max-width: 1000px) { .tpc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .tpc-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; } .tpc__body { padding: 22px 20px 20px; } }
/* refinements: deeper resting shade, +/− icon without rotating the box, denser bio */
.tpc::after { background-color: rgba(7,7,7,.28); }
.tpc__plus::before { content: "+"; }
.tpc:hover .tpc__plus, .tpc:focus-within .tpc__plus, .tpc.is-open .tpc__plus { transform: none; }
.tpc:hover .tpc__plus::before, .tpc:focus-within .tpc__plus::before, .tpc.is-open .tpc__plus::before { content: "\2212"; }
.tpc:hover::after, .tpc:focus-within::after, .tpc.is-open::after { background-color: rgba(7,7,7,.84); }
.tpc__bio { margin-top: 14px; font-size: 13.5px; line-height: 1.6; }
@media (hover: none) { .tpc:hover::after { background-color: rgba(7,7,7,.28); } .tpc:not(.is-open):hover .tpc__plus::before { content: "+"; } }
/* team cards fully greyscale: no green accents, softened whites, to sit with the portraits */
.tpc { color: #e4e4e2; }
.tpc:focus-visible { box-shadow: 0 0 0 2px rgba(228,228,226,.8); }
.tpc__name { color: #ececea; }
.tpc__role { color: rgba(228,228,226,.62); }
.tpc__bio { color: rgba(228,228,226,.8); }
.tpc__in { color: #ececea; }
.tpc__in:hover { color: #fefefe; text-decoration: underline; text-underline-offset: 3px; }
.tpc__plus { border-color: rgba(228,228,226,.4); color: #e4e4e2; }
.tpc:hover .tpc__plus, .tpc:focus-within .tpc__plus, .tpc.is-open .tpc__plus { border-color: rgba(228,228,226,.85); color: #fefefe; }
@media (hover: none) { .tpc:not(.is-open):hover .tpc__plus { border-color: rgba(228,228,226,.4); color: #e4e4e2; } }
/* No scrollbars in the bio (25 Oct 2026): taller cards, three columns only where a card
   is wide enough, text fitted by the script, and on narrow phones the card grows. */
.tpc { aspect-ratio: 3 / 4; }
.tpc__body { padding: 28px 28px 26px; }
.tpc:hover .tpc__scroll, .tpc:focus-within .tpc__scroll, .tpc.is-open .tpc__scroll { overflow: hidden; }
.tpc--fit .tpc__bio { font-size: 13px; line-height: 1.55; }
.tpc--fit2 .tpc__bio { font-size: 12.5px; line-height: 1.5; }
.tpc--grow.is-open { aspect-ratio: auto; min-height: var(--tpc-h, 0); display: flex; flex-direction: column; justify-content: flex-end; }
.tpc--grow.is-open .tpc__body { position: relative; max-height: none; padding-top: 60px; }
@media (max-width: 1319px) { .tpc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 999px) { .tpc-grid { grid-template-columns: minmax(0, 1fr); } }
/* 25 Oct 2026: no card layer. Portraits sit straight on the graphite base, split by
   hairlines only (no gaps, no card fill), under an 80% black skin. */
.tpc-grid { gap: 0; border-top: 1px solid rgba(228,228,226,.16); border-left: 1px solid rgba(228,228,226,.16); }
.tpc { background: transparent; border-right: 1px solid rgba(228,228,226,.16); border-bottom: 1px solid rgba(228,228,226,.16); }
.tpc::after { background-color: rgba(7,7,7,.8);
  background-image: linear-gradient(180deg, rgba(7,7,7,0) 55%, rgba(7,7,7,.5) 100%); }
.tpc:hover::after, .tpc:focus-within::after, .tpc.is-open::after { background-color: rgba(7,7,7,.9); }
@media (hover: none) { .tpc:hover::after { background-color: rgba(7,7,7,.8); } }
.tpc__plus { border-color: rgba(228,228,226,.3); }
/* 25 Oct 2026 (b): space between the portraits, with a hairline running through the
   middle of each gap. Each photo draws an outline half a gap away; neighbours' outlines
   meet in the gap, and the grid clips the ones on its outer edge, so only the dividing
   lines show. No boxes, no fills. */
.tpc-grid { gap: 41px; border: 0; overflow: hidden; }
.tpc { border: 0; outline: 1px solid rgba(228,228,226,.16); outline-offset: 20px; }
.tpc:focus-visible { outline: 1px solid rgba(228,228,226,.16); box-shadow: 0 0 0 2px rgba(228,228,226,.8); }
@media (max-width: 600px) { .tpc-grid { gap: 33px; } .tpc { outline-offset: 16px; } }
/* 25 Oct 2026 (c): lighter skin so faces read more clearly (80% to 60%). */
.tpc::after { background-color: rgba(7,7,7,.6); }
@media (hover: none) { .tpc:hover::after { background-color: rgba(7,7,7,.6); } }

/* Presentations (26 Oct 2026): cover only, no reader. A larger front slide, with the
   text column squared to it: the meta line sits level with the slide's top edge and
   the title, note and download sit on its bottom edge. */
.prc { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: clamp(32px, 4vw, 64px); align-items: stretch; }
.prc__thumb { margin: 0; cursor: default; box-shadow: 0 30px 80px rgba(7,7,7,.16); }
.prc__thumb:hover img { transform: none; }
.prc__body { display: flex; flex-direction: column; justify-content: space-between; gap: 28px; padding: 4px 0; }
.prc__main .prc__t { margin-top: 0; }
.prc__btns { margin-top: 22px; }
.prc__btns .btn--signal { clip-path: none; }
@media (max-width: 960px) {
  .prc { grid-template-columns: minmax(0, 1fr); }
  .prc__body { justify-content: flex-start; gap: 14px; }
}
/* "Coming soon" tag until the filed presentation is posted */
.prc__soon { display: inline-flex; align-items: center; padding: 13px 18px; border: 1px dashed rgba(7,7,7,.3); color: rgba(7,7,7,.62);
  font: 500 11px/1 "IBM Plex Mono", monospace; letter-spacing: 1.6px; text-transform: uppercase; }
.prc__soon[hidden], .prc__btns .btn[hidden] { display: none; }
