/* =====================================================================
   MASTER DANCE CUP — ecran de sală (proiecție)
   ---------------------------------------------------------------------
   Proiectat pentru 1920×1080 și mai mare, citit de la 15–20 m.
   Tipografia se scalează cu vw/vh, nu cu rem: aceeași pagină arată corect
   pe un TV de 55" și pe un videoproiector 4K.

   Nu afișează nicio notă. Culoarea de accent (--accent) se schimbă după
   categoria momentului, în aceeași paletă caldă.
   ===================================================================== */

/* Contrast mai mare pentru videoproiector: proiectoarele „spală” culorile,
   deci griurile și auriul sunt aici mai deschise decât pe site. */
.display-body {
    --text-300: #E4DDD0;
    --text-500: #BDB3A5;
    --text-700: #8F8577;
    --gold-400: #EDCF8F;
    --hairline-soft: rgba(245, 241, 232, .1);
    --accent: #E6C88A;

    height: 100svh;
    overflow: hidden;
    background: var(--ink-950);
    font-variant-numeric: tabular-nums;
    cursor: default;
}

.display-body.is-idle { cursor: none; }

.display-body .numeric { font-variant-numeric: tabular-nums; }

/* ---------------------------------------------------------------------
   Grila: antet / scena / masa juriului / subsol
   --------------------------------------------------------------------- */
.display-grid {
    position: relative;
    z-index: 1;
    height: 100svh;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr) auto auto;
    grid-template-areas: "head" "stage" "jury" "foot";
    gap: clamp(.8rem, 1.4vw, 1.8rem);
    padding: clamp(1rem, 2vw, 2.4rem);
    /* Protectie la „burn-in”: continutul se deplaseaza imperceptibil. */
    animation: burn-drift 600s ease-in-out infinite alternate;
}

@keyframes burn-drift {
    0%   { transform: translate(0, 0); }
    25%  { transform: translate(3px, -2px); }
    50%  { transform: translate(-2px, 3px); }
    75%  { transform: translate(2px, 2px); }
    100% { transform: translate(-3px, -1px); }
}

/* ---------------------------------------------------------------------
   Antet
   --------------------------------------------------------------------- */
.display-head {
    grid-area: head;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding-bottom: clamp(.6rem, 1vw, 1.1rem);
    border-bottom: 1px solid var(--hairline-soft);
}

.display-brand { display: flex; align-items: center; gap: 1rem; }

.display-brand .brand-mark {
    width: clamp(44px, 3.2vw, 62px);
    height: clamp(44px, 3.2vw, 62px);
}

.display-brand__name {
    margin: 0;
    font-family: var(--font-accent);
    font-size: clamp(.9rem, 1.15vw, 1.35rem);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--text-100);
}

.display-brand__edition {
    margin: .15rem 0 0;
    font-size: clamp(.7rem, .8vw, .95rem);
    color: var(--text-500);
    letter-spacing: .12em;
}

.display-head__right { display: flex; align-items: center; gap: 1.25rem; }

.display-clock {
    font-size: clamp(1.1rem, 1.6vw, 1.9rem);
    font-weight: 700;
    color: var(--text-300);
}

/* Pulsul „Live”: o respiratie lenta, nu clipire. */
.display-live-chip::before { display: none; }

.display-live-dot {
    display: inline-block;
    width: .55em;
    height: .55em;
    margin-right: .5em;
    border-radius: 50%;
    background: #E0594C;
    animation: breathe 3.2s ease-in-out infinite;
}

@keyframes breathe {
    0%, 100% { opacity: .45; box-shadow: 0 0 0 0 rgba(224, 89, 76, .0); transform: scale(.9); }
    50%      { opacity: 1;   box-shadow: 0 0 0 .35em rgba(224, 89, 76, .18); transform: scale(1.05); }
}

/* ---------------------------------------------------------------------
   Scena: poza categoriei, reflector, numar, nume
   --------------------------------------------------------------------- */
.display-stage {
    --stage-photo: url("../img/photos/hero-stage.webp");
    grid-area: stage;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    min-height: 0;
    padding: clamp(1.1rem, min(2.6vw, 4vh), 3.2rem) clamp(1.6rem, 3.4vw, 4rem);
    gap: clamp(.6rem, 1.6vh, 1.6rem);
    border-radius: var(--radius-lg);
    border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
    background:
        linear-gradient(90deg, rgba(8, 7, 6, .96) 30%, rgba(8, 7, 6, .72) 62%, rgba(8, 7, 6, .42)),
        linear-gradient(0deg, rgba(8, 7, 6, .85), transparent 45%),
        var(--stage-photo) right center / cover no-repeat,
        var(--ink-700);
    overflow: hidden;
    isolation: isolate;
    transition: border-color .8s ease;
}

