<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>Sports News & Trends | AerobicBike.com</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />

  <meta name="description" content="AerobicBike.com covers sports news, market trends, companies, products, services, business signals and industry updates." />
  <meta name="robots" content="index, follow" />
  <link rel="canonical" href="https://www.aerobicbike.com/" />

  <meta property="og:title" content="Sports News & Trends | AerobicBike.com" />
  <meta property="og:description" content="AerobicBike.com covers sports news, market trends, companies, products, services, business signals and industry updates." />
  <meta property="og:type" content="website" />
  <meta property="og:url" content="https://www.aerobicbike.com/" />
  <meta property="og:image" content="https://images.unsplash.com/photo-1517649763962-0c623066013b?auto=format&fit=crop&w=1200&q=85" />

  <meta name="twitter:card" content="summary_large_image" />
  <meta name="twitter:title" content="Sports News & Trends | AerobicBike.com" />
  <meta name="twitter:description" content="AerobicBike.com covers sports news, market trends, companies, products, services, business signals and industry updates." />
  <meta name="twitter:image" content="https://images.unsplash.com/photo-1517649763962-0c623066013b?auto=format&fit=crop&w=1200&q=85" />

  <meta name="theme-color" content="#166534" />
  <link rel="icon" href="/favicon.ico" />

  <script src="https://cdn.tailwindcss.com"></script>

  <style>
    @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Manrope:wght@500;700;800&display=swap');

    :root{
      --bg:#f8fafc;
      --bg2:#ffffff;
      --bg3:#eef2f7;

      --ink:#111827;
      --ink2:#443322;
      --muted:#746554;
      --muted2:#8a7b68;

      --blue:#166534;
      --blue2:#166534;
      --blue3:#111827;
      --cyan:#facc15;

      --green:#22c55e;
      --green2:#22c55e;
      --green-soft:#fff4df;

      --gold:#facc15;
      --gold2:#166534;
      --gold-soft:#fff4d6;

      --red:#b85b4f;
      --red-soft:#ffe7e1;

      --panel:#ffffff;
      --panel2:rgba(255,255,255,0.95);
      --panel3:rgba(255,255,255,0.88);

      --line:rgba(91,58,31,0.20);
      --line2:rgba(91,58,31,0.12);
      --line3:rgba(255,255,255,0.58);

      --shadow1:0 28px 90px rgba(42,35,24,0.12);
      --shadow2:0 16px 38px rgba(42,35,24,0.11);
      --shadow3:0 8px 20px rgba(42,35,24,0.09);

      --r-xl:26px;
      --r-lg:20px;
      --r-md:16px;
      --r-sm:12px;
    }

    *{ box-sizing:border-box; }
    html{ scroll-behavior:smooth; }

    body{
      margin:0;
      font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
      color:var(--ink);
      background:
        radial-gradient(circle at 10% 0%, rgba(21,109,67,0.10), transparent 24%),
        radial-gradient(circle at 92% 8%, rgba(28,171,115,0.09), transparent 22%),
        linear-gradient(180deg, var(--bg2), var(--bg));
      min-height:100vh;
      overflow-x:hidden;
    }

    body::before{
      content:"";
      position:fixed;
      inset:0;
      pointer-events:none;
      background:
        linear-gradient(rgba(24,49,38,0.018) 1px, transparent 1px),
        linear-gradient(90deg, rgba(24,49,38,0.018) 1px, transparent 1px);
      background-size:34px 34px;
      opacity:.18;
      z-index:0;
    }

    a{ text-decoration:none; color:inherit; }
    img{ display:block; max-width:100%; }

    .shell{
      position:relative;
      z-index:1;
      max-width:1460px;
      margin:0 auto;
      padding:0 18px;
    }

    .header{
      position:relative;
      overflow:hidden;
      background:
        linear-gradient(180deg, rgba(0,0,0,0.38), rgba(0,0,0,0.22)),
        linear-gradient(135deg, var(--blue), var(--blue2)),
        radial-gradient(circle at 14% 12%, rgba(255,255,255,0.14), transparent 28%),
        radial-gradient(circle at 88% 10%, rgba(216,174,83,0.14), transparent 24%);
      border-bottom:2px solid rgba(255,255,255,0.16);
      box-shadow:0 8px 34px rgba(10,56,42,0.18);
    }

    .header::before{
      content:"";
      position:absolute;
      inset:0;
      pointer-events:none;
      background:linear-gradient(90deg, transparent, rgba(255,255,255,0.08), transparent);
      opacity:.40;
    }

    .header-hero{
      position:absolute;
      inset:0;
      pointer-events:none;
      background-image:
        linear-gradient(180deg, rgba(255,255,255,0.00), rgba(255,255,255,0.05)),
        url('https://images.unsplash.com/photo-1517649763962-0c623066013b?auto=format&fit=crop&w=1200&q=85');
      background-size:cover;
      background-position:center;
      mix-blend-mode:normal;
      opacity:.34;
      filter:saturate(1.02) contrast(1.02);
    }

    .header-top{
      position:relative;
      z-index:1;
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      gap:16px;
      align-items:end;
      padding:20px 0 12px;
    }

    .brand{
      min-width:0;
      display:flex;
      align-items:flex-start;
      gap:14px;
    }

    .badge{
      width:56px;
      height:56px;
      border-radius:18px;
      display:flex;
      align-items:center;
      justify-content:center;
      flex:0 0 auto;
      font-family:Manrope,Inter,sans-serif;
      font-size:35px;
      font-weight:900;
      color:#ffffff;
      background:
        radial-gradient(circle at 28% 20%, rgba(255,255,255,0.26), transparent 28%),
        linear-gradient(135deg, var(--green), var(--gold2));
      border:2px solid rgba(255,255,255,0.42);
      backdrop-filter:blur(8px);
      box-shadow:0 18px 34px rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.30);
      letter-spacing:.04em;
    }

    .brand-block{ min-width:0; }

    .site-name{
      margin:0;
      font-family:Manrope,Inter,sans-serif;
      font-size:clamp(34px,4.8vw,66px);
      line-height:.96;
      letter-spacing:-0.05em;
      font-weight:800;
      color:#ffffff;
      word-break:break-word;
      text-shadow:0 3px 12px rgba(0,0,0,0.55);
    }

    .site-tagline{
      margin-top:8px;
      color:rgba(255,255,255,0.94);
      font-size:15px;
      line-height:1.45;
      font-weight:700;
    }

    .clockbox{
      text-align:right;
      white-space:nowrap;
    }

    .clockbox .label{
      color:#dff7ee;
      font-size:11px;
      font-weight:900;
      letter-spacing:.18em;
      text-transform:uppercase;
    }

    .clockbox .value{
      margin-top:4px;
      color:#ffffff;
      font-size:14px;
      font-weight:800;
    }

    .nav{
      position:relative;
      z-index:1;
      display:flex;
      flex-wrap:wrap;
      gap:16px 24px;
      padding:0 0 14px;
    }

    .nav a{
      color:rgba(255,255,255,0.76);
      font-size:13px;
      font-weight:900;
      letter-spacing:.09em;
      text-transform:uppercase;
      padding-bottom:8px;
      border-bottom:3px solid transparent;
      transition:.18s ease;
    }

    .nav a.active{
      color:#ffffff;
      border-color:#ffffff;
    }

    .nav a:hover{
      color:#ffffff;
      border-color:rgba(255,255,255,0.58);
    }

    .cta-strip{
      background:linear-gradient(180deg, var(--green), var(--blue));
      border-top:1px solid rgba(255,255,255,0.20);
      border-bottom:1px solid rgba(255,255,255,0.20);
      box-shadow:0 10px 22px rgba(15,123,91,0.16);
    }

    .cta-row{
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      gap:14px;
      align-items:center;
      padding:10px 0;
    }

    .cta-copy{
      color:#ffffff;
      font-size:15px;
      font-weight:900;
      letter-spacing:.02em;
    }

    .cta-copy .sub{
      display:block;
      margin-top:2px;
      font-size:12px;
      font-weight:700;
      opacity:.88;
      letter-spacing:.08em;
      text-transform:uppercase;
    }

    .cta-btn{
      display:inline-flex;
      align-items:center;
      gap:10px;
      padding:11px 16px;
      border-radius:999px;
      background:#ffffff;
      color:var(--green2);
      font-size:12px;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      box-shadow:0 12px 20px rgba(0,0,0,0.12);
      white-space:nowrap;
      border:2px solid rgba(15,123,91,0.16);
    }

    .cta-btn .dot{
      width:9px;
      height:9px;
      border-radius:999px;
      background:var(--green);
      box-shadow:0 0 0 6px rgba(28,171,115,0.14);
    }

    .ticker-wrap{
      background:rgba(255,255,255,0.95);
      border-top:1px solid var(--line2);
      border-bottom:2px solid var(--line);
      box-shadow:0 8px 22px rgba(18,42,31,0.04);
    }

    .ticker-row{
      display:flex;
      align-items:center;
      gap:12px;
      padding:10px 0;
      overflow:hidden;
    }

    .ticker-label{
      flex:0 0 auto;
      display:inline-flex;
      align-items:center;
      gap:10px;
      padding:8px 14px;
      border-radius:999px;
      background:var(--gold-soft);
      border:2px solid rgba(152,114,35,0.16);
      color:var(--gold2);
      font-size:12px;
      font-weight:900;
      letter-spacing:.1em;
      text-transform:uppercase;
      white-space:nowrap;
      box-shadow:var(--shadow3);
    }

    .ticker-dot{
      width:8px;
      height:8px;
      border-radius:999px;
      background:var(--gold);
      box-shadow:0 0 0 5px rgba(216,174,83,0.12);
      flex:0 0 auto;
    }

    .ticker{
      overflow:hidden;
      width:100%;
      white-space:nowrap;
    }

    .ticker-track{
      display:inline-block;
      padding-left:100%;
      animation:tickerMove 118s linear infinite;
      will-change:transform;
    }

    .ticker-item{
      display:inline-flex;
      align-items:center;
      gap:10px;
      padding:0 18px;
      color:var(--ink);
      font-size:14px;
      opacity:.94;
    }

    .ticker-item .dot{
      width:6px;
      height:6px;
      border-radius:999px;
      background:var(--green2);
      flex:0 0 auto;
      box-shadow:0 0 0 4px rgba(15,123,91,0.08);
    }

    @keyframes tickerMove{
      0%{ transform:translateX(0); }
      100%{ transform:translateX(-100%); }
    }

    .page{
      position:relative;
      z-index:1;
      display:grid;
      grid-template-columns:minmax(0,1fr);
      gap:24px;
      padding:22px 0 32px;
    }

    @media (min-width:1180px){
      .page{
        grid-template-columns:minmax(0,1.86fr) 360px;
        align-items:start;
      }
    }

    .panel{
      position:relative;
      overflow:hidden;
      border-radius:var(--r-xl);
      background:var(--panel2);
      border:2px solid var(--line);
      box-shadow:var(--shadow1);
      backdrop-filter:blur(10px);
    }

    .panel::before{
      content:"";
      position:absolute;
      inset:0;
      border-radius:inherit;
      pointer-events:none;
      box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.52),
        inset 0 0 0 1px rgba(255,255,255,0.08);
    }

    .topline{
      position:absolute;
      left:0;
      right:0;
      top:0;
      height:5px;
      background:linear-gradient(90deg, var(--green), var(--gold), transparent 76%);
      pointer-events:none;
      opacity:.96;
    }

    .hero{
      padding:18px;
      background:
        linear-gradient(180deg, rgba(255,255,255,0.98), rgba(246,251,247,0.96)),
        radial-gradient(circle at 16% 12%, rgba(21,109,67,0.08), transparent 28%);
    }

    .hero-top{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      margin-bottom:12px;
      position:relative;
      z-index:1;
    }

    .eyebrow{
      display:inline-flex;
      align-items:center;
      gap:10px;
      padding:8px 13px;
      border-radius:999px;
      background:#ffffff;
      border:2px solid rgba(24,49,38,0.14);
      color:var(--blue3);
      font-size:12px;
      font-weight:900;
      letter-spacing:.1em;
      text-transform:uppercase;
      white-space:nowrap;
      box-shadow:var(--shadow3);
    }

    .eyebrow .dot{
      width:8px;
      height:8px;
      border-radius:999px;
      background:var(--green);
      box-shadow:0 0 0 5px rgba(28,171,115,0.10);
      flex:0 0 auto;
    }

    .hero-source{
      color:var(--green2);
      font-size:12px;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      text-align:right;
    }

    .hero-grid{
      display:grid;
      grid-template-columns:minmax(0,1fr);
      gap:16px;
      align-items:stretch;
      position:relative;
      z-index:1;
    }

    @media (min-width:960px){
      .hero-grid{
        grid-template-columns:minmax(0,1.12fr) 350px;
      }
    }

    .hero-copy{ min-width:0; }

    .hero-title{
      margin:0;
      font-family:Manrope,Inter,sans-serif;
      font-size:clamp(34px,4vw,60px);
      line-height:.98;
      letter-spacing:-0.05em;
      font-weight:800;
      color:var(--ink);
    }

    .hero-title a:hover{
      text-decoration:underline;
      text-underline-offset:5px;
      text-decoration-thickness:2px;
    }

    .hero-desc{
      margin-top:14px;
      color:var(--muted);
      font-size:17px;
      line-height:1.62;
      font-weight:600;
      max-width:94%;
    }

    .hero-pills{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:16px;
    }

    .pill{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:8px 12px;
      border-radius:999px;
      background:#ffffff;
      border:2px solid rgba(24,49,38,0.14);
      color:var(--muted);
      font-size:12px;
      font-weight:800;
      box-shadow:var(--shadow3);
      white-space:nowrap;
    }

    .pill .dot{
      width:8px;
      height:8px;
      border-radius:999px;
      background:var(--green);
      box-shadow:0 0 0 5px rgba(28,171,115,0.10);
    }

    .hero-media{
      min-height:330px;
      border-radius:22px;
      overflow:hidden;
      border:2px solid rgba(24,49,38,0.16);
      background:
        radial-gradient(circle at top left, rgba(28,171,115,0.10), transparent 28%),
        linear-gradient(135deg, #eef6f1, #ffffff);
      box-shadow:var(--shadow2);
      position:relative;
    }

    .hero-media::after{
      content:"";
      position:absolute;
      inset:0;
      pointer-events:none;
      background:linear-gradient(180deg, rgba(255,255,255,0.00), rgba(10,92,69,0.08));
    }

    .hero-media img{
      width:100%;
      height:100%;
      object-fit:cover;
    }

    .secondary{
      padding:16px;
      background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(246,251,247,0.94));
    }

    .secondary-grid{
      display:grid;
      grid-template-columns:136px minmax(0,1fr);
      gap:14px;
      align-items:start;
      position:relative;
      z-index:1;
    }

    .secondary-thumb{
      height:92px;
      border-radius:16px;
      overflow:hidden;
      border:2px solid rgba(24,49,38,0.14);
      background:linear-gradient(135deg,#eef6f1,#ffffff);
      box-shadow:var(--shadow3);
    }

    .secondary-thumb img{
      width:100%;
      height:100%;
      object-fit:cover;
    }

    .meta-row{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      margin-bottom:8px;
      color:var(--muted2);
      font-size:11px;
      font-weight:900;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    .meta-left{
      display:inline-flex;
      align-items:center;
      gap:8px;
      min-width:0;
    }

    .meta-left .dot{
      width:7px;
      height:7px;
      border-radius:999px;
      background:var(--green2);
      box-shadow:0 0 0 4px rgba(15,123,91,0.08);
      flex:0 0 auto;
    }

    .secondary-title{
      margin:0;
      font-family:Manrope,Inter,sans-serif;
      font-size:24px;
      line-height:1.18;
      font-weight:800;
      letter-spacing:-0.03em;
      color:var(--ink);
    }

    .secondary-title a:hover{ text-decoration:underline; }

    .secondary-desc{
      margin-top:9px;
      color:var(--muted);
      font-size:15px;
      line-height:1.56;
      font-weight:600;
    }

    .offers{
      display:grid;
      grid-template-columns:1fr;
      gap:14px;
      margin-top:16px;
    }

    @media (min-width:780px){
      .offers{
        grid-template-columns:repeat(3, minmax(0,1fr));
      }
    }

    .offer-card{
      position:relative;
      overflow:hidden;
      border-radius:22px;
      background:#ffffff;
      border:2px solid rgba(24,49,38,0.14);
      box-shadow:var(--shadow2);
      padding:14px;
    }

    .offer-ribbon{
      position:absolute;
      right:12px;
      top:12px;
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:7px 10px;
      border-radius:999px;
      background:var(--green-soft);
      color:var(--green2);
      font-size:11px;
      font-weight:900;
      letter-spacing:.1em;
      text-transform:uppercase;
      border:2px solid rgba(28,171,115,0.14);
    }

    .offer-title{
      margin:0;
      font-family:Manrope,Inter,sans-serif;
      font-size:22px;
      line-height:1.14;
      font-weight:800;
      letter-spacing:-0.03em;
      color:var(--ink);
      max-width:80%;
    }

    .offer-copy{
      margin-top:10px;
      color:var(--muted);
      font-size:14px;
      line-height:1.58;
      font-weight:600;
    }

    .offer-points{
      margin:14px 0 0;
      padding-left:18px;
      color:var(--ink2);
      font-size:14px;
      line-height:1.56;
      font-weight:700;
    }

    .offer-points li{ margin-bottom:6px; }

    .offer-btn{
      display:inline-flex;
      align-items:center;
      gap:10px;
      margin-top:14px;
      padding:10px 14px;
      border-radius:999px;
      background:linear-gradient(135deg, var(--green), var(--blue2));
      color:#ffffff;
      font-size:12px;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      box-shadow:0 12px 22px rgba(15,123,91,0.14);
      border:2px solid rgba(15,123,91,0.18);
    }

    .offer-btn .dot{
      width:8px;
      height:8px;
      border-radius:999px;
      background:#ffffff;
      box-shadow:0 0 0 5px rgba(255,255,255,0.12);
    }

    .ad-728-wrap{
      display:flex;
      justify-content:center;
      width:100%;
      margin:6px 0 4px;
    }

    .ad-728{
      width:100%;
      max-width:728px;
      height:90px;
      overflow:hidden;
      border-radius:16px;
      border:2px solid rgba(24,49,38,0.14);
      background:#ffffff;
      box-shadow:var(--shadow2);
    }

    .ad-728 a,
    .ad-728 img{
      display:block;
      width:100%;
      height:100%;
    }

    .ad-728 img{ object-fit:cover; }

    .section-head{
      display:flex;
      align-items:end;
      justify-content:space-between;
      gap:14px;
      margin-top:2px;
    }

    .section-head h2{
      margin:0;
      font-family:Manrope,Inter,sans-serif;
      font-size:24px;
      line-height:1.1;
      font-weight:800;
      letter-spacing:-0.03em;
      color:var(--ink);
    }

    .section-head .right{
      color:var(--blue3);
      font-size:12px;
      font-weight:900;
      letter-spacing:.12em;
      text-transform:uppercase;
      text-align:right;
      white-space:nowrap;
    }

    .section-rule{
      height:5px;
      margin-top:10px;
      border-radius:999px;
      background:linear-gradient(90deg, var(--green), var(--gold), transparent 76%);
    }

    .cards{
      display:grid;
      grid-template-columns:1fr;
      gap:16px;
      margin-top:16px;
    }

    @media (min-width:860px){
      .cards{
        grid-template-columns:repeat(3, minmax(0,1fr));
      }
    }

    .card{
      overflow:hidden;
      border-radius:var(--r-xl);
      background:#ffffff;
      border:2px solid rgba(24,49,38,0.14);
      box-shadow:var(--shadow2);
      position:relative;
    }

    .card::before{
      content:"";
      position:absolute;
      inset:0;
      border-radius:inherit;
      pointer-events:none;
      box-shadow:inset 0 1px 0 rgba(255,255,255,0.52);
    }

    .card-media{
      height:184px;
      background:linear-gradient(135deg,#eef6f1,#ffffff);
      border-bottom:2px solid rgba(24,49,38,0.12);
      overflow:hidden;
    }

    .card-media img{
      width:100%;
      height:100%;
      object-fit:cover;
    }

    .card-body{ padding:14px; }

    .card-source{
      color:var(--green2);
      font-size:11px;
      font-weight:900;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    .card-title{
      margin:9px 0 0;
      font-family:Manrope,Inter,sans-serif;
      font-size:21px;
      line-height:1.18;
      font-weight:800;
      letter-spacing:-0.03em;
      color:var(--ink);
    }

    .card-title a:hover{ text-decoration:underline; }

    .card-desc{
      margin-top:10px;
      color:var(--muted);
      font-size:14px;
      line-height:1.58;
      font-weight:600;
    }

    .stream{
      display:grid;
      grid-template-columns:1fr;
      gap:14px;
      margin-top:16px;
    }

    .stream-item{
      padding:14px;
      background:#ffffff;
    }

    .stream-grid{
      display:grid;
      grid-template-columns:124px minmax(0,1fr);
      gap:14px;
      align-items:start;
    }

    .stream-thumb{
      height:84px;
      border-radius:14px;
      overflow:hidden;
      border:2px solid rgba(24,49,38,0.14);
      background:linear-gradient(135deg,#eef6f1,#ffffff);
    }

    .stream-thumb img{
      width:100%;
      height:100%;
      object-fit:cover;
    }

    .stream-title{
      margin:0;
      font-family:Manrope,Inter,sans-serif;
      font-size:20px;
      line-height:1.18;
      font-weight:800;
      letter-spacing:-0.03em;
      color:var(--ink);
    }

    .stream-title a:hover{ text-decoration:underline; }

    .stream-desc{
      margin-top:8px;
      color:var(--muted);
      font-size:14px;
      line-height:1.58;
      font-weight:600;
    }

    .side{
      display:flex;
      flex-direction:column;
      gap:16px;
    }

    .brief{
      padding:18px;
      background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(247,252,248,0.94));
    }

    .brief-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      padding-bottom:12px;
      border-bottom:2px solid rgba(24,49,38,0.10);
    }

    .brief-head h3{
      margin:0;
      font-family:Manrope,Inter,sans-serif;
      font-size:21px;
      line-height:1.1;
      font-weight:800;
      color:var(--ink);
    }

    .brief-date{
      color:var(--muted2);
      font-size:12px;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      text-align:right;
    }

    .brief-image{
      margin-top:12px;
      height:108px;
      border-radius:16px;
      overflow:hidden;
      border:2px solid rgba(24,49,38,0.14);
      background:linear-gradient(135deg,#eef6f1,#ffffff);
      box-shadow:var(--shadow3);
    }

    .brief-image img{
      width:100%;
      height:100%;
      object-fit:cover;
    }

    .brief-title{
      margin:12px 0 0;
      font-family:Manrope,Inter,sans-serif;
      font-size:18px;
      line-height:1.24;
      font-weight:800;
      color:var(--ink);
    }

    .brief-title a:hover{ text-decoration:underline; }

    .brief-desc{
      margin-top:9px;
      color:var(--muted);
      font-size:15px;
      line-height:1.56;
      font-weight:600;
    }

    .brief-list{
      margin:14px 0 0;
      padding-left:18px;
      color:var(--ink);
      font-size:15px;
      line-height:1.56;
      font-weight:700;
    }

    .brief-list li{ margin-bottom:6px; }
    .brief-list .mono{ color:var(--green2); font-weight:900; }

    .rate-box{
      padding:16px;
      background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(247,252,248,0.94));
    }

    .rate-box h4{
      margin:0;
      color:var(--ink);
      font-size:13px;
      font-weight:900;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    .rate-grid{
      margin-top:12px;
      display:grid;
      gap:8px;
    }

    .rate-row{
      display:grid;
      grid-template-columns:1fr auto auto;
      gap:10px;
      align-items:center;
      padding:11px 12px;
      border-radius:12px;
      background:#ffffff;
      border:2px solid rgba(24,49,38,0.12);
    }

    .rate-row .name{
      color:var(--ink2);
      font-size:14px;
      font-weight:800;
    }

    .rate-row .value{
      color:var(--blue3);
      font-size:13px;
      font-weight:900;
    }

    .rate-row .trend.up{
      color:var(--green2);
      font-size:12px;
      font-weight:900;
    }

    .rate-row .trend.down{
      color:var(--red);
      font-size:12px;
      font-weight:900;
    }

    .ad-300{
      width:300px;
      height:300px;
      margin:0 auto;
      overflow:hidden;
      border-radius:18px;
      border:2px solid rgba(24,49,38,0.14);
      background:#ffffff;
      box-shadow:var(--shadow2);
    }

    .ad-300 a,
    .ad-300 img{
      display:block;
      width:100%;
      height:100%;
    }

    .ad-300 img{ object-fit:cover; }

    .about{
      padding:16px;
      background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(247,252,248,0.94));
    }

    .about h4{
      margin:0;
      color:var(--ink);
      font-size:13px;
      font-weight:900;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    .about p{
      margin:10px 0 0;
      color:var(--muted);
      font-size:14px;
      line-height:1.62;
      font-weight:600;
    }

    .about a{
      display:inline-block;
      margin-top:10px;
      color:var(--blue3);
      font-size:12px;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
    }

    .about a:hover{ text-decoration:underline; }

    .footer{
      margin-top:8px;
      border-top:2px solid rgba(24,49,38,0.14);
      background:var(--blue3);
      backdrop-filter:blur(12px);
      box-shadow:0 -10px 30px rgba(18,42,31,0.10);
    }

    .footer-row{
      display:flex;
      flex-direction:column;
      gap:14px;
      align-items:flex-start;
      justify-content:space-between;
      padding:16px 0;
      color:rgba(255,255,255,0.90);
      font-size:14px;
    }

    @media (min-width:900px){
      .footer-row{
        flex-direction:row;
        align-items:center;
      }
    }

    .footer-left{
      display:flex;
      align-items:center;
      gap:10px;
      min-width:0;
    }

    .footer-mini{
      width:30px;
      height:30px;
      border-radius:10px;
      display:flex;
      align-items:center;
      justify-content:center;
      background:linear-gradient(135deg, var(--green), var(--gold));
      color:#ffffff;
      font-size:12px;
      font-weight:900;
      border:2px solid rgba(255,255,255,0.18);
      box-shadow:var(--shadow3);
      flex:0 0 auto;
    }

    .footer-copy{
      font-weight:700;
      color:rgba(255,255,255,0.84);
      word-break:break-word;
    }

    .footer-links{
      display:flex;
      flex-wrap:wrap;
      gap:16px;
      align-items:center;
      font-weight:700;
    }

    .footer-links a{
      color:rgba(255,255,255,0.84);
    }

    .footer-links a:hover{
      color:#ffffff;
      text-decoration:underline;
    }

    .gb-btn{
      display:inline-flex;
      align-items:center;
      gap:10px;
      border-radius:999px;
      padding:10px 14px;
      background:rgba(255,255,255,0.12);
      border:2px solid rgba(255,255,255,0.18);
      box-shadow:var(--shadow3);
      color:#ffffff;
      font-size:12px;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      white-space:nowrap;
    }

    .gb-btn .dot{
      width:9px;
      height:9px;
      border-radius:999px;
      background:#ffffff;
      box-shadow:0 0 0 6px rgba(255,255,255,0.10);
    }

    .lift{
      transition:transform .18s ease, box-shadow .18s ease;
    }

    .lift:hover{
      transform:translateY(-2px);
      box-shadow:0 22px 64px rgba(18,42,31,0.14);
    }

    @media (max-width:760px){
      .header-top,
      .cta-row{
        grid-template-columns:1fr;
        align-items:start;
      }
      .clockbox{
        text-align:left;
        white-space:normal;
      }
      .secondary-grid,
      .stream-grid{
        grid-template-columns:1fr;
      }
      .hero-desc{
        max-width:100%;
        font-size:16px;
      }
    }
/* === PREMIUM DEPTH + BORDER LAYER — LOCKED === */

.header{
  background:
    linear-gradient(180deg, rgba(0,0,0,0.58), rgba(0,0,0,0.26)),
    linear-gradient(135deg, var(--blue), var(--blue2)),
    url('https://images.unsplash.com/photo-1517649763962-0c623066013b?auto=format&fit=crop&w=1200&q=85') center/cover no-repeat !important;
  border-bottom:4px solid var(--cyan) !important;
  box-shadow:0 18px 45px rgba(0,0,0,0.18) !important;
}

.header::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,0.18), transparent 28%),
    linear-gradient(90deg, rgba(255,255,255,0.08), transparent 52%);
  opacity:.55;
}

.brand-badge,
.logo-badge,
.badge{
  border:2px solid rgba(255,255,255,0.45) !important;
  box-shadow:
    0 10px 28px rgba(0,0,0,0.28),
    inset 0 1px 0 rgba(255,255,255,0.35) !important;
  backdrop-filter:blur(8px);
}

.site-title,
.brand-title,
.header h1{
  text-shadow:0 4px 16px rgba(0,0,0,0.62) !important;
}

.site-tagline,
.header .tagline{
  text-shadow:0 2px 10px rgba(0,0,0,0.50) !important;
}

.cta-strip,
.action-strip,
.market-strip{
  background:linear-gradient(90deg, var(--blue), var(--green), var(--cyan)) !important;
  border-top:2px solid rgba(255,255,255,0.18) !important;
  border-bottom:3px solid rgba(0,0,0,0.10) !important;
  box-shadow:0 10px 30px rgba(0,0,0,0.12) !important;
}

.hero-card,
.feature-card,
.main-card,
.lead-card,
.story-card:first-child{
  border:2px solid var(--line2) !important;
  border-left:7px solid var(--cyan) !important;
  box-shadow:0 24px 60px rgba(0,0,0,0.13) !important;
}

.side-card,
.sidebar-card,
.brief-card,
.snapshot-card,
.rail-card{
  border:2px solid var(--line2) !important;
  border-left:6px solid var(--cyan) !important;
  box-shadow:0 18px 42px rgba(0,0,0,0.10) !important;
}

.news-card,
.stream-card,
.mini-card,
.article-card,
.offer-card{
  border:1px solid var(--line2) !important;
  border-bottom:4px solid var(--cyan) !important;
  box-shadow:0 10px 26px rgba(0,0,0,0.075) !important;
  transition:transform .18s ease, box-shadow .18s ease !important;
}

.news-card:hover,
.stream-card:hover,
.mini-card:hover,
.article-card:hover,
.offer-card:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 42px rgba(0,0,0,0.12) !important;
}

