/* Single-card login â†” register morph (PKR presentation). */

:root {
    --pkr-auth-morph-ms: 1000ms;
    --pkr-auth-morph-ease: linear;
    --pkr-auth-morph-ease-in: cubic-bezier(0.4, 0, 0.2, 1);
    --pkr-auth-morph-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --pkr-auth-morph-collapse: cubic-bezier(0.55, 0.05, 0.75, 0.35);
    --pkr-auth-morph-expand: cubic-bezier(0.16, 1, 0.3, 1);
    --pkr-auth-charcoal: #0f0e10;
    --pkr-auth-charcoal-soft: #141316;
    --pkr-auth-card-w: min(460px, calc(100vw - 32px));
    --pkr-auth-login-w: var(--pkr-auth-card-w);
    --pkr-auth-reg-w: var(--pkr-auth-card-w);
    --pkr-auth-forgot-w: var(--pkr-auth-card-w);
    --pkr-auth-login-h: 524px;
    --pkr-auth-reg-h: 737px;
    --pkr-auth-forgot-h: 700px;
    --pkr-fold-close-x: 8%;
    --pkr-fold-close-y: 8%;
    --pkr-fold-open-x: 8%;
    --pkr-fold-open-y: 6%;
    --pkr-auth-plate: polygon(12% 0%, 96.5% 0%, 100% 3.6%, 100% 88%, 88% 100%, 3.6% 100%, 0% 96.4%, 0% 12%);
}

.pkr-auth-stage-slot {
    align-items: center;
    display: flex;
    justify-content: center;
    min-height: min(560px, 78vh);
    position: relative;
    width: 100%;
}

.pkr-auth-card {
    box-sizing: border-box;
    direction: rtl;
    margin: 0 auto;
    position: relative;
    text-align: right;
    width: var(--pkr-auth-login-w);
    z-index: 2;
}

.pkr-auth-card__surface {
    box-sizing: border-box;
    clip-path: var(--pkr-auth-plate);
    height: auto;
    min-height: 0;
    overflow: hidden;
    position: relative;
    width: 100%;
}

.pkr-auth-card[data-auth-mode="login"]:not([data-auth-transition]) .pkr-auth-pane--login,
.pkr-auth-card[data-auth-mode="register"]:not([data-auth-transition]) .pkr-auth-pane--register,
.pkr-auth-card[data-auth-mode="forgot"]:not([data-auth-transition]) .pkr-auth-pane--forgot {
    height: auto;
    inset: auto;
    position: relative;
}

.pkr-auth-card[data-auth-mode="register"]:not([data-auth-transition]) {
    width: var(--pkr-auth-reg-w);
}

.pkr-auth-card[data-auth-mode="forgot"]:not([data-auth-transition]) {
    width: var(--pkr-auth-forgot-w);
}

.pkr-auth-corner {
    color: rgba(233, 190, 120, 0.35);
    font-family: "Lato", "Segoe UI Symbol", serif;
    font-size: 11px;
    line-height: 1;
    pointer-events: none;
    position: absolute;
    z-index: 4;
}

.pkr-auth-corner--tl {
    left: 10px;
    top: 10px;
}

.pkr-auth-corner--br {
    bottom: 10px;
    right: 10px;
}

.pkr-auth-morph-mark {
    color: rgba(232, 192, 120, 0.92);
    filter: drop-shadow(0 0 8px rgba(233, 190, 120, 0.35));
    font-family: "Lato", "Segoe UI Symbol", serif;
    font-size: 22px;
    left: 50%;
    line-height: 1;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 8;
}

.pkr-auth-fold-set {
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 6;
}

.pkr-auth-fold,
.pkr-auth-morph-tile {
    background:
        radial-gradient(120% 80% at 100% 0%, rgba(168, 69, 223, 0.14) 0%, transparent 58%),
        linear-gradient(158deg, rgba(28, 24, 32, 0.98) 0%, rgba(10, 9, 13, 0.99) 100%);
    opacity: 0;
    pointer-events: none;
    position: absolute;
    visibility: hidden;
}

.pkr-auth-fold {
    inset: 0;
}

.pkr-auth-fold--a {
    z-index: 2;
}

.pkr-auth-fold--b {
    background: linear-gradient(145deg, rgba(233, 190, 120, 0.95), rgba(168, 110, 210, 0.7));
    transform: scale(1.012);
    transform-origin: 50% 50%;
    z-index: 1;
}

