/* Optional choreography only; canonical components keep their own layout. */
@font-face {
    font-family: "Nextcaddy Clear";
    src: url("../login/assets/fonts/NextcaddyClear-Light.woff2") format("woff2");
    font-weight: 300;
    font-style: normal;
    /* Keep the first-paint metrics when the font is late during a handoff. */
    font-display: optional;
}

:root {
    --nxt-access-identity-family: "Nextcaddy Clear", var(--font-sans);
    --nxt-access-identity-weight: var(--weight-light, 300);
    --nxt-access-handoff-duration: var(--dur-quick, 250ms);
    --nxt-access-fade-duration: var(--dur-instant, 100ms);
    --nxt-access-root-exit-duration: var(--dur-snap, 70ms);
    --nxt-access-handoff-ease: var(--ease-smooth, cubic-bezier(0.32, 0.72, 0, 1));
    --nxt-access-brand-turn-duration: var(--dur-deliberate, 750ms);
    --nxt-access-brand-stagger: calc(var(--dur-instant, 100ms) / 2);
    --nxt-access-brand-width: calc(var(--space-5) * 5);
}

body[data-nxt-service-access] [data-access-menu] > header > h1,
.nxt-competition-page-identity-copy > h1.nxt-page-title {
    font-family: var(--nxt-access-identity-family);
    font-size: var(--text-3xl);
    font-weight: var(--nxt-access-identity-weight);
    line-height: var(--lh-tight);
    letter-spacing: var(--track-tight);
    font-synthesis: none;
}

body[data-nxt-service-access] [data-access-club],
.nxt-competition-page-identity-copy [data-header-club-name],
body[data-nxt-service-access] [data-access-user],
.nxt-competition-page-identity-copy [data-header-user-name] {
    display: inline-block;
    inline-size: fit-content;
    max-inline-size: 100%;
}

@view-transition { navigation: auto; }

/* Names exist only for one recognized navigation and are removed on finish. */
[data-nxt-access-anchor="club"] { view-transition-name: nxt-access-club; }
[data-nxt-access-anchor="user"] { view-transition-name: nxt-access-user; }
[data-nxt-access-anchor="brand"] { view-transition-name: nxt-access-brand; }
[data-nxt-access-anchor="surface"] { view-transition-name: nxt-access-surface; }
[data-nxt-access-list-morph] { view-transition-name: nxt-access-list-surface; }

/* La superficie azul viaja en su capa nombrada. Se retira del snapshot raíz
   para no pintar simultáneamente otra fila completa durante el relevo. */
:root[data-nxt-access-transition="services-list"] [data-competition-list-handoff] {
    background: transparent;
}

:root[data-nxt-access-transition]::view-transition-group(*) {
    animation-duration: var(--nxt-access-handoff-duration);
    animation-timing-function: var(--nxt-access-handoff-ease);
}

:root[data-nxt-access-transition]::view-transition-old(root) {
    animation: nxt-access-out var(--nxt-access-root-exit-duration) var(--ease-smooth) both;
    mix-blend-mode: normal;
}

:root[data-nxt-access-transition]::view-transition-new(root) {
    animation: nxt-access-in var(--dur-fast) var(--ease-enter) both;
    mix-blend-mode: normal;
}

:root[data-nxt-access-transition]::view-transition-old(nxt-access-surface) {
    animation: nxt-access-out var(--nxt-access-fade-duration) var(--ease-smooth) both;
    mix-blend-mode: normal;
}

:root[data-nxt-access-transition]::view-transition-new(nxt-access-surface) {
    /* Keep the destination tile and its content present from the first frame. */
    animation: none;
    opacity: 1;
    mix-blend-mode: normal;
}

:root[data-nxt-access-transition]::view-transition-old(nxt-access-club),
:root[data-nxt-access-transition]::view-transition-old(nxt-access-user),
:root[data-nxt-access-transition]::view-transition-old(nxt-access-brand) {
    animation: nxt-access-out var(--nxt-access-fade-duration) var(--ease-exit) both;
    mix-blend-mode: normal;
}

:root[data-nxt-access-transition]::view-transition-new(nxt-access-club),
:root[data-nxt-access-transition]::view-transition-new(nxt-access-user),
:root[data-nxt-access-transition]::view-transition-new(nxt-access-brand) {
    animation: nxt-access-in var(--dur-fast) var(--ease-enter) both;
    mix-blend-mode: normal;
}

:root[data-nxt-access-transition]::view-transition { pointer-events: none; }

/* Second-stage morph after data is positioned. The root swaps immediately;
   only the flat tournament surface carries the small geometric remainder. */
:root[data-nxt-access-list-settling]::view-transition-group(root),
:root[data-nxt-access-list-settling]::view-transition-old(root),
:root[data-nxt-access-list-settling]::view-transition-new(root) {
    animation: none;
    mix-blend-mode: normal;
}

:root[data-nxt-access-list-settling]::view-transition-old(root) { opacity: 0; }
:root[data-nxt-access-list-settling]::view-transition-new(root) { opacity: 1; }

:root[data-nxt-access-list-settling]::view-transition-group(nxt-access-list-surface) {
    animation-duration: var(--dur-fast);
    animation-timing-function: var(--ease-smooth);
}

:root[data-nxt-access-list-settling]::view-transition-image-pair(nxt-access-list-surface) {
    isolation: auto;
}

:root[data-nxt-access-list-settling]::view-transition-old(nxt-access-list-surface) {
    animation: nxt-access-list-surface-out var(--dur-fast) var(--ease-smooth) both;
    mix-blend-mode: normal;
}

:root[data-nxt-access-list-settling]::view-transition-new(nxt-access-list-surface) {
    animation: none;
    opacity: 0;
    mix-blend-mode: normal;
}

:root[data-nxt-access-list-settling]::view-transition { pointer-events: none; }

@keyframes nxt-access-in { from { opacity: 0; } }
@keyframes nxt-access-out { to { opacity: 0; } }
@keyframes nxt-access-list-surface-out { to { opacity: 0; } }

@media (max-width: 767px) {
    body[data-nxt-service-access] [data-access-menu] > header > h1,
    .nxt-competition-page-identity-copy > h1.nxt-page-title {
        font-size: var(--text-2xl);
    }
}

@media (prefers-reduced-motion: reduce) {
    @view-transition { navigation: none; }
    :root[data-nxt-access-transition]::view-transition-group(*) {
        animation-duration: 0s;
    }
    :root[data-nxt-access-list-settling]::view-transition-group(*) {
        animation-duration: 0s;
    }
}