.pill,
.ticker-label,
.focus-pill{
  border:2px solid rgba(0,0,0,0.08) !important;
  box-shadow:0 6px 16px rgba(0,0,0,0.08) !important;
}

.panel,
.card,
.content-panel{
  border-color:var(--line2) !important;
}
  </style>
  <meta name="theme-color" content="#166534" />
</head>

<body>

<header class="header">
  <div class="header-hero"></div>

  <div class="shell">
    <div class="header-top">
      <a href="/" class="brand">
        <div class="badge">AB</div>
        <div class="brand-block">
          <h1 class="site-name">Aerobic Bike</h1>
          <div class="site-tagline">Sports News, Trends & Market Intelligence</div>
        </div>
      </a>

      <div class="clockbox">
        <div class="label">Network Time</div>
        <div id="current-time" class="value">Loading…</div>
      </div>
    </div>

    <nav class="nav">
      
      <a href="#" class="active">Sports News</a>
      <a href="#">Market Watch</a>
      <a href="#">Product News</a>
      <a href="#">Industry Trends</a>
      <a href="#">Business Signals</a>
      <a href="#">Daily Updates</a>

    </nav>
  </div>
</header>

<div class="cta-strip">
  <div class="shell">
    <div class="cta-row">
      <div class="cta-copy">
        AerobicBike.com tracks sports news, market signals and industry movement.
      </div>

      <a href="#" class="cta-btn">
        <span class="dot"></span>
        Track Sports Trends
      </a>
    </div>
  </div>
