/* ================================================================
   Lean Edge Sports | Historical / Memorial Player Bio (19 Oct 2026)
   Scoped exclusively to deceased or retired players. No changes to
   active-player injury, rank, calculations, navigation or Pro tools.
   ================================================================ */
.player-page .player-hero--memorial,
.player-page .player-hero--legacy {
  --legacy-gold: #e6b65c;
  --legacy-border: rgba(223,178,91,.78);
}

/* A real, independent memorial component rather than the former text line. */
.player-page .player-hero--memorial > .player-memorial-banner {
  display: grid !important;
  grid-template-columns: 94px minmax(0,1fr) !important;
  align-items: center !important;
  gap: 20px !important;
  padding: 18px 24px !important;
  margin: 0 0 18px !important;
  min-width: 0 !important;
  border: 1.5px solid var(--legacy-border) !important;
  border-radius: 13px !important;
  background: linear-gradient(105deg,rgba(220,178,94,.10),rgba(255,255,255,.045) 45%,rgba(225,183,101,.075)) !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,.018), 0 10px 25px rgba(0,0,0,.14) !important;
}
.player-page .player-memorial-banner .player-memorial-dove {
  display: block; width: 88px; height: 88px;
  object-fit: contain; filter: drop-shadow(0 3px 5px rgba(0,0,0,.3));
}
.player-page .player-memorial-banner-copy { min-width: 0; border-left: 2px solid var(--legacy-gold); padding-left: 23px; }
.player-page .player-memorial-kicker { color: var(--legacy-gold); font: 800 12px/1.2 'Barlow',sans-serif; letter-spacing: .19em; margin-bottom: 5px; }
.player-page .player-memorial-title { color: #fff; font: 700 clamp(22px,2.3vw,30px)/1.1 'Barlow',sans-serif; margin-bottom: 5px; }
.player-page .player-memorial-dates { color: #f2f2f4; font: 500 14px/1.4 'Barlow',sans-serif; }
.player-page .player-memorial-banner-copy p { color: #c9d5e7; font: 400 13px/1.45 'Barlow',sans-serif; margin: 8px 0 0; }

/* Legacy snapshot cards repeat selected stats as a dashboard only. The full
   existing sections remain available below, unchanged. */
.player-page .legacy-season-snapshot,
.player-page .legacy-overview-card {
  background: linear-gradient(125deg,#101b34,#111f3b 75%,#10192d);
  border: 1px solid rgba(155,179,219,.18);
  border-radius: 13px;
  color: #edf3ff;
}
.player-page .legacy-season-snapshot { padding: 17px 20px 18px; margin: 0 0 14px; }
.player-page .legacy-snapshot-head { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 15px; }
.player-page .legacy-snapshot-head h2 { color: #fff; font: 800 21px/1.1 'Barlow',sans-serif; margin: 0; }
.player-page .legacy-snapshot-season { color: #b9d3ff; border: 1px solid rgba(139,169,223,.4); background: #18284c; padding: 5px 9px; border-radius: 6px; font: 700 13px/1 'Barlow',sans-serif; }
.player-page .legacy-snapshot-caption { color: #93b1e2; font: 500 12px/1.4 'Barlow',sans-serif; }
.player-page .legacy-snapshot-scroll { overflow-x: auto; }
.player-page .legacy-snapshot-grid { display: grid; grid-template-columns: repeat(9,minmax(0,1fr)); min-width: 720px; border: 1px solid rgba(161,180,217,.12); border-radius: 8px; overflow: hidden; }
.player-page .legacy-snapshot-stat { display: flex; flex-direction: column; align-items: center; min-width: 0; gap: 8px; padding: 11px 4px 12px; background: rgba(7,16,34,.3); border-right: 1px solid rgba(161,180,217,.12); }
.player-page .legacy-snapshot-stat:last-child { border-right: 0; }
.player-page .legacy-snapshot-stat span { color: #94a8c7; font: 700 10px/1 'Barlow',sans-serif; letter-spacing: .05em; }
.player-page .legacy-snapshot-stat strong { color: #f7f9ff; font: 800 clamp(17px,1.7vw,23px)/1.1 'Barlow',sans-serif; font-variant-numeric: tabular-nums; }
.player-page .legacy-snapshot-empty { color: #a7b7ce; margin: 0; font-size: 13px; }
.player-page .legacy-overview { margin: 0 0 24px; }
.player-page .legacy-overview-grid { display: grid; grid-template-columns: 1.45fr 1fr 1fr; gap: 12px; }
.player-page .legacy-overview-card { min-height: 155px; padding: 17px 19px; min-width: 0; }
.player-page .legacy-overview-card h2 { color: #fff; font: 800 18px/1.25 'Barlow',sans-serif; margin: 0 0 14px; display: flex; align-items: center; gap: 8px; }
.player-page .legacy-overview-card h2 > i { color: #e6b65c; font-size: 18px; }
.player-page .legacy-overview-card h2 a { margin-left: auto; color: #b9cce9; text-decoration: none; }
.player-page .legacy-overview-card h2 a:hover { color: #fff; }
.player-page .legacy-overview-card p { color: #d0dced; font: 400 13px/1.6 'Barlow',sans-serif; margin: 0 0 10px; }
.player-page .legacy-overview-card .legacy-overview-muted,
.player-page .legacy-overview-card .legacy-overview-caption { color: #91a5c4; font-size: 12px; }
.player-page .legacy-overview-card .legacy-overview-caption { margin-top: -7px; }
.player-page .legacy-preview-list { display: grid; gap: 8px; }
.player-page .legacy-preview-list > div { display: flex; justify-content: space-between; gap: 8px; font: 500 13px/1.25 'Barlow',sans-serif; }
.player-page .legacy-preview-list span { color: #c3d1e5; }
.player-page .legacy-preview-list strong { color: #fff; font-variant-numeric: tabular-nums; }
.player-page .legacy-honours-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font: 500 13px/1.3 'Barlow',sans-serif; }
.player-page .legacy-honours-list li { color: #c9d5e6; }
.player-page .legacy-honours-list strong { color: #e6b65c; margin-right: 5px; }
.player-page .legacy-honours-preview { color: #a7b8d3; font-size: 13px; }
.player-page .legacy-team-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.player-page .legacy-team-list li { color: #d9e4f5; font: 600 13px/1.35 'Barlow',sans-serif; padding-left: 15px; position: relative; }
.player-page .legacy-team-list li::before { content: ''; position: absolute; left: 0; top: .45em; width: 6px; height: 6px; border-radius: 50%; background: #e6b65c; }
.player-page .legacy-similar-preview { display: flex; flex-direction: column; gap: 8px; }
.player-page .legacy-similar-preview a { color: #cde0ff; font: 600 13px/1.4 'Barlow',sans-serif; text-decoration: none; }
.player-page .legacy-similar-preview a:hover { color: #fff; text-decoration: underline; }
.player-page .legacy-mini-trend { overflow: hidden; max-width: 100%; }
.player-page .legacy-mini-trend .trend-chart-scroll { overflow-x: auto; }
.player-page .legacy-mini-trend .trend-svg { display: block; max-height: 125px; }

/* Desktop composition mirrors the approved reference: photo at left,
   memorial above details, existing score card on the right. */
@media (min-width: 1200px) {
  .player-page .player-hero--memorial,
  .player-page .player-hero--legacy {
    display: grid !important;
    grid-template-columns: 190px minmax(0,1fr) 190px !important;
    grid-template-rows: minmax(135px,auto) auto auto auto auto auto auto !important;
    column-gap: 23px !important;
    row-gap: 9px !important;
    align-items: start !important;
    padding: 23px !important;
  }
  .player-page .player-hero--memorial > .player-memorial-banner { grid-column: 2 / 4 !important; grid-row: 1 !important; }
  .player-page .player-hero--memorial > .player-hero-photo,
  .player-page .player-hero--legacy > .player-hero-photo {
    grid-column: 1 !important; grid-row: 1 / 6 !important;
    width: 190px !important; min-width: 190px !important; max-width: 190px !important;
    height: 310px !important; min-height: 310px !important; max-height: 310px !important;
  }
  .player-page .player-hero--memorial > .player-tier-row,
  .player-page .player-hero--legacy > .player-tier-row { grid-column: 2 !important; grid-row: 2 !important; margin: 0 !important; }
  .player-page .player-hero--memorial > .player-name,
  .player-page .player-hero--legacy > .player-name { grid-column: 2 !important; grid-row: 3 !important; margin: 0 !important; }
  .player-page .player-hero--memorial > .player-meta,
  .player-page .player-hero--legacy > .player-meta { grid-column: 2 !important; grid-row: 4 !important; margin: 0 !important; }
  .player-page .player-hero--memorial > .player-draft-season-row,
  .player-page .player-hero--legacy > .player-draft-season-row {
    grid-column: 2 !important; grid-row: 5 !important; margin: 0 !important;
    display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 10px !important;
  }
  .player-page .player-hero--memorial > .hero-stat-pair,
  .player-page .player-hero--legacy > .hero-stat-pair {
    grid-column: 3 !important; grid-row: 2 / 6 !important;
    display: block !important; width: 100% !important; margin: 0 !important;
  }
  .player-page .player-hero--memorial > .hero-stat-pair > .player-score-block,
  .player-page .player-hero--legacy > .hero-stat-pair > .player-score-block { width: 100% !important; max-width: none !important; padding: 15px !important; }
  .player-page .player-hero--memorial > .jump-nav,
  .player-page .player-hero--legacy > .jump-nav {
    grid-column: 1 / -1 !important; grid-row: 6 !important; margin: 8px 0 0 !important;
    display: flex !important; flex-wrap: wrap !important; overflow: visible !important;
  }
  .player-page .player-hero--memorial > .player-team-split-hero,
  .player-page .player-hero--legacy > .player-team-split-hero { grid-column: 1 / -1 !important; grid-row: 7 !important; }
  .player-page .player-hero--memorial > .season-context-card,
  .player-page .player-hero--legacy > .season-context-card { grid-column: 1 / -1 !important; grid-row: 7 !important; }
}
/* Narrow desktop: banner above identity; retain the existing two-column
   portrait + bio arrangement, without the old memorial grid collision. */
@media (min-width: 769px) and (max-width: 1199px) {
  .player-page .player-hero--memorial,
  .player-page .player-hero--legacy { grid-template-columns: 160px minmax(0,1fr) !important; row-gap: 9px !important; }
  .player-page .player-hero--memorial > .player-memorial-banner { grid-column: 2 !important; grid-row: 1 !important; }
  .player-page .player-hero--memorial > .player-hero-photo,
  .player-page .player-hero--legacy > .player-hero-photo { grid-column: 1 !important; grid-row: 1 / 6 !important; }
  .player-page .player-hero--memorial > .player-tier-row { grid-row: 2 !important; }
  .player-page .player-hero--memorial > .player-name { grid-row: 3 !important; }
  .player-page .player-hero--memorial > .player-meta { grid-row: 4 !important; }
  .player-page .player-hero--memorial > .player-draft-season-row { grid-row: 5 !important; }
  .player-page .player-hero--memorial > .hero-stat-pair { grid-column: 2 !important; grid-row: 6 !important; }
  .player-page .player-hero--memorial > .jump-nav { grid-column: 1 / -1 !important; grid-row: 7 !important; }
  .player-page .player-hero--memorial > .player-team-split-hero { grid-column: 1 / -1 !important; grid-row: 8 !important; }
  .player-page .player-hero--memorial > .season-context-card { grid-column: 1 / -1 !important; grid-row: 8 !important; }
}
@media (max-width: 1000px) { .player-page .legacy-overview-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 768px) {
  .player-page .player-hero--memorial,
  .player-page .player-hero--legacy {
    display: grid !important; grid-template-columns: 108px minmax(0,1fr) !important;
    grid-template-rows: repeat(10,auto) !important; column-gap: 13px !important;
    row-gap: 8px !important; padding: 14px !important;
  }
  .player-page .player-hero--memorial > .player-memorial-banner {
    grid-column: 1 / -1 !important; grid-row: 1 !important;
    grid-template-columns: 55px minmax(0,1fr) !important; gap: 11px !important;
    padding: 12px !important; margin: 0 0 7px !important;
  }
  .player-page .player-memorial-banner .player-memorial-dove { width: 53px; height: 53px; }
  .player-page .player-memorial-banner-copy { padding-left: 11px; }
  .player-page .player-memorial-title { font-size: 20px; }
  .player-page .player-memorial-kicker { font-size: 10px; }
  .player-page .player-memorial-dates { font-size: 12px; }
  .player-page .player-memorial-banner-copy p { font-size: 11px; }
  .player-page .player-hero--memorial > .player-hero-photo,
  .player-page .player-hero--legacy > .player-hero-photo {
    grid-column: 1 !important; grid-row: 2 / 5 !important;
    width: 108px !important; min-width: 108px !important; max-width: 108px !important;
    height: 140px !important; min-height: 140px !important; max-height: 140px !important;
  }
  .player-page .player-hero--memorial > .player-tier-row,
  .player-page .player-hero--legacy > .player-tier-row { grid-column: 2 !important; grid-row: 2 !important; }
  .player-page .player-hero--memorial > .player-name,
  .player-page .player-hero--legacy > .player-name { grid-column: 2 !important; grid-row: 3 !important; }
  .player-page .player-hero--memorial > .player-meta,
  .player-page .player-hero--legacy > .player-meta { grid-column: 2 !important; grid-row: 4 !important; }
  /* Undo the active-player-only display:contents flattening, which would
     otherwise position draft details on top of the memorial banner. */
  .player-page .player-hero--memorial > .player-draft-season-row,
  .player-page .player-hero--legacy > .player-draft-season-row,
  .player-page .player-hero--memorial > .player-draft-season-row > .player-draft-injury-row,
  .player-page .player-hero--legacy > .player-draft-season-row > .player-draft-injury-row { display: block !important; }
  .player-page .player-hero--memorial > .player-draft-season-row,
  .player-page .player-hero--legacy > .player-draft-season-row {
    grid-column: 1 / -1 !important; grid-row: 5 !important; margin: 6px 0 0 !important;
  }
  .player-page .player-hero--memorial .player-draft-summary-card,
  .player-page .player-hero--legacy .player-draft-summary-card { display: block !important; margin: 0 !important; }
  .player-page .player-hero--memorial .player-season-compare-row,
  .player-page .player-hero--legacy .player-season-compare-row {
    display: block !important; margin: 9px 0 0 !important; width: 100% !important;
  }
  .player-page .player-hero--memorial .player-season-compare-row .compare-this-btn,
  .player-page .player-hero--legacy .player-season-compare-row .compare-this-btn {
    display: inline-flex !important; width: auto !important; min-height: 42px !important; padding: 9px 13px !important;
  }
  .player-page .player-hero--memorial > .hero-stat-pair,
  .player-page .player-hero--legacy > .hero-stat-pair {
    grid-column: 1 / -1 !important; grid-row: 6 !important;
    display: flex !important; width: 100% !important; margin: 6px 0 0 !important;
  }
  .player-page .player-hero--memorial > .hero-stat-pair .player-score-block,
  .player-page .player-hero--legacy > .hero-stat-pair .player-score-block { min-width: 0 !important; max-width: 100% !important; width: 100% !important; }
  .player-page .player-hero--memorial > .jump-nav,
  .player-page .player-hero--legacy > .jump-nav {
    grid-column: 1 / -1 !important; grid-row: 7 !important; display: flex !important;
    flex-wrap: nowrap !important; overflow-x: auto !important; margin: 6px 0 0 !important;
  }
  .player-page .player-hero--memorial > .player-team-split-hero,
  .player-page .player-hero--legacy > .player-team-split-hero { grid-column: 1 / -1 !important; grid-row: 8 !important; }
  .player-page .player-hero--memorial > .season-context-card,
  .player-page .player-hero--legacy > .season-context-card { grid-column: 1 / -1 !important; grid-row: 8 !important; }
  .player-page .legacy-season-snapshot { padding: 13px 11px; }
  .player-page .legacy-snapshot-head h2 { font-size: 18px; }
  .player-page .legacy-overview-grid { grid-template-columns: minmax(0,1fr); }
  .player-page .legacy-overview-card { min-height: auto; padding: 15px; }
}

/* Living retired players share the data-first layout, without a memorial
   banner or an empty banner-sized first row. */
@media (min-width: 1200px) {
  .player-page .player-hero--legacy:not(.player-hero--memorial) {
    grid-template-rows: auto auto auto auto auto auto !important;
  }
  .player-page .player-hero--legacy:not(.player-hero--memorial) > .player-tier-row { grid-row: 1 !important; }
  .player-page .player-hero--legacy:not(.player-hero--memorial) > .player-name { grid-row: 2 !important; }
  .player-page .player-hero--legacy:not(.player-hero--memorial) > .player-meta { grid-row: 3 !important; }
  .player-page .player-hero--legacy:not(.player-hero--memorial) > .player-draft-season-row { grid-row: 4 !important; }
  .player-page .player-hero--legacy:not(.player-hero--memorial) > .hero-stat-pair { grid-row: 1 / 5 !important; }
  .player-page .player-hero--legacy:not(.player-hero--memorial) > .jump-nav { grid-row: 5 !important; }
  .player-page .player-hero--legacy:not(.player-hero--memorial) > .player-team-split-hero,
  .player-page .player-hero--legacy:not(.player-hero--memorial) > .season-context-card { grid-row: 6 !important; }
}
@media (max-width: 768px) {
  .player-page .player-hero--legacy:not(.player-hero--memorial) > .player-hero-photo { grid-row: 1 / 4 !important; }
  .player-page .player-hero--legacy:not(.player-hero--memorial) > .player-tier-row { grid-row: 1 !important; }
  .player-page .player-hero--legacy:not(.player-hero--memorial) > .player-name { grid-row: 2 !important; }
  .player-page .player-hero--legacy:not(.player-hero--memorial) > .player-meta { grid-row: 3 !important; }
  .player-page .player-hero--legacy:not(.player-hero--memorial) > .player-draft-season-row { grid-row: 4 !important; }
  .player-page .player-hero--legacy:not(.player-hero--memorial) > .hero-stat-pair { grid-row: 5 !important; }
  .player-page .player-hero--legacy:not(.player-hero--memorial) > .jump-nav { grid-row: 6 !important; }
  .player-page .player-hero--legacy:not(.player-hero--memorial) > .player-team-split-hero,
  .player-page .player-hero--legacy:not(.player-hero--memorial) > .season-context-card { grid-row: 7 !important; }
}

/* Older active-player rules lift the draft block by 20px on desktop.
   That collides with the metadata when a memorial banner adds a row. */
@media (min-width: 769px) {
  .player-page .player-hero--memorial > .player-draft-season-row,
  .player-page .player-hero--legacy > .player-draft-season-row { top: 0 !important; }
}

/* The regular mobile profile positions its favourite star at the top-right
   of the hero. On a memorial page that would overlap the tribute banner. */
@media (max-width: 768px) {
  .player-page .player-hero--memorial > .player-name,
  .player-page .player-hero--legacy > .player-name {
    display: flex !important; flex-wrap: wrap !important; align-items: center !important;
    gap: 7px !important; padding-right: 0 !important;
  }
  .player-page .player-hero--memorial > .player-name .fav-star-btn,
  .player-page .player-hero--legacy > .player-name .fav-star-btn {
    position: static !important; top: auto !important; right: auto !important;
    left: auto !important; inset: auto !important; transform: none !important;
    margin: 0 !important; width: 25px !important; height: 25px !important;
    min-width: 25px !important; flex: 0 0 auto !important;
  }
}

/* Bill Russell memorial portrait: centre the subject in the existing frame.
   player.css sets object-position: center top !important, which overrides the
   inline position from js/player-photos.js. This photo-only exception wins
   without changing other player portraits or the hero layout. */
.player-page .player-hero-photo > img[src*="/images/players/bill-russell.jpg"] {
  object-position: 22% 20% !important;
}

/* 2026-10-24: name + verified lifespan ONLY on the main deceased-player photo.
   Do not modify the memorial banner, player header, statistics or thumbnails. */
.player-page .player-hero--memorial > .player-hero-photo:not(.player-hero-photo--placeholder) > .player-memorial-photo-overlay {
  position: absolute !important;
  z-index: 3 !important;
  inset: auto 0 0 !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 3px !important;
  padding: 29px 4px 10px !important;
  pointer-events: none !important;
  text-align: center !important;
  background: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,.75) 62%, rgba(0,0,0,.93)) !important;
  color: #fff !important;
  text-shadow: 0 1px 3px #000 !important;
}
.player-page .player-memorial-photo-name {
  font: 700 14px/1.06 Georgia, 'Times New Roman', serif !important;
  text-transform: uppercase !important;
  letter-spacing: -.02em !important;
  overflow-wrap: anywhere !important;
  max-width: 100% !important;
}
.player-page .player-memorial-photo-years {
  font: 500 11px/1.08 Georgia, 'Times New Roman', serif !important;
  white-space: nowrap !important;
}
@media (max-width: 768px) {
  .player-page .player-memorial-photo-name { font-size: 10px !important; }
  .player-page .player-memorial-photo-years { font-size: 8px !important; }
  .player-page .player-hero--memorial > .player-hero-photo:not(.player-hero-photo--placeholder) > .player-memorial-photo-overlay {
    padding: 19px 3px 6px !important;
    gap: 2px !important;
  }
}

/* Desktop Player Bio: one portrait frame for active, retired and deceased
   players. Keep the existing object-fit: cover crop and memorial overlay.
   Extra selector specificity also applies on generated /players/{id}/ pages,
   where this stylesheet is imported before the remaining player.css rules.
   Mobile website and iOS/Android app sizes remain unchanged. */
@media (min-width: 1200px) {
  .player-page .player-hero:not(.player-hero--memorial):not(.player-hero--legacy) {
    grid-template-columns: 250px minmax(0,1fr) minmax(450px,.98fr) !important;
  }
  .player-page .player-hero:not(.player-hero--memorial):not(.player-hero--legacy) > .player-hero-photo {
    width: 250px !important; min-width: 250px !important; max-width: 250px !important;
    height: 330px !important; min-height: 330px !important; max-height: 330px !important;
  }
  .player-page .player-hero.player-hero--memorial,
  .player-page .player-hero.player-hero--legacy {
    grid-template-columns: 250px minmax(0,1fr) 190px !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-hero-photo,
  .player-page .player-hero.player-hero--legacy > .player-hero-photo {
    width: 250px !important; min-width: 250px !important; max-width: 250px !important;
    height: 330px !important; min-height: 330px !important; max-height: 330px !important;
  }
}

/* 25 Oct 2026 | Desktop memorial-only composition.
   A full-width tribute with centred dove and wording occupies the top row. Player
   identity, 250 x 330 portrait and Lean Edge Score sit together BELOW it.
   Living and retired players, and all mobile/tablet layouts, are unchanged.
   The existing verified-deceased class controls this automatically. */
@media (min-width: 1200px) {
  .player-page .player-hero.player-hero--memorial {
    grid-template-columns: 250px minmax(0, 1fr) 190px !important;
    grid-template-rows: auto auto auto auto auto auto auto !important;
    column-gap: 23px !important;
    row-gap: 9px !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    justify-self: stretch !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    grid-template-columns: 68px minmax(0, 640px) !important;
    justify-content: center !important;
    gap: 16px !important;
    padding: 13px 20px !important;
    margin: 0 0 13px !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner .player-memorial-dove {
    width: 68px !important;
    height: 68px !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner .player-memorial-banner-copy {
    padding-left: 17px !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-hero-photo {
    grid-column: 1 !important;
    grid-row: 2 / 6 !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-tier-row {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-name {
    grid-column: 2 !important;
    grid-row: 3 !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-meta {
    grid-column: 2 !important;
    grid-row: 4 !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-draft-season-row {
    grid-column: 2 !important;
    grid-row: 5 !important;
    top: 0 !important;
  }
  .player-page .player-hero.player-hero--memorial > .hero-stat-pair {
    grid-column: 3 !important;
    grid-row: 2 / 6 !important;
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
  }
  .player-page .player-hero.player-hero--memorial > .hero-stat-pair > .player-score-block {
    width: 100% !important;
    max-width: none !important;
  }
  .player-page .player-hero.player-hero--memorial > .jump-nav {
    grid-column: 1 / -1 !important;
    grid-row: 6 !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-team-split-hero,
  .player-page .player-hero.player-hero--memorial > .season-context-card {
    grid-column: 1 / -1 !important;
    grid-row: 7 !important;
  }
}


/* 25 Oct 2026 | Shared desktop Player Bio hierarchy.
   Names lead every biography and align with the top of the portrait.
   Performance-tier badges appear at the foot of the Lean Edge Score card;
   non-performance status labels remain below the name. The mobile and
   tablet layouts, portrait size, memorial text and all score data are intact. */
.player-page .player-score-tier { display: none !important; }
@media (min-width: 1200px) {
  .player-page .player-hero:is(.player-hero, .player-hero--legacy, .player-hero--memorial) {
    grid-template-rows: repeat(4, max-content) minmax(0, 1fr) auto auto auto !important;
    row-gap: 8px !important;
  }
  .player-page .player-hero:is(.player-hero, .player-hero--legacy, .player-hero--memorial) > .player-tier-row.player-tier-row--score {
    display: none !important;
  }
  .player-page .player-hero:is(.player-hero, .player-hero--legacy, .player-hero--memorial) > .player-name {
    grid-column: 2 !important;
    grid-row: 1 !important;
    margin: 0 !important;
    align-self: start !important;
  }
  .player-page .player-hero:is(.player-hero, .player-hero--legacy, .player-hero--memorial) > .player-tier-row:not(.player-tier-row--score) {
    grid-column: 2 !important;
    grid-row: 2 !important;
    margin: 0 !important;
  }
  .player-page .player-hero:is(.player-hero, .player-hero--legacy, .player-hero--memorial) > .player-meta {
    grid-column: 2 !important;
    grid-row: 3 !important;
    margin: 0 !important;
  }
  .player-page .player-hero:is(.player-hero, .player-hero--legacy, .player-hero--memorial) > .player-draft-season-row {
    grid-column: 2 !important;
    grid-row: 4 !important;
    margin: 0 !important;
    top: 0 !important;
  }
  .player-page .player-hero:is(.player-hero, .player-hero--legacy, .player-hero--memorial) > .player-hero-photo {
    grid-column: 1 !important;
    grid-row: 1 / 6 !important;
  }
  .player-page .player-hero:is(.player-hero, .player-hero--legacy, .player-hero--memorial) > .hero-stat-pair {
    grid-row: 1 / 6 !important;
  }
  .player-page .player-hero:is(.player-hero, .player-hero--legacy, .player-hero--memorial) > .current-injury-update-card {
    grid-column: 1 / -1 !important;
    grid-row: 6 !important;
  }
  .player-page .player-hero:is(.player-hero, .player-hero--legacy, .player-hero--memorial) > .jump-nav {
    grid-column: 1 / -1 !important;
    grid-row: 7 !important;
  }
  .player-page .player-hero:is(.player-hero, .player-hero--legacy, .player-hero--memorial) > .player-team-split-hero,
  .player-page .player-hero:is(.player-hero, .player-hero--legacy, .player-hero--memorial) > .season-context-card:not(.season-context-card--injury) {
    grid-column: 1 / -1 !important;
    grid-row: 8 !important;
  }
  .player-page .player-hero:is(.player-hero, .player-hero--legacy, .player-hero--memorial) .player-score-block > .player-score-tier {
    display: flex !important;
    justify-content: center !important;
    margin-top: 10px !important;
    padding-top: 9px !important;
    border-top: 1px solid rgba(255,255,255,.1) !important;
  }
  .player-page .player-hero:is(.player-hero, .player-hero--legacy, .player-hero--memorial) .player-score-tier .player-tier-badge {
    display: inline-flex !important;
    width: fit-content !important;
    font-weight: 700 !important;
  }

  /* Memorials have one independent full-width row above the shared identity
     layout. Flex centres the actual dove + text group, not a 640px grid track
     containing mostly empty space. The Lean Edge Score remains below. */
  .player-page .player-hero.player-hero--memorial {
    grid-template-rows: max-content repeat(4, max-content) minmax(0, 1fr) auto auto !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 16px !important;
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    width: 100% !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner .player-memorial-dove {
    flex: 0 0 68px !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner .player-memorial-banner-copy {
    flex: 0 1 auto !important;
    width: auto !important;
    max-width: 640px !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-name { grid-row: 2 !important; }
  .player-page .player-hero.player-hero--memorial > .player-tier-row:not(.player-tier-row--score) { grid-row: 3 !important; }
  .player-page .player-hero.player-hero--memorial > .player-meta { grid-row: 4 !important; }
  .player-page .player-hero.player-hero--memorial > .player-draft-season-row { grid-row: 5 !important; }
  .player-page .player-hero.player-hero--memorial > .player-hero-photo { grid-row: 2 / 7 !important; }
  .player-page .player-hero.player-hero--memorial > .hero-stat-pair { grid-row: 2 / 7 !important; }
  .player-page .player-hero.player-hero--memorial > .jump-nav { grid-row: 7 !important; }
}

/* 25 Oct 2026 | Compact horizontal desktop memorial only.
   Full-width tribute remains above all player performance information.
   Centre the dove and wording as one group, without a divider. Verified
   deceased status controls the layout automatically; mobile is unchanged. */
@media (min-width: 1200px) {
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner {
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 16px !important;
    min-height: 90px !important;
    padding: 12px 24px !important;
    margin-bottom: 6px !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner .player-memorial-dove {
    flex: 0 0 54px !important;
    width: 54px !important;
    height: 54px !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner .player-memorial-banner-copy {
    flex: 0 1 auto !important;
    width: auto !important;
    max-width: 760px !important;
    min-width: 0 !important;
    padding-left: 0 !important;
    border-left: 0 !important;
    text-align: left !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner .player-memorial-kicker {
    margin-bottom: 4px !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner .player-memorial-banner-copy p {
    margin: 4px 0 0 !important;
  }
}

/* 25 Oct 2026 | Approved memorial ribbon, desktop website only.
   Match the dark-blue concept: two understated gold horizontal rules, with
   the dove beside IN MEMORY + verified dates, and the tribute on line two.
   The existing deceased-player class handles all verified memorials; no
   player-specific selectors or changes to living players, mobile or apps. */
@media (min-width: 1200px) {
  /* Darker navy within the deceased-player hero only. The translucent tint
     keeps the site's existing decorative watermark subtly visible. */
  .player-page .player-hero.player-hero--memorial {
    background: rgba(2, 19, 43, .68) !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner {
    display: flex !important;
    flex-direction: row !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 12px !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 0 !important;
    padding: 8px 12px !important;
    margin: 0 0 16px !important;
    border: 0 !important;
    border-top: 1px solid #c59a45 !important;
    border-bottom: 1px solid #c59a45 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner .player-memorial-dove {
    flex: 0 0 36px !important;
    width: 36px !important;
    height: 36px !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner .player-memorial-banner-copy {
    display: grid !important;
    grid-template-columns: max-content max-content !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    column-gap: 8px !important;
    row-gap: 2px !important;
    flex: 0 1 auto !important;
    width: auto !important;
    max-width: min(760px, 100%) !important;
    min-width: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    text-align: left !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner .player-memorial-kicker {
    grid-column: 1 !important;
    grid-row: 1 !important;
    margin: 0 !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    letter-spacing: .12em !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner .player-memorial-dates {
    grid-column: 2 !important;
    grid-row: 1 !important;
    border-left: 1px solid rgba(210, 219, 234, .5) !important;
    padding-left: 8px !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner .player-memorial-banner-copy p {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    margin: 0 !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
  }
}

/* 25 Oct 2026 | Player Bio visual refresh (all player types).
   Design-only: existing portrait assets, live rank/score calculations,
   injury reporting, season selection, jump destinations and Pro sections
   are unchanged. Uses the existing player markup and verified memorial flag.
   Deliberately retains the approved compact 4-column mobile jump menu. */
.player-page .player-hero.player-hero {
  background: linear-gradient(180deg, #0e192e 0%, #081426 70%, #071225 100%) !important;
  border-color: rgba(121, 151, 192, .17) !important;
  box-shadow: 0 16px 32px rgba(0, 0, 0, .12) !important;
}
.player-page .player-hero.player-hero > .hero-stat-pair > .player-score-block,
.player-page .player-hero.player-hero > .hero-stat-pair > .position-rank-card,
.player-page .player-hero.player-hero > .hero-stat-pair > .injury-status-card {
  background: linear-gradient(155deg, #0b172a, #08111f) !important;
  border-color: rgba(111, 148, 188, .23) !important;
  border-radius: 13px !important;
  font-family: 'Barlow', sans-serif !important;
}

@media (min-width: 1200px) {
  .player-page .player-hero.player-hero > .player-name {
    font-family: 'Barlow', sans-serif !important;
    font-size: clamp(35px, 2.8vw, 40px) !important;
    font-weight: 600 !important;
    letter-spacing: -.02em !important;
    line-height: 1.06 !important;
    gap: 13px !important;
    padding-top: 2px !important;
  }
  /* Metadata is a compact set of readable chips, rather than a long grey line. */
  .player-page .player-hero.player-hero > .player-meta {
    gap: 7px !important;
    margin: 4px 0 8px !important;
    align-items: center !important;
  }
  .player-page .player-hero.player-hero > .player-meta > .player-meta-sep {
    display: none !important;
  }
  .player-page .player-hero.player-hero > .player-meta > .player-meta-item {
    padding: 5px 8px !important;
    border: 1px solid rgba(125, 152, 188, .22) !important;
    border-radius: 7px !important;
    background: rgba(5, 13, 27, .5) !important;
    color: #c5d0e2 !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
    min-height: 27px !important;
  }
  .player-page .player-hero.player-hero > .player-draft-season-row {
    gap: 8px 20px !important;
  }
  .player-page .player-hero.player-hero .player-draft-link {
    color: #8dbbea !important;
    font-weight: 800 !important;
  }
  .player-page .player-hero.player-hero .player-drafted-by {
    color: #b7c4d8 !important;
  }
  .player-page .player-hero.player-hero .compare-this-btn {
    background: #182740 !important;
    border-color: rgba(156, 177, 210, .28) !important;
    color: #fff !important;
    font-weight: 800 !important;
    box-shadow: 0 5px 12px rgba(0, 0, 0, .13) !important;
  }
  .player-page .player-hero.player-hero .compare-this-btn:hover {
    background: #243753 !important;
  }
  /* One calm score treatment on active, retired and deceased profiles. */
  .player-page .player-hero.player-hero > .hero-stat-pair > .player-score-block {
    display: grid !important;
    grid-template-columns: max-content minmax(0, 1fr) !important;
    grid-template-rows: repeat(6, max-content) !important;
    align-content: start !important;
    align-items: center !important;
    gap: 4px 8px !important;
    padding: 16px 15px !important;
  }
  .player-page .player-hero.player-hero .player-score-block > .prc-label {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    margin: 0 0 4px !important;
    color: #9aabc3 !important;
  }
  .player-page .player-hero.player-hero .player-score-block > .player-score-num {
    grid-column: 1 !important;
    grid-row: 2 !important;
    margin: 0 !important;
    color: #67aaff !important;
    font-size: clamp(40px, 3.4vw, 53px) !important;
    line-height: 1 !important;
  }
  .player-page .player-hero.player-hero .player-score-block > .player-score-tier {
    grid-column: 2 !important;
    grid-row: 2 !important;
    justify-self: start !important;
    align-self: center !important;
    border: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .player-page .player-hero.player-hero .player-score-block > .player-score-tier .player-tier-badge {
    font-size: 10px !important;
    letter-spacing: .04em !important;
    padding: 4px 8px !important;
    border-radius: 5px !important;
  }
  .player-page .player-hero.player-hero .player-score-block > .prc-pos {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
    margin: 2px 0 0 !important;
    color: #dbe4f1 !important;
    font-size: 12px !important;
    font-weight: 700 !important;
  }
  .player-page .player-hero.player-hero .player-score-block > .prc-pct {
    grid-column: 1 / -1 !important;
    grid-row: 4 !important;
    margin: 0 !important;
  }
  .player-page .player-hero.player-hero .player-score-block > .pr-movement {
    grid-column: 1 / -1 !important;
    grid-row: 5 !important;
    margin: 5px 0 0 !important;
  }
  .player-page .player-hero.player-hero .player-score-block > .prc-link {
    grid-column: 1 / -1 !important;
    grid-row: 6 !important;
    margin: 4px 0 0 !important;
    color: #87b9f3 !important;
  }
  /* A single legacy score card has enough width for the ranking at right. */
  .player-page .player-hero.player-hero--memorial,
  .player-page .player-hero.player-hero--legacy {
    grid-template-columns: 250px minmax(0, 1fr) 310px !important;
    column-gap: 23px !important;
  }
  .player-page .player-hero.player-hero--memorial > .hero-stat-pair > .player-score-block,
  .player-page .player-hero.player-hero--legacy > .hero-stat-pair > .player-score-block {
    grid-template-columns: max-content max-content minmax(0, 1fr) !important;
    grid-template-rows: repeat(4, max-content) !important;
    gap: 7px 8px !important;
    padding: 19px 18px !important;
    min-height: 170px !important;
  }
  .player-page .player-hero.player-hero--memorial .player-score-block > .prc-label,
  .player-page .player-hero.player-hero--legacy .player-score-block > .prc-label {
    grid-column: 1 / 3 !important;
    grid-row: 1 !important;
  }
  .player-page .player-hero.player-hero--memorial .player-score-block > .player-score-tier,
  .player-page .player-hero.player-hero--legacy .player-score-block > .player-score-tier {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }
  .player-page .player-hero.player-hero--memorial .player-score-block > .prc-pos,
  .player-page .player-hero.player-hero--legacy .player-score-block > .prc-pos {
    grid-column: 3 !important;
    grid-row: 1 !important;
    text-align: right !important;
    margin: 0 !important;
  }
  .player-page .player-hero.player-hero--memorial .player-score-block > .prc-pct,
  .player-page .player-hero.player-hero--legacy .player-score-block > .prc-pct {
    grid-column: 3 !important;
    grid-row: 2 !important;
    text-align: right !important;
  }
  .player-page .player-hero.player-hero--memorial .player-score-block > .pr-movement,
  .player-page .player-hero.player-hero--legacy .player-score-block > .pr-movement {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
    padding-top: 11px !important;
    border-top: 1px solid rgba(130, 155, 192, .16) !important;
  }
  .player-page .player-hero.player-hero--memorial .player-score-block > .prc-link,
  .player-page .player-hero.player-hero--legacy .player-score-block > .prc-link {
    grid-column: 1 / -1 !important;
    grid-row: 4 !important;
  }
}

/* Keep player names refined at tablet widths too; the wider desktop rule
   above and the existing mobile sizing continue to handle other viewports. */
@media (min-width: 769px) and (max-width: 1199px) {
  .player-page .player-hero.player-hero > .player-name {
    font-family: 'Barlow', sans-serif !important;
    font-size: clamp(33px, 3.7vw, 38px) !important;
    font-weight: 600 !important;
    letter-spacing: -.02em !important;
    line-height: 1.12 !important;
  }
}

/* Desktop and tablet navigation uses understated underline links. These
   remain the same jump anchors, not simulated interactive tabs. */
@media (min-width: 769px) {
  .player-page .player-hero.player-hero > .jump-nav {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: clamp(10px, 1.6vw, 23px) !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: thin !important;
    border-top: 1px solid rgba(130, 153, 185, .19) !important;
    border-bottom: 1px solid rgba(130, 153, 185, .13) !important;
    padding: 0 1px !important;
    margin: 16px 0 8px !important;
    background: rgba(4, 11, 22, .22) !important;
  }
  .player-page .player-hero.player-hero > .jump-nav > .jump-nav-item {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 42px !important;
    padding: 11px 2px 9px !important;
    margin: 0 !important;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #aebdd1 !important;
    font: 700 12px/1.2 'Barlow', sans-serif !important;
    text-transform: uppercase !important;
    letter-spacing: .055em !important;
    white-space: nowrap !important;
  }
  .player-page .player-hero.player-hero > .jump-nav > .jump-nav-item:hover,
  .player-page .player-hero.player-hero > .jump-nav > .jump-nav-item:focus-visible {
    color: #a4cafa !important;
    border-bottom-color: #6496d8 !important;
  }
}

/* 25 Oct 2026 | Slim memorial status strip, desktop and tablet.
   A single horizontal line like the approved dark-navy reference, including
   the existing white dove and dynamic memorial text. On small screens the
   longer remembrance line wraps naturally instead of overflowing. */
.player-page .player-hero.player-hero--memorial {
  background: linear-gradient(180deg, #0b1528 0%, #071225 100%) !important;
}
.player-page .player-hero.player-hero--memorial > .player-memorial-banner {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 9px !important;
  grid-column: 1 / -1 !important;
  box-sizing: border-box !important;
  width: calc(100% + 48px) !important;
  max-width: none !important;
  min-height: 42px !important;
  padding: 7px 24px !important;
  margin: -24px -24px 18px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(151, 169, 196, .17) !important;
  border-radius: 15px 15px 0 0 !important;
  background: #080f1d !important;
  box-shadow: none !important;
}
.player-page .player-hero.player-hero--memorial > .player-memorial-banner > .player-memorial-dove {
  display: block !important;
  flex: 0 0 24px !important;
  width: 24px !important;
  height: 24px !important;
  object-fit: contain !important;
}
.player-page .player-hero.player-hero--memorial > .player-memorial-banner > .player-memorial-banner-copy {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 11px !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  padding: 0 !important;
  border: 0 !important;
  text-align: left !important;
}
.player-page .player-hero.player-hero--memorial .player-memorial-kicker {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  width: max-content !important;
  margin: 0 !important;
  padding: 4px 8px !important;
  border: 1px solid rgba(201, 155, 72, .42) !important;
  border-radius: 4px !important;
  background: rgba(189, 143, 55, .10) !important;
  color: #e5b85f !important;
  font: 700 10px/1.2 'Barlow', sans-serif !important;
  letter-spacing: .09em !important;
  white-space: nowrap !important;
}
.player-page .player-hero.player-hero--memorial .player-memorial-dates {
  display: block !important;
  flex: 0 0 auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 0 0 11px !important;
  border: 0 !important;
  border-left: 1px solid rgba(201, 174, 118, .55) !important;
  color: #c9d4e5 !important;
  font: 600 11px/1.3 'Barlow', sans-serif !important;
  white-space: nowrap !important;
}
.player-page .player-hero.player-hero--memorial > .player-memorial-banner > .player-memorial-banner-copy > p {
  display: block !important;
  flex: 0 1 auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #aab9ce !important;
  font: 400 11px/1.3 'Barlow', sans-serif !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
.player-page .player-hero.player-hero--memorial > .player-memorial-banner > .player-memorial-banner-copy > p::before {
  content: '•';
  color: #76869f;
  margin-right: 10px;
}
@media (min-width: 1200px) {
  .player-page .player-hero.player-hero--memorial {
    grid-template-rows: max-content repeat(4, max-content) minmax(0, 1fr) auto auto !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner {
    grid-row: 1 !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-name { grid-row: 2 !important; }
  .player-page .player-hero.player-hero--memorial > .player-tier-row:not(.player-tier-row--score) { grid-row: 3 !important; }
  .player-page .player-hero.player-hero--memorial > .player-meta { grid-row: 4 !important; }
  .player-page .player-hero.player-hero--memorial > .player-draft-season-row { grid-row: 5 !important; }
  .player-page .player-hero.player-hero--memorial > .player-hero-photo,
  .player-page .player-hero.player-hero--memorial > .hero-stat-pair { grid-row: 2 / 7 !important; }
  .player-page .player-hero.player-hero--memorial > .jump-nav { grid-row: 7 !important; }
  .player-page .player-hero.player-hero--memorial > .player-team-split-hero,
  .player-page .player-hero.player-hero--memorial > .season-context-card { grid-row: 8 !important; }
}
@media (min-width: 769px) and (max-width: 1199px) {
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner { grid-row: 1 !important; }
  .player-page .player-hero.player-hero--memorial > .player-hero-photo { grid-row: 2 / 6 !important; }
  .player-page .player-hero.player-hero--memorial > .player-name { grid-row: 2 !important; }
  .player-page .player-hero.player-hero--memorial > .player-tier-row { grid-row: 3 !important; }
  .player-page .player-hero.player-hero--memorial > .player-meta { grid-row: 4 !important; }
  .player-page .player-hero.player-hero--memorial > .player-draft-season-row { grid-row: 5 !important; }
  .player-page .player-hero.player-hero--memorial > .hero-stat-pair { grid-row: 6 !important; }
  .player-page .player-hero.player-hero--memorial > .jump-nav { grid-row: 7 !important; }
  .player-page .player-hero.player-hero--memorial > .player-team-split-hero,
  .player-page .player-hero.player-hero--memorial > .season-context-card { grid-row: 8 !important; }
}
@media (max-width: 768px) {
  .player-page .player-hero.player-hero > .player-name {
    font-weight: 600 !important;
    letter-spacing: -.02em !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner {
    grid-row: 1 !important;
    gap: 7px !important;
    width: calc(100% + 28px) !important;
    min-height: 0 !important;
    padding: 8px 12px !important;
    margin: -14px -14px 13px !important;
    border-radius: 14px 14px 0 0 !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner > .player-memorial-dove {
    flex: 0 0 24px !important;
    width: 24px !important;
    height: 24px !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner > .player-memorial-banner-copy {
    flex-wrap: wrap !important;
    column-gap: 7px !important;
    row-gap: 4px !important;
  }
  .player-page .player-hero.player-hero--memorial .player-memorial-kicker {
    font-size: 10px !important;
    padding: 3px 6px !important;
  }
  .player-page .player-hero.player-hero--memorial .player-memorial-dates {
    font-size: 10px !important;
    white-space: normal !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner > .player-memorial-banner-copy > p {
    flex-basis: 100% !important;
    font-size: 10px !important;
    white-space: normal !important;
    overflow: visible !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner > .player-memorial-banner-copy > p::before { content: none; }
}


/* Keep the original 4-across mobile shortcuts on memorial/retired profiles.
   Earlier legacy CSS unintentionally changed them into one-item-wide rails. */
@media (max-width: 768px) {
  .player-page .player-hero.player-hero--memorial > .jump-nav,
  .player-page .player-hero.player-hero--legacy > .jump-nav {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    grid-auto-flow: row !important;
    grid-auto-rows: minmax(44px, auto) !important;
    gap: 6px !important;
    flex-wrap: initial !important;
    overflow: visible !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 10px 0 2px !important;
  }
  /* Performance grade belongs with the score, but the separate mobile
     injury status pill remains visible beside the player name. */
  .player-page .player-hero.player-hero > .player-tier-row--score > .player-tier-badge {
    display: none !important;
  }
  .player-page .player-hero.player-hero > .hero-stat-pair > .player-score-block {
    display: grid !important;
    grid-template-columns: max-content minmax(0, 1fr) !important;
    grid-template-rows: repeat(6, max-content) !important;
    align-content: start !important;
    align-items: center !important;
    gap: 4px 7px !important;
  }
  .player-page .player-hero.player-hero .player-score-block > .prc-label {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
  }
  .player-page .player-hero.player-hero .player-score-block > .player-score-num {
    grid-column: 1 !important;
    grid-row: 2 !important;
    font-size: 38px !important;
    margin: 0 !important;
  }
  .player-page .player-hero.player-hero .player-score-block > .player-score-tier {
    display: flex !important;
    grid-column: 2 !important;
    grid-row: 2 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    justify-content: flex-start !important;
  }
  .player-page .player-hero.player-hero .player-score-block > .player-score-tier > .player-tier-badge {
    font-size: 9px !important;
    letter-spacing: .02em !important;
    padding: 3px 5px !important;
  }
  .player-page .player-hero.player-hero .player-score-block > .prc-pos { grid-column: 1 / -1 !important; grid-row: 3 !important; }
  .player-page .player-hero.player-hero .player-score-block > .prc-pct { grid-column: 1 / -1 !important; grid-row: 4 !important; }
  .player-page .player-hero.player-hero .player-score-block > .pr-movement { grid-column: 1 / -1 !important; grid-row: 5 !important; }
  .player-page .player-hero.player-hero .player-score-block > .prc-link { grid-column: 1 / -1 !important; grid-row: 6 !important; }
}
@media (min-width: 769px) and (max-width: 1199px) {
  .player-page .player-hero.player-hero--memorial {
    grid-template-columns: 160px minmax(0, 1fr) 250px !important;
    grid-template-rows: max-content repeat(4, max-content) minmax(0, 1fr) auto auto !important;
    column-gap: 22px !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-hero-photo { grid-column: 1 !important; grid-row: 2 / 7 !important; }
  .player-page .player-hero.player-hero--memorial > .hero-stat-pair {
    grid-column: 3 !important;
    grid-row: 2 / 7 !important;
    align-self: start !important;
    width: 100% !important;
    margin: 0 !important;
  }
  .player-page .player-hero.player-hero--memorial > .hero-stat-pair > .player-score-block {
    display: grid !important;
    grid-template-columns: max-content minmax(0, 1fr) !important;
    grid-template-rows: repeat(6, max-content) !important;
    align-content: start !important;
    align-items: center !important;
    gap: 5px 8px !important;
    padding: 15px !important;
  }
  .player-page .player-hero.player-hero--memorial > .player-tier-row--score > .player-tier-badge { display: none !important; }
  .player-page .player-hero.player-hero--memorial .player-score-block > .player-score-tier {
    display: flex !important;
    grid-column: 2 !important;
    grid-row: 2 !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .player-page .player-hero.player-hero--memorial .player-score-block > .prc-label { grid-column: 1 / -1 !important; grid-row: 1 !important; }
  .player-page .player-hero.player-hero--memorial .player-score-block > .player-score-num { grid-column: 1 !important; grid-row: 2 !important; }
  .player-page .player-hero.player-hero--memorial .player-score-block > .prc-pos { grid-column: 1 / -1 !important; grid-row: 3 !important; }
  .player-page .player-hero.player-hero--memorial .player-score-block > .prc-pct { grid-column: 1 / -1 !important; grid-row: 4 !important; }
  .player-page .player-hero.player-hero--memorial .player-score-block > .pr-movement { grid-column: 1 / -1 !important; grid-row: 5 !important; }
  .player-page .player-hero.player-hero--memorial .player-score-block > .prc-link { grid-column: 1 / -1 !important; grid-row: 6 !important; }
  .player-page .player-hero.player-hero--memorial > .jump-nav { grid-row: 7 !important; }
  .player-page .player-hero.player-hero--memorial > .player-team-split-hero,
  .player-page .player-hero.player-hero--memorial > .season-context-card { grid-row: 8 !important; }
}
@media (min-width: 1200px) {
  /* Long labels such as EXCELLENT must fit beside the score in 3-card rows. */
  .player-page .player-hero:not(.player-hero--memorial):not(.player-hero--legacy) .player-score-block > .player-score-num {
    font-size: clamp(38px, 2.8vw, 44px) !important;
  }
  .player-page .player-hero:not(.player-hero--memorial):not(.player-hero--legacy) .player-score-block > .player-score-tier > .player-tier-badge {
    font-size: 9px !important;
    padding: 3px 5px !important;
  }
}
/* Light mode retains its established readable palette. */
html[data-les-theme="light"] .player-page .player-hero.player-hero {
  background: linear-gradient(180deg, #d8effc, #c8e9fb) !important;
  border-color: #96c6e2 !important;
}
html[data-les-theme="light"] .player-page .player-hero.player-hero > .hero-stat-pair > .player-score-block,
html[data-les-theme="light"] .player-page .player-hero.player-hero > .hero-stat-pair > .position-rank-card,
html[data-les-theme="light"] .player-page .player-hero.player-hero > .hero-stat-pair > .injury-status-card {
  background: #eaf6ff !important;
  border-color: #99c4e2 !important;
}
html[data-les-theme="light"] .player-page .player-hero.player-hero > .player-meta > .player-meta-item {
  background: rgba(255, 255, 255, .56) !important;
  color: #1c4262 !important;
  border-color: #a2c9e1 !important;
}
html[data-les-theme="light"] .player-page .player-hero.player-hero .player-score-block > .player-score-num,
html[data-les-theme="light"] .player-page .player-hero.player-hero .player-score-block > .prc-pos {
  color: #123755 !important;
}
html[data-les-theme="light"] .player-page .player-hero.player-hero > .jump-nav {
  background: rgba(255, 255, 255, .26) !important;
  border-color: #a6cbe2 !important;
}
html[data-les-theme="light"] .player-page .player-hero.player-hero > .jump-nav > .jump-nav-item {
  color: #28516f !important;
}
html[data-les-theme="light"] .player-page .player-hero.player-hero--memorial .player-memorial-dates {
  color: #c9d4e5 !important;
}
html[data-les-theme="light"] .player-page .player-hero.player-hero--memorial .player-memorial-banner-copy > p {
  color: #aab9ce !important;
}

/* Zero-game and unavailable-stat profiles keep the original honest
   awaiting-data presentation; no empty score-grid slots are introduced. */
.player-page .player-hero.player-hero > .hero-stat-pair > .player-score-block:not(:has(> .player-score-num)) {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: stretch !important;
  gap: 0 !important;
}
html[data-les-theme="light"] .player-page .player-hero.player-hero .player-score-block > .prc-label {
  color: #456a85 !important;
}
html[data-les-theme="light"] .player-page .player-hero.player-hero .player-score-block > .prc-link {
  color: #17698a !important;
}

/* Keep the subtle vertical separation between IN MEMORY and the dates,
   previously approved for the desktop tribute. */
@media (min-width: 769px) {
  .player-page .player-hero.player-hero--memorial .player-memorial-dates {
    border-left: 1px solid rgba(201, 174, 118, .55) !important;
    padding-left: 11px !important;
  }
}


/* 25 Oct 2026 | Restrained memorial lettering and Average score label.
   Keep the approved strip, existing player score, and all tier meanings intact. */
.player-page .player-hero.player-hero--memorial > .player-memorial-banner .player-memorial-kicker {
  font-family: 'Barlow', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: .075em !important;
}
@media (max-width: 768px) {
  .player-page .player-hero.player-hero--memorial > .player-memorial-banner .player-memorial-kicker {
    font-size: 10px !important;
  }
}
/* The Average grade should use the exact same blue as its displayed score.
   Do not change other tier colours, score-card borders, or score values. */
.player-page .tier-average .player-hero .player-score-block > .player-score-tier > .player-tier-badge {
  color: #67aaff !important;
}
html[data-les-theme="light"] .player-page .tier-average .player-hero .player-score-block > .player-score-tier > .player-tier-badge {
  color: #123755 !important;
}

/* Verified memorial name and lifespan remain readable even without a licensed photo. */
.player-page .player-hero--memorial > .player-hero-photo--placeholder > .player-memorial-photo-overlay {
 position:absolute !important; z-index:3 !important; inset:auto 0 0 !important; display:flex !important;
 flex-direction:column !important; align-items:center !important; justify-content:flex-end !important;
 gap:3px !important; padding:28px 4px 9px !important; text-align:center !important;
 background:linear-gradient(to bottom,transparent,rgba(0,0,0,.86)) !important; color:#fff !important;
 pointer-events:none !important;
}
@media(max-width:768px){.player-page .player-hero--memorial > .player-hero-photo--placeholder > .player-memorial-photo-overlay {padding:18px 3px 6px !important;gap:2px !important;}}