/* Reflector: un fascicul auriu care trece lent peste nume. */
.display-stage__spot {
    position: absolute;
    inset: -30% -10%;
    z-index: -1;
    background: radial-gradient(28% 60% at 50% 50%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 70%);
    mix-blend-mode: screen;
    animation: spot-sweep 16s ease-in-out infinite alternate;
    pointer-events: none;
}

@keyframes spot-sweep {
    0%   { transform: translateX(-38%) rotate(-8deg); opacity: .55; }
    50%  { opacity: 1; }
    100% { transform: translateX(22%) rotate(6deg); opacity: .6; }
}

.display-stage__content { position: relative; max-width: 78%; margin-top: auto; }

.display-stage__number {
    display: flex;
    align-items: baseline;
    gap: clamp(.6rem, 1vw, 1.1rem);
    margin: 0 0 clamp(.3rem, .8vw, 1rem);
    color: var(--accent);
    transition: color .8s ease;
}

.display-stage__number-label {
    font-family: var(--font-accent);
    font-size: clamp(1.1rem, 2vw, 2.4rem);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    opacity: .85;
}

.display-stage__number-value {
    display: inline-flex;
    font-family: var(--font-display);
    font-size: clamp(2.6rem, min(10vw, 13vh), 14rem);
    font-weight: 500;
    line-height: .9;
    letter-spacing: -.03em;
}

/* Cifrele numarului se rotesc ca la un tablou de aeroport. */
.flip-digit {
    display: inline-block;
    min-width: .58em;
    text-align: center;
}

.flip-digit.is-spinning { animation: flip-spin .09s linear infinite; }
.flip-digit.is-landed   { animation: flip-land .45s cubic-bezier(.2, 1.4, .4, 1); }

@keyframes flip-spin {
    0%   { transform: translateY(-12%) scaleY(.82); opacity: .6; }
    100% { transform: translateY(12%) scaleY(.82); opacity: .6; }
}

@keyframes flip-land {
    0%   { transform: translateY(-18%); }
    100% { transform: none; }
}

.display-stage__name {
    font-family: var(--font-display);
    font-size: clamp(2rem, min(6.4vw, 9.5vh), 8.6rem);
    font-weight: 500;
    line-height: .98;
    letter-spacing: -.025em;
    color: var(--text-100);
    margin: 0;
    overflow-wrap: anywhere;
    text-wrap: balance;
    text-shadow: 0 4px 40px rgba(0, 0, 0, .5);
}

.display-idle { text-align: center; margin: auto; }
.display-idle__title { font-size: clamp(2.4rem, 5vw, 6.4rem); }

.display-stage.is-changing .display-stage__content { animation: stage-in .8s var(--ease-out); }

@keyframes stage-in {
    from { opacity: 0; transform: translateY(24px); filter: blur(6px); }
    to   { opacity: 1; transform: none; filter: none; }
}

/* Progresul categoriei: „Momentul 4 din 11” + segmente */
.display-progress {
    display: flex;
    align-items: center;
    gap: clamp(.8rem, 1.4vw, 1.6rem);
    margin-top: clamp(.6rem, 1.8vh, 2rem);
}

.display-progress__label {
    flex: none;
    font-size: clamp(.8rem, 1.1vw, 1.3rem);
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--text-500);
}

.display-progress__segments {
    display: flex;
    gap: clamp(3px, .3vw, 6px);
    flex: 1;
    max-width: min(620px, 40vw);
}

.display-progress__segments i {
    flex: 1;
    height: clamp(5px, .45vw, 8px);
    border-radius: 99px;
    background: rgba(245, 241, 232, .14);
    transition: background .6s ease;
}

.display-progress__segments i.is-done    { background: color-mix(in srgb, var(--accent) 55%, transparent); }
.display-progress__segments i.is-current { background: var(--accent); box-shadow: 0 0 12px var(--accent); }