</div>

<div class="ticker-wrap">
  <div class="shell">
    <div class="ticker-row">
      <div class="ticker-label"><span class="ticker-dot"></span> Aerobic Bike Wire</div>
      <div class="ticker">
        <div id="ticker-track" class="ticker-track"></div>
      </div>
    </div>
  </div>
</div>

<main class="shell">
  <div class="page">

    <section class="main">

      <article class="panel hero lift">
        <div class="topline"></div>

        <div class="hero-top">
          <div class="eyebrow"><span class="dot"></span> Sports Focus</div>
          <div id="hero-source" class="hero-source">Aerobic Bike DESK</div>
        </div>

        <div class="hero-grid">
          <div class="hero-copy">
            <h2 class="hero-title">
              <a id="featured-link" href="#" target="_blank" rel="noopener">
                <span id="featured-title">Loading top story…</span>
              </a>
            </h2>

            <p id="featured-desc" class="hero-desc">Pulling the latest sports news, market signals, product updates, industry trends and source intelligence…</p>

            <div class="hero-pills">
              
              <span class="pill"><span class="dot"></span>Sports Trends</span>
              <span class="pill"><span class="dot"></span>Market Watch</span>
              <span class="pill"><span class="dot"></span>Daily Signals</span>

            </div>
          </div>

          <div class="hero-media">
            <a id="featured-img-link" href="#" target="_blank" rel="noopener" class="block h-full">
              <img id="featured-image" src="" alt="Featured story image" style="display:none;">
            </a>
          </div>
        </div>
      </article>

      <article class="panel secondary lift">
        <div class="topline"></div>

        <div class="secondary-grid">
          <div class="secondary-thumb">
            <a id="secondary-img-link" href="#" target="_blank" rel="noopener" class="block h-full">
              <img id="secondary-image" src="" alt="Secondary story image" style="display:none;">
            </a>
          </div>

          <div>
            <div class="meta-row">
              <div class="meta-left"><span class="dot"></span><span>Sports Watch</span></div>
              <div>Sports Focus</div>
            </div>

            <h3 class="secondary-title">
              <a id="secondary-link" href="#" target="_blank" rel="noopener">Loading secondary story…</a>
            </h3>

            <p id="secondary-desc" class="secondary-desc">Loading summary…</p>
          </div>
        </div>
      </article>

      <section>
        <div class="section-head">
          <h2>Aerobic Bike News</h2>
          <div class="right">Sports Intelligence</div>
        </div>
        <div class="section-rule"></div>

        <div class="offers">
          <article class="offer-card lift">
            <div class="offer-ribbon"></div>
            <h3 class="offer-title">Sports Trends</h3>
            <p class="offer-copy">
              Follow the latest sports movement, market updates, product signals and daily industry direction.
            </p>
            <ul class="offer-points">
              
              <li>Sports trend coverage</li>
              <li>Market movement and buyer signals</li>
              <li>Daily industry intelligence</li>

            </ul>
            <a href="#" class="offer-btn"><span class="dot"></span>Track Sports Trends</a>
          </article>

          <article class="offer-card lift">
            <div class="offer-ribbon"></div>
            <h3 class="offer-title">Product News & Market Watch</h3>
            <p class="offer-copy">
              Monitor product activity, category movement, customer demand and business updates across the market.
            </p>
            <ul class="offer-points">
              
              <li>Product and market updates</li>
              <li>Company and category signals</li>
              <li>Useful business coverage</li>

            </ul>
            <a href="#" class="offer-btn"><span class="dot"></span>View Market Signals</a>
          </article>

          <article class="offer-card lift">
            <div class="offer-ribbon"></div>
            <h3 class="offer-title">Industry Intelligence</h3>
            <p class="offer-copy">
              Track companies, releases, market shifts, growth areas and broader industry coverage.
            </p>
            <ul class="offer-points">
              
              <li>Industry movement and reports</li>
              <li>Business signals and updates</li>
              <li>Daily source intelligence</li>

            </ul>
            <a href="#" class="offer-btn"><span class="dot"></span>Sports Reports</a>
          </article>
        </div>
      </section>

      <div class="ad-728-wrap">
        <div class="ad-728 lift">
          <a id="ad728-link" href="https://www.grandbrands.com/" target="_blank" rel="noopener">
            <img id="ad728-img" src="https://placehold.co/728x90?text=Advertisement" alt="728 ad" loading="lazy">
          </a>
        </div>
      </div>

      <section>
        <div class="section-head">
          <h2>Aerobic Bike Intelligence</h2>
          <div class="right">Top Stories</div>
        </div>
        <div class="section-rule"></div>

        <div id="cards-grid" class="cards"></div>
      </section>

      <section>
        <div class="section-head">
          <h2>Sports Stream</h2>
          <div class="right">Live Updates</div>
        </div>
        <div class="section-rule"></div>

        <div id="stream-list" class="stream"></div>
      </section>

    </section>

    <aside class="side">

      <section class="panel brief lift">
        <div class="topline"></div>

        <div class="brief-head">
          <h3>Aerobic Bike Brief</h3>
          <div id="brief-date" class="brief-date">Loading…</div>
        </div>

        <div class="brief-image">
          <img id="brief-image" src="" alt="Brief image" style="display:none;">
        </div>

        <h4 class="brief-title">
          <a id="brief-link" href="#" target="_blank" rel="noopener">Loading brief…</a>
        </h4>

        <p id="brief-desc" class="brief-desc">Loading summary…</p>

        <ul class="brief-list">
          
          <li><span class="mono">TRACK</span>: sports news + trends + products + markets</li>
          <li><span class="mono">FOLLOW</span>: industry movement + brands + signals</li>
          <li><span class="mono">WATCH</span>: market shifts + daily updates</li>

        </ul>
      </section>

      <section class="panel rate-box lift">
        <div class="topline"></div>

        <h4>Sports Snapshot</h4>
        <div class="rate-grid">
          
          <div class="rate-row"><div class="name">Sports Trends</div><div class="value">Active</div><div class="trend up">+Watch</div></div>
          <div class="rate-row"><div class="name">Market Signals</div><div class="value">Strong</div><div class="trend up">+Track</div></div>
          <div class="rate-row"><div class="name">Product News</div><div class="value">Firm</div><div class="trend up">+Build</div></div>
          <div class="rate-row"><div class="name">Industry Moves</div><div class="value">Mixed</div><div class="trend down">+Monitor</div></div>

        </div>
      </section>

      <div class="ad-300 lift">
        <a id="sb1-link" href="https://www.grandbrands.com/" target="_blank" rel="noopener">
          <img id="sb1-img" src="https://placehold.co/300x300?text=Ad" alt="Sidebar ad 1" loading="lazy">
        </a>
      </div>

      <div class="ad-300 lift">
        <a id="sb2-link" href="https://www.grandbrands.com/" target="_blank" rel="noopener">
          <img id="sb2-img" src="https://placehold.co/300x300?text=Ad" alt="Sidebar ad 2" loading="lazy">
        </a>
      </div>

      <div class="ad-300 lift">
        <a id="sb3-link" href="https://www.grandbrands.com/" target="_blank" rel="noopener">
          <img id="sb3-img" src="https://placehold.co/300x300?text=Ad" alt="Sidebar ad 3" loading="lazy">
        </a>
      </div>

      <div class="ad-300 lift">
        <a id="sb4-link" href="https://www.grandbrands.com/" target="_blank" rel="noopener">
          <img id="sb4-img" src="https://placehold.co/300x300?text=Ad" alt="Sidebar ad 4" loading="lazy">
        </a>
      </div>

      <section class="panel about lift">
        <div class="topline"></div>

        <h4>About Aerobic Bike</h4>
        <p>
          AerobicBike.com reports on sports news, trends, products and industry insights.
        </p>
        <a href="https://www.grandbrands.com" target="_blank" rel="noopener">Grand Brands Network</a>
      </section>

    </aside>
  </div>
