<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>NRL Odds Guide 2026: Beat the Bookmakers | Australia</title>
<meta name="description" content="Master NRL betting with our advanced odds guide. Learn EV, CLV, margin analysis and sharp money strategies for Australian punters in 2026.">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://unitedtarneitsc.com/en-au/">
<link rel="alternate" hreflang="en" href="https://unitedtarneitsc.com/" />
<link rel="alternate" hreflang="en-AU" href="https://unitedtarneitsc.com/en-au/" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🎰</text></svg>">
<meta property="og:title" content="NRL Odds Guide 2026: Beat the Bookmakers | Australia">
<meta property="og:description" content="Master NRL betting with our advanced odds guide. Learn EV, CLV, margin analysis and sharp money strategies for Australian punters in 2026.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://unitedtarneitsc.com/">
<meta name="twitter:card" content="summary_large_image">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600;700&family=JetBrains+Mono:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "NRL Odds Guide Australia 2026 – Understand & Beat the Bookmakers",
  "description": "Comprehensive guide to NRL betting odds, EV calculation, CLV tracking, margin analysis and value betting strategies for Australian punters.",
  "author": {
    "@type": "Person",
    "name": "Dr. Marcus Webb",
    "jobTitle": "Quantitative Sports Analyst"
  },
  "publisher": {
    "@type": "Organization",
    "name": "UnitedTarneitSC"
  },
  "datePublished": "2026-01-01",
  "dateModified": "2026-04-06"
}
</script>
<style>
:root {
  --p: #00ff88;
  --p-dim: #00cc6a;
  --p-dark: #006633;
  --a: #ff4466;
  --a-dim: #cc3355;
  --bg: #030d06;
  --bg2: #050f08;
  --bg3: #071510;
  --surface: #091a0d;
  --surface2: #0d2214;
  --border: #1a3d24;
  --border2: #0f2818;
  --text: #c8e8d0;
  --text-dim: #7aaa89;
  --text-muted: #3d6648;
  --mono: 'JetBrains Mono', 'Courier New', monospace;
  --sans: 'IBM Plex Sans', sans-serif;
  --radius: 2px;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--sans);
  background: var(--bg);
  color: var(--text);
  line-height: 1.7;
  font-size: 16px;
  overflow-x: hidden;
}
/* TICKER */
.ticker-wrap {
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  overflow: hidden;
  height: 36px;
  display: flex;
  align-items: center;
}
.ticker-label {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--a);
  padding: 0 12px;
  background: var(--a);
  color: #000;
  font-weight: 700;
  height: 100%;
  display: flex;
  align-items: center;
  white-space: nowrap;
  flex-shrink: 0;
}
.ticker-track {
  display: flex;
  animation: tickerMove 40s linear infinite;
  white-space: nowrap;
}
.ticker-item {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--p);
  padding: 0 24px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.ticker-item .team { color: var(--text); }
.ticker-item .odds { color: var(--p); font-weight: 600; }
.ticker-item .change-up { color: var(--p); }
.ticker-item .change-down { color: var(--a); }
@keyframes tickerMove {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
/* STICKY CTA */
.sticky-cta {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: var(--bg);
  border-top: 2px solid var(--p);
  padding: 12px 16px;
  z-index: 1000;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
@media (max-width: 768px) {
  .sticky-cta { display: flex; }
}
.sticky-cta-text {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--text-dim);
}
.sticky-cta-text strong { color: var(--p); }
/* NAV */
nav {
  background: var(--bg2);
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 100;
}
.nav-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 56px;
}
.nav-logo {
  font-family: var(--mono);
  font-size: 14px;
  color: var(--p);
  font-weight: 700;
  text-decoration: none;
  letter-spacing: 2px;
}
.nav-logo span { color: var(--text-muted); }
.nav-links {
  display: flex;
  gap: 24px;
  list-style: none;
}
.nav-links a {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--text-dim);
  text-decoration: none;
  letter-spacing: 1px;
  transition: color 0.2s;
}
.nav-links a:hover { color: var(--p); }
.nav-cta {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  color: #000;
  background: var(--p);
  border: none;
  padding: 8px 16px;
  cursor: pointer;
  text-decoration: none;
  letter-spacing: 1px;
  transition: background 0.2s;
}
.nav-cta:hover { background: var(--p-dim); }
@media (max-width: 768px) {
  .nav-links { display: none; }
}
/* HERO */
.hero {
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  padding: 60px 24px 48px;
  position: relative;
  overflow: hidden;
}
.hero::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: 
    radial-gradient(ellipse at 20% 50%, rgba(0,255,136,0.04) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 50%, rgba(255,68,102,0.03) 0%, transparent 60%);
  pointer-events: none;
}
.hero-inner {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
}
.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 11px;
  color: var(--p);
  border: 1px solid var(--p-dark);
  padding: 4px 12px;
  margin-bottom: 20px;
  letter-spacing: 2px;
}
.hero-badge .dot {
  width: 6px; height: 6px;
  background: var(--p);
  border-radius: 50%;
  animation: blink 1s step-end infinite;
}
@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}
h1 {
  font-family: var(--mono);
  font-size: clamp(22px, 4vw, 38px);
  font-weight: 700;
  color: var(--p);
  line-height: 1.25;
  margin-bottom: 20px;
  letter-spacing: -0.5px;
}
.hero-sub {
  font-size: 17px;
  color: var(--text-dim);
  max-width: 700px;
  margin-bottom: 32px;
  line-height: 1.7;
}
.hero-stats {
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
  margin-bottom: 32px;
}
.hero-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.hero-stat-val {
  font-family: var(--mono);
  font-size: 22px;
  font-weight: 700;
  color: var(--p);
}
.hero-stat-label {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--text-muted);
  letter-spacing: 1px;
  text-transform: uppercase;
}
.cta-btn {
  display: inline-block;
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 700;
  color: #000;
  background: var(--p);
  border: none;
  padding: 14px 28px;
  cursor: pointer;
  text-decoration: none;
  letter-spacing: 2px;
  text-transform: uppercase;
  transition: background 0.2s;
  animation: ctaPulse 2.5s ease-in-out infinite;
}
.cta-btn:hover { background: var(--p-dim); }
@keyframes ctaPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(0,255,136,0.4); }
  50% { box-shadow: 0 0 0 8px rgba(0,255,136,0); }
}
.cta-btn-outline {
  display: inline-block;
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 600;
  color: var(--p);
  background: transparent;
  border: 1px solid var(--p);
  padding: 13px 28px;
  cursor: pointer;
  text-decoration: none;
  letter-spacing: 2px;
  text-transform: uppercase;
  transition: all 0.2s;
}
.cta-btn-outline:hover { background: rgba(0,255,136,0.08); }
.hero-cta-group {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}
/* SOCIAL PROOF BAR */
.social-bar {
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  padding: 12px 24px;
}
.social-bar-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  gap: 32px;
  align-items: center;
  flex-wrap: wrap;
}
.social-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 12px;
  color: var(--text-dim);
}
.social-item .val {
  color: var(--p);
  font-weight: 700;
  font-size: 14px;
}
.social-dot { width: 8px; height: 8px; border-radius: 50%; }
.social-dot.green { background: var(--p); animation: pulseDot 2s ease-in-out infinite; }
.social-dot.red { background: var(--a); }
@keyframes pulseDot {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}
/* SECTION LAYOUT */
.section {
  padding: 64px 24px;
  border-bottom: 1px solid var(--border2);
}
.section-inner { max-width: 1200px; margin: 0 auto; }
.section-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
}
@media (max-width: 900px) { .section-grid { grid-template-columns: 1fr; } }
.section-tag {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--p);
  margin-bottom: 8px;
}
h2 {
  font-family: var(--mono);
  font-size: clamp(18px, 3vw, 26px);
  font-weight: 700;
  color: var(--text);
  margin-bottom: 16px;
  line-height: 1.3;
}
h3 {
  font-family: var(--mono);
  font-size: 16px;
  font-weight: 600;
  color: var(--p);
  margin-bottom: 12px;
  margin-top: 28px;
}
p { margin-bottom: 16px; color: var(--text); }
ul, ol {
  margin: 16px 0;
  padding-left: 1.5rem;
}
ul li { list-style: disc; padding-left: 1.5rem; margin-bottom: 8px; color: var(--text); }
ol li { padding-left: 1.5rem; margin-bottom: 8px; color: var(--text); }
strong { color: var(--p); font-weight: 600; }
/* TERMINAL COMPONENT */
.terminal {
  background: var(--bg);
  border: 1px solid var(--border);
  overflow: hidden;
}
.terminal-header {
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  padding: 10px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.terminal-dots { display: flex; gap: 6px; }
.terminal-dot {
  width: 10px; height: 10px; border-radius: 50%;
}
.terminal-dot.red { background: var(--a); }
.terminal-dot.yellow { background: #ffaa00; }
.terminal-dot.green { background: var(--p); }
.terminal-title {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--text-muted);
  letter-spacing: 2px;
  text-transform: uppercase;
  flex: 1;
}
.terminal-status {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--p);
  letter-spacing: 1px;
}
.terminal-body {
  padding: 16px;
  max-height: 320px;
  overflow: hidden;
  position: relative;
}
/* ODDS TERMINAL */
.odds-terminal-wrap {
  background: var(--bg);
  border: 1px solid var(--border);
}
.odds-scroll-track {
  height: 280px;
  overflow: hidden;
  position: relative;
}
.odds-scroll-inner {
  animation: oddsScroll 30s linear infinite;
}
@keyframes oddsScroll {
  0% { transform: translateY(0); }
  100% { transform: translateY(-50%); }
}
.odds-row {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
  padding: 8px 16px;
  border-bottom: 1px solid var(--border2);
  font-family: var(--mono);
  font-size: 12px;
  gap: 8px;
  align-items: center;
}
.odds-row:hover { background: var(--surface); }
.odds-row .match { color: var(--text); }
.odds-row .home-odds { color: var(--p); font-weight: 600; }
.odds-row .away-odds { color: var(--a); font-weight: 600; }
.odds-row .draw-odds { color: var(--text-dim); }
.odds-row .movement { font-size: 10px; }
.odds-row .mov-up { color: var(--p); }
.odds-row .mov-down { color: var(--a); }
.odds-row .market { color: var(--text-muted); font-size: 10px; }
.odds-header {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
  padding: 8px 16px;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
  font-family: var(--mono);
  font-size: 10px;
  color: var(--text-muted);
  letter-spacing: 1px;
  text-transform: uppercase;
  gap: 8px;
}
/* CALCULATOR */
.calc-panel {
  background: var(--surface);
  border: 1px solid var(--border);
  padding: 24px;
}
.calc-title {
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 700;
  color: var(--p);
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 12px;
}
.calc-field {
  margin-bottom: 16px;
}
.calc-label {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--text-muted);
  letter-spacing: 1px;
  text-transform: uppercase;
  display: block;
  margin-bottom: 6px;
}
.calc-input {
  width: 100%;
  background: var(--bg);
  border: 1px solid var(--border);
  color: var(--p);
  font-family: var(--mono);
  font-size: 16px;
  padding: 10px 14px;
  outline: none;
  transition: border-color 0.2s;
}
.calc-input:focus { border-color: var(--p); }
.calc-btn {
  width: 100%;
  background: var(--p);
  border: none;
  color: #000;
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 700;
  padding: 12px;
  cursor: pointer;
  letter-spacing: 2px;
  text-transform: uppercase;
  transition: background 0.2s;
  margin-top: 8px;
}
.calc-btn:hover { background: var(--p-dim); }
.calc-result {
  margin-top: 16px;
  padding: 16px;
  background: var(--bg);
  border: 1px solid var(--border);
  font-family: var(--mono);
  font-size: 13px;
  display: none;
}
.calc-result.show { display: block; }
.calc-result-val {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 8px;
}
.calc-result-val.positive { color: var(--p); }
.calc-result-val.negative { color: var(--a); }
.calc-result-label { font-size: 11px; color: var(--text-muted); letter-spacing: 1px; }
.calc-result-detail { font-size: 11px; color: var(--text-dim); margin-top: 8px; }
/* FORMULA BOX */
.formula-box {
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 3px solid var(--p);
  padding: 16px 20px;
  margin: 20px 0;
  font-family: var(--mono);
  font-size: 14px;
  color: var(--p);
}
.formula-box .label {
  font-size: 10px;
  letter-spacing: 2px;
  color: var(--text-muted);
  text-transform: uppercase;
  margin-bottom: 8px;
}
/* DATA TABLE */
.data-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--mono);
  font-size: 13px;
  margin: 20px 0;
}
.data-table th {
  background: var(--surface);
  border: 1px solid var(--border);
  padding: 10px 14px;
  text-align: left;
  color: var(--text-muted);
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-weight: 600;
}
.data-table td {
  border: 1px solid var(--border2);
  padding: 10px 14px;
  color: var(--text);
}
.data-table tr:nth-child(even) td { background: var(--surface); }
.data-table .val-green { color: var(--p); font-weight: 600; }
.data-table .val-red { color: var(--a); font-weight: 600; }
/* LINE MOVEMENT BARS */
.line-chart {
  padding: 20px 0;
}
.line-bar-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  font-family: var(--mono);
  font-size: 12px;
}
.line-bar-label { width: 120px; color: var(--text-dim); flex-shrink: 0; }
.line-bar-track {
  flex: 1;
  height: 20px;
  background: var(--surface);
  border: 1px solid var(--border);
  position: relative;
  overflow: hidden;
}
.line-bar-fill {
  height: 100%;
  position: relative;
  transition: width 1s ease;
  display: flex;
  align-items: center;
  padding-left: 8px;
  font-size: 10px;
  font-weight: 700;
}
.line-bar-fill.up { background: linear-gradient(90deg, var(--p-dark), var(--p)); color: #000; }
.line-bar-fill.down { background: linear-gradient(90deg, #440011, var(--a)); color: #fff; }
.line-bar-val { width: 50px; text-align: right; font-weight: 700; }
.line-bar-val.up { color: var(--p); }
.line-bar-val.down { color: var(--a); }
/* SHARP DETECTOR */
.sharp-panel {
  background: var(--surface);
  border: 1px solid var(--border);
  padding: 24px;
  margin: 24px 0;
}
.sharp-title {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--a);
  margin-bottom: 16px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 10px;
}
.signal-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border2);
  font-family: var(--mono);
  font-size: 12px;
}
.signal-row:last-child { border-bottom: none; }
.signal-icon { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.signal-icon.sharp { background: var(--p); }
.signal-icon.public { background: var(--a); }
.signal-desc { flex: 1; color: var(--text-dim); }
.signal-strength {
  font-size: 10px;
  padding: 2px 8px;
  font-weight: 700;
  letter-spacing: 1px;
}
.signal-strength.strong { background: rgba(0,255,136,0.15); color: var(--p); }
.signal-strength.weak { background: rgba(255,68,102,0.15); color: var(--a); }
/* CONTENT BOX */
.content-box {
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 3px solid var(--a);
  padding: 20px;
  margin: 20px 0;
}
.content-box .box-title {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--a);
  margin-bottom: 10px;
}
/* SECTION BG ALTERNATION */
.section.alt { background: var(--bg2); }
/* CTA SECTION */
.cta-section {
  background: var(--surface);
  border: 1px solid var(--border);
  padding: 40px;
  text-align: center;
  margin: 40px 0;
}
.cta-section h3 { color: var(--p); margin-top: 0; }
.cta-section p { color: var(--text-dim); max-width: 500px; margin: 0 auto 24px; }
/* GRID 3 COL */
.grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin: 24px 0;
}
@media (max-width: 768px) { .grid-3 { grid-template-columns: 1fr; } }
.grid-card {
  background: var(--surface);
  border: 1px solid var(--border);
  padding: 20px;
}
.grid-card-icon {
  font-family: var(--mono);
  font-size: 20px;
  color: var(--p);
  margin-bottom: 12px;
}
.grid-card-title {
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 8px;
}
.grid-card-text {
  font-size: 13px;
  color: var(--text-dim);
  line-height: 1.6;
}
/* FAQ */
.faq-item {
  border-bottom: 1px solid var(--border2);
}
.faq-question {
  width: 100%;
  background: none;
  border: none;
  text-align: left;
  padding: 18px 0;
  font-family: var(--mono);
  font-size: 14px;
  color: var(--text);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
.faq-question:hover { color: var(--p); }
.faq-icon {
  font-family: var(--mono);
  font-size: 18px;
  color: var(--p);
  flex-shrink: 0;
  transition: transform 0.3s;
}
.faq-answer {
  display: none;
  padding: 0 0 18px;
  color: var(--text-dim);
  font-size: 14px;
  line-height: 1.7;
}
.faq-answer.open { display: block; }
/* AUTHOR */
.author-section {
  background: var(--surface);
  border: 1px solid var(--border);
  padding: 32px;
  margin-top: 48px;
}
.author-details {
  display: flex;
  gap: 24px;
  align-items: flex-start;
}
.author-avatar {
  width: 72px;
  height: 72px;
  background: var(--p-dark);
  border: 2px solid var(--p);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mono);
  font-size: 24px;
  font-weight: 700;
  color: var(--p);
  flex-shrink: 0;
}
.author-meta { flex: 1; }
.author-role {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 4px;
}
.author-name {
  font-family: var(--mono);
  font-size: 18px;
  font-weight: 700;
  color: var(--text);
  display: block;
  margin-bottom: 8px;
}
.author-bio {
  font-size: 14px;
  color: var(--text-dim);
  line-height: 1.7;
}
/* FOOTER */
footer {
  background: var(--bg2);
  border-top: 1px solid var(--border);
  padding: 48px 24px 80px;
}
.footer-inner { max-width: 1200px; margin: 0 auto; }
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 40px;
  margin-bottom: 40px;
}
@media (max-width: 768px) { .footer-grid { grid-template-columns: 1fr; } }
.footer-brand {
  font-family: var(--mono);
  font-size: 16px;
  font-weight: 700;
  color: var(--p);
  letter-spacing: 2px;
  margin-bottom: 12px;
}
.footer-desc { font-size: 13px; color: var(--text-muted); line-height: 1.7; }
.footer-heading {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 16px;
}
.footer-links { list-style: none; padding: 0; }
.footer-links li { margin-bottom: 8px; }
.footer-links a {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--text-dim);
  text-decoration: none;
  transition: color 0.2s;
}
.footer-links a:hover { color: var(--p); }
.footer-bottom {
  border-top: 1px solid var(--border2);
  padding-top: 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: gap;
  gap: 16px;
}
.footer-copy {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--text-muted);
}
.footer-disclaimer {
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 20px;
  line-height: 1.6;
  border-top: 1px solid var(--border2);
  padding-top: 16px;
}
/* MARGIN CALC */
.margin-result {
  display: none;
  margin-top: 16px;
  padding: 16px;
  background: var(--bg);
  border: 1px solid var(--border);
  font-family: var(--mono);
}
.margin-result.show { display: block; }
.margin-pct {
  font-size: 28px;
  font-weight: 700;
  color: var(--a);
  margin-bottom: 4px;
}
.margin-breakdown { font-size: 12px; color: var(--text-dim); }
/* CLV */
.clv-result {
  display: none;
  margin-top: 16px;
  padding: 16px;
  background: var(--bg);
  border: 1px solid var(--border);
  font-family: var(--mono);
}
.clv-result.show { display: block; }
.clv-val {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 4px;
}
.clv-val.positive { color: var(--p); }
.clv-val.negative { color: var(--a); }
/* HIGHLIGHT */
.highlight {
  background: rgba(0,255,136,0.08);
  border: 1px solid var(--p-dark);
  padding: 4px 8px;
  font-family: var(--mono);
  font-size: 13px;
  color: var(--p);
}
/* STICKY CTA BUTTON */
.sticky-cta .cta-btn {
  font-size: 11px;
  padding: 10px 18px;
  white-space: nowrap;
}
/* SECTION DIVIDER */
.section-divider {
  height: 1px;
  background: var(--border2);
  margin: 0;
}
/* RESPONSIVE */
@media (max-width: 600px) {
  .hero { padding: 40px 16px 32px; }
  .hero-stats { gap: 20px; }
  .section { padding: 48px 16px; }
  .calc-panel { padding: 16px; }
  .author-details { flex-direction: column; }
}
</style>
</head>
<body>

