@charset "UTF-8";
/* CSS Document */

  :root{
    --uvt-bg:#ffffff;
    --uvt-paper:#f6f6f8;
    --uvt-ink:#0d0d0d;
    --uvt-sub:#54545f;
    --uvt-line:#e4e4ea;
    --uvt-ga:#cc0000;
    --uvt-ga-dark:#8f0000;
    --uvt-ga-black:#0d0d0d;
    --uvt-tsu:#171796;
    --uvt-tsu-dark:#0e0e63;
    --uvt-tsu-tint:#eceafd;
    --uvt-ga-tint:#fdecec;
    --uvt-focus:#0d6efd;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth; font-size:100%;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
  }
  body{
    margin:0;
    background:var(--uvt-bg);
    color:var(--uvt-ink);
    font-family:'Roboto', Arial, sans-serif;
    font-size:1rem;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{font-weight:400;}
  p{max-width:70ch;}

  /* ---------- ACCESSIBILITY UTILITIES ---------- */
  .uvt-sr-only{
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
  }
  .uvt-skip-link{
    position:absolute; left:12px; top:-60px;
    background:var(--uvt-ink); color:#fff; padding:12px 18px;
    border-radius:4px; font-weight:700; text-decoration:none;
    z-index:1000; transition:top .2s ease;
  }
  .uvt-skip-link:focus{top:12px;}
  a{color:var(--uvt-tsu);}
  :focus-visible{outline:3px solid var(--uvt-focus); outline-offset:3px; border-radius:2px;}

  .display{
    font-family:'Bebas Neue', 'Roboto', sans-serif;
    text-transform:uppercase;
    letter-spacing:0.02em;
    font-weight:400;
  }
  .mono{
    font-family:'Roboto', Arial, sans-serif;
    font-weight:700;
    letter-spacing:0.02em;
    font-variant-numeric:tabular-nums;
  }

  .uvt-wrap{max-width:68.75rem; margin:0 auto; padding:0 clamp(16px,4vw,28px);}

  /* ---------- HERO ---------- */
  .uvt-hero{
    position:relative;
    padding:clamp(36px,7vw,64px) 0 0 0;
    overflow:hidden;
    border-bottom:1px solid var(--uvt-line);
  }
  .uvt-hero-split{
    position:absolute; inset:0;
    display:grid; grid-template-columns:1fr 1fr;
    z-index:0;
  }
  .uvt-hero-split div:first-child{background:linear-gradient(180deg, var(--uvt-ga-tint), #ffffff 85%);}
  .uvt-hero-split div:last-child{background:linear-gradient(180deg, var(--uvt-tsu-tint), #ffffff 85%);}
  .uvt-hero-inner{position:relative; z-index:1;}
  .uvt-eyebrow{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    width:100%;
    max-width:none;
    margin:0 0 18px 0;
    row-gap:6px;
    column-gap:12px;
    font-family:'Roboto', sans-serif;
    font-weight:700;
    font-size:clamp(11px,2.2vw,13px);
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--uvt-sub);
  }
  .uvt-eyebrow .uvt-team-tag-ga{color:var(--uvt-ga); font-weight:700;}
  .uvt-eyebrow .uvt-team-tag-tsu{color:var(--uvt-tsu); font-weight:700;}
  .uvt-eyebrow .uvt-sep{color:var(--uvt-sub); opacity:0.55; letter-spacing:0;}

  @media (max-width:480px){
    .uvt-eyebrow{flex-direction:column; row-gap:6px;}
    .uvt-eyebrow .uvt-sep{display:none;}
  }

  h1.uvt-matchup-heading{margin:0; padding:0;}
  .uvt-matchup{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:clamp(10px,3vw,18px);
    padding:0 8px;
  }
  .uvt-team-name{
    font-family:'Bebas Neue', sans-serif;
    font-weight:400;
    text-transform:uppercase;
    letter-spacing:0.02em;
    font-size:clamp(2.4rem, 9vw, 5.5rem);
    line-height:0.95;
    margin:0;
  }
  .uvt-team-name.uvt-ga{color:var(--uvt-ga); text-align:right;}
  .uvt-team-name.uvt-tsu{color:var(--uvt-tsu); text-align:left;}
  .uvt-team-name .uvt-sub{
    display:block;
    font-family:'Roboto', sans-serif;
    text-transform:none;
    letter-spacing:0;
    font-size:0.875rem;
    font-weight:500;
    color:var(--uvt-sub);
    margin-top:6px;
  }
  .uvt-vs{
    font-family:'Bebas Neue', sans-serif;
    font-size:clamp(18px,3.4vw,26px);
    letter-spacing:0.04em;
    color:var(--uvt-ink);
    border:2px solid var(--uvt-ink);
    border-radius:999px;
    width:clamp(44px,8vw,56px); height:clamp(44px,8vw,56px);
    display:flex; align-items:center; justify-content:center;
    background:#fff;
    flex-shrink:0;
  }
  .uvt-meta-row{
    display:flex; justify-content:center; gap:clamp(14px,4vw,28px); flex-wrap:wrap;
    margin:30px 0 0 0;
    font-size:0.875rem;
    color:var(--uvt-sub);
    text-align:center;
  }
  .uvt-meta-row strong{color:var(--uvt-ink); font-weight:700;}
  .uvt-meta-row .uvt-meta-icon{
    font-family:'Material Symbols Outlined';
    font-weight:normal;
    font-style:normal;
    font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;
    font-size:1.125rem;
    line-height:1;
    vertical-align:-3px;
    margin-right:5px;
    color:var(--uvt-ga);
    -webkit-font-smoothing:antialiased;
  }
  .uvt-record-strip{
    display:grid; grid-template-columns:1fr 1fr;
    margin-top:40px;
    border-top:1px solid var(--uvt-line);
  }
  .uvt-record-cell{
    padding:22px clamp(12px,4vw,28px);
    text-align:center;
  }
  .uvt-record-cell:first-child{border-right:1px solid var(--uvt-line);}
  .uvt-record-cell .uvt-rec{font-family:'Bebas Neue', sans-serif; font-weight:400; font-size:clamp(28px,6vw,40px);}
  .uvt-record-cell.uvt-ga .uvt-rec{color:var(--uvt-ga);}
  .uvt-record-cell.uvt-tsu .uvt-rec{color:var(--uvt-tsu);}
  .uvt-record-cell .uvt-tag{
    font-size:0.75rem; letter-spacing:0.04em;
    color:var(--uvt-sub); margin-top:4px;
  }

  /* ---------- SECTION HEADERS ---------- */
  .uvt-section{padding:clamp(40px,8vw,64px) 0;}
  .uvt-section-head{margin-bottom:34px; text-align:center;}
  .uvt-section-head h2{
    font-family:'Bebas Neue', sans-serif;
    font-weight:400;
    font-size:clamp(1.8rem,5vw,2.5rem);
    letter-spacing:0.02em;
    margin:0 0 8px 0;
    text-transform:uppercase;
  }
  .uvt-section-head p{
    color:var(--uvt-sub); font-size:0.9375rem; margin:0 auto; max-width:36em;
  }
  .uvt-section.uvt-alt{background:var(--uvt-paper); border-top:1px solid var(--uvt-line); border-bottom:1px solid var(--uvt-line);}

  /* ---------- SNAPSHOT TILES ---------- */
  .uvt-tiles{
    display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
    background:var(--uvt-line); border:1px solid var(--uvt-line);
  }
  .uvt-tile{background:#fff; padding:22px 12px; text-align:center;}
  .uvt-tile .uvt-lbl{font-size:0.6875rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--uvt-sub); margin-bottom:10px;}
  .uvt-tile .uvt-val{font-family:'Bebas Neue', sans-serif; font-weight:400; font-size:clamp(1.4rem,4vw,1.9rem); line-height:1;}
  .uvt-tile .uvt-val .uvt-ga{color:var(--uvt-ga);}
  .uvt-tile .uvt-val .uvt-tsu{color:var(--uvt-tsu);}
  .uvt-tile .uvt-val .uvt-div{color:var(--uvt-sub); font-size:70%; margin:0 4px;}

  /* ---------- TUG OF WAR BARS ---------- */
  .uvt-battle{display:flex; flex-direction:column; gap:30px;}
  .uvt-stat-row .uvt-row-label{
    text-align:center;
    font-size:0.8125rem;
    font-weight:700;
    letter-spacing:0.06em;
    text-transform:uppercase;
    color:var(--uvt-sub);
    margin-bottom:8px;
  }
  .uvt-stat-row .uvt-row-label .uvt-note{
    display:block;
    font-size:0.6875rem;
    font-weight:400;
    letter-spacing:0.02em;
    color:#8a8a96;
    margin-top:2px;
    text-transform:none;
  }
  /* Bar track: value | GA bar | TSU bar | value — all in normal flow (no
     absolute positioning) so nothing can escape the section on any width. */
  .uvt-bar-track{
    position:relative;
    display:grid;
    grid-template-columns: minmax(56px,84px) minmax(0,1fr) minmax(0,1fr) minmax(56px,84px);
    grid-template-areas: "gaval gabar tsubar tsuval";
    align-items:center;
    column-gap:clamp(8px,2vw,14px);
    min-height:34px;
  }
  .uvt-bar-track::before{
    content:'';
    position:absolute; left:50%; top:-6px; bottom:-6px; width:2px;
    background:var(--uvt-ink); transform:translateX(-50%);
  }
  .uvt-bar-left, .uvt-bar-right{
    grid-area:gabar;
    height:16px;
    display:flex; align-items:center;
    border-radius:3px;
    background:rgba(13,13,13,0.05);
    overflow:hidden;
    min-width:0;
  }
  .uvt-bar-right{grid-area:tsubar;}
  .uvt-bar-left{justify-content:flex-end;}
  .uvt-bar-right{justify-content:flex-start;}
  .uvt-bar-fill{
    height:100%;
    width:0%;
    max-width:100%;
    transition:width 1.1s cubic-bezier(.16,.84,.44,1);
  }
  .uvt-bar-fill.uvt-ga{background:linear-gradient(90deg, var(--uvt-ga-dark), var(--uvt-ga));}
  .uvt-bar-fill.uvt-tsu{background:linear-gradient(90deg, var(--uvt-tsu), var(--uvt-tsu-dark));}
  .uvt-bar-value{
    font-family:'Roboto', sans-serif;
    font-weight:700;
    font-variant-numeric:tabular-nums;
    font-size:0.8125rem;
    line-height:1.3;
    white-space:normal;
    word-break:break-word;
  }
  .uvt-bar-value-ga{grid-area:gaval; text-align:right; color:var(--uvt-ga-dark);}
  .uvt-bar-value-tsu{grid-area:tsuval; text-align:left; color:var(--uvt-tsu-dark);}

  /* ---------- PLAYER CARDS ---------- */
  .uvt-players-grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,4vw,34px);}
  .uvt-team-col-head{
    display:flex; align-items:center; gap:10px; margin-bottom:18px; padding-bottom:12px; border-bottom:3px solid;
  }
  .uvt-team-col-head.uvt-ga{border-color:var(--uvt-ga);}
  .uvt-team-col-head.uvt-tsu{border-color:var(--uvt-tsu);}
  .uvt-team-col-head .uvt-dot{width:12px; height:12px; border-radius:50%; flex-shrink:0;}
  .uvt-team-col-head.uvt-ga .uvt-dot{background:var(--uvt-ga);}
  .uvt-team-col-head.uvt-tsu .uvt-dot{background:var(--uvt-tsu);}
  .uvt-team-col-head h3{
    font-family:'Bebas Neue', sans-serif; font-weight:400; text-transform:uppercase; letter-spacing:0.02em; font-size:1.375rem; margin:0;
  }
  .uvt-team-col-head.uvt-ga h3{color:var(--uvt-ga);}
  .uvt-team-col-head.uvt-tsu h3{color:var(--uvt-tsu);}

  .uvt-player-card{
    border:1px solid var(--uvt-line);
    border-radius:6px;
    padding:16px 18px;
    margin-bottom:14px;
    display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px 14px;
  }
  .uvt-player-card .uvt-role{
    font-size:0.6875rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--uvt-sub);
    margin-bottom:3px;
  }
  .uvt-player-card .uvt-pname{font-weight:700; font-size:1.0625rem;}
  .uvt-player-card .uvt-pos{color:var(--uvt-sub); font-size:0.8125rem; font-weight:400;}
  .uvt-player-card .uvt-stats{
    text-align:right;
    font-size:0.8125rem;
    font-weight:500;
    font-variant-numeric:tabular-nums;
    color:var(--uvt-ink);
    line-height:1.5;
  }
  .uvt-player-card.uvt-ga{border-left:4px solid var(--uvt-ga);}
  .uvt-player-card.uvt-tsu{border-left:4px solid var(--uvt-tsu);}

  /* ---------- CLOSING ---------- */
  .uvt-closer{
    display:grid; grid-template-columns:1fr 1fr; gap:0;
    border:1px solid var(--uvt-line); border-radius:8px; overflow:hidden;
  }
  .uvt-closer > div{padding:clamp(20px,4vw,28px) clamp(18px,4vw,30px);}
  .uvt-closer .uvt-ga-side{background:var(--uvt-ga-tint); border-right:1px solid var(--uvt-line);}
  .uvt-closer .uvt-tsu-side{background:var(--uvt-tsu-tint);}
  .uvt-closer h3{
    font-family:'Bebas Neue', sans-serif; font-weight:400; letter-spacing:0.02em; font-size:1.25rem; margin:0 0 10px 0; text-transform:uppercase;
  }
  .uvt-closer .uvt-ga-side h3{color:var(--uvt-ga);}
  .uvt-closer .uvt-tsu-side h3{color:var(--uvt-tsu);}
  .uvt-closer p{margin:0; font-size:0.9375rem; line-height:1.65; color:#2c2c2c;}

  /* ---------- SCORE PREDICTION ---------- */
  .uvt-predict-score{
    display:flex; align-items:center; justify-content:center;
    gap:clamp(18px,5vw,48px);
    flex-wrap:wrap;
    margin-bottom:26px;
  }
  .uvt-predict-team{text-align:center;}
  .uvt-predict-name{
    font-size:0.8125rem; font-weight:700; letter-spacing:0.08em;
    text-transform:uppercase; color:var(--uvt-sub); margin-bottom:2px;
  }
  .uvt-predict-team.uvt-ga .uvt-predict-name{color:var(--uvt-ga);}
  .uvt-predict-team.uvt-tsu .uvt-predict-name{color:var(--uvt-tsu);}
  .uvt-predict-num{
    font-family:'Bebas Neue', sans-serif; font-weight:400;
    font-size:clamp(3rem,11vw,5.25rem); line-height:1;
  }
  .uvt-predict-team.uvt-ga .uvt-predict-num{color:var(--uvt-ga);}
  .uvt-predict-team.uvt-tsu .uvt-predict-num{color:var(--uvt-tsu);}
  .uvt-predict-divider{
    font-family:'Bebas Neue', sans-serif; font-size:clamp(1.5rem,4vw,2.25rem);
    color:var(--uvt-sub); align-self:center;
  }
  .uvt-predict-copy{
    max-width:68ch; margin:0 auto 30px; text-align:center;
    font-size:0.9375rem; line-height:1.7; color:#2c2c2c;
  }
  .uvt-predict-disclaimer{
    max-width:68ch; margin:22px auto 0; text-align:center;
    font-size:0.75rem; color:var(--uvt-sub); font-style:italic;
  }

  footer{
    text-align:center; padding:36px 20px 50px;
    font-size:0.75rem; color:var(--uvt-sub); line-height:1.9;
    border-top:1px solid var(--uvt-line);
  }
  footer p{max-width:56em; margin:0 auto;}

  /* ---------- RESPONSIVE BREAKPOINTS ---------- */
  @media (max-width:900px){
    .uvt-players-grid{grid-template-columns:1fr; gap:40px;}
  }

  @media (max-width:720px){
    .uvt-matchup{grid-template-columns:1fr; text-align:center;}
    .uvt-team-name.uvt-ga, .uvt-team-name.uvt-tsu{text-align:center;}
    .uvt-vs{margin:4px auto;}
    .uvt-tiles{grid-template-columns:repeat(2,1fr);}
    .uvt-closer{grid-template-columns:1fr;}
    .uvt-closer .uvt-ga-side{border-right:none; border-bottom:1px solid var(--uvt-line);}
    .uvt-predict-divider{order:2; width:100%;}
    .uvt-player-card{flex-direction:column; align-items:flex-start;}
    .uvt-player-card .uvt-stats{text-align:left;}
  }

  /* Medium screens: keep the tug-of-war layout but tighten the value
     columns so long labels like "44% (79/181)" can't push content
     outside the section. */
  @media (max-width:640px){
    .uvt-bar-track{grid-template-columns: minmax(0,58px) minmax(0,1fr) minmax(0,1fr) minmax(0,58px);}
    .uvt-bar-value{font-size:0.75rem;}
  }

  /* Small screens: the center "tug-of-war" split gets too cramped to
     read, so switch to two full-width stacked bars (Georgia, then
     Tennessee State) with the value alongside each one. */
  @media (max-width:520px){
    .uvt-bar-track{
      grid-template-columns: 1fr auto;
      grid-template-areas:
        "gabar gaval"
        "tsubar tsuval";
      row-gap:8px;
      column-gap:10px;
    }
    .uvt-bar-track::before{display:none;}
    .uvt-bar-left, .uvt-bar-right{height:14px; justify-content:flex-start;}
    .uvt-bar-value{font-size:0.8125rem;}
    .uvt-bar-value-ga, .uvt-bar-value-tsu{text-align:right;}
    .uvt-record-strip{grid-template-columns:1fr;}
    .uvt-record-cell:first-child{border-right:none; border-bottom:1px solid var(--uvt-line);}
    .uvt-tiles{grid-template-columns:1fr;}
    .uvt-meta-row{flex-direction:column; gap:8px;}
  }

  @media (prefers-reduced-motion: reduce){
    .uvt-bar-fill{transition:none;}
  }

  @media print{
    .uvt-skip-link{display:none;}
    .uvt-bar-fill{transition:none;}
  }