</main>

<footer class="footer">
  <div class="shell">
    <div class="footer-row">
      <div class="footer-left">
        <div class="footer-mini">AB</div>
        <div class="footer-copy">AerobicBike.com • GrandBrands Network</div>
      </div>

      <div class="footer-links">
        <a href="https://www.grandbrands.com" target="_blank" rel="noopener">About</a>
        <a href="https://www.grandbrands.com" target="_blank" rel="noopener">Contact</a>
        <a href="https://www.grandbrands.com" target="_blank" rel="noopener">Sports</a>
        <a class="gb-btn" href="https://www.grandbrands.com" target="_blank" rel="noopener"><span class="dot"></span> GrandBrands.com</a>
      </div>
    </div>
  </div>
</footer>

<script>
const FEED_KEY = "SPORTS.json";
const CATEGORY = "SPORTS";
const CATEGORY_LABEL = "Sports";
const SITE_NAME = "Aerobic Bike";
const SITE_DOMAIN = "AerobicBike.com";
const NEWS_URL = `https://feedbunk.com/vault/news/${FEED_KEY}`;
const ADS_URL  = `https://feedbunk.com/vault/ads/ads.json`;
const FALLBACK_SOURCE = "Aerobic Bike DESK";

const MAX_ITEMS = 48;
const CARD_COUNT = 18;
const STREAM_COUNT = 18;