<!-- TICKER -->
<div class="ticker-wrap">
  <div class="ticker-label">NRL LIVE ODDS</div>
  <div class="ticker-track">
    <div class="ticker-item"><span class="team">Penrith Panthers</span> <span class="odds">1.75</span> <span class="change-down">▼ -0.05</span> | <span class="team">Brisbane Broncos</span> <span class="odds">2.10</span> <span class="change-up">▲ +0.05</span></div>
    <div class="ticker-item"><span class="team">Melbourne Storm</span> <span class="odds">1.65</span> <span class="change-up">▲ +0.03</span> | <span class="team">Sydney Roosters</span> <span class="odds">2.25</span> <span class="change-down">▼ -0.03</span></div>
    <div class="ticker-item"><span class="team">South Sydney Rabbitohs</span> <span class="odds">2.40</span> <span class="change-up">▲ +0.10</span> | <span class="team">Parramatta Eels</span> <span class="odds">1.65</span> <span class="change-down">▼ -0.10</span></div>
    <div class="ticker-item"><span class="team">Gold Coast Titans</span> <span class="odds">3.20</span> <span class="change-down">▼ -0.15</span> | <span class="team">NZ Warriors</span> <span class="odds">1.40</span> <span class="change-up">▲ +0.15</span></div>
    <div class="ticker-item"><span class="team">Cronulla Sharks</span> <span class="odds">1.90</span> <span class="change-down">▼ -0.08</span> | <span class="team">Manly Sea Eagles</span> <span class="odds">1.95</span> <span class="change-up">▲ +0.08</span></div>
    <div class="ticker-item"><span class="team">Canterbury Bulldogs</span> <span class="odds">2.85</span> <span class="change-up">▲ +0.20</span> | <span class="team">Wests Tigers</span> <span class="odds">1.48</span> <span class="change-down">▼ -0.20</span></div>
    <!-- duplicate for seamless loop -->
    <div class="ticker-item"><span class="team">Penrith Panthers</span> <span class="odds">1.75</span> <span class="change-down">▼ -0.05</span> | <span class="team">Brisbane Broncos</span> <span class="odds">2.10</span> <span class="change-up">▲ +0.05</span></div>
    <div class="ticker-item"><span class="team">Melbourne Storm</span> <span class="odds">1.65</span> <span class="change-up">▲ +0.03</span> | <span class="team">Sydney Roosters</span> <span class="odds">2.25</span> <span class="change-down">▼ -0.03</span></div>
    <div class="ticker-item"><span class="team">South Sydney Rabbitohs</span> <span class="odds">2.40</span> <span class="change-up">▲ +0.10</span> | <span class="team">Parramatta Eels</span> <span class="odds">1.65</span> <span class="change-down">▼ -0.10</span></div>
    <div class="ticker-item"><span class="team">Gold Coast Titans</span> <span class="odds">3.20</span> <span class="change-down">▼ -0.15</span> | <span class="team">NZ Warriors</span> <span class="odds">1.40</span> <span class="change-up">▲ +0.15</span></div>
    <div class="ticker-item"><span class="team">Cronulla Sharks</span> <span class="odds">1.90</span> <span class="change-down">▼ -0.08</span> | <span class="team">Manly Sea Eagles</span> <span class="odds">1.95</span> <span class="change-up">▲ +0.08</span></div>
    <div class="ticker-item"><span class="team">Canterbury Bulldogs</span> <span class="odds">2.85</span> <span class="change-up">▲ +0.20</span> | <span class="team">Wests Tigers</span> <span class="odds">1.48</span> <span class="change-down">▼ -0.20</span></div>
  </div>