.pkr-auth-morph-tile {
    border: 1px solid rgba(233, 190, 120, 0.62);
    border-radius: 10px;
    box-shadow:
        0 14px 24px rgba(0, 0, 0, 0.45),
        0 0 14px rgba(120, 72, 168, 0.2);
    height: 48px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
    width: 48px;
    z-index: 7;
}

.pkr-auth-pane {
    z-index: 2;
}

.pkr-auth-card[data-auth-mode="login"]:not([data-auth-transition]) .pkr-auth-pane--register {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
}

.pkr-auth-card[data-auth-mode="register"]:not([data-auth-transition]) .pkr-auth-pane--login {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
}

.pkr-auth-card[data-auth-mode="login"]:not([data-auth-transition]) .pkr-auth-pane--forgot,
.pkr-auth-card[data-auth-mode="register"]:not([data-auth-transition]) .pkr-auth-pane--forgot {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
}

.pkr-auth-card[data-auth-mode="forgot"]:not([data-auth-transition]) .pkr-auth-pane--login,
.pkr-auth-card[data-auth-mode="forgot"]:not([data-auth-transition]) .pkr-auth-pane--register {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
}

.pkr-auth-card[data-auth-mode="forgot"]:not([data-auth-transition]) .pkr-auth-pane--forgot {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
}

.pkr-auth-switch-row {
    margin-top: 14px !important;
    text-align: center;
}

.pkr-auth-switch-row a {
    color: var(--gold-bright) !important;
    cursor: pointer;
    font-size: 13px !important;
}

.pkr-auth-form-note:empty {
    display: none;
}

.pkr-auth-card.is-auth-loading .pkr-auth-pane--login .loginform {
    opacity: 0.35;
    pointer-events: none;
}

.pkr-auth-subtitle {
    color: var(--gold-bright);
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 8px;
    text-align: center;
}

.pkr-auth-register .loader.pkr-auth-register-loader {
    display: none;
    margin: 12px auto 0;
    position: relative;
    text-align: center;
}

.pkr-auth-register .loader.pkr-auth-register-loader img {
    margin: 0 auto;
    width: 48px;
}

.pkr-auth-card.is-auth-animating {
    pointer-events: none;
}

.pkr-auth-card.is-auth-animating [data-auth-switch] {
    pointer-events: none;
}

/* One close â†’ center tile â†’ open engine for every auth state. */
.pkr-auth-card[data-auth-transition] .pkr-auth-card__surface {
    animation: pkr-surface-handoff var(--pkr-auth-morph-ms) linear forwards;
}

.pkr-auth-card[data-auth-transition] .pkr-auth-fold--a,
.pkr-auth-card[data-auth-transition] .pkr-auth-fold--b {
    animation: pkr-fold-shape var(--pkr-auth-morph-ms) linear forwards;
    visibility: visible;
}

.pkr-auth-card[data-auth-transition] .pkr-auth-morph-tile {
    animation: pkr-tile-hold var(--pkr-auth-morph-ms) linear forwards;
    visibility: visible;
}

/* â”€â”€ Morph: login â†’ register â”€â”€ */
.pkr-auth-card[data-auth-transition="to-register"] .pkr-auth-pane--login {
    animation: pkr-content-exit var(--pkr-auth-morph-ms) linear forwards;
}

.pkr-auth-card[data-auth-transition="to-register"] .pkr-auth-pane--register {
    animation: pkr-content-enter var(--pkr-auth-morph-ms) linear forwards;
    pointer-events: none;
    visibility: visible;
}

.pkr-auth-card[data-auth-transition="to-register"] .pkr-auth-morph-mark {
    animation: pkr-mark-pulse var(--pkr-auth-morph-ms) var(--pkr-auth-morph-ease) forwards;
}

.pkr-auth-card[data-auth-transition="to-register"] .pkr-auth-corner {
    animation: pkr-corner-follow var(--pkr-auth-morph-ms) var(--pkr-auth-morph-ease) forwards;
}

/* â”€â”€ Morph: register â†’ login â”€â”€ */
.pkr-auth-card[data-auth-transition="to-login"] .pkr-auth-pane--register {
    animation: pkr-content-exit var(--pkr-auth-morph-ms) linear forwards;
    visibility: visible;
}