function updateClock(){
  const now = new Date();
  const dateString = now.toLocaleDateString('en-US', { weekday:'short', month:'short', day:'numeric', year:'numeric' });
  const timeString = now.toLocaleTimeString('en-US', { hour:'numeric', minute:'2-digit', hour12:true });

  const clock = document.getElementById('current-time');
  const briefDate = document.getElementById('brief-date');

  if (clock) clock.textContent = `${dateString}, ${timeString}`;
  if (briefDate) briefDate.textContent = dateString;
}

function cacheBust(url){
  const u = new URL(url, window.location.href);
  u.searchParams.set('v', Date.now().toString());
  return u.toString();
}

function pick(obj, keys){
  for (const k of keys){
    if (obj && obj[k] != null) return obj[k];
  }
  return null;
}

function stripHtml(html){
  const div = document.createElement('div');
  div.innerHTML = html || '';
  return (div.textContent || div.innerText || '').replace(/\s+/g, ' ').trim();
}

function normalizeHref(h){
  if(!h) return '#';
  if(typeof h === 'string') return h;
  return pick(h, ['url','href','link']) || '#';
}

function normalizeImage(raw){
  if (!raw) return '';
  if (typeof raw === 'string') return raw;
  return (
    pick(raw, ['url','src','image','img','thumbnail','thumb','large','medium']) ||
    pick(raw?.thumbnail, ['url','src']) ||
    pick(raw?.image, ['url','src']) ||
    pick(raw?.media, ['url','src']) ||
    pick(raw?.enclosure, ['url']) ||
    ''
  );
}