</div>

<!-- NAV -->
<nav>
  <div class="nav-inner">
    <a href="/" class="nav-logo">NRL<span>ODDS</span>.PRO</a>
    <ul class="nav-links">
      <li><a href="#odds-guide">Odds Guide</a></li>
      <li><a href="#ev-calc">EV Calc</a></li>
      <li><a href="#margin">Margin</a></li>
      <li><a href="#clv">CLV</a></li>
      <li><a href="#sharp">Sharp Money</a></li>
    </ul>
    <a href="PLACEHOLDER" class="nav-cta" rel="nofollow sponsored">Start Betting →</a>
  </div>
</nav>

<!-- SOCIAL PROOF BAR -->
<div class="social-bar">
  <div class="social-bar-inner">
    <div class="social-item">
      <div class="social-dot green"></div>
      <span>Registered punters: <strong class="val reg-counter">3,241</strong></span>
    </div>
    <div class="social-item">
      <div class="social-dot green"></div>
      <span>Online now: <strong class="val online-counter">487</strong></span>
    </div>
    <div class="social-item">
      <span style="font-family:var(--mono);font-size:11px;color:var(--text-muted)">Odds updated: <span style="color:var(--p)" id="odds-update-time">just now</span></span>
    </div>
    <div class="social-item" style="margin-left:auto">
      <a href="PLACEHOLDER" class="cta-btn" style="font-size:11px;padding:8px 16px;animation:none" rel="nofollow sponsored">Get Best Odds →</a>
    </div>
  </div>
</div>

<!-- HERO -->
<section class="hero">
  <div class="hero-inner">
    <div class="hero-badge">
      <div class="dot"></div>
      QUANTITATIVE ANALYSIS TERMINAL — NRL 2026
    </div>
    <h1>NRL Odds Guide Australia 2026 – Understand &amp; Beat the Bookmakers</h1>
    <p class="hero-sub">Advanced quantitative analysis for serious Australian punters. Master expected value, closing line analysis, margin detection and sharp money tracking — the same tools used by professional bettors to gain a systematic edge in the NRL betting markets.</p>
    <div class="hero-stats">
      <div class="hero-stat">
        <div class="hero-stat-val">96.1%</div>
        <div class="hero-stat-label">Avg Payout Rate</div>
      </div>
      <div class="hero-stat">
        <div class="hero-stat-val">3.9%</div>
        <div class="hero-stat-label">Bookie Margin</div>
      </div>
      <div class="hero-stat">
        <div class="hero-stat-val">+CLV</div>
        <div class="hero-stat-label">Beating Closing Line</div>
      </div>
      <div class="hero-stat">
        <div class="hero-stat-val">285+</div>
        <div class="hero-stat-label">NRL Matches / Season</div>
      </div>
    </div>
    <div class="hero-cta-group">
      <a href="PLACEHOLDER" class="cta-btn" rel="nofollow sponsored">Open Betting Account →</a>
      <a href="#ev-calc" class="cta-btn-outline">Try EV Calculator</a>
    </div>
  </div>
</section>

<!-- ODDS TERMINAL SECTION -->
<section class="section" id="odds-terminal">
  <div class="section-inner">
    <div class="section-tag">// ODDS TERMINAL v2.6.1</div>
    <h2>Live NRL Odds Terminal</h2>
    <p>Professional-grade odds monitoring across all NRL matches. Watch the lines move in real time, identify sharp action and compare bookmaker prices to find the best available value on each market.</p>

    <div class="odds-terminal-wrap terminal">
      <div class="terminal-header">
        <div class="terminal-dots">
          <div class="terminal-dot red"></div>
          <div class="terminal-dot yellow"></div>
          <div class="terminal-dot green"></div>
        </div>
        <div class="terminal-title">NRL ODDS TERMINAL — ROUND 14 2026</div>
        <div class="terminal-status">● LIVE</div>
      </div>
      <div class="odds-header">
        <div>MATCH</div>
        <div>HOME</div>
        <div>AWAY</div>
        <div>TOTAL</div>
        <div>MOVEMENT</div>
      </div>
      <div class="odds-scroll-track">
        <div class="odds-scroll-inner">
          <div class="odds-row"><span class="match">Panthers v Broncos</span><span class="home-odds">1.75</span><span class="away-odds">2.10</span><span class="draw-odds">O 43.5</span><span class="movement mov-down">▼ -0.05</span></div>
          <div class="odds-row"><span class="match">Storm v Roosters</span><span class="home-odds">1.62</span><span class="away-odds">2.30</span><span class="draw-odds">O 41.0</span><span class="movement mov-up">▲ +0.08</span></div>
          <div class="odds-row"><span class="match">Rabbitohs v Eels</span><span class="home-odds">2.40</span><span class="away-odds">1.65</span><span class="draw-odds">O 38.5</span><span class="movement mov-up">▲ +0.12</span></div>
          <div class="odds-row"><span class="match">Cowboys v Knights</span><span class="home-odds">1.90</span><span class="away-odds">1.95</span><span class="draw-odds">O 40.5</span><span class="movement mov-down">▼ -0.03</span></div>
          <div class="odds-row"><span class="match">Sharks v Sea Eagles</span><span class="home-odds">1.85</span><span class="away-odds">2.00</span><span class="draw-odds">O 39.0</span><span class="movement mov-up">▲ +0.15</span></div>
          <div class="odds-row"><span class="match">Warriors v Dragons</span><span class="home-odds">1.45</span><span class="away-odds">2.90</span><span class="draw-odds">O 42.5</span><span class="movement mov-down">▼ -0.20</span></div>
          <div class="odds-row"><span class="match">Raiders v Bulldogs</span><span class="home-odds">1.55</span><span class="away-odds">2.50</span><span class="draw-odds">O 41.5</span><span class="movement mov-up">▲ +0.05</span></div>
          <div class="odds-row"><span class="match">Tigers v Titans</span><span class="home-odds">1.52</span><span class="away-odds">2.60</span><span class="draw-odds">O 37.5</span><span class="movement mov-down">▼ -0.08</span></div>
          <!-- duplicate for scroll -->
          <div class="odds-row"><span class="match">Panthers v Broncos</span><span class="home-odds">1.75</span><span class="away-odds">2.10</span><span class="draw-odds">O 43.5</span><span class="movement mov-down">▼ -0.05</span></div>
          <div class="odds-row"><span class="match">Storm v Roosters</span><span class="home-odds">1.62</span><span class="away-odds">2.30</span><span class="draw-odds">O 41.0</span><span class="movement mov-up">▲ +0.08</span></div>
          <div class="odds-row"><span class="match">Rabbitohs v Eels</span><span class="home-odds">2.40</span><span class="away-odds">1.65</span><span class="draw-odds">O 38.5</span><span class="movement mov-up">▲ +0.12</span></div>
          <div class="odds-row"><span class="match">Cowboys v Knights</span><span class="home-odds">1.90</span><span class="away-odds">1.95</span><span class="draw-odds">O 40.5</span><span class="movement mov-down">▼ -0.03</span></div>
          <div class="odds-row"><span class="match">Sharks v Sea Eagles</span><span class="home-odds">1.85</span><span class="away-odds">2.00</span><span class="draw-odds">O 39.0</span><span class="movement mov-up">▲ +0.15</span></div>
          <div class="odds-row"><span class="match">Warriors v Dragons</span><span class="home-odds">1.45</span><span class="away-odds">2.90</span><span class="draw-odds">O 42.5</span><span class="movement mov-down">▼ -0.20</span></div>
          <div class="odds-row"><span class="match">Raiders v Bulldogs</span><span class="home-odds">1.55</span><span class="away-odds">2.50</span><span class="draw-odds">O 41.5</span><span class="movement mov-up">▲ +0.05</span></div>
          <div class="odds-row"><span class="match">Tigers v Titans</span><span class="home-odds">1.52</span><span class="away-odds">2.60</span><span class="draw-odds">O 37.5</span><span class="movement mov-down">▼ -0.08</span></div>
        </div>
      </div>
    </div>

    <div style="margin-top:24px;text-align:center">
      <a href="PLACEHOLDER" class="cta-btn" rel="nofollow sponsored">View All Live NRL Odds →</a>
    </div>
  </div>
</section>

<!-- HOW TO READ NRL ODDS -->
<section class="section alt" id="odds-guide">
  <div class="section-inner">
    <div class="section-tag">// MODULE 01 — FUNDAMENTALS</div>
    <h2>How to Read NRL Odds: Decimal Format &amp; Implied Probability</h2>

    <div class="section-grid">
      <div>
        <p>Understanding NRL odds begins with the decimal format that Australian bookmakers use as their primary odds expression. Unlike the fractional odds common in the United Kingdom or the American moneyline format, decimal odds are mathematically cleaner and significantly easier to work with when performing quantitative analysis. The decimal odds number represents your total return on a one-unit stake, including your original stake amount.</p>

        <p>For example, if the <strong>Penrith Panthers</strong> are priced at <strong>1.75</strong> to win a match, that means for every one dollar you wager, you will receive $1.75 back if they win — a profit of $0.75 per dollar staked. The Melbourne Storm at <strong>1.55</strong> would return $1.55 total for each dollar wagered, meaning they are heavily favoured. The Brisbane Broncos at odds of <strong>2.10</strong> would return $2.10 total, representing the underdog position in that matchup.</p>

        <h3>Converting Decimal Odds to Implied Probability</h3>
        <p>The single most important calculation any serious NRL punter must master is converting decimal odds into implied probability. This conversion is the foundation of all advanced betting analysis because it allows you to compare your own estimated probabilities against what the bookmaker is offering.</p>

        <div class="formula-box">
          <div class="label">FORMULA — IMPLIED PROBABILITY</div>
          Implied Probability = 1 ÷ Decimal Odds × 100<br><br>
          Example: Odds 1.75 → 1 ÷ 1.75 × 100 = <strong>57.14%</strong><br>
          Example: Odds 2.10 → 1 ÷ 2.10 × 100 = <strong>47.62%</strong>
        </div>

        <p>Notice that if you add 57.14% + 47.62% = 104.76%. This does not equal 100%, and that extra 4.76% is the bookmaker's overround or margin — the built-in profit edge that all licensed Australian bookmakers apply to their markets. We will explore this in depth in the margin analysis section.</p>

        <h3>Reading NRL Match Markets</h3>
        <p>Australian NRL betting markets offer several primary bet types beyond head-to-head match winners. Line betting (also known as handicap betting) is particularly popular in rugby league and represents one of the sharpest markets. In line betting, the bookmaker assigns a points handicap to create a more balanced market.</p>

        <p>For example, if the Panthers are -7.5 line favourites at odds of <strong>1.91</strong>, they need to win by 8 or more points for your line bet to win. The Broncos at +7.5 would pay <strong>1.91</strong> if they either win outright or lose by fewer than 8 points. Because line odds are so close to even money (typically 1.90-1.92 on both sides), sharp bettors consider line betting to be one of the most efficient NRL markets to operate in.</p>
      </div>

      <div>
        <h3>NRL Decimal Odds Reference Table</h3>
        <table class="data-table">
          <thead>
            <tr><th>Decimal Odds</th><th>Implied Prob %</th><th>Profit per $10</th><th>Classification</th></tr>
          </thead>
          <tbody>
            <tr><td class="val-green">1.25</td><td>80.0%</td><td>$2.50</td><td>Heavy Fav</td></tr>
            <tr><td class="val-green">1.50</td><td>66.7%</td><td>$5.00</td><td>Favourite</td></tr>
            <tr><td class="val-green">1.75</td><td>57.1%</td><td>$7.50</td><td>Mild Fav</td></tr>
            <tr><td>1.91</td><td>52.4%</td><td>$9.10</td><td>Line Market</td></tr>
            <tr><td>2.00</td><td>50.0%</td><td>$10.00</td><td>Even Money</td></tr>
            <tr><td class="val-red">2.20</td><td>45.5%</td><td>$12.00</td><td>Underdog</td></tr>
            <tr><td class="val-red">2.80</td><td>35.7%</td><td>$18.00</td><td>Long Shot</td></tr>
            <tr><td class="val-red">4.00</td><td>25.0%</td><td>$30.00</td><td>Outsider</td></tr>
            <tr><td class="val-red">6.00</td><td>16.7%</td><td>$50.00</td><td>Rank Outsider</td></tr>
          </tbody>
        </table>

        <h3>Understanding NRL Market Types</h3>
        <p>Beyond basic head-to-head betting, the NRL offers a rich ecosystem of markets. First try scorer and anytime try scorer markets carry substantially higher bookmaker margins (often 15-25%), making them poor targets for value-seeking punters. Total points over/under markets typically carry margins of 5-8%. The most efficient markets in terms of low bookmaker margin are head-to-head match winner and line betting — both generally operating in the 3-5% margin range at competitive bookmakers.</p>

        <p>Prop bets such as winning margin, player performance and half-time results carry significantly higher margins and should be approached with extreme caution. Experienced quantitative bettors restrict their action almost exclusively to the most efficient markets: head-to-head, line and totals.</p>

        <div style="margin-top:24px">
          <a href="PLACEHOLDER" class="cta-btn" style="font-size:12px;padding:12px 24px" rel="nofollow sponsored">Compare NRL Bookmaker Odds →</a>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- BOOKMAKER MARGIN -->
