/* =========================
   TXF Animations (Animate.css-style)
   ========================= */

.txf-anim{
    animation-duration: 700ms;
    animation-fill-mode: both;
}

/* Entry: fadeInUpBig */
.txf-anim--fadeInUpBig{ animation-name: txfFadeInUpBig; }

/* Exit: bounceOutRight */
.txf-anim--bounceOutRight{
    animation-name: txfBounceOutRight;
    animation-duration: 600ms;
}

/* Error entry: rubberBand */
.txf-anim--rubberBand{
    animation-name: txfRubberBand;
    animation-duration: 700ms;
}

/* Keyframes */
@keyframes txfFadeInUpBig {
    from { opacity: 0; transform: translate3d(0, 120px, 0); }
    to   { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes txfBounceOutRight {
    20%  { opacity: 1; transform: translate3d(-20px, 0, 0); }
    to   { opacity: 0; transform: translate3d(2000px, 0, 0); }
}

@keyframes txfRubberBand {
    from { transform: scale3d(1, 1, 1); }
    30%  { transform: scale3d(1.25, 0.75, 1); }
    40%  { transform: scale3d(0.75, 1.25, 1); }
    50%  { transform: scale3d(1.15, 0.85, 1); }
    65%  { transform: scale3d(0.95, 1.05, 1); }
    75%  { transform: scale3d(1.05, 0.95, 1); }
    to   { transform: scale3d(1, 1, 1); }
}

/* Reduce motion support */
@media (prefers-reduced-motion: reduce){
    .txf-anim{ animation: none !important; }
}


/* SSO Gate */
.sso-gate{
    position: fixed;
    inset: 0;
    z-index: 9999;
    pointer-events: none;
    opacity: 1;
}

.sso-gate::before,
.sso-gate::after{
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 50%;
    background: rgba(15, 18, 24, 0.92);
    backdrop-filter: blur(6px);
    transform: translateX(0);
    transition: transform 650ms cubic-bezier(.2,.9,.2,1);
}

.sso-gate::before{
    left: 0;
    box-shadow: inset -1px 0 0 rgba(255,255,255,0.10), inset -10px 0 30px rgba(0,0,0,0.35);
}
.sso-gate::after{
    right: 0;
    box-shadow: inset 1px 0 0 rgba(255,255,255,0.10), inset 10px 0 30px rgba(0,0,0,0.35);
}

.sso-gate.is-opening::before{ transform: translateX(-105%); }
.sso-gate.is-opening::after{ transform: translateX(105%); }

.sso-gate.is-open{ opacity: 0; transition: opacity 250ms ease; }