function normalizeItem(item){
  if (!item || typeof item !== 'object') return null;

  const title = (pick(item, ['title','headline','name']) || '').toString().trim();
  const link  = normalizeHref(pick(item, ['link','url','href','permalink']));
  const desc  = stripHtml((pick(item, ['description','summary','content','excerpt','text']) || '').toString());
  const source = (pick(item, ['source','publisher','feed','origin']) || FALLBACK_SOURCE).toString().trim();
  const image = normalizeImage(pick(item, ['image','img','thumbnail','media','enclosure','picture','photo']));

  if (!title || !link) return null;

  return {
    title,
    link,
    description: desc,
    source,
    image
  };
}

function extractList(payload){
  if (Array.isArray(payload)) return payload;
  if (Array.isArray(payload?.items)) return payload.items;
  if (Array.isArray(payload?.articles)) return payload.articles;
  if (Array.isArray(payload?.news)) return payload.news;
  if (Array.isArray(payload?.entries)) return payload.entries;
  if (Array.isArray(payload?.data)) return payload.data;
  if (Array.isArray(payload?.feed?.items)) return payload.feed.items;
  if (Array.isArray(payload?.channel?.items)) return payload.channel.items;
  return [];
}

function dedupeByTitle(items){
  const seen = new Set();
  return items.filter(item => {
    const key = (item.title || '').trim().toLowerCase();
    if (!key || seen.has(key)) return false;
    seen.add(key);
    return true;
  });
}