<section class="section" id="margin">
  <div class="section-inner">
    <div class="section-tag">// MODULE 02 — MARGIN ANALYSIS</div>
    <h2>Bookmaker Margin: Understanding the House Edge</h2>

    <p>The bookmaker margin — also called the overround, vig or juice — is the mathematical advantage built into every market that ensures bookmakers profit regardless of which team wins. Understanding and minimising your exposure to bookmaker margin is one of the fundamental pillars of professional sports betting.</p>

    <div class="section-grid">
      <div>
        <h3>How Margin Works: The Mathematics</h3>
        <p>In a perfectly fair two-outcome market with no bookmaker edge, the implied probabilities of all outcomes would sum to exactly 100%. In the real world, bookmakers deliberately set odds so that these implied probabilities sum to more than 100%, and the excess above 100% represents their margin.</p>

        <div class="formula-box">
          <div class="label">FORMULA — BOOKMAKER MARGIN (2 OUTCOMES)</div>
          Margin = (1/Odds₁ + 1/Odds₂ − 1) × 100<br><br>
          Example: Panthers 1.75 | Broncos 2.10<br>
          = (1/1.75 + 1/2.10 − 1) × 100<br>
          = (0.5714 + 0.4762 − 1) × 100<br>
          = 0.0476 × 100 = <strong>4.76% margin</strong>
        </div>

        <h3>Fair Odds Calculation</h3>
        <p>Once you identify the margin, you can calculate what the fair (no-vig) odds should be. This gives you a baseline for determining whether a bookmaker's offered odds represent good value.</p>

        <div class="formula-box">
          <div class="label">FORMULA — FAIR ODDS (NO VIG)</div>
          Fair Odds = Decimal Odds × (1 + Margin/100)<br><br>
          Panthers 1.75 with 4.76% margin:<br>
          Fair Odds = 1.75 × 1.0476 = <strong>1.83</strong> (true probability 54.6%)<br><br>
          Broncos 2.10 with 4.76% margin:<br>
          Fair Odds = 2.10 × 1.0476 = <strong>2.20</strong> (true probability 45.5%)
        </div>

        <p>This reveals that by backing the Panthers at 1.75 when the fair price is 1.83, you are effectively paying a 4.5% tax on your wager. Over a large sample of bets, this margin compounds into substantial losses for punters who do not seek out the best available odds.</p>

        <h3>Australian NRL Market Margin Comparison</h3>
        <table class="data-table">
          <thead>
            <tr><th>Market Type</th><th>Typical Margin</th><th>Best Available</th><th>Rating</th></tr>
          </thead>
          <tbody>
            <tr><td>Head-to-Head</td><td>4.5-6%</td><td class="val-green">2.8-3.5%</td><td class="val-green">★★★★★</td></tr>
            <tr><td>Line Betting</td><td>4.0-5.5%</td><td class="val-green">3.0-3.8%</td><td class="val-green">★★★★★</td></tr>
            <tr><td>Total Points</td><td>5.0-8%</td><td>4.5-5%</td><td>★★★★☆</td></tr>
            <tr><td>1st Try Scorer</td><td>15-25%</td><td class="val-red">12-18%</td><td class="val-red">★★☆☆☆</td></tr>
            <tr><td>Margin Betting</td><td>10-15%</td><td class="val-red">8-12%</td><td class="val-red">★★★☆☆</td></tr>
            <tr><td>Multi / Parlay</td><td>12-30%+</td><td class="val-red">10-25%+</td><td class="val-red">★☆☆☆☆</td></tr>
          </tbody>
        </table>
      </div>

      <div>
        <h3>Margin Analyzer Calculator</h3>
        <div class="calc-panel">
          <div class="calc-title">// MARGIN ANALYZER</div>
          <div class="calc-field">
            <label class="calc-label" for="margin-odds1">Home Team Odds</label>
            <input type="number" id="margin-odds1" class="calc-input" placeholder="e.g. 1.75" step="0.01" min="1.01">
          </div>
          <div class="calc-field">
            <label class="calc-label" for="margin-odds2">Away Team Odds</label>
            <input type="number" id="margin-odds2" class="calc-input" placeholder="e.g. 2.10" step="0.01" min="1.01">
          </div>
          <button class="calc-btn" onclick="calcMargin()">CALCULATE MARGIN</button>
          <div class="margin-result" id="margin-result">
            <div class="margin-pct" id="margin-pct-val">—</div>
            <div class="calc-result-label">BOOKMAKER MARGIN</div>
            <div class="margin-breakdown" id="margin-breakdown"></div>
          </div>
        </div>

        <div style="margin-top:24px">
          <div class="content-box">
            <div class="box-title">⚠ Industry Insight</div>
            <p style="font-size:13px;margin:0;color:var(--text-dim)">The margin directly determines your break-even win rate. At 5% margin on a line market (odds ~1.91), you need to win 52.4% of bets just to break even. At a better-priced 1.95, your break-even drops to 51.3% — a meaningful difference over thousands of bets.</p>
          </div>
        </div>

        <h3>Margin Reduction Strategies</h3>
        <p>Professional NRL punters employ several strategies to reduce their effective margin exposure:</p>
        <ul>
          <li>Use odds comparison sites to find the best available price across multiple bookmakers</li>
          <li>Maintain accounts at 5-8 different licensed Australian bookmakers to shop lines</li>
          <li>Focus on head-to-head and line markets which carry the lowest margins</li>
          <li>Avoid same-game multis and prop bets with excessive vig</li>
          <li>Monitor mid-week line movements and bet early when bookmakers are still calibrating</li>
          <li>Seek out best-of-breed bookmakers known for competitive NRL pricing</li>
        </ul>

        <div style="margin-top:20px">
          <a href="PLACEHOLDER" class="cta-btn-outline" rel="nofollow sponsored">Find Best NRL Margins →</a>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- EV SECTION -->
<section class="section alt" id="ev-calc">
  <div class="section-inner">
    <div class="section-tag">// MODULE 03 — EXPECTED VALUE</div>
    <h2>Expected Value (EV): The Mathematical Core of Value Betting</h2>

    <div class="section-grid">
      <div>
        <p>Expected Value is the single most important concept in professional sports betting. It is the mathematical tool that separates gamblers from investors. EV represents the average amount you can expect to win (or lose) per unit staked, calculated over a theoretically infinite number of identical bets.</p>

        <p>A positive EV (+EV) bet is one where your estimated probability of winning is greater than the implied probability offered by the bookmaker's odds. A negative EV (-EV) bet — which describes the overwhelming majority of bets placed by recreational punters — means the bookmaker's odds underrepresent the true probability of the outcome you are backing.</p>

        <div class="formula-box">
          <div class="label">FORMULA — EXPECTED VALUE</div>
          EV = (Probability × (Odds − 1)) − (1 − Probability)<br><br>
          Where Probability is YOUR estimated win probability (0 to 1)<br><br>
          Positive EV → Bet is mathematically profitable long-term<br>
          Negative EV → Bet loses money long-term
        </div>

        <h3>EV Worked Example — NRL Match</h3>
        <p>Consider the Melbourne Storm vs Sydney Roosters. The bookmaker prices Storm at <strong>1.65</strong> (implied probability 60.6%). Your own analysis — based on form, injuries, weather, and historical head-to-head data — suggests Storm have a <strong>65%</strong> true win probability.</p>

        <div class="formula-box">
          <div class="label">EXAMPLE CALCULATION</div>
          Probability = 0.65 | Odds = 1.65<br>
          EV = (0.65 × (1.65 − 1)) − (1 − 0.65)<br>
          EV = (0.65 × 0.65) − 0.35<br>
          EV = 0.4225 − 0.35<br>
          EV = <strong>+0.0725 (per unit staked)</strong><br><br>
          On a $100 bet: Expected profit = <strong>+$7.25</strong>
        </div>

        <p>This means that if you placed this bet 100 times under identical conditions, you would expect to profit $7.25 per $100 wagered on average. This is a strong positive EV situation and represents exactly the type of bet professional punters are hunting for.</p>

        <h3>EV vs. Return on Investment</h3>
        <p>It is critical to understand that EV describes the long-run expectation, not individual bet outcomes. Even a +10% EV bet will lose almost 35% of the time if backed at even money. The short-term variance in sports betting is substantial, which is why bankroll management and bet sizing discipline are inseparable from EV-positive betting.</p>

        <p>Professional bettors track their EV separately from their actual results. If you are consistently finding and backing +EV opportunities but running below expectation, that is variance — not bad strategy. Conversely, running hot while backing -EV bets eventually catches up with you.</p>
      </div>

      <div>
        <h3>EV Calculator</h3>
        <div class="calc-panel" id="ev-calc">
          <div class="calc-title">// EV CALCULATOR</div>
          <div class="calc-field">
            <label class="calc-label" for="ev-prob">Your Estimated Win Probability (%)</label>
            <input type="number" id="ev-prob" class="calc-input" placeholder="e.g. 60" min="1" max="99" step="0.1">
          </div>
          <div class="calc-field">
            <label class="calc-label" for="ev-odds">Bookmaker Decimal Odds</label>
            <input type="number" id="ev-odds" class="calc-input" placeholder="e.g. 1.75" min="1.01" step="0.01">
          </div>
          <div class="calc-field">
            <label class="calc-label" for="ev-stake">Stake Amount ($)</label>
            <input type="number" id="ev-stake" class="calc-input" placeholder="e.g. 100" min="1" step="1" value="100">
          </div>
          <button class="calc-btn" onclick="calcEV()">CALCULATE EV</button>
          <div class="calc-result" id="ev-result">
            <div class="calc-result-val" id="ev-result-val">—</div>
            <div class="calc-result-label" id="ev-result-label">EXPECTED VALUE PER UNIT</div>
            <div class="calc-result-detail" id="ev-result-detail"></div>
          </div>
        </div>

        <div style="margin-top:24px">
          <h3>When to Bet: EV Decision Framework</h3>
          <table class="data-table">
            <thead>
              <tr><th>EV Range</th><th>Decision</th><th>Stake Size</th></tr>
            </thead>
            <tbody>
              <tr><td class="val-green">&gt; +5%</td><td class="val-green">Strong Bet</td><td>Full unit</td></tr>
              <tr><td class="val-green">+2% to +5%</td><td class="val-green">Good Bet</td><td>0.75 unit</td></tr>
              <tr><td>+0.5% to +2%</td><td>Marginal Bet</td><td>0.5 unit</td></tr>
              <tr><td class="val-red">-0.5% to +0.5%</td><td class="val-red">No Bet</td><td>0</td></tr>
              <tr><td class="val-red">&lt; -0.5%</td><td class="val-red">Never Bet</td><td>0</td></tr>
            </tbody>
          </table>
        </div>

        <div style="margin-top:20px">
          <a href="PLACEHOLDER" class="cta-btn" rel="nofollow sponsored">Find +EV NRL Bets →</a>
        </div>
      </div>
    </div>

    <div class="cta-section" style="margin-top:40px">
      <h3>Ready to Start Betting +EV?</h3>
      <p>Join thousands of Australian punters who use quantitative analysis to identify genuine value in NRL markets. Open your account today and start betting smarter.</p>
      <a href="PLACEHOLDER" class="cta-btn" rel="nofollow sponsored">Open Account – Best NRL Odds →</a>
    </div>
  </div>