.pkr-auth-card[data-auth-transition="to-login"] .pkr-auth-pane--login {
    animation: pkr-content-enter var(--pkr-auth-morph-ms) linear forwards;
    pointer-events: none;
    visibility: visible;
}

.pkr-auth-card[data-auth-transition="to-login"] .pkr-auth-morph-mark {
    animation: pkr-mark-pulse var(--pkr-auth-morph-ms) var(--pkr-auth-morph-ease) forwards;
}

.pkr-auth-card[data-auth-transition="to-login"] .pkr-auth-corner {
    animation: pkr-corner-follow var(--pkr-auth-morph-ms) var(--pkr-auth-morph-ease) forwards;
}

/* â”€â”€ Morph: login â†’ forgot â”€â”€ */
.pkr-auth-card[data-auth-transition="to-forgot"] .pkr-auth-pane--login {
    animation: pkr-content-exit var(--pkr-auth-morph-ms) linear forwards;
}

.pkr-auth-card[data-auth-transition="to-forgot"] .pkr-auth-pane--forgot {
    animation: pkr-content-enter var(--pkr-auth-morph-ms) linear forwards;
    pointer-events: none;
    visibility: visible;
}

.pkr-auth-card[data-auth-transition="to-forgot"] .pkr-auth-morph-mark {
    animation: pkr-mark-pulse var(--pkr-auth-morph-ms) var(--pkr-auth-morph-ease) forwards;
}

.pkr-auth-card[data-auth-transition="to-forgot"] .pkr-auth-corner {
    animation: pkr-corner-follow var(--pkr-auth-morph-ms) var(--pkr-auth-morph-ease) forwards;
}

/* â”€â”€ Morph: forgot â†’ login â”€â”€ */
.pkr-auth-card[data-auth-transition="forgot-to-login"] .pkr-auth-pane--forgot {
    animation: pkr-content-exit var(--pkr-auth-morph-ms) linear forwards;
    visibility: visible;
}

.pkr-auth-card[data-auth-transition="forgot-to-login"] .pkr-auth-pane--login {
    animation: pkr-content-enter var(--pkr-auth-morph-ms) linear forwards;
    pointer-events: none;
    visibility: visible;
}

.pkr-auth-card[data-auth-transition="forgot-to-login"] .pkr-auth-morph-mark {
    animation: pkr-mark-pulse var(--pkr-auth-morph-ms) var(--pkr-auth-morph-ease) forwards;
}

.pkr-auth-card[data-auth-transition="forgot-to-login"] .pkr-auth-corner {
    animation: pkr-corner-follow var(--pkr-auth-morph-ms) var(--pkr-auth-morph-ease) forwards;
}


@keyframes pkr-content-exit {
    0% {
        animation-timing-function: var(--pkr-auth-morph-ease-in);
        opacity: 1;
        transform: none;
    }
    12% {
        opacity: 0;
        transform: none;
    }
    100% {
        opacity: 0;
        transform: none;
    }
}

@keyframes pkr-content-enter {
    0%,
    88% {
        animation-timing-function: var(--pkr-auth-morph-ease-out);
        opacity: 0;
        transform: translate3d(0, 4px, 0);
    }
    100% {
        opacity: 1;
        pointer-events: auto;
        transform: none;
    }
}

@keyframes pkr-surface-handoff {
    0%,
    12% {
        min-height: var(--pkr-auth-from-h);
        opacity: 1;
    }
    16%,
    48% {
        min-height: var(--pkr-auth-from-h);
        opacity: 0;
    }
    49% {
        animation-timing-function: step-end;
        min-height: var(--pkr-auth-from-h);
        opacity: 0;
    }
    50%,
    83% {
        min-height: var(--pkr-auth-to-h);
        opacity: 0;
    }
    87%,
    100% {
        min-height: var(--pkr-auth-to-h);
        opacity: 1;
    }
}