function shuffle(arr){
  return arr.map(v => [Math.random(), v]).sort((a,b) => a[0]-b[0]).map(x => x[1]);
}

async function fetchJson(url){
  const res = await fetch(url, { cache:'no-store' });
  if (!res.ok) throw new Error(`HTTP ${res.status} for ${url}`);
  return await res.json();
}

function safeImg(el, src, fallbackText){
  if (!el) return;
  if (!src){
    el.style.display = 'none';
    return;
  }
  el.onerror = function(){
    this.onerror = null;
    this.src = `https://placehold.co/1200x700/e7f3ec/0f7b5b?text=${encodeURIComponent(fallbackText || CATEGORY_LABEL)}`;
    this.style.display = 'block';
  };
  el.src = src;
  el.style.display = 'block';
}

function renderFeatured(item){
  if (!item) return;
  const title = document.getElementById('featured-title');
  const link = document.getElementById('featured-link');
  const desc = document.getElementById('featured-desc');
  const source = document.getElementById('hero-source');
  const imgLink = document.getElementById('featured-img-link');
  const img = document.getElementById('featured-image');

  if (link) link.href = item.link || '#';
  if (title) title.textContent = item.title || 'Top story unavailable';
  if (desc) desc.textContent = item.description || 'No summary available.';
  if (source) source.textContent = item.source || FALLBACK_SOURCE;
  if (imgLink) imgLink.href = item.link || '#';
  safeImg(img, item.image, CATEGORY_LABEL);
}

function renderSecondary(item){
  if (!item) return;
  const link = document.getElementById('secondary-link');
  const desc = document.getElementById('secondary-desc');
  const imgLink = document.getElementById('secondary-img-link');
  const img = document.getElementById('secondary-image');

  if (link){
    link.href = item.link || '#';
    link.textContent = item.title || 'Secondary story unavailable';
  }
  if (desc) desc.textContent = item.description || 'No summary available.';
  if (imgLink) imgLink.href = item.link || '#';
  safeImg(img, item.image, CATEGORY_LABEL);
}

function renderBrief(item){
  if (!item) return;
  const link = document.getElementById('brief-link');
  const desc = document.getElementById('brief-desc');
  const img = document.getElementById('brief-image');

  if (link){
    link.href = item.link || '#';
    link.textContent = item.title || 'Brief unavailable';
  }
  if (desc) desc.textContent = item.description || 'No summary available.';
  safeImg(img, item.image, CATEGORY_LABEL);
}

function cardMarkup(item){
  const img = item.image || `https://placehold.co/900x600/e7f3ec/0f7b5b?text=${encodeURIComponent((item.source || FALLBACK_SOURCE).slice(0,12))}`;
  return `
    <article class="card lift">
      <div class="card-media">
        <img src="${img}" alt="${(item.title || '').replace(/"/g,'&quot;')}" loading="lazy">
      </div>
      <div class="card-body">
        <div class="card-source">${item.source || FALLBACK_SOURCE}</div>
        <h3 class="card-title">
          <a href="${item.link || '#'}" target="_blank" rel="noopener">${item.title || 'Story unavailable'}</a>
        </h3>
        <p class="card-desc">
          ${(item.description || '').slice(0, 150)}${(item.description || '').length > 150 ? '…' : ''}
        </p>
      </div>
    </article>
  `;
}