</section>

<!-- CLV SECTION -->
<section class="section" id="clv">
  <div class="section-inner">
    <div class="section-tag">// MODULE 04 — CLOSING LINE VALUE</div>
    <h2>Closing Line Value (CLV): The Professional Bettor's North Star</h2>

    <div class="section-grid">
      <div>
        <p>Closing Line Value, or CLV, is the most reliable long-run indicator of whether a sports bettor has a genuine edge over bookmakers. The concept is straightforward but profound: if you consistently get better odds than the final closing price on a market, you are demonstrating real betting skill — not just short-term luck.</p>

        <p>The closing line is the set of odds a bookmaker offers immediately before a match begins. It represents the most efficient, information-rich price point in the market — incorporating all publicly known information including injury news, weather conditions, team selection and the aggregate betting action of thousands of punters.</p>

        <h3>Why Closing Lines Are Efficient</h3>
        <p>Bookmakers and betting markets function similarly to financial markets. Early in the week, when a bookmaker sets their opening NRL line, they are working with less information and making assumptions. As the week progresses, information flows in: a star halfback is ruled out with a hamstring injury, a team has had a light training session, sharp money starts hitting the market — and the line moves accordingly.</p>

        <p>By the time a match kicks off, the closing line has absorbed a week's worth of information and represents the collective wisdom of the market. Academic research on betting markets has demonstrated consistently that the closing line is a more accurate predictor of true outcome probability than opening lines or public-facing prices at any point during the week.</p>

        <div class="formula-box">
          <div class="label">FORMULA — CLOSING LINE VALUE</div>
          CLV% = ((Your Odds / Closing Odds) − 1) × 100<br><br>
          Example: You bet Panthers at 1.80 on Tuesday<br>
          Panthers close at 1.65 on Friday night kickoff<br>
          CLV = (1.80 / 1.65 − 1) × 100 = <strong>+9.09%</strong><br><br>
          Interpretation: You obtained 9% better odds than market closure → Strong positive signal
        </div>

        <h3>Interpreting Your CLV Results</h3>
        <p>Over a large sample of at least 100 bets, consistent positive CLV indicates you are successfully identifying value before the market moves to reflect it. This is the hallmark of a skilled bettor. Conversely, consistent negative CLV — where your early bets consistently get bet down — suggests you are following public money rather than sharp information.</p>

        <p>The power of CLV tracking is that it removes the noise of short-term results variance. A bettor might run 10 units below expectation for 200 bets while still maintaining +4% CLV — suggesting the losses are variance, not lack of edge. Tracking CLV gives you the data to make rational decisions about your betting approach rather than emotional reactions to short-term results.</p>
      </div>

      <div>
        <h3>CLV Calculator</h3>
        <div class="calc-panel">
          <div class="calc-title">// CLV TRACKER</div>
          <div class="calc-field">
            <label class="calc-label" for="clv-your">Your Odds (when you bet)</label>
            <input type="number" id="clv-your" class="calc-input" placeholder="e.g. 1.85" step="0.01" min="1.01">
          </div>
          <div class="calc-field">
            <label class="calc-label" for="clv-close">Closing Odds (at kickoff)</label>
            <input type="number" id="clv-close" class="calc-input" placeholder="e.g. 1.70" step="0.01" min="1.01">
          </div>
          <button class="calc-btn" onclick="calcCLV()">CALCULATE CLV</button>
          <div class="clv-result" id="clv-result">
            <div class="clv-val" id="clv-val">—</div>
            <div class="calc-result-label">CLOSING LINE VALUE</div>
            <div class="calc-result-detail" id="clv-detail"></div>
          </div>
        </div>

        <div style="margin-top:24px">
          <h3>CLV Benchmark Guide</h3>
          <table class="data-table">
            <thead>
              <tr><th>CLV Range</th><th>Interpretation</th><th>Action</th></tr>
            </thead>
            <tbody>
              <tr><td class="val-green">&gt; +5%</td><td>Outstanding edge</td><td class="val-green">Scale up</td></tr>
              <tr><td class="val-green">+2% to +5%</td><td>Strong value found</td><td class="val-green">Maintain size</td></tr>
              <tr><td>0% to +2%</td><td>Marginal CLV</td><td>Monitor closely</td></tr>
              <tr><td class="val-red">-2% to 0%</td><td>Weak CLV</td><td class="val-red">Review process</td></tr>
              <tr><td class="val-red">&lt; -2%</td><td>No edge detected</td><td class="val-red">Stop &amp; reassess</td></tr>
            </tbody>
          </table>
        </div>

        <div style="margin-top:20px">
          <a href="PLACEHOLDER" class="cta-btn-outline" rel="nofollow sponsored">Track NRL Line Movements →</a>
        </div>
      </div>
    </div>

    <h3 style="margin-top:32px">Building a CLV Tracking System</h3>
    <p>Every serious NRL bettor should maintain a betting record that captures not just results but CLV data. For each bet, record: the match, the side backed, your odds, the closing odds, the stake, the outcome (win/loss), and the CLV. After 100+ bets, perform a CLV analysis. If your average CLV is positive and your actual results are below expectation, you are experiencing normal variance and should continue. If your CLV is negative, you have a process problem that no amount of volume can fix.</p>
    <p>Many professional bettors operate with CLV as their primary KPI rather than ROI. A bettor running +3% CLV over 500 NRL bets with flat ROI due to variance is in a fundamentally stronger position than one running +5% ROI over 50 bets with no CLV tracking. The CLV data tells the true story.</p>
    <a href="PLACEHOLDER" class="cta-btn" style="display:inline-block;margin-top:16px" rel="nofollow sponsored">Join the Best NRL Bookmaker →</a>
  </div>
</section>

<!-- SHARP MONEY -->
<section class="section alt" id="sharp">
  <div class="section-inner">
    <div class="section-tag">// MODULE 05 — SHARP MONEY DETECTION</div>
    <h2>Sharp Money vs. Public Money: Reading the Market Like a Pro</h2>

    <p>Not all betting money is equal. The NRL betting market is segmented into two distinct groups: the public (recreational punters who bet for entertainment, often on popular teams or based on recent form and media narratives) and sharp bettors (professional or semi-professional punters who bet based on systematic quantitative analysis and have demonstrable long-run edges).</p>

    <p>Bookmakers price their markets to attract action from the public while simultaneously limiting or refusing sharp bettors. Understanding how to identify when sharp money is entering a market — and where it is going — is an advanced skill that can provide significant edges in NRL betting.</p>

    <div class="sharp-panel">
      <div class="sharp-title">// SHARP MONEY SIGNAL DETECTOR</div>
      <div class="signal-row">
        <div class="signal-icon sharp"></div>
        <div class="signal-desc">Line moves against public betting percentages (70%+ on one side but line moves other way)</div>
        <div class="signal-strength strong">SHARP SIGNAL</div>
      </div>
      <div class="signal-row">
        <div class="signal-icon sharp"></div>
        <div class="signal-desc">Significant steam move: odds shift 0.10+ in under 2 minutes at multiple books simultaneously</div>
        <div class="signal-strength strong">SHARP SIGNAL</div>
      </div>
      <div class="signal-row">
        <div class="signal-icon sharp"></div>
        <div class="signal-desc">Reverse line movement: public money on Team A but odds for Team A shorten, favouring Team B</div>
        <div class="signal-strength strong">SHARP SIGNAL</div>
      </div>
      <div class="signal-row">
        <div class="signal-icon public"></div>
        <div class="signal-desc">Line moves WITH majority betting percentages (high public volume driving expected movement)</div>
        <div class="signal-strength weak">PUBLIC MONEY</div>
      </div>
      <div class="signal-row">
        <div class="signal-icon public"></div>
        <div class="signal-desc">Popular team (Broncos, Roosters, Storm) attracting heavy action without injury news</div>
        <div class="signal-strength weak">PUBLIC MONEY</div>
      </div>
      <div class="signal-row">
        <div class="signal-icon public"></div>
        <div class="signal-desc">Odds drift (lengthen) for team after media coverage of positive performance narrative</div>
        <div class="signal-strength weak">PUBLIC MONEY</div>
      </div>
    </div>

    <div class="section-grid" style="margin-top:32px">
      <div>
        <h3>Steam Moves Explained</h3>
        <p>A steam move occurs when a large, coordinated bet or series of bets from professional accounts causes a rapid, simultaneous line movement across multiple bookmakers. The move typically happens within 60-90 seconds and can shift odds by 0.05 to 0.20 or more within minutes.</p>

        <p>When you observe a steam move in the NRL market, the information is already priced in — but the fact that a steam move occurred tells you something important about where sharp money assessed the true value to be. Some bettors use steam move detection as a secondary signal to confirm their own analysis rather than reacting to it directly.</p>

        <h3>Reverse Line Movement</h3>
        <p>Reverse line movement (RLM) is one of the most reliable sharp money indicators available. It occurs when the line moves in the opposite direction to the public betting percentage. For example: 75% of bets are on the Penrith Panthers, but instead of the Panthers' odds shortening (as you would expect with heavy volume), the odds actually lengthen from 1.70 to 1.78. This strongly suggests that sharp bettors are backing the Broncos with large individual stakes that outweigh the volume of smaller public bets on the Panthers side.</p>

        <p>RLM is most reliably observed on Wednesday-Thursday for NRL weekend matches, when the market has been open long enough for early sharp action to show but before the weight of public weekend money floods in. Tracking RLM regularly gives you a window into where informed money is positioned.</p>
      </div>

      <div>
        <h3>How Bookmakers Handle Sharp Bettors</h3>
        <p>Australian bookmakers employ sophisticated risk management systems to identify and limit sharp bettors. If your account consistently shows CLV-positive betting patterns, you may face account restrictions including reduced bet limits or complete account closure. This is a well-documented feature of the Australian betting landscape.</p>

        <p>The practical implication is that sharp-friendly or exchange-based betting platforms are valuable additions to any serious bettor's toolkit. Betting exchanges in particular offer no restriction on winning accounts — you are betting against other punters rather than the house, making exchanges the most level playing field available to Australian NRL bettors.</p>

        <h3>NRL Public Team Bias</h3>
        <p>Certain NRL clubs consistently attract disproportionate public money regardless of their actual win probability. Understanding this public bias creates systematic opportunities to fade (bet against) popular teams when the market has over-corrected in their favour.</p>

        <table class="data-table">
          <thead>
            <tr><th>Team</th><th>Public Bias</th><th>Typical Over-pricing</th></tr>
          </thead>
          <tbody>
            <tr><td>Sydney Roosters</td><td class="val-red">High (+)</td><td>2-4% odds shorter than fair</td></tr>
            <tr><td>Brisbane Broncos</td><td class="val-red">Very High (+)</td><td>3-6% odds shorter than fair</td></tr>
            <tr><td>Melbourne Storm</td><td class="val-red">High (+)</td><td>1-3% odds shorter than fair</td></tr>
            <tr><td>Gold Coast Titans</td><td class="val-green">Low (−)</td><td>1-3% odds longer than fair</td></tr>
            <tr><td>Wests Tigers</td><td class="val-green">Low (−)</td><td>2-4% odds longer than fair</td></tr>
          </tbody>
        </table>

        <div style="margin-top:20px">
          <a href="PLACEHOLDER" class="cta-btn" rel="nofollow sponsored">Beat the Public – Bet Smarter →</a>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- LINE MOVEMENT -->
