
.tdf-celebrate-root {
  position: fixed; inset: 0; z-index: 99990;
  display: flex; align-items: center; justify-content: center;
  background: rgba(6,10,20,.86);
  font-family: 'Inter', sans-serif; color: #fff;
  opacity: 1; transition: opacity .5s ease;
}
.tdf-celebrate-root.out { opacity: 0; pointer-events: none; }

.tdf-celebrate-curtain { position: absolute; inset: 0; pointer-events: none; }
.tdf-celebrate-curtain::before,
.tdf-celebrate-curtain::after {
  content: ''; position: absolute; top: 0; bottom: 0; width: 50%;
  background: repeating-linear-gradient(90deg, #7a0d0d 0, #a31414 14px, #6e0b0b 28px);
  box-shadow: inset 0 0 60px rgba(0,0,0,.5);
  transition: transform 1s cubic-bezier(.7,0,.3,1);
}
.tdf-celebrate-curtain::before { left: 0; transform: translateX(-100%); }
.tdf-celebrate-curtain::after { right: 0; transform: translateX(100%); }
.tdf-celebrate-curtain.in::before { transform: translateX(0); }
.tdf-celebrate-curtain.in::after { transform: translateX(0); }
.tdf-celebrate-curtain.open::before { transform: translateX(-100%); }
.tdf-celebrate-curtain.open::after { transform: translateX(100%); }

.tdf-celebrate-stage {
  position: relative; z-index: 2; display: flex; flex-direction: column;
  align-items: center; gap: 1.2rem; max-width: 90vw; text-align: center;
}
.tdf-celebrate-title { font-size: clamp(1.8rem, 5vw, 3.4rem); font-weight: 900; letter-spacing: .5px;
  text-shadow: 0 4px 24px rgba(0,0,0,.5); }

.tdf-celebrate-jersey {
  display: flex; flex-direction: column; align-items: center; gap: .3rem;
  opacity: 0; transform: translateY(20px) scale(.9);
}
.tdf-celebrate-jersey.pop { animation: tdf-pop .6s cubic-bezier(.2,1.3,.4,1) forwards; }
@keyframes tdf-pop { to { opacity: 1; transform: translateY(0) scale(1); } }

.tdf-confetti-host { position: fixed; inset: 0; pointer-events: none; z-index: 100000; overflow: hidden; }
.tdf-confetti-piece { position: fixed; width: 10px; height: 14px; will-change: transform, opacity; animation: tdf-confetti-fall var(--tcf-dur, 2.4s) cubic-bezier(.2,.6,.3,1) forwards; }
@keyframes tdf-confetti-fall { 0% { opacity: 1; transform: translate(0,0) rotate(0); } 100% { opacity: 0; transform: translate(var(--tcf-x,0), 88vh) rotate(var(--tcf-r,540deg)); } }
@media (prefers-reduced-motion: reduce) { .tdf-confetti-piece { animation: none; opacity: 0; } }
.tdf-celebrate-jsvg { width: clamp(5rem, 12vw, 9rem); height: clamp(5.5rem, 13vw, 10rem); }
.tdf-celebrate-jname { font-weight: 700; font-size: 1.1rem; opacity: .85; }
.tdf-celebrate-winner { font-weight: 900; font-size: clamp(1.3rem, 3.5vw, 2.2rem); }

.tdf-celebrate-video { max-width: 80vw; max-height: 70vh; border-radius: 1rem;
  box-shadow: 0 20px 80px rgba(0,0,0,.6); }

.tdf-celebrate-podium { display:flex; flex-direction:column; align-items:center; gap:1rem; margin-top:1rem; }
.tdf-podium-row { display:flex; align-items:flex-end; gap:.6rem; }
.tdf-podium-step { display:flex; flex-direction:column; align-items:center; justify-content:flex-end; width:6rem;
  border-radius:.6rem .6rem 0 0; padding:.55rem .4rem .4rem; color:#111;
  font-family:'Saira Condensed','Oswald',sans-serif; box-shadow:0 -2px 14px rgba(0,0,0,.3); }
.tdf-podium-step.p1 { height:9rem; background:linear-gradient(180deg,#FEDD00,#E5C000); }
.tdf-podium-step.p2 { height:6.5rem; background:linear-gradient(180deg,#dde2ea,#aab2c2); }
.tdf-podium-step.p3 { height:5rem; background:linear-gradient(180deg,#e6ad7d,#c5854e); }
.tdf-podium-step.is-empty { opacity:.18; background:#888; }
.tdf-podium-who { font-weight:800; text-transform:uppercase; font-size:.82rem; text-align:center;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; }
.tdf-podium-val { font-weight:700; font-size:.92rem; font-variant-numeric:tabular-nums; }
.tdf-podium-rank { margin-top:auto; font-weight:800; font-style:italic; font-size:1.6rem; }
.tdf-lanterne { display:flex; align-items:center; gap:.45rem; font-size:.85rem; color:#fff; opacity:.85; }
.tdf-lanterne-dot { width:.7rem; height:.7rem; border-radius:50%; background:#E2231A; box-shadow:0 0 8px #E2231A; }
