.tournament-page {
  min-height: 70vh;
}

.tournament-hero {
  position: relative;
  overflow: hidden;
  padding: 50px 0 34px;
  border-bottom: 1px solid var(--line-soft);
  background:
    linear-gradient(90deg, rgba(8,7,11,.98) 0%, rgba(8,7,11,.92) 45%, rgba(8,7,11,.72) 100%),
    radial-gradient(circle at 78% 30%, rgba(140,60,255,.24), transparent 40%);
}

.tournament-hero::after {
  content: "";
  position: absolute;
  width: 520px;
  height: 520px;
  right: -130px;
  top: -220px;
  border: 1px solid rgba(140,60,255,.12);
  border-radius: 50%;
  box-shadow:
    0 0 0 70px rgba(140,60,255,.025),
    0 0 0 140px rgba(140,60,255,.018);
  pointer-events: none;
}

.tournament-hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(290px, .75fr);
  gap: 34px;
  align-items: end;
}

.tournament-breadcrumb {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 26px;
  color: #776f7e;
  font-size: .76rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: .065em;
}

.tournament-breadcrumb a {
  color: #b28bdf;
}

.tournament-title-line {
  display: flex;
  align-items: flex-end;
  gap: 14px;
  flex-wrap: wrap;
}

.tournament-title-line h1 {
  margin: 0;
  font-size: clamp(2.85rem, 7vw, 5.35rem);
  line-height: .94;
  letter-spacing: -.055em;
  font-weight: 950;
}

.tournament-description {
  max-width: 720px;
  margin: 18px 0 0;
  color: #c6becb;
  line-height: 1.65;
}

.tournament-status,
.match-state,
.tournament-source {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 5px 9px;
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .045em;
  text-transform: uppercase;
  white-space: nowrap;
}

.tournament-status.is-running,
.match-state.is-live {
  color: #79e5b3;
  background: #0c1913;
  border-color: #245542;
}

.tournament-status.is-finished,
.match-state.is-done {
  color: #cab8dc;
  background: #15111a;
  border-color: #3c3048;
}

.tournament-status.is-registration,
.match-state.is-waiting {
  color: #d9bbff;
  background: #1a1124;
  border-color: #4d3267;
}

.tournament-source {
  color: #b99adc;
  background: #17111e;
  border-color: #3f2d50;
}

.tournament-quick-meta {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 24px;
}

.tournament-quick-card {
  min-width: 160px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(17,14,22,.78);
}

.tournament-quick-card > span {
  display: block;
  margin-bottom: 5px;
  color: #7f7686;
  font-size: .67rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .065em;
}

.tournament-quick-card strong {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: .9rem;
}

.tournament-summary {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(15,13,19,.9);
  overflow: hidden;
}

.tournament-summary-head,
.tournament-side-title {
  min-height: 49px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 16px;
  border-bottom: 1px solid var(--line-soft);
  color: #e5dfe9;
  font-size: .77rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.tournament-summary-list {
  margin: 0;
}

.tournament-summary-list > div {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 13px 16px;
  border-bottom: 1px solid var(--line-soft);
}

.tournament-summary-list > div:last-child {
  border-bottom: 0;
}

.tournament-summary-list dt {
  color: #807787;
  font-size: .7rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: .045em;
}

.tournament-summary-list dd {
  margin: 0;
  color: #ece6f0;
  font-size: .84rem;
  font-weight: 750;
  text-align: right;
}

.tournament-content {
  padding-top: 22px;
}

.tournament-tabs {
  min-height: 50px;
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 12px;
  border-bottom: 1px solid var(--line-soft);
}

.tournament-tab {
  align-self: stretch;
  padding: 0 6px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: #8b8290;
  font-size: .8rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.tournament-tab.active {
  color: #c79aff;
  border-bottom-color: var(--violet);
}

.tournament-tab-note {
  margin-left: auto;
  color: #6f6875;
  font-size: .76rem;
}

.tournament-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 12px;
  align-items: start;
}

.tournament-bracket-panel,
.tournament-side-card {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel);
}

.tournament-bracket-panel {
  overflow: hidden;
}

.tournament-panel-head {
  min-height: 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--line-soft);
}

.tournament-panel-head .eyebrow {
  margin-bottom: 5px;
  color: #8e739f;
}

.tournament-panel-head h2 {
  margin: 0;
  font-size: 1.22rem;
}

.tournament-progress {
  color: #8a8290;
  font-size: .76rem;
  font-weight: 750;
  white-space: nowrap;
}

.tournament-bracket-scroll {
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: #352741 #0f0d13;
}

.tournament-bracket {
  min-width: 800px;
  display: grid;
  grid-template-columns: repeat(var(--round-count, 4), minmax(245px, 1fr));
  gap: 26px;
  padding: 20px;
  background:
    linear-gradient(rgba(140,60,255,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(140,60,255,.018) 1px, transparent 1px);
  background-size: 28px 28px;
}

.tournament-loading {
  grid-column: 1 / -1;
}

.tournament-round {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.tournament-round:not(:first-child) {
  padding-left: 24px;
}

.tournament-round:not(:last-child) {
  padding-right: 8px;
}

.tournament-round:not(:first-child)::before {
  content: "";
  position: absolute;
  left: 10px;
  top: 76px;
  bottom: 76px;
  width: 1px;
  background: linear-gradient(180deg, rgba(140,60,255,.08), rgba(140,60,255,.45) 18%, rgba(140,60,255,.45) 82%, rgba(140,60,255,.08));
  pointer-events: none;
}

.tournament-round-title {
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 9px;
  color: #817889;
  font-size: .7rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.tournament-round-matches {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  gap: 14px;
  min-height: 920px;
}

.tournament-match {
  position: relative;
  border: 1px solid #302838;
  border-radius: 10px;
  background: #0f0d13;
  overflow: visible;
  transition: border-color .16s ease, transform .16s ease;
}

.tournament-match:hover {
  transform: translateY(-1px);
  border-color: #49395a;
}

.tournament-match.is-live {
  border-color: #3d745d;
  box-shadow: 0 0 0 1px rgba(75,210,154,.04);
}

.tournament-match.is-done {
  border-color: #342b3d;
}

.tournament-match:not(.is-final)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -20px;
  width: 20px;
  height: 1px;
  background: linear-gradient(90deg, #493858, #8c3cff);
  opacity: .9;
}

.tournament-round:not(:first-child) .tournament-match::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -14px;
  width: 14px;
  height: 1px;
  background: linear-gradient(90deg, #8c3cff, #493858);
  opacity: .9;
}

.tournament-round:last-child .tournament-match::after {
  display: none;
}

.tournament-match-head {
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  border-bottom: 1px solid var(--line-soft);
}

.tournament-match-head small {
  color: #766e7c;
  font-size: .68rem;
  font-weight: 750;
}

.tournament-player {
  min-height: 48px;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border-bottom: 1px solid var(--line-soft);
}

.tournament-player.is-winner {
  background: linear-gradient(90deg, rgba(140,60,255,.11), transparent 62%);
}

.tournament-player-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: .82rem;
  font-weight: 760;
}

.tournament-player-score {
  min-width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #3b3046;
  border-radius: 6px;
  background: #16121b;
  color: #d8c9e8;
  font-size: .75rem;
  font-weight: 850;
}

.tournament-player.is-winner .tournament-player-score {
  color: #d9b7ff;
  border-color: #654285;
  background: #21142d;
}

.tournament-match-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 10px;
  color: #8f8695;
  font-size: .68rem;
}

.tournament-match-kit {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.tournament-match-kit span:last-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tournament-side-stack {
  display: grid;
  gap: 12px;
}

.tournament-side-card {
  overflow: hidden;
}

.live-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #534b59;
}

.live-dot.is-live {
  background: var(--green);
  box-shadow: 0 0 0 4px rgba(75,210,154,.09);
}

.tournament-featured-match {
  padding: 15px;
}

.featured-round {
  margin-bottom: 12px;
  color: #877e8d;
  font-size: .68rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.featured-versus {
  display: grid;
  grid-template-columns: 1fr 42px 1fr;
  align-items: center;
  gap: 8px;
}

.featured-player {
  min-width: 0;
  text-align: center;
}

.featured-player .mc-player-head {
  width: 52px;
  height: 52px;
  margin: 0 auto 8px;
  border-radius: 10px;
}

.featured-player strong {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: .82rem;
}

.featured-vs {
  color: #a36cff;
  font-size: 1rem;
  font-weight: 950;
  text-align: center;
}

.featured-meta {
  display: grid;
  gap: 7px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--line-soft);
}

.featured-meta > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: #817989;
  font-size: .7rem;
}

