/* ── Single committed identity: Saturday night in Death Valley.
     Purple velvet ground, gold foil, cream newsprint type. ── */
  :root{
    --ink:        #0E0616;  /* stadium dark, purple-biased */
    --ink-2:      #170B24;  /* raised surface */
    --ink-3:      #1F1030;  /* row surface */
    --purple:     #461D7C;  /* LSU purple */
    --purple-lit: #6B2FB5;
    --gold:       #FDD023;  /* LSU gold */
    --gold-deep:  #C99A00;
    --cream:      #F6EFE0;
    --muted:      #A794BC;  /* neutral biased toward the purple */
    --line:       #33204A;
    --win:        #57C08A;
    --loss:       #E0574E;
    --maxw: 1000px;
  }

  *{box-sizing:border-box;}

  body{
    background:
      radial-gradient(1200px 520px at 50% -180px, #2C1247 0%, rgba(44,18,71,0) 70%),
      var(--ink);
    color:var(--cream);
    font-family:"Archivo","Helvetica Neue",Arial,sans-serif;
    font-size:15px;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
    padding:0 20px 64px;
  }

  .wrap{max-width:var(--maxw);margin:0 auto;}

  /* ───────── Header: a Mardi Gras playbill band ───────── */
  .playbill{
    display:flex;align-items:center;gap:26px;
    padding:30px 0 26px;
    border-bottom:2px solid var(--gold);
    position:relative;
  }
  .playbill::after{
    content:"";position:absolute;left:0;right:0;bottom:-6px;
    height:2px;background:var(--gold-deep);opacity:.5;
  }
  .mascot{
    width:132px;height:132px;flex:0 0 auto;
    filter:drop-shadow(0 6px 22px rgba(253,208,35,.28));
  }
  .titles{flex:1 1 auto;min-width:0;}
  .eyebrow{
    font-family:"Archivo",sans-serif;font-size:11px;font-weight:600;
    letter-spacing:.22em;text-transform:uppercase;color:var(--gold);
    margin:0 0 6px;
  }
  h1{
    font-family:"Bevan","Georgia",serif;font-weight:400;
    font-size:clamp(30px,6.4vw,54px);line-height:.98;
    margin:0;color:var(--cream);text-wrap:balance;
    text-shadow:0 3px 0 rgba(70,29,124,.9);
  }
  h1 .gold{color:var(--gold);}
  .coachline{
    margin:10px 0 0;font-size:13px;color:var(--muted);
  }

  .records{
    display:flex;gap:10px;flex:0 0 auto;
  }
  .rec{
    background:var(--ink-2);border:1px solid var(--line);
    border-top:3px solid var(--gold);
    padding:12px 18px 11px;text-align:center;min-width:98px;
  }
  .rec dt{
    font-size:10px;font-weight:700;letter-spacing:.18em;
    text-transform:uppercase;color:var(--muted);margin:0 0 2px;
  }
  .rec dd{
    margin:0;font-family:"Big Shoulders Display",Impact,sans-serif;
    font-weight:800;font-size:34px;line-height:1;color:var(--cream);
    font-variant-numeric:tabular-nums;
  }
  .rec.ap dd{color:var(--gold);}

  /* ───────── Next up ───────── */
  .next{
    margin-top:34px;
    background:linear-gradient(105deg,var(--purple) 0%,#2E1252 62%,var(--ink-2) 100%);
    border:1px solid var(--purple-lit);
    padding:22px 26px 24px;
    display:grid;grid-template-columns:1fr auto;gap:20px;align-items:end;
  }
  .next .eyebrow{color:var(--gold);margin-bottom:8px;}
  .next h2{
    font-family:"Big Shoulders Display",Impact,sans-serif;
    font-weight:800;font-size:clamp(28px,5vw,44px);line-height:1;
    margin:0;letter-spacing:.01em;text-transform:uppercase;
  }
  .next .meta{
    margin:12px 0 0;color:#E4D8F0;font-size:14px;
    display:flex;flex-wrap:wrap;gap:6px 18px;
  }
  .next .meta b{color:var(--gold);font-weight:600;}
  .next h2 .rk{color:var(--gold);font-size:.66em;vertical-align:.14em;margin-right:.22em;}
  .next h2 .at{opacity:.65;}

  /* betting line — a strip, not a card; it's an aside to the matchup */
  .line{
    margin:16px 0 0;padding-top:13px;border-top:1px solid rgba(253,208,35,.28);
    display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 22px;
  }
  .line .num{
    font-family:"Big Shoulders Display",Impact,sans-serif;font-weight:800;
    font-size:23px;color:var(--cream);font-variant-numeric:tabular-nums;
    letter-spacing:.01em;
  }
  .line .num span{color:var(--gold);}
  .line .lbl{
    font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
    color:#BCA6D2;margin-right:-14px;
  }
  .line .asof{
    font-size:11.5px;color:#B7A2CC;margin-left:auto;text-align:right;
  }
  .kick{
    text-align:right;font-family:"Big Shoulders Display",Impact,sans-serif;
    font-weight:800;font-size:40px;line-height:.95;color:var(--gold);
    font-variant-numeric:tabular-nums;white-space:nowrap;
  }
  .kick small{
    display:block;font-family:"Archivo",sans-serif;font-weight:600;
    font-size:10px;letter-spacing:.18em;text-transform:uppercase;
    color:#CDB8E0;margin-top:6px;
  }

  /* ───────── Availability report ───────── */
  .avail{
    margin-top:2px;
    background:var(--ink-2);
    border:1px solid var(--line);
    border-top:3px solid var(--gold-deep);
    padding:18px 26px 20px;
  }
  .avail .hd{
    display:flex;align-items:baseline;gap:8px 18px;flex-wrap:wrap;margin:0 0 14px;
  }
  .avail .hd .eyebrow{margin:0;color:var(--gold);}
  .avail .hd .asof{font-size:11.5px;color:var(--muted);margin-left:auto;text-align:right;}
  .avail .cols{display:grid;grid-template-columns:1fr 1fr;gap:20px 34px;}
  .avail h4{
    font-family:"Big Shoulders Display",Impact,sans-serif;font-weight:800;
    font-size:17px;letter-spacing:.06em;text-transform:uppercase;
    color:var(--cream);margin:0 0 8px;padding-bottom:6px;
    border-bottom:1px solid var(--line);
  }
  .avail ul{list-style:none;margin:0;padding:0;}
  .avail li{display:flex;align-items:baseline;gap:10px;padding:4px 0;font-size:13.5px;}
  .avail li .pos{
    color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.1em;
    text-transform:uppercase;min-width:28px;flex:0 0 auto;
  }
  .avail li .nm{color:var(--cream);flex:1 1 auto;min-width:0;}
  .avail li .st{
    font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
    padding:3px 7px;white-space:nowrap;flex:0 0 auto;
  }
  .st.out{background:var(--loss);color:var(--ink);}
  .st.doubtful{color:var(--loss);border:1px solid var(--loss);}
  .st.questionable,.st.gtd{color:var(--gold);border:1px solid var(--gold-deep);}
  .st.probable{color:var(--muted);border:1px solid var(--line);}
  .st.available{color:var(--win);border:1px solid var(--win);}
  .avail .none{color:var(--muted);font-size:13px;margin:0;}

  /* ───────── Schedule ───────── */
  .sched-head{
    display:flex;align-items:baseline;justify-content:space-between;
    gap:16px;margin:44px 0 12px;flex-wrap:wrap;
  }
  .sched-head h3{
    font-family:"Bevan",Georgia,serif;font-weight:400;font-size:22px;
    margin:0;color:var(--cream);
  }
  .legend{font-size:11px;color:var(--muted);letter-spacing:.06em;}
  .legend i{
    display:inline-block;width:3px;height:11px;background:var(--gold);
    vertical-align:-1px;margin-right:5px;font-style:normal;
  }

  ol.games{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;}

  .game{
    display:grid;
    grid-template-columns:78px 1fr auto;
    gap:0 18px;align-items:center;
    background:var(--ink-2);
    border-left:3px solid transparent;
    padding:13px 18px 13px 15px;
  }
  .game.conf{border-left-color:var(--gold);}
  .game.played{background:var(--ink-3);}

  .when{
    font-family:"Big Shoulders Display",Impact,sans-serif;
    font-weight:600;font-size:13px;letter-spacing:.1em;
    text-transform:uppercase;color:var(--muted);
    font-variant-numeric:tabular-nums;line-height:1.25;
  }
  .when b{display:block;font-weight:800;font-size:21px;color:var(--gold);letter-spacing:.02em;white-space:nowrap;}

  .who{min-width:0;}
  .opp{
    font-family:"Big Shoulders Display",Impact,sans-serif;
    font-weight:800;font-size:26px;line-height:1.05;
    text-transform:uppercase;letter-spacing:.01em;color:var(--cream);
    margin:0;
  }
  .opp .at{color:var(--muted);font-weight:600;font-size:19px;margin-right:6px;}
  .opp .rk{color:var(--gold);font-size:18px;vertical-align:.1em;margin-right:5px;}
  .venue{margin:2px 0 0;font-size:12.5px;color:var(--muted);}
  .venue .dv{color:var(--gold-deep);}

  .right{text-align:right;white-space:nowrap;display:flex;align-items:center;gap:14px;justify-content:flex-end;}
  .tv{
    font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
    color:var(--muted);border:1px solid var(--line);padding:4px 8px;
  }
  .time{
    font-family:"Big Shoulders Display",Impact,sans-serif;font-weight:600;
    font-size:19px;color:#D8CBE6;font-variant-numeric:tabular-nums;
  }
  .score{
    font-family:"Big Shoulders Display",Impact,sans-serif;font-weight:800;
    font-size:28px;line-height:1;color:var(--cream);font-variant-numeric:tabular-nums;
  }
  .wl{
    font-family:"Big Shoulders Display",Impact,sans-serif;font-weight:800;
    font-size:26px;width:34px;height:34px;display:grid;place-items:center;
    color:var(--ink);
  }
  .wl.w{background:var(--win);}
  .wl.l{background:var(--loss);}

  /* bye week is a rule, not a card — it isn't a game */
  .bye{
    display:flex;align-items:center;gap:14px;
    padding:9px 2px;color:var(--muted);
    font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  }
  .bye::before,.bye::after{content:"";height:1px;background:var(--line);flex:1;}

  footer{
    margin-top:40px;padding-top:18px;border-top:1px solid var(--line);
    font-size:12.5px;color:var(--muted);display:flex;
    justify-content:space-between;gap:14px;flex-wrap:wrap;
  }
  footer a{color:var(--gold-deep);text-decoration:none;border-bottom:1px solid rgba(201,154,0,.35);}
  footer a:hover{color:var(--gold);}
  a:focus-visible,li:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}

  @media (max-width:720px){
    .playbill{flex-wrap:wrap;gap:16px;}
    .mascot{width:92px;height:92px;}
    .records{width:100%;}
    .rec{flex:1;min-width:0;}
    .next{grid-template-columns:1fr;}
    .avail{padding:16px 18px 18px;}
    .avail .cols{grid-template-columns:1fr;}
    .avail .hd .asof{margin-left:0;text-align:left;}
    .kick{text-align:left;}
    .game{grid-template-columns:74px 1fr;row-gap:9px;}
    .when b{font-size:18px;}
    .right{grid-column:1 / -1;justify-content:flex-start;}
    .opp{font-size:22px;}
    .venue .dv{display:none;}
    h1{font-size:34px;}
  }
  @media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}}
  /* ───────── Live freshness stamp (site build) ───────── */
  .pulse{
    display:inline-block;width:7px;height:7px;border-radius:50%;
    background:var(--win);margin-right:7px;vertical-align:1px;
    box-shadow:0 0 0 0 rgba(87,192,138,.7);
  }
  .pulse.stale{background:var(--gold-deep);box-shadow:none;}
  .pulse.err{background:var(--loss);box-shadow:none;}
  @media (prefers-reduced-motion:no-preference){
    .pulse{animation:beat 3.2s ease-out infinite;}
    @keyframes beat{
      0%{box-shadow:0 0 0 0 rgba(87,192,138,.55);}
      70%{box-shadow:0 0 0 7px rgba(87,192,138,0);}
      100%{box-shadow:0 0 0 0 rgba(87,192,138,0);}
    }
    .pulse.stale,.pulse.err{animation:none;}
  }
  footer .disclaimer{
    flex-basis:100%;color:#7E6B92;font-size:11.5px;line-height:1.5;
    border-top:1px solid var(--line);padding-top:12px;margin-top:2px;
  }
  .boot{
    padding:40px 0;color:var(--muted);font-size:13px;letter-spacing:.06em;
    text-transform:uppercase;font-weight:600;
  }