<section class="section" id="line-movement">
  <div class="section-inner">
    <div class="section-tag">// MODULE 06 — LINE MOVEMENT ANALYSIS</div>
    <h2>Historical Line Movement Visualization &amp; Analysis</h2>

    <p>Line movement analysis tracks how NRL betting odds evolve from the opening line (set days before the match) to the closing line (at kickoff). Patterns in this movement reveal critical information about market sentiment, injury news impact, and the presence of sharp or public money flows.</p>

    <div class="section-grid" style="margin-bottom:32px">
      <div>
        <h3>Interpreting Line Movement Patterns</h3>
        <p>Different types of line movement carry different informational content. A sharp, sudden move early in the week typically indicates professional money reacting to information not yet reflected in the opening line. Gradual drift over several days usually represents public money accumulation. Understanding the timing, size and direction of moves allows experienced NRL bettors to reverse-engineer market sentiment and position accordingly.</p>

        <p>The most valuable line movement pattern for overlay bettors is the early sharp move followed by public fade back. This occurs when sharp money moves the line early in the week, but as public betting volume increases toward the weekend, the line drifts partially back. If you missed the early sharp move, this drift-back can sometimes present a second opportunity to get the same number the sharps originally targeted.</p>

        <h3>Key Line Movement Scenarios</h3>
        <ul>
          <li><strong>Opening → moves significantly → stays</strong>: Strong sharp conviction, do not fade</li>
          <li><strong>Opening → moves slightly → drifts back</strong>: Public correction, potential overlay</li>
          <li><strong>Opening → holds steady all week</strong>: Balanced market, no informational advantage for either side</li>
          <li><strong>Opening → moves both ways</strong>: Market uncertainty, elevated volatility, proceed cautiously</li>
          <li><strong>Opens and immediately steams</strong>: Fastest possible sharp reaction, follow with caution</li>
        </ul>
      </div>

      <div>
        <h3>Historical Movement — Week 14 NRL 2026</h3>
        <div class="line-chart">
          <div class="line-bar-row">
            <div class="line-bar-label">Panthers (H2H)</div>
            <div class="line-bar-track">
              <div class="line-bar-fill up" style="width:72%">1.80 → 1.75</div>
            </div>
            <div class="line-bar-val down">▼ 0.05</div>
          </div>
          <div class="line-bar-row">
            <div class="line-bar-label">Broncos (H2H)</div>
            <div class="line-bar-track">
              <div class="line-bar-fill down" style="width:55%">2.05 → 2.10</div>
            </div>
            <div class="line-bar-val up">▲ 0.05</div>
          </div>
          <div class="line-bar-row">
            <div class="line-bar-label">Storm (Line)</div>
            <div class="line-bar-track">
              <div class="line-bar-fill up" style="width:85%">1.95 → 1.88</div>
            </div>
            <div class="line-bar-val down">▼ 0.07</div>
          </div>
          <div class="line-bar-row">
            <div class="line-bar-label">Roosters (Line)</div>
            <div class="line-bar-track">
              <div class="line-bar-fill down" style="width:40%">1.88 → 1.95</div>
            </div>
            <div class="line-bar-val up">▲ 0.07</div>
          </div>
          <div class="line-bar-row">
            <div class="line-bar-label">Rabbitohs (H2H)</div>
            <div class="line-bar-track">
              <div class="line-bar-fill down" style="width:30%">2.25 → 2.40</div>
            </div>
            <div class="line-bar-val up">▲ 0.15</div>
          </div>
          <div class="line-bar-row">
            <div class="line-bar-label">Eels (H2H)</div>
            <div class="line-bar-track">
              <div class="line-bar-fill up" style="width:90%">1.75 → 1.65</div>
            </div>
            <div class="line-bar-val down">▼ 0.10</div>
          </div>
          <div class="line-bar-row">
            <div class="line-bar-label">Warriors (Total O)</div>
            <div class="line-bar-track">
              <div class="line-bar-fill up" style="width:60%">42.0 → 42.5</div>
            </div>
            <div class="line-bar-val down">▼ +0.5 pts</div>
          </div>
        </div>
      </div>
    </div>

    <h3>Using Line Movement Data in Your NRL Betting Strategy</h3>
    <p>Successful NRL bettors do not simply bet in the direction of line movement — they understand what the movement tells them about where informational edge might exist. The goal is to identify situations where your own probabilistic assessment diverges from the market's current price in your favour. Line movement is one input into this assessment, alongside team news, statistical modelling, weather and situational factors.</p>

    <p>A practical approach: if you have done your analysis and identified value on Team A at 2.10, then observe the line move to 2.00 before you can place your bet, you have lost your edge. Patience is essential. Sometimes the market moves toward your assessment (validating your analysis) and sometimes it moves away (suggesting new information you may not have). Learning to distinguish between these scenarios is a core professional bettor skill that develops over time and thousands of bets.</p>

    <div style="text-align:center;margin-top:32px">
      <a href="PLACEHOLDER" class="cta-btn" rel="nofollow sponsored">Access Live Line Movement Data →</a>
    </div>
  </div>
</section>

<!-- VALUE BETTING METHODOLOGY -->
<section class="section alt" id="value-betting">
  <div class="section-inner">
    <div class="section-tag">// MODULE 07 — VALUE BETTING METHODOLOGY</div>
    <h2>Value Betting Methodology: A Systematic Approach to NRL</h2>

    <p>Value betting is not about picking winners — it is about finding situations where the odds offered by bookmakers exceed the true probability of an outcome. A value bet can be a losing bet and still be the correct decision. A winning bet that was priced with no value is still the wrong decision. This fundamental distinction separates professional betting from recreational gambling.</p>

    <div class="grid-3">
      <div class="grid-card">
        <div class="grid-card-icon">[01]</div>
        <div class="grid-card-title">Model Building</div>
        <div class="grid-card-text">Develop a statistical model to assign win probabilities to each NRL matchup using historical data, current form, injury reports, home/away splits and team statistics.</div>
      </div>
      <div class="grid-card">
        <div class="grid-card-icon">[02]</div>
        <div class="grid-card-title">Line Shopping</div>
        <div class="grid-card-text">Compare your model's probabilities against available market odds across multiple licensed bookmakers. Identify the largest gaps between model price and market price.</div>
      </div>
      <div class="grid-card">
        <div class="grid-card-icon">[03]</div>
        <div class="grid-card-title">Bankroll Management</div>
        <div class="grid-card-text">Apply Kelly Criterion or fractional Kelly staking to size bets proportionally to identified edge. Never risk more than 2-5% of total bankroll on any single bet.</div>
      </div>
    </div>

    <div class="section-grid" style="margin-top:32px">
      <div>
        <h3>Building an NRL Probability Model</h3>
        <p>The foundation of value betting is having your own probability estimate for each match outcome. Without a model, you cannot systematically identify value — you are relying on intuition, which is demonstrably inferior to quantitative approaches over large samples.</p>

        <p>A basic NRL probability model might incorporate the following inputs:</p>
        <ul>
          <li>Team attack and defence efficiency ratings (based on points scored/conceded per game)</li>
          <li>Home ground advantage adjustment (typically 2-4 points in NRL)</li>
          <li>Head-to-head historical results between the two teams</li>
          <li>Recent form weighted more heavily than season averages</li>
          <li>Key player availability (halfback, fullback and prop injuries are most impactful)</li>
          <li>Travel and rest days (teams playing interstate on short breaks are at a disadvantage)</li>
          <li>Weather adjustments for outdoor venues (heavy rain reduces total scores)</li>
          <li>Referee assignments (different referees have measurably different penalty rates)</li>
        </ul>

        <p>Even a simple model incorporating these factors will outperform unaided intuition over a large enough sample. More sophisticated models add player-level tracking data, expected points metrics and Elo rating systems adapted for rugby league.</p>

        <h3>Kelly Criterion for NRL Betting</h3>
        <p>Once you have identified +EV opportunities, Kelly Criterion provides a mathematically optimal method for sizing your bets to maximise the long-run growth rate of your bankroll.</p>

        <div class="formula-box">
          <div class="label">KELLY CRITERION FORMULA</div>
          Kelly % = (Probability × Odds − 1) / (Odds − 1)<br><br>
          Example: Storm at 1.65, your probability = 65%<br>
          Kelly = (0.65 × 1.65 − 1) / (1.65 − 1)<br>
          Kelly = (1.0725 − 1) / 0.65<br>
          Kelly = 0.0725 / 0.65 = <strong>11.15% of bankroll</strong><br><br>
          Fractional Kelly (0.5x): <strong>5.57% of bankroll</strong>
        </div>

        <p>Most professional bettors use fractional Kelly (0.25x to 0.50x full Kelly) to reduce variance while maintaining the growth advantage. Full Kelly staking produces significant bankroll swings that are psychologically difficult to sustain even when mathematically optimal.</p>
      </div>

      <div>
        <h3>NRL-Specific Value Opportunities</h3>
        <p>Certain market conditions and match situations in the NRL consistently produce better value betting opportunities than others. Understanding these patterns allows you to concentrate your analytical effort where the expected return is highest.</p>

        <div class="content-box">
          <div class="box-title">HIGH VALUE OPPORTUNITY ZONES</div>
          <ul style="margin-top:8px">
            <li>Monday night games (limited market volume, less efficient pricing)</li>
            <li>Thursday night NRL (bookmakers calibrating quickly after Wednesday injury lists)</li>
            <li>Matches involving mid-table teams (less analytical coverage from bookmakers)</li>
            <li>Weather-affected matches (rain impacts scoring and correct adjustments are rare)</li>
            <li>Finals series underdogs (public overreaction to regular season form creates overlays)</li>
          </ul>
        </div>

        <h3>Track Your Value Betting Results</h3>
        <p>No value betting operation is complete without rigorous record-keeping. For each bet, track:</p>
        <ul>
          <li>Date and match</li>
          <li>Market and side backed</li>
          <li>Your model's probability</li>
          <li>Bookmaker odds at time of bet</li>
          <li>Closing odds (for CLV calculation)</li>
          <li>Stake amount</li>
          <li>Win/Loss result and profit/loss</li>
          <li>Calculated EV at time of bet</li>
        </ul>

        <p>Review this data monthly. Calculate your overall CLV, average EV per bet, actual ROI, and ROI standard deviation. If your CLV is positive and your ROI is tracking below EV, you are experiencing normal variance. If your CLV is negative, your edge identification process needs revisiting regardless of short-term results.</p>

        <div style="margin-top:20px">
          <a href="PLACEHOLDER" class="cta-btn" rel="nofollow sponsored">Start Your Betting Journey →</a>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- NRL MARKET ANALYSIS -->
