@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--ink:#102b57;--muted:#4c6485;--line:#d5e2f5;--lime:#80c9ff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:#f4f8ff;color:var(--ink);font:16px 'DM Sans',sans-serif}header{background:var(--ink);color:white;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px 5vw}.brand{display:flex;align-items:center;gap:10px;color:white;text-decoration:none;font-size:14px;letter-spacing:.06em;font-weight:700}.brand b{font-size:32px;color:var(--lime);line-height:1}.brand span{color:var(--lime)}nav{display:flex;gap:28px}nav a{color:white;font-size:14px;text-decoration:none}nav a:hover{color:var(--lime)}a:focus-visible,[tabindex]:focus-visible{outline:3px solid #2463dc;outline-offset:4px}main{max-width:1320px;margin:auto;padding:0 5vw}.intro{display:flex;justify-content:space-between;gap:30px;align-items:center;padding:45px 0;border-bottom:1px solid var(--line)}.eyebrow{font-size:12px;letter-spacing:.11em;font-weight:700;color:var(--muted);margin:0 0 12px}h1,h2,h3{font-family:'Space Grotesk',sans-serif}h1{font-size:clamp(38px,4.8vw,64px);letter-spacing:-.055em;line-height:1.04;margin:0}.intro p:not(.eyebrow){color:var(--muted);margin-bottom:0}.intro aside{min-width:230px;border-left:1px solid var(--line);padding-left:38px}.intro aside strong{display:flex;gap:16px;align-items:center;font-size:64px;font-family:'Space Grotesk',sans-serif;letter-spacing:-.06em}.intro small{font:500 14px/1.5 'DM Sans',sans-serif;letter-spacing:0}.intro aside p{font-size:14px;margin:0}section[id]{padding-top:36px}.heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}.heading .eyebrow{margin-bottom:8px}h2{font-size:30px;letter-spacing:-.035em;margin:0}.badge{padding:8px 12px;font-size:12px;font-weight:700;background:var(--lime);border-radius:5px;white-space:nowrap}.outline{background:none;border:1px solid #bdc8ce}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:10px}table{border-collapse:collapse;width:100%;text-align:right;white-space:nowrap}th,td{padding:14px 20px;border-bottom:1px solid #e8ecee;font-size:14px}thead th{font-size:12px;font-weight:500;color:var(--muted);background:#edf3fd}th:first-child,td:first-child{text-align:center;width:70px}th:nth-child(2){text-align:left}tbody tr:last-child>*{border-bottom:0}.team{font-size:15px;font-weight:600}.avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;margin-right:12px;border-radius:7px;background:#dfebfc;color:#225291;font-size:11px}.rank{font-family:'Space Grotesk',sans-serif;color:var(--muted)}.top-seed td:first-child{border-left:3px solid #2463dc}.top-seed .rank{font-weight:700;color:var(--ink)}tbody tr:first-child{background:#eaf2ff}tbody tr:first-child .avatar{background:var(--lime);color:var(--ink)}tbody tr:hover{background:#edf5ff}td{font-variant-numeric:tabular-nums}.wins,.pct{font-weight:600}.positive{color:#235ec0}.legend{display:flex;gap:24px;margin-top:15px;font-size:12px;color:var(--muted)}.legend i{display:inline-block;background:#2463dc;width:9px;height:9px;margin-right:6px}.fine{font-size:12px;color:var(--muted);line-height:1.6}.description{max-width:720px;color:var(--muted);line-height:1.6;margin:-6px 0 28px}.bracket{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;border:1px solid var(--line);border-radius:12px;background:#eaf1fc;padding:26px 22px}.round h3{font-size:16px;margin:0 0 6px;letter-spacing:-.02em}.round-note{font-size:12px;color:var(--muted);margin:0 0 20px}.matches{height:1120px;display:flex;flex-direction:column;justify-content:space-around;gap:16px}.match{position:relative;background:white;border:1px solid #cfd9df;border-radius:7px;box-shadow:0 3px 6px #102b5705}.match:after{content:'';position:absolute;top:50%;right:-29px;width:28px;border-top:1px solid #aebdc6}.round-3 .match:after{display:none}.match-label{font-size:12px;letter-spacing:.07em;color:var(--muted);font-weight:500;margin:0;padding:9px 10px 6px}.entrant{display:flex;align-items:center;gap:8px;padding:9px 10px;font-size:14px;min-height:38px}.entrant:last-child{border-top:1px solid #edf0f2}.seed{min-width:18px;text-align:center;font-size:12px;color:var(--muted)}.name{overflow-wrap:anywhere}.pending{color:var(--muted)}.round-3 .match{border-color:var(--ink)}.round-3 .match-label{background:var(--ink);color:var(--lime);border-radius:5px 5px 0 0;padding:12px}.note{border-bottom:1px solid var(--line);padding:20px 0 28px;font-size:14px;color:var(--muted);line-height:1.6}.note strong{color:var(--ink)}footer{max-width:1320px;margin:auto;padding:14px 5vw 36px;display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:12px}footer span:first-child{letter-spacing:.06em;font-weight:700}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:1000px){.bracket{gap:18px;padding:20px 14px}.match:after{right:-19px;width:18px}.entrant{padding:8px 6px;gap:3px}th,td{padding:14px}.intro aside{min-width:200px;padding-left:25px}}@media(max-width:760px){header{flex-wrap:wrap;gap:16px}.brand{font-size:12px}.brand span{display:none}nav{gap:20px}.intro{padding:32px 0}.intro aside{display:none}h1{font-size:42px}h2{font-size:26px}table{min-width:670px}.bracket{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 18px}.matches{height:auto;justify-content:flex-start}.match:after{display:none}.entrant{font-size:14px;padding:10px;gap:6px}.legend{flex-wrap:wrap;gap:8px 18px}.heading{align-items:flex-end}footer{flex-wrap:wrap}}@media(max-width:440px){.bracket{grid-template-columns:1fr;padding:20px}.round{border-bottom:1px solid #ced9df;padding-bottom:22px}.round:last-child{border:0;padding-bottom:0}.entrant{font-size:15px}.heading{flex-wrap:wrap;gap:12px}h1{font-size:38px}nav{width:100%;justify-content:flex-end}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* B.S.S.L. league identity */
header{background:#102b57;border-bottom:4px solid #2463dc}.brand{gap:18px}.brand .brand-initials{font-family:'Space Grotesk',sans-serif;font-size:28px;color:white;letter-spacing:-.04em}.brand .brand-detail{display:block;color:#afd9ff;font-size:11px;line-height:1.5;letter-spacing:.1em;border-left:1px solid #4a658c;padding-left:18px}.intro{padding:30px 0;gap:28px;border-bottom:0}.intro-copy{min-width:0}.intro h1{font-size:clamp(32px,3.5vw,48px);line-height:1.12;letter-spacing:-.045em}.intro h1 span{color:#2463dc}.intro .tagline{font-size:18px;color:#284f87;margin:12px 0}.tagline em{font-style:normal;font-weight:700}.intro .presented{font-size:14px;line-height:1.65;color:#4c6485;margin:12px 0 0}.intro .presented strong{display:inline;font:inherit;font-weight:700;letter-spacing:normal;white-space:normal;overflow-wrap:anywhere}.league-logo{width:230px;height:230px;object-fit:contain;flex-shrink:0}.season-strip{display:grid;grid-template-columns:1.05fr 1fr 1.15fr;gap:20px;padding:22px 24px;background:#e4efff;border:1px solid #c7daf7;border-radius:10px;border-top:3px solid #2463dc}.season-strip>div{display:flex;flex-direction:column;gap:7px}.season-strip .eyebrow{margin:0;color:#28558e;font-size:11px}.season-strip strong{font-size:14px;line-height:1.5}.season-strip span:not(.eyebrow){font-size:13px;line-height:1.5;color:#4c6485}.badge{background:#d7eaff;color:#174a99}.badge.outline{background:transparent;border-color:#91b3e2}.round-3 .match-label{background:#163d79}.table-wrap{box-shadow:0 4px 16px #16428205}footer{line-height:1.6}
@media(max-width:760px){.league-logo{width:160px;height:160px}.intro{gap:16px}.intro h1{font-size:34px}.season-strip{grid-template-columns:1fr;gap:17px}.season-strip>div+div{border-top:1px solid #c7daf7;padding-top:15px}.brand .brand-initials{font-size:25px}.brand .brand-detail{font-size:10px}}
@media(max-width:480px){.intro{flex-direction:column-reverse;align-items:flex-start;gap:16px}.league-logo{width:145px;height:145px;align-self:center}.intro h1{font-size:34px}.intro .eyebrow{font-size:11px}.brand{gap:12px}.brand .brand-detail{padding-left:12px}header nav{justify-content:flex-start}.season-strip{padding:18px}}

@media(min-width:761px){.match{flex-shrink:0}}

/* Keep the page narrow; only the tournament bracket scrolls on mobile. */
@media (max-width: 760px) {
  .intro-copy,
  .heading > div,
  .brand {
    min-width: 0;
    max-width: 100%;
  }

  .intro h1,
  .heading h2,
  .brand-detail {
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .intro h1 {
    font-size: clamp(1.875rem, 7vw, 2.125rem);
    line-height: 1.15;
  }

  .intro h1 span {
    display: block;
  }

  .bracket {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    grid-template-columns: repeat(4, 15rem);
    gap: 1.125rem;
    padding: 1.25rem 1rem;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    scroll-padding-inline: 1rem;
  }

  .bracket .round {
    min-width: 0;
    border-bottom: 0;
    padding-bottom: 0;
    scroll-snap-align: start;
  }

  .bracket .matches {
    height: 70rem;
    justify-content: space-around;
  }

  .bracket .match {
    flex-shrink: 0;
  }

  .bracket .match::after {
    display: block;
    right: -1.1875rem;
    width: 1.125rem;
  }

  .bracket .round:last-child .match::after {
    display: none;
  }
}