/* Eticheta „Pe scena acum” — controlata din admin */
.display-onstage {
    position: absolute;
    top: clamp(1rem, 2vw, 2.2rem);
    right: clamp(1rem, 2vw, 2.2rem);
    display: inline-flex;
    align-items: center;
    gap: .6em;
    padding: .5em 1.1em;
    border-radius: 99px;
    font-size: clamp(.9rem, 1.5vw, 1.8rem);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #fff;
    background: #C73D31;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .15), 0 10px 40px rgba(199, 61, 49, .55);
    opacity: 0;
    transform: translateY(-10px) scale(.94);
    transition: opacity .45s ease, transform .45s var(--ease-out);
    pointer-events: none;
    z-index: 2;
}

.display-onstage.is-on { opacity: 1; transform: none; }

.display-onstage__dot {
    width: .6em;
    height: .6em;
    border-radius: 50%;
    background: #fff;
    animation: breathe 1.6s ease-in-out infinite;
}

/* Subsolul scenei: contorul de voturi + „Urmeaza” */
.display-stage__foot {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    margin-top: auto;
}

.display-vote { display: flex; flex-direction: column; gap: .2rem; }
.display-vote.is-hidden { visibility: hidden; }

.display-vote__label,
.display-next__label {
    font-family: var(--font-accent);
    font-size: clamp(.66rem, .85vw, 1rem);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--text-500);
}

.display-vote__count {
    font-size: clamp(1.4rem, min(3vw, 5.4vh), 3.6rem);
    font-weight: 700;
    line-height: 1;
    color: var(--text-100);
}

.display-vote__sep { color: var(--text-500); margin-inline: .12em; }

.display-next {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .25rem;
    max-width: 42%;
    text-align: right;
    padding: .7rem 1.1rem;
    border-radius: var(--radius);
    border: 1px solid var(--hairline-soft);
    background: rgba(8, 7, 6, .55);
    backdrop-filter: blur(6px);
}

.display-next.is-hidden { display: none; }

.display-next__name {
    font-family: var(--font-display);
    font-size: clamp(1rem, 1.7vw, 2rem);
    color: var(--text-300);
    line-height: 1.1;
}

.display-next__name .numeric { color: var(--accent); margin-right: .35em; font-family: var(--font-sans); font-weight: 600; font-size: .8em; }

/* ---------------------------------------------------------------------
   Masa juriului
   --------------------------------------------------------------------- */
.display-jury {
    grid-area: jury;
    position: relative;
    padding: clamp(.7rem, 2vh, 1.8rem) clamp(1rem, 2vw, 2.4rem);
    border-radius: var(--radius-lg);
    border: 1px solid var(--hairline-soft);
    background:
        linear-gradient(180deg, rgba(201, 160, 82, .07), transparent 70%),
        var(--ink-800);
}

.display-tiles {
    --tile-photo: clamp(50px, min(6vw, 10vh), 150px);
    --tile-name: clamp(.8rem, min(1.2vw, 2vh), 1.5rem);
    --tile-seat: clamp(.55rem, .7vw, .85rem);
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: flex-start;
    gap: clamp(1rem, 3vw, 4rem);
}

.display-tiles .judge-tile { flex: 0 1 auto; min-width: 0; max-width: 18vw; }

/* 3–5 jurati: carduri verticale, stil afis de spectacol */
.display-jury.is-poster .display-tiles {
    --tile-photo: clamp(56px, min(7vw, 11vh), 170px);
    gap: clamp(.8rem, 1.6vw, 2rem);
}

.display-jury.is-poster .judge-tile {
    flex: 1 1 0;
    max-width: 22vw;
    padding: clamp(.6rem, 1.8vh, 1.6rem) .8rem clamp(.5rem, 1.5vh, 1.3rem);
    border-radius: var(--radius);
    border: 1px solid var(--hairline-soft);
    background: linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .01));
    transition: border-color .6s ease, background .6s ease, opacity .4s ease;
}

.display-jury.is-poster .judge-tile.has-voted {
    border-color: rgba(127, 203, 156, .4);
    background: linear-gradient(180deg, rgba(127, 203, 156, .1), rgba(127, 203, 156, .02));
}