<section class="section" id="nrl-markets">
  <div class="section-inner">
    <div class="section-tag">// MODULE 08 — NRL MARKET ANALYSIS</div>
    <h2>NRL-Specific Market Analysis: 2026 Season Insights</h2>

    <p>The NRL betting market has evolved significantly over the past decade. The proliferation of licensed online bookmakers, in-play betting technology and data analytics has made the Australian rugby league betting market one of the most competitive and heavily analysed in the world. Understanding the market structure and its specific dynamics is essential for sustained profitability.</p>

    <div class="section-grid">
      <div>
        <h3>Market Efficiency by Round</h3>
        <p>NRL markets are not uniformly efficient throughout the season. The highest pricing efficiency exists during the regular season when all teams are competing at full intensity. Market efficiency peaks in finals series matches where bookmaker analytical effort is concentrated and public interest is highest.</p>

        <p>The least efficient periods are typically the opening rounds of the season (pre-season form is a poor predictor and bookmakers are relying more heavily on prior-season data) and during Origin periods when top players are unavailable for club matches. During State of Origin rounds, predicting how teams will perform without 4-6 key players creates genuine modelling difficulty for bookmakers — and opportunities for well-prepared punters.</p>

        <h3>NRL Totals (Over/Under) Analysis</h3>
        <p>The totals market in NRL is increasingly popular but carries some of the most interesting analytical opportunities. Key factors affecting NRL total points:</p>
        <ul>
          <li><strong>Referee assignments</strong>: High-penalty referees consistently produce lower-scoring games as teams spend more time kicking penalties rather than playing open football</li>
          <li><strong>Weather conditions</strong>: Rain has a consistently measurable negative impact on total scores — typically 3-6 points below the dry-weather expectation</li>
          <li><strong>Venue characteristics</strong>: Indoor stadiums (Suncorp, Accor) eliminate weather impact; certain venues produce faster outfields leading to higher scores</li>
          <li><strong>Match importance/motivation</strong>: Must-win finals scenarios often produce lower-scoring tactical battles vs. meaningless regular season rounds</li>
          <li><strong>Injury to attacking players</strong>: Star playmaker availability has outsized impact on team scoring capability</li>
        </ul>

        <h3>Prop Bet Market Warning</h3>
        <p>First try scorer, anytime try scorer and player prop markets are among the most egregiously overpriced markets in Australian sports betting. Bookmakers apply margins of 15-30% to these markets because recreational punters love the excitement of specific player bets without appreciating the mathematical disadvantage they are accepting. Our analysis shows that backing favourites in first try scorer markets returns an average of approximately 70-75 cents per dollar wagered — a 25-30% house edge that no analytical approach can consistently overcome.</p>
      </div>

      <div>
        <h3>2026 NRL Season Betting Landscape</h3>
        <table class="data-table">
          <thead>
            <tr><th>Team</th><th>Current Title Odds</th><th>Implied Prob</th><th>Assessment</th></tr>
          </thead>
          <tbody>
            <tr><td>Penrith Panthers</td><td class="val-green">4.50</td><td>22.2%</td><td>Fair Value</td></tr>
            <tr><td>Melbourne Storm</td><td class="val-green">5.00</td><td>20.0%</td><td>Fair Value</td></tr>
            <tr><td>Brisbane Broncos</td><td>6.00</td><td>16.7%</td><td>Slightly Short</td></tr>
            <tr><td>Sydney Roosters</td><td>7.00</td><td>14.3%</td><td class="val-red">Short</td></tr>
            <tr><td>South Sydney</td><td>10.00</td><td>10.0%</td><td>Fair Value</td></tr>
            <tr><td>Cronulla Sharks</td><td>13.00</td><td>7.7%</td><td class="val-green">Value?</td></tr>
            <tr><td>North Queensland</td><td>15.00</td><td>6.7%</td><td class="val-green">Value?</td></tr>
            <tr><td>Others</td><td>25.00+</td><td>&lt;4%</td><td>Speculative</td></tr>
          </tbody>
        </table>

        <h3>Live Betting in the NRL</h3>
        <p>In-play betting represents one of the fastest-growing segments of the Australian NRL betting market. Live markets offer unique opportunities because real-time odds algorithms sometimes fail to adequately adjust for momentum shifts, yellow cards (sin bins), or tactical changes that experienced NRL observers can identify immediately.</p>

        <p>However, live betting also carries unique risks. The speed of decision-making required, combined with the excitement of live action, makes in-play betting particularly prone to impulsive, emotionally-driven decisions. Successful live NRL bettors typically have pre-defined scenarios they are looking for (e.g., "if Team X scores first and odds extend to X.XX on the opposition, back the comeback at this price") rather than making reactive decisions in the moment.</p>

        <div style="margin-top:20px">
          <a href="PLACEHOLDER" class="cta-btn" rel="nofollow sponsored">Live NRL Betting →</a>
        </div>
      </div>
    </div>

    <div class="cta-section">
      <h3>Ready to Apply Quantitative NRL Analysis?</h3>
      <p>Join Australia's most analytically-minded punters. Access the best NRL odds, live markets and dedicated customer support.</p>
      <a href="PLACEHOLDER" class="cta-btn" rel="nofollow sponsored">Sign Up – Best NRL Bookmaker →</a>
    </div>
  </div>
</section>

<!-- RESPONSIBLE GAMBLING / BANKROLL SECTION -->
<section class="section alt">
  <div class="section-inner">
    <div class="section-tag">// MODULE 09 — BANKROLL & DISCIPLINE</div>
    <h2>Bankroll Management &amp; Betting Discipline</h2>

    <div class="section-grid">
      <div>
        <p>No analytical framework, however sophisticated, will produce long-run profits without disciplined bankroll management. The history of sports betting is littered with skilled analysts who went broke due to improper bet sizing and poor emotional control. Bankroll management is not optional — it is the mechanical infrastructure that keeps you in the game long enough for your edge to manifest.</p>

        <h3>Establishing Your Betting Bankroll</h3>
        <p>Your betting bankroll should be capital that you can afford to lose entirely without impacting your quality of life. This is not a pessimistic statement — it is a precondition for making rational betting decisions. When bettors risk money they cannot afford to lose, they make emotionally distorted decisions: chasing losses, doubling up on bad beats, abandoning strategies after short losing runs.</p>

        <ul>
          <li>Start with a bankroll of at least 100 units (where 1 unit = your standard bet size)</li>
          <li>A $5,000 bankroll means $50 per unit or smaller for flat betting</li>
          <li>Never exceed 5% of bankroll on any single bet (2-3% is optimal for most staking plans)</li>
          <li>Replenish your bankroll at the start of each NRL season, not mid-season</li>
          <li>Track every bet — winning without tracking is not evidence of skill</li>
        </ul>

        <h3>The Psychological Challenges</h3>
        <p>Even the most mathematically rigorous betting approach requires psychological resilience. Losing runs of 10-15 consecutive bets are statistically normal even for +EV bettors. The challenge is maintaining process discipline during these inevitable variance periods without abandoning a sound strategy. Keeping detailed records that include EV tracking (not just win/loss) is the most effective antidote to emotional decision-making during downswings.</p>
      </div>

      <div>
        <h3>Staking Plans Compared</h3>
        <table class="data-table">
          <thead>
            <tr><th>Staking Method</th><th>Risk Level</th><th>Best For</th><th>Recommendation</th></tr>
          </thead>
          <tbody>
            <tr><td>Flat Staking</td><td>Low</td><td>Beginners</td><td class="val-green">Recommended</td></tr>
            <tr><td>Fractional Kelly</td><td>Medium</td><td>Advanced</td><td class="val-green">Optimal</td></tr>
            <tr><td>Full Kelly</td><td>High</td><td>Professionals</td><td>Caution</td></tr>
            <tr><td>Martingale</td><td>Very High</td><td>Casino games</td><td class="val-red">Never</td></tr>
            <tr><td>Percentage Staking</td><td>Low-Medium</td><td>Growing bankrolls</td><td class="val-green">Good option</td></tr>
          </tbody>
        </table>

        <div class="content-box" style="margin-top:24px">
          <div class="box-title">RESPONSIBLE GAMBLING REMINDER</div>
          <p style="font-size:13px;margin:0;color:var(--text-dim)">Betting should be entertaining and undertaken responsibly. Never bet more than you can comfortably afford to lose. Set deposit limits, loss limits and time limits with your bookmaker. If gambling is causing distress, contact the National Gambling Helpline: 1800 858 858 (Australia).</p>
        </div>

        <div style="margin-top:20px">
          <a href="PLACEHOLDER" class="cta-btn-outline" rel="nofollow sponsored">Start Betting Responsibly →</a>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- FAQ -->
<section class="section" id="faq">
  <div class="section-inner">
    <div class="section-tag">// FAQ</div>
    <h2>Frequently Asked Questions — NRL Odds &amp; Betting</h2>

    <div style="max-width:800px">
      <div class="faq-item">
        <button class="faq-question" onclick="toggleFaq(this)">
          What are decimal odds and how do I convert them to probability?
          <span class="faq-icon">+</span>
        </button>
        <div class="faq-answer">
          Decimal odds represent your total return per unit staked, including your original stake. To convert decimal odds to implied probability, divide 1 by the decimal odds and multiply by 100. For example, odds of 2.00 represent a 50% implied probability (1/2.00 × 100 = 50%). Odds of 1.75 represent 57.14% implied probability. Australian bookmakers universally display odds in decimal format, making them the most practical format for quantitative NRL analysis.
        </div>
      </div>

      <div class="faq-item">
        <button class="faq-question" onclick="toggleFaq(this)">
          What is a fair bookmaker margin for NRL head-to-head betting?
          <span class="faq-icon">+</span>
        </button>
        <div class="faq-answer">
          The most competitive Australian NRL bookmakers offer head-to-head margins of approximately 3-4% on major matches. Lower-volume matches and smaller markets typically carry higher margins. A margin above 6% on H2H markets should be considered poor value. Always compare odds across multiple bookmakers — even small differences of 0.05 in odds represent meaningful differences in long-run profitability over hundreds of bets.
        </div>
      </div>

      <div class="faq-item">
        <button class="faq-question" onclick="toggleFaq(this)">
          How do I identify positive expected value (EV) NRL bets?
          <span class="faq-icon">+</span>
        </button>
        <div class="faq-answer">
          To find +EV bets, you need your own probability estimate for each outcome (based on research, statistical models or analysis) and then compare it to the bookmaker's implied probability (1/odds × 100). If your estimated probability exceeds the bookmaker's implied probability by a meaningful margin (typically 2%+), you have identified a potentially +EV situation. Use our EV Calculator above to quickly determine the expected value of any proposed bet before placing it.
        </div>
      </div>

      <div class="faq-item">
        <button class="faq-question" onclick="toggleFaq(this)">
          What is CLV and why does it matter more than win rate?
          <span class="faq-icon">+</span>
        </button>
        <div class="faq-answer">
          Closing Line Value (CLV) measures whether you are consistently getting better odds than the final closing price before kickoff. Research consistently shows that bettors who beat the closing line — even slightly — outperform those who do not over large samples, regardless of short-term win/loss results. CLV is a leading indicator of skill while win rate over small samples is dominated by variance. A bettor with +3% CLV over 300 bets has demonstrable skill; a bettor with 55% win rate over 50 bets may simply be running hot.
        </div>
      </div>

      <div class="faq-item">
        <button class="faq-question" onclick="toggleFaq(this)">
          How do I recognise sharp money movement in NRL markets?
          <span class="faq-icon">+</span>
        </button>
        <div class="faq-answer">
          The most reliable sharp money signal is reverse line movement: when odds move against the direction you would expect based on public betting percentages. For example, if 70% of bets are on Team A but Team A's odds lengthen instead of shortening, this is a strong indication that sharp bettors have backed Team B with larger-than-average stakes. Other signals include sudden steam moves (rapid simultaneous price changes across multiple bookmakers) and early-week line movement before public money enters the market.
        </div>
      </div>

      <div class="faq-item">
        <button class="faq-question" onclick="toggleFaq(this)">
          Is value betting legal for Australian punters?
          <span class="faq-icon">+</span>
        </button>
        <div class="faq-answer">
          Yes, all forms of sports betting with licensed Australian bookmakers are completely legal for Australian adults 18 years and over. Value betting is simply a disciplined approach to finding bets where the odds offered exceed your estimated true probability — there is nothing unlawful about it. However, be aware that Australian bookmakers may limit or close accounts that demonstrate consistent CLV-positive betting patterns, as skilled bettors represent a liability to their profit margins.
        </div>
      </div>

      <div class="faq-item">
        <button class="faq-question" onclick="toggleFaq(this)">
          What bankroll do I need to start NRL value betting seriously?
          <span class="faq-icon">+</span>
        </button>
        <div class="faq-answer">
          For meaningful statistical tracking, you need enough bankroll to place at least 100 bets over a full NRL season. If your standard bet size is $50, you need a starting bankroll of at least $2,500-$5,000 to be adequately capitalised against variance. Starting smaller is perfectly fine for learning purposes, but keep in mind that very small samples will not provide statistically meaningful CLV data. Focus on process quality and bankroll discipline above all other considerations in your first season of analytical betting.
        </div>
      </div>

      <div class="faq-item">
        <button class="faq-question" onclick="toggleFaq(this)">
          How many bookmaker accounts should I maintain for NRL betting?
          <span class="faq-icon">+</span>
        </button>
        <div class="faq-answer">
          Serious NRL value bettors typically maintain accounts at 5-8 licensed Australian bookmakers to enable effective line shopping. Having multiple accounts allows you to always secure the best available price on any given bet, which can add 0.5-2% to your long-run ROI — a significant advantage over thousands of bets. Prioritise bookmakers known for competitive NRL pricing, fast withdrawals and reasonable account limits for winning players.
        </div>
      </div>
    </div>

    <div style="margin-top:40px;text-align:center">
      <a href="PLACEHOLDER" class="cta-btn" rel="nofollow sponsored">Open Your Betting Account Today →</a>
    </div>
  </div>
