/* =========================================================
   RYVOX GAMES
   LOGIN PAGE
   ========================================================= */

:root {
    --bg-1: #02050b;
    --bg-2: #050b15;
    --bg-3: #071321;

    --blue: #2aa8ff;
    --blue-2: #006eff;
    --cyan: #58dcff;

    --white: #ffffff;
    --text: #eaf6ff;
    --muted: #7890a8;

    --red: #ff405c;
    --green: #28e6a2;

    --glass: rgba(7, 17, 30, 0.78);
    --border: rgba(85, 180, 255, 0.15);

    --shadow:
        0 30px 100px rgba(0, 0, 0, 0.65);

    --radius: 25px;
}


/* =========================================================
   RESET
   ========================================================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
}


html {
    scroll-behavior: smooth;
}


body {
    min-height: 100vh;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 40px 20px;

    overflow-x: hidden;

    background:
        radial-gradient(
            circle at 50% 0%,
            rgba(0, 119, 255, 0.13),
            transparent 38%
        ),
        linear-gradient(
            145deg,
            var(--bg-1),
            var(--bg-2),
            var(--bg-3)
        );

    color: var(--text);

    font-family:
        "Segoe UI",
        Tahoma,
        Arial,
        sans-serif;
}


/* =========================================================
   BACKGROUND
   ========================================================= */

.background {
    position: fixed;
    inset: 0;

    overflow: hidden;

    pointer-events: none;

    z-index: -10;
}


/* =========================================================
   GRID
   ========================================================= */

.grid {
    position: absolute;

    width: 180%;
    height: 180%;

    left: -40%;
    top: 20%;

    opacity: 0.22;

    background-image:
        linear-gradient(
            rgba(48, 153, 255, 0.12) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(48, 153, 255, 0.12) 1px,
            transparent 1px
        );

    background-size: 55px 55px;

    transform:
        perspective(600px)
        rotateX(65deg);

    transform-origin: center top;

    animation:
        gridMove 18s linear infinite;
}


@keyframes gridMove {

    from {
        transform:
            perspective(600px)
            rotateX(65deg)
            translateY(0);
    }

    to {
        transform:
            perspective(600px)
            rotateX(65deg)
            translateY(55px);
    }
}


/* =========================================================
   GLOW
   ========================================================= */

.glow {
    position: absolute;

    border-radius: 50%;

    filter: blur(90px);

    opacity: 0.35;

    animation:
        floatGlow 8s ease-in-out infinite;
}


.glow-1 {
    width: 420px;
    height: 420px;

    top: -170px;
    right: -130px;

    background:
        rgba(0, 110, 255, 0.35);
}


.glow-2 {
    width: 330px;
    height: 330px;

    bottom: -130px;
    left: -100px;

    background:
        rgba(0, 200, 255, 0.2);

    animation-delay:
        -3s;
}


.glow-3 {
    width: 240px;
    height: 240px;

    top: 45%;
    left: 45%;

    background:
        rgba(30, 120, 255, 0.12);

    animation-delay:
        -5s;
}


@keyframes floatGlow {

    0%,
    100% {
        transform:
            translate3d(0, 0, 0)
            scale(1);
    }

    50% {
        transform:
            translate3d(30px, -25px, 0)
            scale(1.08);
    }
}


/* =========================================================
   PARTICLES
   ========================================================= */

.particles {
    position: absolute;
    inset: 0;

    background-image:
        radial-gradient(
            circle,
            rgba(100, 200, 255, 0.45) 1px,
            transparent 1.5px
        );

    background-size:
        90px 90px;

    opacity:
        0.16;

    animation:
        particlesMove 25s linear infinite;
}


@keyframes particlesMove {

    from {
        transform:
            translateY(0);
    }

    to {
        transform:
            translateY(-90px);
    }
}


/* =========================================================
   LOGIN CARD
   ========================================================= */

.login-card {
    position: relative;

    width: min(100%, 520px);

    padding:
        42px 42px 28px;

    border:
        1px solid
        rgba(91, 190, 255, 0.17);

    border-radius:
        var(--radius);

    background:
        linear-gradient(
            145deg,
            rgba(13, 29, 49, 0.86),
            rgba(3, 10, 20, 0.82)
        );

    box-shadow:
        var(--shadow),
        0 0 80px
        rgba(0, 119, 255, 0.08);

    backdrop-filter:
        blur(25px);

    -webkit-backdrop-filter:
        blur(25px);

    overflow:
        hidden;

    animation:
        cardAppear 0.8s
        cubic-bezier(.16, 1, .3, 1);
}