function streamMarkup(item){
  const img = item.image || `https://placehold.co/400x260/e7f3ec/1cab73?text=${encodeURIComponent((item.source || FALLBACK_SOURCE).slice(0,12))}`;
  return `
    <article class="panel stream-item lift">
      <div class="topline"></div>
      <div class="stream-grid">
        <div class="stream-thumb">
          <img src="${img}" alt="${(item.title || '').replace(/"/g,'&quot;')}" loading="lazy">
        </div>
        <div>
          <div class="meta-row">
            <div class="meta-left"><span class="dot"></span><span>${item.source || FALLBACK_SOURCE}</span></div>
            <div>Live</div>
          </div>
          <h3 class="stream-title">
            <a href="${item.link || '#'}" target="_blank" rel="noopener">${item.title || 'Story unavailable'}</a>
          </h3>
          <p class="stream-desc">
            ${(item.description || '').slice(0, 180)}${(item.description || '').length > 180 ? '…' : ''}
          </p>
        </div>
      </div>
    </article>
  `;
}

function renderCards(items){
  const grid = document.getElementById('cards-grid');
  if (!grid) return;
  grid.innerHTML = items.map(cardMarkup).join('');
}

function renderStream(items){
  const list = document.getElementById('stream-list');
  if (!list) return;
  list.innerHTML = items.map(streamMarkup).join('');
}

function renderTicker(items){
  const track = document.getElementById('ticker-track');
  if (!track) return;
  const html = items.map(item => `
    <a class="ticker-item" href="${item.link || '#'}" target="_blank" rel="noopener">
      <span class="dot"></span>
      <span>${item.title || 'Update'}</span>
    </a>
  `).join('');
  track.innerHTML = html + html;
}

function firstSlot(x){
  return Array.isArray(x) ? (x[0] || null) : (x || null);
}

function normalizeAdHref(h){
  if(!h) return 'https://www.grandbrands.com/';
  if(h.startsWith('//')) return 'https:' + h;
  if(!/^https?:\/\//i.test(h)) return 'https://' + h.replace(/^\/+/, '');
  return h;
}

function resolveAd(data, key){
  const A = data?.ads || data || {};
  const B = data?.slots || {};
  const mapB = {
    leaderboard:'leaderboard',
    sidebar1:'sidebar_1',
    sidebar2:'sidebar_2',
    sidebar3:'sidebar_3',
    sidebar4:'sidebar_4'
  };
  if (A && A[key]) return A[key];
  const bKey = mapB[key];
  if (B && bKey && B[bKey]) return firstSlot(B[bKey]);
  return null;
}

function setAd(ad, linkId, imgId){
  const a = document.getElementById(linkId);
  const i = document.getElementById(imgId);
  if (!a || !i) return;

  const href = normalizeAdHref(ad?.href || ad?.link);
  const src  = ad?.img || ad?.image || '';

  a.href = href;
  a.target = "_blank";
  a.rel = "noopener";

  if (src){
    i.src = src + (src.includes('?') ? '&' : '?') + 'v=' + Date.now();
  }
}

async function loadAds(){
  const json = await fetchJson(cacheBust(ADS_URL));
  setAd(resolveAd(json,'leaderboard'), 'ad728-link', 'ad728-img');
  setAd(resolveAd(json,'sidebar1'), 'sb1-link', 'sb1-img');
  setAd(resolveAd(json,'sidebar2'), 'sb2-link', 'sb2-img');
  setAd(resolveAd(json,'sidebar3'), 'sb3-link', 'sb3-img');
  setAd(resolveAd(json,'sidebar4'), 'sb4-link', 'sb4-img');
}

function fallbackItems(){
  return [
    {
      title:`${SITE_NAME} tracks ${CATEGORY_LABEL} news and industry movement.`,
      link:'#',
      description:`${SITE_DOMAIN} follows ${CATEGORY_LABEL} trends, products, updates, market movement and industry signals.`,
      source:FALLBACK_SOURCE,
      image:`https://placehold.co/1200x700/f7f2ea/6b4e2e?text=${encodeURIComponent(SITE_NAME)}`
    },
    {
      title:`${CATEGORY_LABEL} trends continue shaping buyer interest and industry demand.`,
      link:'#',
      description:`${SITE_NAME} monitors ${CATEGORY_LABEL} operators, products, services, headlines and category-wide market activity.`,
      source:CATEGORY_LABEL,
      image:`https://placehold.co/1200x700/f6efe5/8a641d?text=${encodeURIComponent(CATEGORY_LABEL)}`
    },
    {
      title:`${SITE_NAME} keeps the focus on useful ${CATEGORY_LABEL} intelligence.`,
      link:'#',
      description:`Coverage includes news, guides, source signals, industry updates and practical market notes for ${CATEGORY_LABEL}.`,
      source:'MARKET WATCH',
      image:`https://placehold.co/1200x700/efe7dc/5b3a1f?text=${encodeURIComponent(SITE_NAME + ' News')}`
    }
  ];
}

async function boot(){
  updateClock();
  setInterval(updateClock, 60000);

  try{
    await loadAds();
  }catch(e){
    console.warn('Ad load failed', e);
  }

  try{
    const payload = await fetchJson(cacheBust(NEWS_URL));
    let items = extractList(payload).map(normalizeItem).filter(Boolean);
    items = dedupeByTitle(items);

    if (!items.length) throw new Error('No feed items');

    const mixed = shuffle(items).slice(0, MAX_ITEMS);

    const featured = mixed[0] || fallbackItems()[0];
    const secondary = mixed[1] || fallbackItems()[1];
    const brief = mixed[2] || fallbackItems()[2];
    const cards = mixed.slice(3, 3 + CARD_COUNT);
    const stream = mixed.slice(3 + CARD_COUNT, 3 + CARD_COUNT + STREAM_COUNT);

    renderFeatured(featured);
    renderSecondary(secondary);
    renderBrief(brief);
    renderCards(cards.length ? cards : fallbackItems());
    renderStream(stream.length ? stream : fallbackItems());
    renderTicker(mixed.slice(0, 10).length ? mixed.slice(0, 10) : fallbackItems());
  }catch(err){
    console.error('Feed failed, using fallback', err);
    const f = fallbackItems();
    renderFeatured(f[0]);
    renderSecondary(f[1]);
    renderBrief(f[2]);
    renderCards(f);
    renderStream(f);
    renderTicker(f);
  }
}

window.addEventListener('load', boot);
</script>

</body>
</html>