</section>

<!-- AUTHOR -->
<section class="section alt">
  <div class="section-inner">
    <div class="author-section">
      <div class="author-details">
        <div class="author-avatar">MW</div>
        <div class="author-meta">
          <div class="author-role">// ARTICLE AUTHOR</div>
          <strong class="author-name">Dr. Marcus Webb</strong>
          <p class="author-bio">Dr. Marcus Webb is a quantitative sports analyst with over sixteen years of professional experience in sports betting markets, statistical modelling and financial market analysis across Australia and the United Kingdom. He holds a doctorate in applied mathematics and has consulted for multiple Australian sports analytics firms, specialising in NRL market efficiency, expected value frameworks and closing line value research. His quantitative methodologies have been referenced in peer-reviewed sports betting research and adopted by professional betting syndicates operating in the Australasian market.</p>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- FOOTER -->
<footer>
  <div class="footer-inner">
    <div class="footer-grid">
      <div>
        <div class="footer-brand">NRLODDS.PRO</div>
        <p class="footer-desc">Australia's premier quantitative NRL betting analysis resource. We provide independent analysis, mathematical tools and educational content for serious Australian punters. All content is for informational purposes only.</p>
      </div>
      <div>
        <div class="footer-heading">Quick Links</div>
        <ul class="footer-links">
          <li><a href="#odds-guide">How to Read NRL Odds</a></li>
          <li><a href="#margin">Margin Analyzer</a></li>
          <li><a href="#ev-calc">EV Calculator</a></li>
          <li><a href="#clv">CLV Tracker</a></li>
          <li><a href="#sharp">Sharp Money</a></li>
        </ul>
      </div>
      <div>
        <div class="footer-heading">Resources</div>
        <ul class="footer-links">
          <li><a href="PLACEHOLDER" rel="nofollow sponsored">Open Betting Account</a></li>
          <li><a href="PLACEHOLDER" rel="nofollow sponsored">Best NRL Odds</a></li>
          <li><a href="PLACEHOLDER" rel="nofollow sponsored">Live NRL Betting</a></li>
          <li><a href="PLACEHOLDER" rel="nofollow sponsored">NRL Promotions</a></li>
        </ul>
      </div>
    </div>

    <div class="footer-bottom">
      <div class="footer-copy">© 2026 UnitedTarneitSC — NRL Odds Analysis. All rights reserved.</div>
      <a href="PLACEHOLDER" class="cta-btn" style="font-size:11px;padding:8px 16px;animation:none" rel="nofollow sponsored">Bet Now →</a>
    </div>

    <div class="footer-disclaimer">
      <strong style="color:var(--text-muted);font-family:var(--mono);font-size:10px;letter-spacing:1px">18+ ONLY — GAMBLE RESPONSIBLY</strong><br>
      This website is intended for users aged 18 years and over only. Gambling involves financial risk and is not a guaranteed method of generating income. All analysis and calculators on this site are provided for informational and educational purposes only and do not constitute financial or betting advice. Australian punters are encouraged to set deposit limits and use responsible gambling tools available through their bookmaker. If gambling is affecting you negatively, contact the National Gambling Helpline on 1800 858 858 or visit gamblinghelponline.org.au. Licensed gambling operators in Australia are regulated by relevant state and territory authorities.
    </div>
  </div>
</footer>

<!-- STICKY MOBILE CTA -->
<div class="sticky-cta">
  <div class="sticky-cta-text">
    <strong class="online-counter">487</strong> punters online now
  </div>
  <a href="PLACEHOLDER" class="cta-btn" rel="nofollow sponsored">Bet NRL Now →</a>
</div>

<script>
// Social proof counters
function updateCounters() {
  var regEl = document.querySelectorAll('.reg-counter');
  var onlineEl = document.querySelectorAll('.online-counter');
  
  regEl.forEach(function(el) {
    var current = parseInt(el.textContent.replace(/,/g, ''));
    var delta = Math.floor(Math.random() * 3 + 1);
    var dir = Math.random() > 0.3 ? 1 : -1;
    var next = current + dir * delta;
    if (next < 1000) next = 1000;
    if (next > 9999) next = 9999;
    el.textContent = next.toLocaleString();
  });
  
  onlineEl.forEach(function(el) {
    var current = parseInt(el.textContent.replace(/,/g, ''));
    var delta = Math.floor(Math.random() * 3 + 1);
    var dir = Math.random() > 0.4 ? 1 : -1;
    var next = current + dir * delta;
    if (next < 100) next = 100;
    if (next > 999) next = 999;
    el.textContent = next.toLocaleString();
  });
}
setInterval(updateCounters, 2000);

// EV Calculator
function calcEV() {
  var prob = parseFloat(document.getElementById('ev-prob').value) / 100;
  var odds = parseFloat(document.getElementById('ev-odds').value);
  var stake = parseFloat(document.getElementById('ev-stake').value) || 100;
  
  if (!prob || !odds || prob <= 0 || prob >= 1 || odds <= 1) {
    alert('Please enter valid probability (1-99%) and odds (>1.01)');
    return;
  }
  
  var ev = (prob * (odds - 1)) - (1 - prob);
  var evStake = ev * stake;
  var impliedProb = (1 / odds * 100).toFixed(1);
  var edge = ((prob * 100) - parseFloat(impliedProb)).toFixed(2);
  
  var resultEl = document.getElementById('ev-result');
  var valEl = document.getElementById('ev-result-val');
  var labelEl = document.getElementById('ev-result-label');
  var detailEl = document.getElementById('ev-result-detail');
  
  resultEl.classList.add('show');
  
  if (ev > 0) {
    valEl.textContent = '+$' + evStake.toFixed(2) + ' (' + (ev * 100).toFixed(2) + '% EV)';
    valEl.className = 'calc-result-val positive';
    labelEl.textContent = '✓ POSITIVE EV — THIS IS A VALUE BET';
    detailEl.textContent = 'Your edge: ' + edge + '% | Implied prob: ' + impliedProb + '% | Your prob: ' + (prob * 100).toFixed(1) + '%';
  } else {
    valEl.textContent = '-$' + Math.abs(evStake).toFixed(2) + ' (' + (ev * 100).toFixed(2) + '% EV)';
    valEl.className = 'calc-result-val negative';
    labelEl.textContent = '✗ NEGATIVE EV — AVOID THIS BET';
    detailEl.textContent = 'Book edge: ' + Math.abs(edge) + '% | Implied prob: ' + impliedProb + '% | Your prob: ' + (prob * 100).toFixed(1) + '%';
  }
}

// Margin Calculator
function calcMargin() {
  var odds1 = parseFloat(document.getElementById('margin-odds1').value);
  var odds2 = parseFloat(document.getElementById('margin-odds2').value);
  
  if (!odds1 || !odds2 || odds1 <= 1 || odds2 <= 1) {
    alert('Please enter valid decimal odds (greater than 1.01)');
    return;
  }
  
  var imp1 = 1 / odds1;
  var imp2 = 1 / odds2;
  var margin = (imp1 + imp2 - 1) * 100;
  
  var fairOdds1 = (odds1 * (1 + margin / 100)).toFixed(2);
  var fairOdds2 = (odds2 * (1 + margin / 100)).toFixed(2);
  
  var resultEl = document.getElementById('margin-result');
  var pctEl = document.getElementById('margin-pct-val');
  var breakEl = document.getElementById('margin-breakdown');
  
  resultEl.classList.add('show');
  pctEl.textContent = margin.toFixed(2) + '%';
  
  var rating = margin < 3.5 ? 'EXCELLENT' : margin < 5 ? 'GOOD' : margin < 7 ? 'AVERAGE' : 'POOR';
  breakEl.innerHTML = 'Implied prob 1: ' + (imp1 * 100).toFixed(1) + '%<br>' +
    'Implied prob 2: ' + (imp2 * 100).toFixed(1) + '%<br>' +
    'Overround: ' + ((imp1 + imp2) * 100).toFixed(1) + '%<br>' +
    'Fair odds 1: ' + fairOdds1 + ' | Fair odds 2: ' + fairOdds2 + '<br>' +
    'Market rating: ' + rating;
}

// CLV Calculator
function calcCLV() {
  var yourOdds = parseFloat(document.getElementById('clv-your').value);
  var closeOdds = parseFloat(document.getElementById('clv-close').value);
  
  if (!yourOdds || !closeOdds || yourOdds <= 1 || closeOdds <= 1) {
    alert('Please enter valid decimal odds');
    return;
  }
  
  var clv = ((yourOdds / closeOdds) - 1) * 100;
  
  var resultEl = document.getElementById('clv-result');
  var valEl = document.getElementById('clv-val');
  var detailEl = document.getElementById('clv-detail');
  
  resultEl.classList.add('show');
  
  if (clv > 0) {
    valEl.textContent = '+' + clv.toFixed(2) + '% CLV';
    valEl.className = 'clv-val positive';
    var assessment = clv > 5 ? 'Outstanding — strong evidence of edge' : clv > 2 ? 'Good — above market close' : 'Marginal — slight positive CLV';
    detailEl.textContent = assessment + '. Your bet: ' + yourOdds + ' | Closing: ' + closeOdds;
  } else {
    valEl.textContent = clv.toFixed(2) + '% CLV';
    valEl.className = 'clv-val negative';
    var negAssess = clv < -3 ? 'Poor — market moved significantly against you' : 'Below average — negative CLV detected';
    detailEl.textContent = negAssess + '. Your bet: ' + yourOdds + ' | Closing: ' + closeOdds;
  }
}

// FAQ toggle
function toggleFaq(btn) {
  var answer = btn.nextElementSibling;
  var icon = btn.querySelector('.faq-icon');
  if (answer.classList.contains('open')) {
    answer.classList.remove('open');
    icon.textContent = '+';
  } else {
    answer.classList.add('open');
    icon.textContent = '−';
  }
}

// Update odds time
var updateMin = 0;
setInterval(function() {
  updateMin++;
  var el = document.getElementById('odds-update-time');
  if (el) {
    el.textContent = updateMin === 1 ? '1 min ago' : updateMin + ' mins ago';
  }
}, 60000);
</script>
</body>
</html>