.login-card::before {
    content: "";

    position: absolute;

    top: 0;
    left: 8%;

    width: 84%;
    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(73, 190, 255, 0.8),
            transparent
        );

    box-shadow:
        0 0 25px
        rgba(50, 180, 255, 0.8);
}


.login-card::after {
    content: "";

    position: absolute;

    inset: 0;

    pointer-events:
        none;

    background:
        linear-gradient(
            125deg,
            rgba(255,255,255,0.035),
            transparent 25%,
            transparent 75%,
            rgba(70,170,255,0.025)
        );
}


@keyframes cardAppear {

    from {
        opacity: 0;

        transform:
            translateY(35px)
            scale(0.96);
    }

    to {
        opacity: 1;

        transform:
            translateY(0)
            scale(1);
    }
}


/* =========================================================
   LOGO
   ========================================================= */

.logo {
    position: relative;

    text-align: center;

    margin-bottom:
        27px;

    z-index: 2;
}


.logo-main {
    font-size:
        38px;

    font-weight:
        950;

    letter-spacing:
        7px;

    line-height:
        1;

    background:
        linear-gradient(
            110deg,
            #ffffff 0%,
            #7bdcff 35%,
            #278dff 65%,
            #ffffff 100%
        );

    background-size:
        250% auto;

    -webkit-background-clip:
        text;

    background-clip:
        text;

    color:
        transparent;

    text-shadow:
        0 0 28px
        rgba(50, 180, 255, 0.22);

    animation:
        logoShine 5s linear infinite;
}


.logo-sub {
    margin-top:
        8px;

    font-size:
        10px;

    font-weight:
        700;

    letter-spacing:
        8px;

    color:
        rgba(142, 204, 255, 0.62);

    padding-left:
        8px;
}


@keyframes logoShine {

    0% {
        background-position:
            0% center;
    }

    100% {
        background-position:
            250% center;
    }
}


/* =========================================================
   HEADER
   ========================================================= */

.header {
    position: relative;

    text-align:
        center;

    margin-bottom:
        28px;

    z-index:
        2;
}


.header h1 {
    font-size:
        27px;

    font-weight:
        850;

    color:
        var(--white);

    margin-bottom:
        9px;
}


.header p {
    font-size:
        13px;

    color:
        rgba(174, 198, 221, 0.63);
}


/* =========================================================
   PROGRESS
   ========================================================= */

.progress {
    position: relative;

    height:
        68px;

    margin-bottom:
        30px;

    display:
        flex;

    justify-content:
        space-between;

    z-index:
        2;
}


.progress-track {
    position: absolute;

    top:
        16px;

    right:
        12%;

    left:
        12%;

    height:
        2px;

    background:
        rgba(100, 170, 220, 0.12);

    overflow:
        hidden;
}


.progress-fill {
    width:
        0%;

    height:
        100%;

    background:
        linear-gradient(
            90deg,
            var(--blue-2),
            var(--cyan)
        );

    box-shadow:
        0 0 14px
        rgba(50, 190, 255, 0.7);

    transition:
        width 0.6s
        cubic-bezier(.16, 1, .3, 1);
}


.progress-step {
    position:
        relative;

    width:
        33.33%;

    display:
        flex;

    flex-direction:
        column;

    align-items:
        center;

    gap:
        9px;

    color:
        rgba(130, 157, 182, 0.45);

    transition:
        0.35s ease;
}


.progress-step span {
    width:
        34px;

    height:
        34px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border:
        1px solid
        rgba(100, 170, 220, 0.16);

    border-radius:
        50%;

    background:
        rgba(4, 12, 22, 0.9);

    font-size:
        12px;

    font-weight:
        800;

    transition:
        0.35s ease;
}


.progress-step small {
    font-size:
        10px;

    font-weight:
        600;
}


.progress-step.active {
    color:
        var(--cyan);
}


.progress-step.active span {
    border-color:
        rgba(63, 192, 255, 0.75);

    background:
        linear-gradient(
            145deg,
            rgba(25, 139, 255, 0.28),
            rgba(0, 80, 180, 0.18)
        );

    box-shadow:
        0 0 0 5px
        rgba(50, 160, 255, 0.06),

        0 0 25px
        rgba(30, 160, 255, 0.35);
}