@keyframes pkr-fold-shape {
    0%,
    12% {
        clip-path: var(--pkr-auth-plate);
        opacity: 0;
    }
    15% {
        animation-timing-function: var(--pkr-auth-morph-collapse);
        clip-path: var(--pkr-auth-plate);
        opacity: 1;
    }
    32% {
        animation-timing-function: var(--pkr-auth-morph-collapse);
        clip-path: polygon(50% 14%, 50% 14%, 86% 50%, 86% 50%, 50% 86%, 50% 86%, 14% 50%, 14% 50%);
        opacity: 1;
    }
    44% {
        clip-path: polygon(
            50% calc(50% - var(--pkr-fold-close-y)),
            50% calc(50% - var(--pkr-fold-close-y)),
            calc(50% + var(--pkr-fold-close-x)) 50%,
            calc(50% + var(--pkr-fold-close-x)) 50%,
            50% calc(50% + var(--pkr-fold-close-y)),
            50% calc(50% + var(--pkr-fold-close-y)),
            calc(50% - var(--pkr-fold-close-x)) 50%,
            calc(50% - var(--pkr-fold-close-x)) 50%
        );
        opacity: 1;
    }
    49%,
    54% {
        clip-path: polygon(
            50% calc(50% - var(--pkr-fold-open-y)),
            50% calc(50% - var(--pkr-fold-open-y)),
            calc(50% + var(--pkr-fold-open-x)) 50%,
            calc(50% + var(--pkr-fold-open-x)) 50%,
            50% calc(50% + var(--pkr-fold-open-y)),
            50% calc(50% + var(--pkr-fold-open-y)),
            calc(50% - var(--pkr-fold-open-x)) 50%,
            calc(50% - var(--pkr-fold-open-x)) 50%
        );
        opacity: 0;
    }
    58% {
        animation-timing-function: var(--pkr-auth-morph-expand);
        clip-path: polygon(
            50% calc(50% - var(--pkr-fold-open-y)),
            50% calc(50% - var(--pkr-fold-open-y)),
            calc(50% + var(--pkr-fold-open-x)) 50%,
            calc(50% + var(--pkr-fold-open-x)) 50%,
            50% calc(50% + var(--pkr-fold-open-y)),
            50% calc(50% + var(--pkr-fold-open-y)),
            calc(50% - var(--pkr-fold-open-x)) 50%,
            calc(50% - var(--pkr-fold-open-x)) 50%
        );
        opacity: 1;
    }
    74% {
        animation-timing-function: var(--pkr-auth-morph-expand);
        clip-path: polygon(50% 14%, 50% 14%, 86% 50%, 86% 50%, 50% 86%, 50% 86%, 14% 50%, 14% 50%);
        opacity: 1;
    }
    84% {
        clip-path: var(--pkr-auth-plate);
        opacity: 1;
    }
    88%,
    100% {
        clip-path: var(--pkr-auth-plate);
        opacity: 0;
    }
}

@keyframes pkr-tile-hold {
    0%,
    34% {
        opacity: 0;
    }
    42%,
    60% {
        opacity: 1;
    }
    72%,
    100% {
        opacity: 0;
    }
}

@keyframes pkr-mark-pulse {
    0%,
    34% {
        opacity: 0;
    }
    42%,
    60% {
        opacity: 1;
    }
    72%,
    100% {
        opacity: 0;
    }
}

@keyframes pkr-corner-follow {
    0%,
    10% {
        opacity: 0.55;
    }
    18%,
    84% {
        opacity: 0;
    }
    100% {
        opacity: 0.55;
    }
}

@media (max-width: 640px) {
    :root {
        --pkr-auth-login-h: 441px;
        --pkr-auth-reg-h: 657px;
        --pkr-auth-forgot-h: 627px;
        --pkr-auth-morph-ms: 880ms;
    }

    .pkr-auth-card[data-auth-mode="login"]:not([data-auth-transition]) .pkr-auth-card__surface {
        height: auto;
        min-height: 0;
    }

    .pkr-auth-card[data-auth-mode="login"]:not([data-auth-transition]) .pkr-auth-pane--login {
        height: auto;
        inset: auto;
        position: relative;
    }

    .pkr-auth-stage-slot {
        min-height: auto;
    }

    .pkr-auth-morph-tile {
        height: 42px;
        width: 42px;
    }
}

@media (prefers-reduced-motion: reduce) {
    :root {
        --pkr-auth-morph-ms: 240ms;
    }

    .pkr-auth-card[data-auth-transition] .pkr-auth-fold,
    .pkr-auth-card[data-auth-transition] .pkr-auth-morph-tile,
    .pkr-auth-card[data-auth-transition] .pkr-auth-morph-mark {
        animation: none !important;
        opacity: 0 !important;
        visibility: hidden !important;
    }

    .pkr-auth-card[data-auth-transition] .pkr-auth-card__surface {
        animation: none !important;
        min-height: var(--pkr-auth-to-h) !important;
        opacity: 1 !important;
    }
}