.featured-meta strong {
  color: #d8d1dc;
  text-align: right;
}

.tournament-legend {
  display: grid;
  gap: 10px;
  padding: 15px;
}

.tournament-legend span {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #9a929f;
  font-size: .76rem;
}

.legend-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #59505f;
}

.legend-dot.is-live { background: var(--green); }
.legend-dot.is-done { background: #8c3cff; }
.legend-dot.is-waiting { background: #59505f; }

.tournament-empty {
  grid-column: 1 / -1;
  max-width: none;
}

.tournament-quick-card .mc-item-icon,
.tournament-match-kit .mc-item-icon {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
}

.tournament-player .mc-player-head {
  width: 32px;
  height: 32px;
  border-radius: 6px;
}

@media (max-width: 980px) {
  .tournament-hero-grid,
  .tournament-layout {
    grid-template-columns: 1fr;
  }

  .tournament-summary {
    max-width: none;
  }

  .tournament-side-stack {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .tournament-hero {
    padding-top: 32px;
  }

  .tournament-title-line {
    align-items: flex-start;
    flex-direction: column;
  }

  .tournament-title-line h1 {
    font-size: clamp(2.55rem, 15vw, 4rem);
  }

  .tournament-quick-meta {
    display: grid;
    grid-template-columns: 1fr;
  }

  .tournament-quick-card {
    min-width: 0;
  }

  .tournament-tabs {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
    padding-bottom: 10px;
  }

  .tournament-tab {
    min-height: 38px;
  }

  .tournament-tab-note {
    margin-left: 0;
  }

  .tournament-panel-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .tournament-side-stack {
    grid-template-columns: 1fr;
  }

  .tournament-bracket {
    padding: 14px;
    gap: 18px;
  }

  .tournament-match:not(.is-final)::after {
    right: -16px;
    width: 16px;
  }

  .tournament-round:not(:first-child) {
    padding-left: 18px;
  }

  .tournament-round:not(:first-child)::before {
    left: 8px;
  }

  .tournament-round:not(:first-child) .tournament-match::before {
    left: -10px;
    width: 10px;
  }
}


.tournament-player > .mc-player-head,
.featured-player > .mc-player-head {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex: 0 0 auto;
}

.tournament-player .mc-player-head-fallback,
.featured-player .mc-player-head-fallback {
  width: 100%;
  height: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.tournament-player.is-empty .tournament-player-name {
  color: #b6afbe;
}

.tournament-player.is-empty .tournament-player-score {
  color: #a89fb3;
}

.tournament-match-head small,
.tournament-match-foot > span:last-child,
.featured-meta strong {
  white-space: nowrap;
}


.mc-player-head {
  position: relative;
  background: #140f19;
}

.mc-player-head img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.mc-player-head .mc-player-head-fallback {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  background: linear-gradient(135deg, #2b1d36, #1a1320);
  color: #f2ebf8;
}

.mc-player-head.is-fallback .mc-player-head-fallback {
  opacity: 1;
}

.mc-player-head.is-fallback img {
  display: none;
}


/* ===== Tournois v4 : bracket plein écran, sans barre horizontale ===== */

.tournament-content > .container {
  width: min(1540px, calc(100% - 32px));
}

.tournament-layout {
  grid-template-columns: minmax(0, 1fr);
}

.tournament-side-stack {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tournament-bracket-panel {
  min-width: 0;
}

.tournament-bracket-scroll {
  overflow-x: hidden;
  overflow-y: visible;
  scrollbar-width: none;
}

.tournament-bracket-scroll::-webkit-scrollbar {
  display: none;
}

.tournament-bracket {
  position: relative;
  isolation: isolate;
  width: 100%;
  min-width: 0 !important;
  grid-template-columns: repeat(var(--round-count, 5), minmax(0, 1fr));
  gap: clamp(10px, 1.15vw, 20px);
  padding: 20px clamp(10px, 1.2vw, 20px);
}

.tournament-round,
.tournament-round:not(:first-child),
.tournament-round:not(:last-child) {
  position: relative;
  z-index: 2;
  min-width: 0;
  padding-left: 0;
  padding-right: 0;
}

.tournament-round:not(:first-child)::before,
.tournament-round:not(:first-child) .tournament-match::before,
.tournament-match:not(.is-final)::after {
  display: none;
}

.tournament-round-matches {
  min-height: 1080px;
  gap: 10px;
}

.tournament-match {
  min-width: 0;
  border-radius: 10px;
  overflow: hidden;
}

.tournament-match-head {
  min-height: 31px;
  padding: 5px 7px;
  gap: 5px;
}

.tournament-match-head .match-state {
  padding: 4px 7px;
  font-size: clamp(.54rem, .56vw, .66rem);
}

.tournament-match-head small {
  max-width: 58px;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #9a8fa2;
  font-size: clamp(.56rem, .58vw, .67rem);
  font-weight: 800;
  letter-spacing: .03em;
  white-space: nowrap;
}

.tournament-player {
  min-height: 42px;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 6px;
  padding: 6px 7px;
}

.tournament-player .mc-player-head {
  width: 28px;
  height: 28px;
}

.tournament-player-name {
  min-width: 0;
  font-size: clamp(.69rem, .73vw, .82rem);
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}

.tournament-player-score {
  min-width: 22px;
  width: 22px;
  height: 22px;
  font-size: .69rem;
}

.tournament-match-foot {
  min-height: 34px;
  gap: 5px;
  padding: 6px 7px;
  font-size: clamp(.56rem, .59vw, .66rem);
}

.tournament-match-kit {
  gap: 4px;
}

.tournament-match-kit .mc-item-icon {
  width: 18px;
  height: 18px;
  flex-basis: 18px;
}

.tournament-match-foot > span:last-child {
  max-width: 52px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tournament-connectors {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.tournament-connector-path {
  fill: none;
  stroke: rgba(156, 91, 255, .82);
  stroke-width: 1.45;
  vector-effect: non-scaling-stroke;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 0 2px rgba(140, 60, 255, .32));
}

@media (max-width: 1100px) {
  .tournament-content > .container {
    width: calc(100% - 20px);
  }

  .tournament-bracket {
    gap: 8px;
    padding-inline: 8px;
  }

  .tournament-match-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .tournament-match-head small {
    max-width: 100%;
  }

  .tournament-player {
    grid-template-columns: 24px minmax(0, 1fr) auto;
    gap: 4px;
    padding-inline: 5px;
  }

  .tournament-player .mc-player-head {
    width: 24px;
    height: 24px;
  }

  .tournament-match-foot > span:last-child {
    display: none;
  }
}

@media (max-width: 760px) {
  .tournament-content > .container {
    width: calc(100% - 12px);
  }

  .tournament-bracket {
    gap: 4px;
    padding: 10px 4px;
  }

  .tournament-round-title {
    min-height: 32px;
    font-size: .52rem;
    letter-spacing: .02em;
  }

  .tournament-round-matches {
    min-height: 980px;
  }

  .tournament-match-head {
    padding: 4px;
  }

  .tournament-match-head .match-state {
    padding: 3px 4px;
    font-size: .48rem;
  }

  .tournament-match-head small {
    font-size: .48rem;
  }

  .tournament-player {
    min-height: 35px;
    grid-template-columns: 20px minmax(0, 1fr) auto;
    padding: 4px;
  }

  .tournament-player .mc-player-head {
    width: 20px;
    height: 20px;
    border-radius: 4px;
  }

  .tournament-player-name {
    font-size: .56rem;
  }

  .tournament-player-score {
    min-width: 18px;
    width: 18px;
    height: 18px;
    font-size: .55rem;
  }

  .tournament-match-foot {
    padding: 4px;
    font-size: .5rem;
  }

  .tournament-match-kit .mc-item-icon {
    width: 14px;
    height: 14px;
    flex-basis: 14px;
  }

  .tournament-side-stack {
    grid-template-columns: 1fr;
  }
}


/* ===== Tournois v5 : tête Minecraft isolée du pseudo =====
   style.css donne une taille minimale générale aux têtes joueurs.
   Dans le bracket compact, on l'annule explicitement pour empêcher la tête
   de déborder dans la colonne du pseudo. */
.tournament-player-avatar {
  width: 28px;
  height: 28px;
  min-width: 0;
  max-width: 28px;
  display: block;
  overflow: hidden;
  border-radius: 6px;
  position: relative;
  z-index: 1;
}

.tournament-player-avatar > .mc-player-head {
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 6px !important;
  box-shadow: none;
  overflow: hidden;
}

.tournament-player-avatar > .mc-player-head img,
.tournament-player-avatar > .mc-player-head .mc-player-head-fallback {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
}

.tournament-player-name {
  position: relative;
  z-index: 2;
  display: block;
  padding-left: 2px;
}

@media (max-width: 1100px) {
  .tournament-player-avatar {
    width: 24px;
    height: 24px;
    max-width: 24px;
    border-radius: 5px;
  }
}

@media (max-width: 760px) {
  .tournament-player-avatar {
    width: 20px;
    height: 20px;
    max-width: 20px;
    border-radius: 4px;
  }
}


/* ===== Tournament finish / champion ===== */
.tournament-source[hidden] {
  display: none !important;
}

.tournament-page.is-finished .tournament-hero {
  background:
    linear-gradient(90deg, rgba(8,7,11,.98) 0%, rgba(8,7,11,.9) 45%, rgba(8,7,11,.7) 100%),
    radial-gradient(circle at 78% 30%, rgba(190,128,255,.3), transparent 42%);
}

.tournament-champion-banner {
  position: relative;
  display: grid;
  grid-template-columns: 56px 52px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  margin: 0 0 14px;
  padding: 14px 18px;
  overflow: hidden;
  border: 1px solid rgba(184,122,255,.38);
  border-radius: 14px;
  background:
    linear-gradient(110deg, rgba(113,45,175,.2), rgba(17,14,22,.94) 42%, rgba(17,14,22,.94)),
    radial-gradient(circle at 8% 50%, rgba(220,177,255,.2), transparent 30%);
  box-shadow: 0 10px 35px rgba(0,0,0,.18), inset 0 1px rgba(255,255,255,.025);
}

.tournament-champion-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 0 38%, rgba(255,255,255,.055) 47%, transparent 56%);
  transform: translateX(-120%);
  animation: tournament-champion-shine 2.8s ease-out .35s 1;
  pointer-events: none;
}

.tournament-champion-trophy {
  font-size: 2rem;
  text-align: center;
  filter: drop-shadow(0 0 14px rgba(218,176,255,.3));
}

.tournament-champion-avatar .mc-player-head {
  width: 46px;
  height: 46px;
  border-radius: 10px;
  box-shadow: 0 0 0 1px rgba(204,164,255,.32);
}

.tournament-champion-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.tournament-champion-copy span {
  color: #a886c3;
  font-size: .66rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.tournament-champion-copy strong {
  overflow: hidden;
  color: #f3e9ff;
  font-size: 1.08rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tournament-champion-copy small {
  color: #8e8296;
  font-size: .73rem;
}

.tournament-finish-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(5,4,8,.74);
  backdrop-filter: blur(8px);
  animation: tournament-overlay-in .28s ease-out both;
}

.tournament-finish-overlay.is-leaving {
  pointer-events: none;
  animation: tournament-overlay-out .38s ease-in both;
}

.tournament-finish-card {
  position: relative;
  z-index: 2;
  width: min(420px, 94vw);
  padding: 28px 26px 24px;
  overflow: hidden;
  border: 1px solid rgba(190,131,255,.5);
  border-radius: 20px;
  background:
    radial-gradient(circle at 50% -10%, rgba(164,91,255,.28), transparent 48%),
    #100c15;
  box-shadow: 0 24px 90px rgba(0,0,0,.55), 0 0 70px rgba(131,54,210,.12);
  text-align: center;
  animation: tournament-card-in .58s cubic-bezier(.2,.8,.2,1) both;
}

.tournament-finish-kicker,
.tournament-finish-label {
  color: #c79aff;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.tournament-finish-head {
  margin: 20px auto 12px;
}

.tournament-finish-head .mc-player-head {
  width: 92px;
  height: 92px;
  border-radius: 18px;
  box-shadow: 0 0 0 1px rgba(210,169,255,.4), 0 0 45px rgba(154,81,235,.22);
}

.tournament-finish-card h2 {
  margin: 5px 0 4px;
  color: #fff;
  font-size: clamp(1.8rem, 6vw, 2.65rem);
  line-height: 1;
  letter-spacing: -.035em;
}

.tournament-finish-card p {
  margin: 7px 0 0;
  color: #918798;
}

.tournament-finish-score {
  display: inline-flex;
  margin-top: 15px;
  padding: 7px 13px;
  border: 1px solid #5d3b7a;
  border-radius: 999px;
  background: #1d1228;
  color: #e2c5ff;
  font-size: 1rem;
}

.tournament-finish-close {
  width: 100%;
  margin-top: 20px;
  padding: 11px 14px;
  border: 1px solid #654485;
  border-radius: 10px;
  background: #21142e;
  color: #eadcff;
  font: inherit;
  font-size: .82rem;
  font-weight: 850;
  cursor: pointer;
  transition: transform .15s ease, border-color .15s ease, background .15s ease;
}

.tournament-finish-close:hover {
  transform: translateY(-1px);
  border-color: #8b5fb2;
  background: #2a1839;
}

.tournament-finish-confetti {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.tournament-finish-confetti i {
  position: absolute;
  left: calc(var(--x) * 1%);
  top: -7vh;
  width: var(--size);
  height: calc(var(--size) * 1.8);
  border-radius: 2px;
  background: hsl(var(--hue) 78% 69%);
  opacity: .9;
  transform: rotate(calc(var(--i) * 19deg));
  animation: tournament-confetti-fall var(--duration) linear var(--delay) both;
}

@keyframes tournament-overlay-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes tournament-overlay-out {
  from { opacity: 1; }
  to { opacity: 0; }
}

@keyframes tournament-card-in {
  from { opacity: 0; transform: translateY(18px) scale(.94); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes tournament-confetti-fall {
  0% { transform: translate3d(0,-10vh,0) rotate(0deg); opacity: 0; }
  10% { opacity: .95; }
  100% { transform: translate3d(var(--drift),110vh,0) rotate(760deg); opacity: .72; }
}

@keyframes tournament-champion-shine {
  from { transform: translateX(-120%); }
  to { transform: translateX(120%); }
}

@media (max-width: 620px) {
  .tournament-champion-banner {
    grid-template-columns: 44px 44px minmax(0, 1fr);
    gap: 10px;
    padding: 12px;
  }

  .tournament-champion-trophy { font-size: 1.55rem; }
  .tournament-champion-avatar .mc-player-head { width: 40px; height: 40px; }
}

@media (prefers-reduced-motion: reduce) {
  .tournament-champion-banner::after,
  .tournament-finish-overlay,
  .tournament-finish-card,
  .tournament-finish-confetti i {
    animation: none !important;
  }
}

/* v4.7.0 — bracket esport symétrique + animations live */
.tournament-content>.container{
  width:min(1680px,calc(100% - 24px))!important;
  max-width:1680px!important;
}
.tournament-layout{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:14px!important;
}
.tournament-side-stack{
  display:grid!important;
  grid-template-columns:minmax(0,1.65fr) minmax(250px,.35fr)!important;
  gap:12px!important;
}
.tournament-bracket-panel{
  border-color:#29324a!important;
  background:
    radial-gradient(circle at 50% 48%,rgba(128,70,255,.08),transparent 30%),
    linear-gradient(180deg,#0c111c,#090d16)!important;
}
.tournament-panel-head{
  min-height:68px!important;
  border-bottom-color:#273047!important;
}
.tournament-bracket-scroll{
  overflow:hidden!important;
}
.tournament-bracket{
  position:relative!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  padding:14px!important;
  background:
    linear-gradient(rgba(113,126,166,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(113,126,166,.035) 1px,transparent 1px),
    radial-gradient(circle at 50% 50%,rgba(125,69,242,.08),transparent 38%);
  background-size:32px 32px,32px 32px,auto;
}
.tournament-bracket-stage{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:
    repeat(var(--branch-rounds,4),minmax(112px,1fr))
    minmax(150px,1.12fr)
    repeat(var(--branch-rounds,4),minmax(112px,1fr));
  gap:9px;
  min-height:var(--bracket-stage-height,760px);
  align-items:stretch;
}
.tournament-branch-column,
.tournament-center-stage{
  min-width:0;
  position:relative;
  z-index:2;
}
.tournament-branch-column{
  display:flex!important;
  flex-direction:column!important;
  padding:0!important;
}
.tournament-branch-column::before,
.tournament-branch-column .tournament-match::before,
.tournament-branch-column .tournament-match::after{
  display:none!important;
}
.tournament-round-title,
.tournament-center-label{
  min-height:30px!important;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 0 7px!important;
  padding:0 4px;
  border:1px solid #252e43;
  border-radius:6px;
  background:#0a0e17;
  color:#7987a4!important;
  font:850 clamp(.45rem,.52vw,.61rem)/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;
  letter-spacing:.055em!important;
  text-transform:uppercase;
  white-space:nowrap;
}
.tournament-center-label{
  color:#efc65b!important;
  border-color:#4d4227;
  background:
    radial-gradient(circle at 50% 50%,rgba(236,193,66,.09),transparent 70%),
    #0c0f15;
}
.tournament-round-matches{
  flex:1!important;
  min-height:0!important;
  height:var(--bracket-stage-height,760px)!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-around!important;
  gap:7px!important;
}
.tournament-center-stage{
  display:flex;
  flex-direction:column;
}
.tournament-center-stack{
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:center;
  gap:30px;
}
.tournament-center-stage .tournament-match{
  border-color:#5c4e27!important;
  box-shadow:
    0 0 0 1px rgba(239,196,79,.04),
    0 0 28px rgba(220,173,44,.055);
}
.tournament-third-place{
  display:grid;
  gap:7px;
  opacity:.88;
}
.tournament-third-place>.tournament-center-label{
  min-height:24px!important;
  margin:0!important;
  color:#b49a7a!important;
  border-color:#3c342c!important;
}
.tournament-final-placeholder{
  min-height:86px;
  display:grid;
  place-items:center;
  border:1px dashed #3b4355;
  border-radius:8px;
  color:#69758d;
  background:#090d15;
  font-size:.65rem;
}
.tournament-match{
  min-width:0!important;
  border-radius:7px!important;
  border-color:#2a3245!important;
  background:linear-gradient(180deg,#0d121d,#090d15)!important;
  box-shadow:0 7px 18px rgba(0,0,0,.16);
  overflow:visible!important;
  transform:translateZ(0);
  transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease,opacity .22s ease;
}
.tournament-match:hover{
  transform:translateY(-1px)!important;
  border-color:#4b5a78!important;
}
.tournament-match-head{
  min-height:22px!important;
  padding:3px 5px!important;
  border-bottom:1px solid #1d2535!important;
}
.tournament-match-head .match-state{
  padding:2px 4px!important;
  border-radius:4px!important;
  font-size:clamp(.38rem,.43vw,.49rem)!important;
}
.tournament-match-head small{
  font-size:clamp(.38rem,.42vw,.48rem)!important;
}
.tournament-player{
  min-height:30px!important;
  grid-template-columns:21px minmax(0,1fr) auto!important;
  gap:5px!important;
  padding:3px 5px!important;
  border-bottom-color:#171e2a!important;
}
.tournament-player .mc-player-head,
.tournament-player-avatar>.mc-player-head{
  width:21px!important;
  height:21px!important;
  min-width:21px!important;
  max-width:21px!important;
  min-height:21px!important;
  max-height:21px!important;
  border-radius:4px!important;
}
.tournament-player-name{
  font-size:clamp(.48rem,.55vw,.64rem)!important;
}
.tournament-player-score{
  min-width:16px!important;
  font-size:clamp(.5rem,.57vw,.66rem)!important;
}
.tournament-player.is-winner{
  background:
    linear-gradient(90deg,rgba(116,71,225,.16),rgba(116,71,225,.035));
}
.tournament-player.is-winner .tournament-player-name{
  color:#f3efff!important;
}
.tournament-match-foot{
  min-height:21px!important;
  padding:3px 5px!important;
  border-top:1px solid #171e2a!important;
  font-size:clamp(.38rem,.42vw,.48rem)!important;
}
.tournament-match-foot>span:last-child{
  display:none!important;
}
.tournament-match-kit{
  gap:3px!important;
}
.tournament-match-kit .mc-item-icon{
  width:13px!important;
  height:13px!important;
  flex-basis:13px!important;
}
.tournament-match-kit .mc-item-icon img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  image-rendering:pixelated!important;
}
.tournament-match.is-live{
  border-color:#37c98d!important;
  box-shadow:0 0 0 1px rgba(55,201,141,.08),0 0 18px rgba(55,201,141,.13)!important;
  animation:tournament-live-pulse 1.8s ease-in-out infinite;
}
.tournament-match.is-done{
  opacity:.9;
}
.tournament-match.is-final{
  border-color:#a17c28!important;
  background:
    radial-gradient(circle at 50% 15%,rgba(232,190,62,.08),transparent 44%),
    linear-gradient(180deg,#11131c,#0b0e15)!important;
}
.tournament-connectors{
  z-index:1!important;
  pointer-events:none!important;
}
.tournament-connector-path{
  stroke:rgba(115,132,176,.42)!important;
  stroke-width:1.2!important;
  filter:drop-shadow(0 0 2px rgba(105,78,178,.12));
  transition:stroke .3s ease,filter .3s ease;
}
.tournament-connector-path.is-live{
  stroke:#4cd7a0!important;
  filter:drop-shadow(0 0 4px rgba(76,215,160,.34));
}
.tournament-connector-path.is-complete{
  stroke:rgba(153,93,255,.62)!important;
}
.tournament-connector-path.is-advance{
  stroke:#c787ff!important;
  stroke-width:2!important;
  stroke-dasharray:8 7;
  animation:tournament-line-travel .8s linear infinite;
  filter:drop-shadow(0 0 5px rgba(190,111,255,.55));
}
.tournament-match.is-score-updated .tournament-player-score{
  animation:tournament-score-pop .75s cubic-bezier(.2,.75,.2,1);
}
.tournament-match.is-just-finished{
  animation:tournament-finish-flash 1.7s ease-out;
}
.tournament-player.is-advancing{
  position:relative;
  z-index:2;
  animation:tournament-winner-advance 1.45s cubic-bezier(.2,.8,.2,1);
}
.tournament-player.is-new-qualifier{
  animation:tournament-arrive 1.25s cubic-bezier(.2,.8,.2,1);
}
.tournament-qualified-burst{
  position:absolute;
  z-index:10;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  padding:5px 8px;
  border:1px solid #bd7dff;
  border-radius:5px;
  background:rgba(10,8,17,.96);
  color:#e6c6ff;
  box-shadow:0 0 24px rgba(176,92,255,.35);
  font:950 clamp(.43rem,.52vw,.6rem)/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.12em;
  pointer-events:none;
  animation:tournament-qualified 2.2s ease forwards;
}
.tournament-side-card{
  border-color:#273149!important;
  background:#0b101a!important;
}
.featured-versus{
  grid-template-columns:1fr 38px 1fr!important;
}
.live-dot.is-live{
  animation:tournament-live-dot 1.15s ease-in-out infinite;
}

/* Mode OBS / stream: /tournaments.html?live=1 */
.tournament-broadcast-mode{
  background:#070a11!important;
}
.tournament-broadcast-mode #site-header,
.tournament-broadcast-mode #site-footer,
.tournament-broadcast-mode .tournament-hero,
.tournament-broadcast-mode .tournament-tabs,
.tournament-broadcast-mode .tournament-side-stack{
  display:none!important;
}
.tournament-broadcast-mode .tournament-content{
  padding:0!important;
}
.tournament-broadcast-mode .tournament-content>.container{
  width:100%!important;
  max-width:none!important;
}
.tournament-broadcast-mode .tournament-bracket-panel{
  min-height:100vh;
  border:0!important;
  border-radius:0!important;
}
.tournament-broadcast-mode .tournament-panel-head{
  min-height:58px!important;
  padding-inline:22px!important;
  background:rgba(7,10,17,.92);
}
.tournament-broadcast-mode .tournament-bracket{
  min-height:calc(100vh - 58px);
}

@keyframes tournament-live-pulse{
  0%,100%{box-shadow:0 0 0 1px rgba(55,201,141,.06),0 0 12px rgba(55,201,141,.08)}
  50%{box-shadow:0 0 0 1px rgba(55,201,141,.18),0 0 28px rgba(55,201,141,.22)}
}
@keyframes tournament-live-dot{
  0%,100%{transform:scale(.9);box-shadow:0 0 0 0 rgba(69,225,159,.25)}
  50%{transform:scale(1.2);box-shadow:0 0 0 6px rgba(69,225,159,0)}
}
@keyframes tournament-line-travel{
  to{stroke-dashoffset:-30}
}
@keyframes tournament-score-pop{
  0%{transform:scale(1)}
  35%{transform:scale(1.55);color:#d8a4ff;text-shadow:0 0 12px rgba(189,111,255,.75)}
  100%{transform:scale(1)}
}
@keyframes tournament-finish-flash{
  0%{border-color:#ffffff;box-shadow:0 0 0 2px rgba(255,255,255,.4),0 0 38px rgba(178,106,255,.65)}
  30%{border-color:#b76cff;box-shadow:0 0 0 1px rgba(183,108,255,.35),0 0 30px rgba(183,108,255,.38)}
  100%{border-color:#2a3245;box-shadow:0 7px 18px rgba(0,0,0,.16)}
}
@keyframes tournament-winner-advance{
  0%{transform:translateX(0);filter:brightness(1)}
  30%{transform:translateX(5px);filter:brightness(1.45);box-shadow:inset 3px 0 #c582ff}
  65%{transform:translateX(2px);filter:brightness(1.18)}
  100%{transform:translateX(0);filter:brightness(1)}
}
@keyframes tournament-arrive{
  0%{opacity:.1;transform:translateY(-7px) scale(.96);background:rgba(166,91,255,.28)}
  50%{opacity:1;transform:translateY(0) scale(1.025);background:rgba(166,91,255,.18)}
  100%{transform:scale(1);background:transparent}
}
@keyframes tournament-qualified{
  0%{opacity:0;transform:translate(-50%,-35%) scale(.72)}
  18%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}
  72%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  100%{opacity:0;transform:translate(-50%,-70%) scale(.92)}
}

@media(max-width:1100px){
  .tournament-bracket-stage{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
  }
  .tournament-round-matches{
    height:auto!important;
    min-height:0!important;
    justify-content:flex-start!important;
  }
  .tournament-branch-column{
    min-height:0;
  }
  .tournament-center-stack{
    justify-content:flex-start;
  }
  .tournament-connectors{
    display:none!important;
  }
}
@media(max-width:760px){
  .tournament-content>.container{
    width:calc(100% - 8px)!important;
  }
  .tournament-side-stack{
    grid-template-columns:1fr!important;
  }
  .tournament-bracket{
    padding:6px!important;
  }
  .tournament-bracket-stage{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:5px;
  }
  .tournament-round-title,
  .tournament-center-label{
    min-height:24px!important;
    font-size:.44rem!important;
  }
  .tournament-match-head{
    min-height:19px!important;
  }
  .tournament-player{
    min-height:26px!important;
    grid-template-columns:18px minmax(0,1fr) auto!important;
  }
  .tournament-player .mc-player-head,
  .tournament-player-avatar>.mc-player-head{
    width:18px!important;
    height:18px!important;
    min-width:18px!important;
    min-height:18px!important;
    max-width:18px!important;
    max-height:18px!important;
  }
}
@media(max-width:470px){
  .tournament-bracket-stage{
    grid-template-columns:1fr;
  }
}
@media(prefers-reduced-motion:reduce){
  .tournament-match,
  .tournament-player,
  .tournament-connector-path,
  .live-dot{
    animation:none!important;
    transition:none!important;
  }
}

/* v4.7.2 — vrai déplacement du bloc joueur pendant les qualifications */
.tournament-player.is-loser{
  opacity:.42;
  filter:saturate(.55) brightness(.78);
}
.tournament-player.is-launching{
  opacity:.16;
  filter:brightness(.8);
}
.tournament-player.is-receiving-player{
  opacity:0!important;
}
.tournament-player.is-landing{
  animation:tournament-player-land 1.05s cubic-bezier(.16,.84,.23,1);
}
.tournament-player-fly{
  position:fixed!important;
  z-index:999999!important;
  margin:0!important;
  pointer-events:none!important;
  overflow:hidden!important;
  border:1px solid #b678ff!important;
  border-radius:6px!important;
  background:
    linear-gradient(90deg,rgba(135,72,226,.22),rgba(14,18,29,.98) 32%,rgba(10,13,21,.98))!important;
  box-shadow:
    0 0 0 1px rgba(197,133,255,.16),
    0 12px 28px rgba(0,0,0,.44),
    0 0 24px rgba(169,88,255,.34)!important;
  opacity:1!important;
  filter:none!important;
  transform-origin:center!important;
  will-change:transform,opacity!important;
}
.tournament-player-fly .tournament-player-name{
  color:#fff!important;
  text-shadow:0 0 9px rgba(205,151,255,.45);
}
.tournament-player-fly .tournament-player-score{
  color:#e7c8ff!important;
}
.tournament-player-fly .mc-player-head{
  box-shadow:0 0 0 1px rgba(204,147,255,.34),0 0 12px rgba(174,91,255,.26)!important;
}
.tournament-match.is-just-finished .tournament-player.is-winner{
  background:
    linear-gradient(90deg,rgba(152,83,255,.3),rgba(152,83,255,.07))!important;
}
.tournament-demo-mode .tournament-tab-note::after{
  content:" · Démo animations complète en boucle";
  color:#b883f0;
}

@keyframes tournament-player-land{
  0%{
    opacity:0;
    transform:translateY(-7px) scale(.94);
    background:rgba(171,99,255,.34);
    box-shadow:inset 3px 0 #d5a6ff,0 0 22px rgba(165,89,255,.28);
  }
  35%{
    opacity:1;
    transform:translateY(0) scale(1.035);
    background:rgba(151,80,239,.24);
    box-shadow:inset 3px 0 #be7bff,0 0 18px rgba(165,89,255,.2);
  }
  100%{
    opacity:1;
    transform:scale(1);
    box-shadow:none;
  }
}

.tournament-player-fly{
  animation:tournament-player-flight 1.05s cubic-bezier(.2,.78,.2,1) forwards!important;
}
@keyframes tournament-player-flight{
  0%{
    transform:translate3d(0,0,0) scale(1);
    opacity:1;
  }
  22%{
    transform:translate3d(var(--fly-x18),var(--fly-y12),0) scale(1.04);
    opacity:1;
  }
  72%{
    transform:translate3d(var(--fly-x72),var(--fly-y78),0) scale(1.02);
    opacity:1;
  }
  100%{
    transform:translate3d(var(--fly-x),var(--fly-y),0) scale(var(--fly-sx),var(--fly-sy));
    opacity:.98;
  }
}

/* v4.7.3 — cartes plus petites, respiration plus large, animations plus smooth */
@media(min-width:1101px){
  .tournament-bracket-stage{
    grid-template-columns:
      repeat(var(--branch-rounds,4),minmax(88px,1fr))
      minmax(126px,.95fr)
      repeat(var(--branch-rounds,4),minmax(88px,1fr))!important;
    column-gap:clamp(18px,1.55vw,30px)!important;
  }

  .tournament-round-matches{
    gap:26px!important;
  }

  .tournament-match{
    width:min(100%,126px)!important;
    max-width:126px!important;
    margin-inline:auto!important;
    border-radius:5px!important;
    box-shadow:0 5px 14px rgba(0,0,0,.14)!important;
  }

  .tournament-center-stage .tournament-match{
    width:min(100%,144px)!important;
    max-width:144px!important;
  }

  .tournament-match-head{
    min-height:16px!important;
    padding:2px 4px!important;
  }

  .tournament-match-head .match-state{
    padding:1px 3px!important;
    font-size:.36rem!important;
  }

  .tournament-match-head small{
    font-size:.36rem!important;
  }

  .tournament-player{
    min-height:22px!important;
    grid-template-columns:16px minmax(0,1fr) auto!important;
    gap:4px!important;
    padding:2px 4px!important;
  }

  .tournament-player .mc-player-head,
  .tournament-player-avatar>.mc-player-head{
    width:16px!important;
    height:16px!important;
    min-width:16px!important;
    min-height:16px!important;
    max-width:16px!important;
    max-height:16px!important;
    border-radius:3px!important;
  }

  .tournament-player-name{
    font-size:.46rem!important;
  }

  .tournament-player-score{
    min-width:12px!important;
    font-size:.46rem!important;
  }

  .tournament-match-foot{
    min-height:16px!important;
    padding:2px 4px!important;
    font-size:.34rem!important;
  }

  .tournament-match-kit{
    gap:2px!important;
  }

  .tournament-match-kit .mc-item-icon{
    width:10px!important;
    height:10px!important;
    flex-basis:10px!important;
  }

  .tournament-round-title,
  .tournament-center-label{
    min-height:24px!important;
    margin-bottom:12px!important;
    font-size:.46rem!important;
  }

  .tournament-center-stack{
    gap:54px!important;
  }
}

/* transitions plus douces */
.tournament-match{
  transition:
    border-color .45s cubic-bezier(.22,1,.36,1),
    box-shadow .45s cubic-bezier(.22,1,.36,1),
    transform .45s cubic-bezier(.22,1,.36,1),
    opacity .45s cubic-bezier(.22,1,.36,1)!important;
}

.tournament-connector-path{
  transition:
    stroke .55s cubic-bezier(.22,1,.36,1),
    filter .55s cubic-bezier(.22,1,.36,1),
    opacity .55s cubic-bezier(.22,1,.36,1)!important;
}

.tournament-connector-path.is-advance{
  animation:tournament-line-travel 1.45s linear infinite!important;
}

.tournament-match.is-score-updated .tournament-player-score{
  animation:tournament-score-pop .95s cubic-bezier(.22,1,.36,1)!important;
}

.tournament-match.is-just-finished{
  animation:tournament-finish-flash 2.05s cubic-bezier(.22,1,.36,1)!important;
}

.tournament-player.is-advancing{
  animation:tournament-winner-advance 1.2s cubic-bezier(.22,1,.36,1)!important;
}

.tournament-player.is-new-qualifier{
  animation:tournament-arrive 1.15s cubic-bezier(.22,1,.36,1)!important;
}

.tournament-player.is-landing{
  animation:tournament-player-land .95s cubic-bezier(.22,1,.36,1)!important;
}

.tournament-player-fly{
  animation:tournament-player-flight 1.5s cubic-bezier(.22,1,.36,1) forwards!important;
}

@keyframes tournament-player-flight{
  0%{
    transform:translate3d(0,0,0) scale(1);
    opacity:1;
  }
  18%{
    transform:translate3d(var(--fly-x18),var(--fly-y12),0) scale(1.015);
    opacity:1;
  }
  68%{
    transform:translate3d(var(--fly-x72),var(--fly-y78),0) scale(1.008);
    opacity:1;
  }
  100%{
    transform:translate3d(var(--fly-x),var(--fly-y),0) scale(var(--fly-sx),var(--fly-sy));
    opacity:1;
  }
}

@keyframes tournament-winner-advance{
  0%{
    filter:brightness(1);
    box-shadow:inset 0 0 transparent;
  }
  45%{
    filter:brightness(1.22);
    box-shadow:inset 2px 0 #c582ff;
  }
  100%{
    filter:brightness(1);
    box-shadow:inset 0 0 transparent;
  }
}

@keyframes tournament-arrive{
  0%{
    opacity:0;
    transform:translateY(-3px) scale(.985);
    background:rgba(166,91,255,.22);
  }
  55%{
    opacity:1;
    transform:translateY(0) scale(1.012);
    background:rgba(166,91,255,.12);
  }
  100%{
    opacity:1;
    transform:scale(1);
    background:transparent;
  }
}

@keyframes tournament-player-land{
  0%{
    opacity:0;
    transform:translateY(-3px) scale(.97);
    background:rgba(171,99,255,.24);
    box-shadow:inset 2px 0 #d5a6ff,0 0 14px rgba(165,89,255,.18);
  }
  50%{
    opacity:1;
    transform:translateY(0) scale(1.015);
    background:rgba(151,80,239,.14);
    box-shadow:inset 2px 0 #be7bff,0 0 12px rgba(165,89,255,.14);
  }
  100%{
    opacity:1;
    transform:scale(1);
    box-shadow:none;
  }
}

/* v4.7.3b — encore plus compact + plus d'espace entre les matchs */
@media(min-width:1101px){
  .tournament-bracket-stage{
    column-gap:clamp(24px,1.9vw,36px)!important;
  }

  .tournament-match{
    width:min(100%,112px)!important;
    max-width:112px!important;
  }

  .tournament-center-stage .tournament-match{
    width:min(100%,130px)!important;
    max-width:130px!important;
  }

  .tournament-match-head{
    min-height:14px!important;
    padding:1px 3px!important;
  }

  .tournament-match-head .match-state,
  .tournament-match-head small{
    font-size:.32rem!important;
  }

  .tournament-player{
    min-height:18px!important;
    grid-template-columns:14px minmax(0,1fr) auto!important;
    gap:3px!important;
    padding:1px 3px!important;
  }

  .tournament-player .mc-player-head,
  .tournament-player-avatar>.mc-player-head{
    width:14px!important;
    height:14px!important;
    min-width:14px!important;
    min-height:14px!important;
    max-width:14px!important;
    max-height:14px!important;
  }

  .tournament-player-name,
  .tournament-player-score{
    font-size:.40rem!important;
  }

  .tournament-player-score{
    min-width:10px!important;
  }

  .tournament-match-foot{
    min-height:13px!important;
    padding:1px 3px!important;
    font-size:.30rem!important;
  }

  .tournament-match-kit .mc-item-icon{
    width:9px!important;
    height:9px!important;
    flex-basis:9px!important;
  }

  .tournament-round-title,
  .tournament-center-label{
    min-height:22px!important;
    margin-bottom:16px!important;
  }
}

/* v4.7.4 — taille responsive + déplacement strict sur les traits du bracket */
@media(min-width:900px){
  .tournament-bracket-stage{
    grid-template-columns:
      repeat(var(--branch-rounds,4),minmax(0,1fr))
      minmax(0,1.04fr)
      repeat(var(--branch-rounds,4),minmax(0,1fr))!important;
    column-gap:var(--bracket-column-gap,18px)!important;
  }

  .tournament-match{
    width:min(100%,var(--match-card-width,112px))!important;
    max-width:var(--match-card-width,112px)!important;
  }

  .tournament-center-stage .tournament-match{
    width:min(100%,var(--final-card-width,130px))!important;
    max-width:var(--final-card-width,130px)!important;
  }

  .tournament-player{
    min-height:var(--player-row-height,18px)!important;
    grid-template-columns:var(--player-head-size,14px) minmax(0,1fr) auto!important;
  }

  .tournament-player .mc-player-head,
  .tournament-player-avatar>.mc-player-head{
    width:var(--player-head-size,14px)!important;
    height:var(--player-head-size,14px)!important;
    min-width:var(--player-head-size,14px)!important;
    min-height:var(--player-head-size,14px)!important;
    max-width:var(--player-head-size,14px)!important;
    max-height:var(--player-head-size,14px)!important;
  }

  .tournament-player-name,
  .tournament-player-score{
    font-size:var(--player-font-size,6px)!important;
  }
}

.tournament-player-fly{
  animation:tournament-player-flight-on-lines 3.6s linear forwards!important;
}

@keyframes tournament-player-flight-on-lines{
  0%{
    transform:translate3d(0,0,0) scale(1);
    opacity:1;
    animation-timing-function:cubic-bezier(.32,0,.67,0);
  }
  12%{
    transform:translate3d(var(--fly-a-x),var(--fly-a-y),0) scale(1.012);
    opacity:1;
    animation-timing-function:cubic-bezier(.33,1,.68,1);
  }
  34%{
    transform:translate3d(var(--fly-b-x),var(--fly-b-y),0) scale(1.012);
    opacity:1;
    animation-timing-function:cubic-bezier(.33,0,.67,1);
  }
  66%{
    transform:translate3d(var(--fly-c-x),var(--fly-c-y),0) scale(1.012);
    opacity:1;
    animation-timing-function:cubic-bezier(.33,1,.68,1);
  }
  86%{
    transform:translate3d(var(--fly-d-x),var(--fly-d-y),0) scale(1.008);
    opacity:1;
    animation-timing-function:cubic-bezier(.32,0,.67,0);
  }
  100%{
    transform:translate3d(var(--fly-e-x),var(--fly-e-y),0) scale(var(--fly-sx),var(--fly-sy));
    opacity:1;
  }
}

/* v4.8.0 — classement final + archives */
.tournament-tabs{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
}
.tournament-tab-main{
  min-width:0;
  display:flex;
  align-items:center;
  gap:10px;
}
.tournament-history-picker{
  display:flex;
  align-items:center;
  gap:8px;
  margin-left:auto;
}
.tournament-history-picker>span{
  color:#77839b;
  font:850 .55rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  text-transform:uppercase;
  letter-spacing:.07em;
  white-space:nowrap;
}
.tournament-history-picker select{
  max-width:min(420px,42vw);
  height:34px;
  padding:0 30px 0 10px;
  border:1px solid #2b3449;
  border-radius:7px;
  background:#090d16;
  color:#dce1ec;
  font:800 .62rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  outline:none;
}
.tournament-history-picker select:focus{
  border-color:#7652a8;
  box-shadow:0 0 0 3px rgba(133,82,190,.08);
}
.tournament-page.is-archive .tournament-status{
  border-color:#57436e!important;
  color:#c3a1e1!important;
  background:#15101d!important;
}
.tournament-results-panel{
  margin-top:20px;
  padding:20px;
  border:1px solid #2b3348;
  border-radius:12px;
  background:
    radial-gradient(circle at 50% 14%,rgba(236,190,55,.08),transparent 24%),
    linear-gradient(180deg,#0d121d,#090d16);
  opacity:0;
  transform:translateY(12px);
}
.tournament-results-panel[hidden]{display:none!important}
.tournament-results-panel.is-revealed{
  animation:tournament-results-reveal .8s cubic-bezier(.22,1,.36,1) forwards;
}
.tournament-results-head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  text-align:center;
  margin-bottom:14px;
}
.tournament-results-head>div{
  flex:1;
}
.tournament-results-head h2{
  margin:4px 0 6px;
  font:950 clamp(1.45rem,2.6vw,2.3rem)/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  color:#f3c94c;
  letter-spacing:-.045em;
  text-shadow:0 0 18px rgba(243,201,76,.16);
}
.tournament-results-head p:last-child{
  margin:0;
  color:#77839a;
  font-size:.7rem;
}
.tournament-results-badge{
  align-self:center;
  padding:6px 8px;
  border:1px solid #4b4022;
  border-radius:6px;
  color:#e8c76b;
  background:#121009;
  font:900 .5rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.08em;
}
.tournament-results-podium{
  min-height:350px;
  display:grid;
  grid-template-columns:180px 210px 180px;
  justify-content:center;
  align-items:end;
  gap:24px;
  padding:14px 0 4px;
}
.tournament-podium-card{
  position:relative;
  min-height:284px;
  display:grid;
  grid-template-rows:auto 1fr auto auto;
  justify-items:center;
  overflow:hidden;
  border:1px solid #2b3242;
  border-radius:9px;
  background:linear-gradient(180deg,#07090f 0%,#080a10 62%,#242831 100%);
  color:#eef1f8;
  text-align:center;
  box-shadow:0 10px 26px rgba(0,0,0,.3);
}
.tournament-podium-card.place-1{
  min-height:324px;
  transform:translateY(-10px);
  border-color:#5a4817;
  background:linear-gradient(180deg,#07090f 0%,#080a10 58%,#4a3c07 100%);
  box-shadow:0 0 28px rgba(244,194,33,.1),0 12px 30px rgba(0,0,0,.34);
}
.tournament-podium-card.place-2{
  background:linear-gradient(180deg,#07090f 0%,#080a10 62%,#252832 100%);
}
.tournament-podium-card.place-3{
  background:linear-gradient(180deg,#07090f 0%,#080a10 62%,#3b1f13 100%);
}
.tournament-podium-name{
  width:100%;
  padding:13px 8px 4px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font:950 .76rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
.place-1 .tournament-podium-name{
  color:#ffd135;
  text-shadow:0 0 10px rgba(255,209,53,.2);
}
.tournament-result-skin-wrap{
  position:relative;
  width:122px;
  height:168px;
  display:grid;
  place-items:end center;
  align-self:end;
}
.place-1 .tournament-result-skin-wrap{
  width:140px;
  height:196px;
}
.tournament-result-skin-wrap::after{
  content:"";
  position:absolute;
  left:14%;
  right:14%;
  bottom:6px;
  height:22px;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(0,0,0,.6),transparent 65%);
  filter:blur(2px);
}
.tournament-result-skin{
  position:relative;
  z-index:1;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  image-rendering:pixelated;
  filter:drop-shadow(0 11px 13px rgba(0,0,0,.45));
}
.tournament-result-skin-fallback{
  position:absolute;
  z-index:1;
  left:50%;
  bottom:42px;
  transform:translateX(-50%);
  display:none;
}
.tournament-result-skin-wrap.is-fallback .tournament-result-skin{display:none}
.tournament-result-skin-wrap.is-fallback .tournament-result-skin-fallback{display:block}
.tournament-podium-record{
  min-height:24px;
  display:grid;
  place-items:center;
  color:#8d98ad;
  font:800 .55rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
.tournament-podium-place{
  width:100%;
  min-height:66px;
  display:grid;
  place-items:center;
  font:1000 3rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  text-shadow:0 4px 0 rgba(0,0,0,.5);
}
.place-1 .tournament-podium-place{
  color:#ffd70e;
  background:linear-gradient(180deg,rgba(142,111,0,.22),rgba(64,51,0,.58));
}
.place-2 .tournament-podium-place{
  color:#c9cbd1;
  background:linear-gradient(180deg,rgba(104,108,119,.12),rgba(39,41,46,.62));
}
.place-3 .tournament-podium-place{
  color:#b96f36;
  background:linear-gradient(180deg,rgba(116,57,27,.18),rgba(59,29,17,.62));
}
.tournament-results-list-head,
.tournament-result-row{
  display:grid;
  grid-template-columns:54px minmax(0,1fr) 110px 190px;
  gap:12px;
  align-items:center;
}
.tournament-results-list-head{
  min-height:32px;
  margin-top:14px;
  padding:0 12px;
  color:#68758c;
  border-bottom:1px solid #222a3a;
  font:850 .52rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.tournament-results-list{
  display:grid;
  gap:6px;
  padding-top:7px;
}
.tournament-result-row{
  min-height:52px;
  padding:6px 12px;
  border:1px solid #252d40;
  border-radius:7px;
  background:#080c14;
  color:#e3e7f0;
}
.tournament-result-row:hover{
  border-color:#46577a;
  background:#0c111d;
}
.tournament-result-rank{
  color:#76a9ff;
  text-align:center;
  font:950 .9rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
.tournament-result-player{
  min-width:0;
  display:flex;
  align-items:center;
  gap:9px;
}
.tournament-result-player .tournament-result-head{
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  min-height:30px!important;
  max-width:30px!important;
  max-height:30px!important;
}
.tournament-result-player b{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.72rem;
}
.tournament-result-record{
  color:#b9c0cf;
  font:850 .62rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  text-align:center;
}
.tournament-result-label{
  color:#818da3;
  font-size:.62rem;
  text-align:right;
}
.tournament-results-empty{
  min-height:58px;
  display:grid;
  place-items:center;
  color:#6f7b91;
  border:1px dashed #262e3e;
  border-radius:7px;
}
.tournament-demo-mode .tournament-history-picker{
  display:none!important;
}
.tournament-broadcast-mode .tournament-results-panel{
  margin-top:0;
  border-left:0;
  border-right:0;
  border-bottom:0;
  border-radius:0;
}
@keyframes tournament-results-reveal{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:translateY(0)}
}
@media(max-width:800px){
  .tournament-tabs{
    align-items:stretch!important;
    flex-direction:column!important;
  }
  .tournament-tab-main{
    width:100%;
  }
  .tournament-history-picker{
    width:100%;
    justify-content:space-between;
  }
  .tournament-history-picker select{
    max-width:none;
    min-width:0;
    flex:1;
  }
  .tournament-results-panel{
    padding:10px 7px;
  }
  .tournament-results-head{
    gap:6px;
  }
  .tournament-results-badge{
    display:none;
  }
  .tournament-results-podium{
    min-height:245px;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:5px;
    padding-top:6px;
  }
  .tournament-podium-card{
    min-height:218px;
  }
  .tournament-podium-card.place-1{
    min-height:244px;
    transform:translateY(-5px);
  }
  .tournament-podium-name{
    padding:8px 3px 2px;
    font-size:.53rem;
  }
  .tournament-result-skin-wrap{
    width:72px;
    height:112px;
  }
  .place-1 .tournament-result-skin-wrap{
    width:82px;
    height:130px;
  }
  .tournament-podium-record{
    font-size:.42rem;
  }
  .tournament-podium-place{
    min-height:46px;
    font-size:1.8rem;
  }
  .tournament-results-list-head{
    display:none;
  }
  .tournament-result-row{
    grid-template-columns:34px minmax(0,1fr) auto;
    gap:7px;
    min-height:48px;
    padding:5px 7px;
  }
  .tournament-result-rank{
    font-size:.74rem;
  }
  .tournament-result-player .tournament-result-head{
    width:26px!important;
    height:26px!important;
    min-width:26px!important;
    min-height:26px!important;
    max-width:26px!important;
    max-height:26px!important;
  }
  .tournament-result-record{
    font-size:.52rem;
  }
  .tournament-result-label{
    grid-column:2/-1;
    text-align:left;
    font-size:.5rem;
  }
}

/* En mode stream, la fin du tournoi bascule automatiquement sur le classement final. */
.tournament-broadcast-mode .tournament-page.is-finished .tournament-bracket-panel{
  display:none!important;
}
.tournament-broadcast-mode .tournament-page.is-finished .tournament-results-panel{
  min-height:100vh;
  margin:0!important;
  display:grid!important;
  align-content:center;
  border:0!important;
  border-radius:0!important;
  background:
    radial-gradient(circle at 50% 24%,rgba(236,190,55,.10),transparent 26%),
    radial-gradient(circle at 50% 60%,rgba(113,64,177,.08),transparent 38%),
    #080b13;
}

/* v4.8.1 — pause résultat avant départ + perdant rouge */
.tournament-player.is-loser,
.tournament-player.is-result-loser{
  opacity:1!important;
  filter:none!important;
  color:#ffd7dc!important;
  background:
    linear-gradient(90deg,rgba(255,54,78,.34),rgba(116,14,30,.26) 58%,rgba(41,8,14,.18))!important;
  box-shadow:
    inset 3px 0 #ff4359,
    inset 0 0 0 1px rgba(255,72,93,.28),
    0 0 16px rgba(255,43,72,.16)!important;
}
.tournament-player.is-loser .tournament-player-name,
.tournament-player.is-loser .tournament-player-score,
.tournament-player.is-result-loser .tournament-player-name,
.tournament-player.is-result-loser .tournament-player-score{
  color:#ff9aa8!important;
  text-shadow:0 0 8px rgba(255,66,91,.22);
}
.tournament-match.is-just-finished .tournament-player.is-loser,
.tournament-match.is-holding-result .tournament-player.is-result-loser{
  animation:tournament-loser-red 1.15s cubic-bezier(.22,1,.36,1) both!important;
}
.tournament-match.is-holding-result .tournament-player.is-result-winner{
  animation:tournament-winner-hold 1.35s cubic-bezier(.22,1,.36,1) both!important;
}
.tournament-match.is-holding-result{
  box-shadow:
    0 0 0 1px rgba(181,117,255,.09),
    0 0 24px rgba(137,78,209,.10),
    0 8px 18px rgba(0,0,0,.18)!important;
}
@keyframes tournament-loser-red{
  0%{
    background:rgba(255,70,89,.04);
    box-shadow:inset 0 0 0 1px rgba(255,75,96,0),0 0 0 rgba(255,43,72,0);
    transform:scale(1);
  }
  38%{
    background:linear-gradient(90deg,rgba(255,54,78,.42),rgba(116,14,30,.31))!important;
    box-shadow:inset 3px 0 #ff4359,inset 0 0 0 1px rgba(255,83,103,.42),0 0 20px rgba(255,43,72,.24);
    transform:scale(1.015);
  }
  100%{
    background:linear-gradient(90deg,rgba(255,54,78,.34),rgba(116,14,30,.26))!important;
    box-shadow:inset 3px 0 #ff4359,inset 0 0 0 1px rgba(255,72,93,.28),0 0 16px rgba(255,43,72,.16);
    transform:scale(1);
  }
}
@keyframes tournament-winner-hold{
  0%{
    filter:brightness(1);
    box-shadow:inset 0 0 transparent;
  }
  45%{
    filter:brightness(1.28);
    box-shadow:inset 3px 0 #c989ff,0 0 16px rgba(179,101,255,.16);
  }
  100%{
    filter:brightness(1.12);
    box-shadow:inset 2px 0 #b979ef;
  }
}