/* Toti au votat: un puls colectiv + „Juriul a votat” */
.display-jury__done {
    position: absolute;
    left: 50%;
    top: 0;
    transform: translate(-50%, -50%) scale(.9);
    padding: .45em 1.3em;
    border-radius: 99px;
    font-size: clamp(.8rem, 1.2vw, 1.4rem);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #0b1a11;
    background: var(--vote-ok, #7FCB9C);
    box-shadow: 0 0 40px rgba(127, 203, 156, .6);
    opacity: 0;
    transition: opacity .4s ease, transform .5s var(--ease-out);
    pointer-events: none;
    z-index: 3;
}

.display-jury.all-voted .display-jury__done { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.display-jury.all-voted { border-color: rgba(127, 203, 156, .35); }
.display-jury.all-voted-pulse .judge-tile__photo { animation: jury-pulse 1.6s ease-out; }

@keyframes jury-pulse {
    0%   { transform: scale(1); }
    30%  { transform: scale(1.1); box-shadow: 0 0 0 3px #7FCB9C, 0 0 70px 20px rgba(127, 203, 156, .7); }
    100% { transform: scale(1); }
}

/* ---------------------------------------------------------------------
   Subsol
   --------------------------------------------------------------------- */
.display-foot {
    grid-area: foot;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding-top: clamp(.4rem, .8vw, .9rem);
    border-top: 1px solid var(--hairline-soft);
    font-size: clamp(.68rem, .85vw, .95rem);
    color: var(--text-500);
    letter-spacing: .08em;
}

/* ---------------------------------------------------------------------
   Straturi: particule, cortina, confetti, conexiune, filigran
   --------------------------------------------------------------------- */
.display-particles,
.display-confetti {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.display-particles { z-index: 0; opacity: .8; }
.display-confetti  { z-index: 60; }

.display-curtain {
    position: fixed;
    inset: 0;
    z-index: 40;
    pointer-events: none;
    display: grid;
    place-items: center;
}

.display-curtain__half {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 50.5%;
    background:
        repeating-linear-gradient(90deg, rgba(0, 0, 0, .28) 0 2.2vw, rgba(255, 255, 255, .03) 2.2vw 4.4vw),
        linear-gradient(180deg, #2A0F0D, #120605);
    box-shadow: inset 0 -40px 80px rgba(0, 0, 0, .6);
    transition: transform .85s cubic-bezier(.65, 0, .35, 1);
}

.display-curtain__half--l { left: 0;  transform: translateX(-101%); border-right: 2px solid rgba(201, 160, 82, .5); }
.display-curtain__half--r { right: 0; transform: translateX(101%);  border-left: 2px solid rgba(201, 160, 82, .5); }

.display-curtain.is-closed .display-curtain__half { transform: none; }

.display-curtain__name {
    position: relative;
    z-index: 2;
    font-family: var(--font-display);
    font-size: clamp(2rem, 5vw, 6rem);
    color: var(--gold-300);
    text-align: center;
    padding: 0 6vw;
    opacity: 0;
    transform: scale(.94);
    transition: opacity .35s ease, transform .5s var(--ease-out);
}

.display-curtain.is-closed .display-curtain__name { opacity: 1; transform: none; transition-delay: .5s; }

.display-offline {
    position: fixed;
    left: 50%;
    bottom: clamp(1rem, 2vw, 2rem);
    transform: translateX(-50%);
    z-index: 70;
    display: inline-flex;
    align-items: center;
    gap: .7em;
    padding: .6em 1.3em;
    border-radius: 99px;
    font-size: clamp(.85rem, 1.1vw, 1.25rem);
    font-weight: 600;
    color: #FBE3DF;
    background: rgba(90, 22, 17, .92);
    border: 1px solid rgba(224, 89, 76, .6);
    box-shadow: 0 10px 40px rgba(0, 0, 0, .5);
}

.display-offline[hidden] { display: none; }

.display-offline__dot {
    width: .6em;
    height: .6em;
    border-radius: 50%;
    background: #E0594C;
    animation: breathe 1.2s ease-in-out infinite;
}

.display-watermark {
    position: fixed;
    right: clamp(.8rem, 1.4vw, 1.6rem);
    bottom: clamp(.8rem, 1.4vw, 1.6rem);
    z-index: 65;
    width: clamp(34px, 2.6vw, 56px);
    height: auto;
    opacity: .38;
    pointer-events: none;
}

/* ---------------------------------------------------------------------
   Moduri pe tot ecranul (bun venit, juriu, pauza, premiere, multumire)
   --------------------------------------------------------------------- */
.display-overlay {
    position: fixed;
    inset: 0;
    z-index: 50;
    display: grid;
    place-items: center;
    padding: clamp(1.5rem, 4vw, 5rem) clamp(1.5rem, 4vw, 5rem) clamp(4rem, 9vh, 7rem);
    text-align: center;
    overflow: hidden;
    background:
        radial-gradient(70rem 40rem at 50% 10%, rgba(201, 160, 82, .16), transparent 65%),
        linear-gradient(rgba(8, 7, 6, .9), rgba(8, 7, 6, .96)),
        url("../img/photos/hero-stage.webp") center / cover no-repeat,
        var(--ink-950);
    animation: overlay-in .8s var(--ease-out);
}

.display-overlay[hidden] { display: none; }

@keyframes overlay-in { from { opacity: 0; } to { opacity: 1; } }

.display-overlay__inner {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 100%;
    width: 100%;
}

.display-overlay__logo {
    width: clamp(56px, min(7vw, 11vh), 130px);
    height: auto;
    margin-bottom: clamp(.5rem, 1.8vh, 2rem);
    filter: drop-shadow(0 8px 30px rgba(201, 160, 82, .45));
}

.display-overlay__eyebrow {
    margin: 0 0 clamp(.5rem, 1vw, 1.1rem);
    font-family: var(--font-accent);
    font-size: clamp(.9rem, 1.5vw, 1.8rem);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gold-400);
}

.display-overlay__title {
    margin: 0;
    font-family: var(--font-display);
    font-weight: 500;
    font-size: clamp(2rem, min(5vw, 8vh), 6.4rem);
    line-height: 1.02;
    color: var(--text-100);
    text-wrap: balance;
}

.display-overlay__note {
    margin: 0;
    font-size: clamp(1rem, 1.7vw, 2rem);
    color: var(--text-500);
}

/* Slideshow de fundal (pauza) */
.display-slides { position: absolute; inset: 0; z-index: 0; }

.display-slides img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    filter: saturate(.8) sepia(.12) brightness(.34);
    transform: scale(1.06);
    transition: opacity 1.6s ease, transform 9s linear;
}

.display-slides img.is-on { opacity: 1; transform: scale(1); }

.display-slides::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(60% 60% at 50% 45%, rgba(8, 7, 6, .35), rgba(8, 7, 6, .88));
}

/* Cronometrul pauzei: un cerc care se goleste */
.display-countdown {
    position: relative;
    width: clamp(200px, min(30vw, 42vh), 620px);
    aspect-ratio: 1;
    margin: clamp(.6rem, 2.4vh, 2.4rem) 0;
    display: grid;
    place-items: center;
    transition: transform .6s var(--ease-out);
}

.display-countdown svg { position: absolute; inset: 0; transform: rotate(-90deg); overflow: visible; }

.display-countdown__track { fill: none; stroke: rgba(201, 160, 82, .16); stroke-width: 3; }

.display-countdown__bar {
    fill: none;
    stroke: var(--gold-400);
    stroke-width: 3.4;
    stroke-linecap: round;
    stroke-dasharray: 100;
    filter: drop-shadow(0 0 8px rgba(224, 192, 126, .55));
    transition: stroke-dashoffset 1s linear, stroke .6s ease;
}

.display-countdown__value {
    font-size: clamp(3rem, min(8vw, 11vh), 11rem);
    font-weight: 600;
    line-height: 1;
    color: var(--gold-300);
    transition: font-size .6s var(--ease-out), color .6s ease, text-shadow .6s ease;
}

/* Ultimul minut: cifrele cresc si devin mai luminoase */
.display-countdown.is-final-minute { transform: scale(1.08); }
.display-countdown.is-final-minute .display-countdown__value {
    color: #FFF3D6;
    text-shadow: 0 0 40px rgba(238, 219, 174, .7);
    animation: final-beat 1s ease-in-out infinite;
}
.display-countdown.is-final-minute .display-countdown__bar { stroke: #FFE3A6; }

@keyframes final-beat { 50% { transform: scale(1.04); } }

.display-countdown.is-zero .display-countdown__value { animation: countdown-pulse 1.6s ease-in-out infinite; }

@keyframes countdown-pulse { 50% { opacity: .55; } }

/* Sponsori care se rotesc in josul ecranului */
.display-sponsors {
    position: absolute;
    left: 0;
    right: 0;
    bottom: clamp(1rem, 2.4vw, 2.6rem);
    z-index: 2;
    overflow: hidden;
    mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}

.display-sponsors__track {
    display: inline-flex;
    align-items: center;
    gap: clamp(2.4rem, 5vw, 6rem);
    white-space: nowrap;
    padding-left: 100%;
    animation: sponsors-roll var(--roll, 40s) linear infinite;
}

.display-sponsors__item {
    font-family: var(--font-accent);
    font-size: clamp(.9rem, 1.4vw, 1.7rem);
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--text-500);
}

.display-sponsors__item img { height: clamp(28px, 3vw, 56px); width: auto; filter: grayscale(1) brightness(1.6); opacity: .8; }

@keyframes sponsors-roll { to { transform: translateX(-100%); } }

/* ---- Bun venit: programul zilei ---- */
.welcome-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(1.5rem, 4vw, 5rem);
    align-items: center;
    width: min(1500px, 92vw);
    text-align: left;
}

.welcome-grid .display-overlay__title { font-size: clamp(2.6rem, 5.6vw, 7rem); }

.welcome-meta { margin-top: clamp(.8rem, 1.4vw, 1.6rem); font-size: clamp(1rem, 1.6vw, 1.9rem); color: var(--text-300); }

.welcome-next {
    margin-top: clamp(1.2rem, 2.4vw, 2.8rem);
    padding: clamp(.8rem, 1.4vw, 1.5rem) clamp(1.1rem, 2vw, 2.2rem);
    border-radius: var(--radius);
    border: 1px solid rgba(201, 160, 82, .35);
    background: rgba(201, 160, 82, .07);
    display: inline-flex;
    flex-direction: column;
    gap: .3rem;
}

.welcome-next__label { font-size: clamp(.75rem, 1vw, 1.1rem); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-400); }
.welcome-next__time  { font-size: clamp(2.2rem, 4.6vw, 5.6rem); font-weight: 600; line-height: 1; color: var(--gold-300); }
.welcome-next__title { font-size: clamp(.95rem, 1.4vw, 1.6rem); color: var(--text-300); }