.progress-step.completed span {
    color:
        var(--green);

    border-color:
        rgba(40, 230, 162, 0.35);

    background:
        rgba(40, 230, 162, 0.07);

    box-shadow:
        0 0 20px
        rgba(40, 230, 162, 0.15);
}


.progress-step.completed {
    color:
        rgba(40, 230, 162, 0.7);
}


/* =========================================================
   LOGIN STEPS
   ========================================================= */

.login-step,
.success-screen {
    display:
        none;

    position:
        relative;

    z-index:
        2;
}


.login-step.active,
.success-screen.active {
    display:
        block;

    animation:
        stepIn 0.45s
        cubic-bezier(.16, 1, .3, 1);
}


@keyframes stepIn {

    from {
        opacity:
            0;

        transform:
            translateX(18px);
    }

    to {
        opacity:
            1;

        transform:
            translateX(0);
    }
}


/* =========================================================
   STEP HEADING
   ========================================================= */

.step-heading {
    margin-bottom:
        24px;
}


.step-heading h2 {
    font-size:
        21px;

    font-weight:
        800;

    color:
        var(--white);

    margin-bottom:
        7px;
}


.step-heading p {
    font-size:
        12px;

    line-height:
        1.8;

    color:
        rgba(160, 187, 211, 0.62);
}


.step-heading strong {
    color:
        var(--cyan);

    font-weight:
        700;
}


/* =========================================================
   INPUT
   ========================================================= */

.input-group {
    position:
        relative;

    margin-bottom:
        20px;
}


.input-group label {
    display:
        block;

    margin-bottom:
        9px;

    font-size:
        12px;

    font-weight:
        650;

    color:
        rgba(206, 225, 242, 0.74);
}


.input-group input {
    width:
        100%;

    height:
        53px;

    padding:
        0 17px;

    outline:
        none;

    border:
        1px solid
        rgba(100, 175, 225, 0.13);

    border-radius:
        13px;

    background:
        rgba(2, 9, 17, 0.62);

    color:
        var(--white);

    font-size:
        14px;

    direction:
        ltr;

    text-align:
        right;

    transition:
        0.3s ease;

    box-shadow:
        inset 0 1px 0
        rgba(255,255,255,0.02);
}


.input-group input::placeholder {
    color:
        rgba(133, 158, 181, 0.35);
}


.input-group input:hover {
    border-color:
        rgba(90, 180, 255, 0.25);
}


.input-group input:focus {
    border-color:
        rgba(50, 180, 255, 0.65);

    background:
        rgba(5, 18, 31, 0.82);

    box-shadow:
        0 0 0 4px
        rgba(35, 160, 255, 0.055),

        0 0 30px
        rgba(30, 150, 255, 0.1);
}


/* =========================================================
   ERROR
   ========================================================= */

.input-error {
    min-height:
        0;

    margin-top:
        7px;

    color:
        var(--red);

    font-size:
        11px;

    line-height:
        1.5;
}


.error-shake {
    animation:
        inputShake 0.42s ease;
}


@keyframes inputShake {

    0%,
    100% {
        transform:
            translateX(0);
    }

    20% {
        transform:
            translateX(-7px);
    }

    40% {
        transform:
            translateX(6px);
    }

    60% {
        transform:
            translateX(-4px);
    }

    80% {
        transform:
            translateX(3px);
    }
}


/* =========================================================
   PASSWORD
   ========================================================= */

.password-wrapper {
    position:
        relative;
}


.password-wrapper input {
    padding-left:
        75px;
}


.password-toggle {
    position:
        absolute;

    left:
        9px;

    top:
        50%;

    transform:
        translateY(-50%);

    padding:
        6px 8px;

    border:
        none;

    background:
        transparent;

    color:
        rgba(90, 195, 255, 0.72);

    font-size:
        10px;

    cursor:
        pointer;

    transition:
        0.25s ease;
}


.password-toggle:hover {
    color:
        white;

    text-shadow:
        0 0 12px
        rgba(60, 190, 255, 0.45);
}


/* =========================================================
   CAPTCHA
   ========================================================= */

