<style>
  @page { size: Letter; margin: 0.48in; }
  * { box-sizing: border-box; }
  body { font-family: -apple-system, BlinkMacSystemFont, "Inter", "Helvetica Neue", Arial, sans-serif; color: #18202a; background: #fff; }
  h1, h2, h3 { margin: 0; line-height: 1.05; }
  h1 { font-size: 42px; letter-spacing: -1.4px; }
  h2 { font-size: 25px; margin-bottom: 12px; letter-spacing: -0.5px; }
  h3 { font-size: 13px; margin-bottom: 6px; text-transform: uppercase; letter-spacing: 1px; color: #66717f; }
  p { font-size: 11.2px; line-height: 1.45; margin: 0 0 8px; }
  table { width: 100%; border-collapse: collapse; font-size: 9.4px; margin: 8px 0 12px; }
  th { background: #111927; color: white; text-transform: uppercase; font-size: 7.8px; letter-spacing: 0.55px; padding: 6px; text-align: left; }
  td { padding: 6px; border-bottom: 1px solid #dce2ea; vertical-align: top; }
  .page { min-height: 9.45in; position: relative; }
  .page-break { page-break-before: always; }
  .cover { background: linear-gradient(135deg, #101820 0%, #8c1d2c 60%, #141820 100%); color: white; padding: 34px; border-radius: 22px; height: 8.55in; position: relative; overflow: hidden; }
  .cover:before { content:""; position:absolute; width:360px; height:360px; border-radius:50%; right:-110px; top:-115px; background:rgba(255,255,255,.12); }
  .cover:after { content:""; position:absolute; width:280px; height:280px; border-radius:50%; left:-70px; bottom:-90px; background:rgba(196,18,48,.32); }
  .cover-inner { position: relative; z-index: 2; }
  .kicker { color: #b7c2cf; font-size: 9.5px; text-transform: uppercase; letter-spacing: 1.55px; font-weight: 900; }
  .stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; margin: 14px 0; }
  .stat { background: #f5f7fa; border: 1px solid #dce3ec; border-radius: 13px; padding: 11px; min-height: 61px; }
  .stat.dark { background: rgba(255,255,255,.10); color: white; border-color: rgba(255,255,255,.18); }
  .label { font-size: 8px; text-transform: uppercase; letter-spacing: .85px; color: #6b7684; font-weight: 900; margin-bottom: 5px; }
  .dark .label { color: #cbd6e2; }
  .value { font-size: 24px; font-weight: 950; letter-spacing: -0.7px; }
  .note { font-size: 8.8px; color: #718092; margin-top: 4px; line-height: 1.28; }
  .dark .note { color: #dce6f0; }
  .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .three-col { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
  .card { border: 1px solid #dce3ec; border-radius: 15px; padding: 13px; background: #fff; }
  .callout { border-left: 5px solid #c41230; background: #fff3f5; padding: 11px 13px; border-radius: 10px; margin: 10px 0; }
  .callout.dark { border-left-color: #111927; background: #f3f6fa; }
  .pill { display: inline-block; border-radius: 999px; padding: 4px 8px; font-size: 8px; text-transform: uppercase; letter-spacing: .75px; font-weight: 900; margin-right: 5px; }
  .red { background:#c41230; color:#fff; }
  .gray { background:#e8edf3; color:#233041; }
  .green { background:#16784a; color:#fff; }
  .amber { background:#b66a00; color:#fff; }
  .blue { background:#18395f; color:#fff; }
  .section-rule { height: 5px; width: 72px; background: linear-gradient(90deg, #c41230, #111927); border-radius: 999px; margin: 3px 0 16px; }
  .caption { font-size: 8.2px; color: #718092; line-height: 1.35; }
  .footer { position: absolute; bottom: 0; left: 0; right: 0; font-size: 8.2px; color: #768396; border-top: 1px solid #e0e6ee; padding-top: 7px; }
  .img-card { width: 100%; border: 1px solid #dce3ec; border-radius: 14px; }
  .small { font-size: 9.6px; }
</style>

<div class="page cover">
  <div class="cover-inner">
    <div class="kicker">Miami University Football · 2026 Season Preview</div>
    <h1 style="margin-top:18px; max-width:640px;">Miami (OH) RedHawks</h1>
    <p style="font-size:15px; color:#edf3fa; margin-top:11px; max-width:630px;">A data-backed season preview using the official 2026 schedule/roster, CFBD 2025 team quality, local play-by-play tendency work, and a simple SP-based schedule projection.</p>
    <div class="stat-grid" style="margin-top:28px;">
      <div class="stat dark"><div class="label">2025 Record</div><div class="value">7-7</div><div class="note">6-2 MAC · +1.8 PPG</div></div>
      <div class="stat dark"><div class="label">SP+ Baseline</div><div class="value">#82</div><div class="note">-3.4 overall · #54 defense</div></div>
      <div class="stat dark"><div class="label">Projection</div><div class="value">7.0</div><div class="note">Expected wins, SP proxy</div></div>
      <div class="stat dark"><div class="label">Most Likely</div><div class="value">7-5</div><div class="note">6-6 to 8-4 main band</div></div>
    </div>
    <div class="callout" style="background:rgba(255,255,255,.10); border-color:#fff; color:#fff; margin-top:24px;">
      <h2 style="font-size:22px; color:#fff; margin-bottom:8px;">Executive read</h2>
      <p style="font-size:13px; color:#f4f7fb;"><strong>This is a MAC contender if the offense stops wasting the defense.</strong> The RedHawks had a real defensive backbone in 2025 — top-35 nationally in defensive EPA/play and top-25 in havoc — but the offense sat near the bottom third nationally in EPA, success rate, and points per scoring chance. The schedule says 7-5 is the clean forecast. The upside case is 8-4/9-3 if Thomas Gotkowski or the transfer-heavy skill group gives them even average quarterback play.</p>
    </div>
  </div>
  <div class="footer" style="color:#d8e2ed; border-color:rgba(255,255,255,.18);">Sources: MiamiRedHawks.com official 2026 schedule/roster; CFBD games, records, SP, advanced stats, talent, player stats; local Starter Pack play-by-play · Generated 2026-07-29</div>
</div>

<div class="page page-break">
  <div class="kicker">Page 2 · Baseline</div>
  <h2>What Miami Was in 2025</h2>
  <div class="section-rule"></div>
  <div class="stat-grid">
    <div class="stat"><div class="label">Scoring</div><div class="value">23.5</div><div class="note">PPG · 21.7 allowed</div></div>
    <div class="stat"><div class="label">Off EPA/Play</div><div class="value">#105</div><div class="note">0.102 raw PPA</div></div>
    <div class="stat"><div class="label">Def EPA/Play</div><div class="value">#34</div><div class="note">0.088 allowed</div></div>
    <div class="stat"><div class="label">Def Havoc</div><div class="value">#25</div><div class="note">17.8% havoc rate</div></div>
  </div>
  <div class="two-col">
    <div class="card">
      <h3>Identity</h3>
      <p><span class="pill green">Defense travels</span> Miami's best unit was real: #34 defensive EPA/play, #44 defensive success rate, #39 explosiveness allowed, #25 defensive havoc.</p>
      <p><span class="pill amber">Offense caps ceiling</span> The offense was #105 in EPA/play, #109 in success rate, #107 in points per opportunity, #100 in pass EPA/play. That is why a 6-2 MAC team still finished 7-7.</p>
      <p><span class="pill blue">Special teams help</span> SP credited Miami with +1.5 special teams value; not enough to carry the offense, but useful in close MAC games.</p>
    </div>
    <div class="card">
      <h3>2025 path</h3>
      <p>Miami opened 0-4 against Wisconsin, Fresno State, Rutgers, and UNLV, then stabilized once MAC play started.</p>
      <p>The RedHawks went 6-2 in the league, beat Western Michigan in the regular season, then lost the MAC title rematch to WMU, 23-13.</p>
      <p>The lesson is blunt: against peer teams, the defense gives them a shot. Against physical nonconference opponents, the offense has to do more than survive.</p>
    </div>
  </div>
  <div style="margin-top:10px;"><img class="img-card" src="/Users/stephen_bowman/Documents/00-Development/Projects/cfb-model-lab/exports/profile_Miami_(OH)_2025.png" /></div>
  <div class="footer">The chart was regenerated from CFBD 2025 advanced stats and games via analysis/team_season_profile.py.</div>
</div>

<div class="page page-break">
  <div class="kicker">Page 3 · Tendencies</div>
  <h2>How They Actually Play</h2>
  <div class="section-rule"></div>
  <div class="stat-grid">
    <div class="stat"><div class="label">4th-down go rate</div><div class="value">15.8%</div><div class="note">FBS avg 26.1%</div></div>
    <div class="stat"><div class="label">Aggression residual</div><div class="value">-8.6%</div><div class="note">Actual vs situation expected</div></div>
    <div class="stat"><div class="label">2025 rush rate</div><div class="value">54.3%</div><div class="note">Scrimmage plays</div></div>
    <div class="stat"><div class="label">3rd short run</div><div class="value">68.4%</div><div class="note">3rd-and-1 to 3</div></div>
  </div>
  <div class="callout dark"><strong>The model read:</strong> Miami is conservative by design, not by accident. It punted/kicked far more often than the average FBS team in similar fourth-down situations. That style works when the defense controls field position; it becomes fragile when the offense falls behind schedule.</div>
  <div style="margin-top:9px;"><img class="img-card" src="/Users/stephen_bowman/Documents/00-Development/Projects/cfb-model-lab/exports/miami_oh_tendencies.png" /></div>
  <div class="two-col" style="margin-top:10px;">
    <div class="card"><h3>Strength</h3><p>They can shorten games, protect a limited offense, and make weaker MAC offenses drive the long field. That is a good regular-season formula.</p></div>
    <div class="card"><h3>Risk</h3><p>If the defense regresses or the offense takes negative plays, conservative fourth-down behavior leaves fewer comeback levers. This team needs first-half control.</p></div>
  </div>
  <div class="footer">Tendencies come from 794,416 local play-by-play rows, 2023-2025, excluding Miami from the FBS comparison sample.</div>
</div>

<div class="page page-break">
  <div class="kicker">Page 4 · Roster Reality</div>
  <h2>2026 Roster Questions</h2>
  <div class="section-rule"></div>
  <p><strong>Official roster data is better than CFBD here.</strong> CFBD's 2026 roster endpoint returned 0 players, so the preview uses Miami's official 2026 roster page. I parsed 121 players. The headline: the defense still has pieces, but the 2025 production leaders are heavily churned.</p>
  <table>
    <tr><th>Unit</th><th>2025 production</th><th>Listed on 2026 roster?</th><th>Preview read</th></tr>
    <tr><td>QB</td><td>Dequan Finn: 1,451 pass yds, 9 TD, 6 INT; Henry Hesson: 596 yds; Thomas Gotkowski: 575 yds, 4 TD, 1 INT</td><td>Gotkowski yes; Finn/Hesson no</td><td>Gotkowski is the verified returning QB with real 2025 snaps. Caleb Heavner and David McComb are roster options, but CFBD has no 2026 stats to price them.</td></tr>
    <tr><td>RB</td><td>Jordan Brunson 767 yds; Finn 395; D'Shawntae Jones 277 and 7 TD</td><td>Jones yes; Brunson/Finn no</td><td>Jones gives short-yardage continuity. Wisconsin transfer Cade Yacamelli and Monmouth transfer Rodney Nelson make this a rebuilt room, not a carbon copy.</td></tr>
    <tr><td>WR/TE</td><td>Kamryn Perry 976 yds; Cole Weaver 642; Keith Reynolds 352; Braylon Isom 141</td><td>Reynolds/Isom yes; Perry/Weaver no</td><td>The explosive pass game has to be re-created. Reynolds, Devin Hyatt, Damarion Witten, Maleek Huggins, and Carl Jenkins are the roster names to watch.</td></tr>
    <tr><td>Defense</td><td>Top tacklers: Eli Blakey 118, Jackson Kuwatch 101, Corban Hondru 84, Silas Walters 71, Malcolm McCain 66</td><td>McCain and Mychal Yharbrough yes; top four no</td><td>Defensive scheme/standard is the program strength, but the tackle-sheet turnover is not small. McCain matters.</td></tr>
  </table>
  <div class="three-col">
    <div class="card"><h3>QB room</h3><p>Thomas Gotkowski is the clean continuity bet: R-So., on roster, and protected the ball better than the other 2025 passers by INT rate.</p></div>
    <div class="card"><h3>Transfer talent</h3><p>The official roster includes transfers from Washington, Indiana/NIU, Arizona, Ohio State, Wisconsin, Michigan State, Notre Dame, Kansas, Texas A&M, and Ohio State. That is real roster churn.</p></div>
    <div class="card"><h3>Defensive backbone</h3><p>Bill Brechin is listed as defensive coordinator/linebackers; Miami's defensive results give him benefit of the doubt, but 2025 production must be replaced.</p></div>
  </div>
  <div class="callout"><strong>Season hinge:</strong> If Gotkowski/Heavner/McComb gives Miami a merely average MAC passing game, the team can win the league. If QB play stays bottom-third nationally, every swing game turns into a knife fight.</div>
  <div class="footer">Official roster source: MiamiRedHawks.com 2026 Football Roster; 2025 player production from CFBD /stats/player/season.</div>
</div>

<div class="page page-break">
  <div class="kicker">Page 5 · Schedule Math</div>
  <h2>The 2026 Schedule</h2>
  <div class="section-rule"></div>
  <div class="stat-grid">
    <div class="stat"><div class="label">Nonconference EV</div><div class="value">1.82</div><div class="note">Pitt, Holy Cross, Cincinnati, UConn</div></div>
    <div class="stat"><div class="label">MAC Run EV</div><div class="value">2.89</div><div class="note">BGSU through CMU</div></div>
    <div class="stat"><div class="label">MACtion EV</div><div class="value">2.32</div><div class="note">Buffalo through WMU</div></div>
    <div class="stat"><div class="label">Total EV</div><div class="value">7.03</div><div class="note">SP proxy, not betting model</div></div>
  </div>
  <table>
    <tr><th>Range</th><th>Probability</th><th>Meaning</th></tr>
    <tr><td>5 wins or fewer</td><td>16.1%</td><td>Offense fails to reset, UConn/CMU/Ohio/WMU swing games break wrong.</td></tr>
    <tr><td>6-6</td><td>20.1%</td><td>Bowl bubble; defense good, offense still too limited.</td></tr>
    <tr><td>7-5</td><td>25.2%</td><td>The modal outcome. Beat the weaker MAC teams, split the coin flips, lose most higher-SP games.</td></tr>
    <tr><td>8-4</td><td>21.4%</td><td>Contender profile. Requires beating at least two of UConn, CMU, Ohio, Western Michigan.</td></tr>
    <tr><td>9+ wins</td><td>17.3%</td><td>MAC title path. Needs a real QB jump and one nonconference upset.</td></tr>
  </table>
  <svg width="690" height="248" viewBox="0 0 690 248" role="img" aria-label="Miami Ohio win probability by game">
    <rect width="690" height="248" rx="16" fill="#f5f7fa"/>
    <text x="22" y="30" font-size="14" font-weight="900" fill="#18202a">SP-Proxy Win Probability by Game</text>
    <text x="22" y="49" font-size="9" fill="#708092">2025 SP rating + 2.5-point home field; Holy Cross uses FCS placeholder</text>
    <line x1="70" y1="202" x2="660" y2="202" stroke="#cfd7e2"/>
    <line x1="70" y1="72" x2="660" y2="72" stroke="#e2e7ef"/>
    <text x="34" y="76" font-size="8" fill="#718092">100%</text><text x="38" y="205" font-size="8" fill="#718092">0%</text>
    <rect x="82" y="168.5" width="31" height="33.5" fill="#c41230"/><text x="84" y="218" font-size="7" fill="#333">PIT</text><text x="84" y="163" font-size="8" font-weight="800">26</text>
    <rect x="130" y="90.2" width="31" height="111.8" fill="#16784a"/><text x="130" y="218" font-size="7" fill="#333">HC</text><text x="130" y="85" font-size="8" font-weight="800">86</text>
    <rect x="178" y="160.4" width="31" height="41.6" fill="#c41230"/><text x="174" y="218" font-size="7" fill="#333">CIN</text><text x="178" y="155" font-size="8" font-weight="800">32</text>
    <rect x="226" y="151.3" width="31" height="50.7" fill="#b66a00"/><text x="222" y="218" font-size="7" fill="#333">UConn</text><text x="226" y="146" font-size="8" font-weight="800">39</text>
    <rect x="274" y="111.0" width="31" height="91.0" fill="#16784a"/><text x="270" y="218" font-size="7" fill="#333">BGSU</text><text x="274" y="106" font-size="8" font-weight="800">70</text>
    <rect x="322" y="83.7" width="31" height="118.3" fill="#16784a"/><text x="318" y="218" font-size="7" fill="#333">UMass</text><text x="322" y="79" font-size="8" font-weight="800">91</text>
    <rect x="370" y="108.4" width="31" height="93.6" fill="#16784a"/><text x="370" y="218" font-size="7" fill="#333">AKR</text><text x="370" y="103" font-size="8" font-weight="800">72</text>
    <rect x="418" y="130.5" width="31" height="71.5" fill="#b66a00"/><text x="418" y="218" font-size="7" fill="#333">CMU</text><text x="418" y="125" font-size="8" font-weight="800">55</text>
    <rect x="466" y="121.4" width="31" height="80.6" fill="#16784a"/><text x="466" y="218" font-size="7" fill="#333">BUF</text><text x="466" y="116" font-size="8" font-weight="800">62</text>
    <rect x="514" y="129.2" width="31" height="72.8" fill="#b66a00"/><text x="516" y="218" font-size="7" fill="#333">OH</text><text x="514" y="124" font-size="8" font-weight="800">56</text>
    <rect x="562" y="107.1" width="31" height="94.9" fill="#16784a"/><text x="558" y="218" font-size="7" fill="#333">KENT</text><text x="562" y="102" font-size="8" font-weight="800">73</text>
    <rect x="610" y="147.4" width="31" height="54.6" fill="#b66a00"/><text x="609" y="218" font-size="7" fill="#333">WMU</text><text x="610" y="142" font-size="8" font-weight="800">42</text>
  </svg>
  <div class="footer">Projection is intentionally simple: 2025 SP rating differential plus home field transformed with a 13.5-point logistic scale. It is not the repo's StackedEnsemble live forecast.</div>
</div>

<div class="page page-break">
  <div class="kicker">Page 6 · Game-by-Game</div>
  <h2>Regular-Season Forecast</h2>
  <div class="section-rule"></div>
  <table>
    <tr><th>Date</th><th>Game</th><th>2025 Opp</th><th>Opp SP</th><th>Miami %</th><th>Read</th></tr>
    <tr><td>Sep 5</td><td>@ Pittsburgh</td><td>8-5, +8.9 PPG</td><td>#36 / +8.4</td><td>26%</td><td><strong>Upset needed.</strong> Pitt is the toughest rating spot on the schedule and it is on the road.</td></tr>
    <tr><td>Sep 12</td><td>Holy Cross</td><td>3-9, -4.2 PPG</td><td>FCS</td><td>86%</td><td><strong>Must win.</strong> Anything other than a clean get-right game is a red flag.</td></tr>
    <tr><td>Sep 19</td><td>@ Cincinnati</td><td>7-6, +4.7 PPG</td><td>#56 / +4.5</td><td>32%</td><td><strong>Hard road rivalry spot.</strong> Miami needs turnover help or a QB jump.</td></tr>
    <tr><td>Sep 26</td><td>Connecticut</td><td>9-4, +8.3 PPG</td><td>#53 / +5.1</td><td>39%</td><td><strong>Swing-upset chance.</strong> Home field keeps it live, but UConn's 2025 offense was far better.</td></tr>
    <tr><td>Oct 3</td><td>Bowling Green</td><td>4-8, -3.8 PPG</td><td>#113 / -12.6</td><td>70%</td><td><strong>MAC opener they should own.</strong> Bowling Green brings almost no 2025 returning-production signal.</td></tr>
    <tr><td>Oct 10</td><td>@ Massachusetts</td><td>0-12, -27.5 PPG</td><td>#136 / -36.6</td><td>91%</td><td><strong>No excuses.</strong> Road game, but Miami is materially better by every team-quality metric.</td></tr>
    <tr><td>Oct 17</td><td>Akron</td><td>5-7, -5.2 PPG</td><td>#117 / -13.9</td><td>72%</td><td><strong>Win with defense.</strong> Akron's offense ranked #117 in EPA/play.</td></tr>
    <tr><td>Oct 24</td><td>@ Central Michigan</td><td>7-6, -1.0 PPG</td><td>#100 / -8.8</td><td>55%</td><td><strong>Trap road game.</strong> This is where conservative teams get dragged into one-score nonsense.</td></tr>
    <tr><td>Nov 3</td><td>Buffalo</td><td>5-7, +0.5 PPG</td><td>#95 / -7.5</td><td>62%</td><td><strong>Lean win.</strong> Home Tuesday night; Buffalo is good enough to punish sloppy offense.</td></tr>
    <tr><td>Nov 10</td><td>Ohio</td><td>9-4, +5.8 PPG</td><td>#84 / -4.0</td><td>56%</td><td><strong>The pivot game.</strong> Rivalry plus MAC standings. Win this and Detroit becomes realistic.</td></tr>
    <tr><td>Nov 17</td><td>@ Kent State</td><td>5-7, -12.3 PPG</td><td>#130 / -19.3</td><td>73%</td><td><strong>Should win.</strong> Road MACtion weirdness is the only reason this is not higher.</td></tr>
    <tr><td>Nov 24</td><td>@ Western Michigan</td><td>10-4, +7.5 PPG</td><td>#78 / -1.4</td><td>42%</td><td><strong>Likely division/title gate.</strong> WMU had the best 2025 resume among MAC opponents and beat Miami for the MAC title.</td></tr>
  </table>
  <div class="callout dark"><strong>Projected regular season:</strong> 7-5 overall, roughly 5-3 in MAC play. The clean upside path is 8-4/6-2 MAC if Miami beats Ohio and splits UConn/Central/Western. The failure path is 6-6 if the offense is still bottom-third nationally and loses the UConn/CMU/Ohio cluster.</div>
  <div class="footer">Schedule verified against both the user-provided schedule and CFBD 2026 game rows. CFBD listed 12 Miami regular-season games, matching the supplied slate.</div>
</div>

<div class="page page-break">
  <div class="kicker">Page 7 · Verdict</div>
  <h2>Season Call</h2>
  <div class="section-rule"></div>
  <div class="two-col">
    <div class="card"><h3>Ceiling: 9-3 / MAC title game</h3><p>The quarterback room settles early, the transfer receivers add explosives, and the defense remains top-third nationally. Miami beats UConn or Cincinnati, then wins the Ohio/Western Michigan split.</p></div>
    <div class="card"><h3>Floor: 5-7 / no bowl</h3><p>The offense loses the 2025 skill production without replacing it, the defense slips from good to average, and the conservative game model turns coin flips into coin flips they lose.</p></div>
  </div>
  <div class="card" style="margin-top:12px;">
    <h3>One strong recommendation</h3>
    <p><strong>Call it 7-5, with real 8-4 upside.</strong> Miami is not a fake contender: the defense was too good, the MAC schedule is manageable, and the November home games give them a path. But the offense has to clear a low bar first. The whole season is a referendum on whether the new QB/skill mix can turn a defense-first bowl team into a complete MAC title team.</p>
  </div>
  <table>
    <tr><th>Key</th><th>Why it matters</th><th>What success looks like</th></tr>
    <tr><td>QB efficiency</td><td>2025 passing EPA ranked #100; top two passers are not listed on the 2026 roster.</td><td>Reduce dead drives; push pass EPA toward MAC average; keep INTs low.</td></tr>
    <tr><td>Receiver rebuild</td><td>Top two 2025 receivers are not on the official 2026 roster.</td><td>Keith Reynolds, Braylon Isom, Devin Hyatt, Damarion Witten, and the transfer group create enough explosives.</td></tr>
    <tr><td>Defensive replacement</td><td>Top four 2025 tacklers are not listed; McCain/Yharbrough are the clean returning leaders.</td><td>Keep defensive EPA/play in the national top 50 and havoc near top 35.</td></tr>
    <tr><td>October sweep</td><td>Bowling Green, UMass, Akron, Central Michigan is the schedule's win-bank.</td><td>3-1 minimum. 4-0 turns November into a title chase.</td></tr>
    <tr><td>Ohio + Western Michigan</td><td>Those are the two MAC games most likely to decide Detroit.</td><td>Split to contend; sweep to control the race.</td></tr>
  </table>
  <div class="callout"><strong>Betting note:</strong> No season win total or game lines were pulled for this report. The probabilities are schedule-strength forecast math, not a betting edge. Straight bets only when a real market exists.</div>
  <div class="footer">Data caveats: 2026 CFBD SP, talent, returning-production, and rankings endpoints returned zero rows at generation time; 2026 roster came from Miami's official site; all 2026 forecasts are proxy estimates.</div>
</div>
