<style>
  @page { size: Letter; margin: 0.48in; }
  body { font-family: -apple-system, BlinkMacSystemFont, "Inter", "Helvetica Neue", Arial, sans-serif; color: #17202a; background: #ffffff; }
  h1, h2, h3 { margin: 0; line-height: 1.05; }
  h1 { font-size: 42px; letter-spacing: -1.4px; }
  h2 { font-size: 25px; margin-bottom: 14px; letter-spacing: -0.5px; }
  h3 { font-size: 15px; margin-bottom: 7px; text-transform: uppercase; letter-spacing: 1.1px; color: #516070; }
  p { font-size: 11.4px; line-height: 1.48; margin: 0 0 9px 0; }
  table { width: 100%; border-collapse: collapse; font-size: 10.3px; margin: 10px 0 14px; }
  th { background: #13202d; color: #ffffff; text-transform: uppercase; font-size: 8.8px; letter-spacing: 0.6px; padding: 7px; text-align: left; }
  td { padding: 7px; border-bottom: 1px solid #d8dee6; }
  .page { min-height: 9.48in; position: relative; }
  .page-break { page-break-before: always; }
  .kicker { color: #9fb3c8; font-size: 10px; text-transform: uppercase; letter-spacing: 1.6px; font-weight: 800; }
  .cover { background: linear-gradient(135deg, #07111c 0%, #13263a 55%, #07111c 100%); color: #ffffff; padding: 34px; border-radius: 22px; height: 8.55in; position: relative; overflow: hidden; }
  .cover:before { content: ""; position: absolute; right: -80px; top: -100px; width: 360px; height: 360px; border-radius: 50%; background: rgba(210, 16, 52, 0.28); }
  .cover:after { content: ""; position: absolute; left: -70px; bottom: -90px; width: 300px; height: 300px; border-radius: 50%; background: rgba(0, 163, 224, 0.22); }
  .cover-inner { position: relative; z-index: 2; }
  .match-band { display: flex; align-items: stretch; margin: 30px 0; border-radius: 20px; overflow: hidden; border: 1px solid rgba(255,255,255,0.22); }
  .team { flex: 1; padding: 22px 18px; }
  .lou { background: #d21034; }
  .ole { background: #08294d; border-left: 8px solid #6bb7d6; }
  .team-name { font-size: 27px; font-weight: 900; letter-spacing: -0.8px; }
  .team-meta { margin-top: 6px; font-size: 10px; opacity: 0.82; text-transform: uppercase; letter-spacing: 1px; }
  .vs { width: 58px; display: flex; align-items: center; justify-content: center; background: #ffffff; color: #07111c; font-weight: 900; font-size: 16px; }
  .verdict { background: rgba(255,255,255,0.10); border: 1px solid rgba(255,255,255,0.18); padding: 18px; border-radius: 16px; margin-top: 20px; }
  .verdict strong { color: #ffffff; }
  .stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 15px 0; }
  .stat { background: #f4f7fa; border: 1px solid #dce4ed; border-radius: 13px; padding: 12px; min-height: 68px; }
  .stat.dark { background: #101b27; color: #ffffff; border-color: #24384d; }
  .stat .label { font-size: 8.5px; text-transform: uppercase; letter-spacing: 0.9px; color: #697a8d; font-weight: 800; margin-bottom: 7px; }
  .stat.dark .label { color: #9fb3c8; }
  .stat .value { font-size: 25px; font-weight: 900; letter-spacing: -0.8px; }
  .stat .note { font-size: 9.5px; color: #697a8d; margin-top: 4px; }
  .stat.dark .note { color: #c8d6e4; }
  .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
  .card { border: 1px solid #dce4ed; border-radius: 15px; padding: 14px; background: #ffffff; }
  .callout { border-left: 5px solid #d21034; background: #fff4f6; padding: 12px 14px; border-radius: 10px; margin: 12px 0; }
  .callout.blue { border-left-color: #6bb7d6; background: #f1f9fd; }
  .callout.dark { border-left-color: #13202d; background: #f4f7fa; }
  .pill { display: inline-block; border-radius: 999px; padding: 5px 9px; font-size: 9px; text-transform: uppercase; letter-spacing: 0.8px; font-weight: 900; margin-right: 6px; }
  .pill.red { background: #d21034; color: #ffffff; }
  .pill.blue { background: #08294d; color: #ffffff; border: 1px solid #6bb7d6; }
  .pill.gray { background: #e8edf3; color: #263544; }
  .caption { font-size: 8.8px; color: #697a8d; line-height: 1.35; }
  .footer { position: absolute; bottom: 0; left: 0; right: 0; font-size: 8.5px; color: #758497; border-top: 1px solid #e0e6ee; padding-top: 7px; }
  .edge-lou { color: #b40e2d; font-weight: 900; }
  .edge-ole { color: #08294d; font-weight: 900; }
  .big-number { font-size: 48px; font-weight: 950; letter-spacing: -2px; }
  .section-rule { height: 5px; width: 72px; background: linear-gradient(90deg, #d21034, #6bb7d6); border-radius: 999px; margin: 4px 0 18px; }
  svg { max-width: 100%; }
</style>

<div class="page cover">
  <div class="cover-inner">
    <div class="kicker">Music City Kickoff · Week 1 Preview</div>
    <h1 style="margin-top:18px; max-width: 640px;">Louisville vs Ole Miss</h1>
    <p style="font-size:15px; color:#d8e5f3; margin-top:10px; max-width: 620px;">A designed betting-desk report built from CFBD data: market movement, team quality, returning production, matchup edges, and the clean read.</p>
    <div class="match-band">
      <div class="team lou"><div class="team-name">Louisville</div><div class="team-meta">ACC · 2025: 8-4 · SP #25</div></div>
      <div class="vs">VS</div>
      <div class="team ole"><div class="team-name">Ole Miss</div><div class="team-meta">SEC · 2025: 11-1 · SP #7</div></div>
    </div>
    <div class="stat-grid">
      <div class="stat dark"><div class="label">Kickoff</div><div class="value" style="font-size:20px;">Sep 6</div><div class="note">7:30 PM ET · ABC</div></div>
      <div class="stat dark"><div class="label">Venue</div><div class="value" style="font-size:20px;">Nissan</div><div class="note">Neutral site · Nashville</div></div>
      <div class="stat dark"><div class="label">Spread</div><div class="value" style="font-size:20px;">MISS -6.5</div><div class="note">Opened -8.5</div></div>
      <div class="stat dark"><div class="label">Total</div><div class="value" style="font-size:20px;">56.5</div><div class="note">Opened 52.5</div></div>
    </div>
    <div class="verdict">
      <h2 style="font-size:22px; color:#ffffff; margin-bottom:8px;">Executive read</h2>
      <p style="font-size:13px; color:#e8f0f8;"><strong>Ole Miss should be favored, but the number is no bargain.</strong> SP, Elo, and talent say Ole Miss is materially better. Returning production says the Rebels are rebuilding the engine that made the 2025 offense elite. Louisville +6.5 is live; Under 56.5 is the cleaner angle if the market is overpaying for last year's Ole Miss offense.</p>
    </div>
  </div>
  <div class="footer" style="color:#9fb3c8; border-color:rgba(255,255,255,0.18);">Sources: CFBD games, lines, SP, Elo, talent, advanced stats, returning production · Generated 2026-07-29</div>
</div>

<div class="page page-break">
  <div class="kicker">Page 2 · Market</div>
  <h2>Betting Market</h2>
  <div class="section-rule"></div>
  <div class="stat-grid">
    <div class="stat"><div class="label">Bovada spread</div><div class="value">-6.5</div><div class="note">Ole Miss opened -8.5</div></div>
    <div class="stat"><div class="label">DraftKings spread</div><div class="value">-6.5</div><div class="note">Consensus-ish</div></div>
    <div class="stat"><div class="label">Moneyline</div><div class="value" style="font-size:20px;">-270 / +220</div><div class="note">Bovada</div></div>
    <div class="stat"><div class="label">Total</div><div class="value">56.5</div><div class="note">Opened 52.5</div></div>
  </div>
  <table>
    <tr><th>Book</th><th>Spread</th><th>Moneyline</th><th>Total</th><th>Movement</th></tr>
    <tr><td>Bovada</td><td>Ole Miss -6.5</td><td>Ole Miss -270 / Louisville +220</td><td>56.5</td><td>Spread toward Louisville; total up 4.0</td></tr>
    <tr><td>DraftKings</td><td>Ole Miss -6.5</td><td>Ole Miss -278 / Louisville +225</td><td>55.5</td><td>No opener published in CFBD payload</td></tr>
  </table>
  <div class="two-col">
    <div class="card">
      <h3>Line movement</h3>
      <svg width="315" height="168" viewBox="0 0 315 168" role="img" aria-label="Spread moved from Ole Miss minus 8.5 to minus 6.5 and total moved from 52.5 to 56.5">
        <rect x="0" y="0" width="315" height="168" rx="14" fill="#f4f7fa"/>
        <text x="16" y="25" font-size="12" font-weight="800" fill="#17202a">Spread & Total Movement</text>
        <line x1="42" y1="124" x2="142" y2="74" stroke="#d21034" stroke-width="5" stroke-linecap="round"/>
        <circle cx="42" cy="124" r="6" fill="#d21034"/><circle cx="142" cy="74" r="6" fill="#d21034"/>
        <text x="22" y="144" font-size="10" fill="#516070">-8.5 open</text><text x="122" y="65" font-size="10" fill="#516070">-6.5 now</text>
        <line x1="178" y1="124" x2="278" y2="50" stroke="#08294d" stroke-width="5" stroke-linecap="round"/>
        <circle cx="178" cy="124" r="6" fill="#08294d"/><circle cx="278" cy="50" r="6" fill="#08294d"/>
        <text x="155" y="144" font-size="10" fill="#516070">52.5 open</text><text x="246" y="42" font-size="10" fill="#516070">56.5 now</text>
        <text x="48" y="38" font-size="9" fill="#b40e2d" font-weight="800">Louisville money</text>
        <text x="193" y="38" font-size="9" fill="#08294d" font-weight="800">More points priced in</text>
      </svg>
    </div>
    <div class="card">
      <h3>Implied probability</h3>
      <table style="font-size:9.8px; margin-top:4px;"><tr><th>Side</th><th>Odds</th><th>Implied</th></tr><tr><td>Ole Miss ML</td><td>-270</td><td>73.0%</td></tr><tr><td>Louisville ML</td><td>+220</td><td>31.3%</td></tr><tr><td>Ole Miss ML DK</td><td>-278</td><td>73.5%</td></tr><tr><td>Louisville ML DK</td><td>+225</td><td>30.8%</td></tr></table>
      <p class="caption">The moneyline carries normal vig, so both implied probabilities sum above 100%. Treat these as market prices, not true probabilities.</p>
    </div>
  </div>
  <div class="callout blue"><strong>The market story:</strong> Ole Miss is still favored by roughly a touchdown, but the spread has moved two points toward Louisville while the total climbed. That is not a quiet market.</div>
  <div class="footer">Market data from CFBD /lines for 2026 Week 1, game id 401856661.</div>
</div>

<div class="page page-break">
  <div class="kicker">Page 3 · Team Quality</div>
  <h2>Team Comparison</h2>
  <div class="section-rule"></div>
  <div class="stat-grid">
    <div class="stat"><div class="label">SP rating</div><div class="value"><span class="edge-ole">24.0</span></div><div class="note">Ole Miss #7 · Louisville 12.4</div></div>
    <div class="stat"><div class="label">Final Elo</div><div class="value"><span class="edge-ole">2009</span></div><div class="note">Louisville 1749</div></div>
    <div class="stat"><div class="label">Talent</div><div class="value"><span class="edge-ole">813</span></div><div class="note">Louisville 701</div></div>
    <div class="stat"><div class="label">Record</div><div class="value"><span class="edge-ole">11-1</span></div><div class="note">Louisville 8-4</div></div>
  </div>
  <table>
    <tr><th>Metric</th><th>Louisville</th><th>Ole Miss</th><th>Edge</th></tr>
    <tr><td>2025 record</td><td>8-4</td><td>11-1</td><td class="edge-ole">Ole Miss</td></tr>
    <tr><td>SP overall</td><td>12.4 (#25)</td><td>24.0 (#7)</td><td class="edge-ole">Ole Miss</td></tr>
    <tr><td>SP offense</td><td>#39 · 31.6</td><td>#3 · 40.4</td><td class="edge-ole">Ole Miss</td></tr>
    <tr><td>SP defense</td><td>#29 · 19.8</td><td>#20 · 18.3</td><td class="edge-ole">Ole Miss by SP rank</td></tr>
    <tr><td>Final Elo</td><td>1749</td><td>2009</td><td class="edge-ole">Ole Miss +260</td></tr>
    <tr><td>Talent composite</td><td>700.77</td><td>813.11</td><td class="edge-ole">Ole Miss +112.34</td></tr>
  </table>
  <div class="two-col">
    <div class="card">
      <h3>Ole Miss case</h3>
      <p><span class="pill blue">Favorite</span> SP #7, Elo +260, talent +112. The raw power profile says the Rebels are a clear favorite even on a neutral field.</p>
      <p>That 2025 offense was elite: #3 SP offense, 0.307 EPA/play, 4.44 points per scoring opportunity.</p>
    </div>
    <div class="card">
      <h3>Louisville case</h3>
      <p><span class="pill red">Live dog</span> Louisville's defensive efficiency was better by raw advanced stats, and the returning-production profile is cleaner.</p>
      <p>The Cardinals do not need to be better overall to cover +6.5. They need the rebuilt Ole Miss offense to start slowly.</p>
    </div>
  </div>
  <div class="footer">SP, Elo, and talent are 2025 fallback sources because 2026 preseason team quality fields are not yet fully published.</div>
</div>

<div class="page page-break">
  <div class="kicker">Page 4 · The Money Page</div>
  <h2>Returning Production</h2>
  <div class="section-rule"></div>
  <p style="font-size:13px; max-width:670px;"><strong>This is the fulcrum of the matchup.</strong> Ole Miss was clearly better in 2025, but the Rebels return only 17.5% of total PPA and almost none of the rushing production. Louisville returns nearly half of total PPA and almost the whole rushing profile.</p>
  <svg width="690" height="318" viewBox="0 0 690 318" role="img" aria-label="Returning production bars comparing Louisville and Ole Miss">
    <rect width="690" height="318" rx="18" fill="#f4f7fa"/>
    <text x="26" y="32" font-size="15" font-weight="900" fill="#17202a">Returning PPA Share</text>
    <text x="26" y="52" font-size="10" fill="#697a8d">CFBD /player/returning · 2025 values as proxy entering 2026</text>
    <line x1="178" y1="80" x2="178" y2="270" stroke="#d8dee6"/>
    <line x1="278" y1="80" x2="278" y2="270" stroke="#d8dee6"/>
    <line x1="378" y1="80" x2="378" y2="270" stroke="#d8dee6"/>
    <line x1="478" y1="80" x2="478" y2="270" stroke="#d8dee6"/>
    <line x1="578" y1="80" x2="578" y2="270" stroke="#d8dee6"/>
    <text x="76" y="77" font-size="9" fill="#697a8d">0%</text><text x="169" y="77" font-size="9" fill="#697a8d">20%</text><text x="269" y="77" font-size="9" fill="#697a8d">40%</text><text x="369" y="77" font-size="9" fill="#697a8d">60%</text><text x="469" y="77" font-size="9" fill="#697a8d">80%</text><text x="569" y="77" font-size="9" fill="#697a8d">100%</text>
    <text x="26" y="106" font-size="11" font-weight="800" fill="#17202a">Total PPA</text>
    <rect x="98" y="92" width="232" height="17" rx="8" fill="#d21034"/><text x="337" y="105" font-size="10" font-weight="800" fill="#b40e2d">Louisville 46.4%</text>
    <rect x="98" y="114" width="88" height="17" rx="8" fill="#08294d"/><text x="193" y="127" font-size="10" font-weight="800" fill="#08294d">Ole Miss 17.5%</text>
    <text x="26" y="157" font-size="11" font-weight="800" fill="#17202a">Passing</text>
    <rect x="98" y="143" width="47" height="17" rx="8" fill="#d21034"/><text x="154" y="156" font-size="10" fill="#b40e2d" font-weight="800">9.4%</text>
    <rect x="98" y="165" width="22" height="17" rx="8" fill="#08294d"/><text x="130" y="178" font-size="10" fill="#08294d" font-weight="800">4.3%</text>
    <text x="26" y="208" font-size="11" font-weight="800" fill="#17202a">Rushing</text>
    <rect x="98" y="194" width="437" height="17" rx="8" fill="#d21034"/><text x="545" y="207" font-size="10" fill="#b40e2d" font-weight="800">87.4%</text>
    <rect x="98" y="216" width="31" height="17" rx="8" fill="#08294d"/><text x="139" y="229" font-size="10" fill="#08294d" font-weight="800">6.1%</text>
    <text x="26" y="259" font-size="11" font-weight="800" fill="#17202a">Receiving</text>
    <rect x="98" y="245" width="278" height="17" rx="8" fill="#d21034"/><text x="386" y="258" font-size="10" fill="#b40e2d" font-weight="800">55.5%</text>
    <rect x="98" y="267" width="151" height="17" rx="8" fill="#08294d"/><text x="259" y="280" font-size="10" fill="#08294d" font-weight="800">30.2%</text>
    <circle cx="590" cy="110" r="5" fill="#d21034"/><text x="602" y="114" font-size="10" fill="#17202a">Louisville</text><circle cx="590" cy="130" r="5" fill="#08294d"/><text x="602" y="134" font-size="10" fill="#17202a">Ole Miss</text>
  </svg>
  <div class="callout"><strong>The read:</strong> Ole Miss is laying nearly a touchdown while replacing 82.5% of total PPA and 93.9% of rushing PPA. That does not make Louisville the better team. It does make Louisville +6.5 less dumb than the brand gap suggests.</div>
  <div class="footer">Returning production: Louisville total 46.4%, passing 9.4%, receiving 55.5%, rushing 87.4%; Ole Miss total 17.5%, passing 4.3%, receiving 30.2%, rushing 6.1%.</div>
</div>

<div class="page page-break">
  <div class="kicker">Page 5 · Matchup Read</div>
  <h2>Efficiency Edges</h2>
  <div class="section-rule"></div>
  <table>
    <tr><th>Metric</th><th>Louisville</th><th>Ole Miss</th><th>Edge</th></tr>
    <tr><td>Offensive EPA/play</td><td>0.153</td><td>0.307</td><td class="edge-ole">Ole Miss +0.154</td></tr>
    <tr><td>Offensive success rate</td><td>45.1%</td><td>48.5%</td><td class="edge-ole">Ole Miss +3.4 pts</td></tr>
    <tr><td>Offensive explosiveness</td><td>1.202</td><td>1.279</td><td class="edge-ole">Ole Miss</td></tr>
    <tr><td>Points/opportunity</td><td>3.62</td><td>4.44</td><td class="edge-ole">Ole Miss +0.82</td></tr>
    <tr><td>Defensive EPA/play allowed</td><td>0.060</td><td>0.110</td><td class="edge-lou">Louisville</td></tr>
    <tr><td>Defensive success rate allowed</td><td>36.4%</td><td>38.8%</td><td class="edge-lou">Louisville</td></tr>
    <tr><td>Explosiveness allowed</td><td>1.189</td><td>1.290</td><td class="edge-lou">Louisville</td></tr>
    <tr><td>Havoc rate</td><td>17.3%</td><td>16.7%</td><td class="edge-lou">Louisville</td></tr>
  </table>
  <div class="two-col">
    <div class="card">
      <h3>Why Ole Miss wins</h3>
      <p>Ole Miss owns the macro profile: #7 SP, #3 offense, 2009 Elo, plus a recruiting/talent edge. If the new offense is functional right away, the Rebels have enough explosiveness in the system to make Louisville chase points.</p>
      <p><span class="pill blue">Favorite script</span> Early pace, field-stretching shots, Louisville forced out of its rushing comfort zone.</p>
    </div>
    <div class="card">
      <h3>Why Louisville covers</h3>
      <p>The Cardinals had the better raw defensive efficiency and return a much cleaner rushing base. If Louisville shortens the game and Ole Miss has Week 1 timing issues, +6.5 has real value.</p>
      <p><span class="pill red">Dog script</span> Sustained drives, fewer possessions, Ole Miss offense flashes but stalls enough.</p>
    </div>
  </div>
  <div class="callout dark"><strong>Total angle:</strong> The total climbed from 52.5 to 56.5. That may be paying for the 2025 Ole Miss offensive logo without fully pricing how much of that production is gone. Under 56.5 is the cleaner lean than taking a side.</div>
  <div class="footer">Advanced stats are raw CFBD season advanced values, not opponent-adjusted ridge values.</div>
</div>

<div class="page page-break">
  <div class="kicker">Page 6 · Bet Card & Context</div>
  <h2>Bet Card / Watchlist Context</h2>
  <div class="section-rule"></div>
  <div class="stat-grid">
    <div class="stat"><div class="label">Week 1 rank</div><div class="value">#2</div><div class="note">Watchlist score</div></div>
    <div class="stat"><div class="label">Watchability</div><div class="value">61.5</div><div class="note">/100</div></div>
    <div class="stat"><div class="label">Recommendation</div><div class="value" style="font-size:20px;">Under</div><div class="note">56.5 lean</div></div>
    <div class="stat"><div class="label">Side lean</div><div class="value" style="font-size:20px;">LOU +6.5</div><div class="note">Only if forced</div></div>
  </div>
  <table>
    <tr><th>Angle</th><th>Current price</th><th>Grade</th><th>Reason</th></tr>
    <tr><td>Under 56.5</td><td>Bovada 56.5 / DK 55.5</td><td>Best lean</td><td>Week 1 timing + Ole Miss production reset + Louisville defensive profile</td></tr>
    <tr><td>Louisville +6.5</td><td>Consensus +6.5</td><td>Playable, not automatic</td><td>Line already moved from +8.5; some value has been eaten</td></tr>
    <tr><td>Ole Miss ML</td><td>-270 / -278</td><td>Avoid</td><td>Too expensive for a roster-transition opener</td></tr>
    <tr><td>Ole Miss -6.5</td><td>Consensus -6.5</td><td>Pass</td><td>Power numbers support it; returning production says risk is high</td></tr>
  </table>
  <div class="two-col">
    <div class="card">
      <h3>Watchlist score breakdown</h3>
      <p><strong>Competitiveness:</strong> 30/40 · spread under a touchdown</p>
      <p><strong>Team quality:</strong> 14/25 · SP #7 vs #25</p>
      <p><strong>Offensive fire:</strong> 10/15 · total in the mid-50s</p>
      <p><strong>Spotlight:</strong> 7/10 · ABC + neutral-site P4 game</p>
      <p><strong>Ranked:</strong> 0/10 · preseason rankings not yet published</p>
    </div>
    <div class="card">
      <h3>Data caveats</h3>
      <p>2026 CFBD advanced stats, rankings, talent, and pregame Elo are not fully populated yet. Team quality uses 2025 SP/Elo/talent as preseason proxy.</p>
      <p>The live forecast pipeline correctly refused to export because 0/51 Week 1 games resolved against the model feature contract. No fake probabilities were invented.</p>
    </div>
  </div>
  <div class="callout blue"><strong>Final read:</strong> Ole Miss by power rating, Louisville by continuity. Best bet is not pretending we know the new Rebel offense in September. Keep it simple: Under 56.5, small stake, straight bet only.</div>
  <div class="footer">Built using cfbd-ranking-system, cfbd-analysis-scripts/workflow, sports-betting-research PDF structure, pdf, and design QA skills.</div>
</div>