.captcha {
    position:
        relative;

    margin:
        5px 0 20px;

    padding:
        15px;

    border:
        1px solid
        rgba(70, 180, 255, 0.14);

    border-radius:
        17px;

    background:
        linear-gradient(
            145deg,
            rgba(23, 60, 91, 0.17),
            rgba(3, 13, 24, 0.48)
        );

    box-shadow:
        inset 0 1px 0
        rgba(255,255,255,0.025),

        0 15px 35px
        rgba(0,0,0,0.16);

    overflow:
        hidden;
}


.captcha::before {
    content:
        "";

    position:
        absolute;

    top:
        0;

    right:
        0;

    width:
        100%;

    height:
        1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(55, 190, 255, 0.4),
            transparent
        );
}


.captcha-top {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    margin-bottom:
        12px;
}


.captcha-top > div {
    display:
        flex;

    align-items:
        center;

    gap:
        9px;
}


.captcha-title {
    color:
        rgba(219, 237, 252, 0.8);

    font-size:
        11px;

    font-weight:
        750;
}


.captcha-status {
    padding:
        4px 8px;

    border:
        1px solid
        rgba(40, 230, 162, 0.16);

    border-radius:
        20px;

    background:
        rgba(40, 230, 162, 0.055);

    color:
        rgba(74, 240, 181, 0.75);

    font-size:
        8px;

    font-weight:
        700;
}


.captcha-refresh {
    width:
        31px;

    height:
        31px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border:
        1px solid
        rgba(76, 181, 255, 0.18);

    border-radius:
        9px;

    background:
        rgba(42, 145, 220, 0.07);

    color:
        var(--cyan);

    font-size:
        18px;

    cursor:
        pointer;

    transition:
        0.3s ease;
}


.captcha-refresh:hover {
    transform:
        rotate(180deg);

    background:
        rgba(42, 145, 220, 0.15);

    border-color:
        rgba(75, 190, 255, 0.4);

    box-shadow:
        0 0 20px
        rgba(30, 170, 255, 0.2);
}


.captcha-question {
    position:
        relative;

    height:
        54px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    margin-bottom:
        10px;

    border:
        1px solid
        rgba(76, 170, 230, 0.09);

    border-radius:
        12px;

    background:
        rgba(0, 4, 10, 0.48);

    color:
        #f4fbff;

    direction:
        ltr;

    font-size:
        20px;

    font-weight:
        900;

    letter-spacing:
        4px;

    text-shadow:
        0 0 16px
        rgba(55, 190, 255, 0.48);

    overflow:
        hidden;
}


.captcha-question::before,
.captcha-question::after {
    content:
        "";

    position:
        absolute;

    width:
        150%;

    height:
        1px;

    left:
        -25%;

    background:
        rgba(80, 190, 255, 0.09);

    transform:
        rotate(-7deg);
}


.captcha-question::before {
    top:
        17px;
}


.captcha-question::after {
    bottom:
        14px;

    transform:
        rotate(5deg);
}


.captcha-input-wrapper input {
    width:
        100%;

    height:
        45px;

    border:
        1px solid
        rgba(100, 175, 225, 0.12);

    border-radius:
        11px;

    outline:
        none;

    background:
        rgba(0, 7, 14, 0.55);

    color:
        white;

    text-align:
        center;

    font-size:
        14px;

    transition:
        0.3s ease;
}


.captcha-input-wrapper input:focus {
    border-color:
        rgba(55, 190, 255, 0.55);

    box-shadow:
        0 0 0 4px
        rgba(45, 170, 255, 0.045),

        0 0 25px
        rgba(35, 160, 255, 0.1);
}


.captcha-input-wrapper input::placeholder {
    color:
        rgba(130, 155, 180, 0.38);
}


/* =========================================================
   LOGIN OPTIONS
   ========================================================= */

.login-options {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        10px;

    margin:
        0 1px 20px;
}


.remember {
    display:
        flex;

    align-items:
        center;

    gap:
        8px;

    color:
        rgba(151, 179, 204, 0.62);

    font-size:
        10px;

    cursor:
        pointer;

    user-select:
        none;
}


.remember input {
    position:
        absolute;

    opacity:
        0;

    pointer-events:
        none;
}


.custom-check {
    width:
        17px;

    height:
        17px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border:
        1px solid
        rgba(85, 175, 225, 0.2);

    border-radius:
        5px;

    background:
        rgba(3, 12, 21, 0.65);

    transition:
        0.25s ease;
}