.welcome-program { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(.4rem, .8vw, .9rem); }

.welcome-program li {
    display: flex;
    gap: clamp(1rem, 1.6vw, 2rem);
    align-items: baseline;
    padding: clamp(.55rem, 1vw, 1.1rem) clamp(.8rem, 1.4vw, 1.5rem);
    border-radius: var(--radius-sm);
    border: 1px solid var(--hairline-soft);
    background: rgba(255, 255, 255, .03);
}

.welcome-program li.is-past { opacity: .45; }
.welcome-program__time  { flex: none; min-width: 4.2ch; font-size: clamp(1rem, 1.6vw, 1.9rem); font-weight: 600; color: var(--gold-400); }
.welcome-program__title { font-family: var(--font-display); font-size: clamp(1.1rem, 1.9vw, 2.3rem); color: var(--text-100); }

/* ---- Prezentarea juriului: cate un jurat pe tot ecranul ---- */
.jury-show {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: clamp(2rem, 5vw, 6rem);
    width: min(1500px, 90vw);
    text-align: left;
    animation: jury-in 1s var(--ease-out);
}

@keyframes jury-in {
    from { opacity: 0; transform: translateX(40px); }
    to   { opacity: 1; transform: none; }
}

.jury-show__photo {
    position: relative;
    width: clamp(220px, min(30vw, 56vh), 560px);
    aspect-ratio: 1;
    border-radius: 50%;
    overflow: hidden;
    box-shadow: 0 0 0 4px rgba(201, 160, 82, .55), 0 0 0 14px rgba(201, 160, 82, .1), 0 30px 90px rgba(0, 0, 0, .6);
    background: radial-gradient(circle at 30% 25%, #2a2317, #15120d);
    display: grid;
    place-items: center;
}

.jury-show__photo img { width: 100%; height: 100%; object-fit: cover; }
.jury-show__photo span { font-family: var(--font-display); font-size: clamp(4rem, 9vw, 10rem); color: var(--gold-300); }

.jury-show__name { font-family: var(--font-display); font-size: clamp(2.6rem, 6vw, 7.6rem); line-height: 1; color: var(--text-100); margin: 0; }
.jury-show__title { margin: clamp(.6rem, 1.2vw, 1.4rem) 0 0; font-size: clamp(1rem, 1.7vw, 2.1rem); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--gold-400); }
.jury-show__country { margin: .4rem 0 0; font-size: clamp(.95rem, 1.4vw, 1.7rem); color: var(--text-500); }
.jury-show__bio { margin: clamp(1rem, 2vw, 2.2rem) 0 0; max-width: 46ch; font-size: clamp(1rem, 1.6vw, 1.9rem); line-height: 1.45; color: var(--text-300); }

