.tournament-page { padding-block: 64px 80px; }
.tournament-heading { max-width: 760px; margin-bottom: 48px; }
.tournament-heading h1 { font-size: clamp(32px, 6vw, 60px); line-height: 1.15; overflow-wrap: anywhere; }
.confirmed-couples { list-style: none; padding: 0; display: grid; gap: 16px; }
.confirmed-couples li { padding: 22px; border: 1px solid #52636a; border-radius: 12px; font-size: 18px; }
.confirmed-couples li > span { display: block; margin-top: 6px; overflow-wrap: anywhere; }
.public-team-name, .champion-team { display: block; text-transform: uppercase; overflow-wrap: anywhere; }
.match-team .match-players { font-size: 15px; font-weight: 400; }
.tournament-live { display: grid; gap: 32px; margin-bottom: 48px; }
.tournament-live .bracket-match { margin-bottom: 16px; }
.tournament-champion { background: #233c34; border: 1px solid #cbb075; border-radius: 18px; padding: 28px; margin-bottom: 40px; }
.tournament-champion .champion-team { font-size: clamp(24px, 4vw, 36px); font-weight: 700; }
.bracket-guide { font-size: 16px; max-width: 65ch; }
.bracket-guide strong { display: block; }
.bracket-section { margin-top: 40px; min-width: 0; }
.bracket-section > h2 { font-size: clamp(26px, 4vw, 36px); }
.bracket-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; touch-action: pan-x pan-y; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; scrollbar-color: #92b8ac #17272e; scrollbar-width: auto; border: 1px solid #52636a; border-radius: 16px; background: #101f27; }
.bracket-scroll:focus-visible { outline: 3px solid #e6c18b; outline-offset: 4px; }
.bracket-canvas { position: relative; display: flex; gap: 64px; padding: 24px; width: max-content; min-width: 100%; isolation: isolate; }
.bracket-round { flex: 0 0 280px; width: 280px; display: flex; flex-direction: column; scroll-snap-align: start; scroll-margin-left: 24px; }
.bracket-round > h3 { margin: 0 0 24px; font-size: 20px; color: #e6c18b; }
.round-matches { display: flex; flex-direction: column; justify-content: space-around; gap: 32px; flex: 1; }
.bracket-match { position: relative; background: #1a2d36; border: 1px solid #647980; border-radius: 12px; overflow: hidden; color: #f1f4ed; }
.bracket-match header { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 14px; background: #ffffff08; }
.bracket-match h4 { margin: 0; font-size: 16px; font-weight: 700; }
.match-status { flex-shrink: 0; border: 1px solid #899da4; border-radius: 20px; font-size: 14px; line-height: 1.5; padding: 3px 9px; }
.match-team { display: flex; align-items: center; gap: 8px; min-height: 70px; padding: 14px; border-top: 1px solid #ffffff1c; font-size: 17px; line-height: 1.45; }
.match-team > span:first-child { flex: 1; overflow-wrap: anywhere; }
.match-team small { display: block; font-size: 13px; color: #bccbd0; margin-top: 4px; }
.match-score { font-size: 20px; }
.winner-mark { font-size: 11px; font-weight: 700; text-transform: uppercase; }
.match-team.winner { background: #315748; color: #f3ffe8; font-weight: 700; }
.match-team.loser { color: #b1bec3; background: #13232b; }
.bracket-match.complete { border-color: #81ae98; }
.bracket-match.inprogress { border: 2px solid #9ee8cb; box-shadow:0 0 20px #9ee8cb22; animation:live-breathe 3s ease-in-out infinite; }
.inprogress .match-status { color: #baf7dc; border-color: #9ee8cb; }
.ready .match-status { color: #d5f5e5; border-color: #82bfa5; }
.bracket-connectors { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; overflow: visible; }
.bracket-connectors path { fill: none; stroke: #90b2a8; stroke-width: 2; }
.bracket-connectors path.loser-path { stroke: #bba080; stroke-dasharray: 5 4; }
.bracket-finals .bracket-scroll { border-color: #d4b577; background: #27281f; }
.bracket-finals .bracket-match { border-color: #d4b577; }
@media (min-width: 760px) {
    .tournament-live { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .confirmed-couples { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bracket-round { flex-basis: 320px; width: 320px; }
    .bracket-canvas { gap: 80px; padding: 32px; }
}
@media (prefers-reduced-motion: reduce) { .bracket-scroll { scroll-behavior: auto; } }
.tournament-page{min-width:0;max-width:100%;box-sizing:border-box}.tournament-live>*{min-width:0}.bracket-section{max-width:100%;scroll-margin-top:100px}.bracket-scroll{box-sizing:border-box}.bracket-nav{display:flex;flex-wrap:wrap;gap:10px;margin-block:24px}.bracket-nav a,.bracket-nav button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:12px 20px;border-radius:10px;border:1px solid #98c6b5;background:#16392f;color:#e7f7ee;font:inherit;cursor:pointer;text-decoration:none;box-sizing:border-box}.match-vs{text-align:center;font-size:12px;color:#acbdb6;padding:3px;background:#11251e}.match-team small{font-size:15px}.live-update-note{font-size:16px;margin-top:24px;color:#bdd8ca}.tournament-champion{position:relative;overflow:hidden;text-align:center;box-shadow:0 0 36px #b8e7a51c}.champion-trophy{font-size:58px;display:block;margin-bottom:12px}.tournament-champion::after{content:'';pointer-events:none;position:absolute;inset:0;background:radial-gradient(circle at 15% 22%,#d4b577 0 2px,transparent 3px),radial-gradient(circle at 85% 38%,#b1edce 0 3px,transparent 4px),radial-gradient(circle at 8% 75%,#b1edce 0 2px,transparent 3px),radial-gradient(circle at 92% 80%,#d4b577 0 2px,transparent 3px);animation:champion-settle 2s ease-out both}.result-arrived .winner{animation:result-glow 2.2s ease-out}.bracket-connectors path.advance-path{stroke:#c8f7d8;stroke-width:3;stroke-dasharray:12 8;animation:advance-flow 2.2s ease-out}.team-standings{list-style:none;padding:0;display:grid;gap:10px}.team-standings li{padding:14px;border:1px solid #52636a;border-radius:10px}.team-standings .eliminated{color:#aebeb7}.team-standings small{display:block;font-size:16px}.bracket-match.dormant{opacity:.7}
@keyframes live-breathe{50%{box-shadow:0 0 22px #9ee8cb44}}@keyframes result-glow{0%{background:#618a69}100%{background:#315748}}@keyframes advance-flow{from{stroke-dashoffset:80;opacity:.4}to{stroke-dashoffset:0;opacity:1}}@keyframes champion-settle{from{transform:translateY(-14px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(prefers-reduced-motion:reduce){.bracket-match.inprogress,.result-arrived .winner,.bracket-connectors path.advance-path,.tournament-champion::after{animation:none!important}.bracket-nav{scroll-behavior:auto}}