.custom-check::after {
    content:
        "✓";

    opacity:
        0;

    transform:
        scale(0.5);

    color:
        white;

    font-size:
        10px;

    transition:
        0.2s ease;
}


.remember input:checked + .custom-check {
    border-color:
        rgba(50, 180, 255, 0.7);

    background:
        linear-gradient(
            145deg,
            #087cff,
            #19b9ff
        );

    box-shadow:
        0 0 15px
        rgba(30, 160, 255, 0.2);
}


.remember input:checked + .custom-check::after {
    opacity:
        1;

    transform:
        scale(1);
}


.forgot-link {
    color:
        rgba(84, 192, 255, 0.7);

    font-size:
        10px;

    text-decoration:
        none;

    transition:
        0.25s ease;
}


.forgot-link:hover {
    color:
        white;

    text-shadow:
        0 0 12px
        rgba(50, 190, 255, 0.5);
}


/* =========================================================
   MAIN BUTTON
   ========================================================= */

.main-button {
    position:
        relative;

    width:
        100%;

    height:
        55px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        13px;

    margin-top:
        7px;

    border:
        none;

    border-radius:
        14px;

    background:
        linear-gradient(
            105deg,
            #0069ff,
            #159cff 48%,
            #1ac7ff
        );

    color:
        white;

    font-size:
        13px;

    font-weight:
        850;

    cursor:
        pointer;

    overflow:
        hidden;

    box-shadow:
        0 12px 30px
        rgba(0, 110, 255, 0.2),

        inset 0 1px 0
        rgba(255,255,255,0.25);

    transition:
        0.3s ease;
}


.main-button::before {
    content:
        "";

    position:
        absolute;

    top:
        0;

    left:
        -120%;

    width:
        70%;

    height:
        100%;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,0.3),
            transparent
        );

    transform:
        skewX(-20deg);

    transition:
        0.6s ease;
}


.main-button:hover {
    transform:
        translateY(-2px);

    box-shadow:
        0 18px 40px
        rgba(0, 110, 255, 0.32),

        0 0 25px
        rgba(40, 190, 255, 0.12);
}


.main-button:hover::before {
    left:
        140%;
}


.main-button:active {
    transform:
        translateY(0)
        scale(0.985);
}


.arrow {
    font-size:
        19px;

    transition:
        transform 0.3s ease;
}


.main-button:hover .arrow {
    transform:
        translateX(-5px);
}


/* =========================================================
   BOTTOM LINK
   ========================================================= */

.bottom-link {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        7px;

    margin-top:
        21px;

    font-size:
        11px;

    color:
        rgba(155, 180, 204, 0.55);
}


.bottom-link a {
    color:
        var(--cyan);

    text-decoration:
        none;

    font-weight:
        750;

    transition:
        0.25s ease;
}


.bottom-link a:hover {
    color:
        white;

    text-shadow:
        0 0 15px
        rgba(60, 200, 255, 0.6);
}


/* =========================================================
   TIMER
   ========================================================= */

.timer {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        8px;

    margin:
        4px 0 18px;

    font-size:
        11px;

    color:
        rgba(145, 175, 201, 0.6);
}


.timer strong {
    min-width:
        50px;

    color:
        var(--cyan);

    font-size:
        13px;

    font-variant-numeric:
        tabular-nums;

    text-shadow:
        0 0 12px
        rgba(50, 190, 255, 0.35);
}


/* =========================================================
   SECONDARY BUTTON
   ========================================================= */

.secondary-button {
    width:
        100%;

    height:
        48px;

    margin-top:
        12px;

    border:
        1px solid
        rgba(70, 180, 255, 0.15);

    border-radius:
        12px;

    background:
        rgba(30, 130, 210, 0.055);

    color:
        rgba(95, 205, 255, 0.8);

    font-size:
        12px;

    font-weight:
        700;

    cursor:
        pointer;

    transition:
        0.3s ease;
}


.secondary-button:hover:not(:disabled) {
    background:
        rgba(30, 150, 230, 0.12);

    border-color:
        rgba(70, 190, 255, 0.35);

    box-shadow:
        0 0 25px
        rgba(30, 160, 255, 0.08);
}