.jury-show__dots { position: absolute; left: 0; right: 0; bottom: clamp(1.4rem, 3vw, 3rem); display: flex; justify-content: center; gap: .6rem; z-index: 2; }
.jury-show__dots i { width: .7rem; height: .7rem; border-radius: 50%; background: rgba(245, 241, 232, .2); transition: background .4s ease, transform .4s ease; }
.jury-show__dots i.is-on { background: var(--gold-400); transform: scale(1.3); }

/* ---- Premiere: podium + restul locurilor ---- */
.awards {
    width: min(1500px, 94vw);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.podium {
    display: grid;
    grid-template-columns: 1fr 1.18fr 1fr;
    align-items: end;
    gap: clamp(.8rem, 1.6vw, 2rem);
    width: 100%;
    margin-top: clamp(1.2rem, 2.4vw, 3rem);
}

.podium__slot { display: flex; flex-direction: column; align-items: center; min-width: 0; }

.podium__who {
    min-height: clamp(4.6rem, 9vh, 8rem);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    padding: 0 .5rem clamp(.6rem, 1.2vw, 1.2rem);
}

.podium__name {
    font-family: var(--font-display);
    font-size: clamp(1.3rem, 2.4vw, 3rem);
    line-height: 1.05;
    color: var(--text-100);
    text-wrap: balance;
}

.podium__slot--1 .podium__name { font-size: clamp(1.7rem, 3.2vw, 4rem); color: var(--gold-300); }

.podium__club { margin-top: .3em; font-size: clamp(.8rem, 1.1vw, 1.3rem); color: var(--text-500); }

.podium__mystery {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 5rem);
    color: rgba(245, 241, 232, .22);
    animation: mystery 2.4s ease-in-out infinite;
}

