

  .label.on-dark{color:rgba(255,255,255,0.75);}
  .label.on-dark .diamond{background:var(--gold);}

  .btn.on-white{background:var(--white); color:var(--ink); box-shadow:none;}
  .btn.on-white:hover{background:var(--paper);}
  .btn.outline-maroon{background:transparent; color:var(--maroon); border:2px solid var(--maroon); box-shadow:none; padding:15px 28px;}
  .btn.outline-maroon:hover{background:var(--maroon); color:var(--white); box-shadow:none;}
  .btn.sm{padding:12px 22px; font-size:12.5px;}

  /* ---------- NAV (matches homepage nav design; static bar since this page has no dark hero photo to overlay) ---------- */
  header.site-nav{background:var(--ink); position:relative; z-index:60;}
  .nav-inner{max-width:var(--max); margin:0 auto; padding:22px 32px; display:flex; align-items:center; justify-content:space-between;}

  section{padding:80px 0;}
  .sec-head{margin-bottom:40px;}
  .sec-head .label{color:var(--maroon); margin-bottom:14px; justify-content:center;}
  .sec-head h2{font-size:clamp(28px,3.8vw,42px);}

  /* ---------- TEAM HERO — full-bleed, text over image, like a photo book's opening spread ---------- */
  .team-hero{
    position:relative; overflow:hidden; min-height:480px; padding:0;
    background:#14120f;
  }
  .team-hero-ph{
    position:absolute; inset:0;
  }
  .team-hero-ph img{
    width:100%; height:100%; object-fit:cover; object-position:50% 55%; display:block;
    filter:contrast(1.1) saturate(0.9) brightness(0.96);
  }
  .team-hero-ph::after{
    content:""; position:absolute; inset:0; pointer-events:none; opacity:0.05; mix-blend-mode:overlay; z-index:1;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='thn'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23thn)'/></svg>");
  }
  .team-hero-scrim{
    position:absolute; inset:0; z-index:1;
    background:
      linear-gradient(to top, rgba(10,9,8,0.58) 0%, rgba(10,9,8,0.06) 46%, rgba(10,9,8,0.18) 100%),
      linear-gradient(to right, rgba(10,9,8,0.5) 0%, rgba(10,9,8,0.12) 42%, rgba(10,9,8,0) 72%);
  }
  .team-hero-text{
    position:relative; z-index:2; max-width:var(--max); margin:0 auto; padding:0 32px;
    min-height:480px; display:flex; flex-direction:column; justify-content:center;
  }
  .team-hero-text .label{color:var(--gold); margin-bottom:18px;}
  .team-hero-text .label .diamond{background:var(--gold);}
  .team-hero-text h1{color:var(--white); font-size:clamp(36px,5vw,54px); max-width:520px; line-height:1.05;}
  .team-hero-text .rule-sm{width:48px; height:2px; background:var(--gold); margin:20px 0 0;}
  .team-hero-copy{font-size:16px; color:rgba(255,255,255,0.75); max-width:460px; margin-top:16px; line-height:1.6;}

  /* ---------- PRESENTING SPONSOR ---------- */
  .presenting{background:var(--white);}
  .presenting-inner{max-width:640px; margin:0 auto; text-align:center;}
  .presenting .label{color:var(--maroon); justify-content:center; margin-bottom:10px;}
  .presenting .main-line{font-family:'Oswald',sans-serif; font-weight:600; font-size:15px; letter-spacing:0.02em; color:var(--grey-text); margin-bottom:36px;}
  .presenting-slot{
    border:none; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
    padding:48px 0; background:none;
  }
  .presenting-slot .avail{font-family:'Oswald',sans-serif; font-weight:700; font-size:24px; letter-spacing:0.02em; text-transform:uppercase; color:var(--ink);}
  .presenting-slot .avail .dot{color:var(--gold);}
  .presenting-slot p{font-size:14.5px; color:var(--grey-text); margin:14px 0 20px;}
  .presenting-slot a.inline-link{font-family:'Oswald',sans-serif; font-size:13px; font-weight:600; letter-spacing:0.03em; text-transform:uppercase; color:var(--maroon); border-bottom:2px solid var(--maroon); padding-bottom:2px;}
  .presenting-slot a.inline-link:hover{color:var(--maroon-dark); border-color:var(--maroon-dark);}

  /* ---------- ROSTER — symmetrical editorial grid, documentary treatment ---------- */
  .roster{background:var(--white); position:relative;}
  .roster-intro{position:relative; min-height:88px; margin-bottom:2px; display:flex; align-items:flex-end;}
  .big-roster-num{
    position:absolute; bottom:6px; left:-4px; z-index:0; pointer-events:none; user-select:none;
    font-family:'Oswald',sans-serif; font-weight:700; color:var(--ink); opacity:0.055;
    line-height:1; font-size:clamp(120px, 13vw, 190px);
  }
  .roster-intro .label{position:relative; z-index:1; color:var(--maroon);}
  .roster-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:36px 28px;}
  .player-card{}
  .player-photo-link{display:block;}
  .player-photo-link:hover .player-photo img{filter:contrast(1.12) saturate(0.92) brightness(1.0);}

  .player-photo{
    position:relative; aspect-ratio:3/4; border-radius:0; overflow:hidden;
    background:linear-gradient(160deg, var(--ink) 0%, #241f18 100%);
    display:flex; align-items:center; justify-content:center;
    margin-bottom:10px;
  }
  /* Player portrait: swap the file at assets/images/players/<first>-<initial>.jpg to replace a photo.
     Container keeps the 3/4 frame; the image fills it with a centered cover crop.
     If one player needs a different focal point, override object-position for that image only. */
  .player-photo img{
    position:absolute; inset:0; display:block;
    width:100%; height:100%;
    object-fit:cover; object-position:center center;
    filter:contrast(1.1) saturate(0.88) brightness(0.96);
  }
  /* Restrained grain — applied only to player portraits and the documentary insert below,
     never globally. Kept faint so it reads as photographic, not as a Photoshop effect. */
  .player-photo::after{
    content:""; position:absolute; inset:0; pointer-events:none; opacity:0.05; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  }

  /* Everett L. only — his source frame sits high, so the shared centered crop cut off the top
     of his cap and left dead grass under his feet. Nudging the focal point up keeps the whole
     cap in frame, lands his face in the upper third, and still holds the glove near center.
     Same frame, aspect ratio, radius and object-fit as every other card. */
  .player-photo img[src$="everett-l.jpg"]{
    object-position:center 15%;
  }

  /* Sam D. only — same issue, his own value. His source has a little more headroom above the
     cap than Everett's, so 20% clears the crown comfortably while keeping his jersey and belt
     near the middle of the card. Percentages are per-photo; they are not meant to match. */
  .player-photo img[src$="sam-d.jpg"]{
    object-position:center 20%;
  }
  .player-photo .num{
    font-family:'Oswald',sans-serif; font-weight:700; font-size:96px; color:rgba(255,255,255,0.14);
    line-height:1;
  }
  .player-photo .ph-tag{
    position:absolute; bottom:14px; left:0; right:0; text-align:center;
    font-family:'Oswald',sans-serif; font-size:10px; letter-spacing:0.08em; text-transform:uppercase; color:rgba(255,255,255,0.4);
  }
  .player-no{
    font-family:'Oswald',sans-serif; font-size:10px; letter-spacing:0.06em; text-transform:uppercase;
    color:var(--grey-text); font-weight:600;
  }
  .player-name{font-family:'Oswald',sans-serif; font-weight:700; font-size:16px; text-transform:uppercase; margin-top:2px; letter-spacing:0.01em;}
  .player-pos{font-family:'Oswald',sans-serif; font-size:11px; font-weight:500; letter-spacing:0.02em; text-transform:uppercase; color:var(--maroon); margin-top:2px; margin-bottom:8px;}
  .player-facts{font-size:13px; color:#4a4741;}
  .player-facts .f{margin-bottom:6px;}
  .player-facts .f b{
    display:block; font-family:'Oswald',sans-serif; font-size:10px; letter-spacing:0.05em; text-transform:uppercase; color:var(--grey-text); font-weight:600; margin-bottom:2px;
  }
  .player-walkup{
    margin-top:8px; padding-top:8px; border-top:1px solid var(--line);
    font-size:12.5px; color:var(--ink); font-style:italic;
  }
  .player-walkup .note{color:var(--gold); font-style:normal; margin-right:4px;}



  /* ---------- TEAM MOMENT ---------- */
  .team-moment{
    padding:0; background:linear-gradient(135deg, #1a1712 0%, var(--ink) 55%, #241a1a 100%);
    position:relative; overflow:hidden;
  }
  /* Full-bleed dugout photo behind the quote — wide crop, ~62% black overlay so the white
     quote stays readable while the team still shows through. Same grade + grain as the hero. */
  .team-moment-ph{position:absolute; inset:0;}
  .team-moment-ph img{
    width:100%; height:100%; object-fit:cover; object-position:50% 40%; display:block;
    filter:contrast(1.1) saturate(0.9) brightness(0.96);
  }
  .team-moment-ph::after{
    content:""; position:absolute; inset:0; pointer-events:none;
    background:rgba(0,0,0,0.62);
  }
  .team-moment::after{
    content:""; position:absolute; inset:0; pointer-events:none; opacity:0.05; mix-blend-mode:overlay; z-index:1;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='tmn'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23tmn)'/></svg>");
  }
  .team-moment-inner{
    position:relative; z-index:2;
    max-width:900px; margin:0 auto; text-align:center; padding:180px 32px;
  }
  .team-moment .quote{
    font-family:'Oswald',sans-serif; font-weight:600; font-size:clamp(24px,3.6vw,38px); color:var(--white);
    text-transform:none; letter-spacing:0; line-height:1.4; max-width:720px; margin:0 auto;
  }
  .team-moment .quote .accent{color:var(--gold);}

  /* ---------- SPONSORS — clean hierarchy via size, not experimental layout ---------- */
  .sponsors{background:var(--paper); padding-top:130px;}
  .sponsors .sec-head{text-align:center; max-width:560px; margin:0 auto 42px;}
  .sponsors .sec-head p{font-size:15.5px; color:var(--grey-text); margin-top:14px;}

  .tier-block{margin-bottom:56px;}
  .tier-block:last-child{margin-bottom:0;}
  .tier-head{display:flex; align-items:baseline; justify-content:space-between; margin-bottom:22px; flex-wrap:wrap; gap:10px;}
  .tier-head .t-name{font-family:'Oswald',sans-serif; font-weight:700; letter-spacing:0.04em; text-transform:uppercase;}

  .tier-grid{display:grid; gap:30px;}
  .tier-slot{
    border:none; border-radius:0; background:none;
    display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
    color:var(--grey-text); gap:4px;
  }
  .tier-slot .lbl{font-family:'Oswald',sans-serif; letter-spacing:0.04em; text-transform:uppercase;}

  /* MVP — most prominent: a clean rule, not a box, but the strongest of the three. Padding above
     the label kept tight so this reads as a masthead credit line, not an empty card slot. */
  .tier-block.mvp .tier-head .t-name{font-size:17px; color:var(--ink);}
  .tier-grid.mvp{grid-template-columns:repeat(3,1fr);}
  .tier-grid.mvp .tier-slot{padding:18px 16px 0; border-top:2px solid var(--ink);}
  .tier-grid.mvp .tier-slot .lbl{font-size:16px; font-weight:700; color:var(--ink);}

  /* All-Star — secondary: a lighter rule */
  .tier-block.allstar .tier-head .t-name{font-size:14px;}
  .tier-grid.allstar{grid-template-columns:repeat(3,1fr);}
  .tier-grid.allstar .tier-slot{padding:14px 12px 0; font-size:11px; border-top:1px solid var(--line);}

  /* Starting Lineup — quietest: no rule at all, just spacing. Flex (not grid) on purpose:
     with only actual, filled sponsors ever rendered in the markup (no "Open" placeholders),
     a fixed-column grid would leave reserved-looking blank space next to just one or two
     logos. Flex-wrap + justify-content:center instead centers however many logos exist as
     one balanced group, with a generous gap between them, and simply wraps to a new
     centered row as more are added — no column count to update, no redesign needed. */
  /* Starting Lineup's label sits directly above the sponsor pair as a small, centered
     category tag — not a left-aligned section heading like MVP/All-Star's .tier-head
     default (space-between) would read. Scoped to .lineup only, so MVP/All-Star keep their
     own heading treatment whenever they're reactivated. Generous margin-bottom separates
     the label from the logos below. */
  .tier-block.lineup .tier-head{justify-content:center; margin-bottom:27px;}
  .tier-block.lineup .tier-head .t-name{font-size:11px; letter-spacing:0.09em; color:var(--grey-text);}
  .tier-grid.lineup{display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:48px 72px;}
  .tier-grid.lineup .tier-slot{flex:0 0 auto; padding:10px 8px 0; font-size:10px;}
  .tier-grid.lineup .tier-slot.has-logo img{display:block; width:auto; height:auto; max-width:100%; max-height:46px; margin:0 auto;}

  /* ---------- CLOSING CTA — quiet editorial sign-off: pure white background (clean break
     between the neutral Bullpen section above and the dark footer below), centered content,
     oxblood eyebrow, the page's normal black condensed h2 (no color override needed — h2 is
     already black/uppercase/Oswald by default per base.css), and a single oxblood text-link
     CTA. No filled button, no full-width oxblood panel, no shadow. Compact on purpose —
     generous side whitespace, modest vertical padding — so it reads as a calm bridge into
     the footer rather than another banner. ---------- */
  .team-closing{background:var(--white); padding:102px 0; text-align:center;}
  .team-closing .wrap{max-width:640px;}
  .team-closing .label{color:var(--maroon); justify-content:center; margin-bottom:14px;}
  .team-closing h2{font-size:clamp(27px,3.4vw,38px);}
  .team-closing-cta{
    display:inline-flex; align-items:center; gap:7px; margin-top:26px;
    font-family:'Oswald',sans-serif; font-weight:700; letter-spacing:0.03em; font-size:15px; text-transform:uppercase;
    color:var(--maroon); border-bottom:2px solid var(--maroon); padding-bottom:4px;
    transition:color .15s ease, border-color .15s ease;
  }
  .team-closing-cta .arrow{transition:transform .15s ease;}
  .team-closing-cta:hover{color:var(--maroon-dark); border-color:var(--maroon-dark);}
  .team-closing-cta:hover .arrow{transform:translateX(3px);}

  /* ---------- RESPONSIVE ---------- */
  @media (max-width: 980px){
    .nav-links{display:none;}
    .team-hero-ph img{object-position:40% center;}
    .team-hero{min-height:420px;}
    .team-hero-text{min-height:420px;}
    .roster-grid{grid-template-columns:repeat(2,1fr); gap:26px;}
    .tier-grid.mvp{grid-template-columns:repeat(2,1fr);}
    .tier-grid.allstar{grid-template-columns:repeat(2,1fr);}
  }
  @media (max-width: 640px){
    .wrap{padding:0 20px;}
    .team-closing{padding:74px 0;}
    section{padding:70px 0;}
    .sponsors{padding-top:90px;}
    .roster-grid{grid-template-columns:1fr; gap:30px;}
    .tier-grid.mvp{grid-template-columns:1fr;}
    .tier-grid.allstar{grid-template-columns:1fr;}
    .tier-grid.lineup{gap:32px 40px;}
    .tier-grid.lineup .tier-slot{padding:14px 8px 0; font-size:11px;}
    .tier-grid.lineup .tier-slot.has-logo img{max-height:53px;}
    .team-hero{min-height:380px;}
    .team-hero-text{min-height:380px; padding:0 20px;}
    .team-moment-inner{padding:80px 20px;}
    .presenting-slot{padding:36px 0;}
  }