.secondary-button:disabled {
    opacity:
        0.35;

    cursor:
        not-allowed;
}


/* =========================================================
   TEXT BUTTON
   ========================================================= */

.text-button {
    display:
        block;

    margin:
        14px auto 0;

    padding:
        5px 10px;

    border:
        none;

    background:
        transparent;

    color:
        rgba(145, 174, 199, 0.55);

    font-size:
        11px;

    cursor:
        pointer;

    transition:
        0.25s ease;
}


.text-button:hover {
    color:
        var(--cyan);

    text-shadow:
        0 0 12px
        rgba(50, 190, 255, 0.35);
}


/* =========================================================
   SUCCESS
   ========================================================= */

.success-screen {
    text-align:
        center;

    padding:
        12px 0 10px;
}


.success-icon {
    width:
        80px;

    height:
        80px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    margin:
        0 auto 22px;

    border:
        1px solid
        rgba(40, 230, 162, 0.35);

    border-radius:
        50%;

    background:
        radial-gradient(
            circle,
            rgba(40, 230, 162, 0.13),
            rgba(40, 230, 162, 0.025)
        );

    color:
        var(--green);

    font-size:
        36px;

    box-shadow:
        0 0 0 8px
        rgba(40, 230, 162, 0.025),

        0 0 45px
        rgba(40, 230, 162, 0.15);

    animation:
        successPulse 2s
        ease-in-out infinite;
}


@keyframes successPulse {

    0%,
    100% {
        transform:
            scale(1);
    }

    50% {
        transform:
            scale(1.05);
    }
}


.success-screen h2 {
    margin-bottom:
        9px;

    color:
        white;

    font-size:
        22px;
}


.success-screen p {
    margin-bottom:
        25px;

    color:
        rgba(160, 190, 210, 0.62);

    font-size:
        12px;
}


/* =========================================================
   FOOTER
   ========================================================= */

.footer {
    position:
        relative;

    z-index:
        2;

    margin-top:
        28px;

    text-align:
        center;

    color:
        rgba(120, 155, 182, 0.32);

    font-size:
        9px;

    letter-spacing:
        1px;
}


/* =========================================================
   SELECTION
   ========================================================= */

::selection {
    background:
        rgba(35, 160, 255, 0.3);

    color:
        white;
}


/* =========================================================
   SCROLLBAR
   ========================================================= */

::-webkit-scrollbar {
    width:
        7px;
}


::-webkit-scrollbar-track {
    background:
        #02060c;
}


::-webkit-scrollbar-thumb {
    border-radius:
        10px;

    background:
        rgba(50, 160, 240, 0.28);
}


::-webkit-scrollbar-thumb:hover {
    background:
        rgba(50, 180, 255, 0.5);
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    body {
        padding:
            22px 12px;
    }


    .login-card {
        padding:
            32px 22px 23px;

        border-radius:
            21px;
    }


    .logo-main {
        font-size:
            31px;

        letter-spacing:
            5px;
    }


    .logo-sub {
        font-size:
            8px;

        letter-spacing:
            6px;
    }


    .header h1 {
        font-size:
            23px;
    }


    .header p {
        font-size:
            11px;
    }


    .progress {
        margin-bottom:
            24px;
    }


    .step-heading h2 {
        font-size:
            19px;
    }


    .input-group input {
        height:
            51px;
    }


    .captcha {
        padding:
            13px;
    }


    .captcha-question {
        height:
            50px;

        font-size:
            18px;
    }


    .main-button {
        height:
            53px;
    }


    .login-options {
        align-items:
            flex-start;

        flex-direction:
            column;

        gap:
            12px;
    }

}


/* =========================================================
   SMALL PHONES
   ========================================================= */

@media (max-width: 380px) {

    body {
        padding:
            15px 9px;
    }


    .login-card {
        padding:
            27px 17px 20px;
    }


    .logo {
        margin-bottom:
            22px;
    }


    .logo-main {
        font-size:
            27px;
    }


    .progress-step small {
        font-size:
            9px;
    }


    .captcha-top > div {
        gap:
            6px;
    }


    .captcha-status {
        display:
            none;
    }


    .forgot-link {
        font-size:
            9px;
    }

}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation-duration:
            0.01ms !important;

        animation-iteration-count:
            1 !important;

        transition-duration:
            0.01ms !important;
    }

}