@keyframes mystery { 50% { color: rgba(245, 241, 232, .45); } }

.podium__step {
    width: 100%;
    display: grid;
    place-items: center;
    border-radius: 14px 14px 0 0;
    font-family: var(--font-display);
    font-size: clamp(2.4rem, 5vw, 6rem);
    font-weight: 600;
    border: 1px solid rgba(255, 255, 255, .12);
    border-bottom: 0;
}

.podium__slot--1 .podium__step { height: clamp(120px, 24vh, 300px); color: #2A1E08; background: linear-gradient(180deg, #F3DCA2, #C9A052 60%, #8F6A26); box-shadow: 0 0 80px rgba(224, 192, 126, .35); }
.podium__slot--2 .podium__step { height: clamp(90px, 17vh, 220px); color: #1D1B18; background: linear-gradient(180deg, #F1EEE7, #B9B4AA 60%, #7D786F); }
.podium__slot--3 .podium__step { height: clamp(66px, 12vh, 160px); color: #22160C; background: linear-gradient(180deg, #E8B98B, #B57A45 60%, #7C4E27); }

.podium__slot.is-revealed .podium__who { animation: reveal-up .9s var(--ease-out); }

@keyframes reveal-up {
    from { opacity: 0; transform: translateY(30px) scale(.96); filter: blur(4px); }
    to   { opacity: 1; transform: none; filter: none; }
}

.awards-list {
    list-style: none;
    margin: clamp(1rem, 2vw, 2.2rem) 0 0;
    padding: 0;
    width: 100%;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr));
    gap: clamp(.4rem, .8vw, .9rem);
    text-align: left;
}

.awards-list__row {
    display: flex;
    align-items: center;
    gap: clamp(.8rem, 1.4vw, 1.6rem);
    padding: clamp(.5rem, .9vw, 1rem) clamp(.9rem, 1.6vw, 1.8rem);
    border-radius: var(--radius-sm);
    border: 1px solid var(--hairline-soft);
    background: rgba(255, 255, 255, .035);
    animation: reveal-up .7s var(--ease-out) backwards;
}

.awards-list__row .rank-badge { flex: none; }
.awards-list__main { display: flex; flex-direction: column; min-width: 0; }
.awards-list__name { font-family: var(--font-display); font-size: clamp(1.1rem, 1.8vw, 2.2rem); line-height: 1.05; color: var(--text-100); }
.awards-list__club { margin-top: .2em; font-size: clamp(.8rem, 1vw, 1.2rem); color: var(--text-500); }

/* Castigatorul pe tot ecranul, cateva secunde */
.winner-flash {
    position: fixed;
    inset: 0;
    z-index: 55;
    display: grid;
    place-items: center;
    padding: 4vw;
    text-align: center;
    background: radial-gradient(60% 60% at 50% 45%, rgba(201, 160, 82, .3), rgba(8, 7, 6, .97) 70%);
    animation: winner-in 1s var(--ease-out);
}

.winner-flash.is-out { animation: winner-out .8s ease forwards; }

@keyframes winner-in  { from { opacity: 0; transform: scale(1.06); } to { opacity: 1; transform: none; } }
@keyframes winner-out { to { opacity: 0; } }

.winner-flash__label { font-size: clamp(1rem, 1.8vw, 2.2rem); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-400); }
.winner-flash__name  { margin: .2em 0 0; font-family: var(--font-display); font-size: clamp(3rem, 9vw, 12rem); line-height: .98; color: var(--gold-200); text-shadow: 0 0 60px rgba(224, 192, 126, .55); text-wrap: balance; }
.winner-flash__club  { margin-top: .6em; font-size: clamp(1rem, 2vw, 2.4rem); color: var(--text-300); }

/* ---- Multumire ---- */
.thanks__title { font-size: clamp(3rem, 8vw, 10rem); }
.thanks__next  { margin-top: clamp(1rem, 2vw, 2.4rem); font-size: clamp(1.1rem, 2vw, 2.4rem); color: var(--gold-300); }

/* ---------------------------------------------------------------------
   Ecrane înalte / portret (TV rotit, tabletă)
   --------------------------------------------------------------------- */
@media (max-aspect-ratio: 1/1), (max-width: 900px) {
    .display-stage__content { max-width: 100%; }
    .display-stage__name { font-size: clamp(2.4rem, 9vw, 7rem); }
    .display-stage__number-value { font-size: clamp(4rem, 16vw, 12rem); }
    .display-stage { background-position: center; }

    .display-stage__foot { flex-direction: column; align-items: stretch; gap: .8rem; }
    .display-next { max-width: 100%; align-items: flex-start; text-align: left; }

    .display-tiles { flex-wrap: wrap; --tile-photo: clamp(64px, 13vw, 190px); --tile-name: clamp(.9rem, 2.4vw, 1.6rem); }
    .display-jury.is-poster .display-tiles { --tile-photo: clamp(64px, 13vw, 190px); }
    .display-tiles .judge-tile { max-width: 28vw; }
    .display-jury.is-poster .judge-tile { max-width: 42vw; flex-basis: 40%; }

    .welcome-grid,
    .jury-show { grid-template-columns: minmax(0, 1fr); text-align: center; justify-items: center; }
    .jury-show__bio { margin-inline: auto; }

    .podium { grid-template-columns: 1fr; }
    .podium__slot--1 { order: -1; }
    .podium__step { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .display-grid,
    .display-stage__spot,
    .display-live-dot,
    .display-sponsors__track { animation: none; }
    .display-curtain__half { transition: none; }
}

.display-foot { padding-right: clamp(3rem, 4.4vw, 5.5rem); }

/* ---------------------------------------------------------------------
   Ecrane joase (ex: videoproiector 1280×720, 1366×768)
   --------------------------------------------------------------------- */
@media (max-height: 820px) and (min-aspect-ratio: 1/1) {
    .display-grid { gap: .7rem; padding: .9rem 1.4rem; }
    .display-head { padding-bottom: .5rem; }
    .display-brand .brand-mark { width: 40px; height: 40px; }

    .display-stage { padding: .9rem 1.8rem; gap: .5rem; }
    .display-stage__number { margin-bottom: 0; }
    .display-stage__number-label { font-size: 1rem; }
    .display-progress { margin-top: .4rem; }
    .display-progress__label { font-size: .75rem; }

    .display-next { padding: .45rem .8rem; }
    .display-next__name { font-size: 1rem; }
    .display-vote__label, .display-next__label { font-size: .62rem; }

    .display-jury { padding: .6rem 1.2rem; }
    .display-tiles { --tile-photo: clamp(46px, 8vh, 90px); --tile-name: .82rem; gap: 1.2rem; }
    .display-jury.is-poster .display-tiles { --tile-photo: clamp(46px, 8vh, 90px); gap: .8rem; }
    .display-jury.is-poster .judge-tile { padding: .5rem .5rem .45rem; }
    .judge-tile__seat { display: none; }
    .judge-tile { gap: .3rem; }
    .display-foot { padding-top: .3rem; font-size: .66rem; }
}
