.alert {
    border-radius: 8px;
    font-size: 20px;
    padding: 10px 12px;
}

.alert--success {
    background: #edf7ed;
    border: 1px solid #cfe9cf;
    color: #1e7e34;
}

:root {
    --grad: linear-gradient(120deg, #10002b, #240046, #3c096c);
    --grad-move: 120s ease infinite alternate;
}

.card__header .title {
    font-size: 32px !important;
    margin-bottom: 20px;
    color: #fff;
}

.auth-page input {
    border-radius: 7px !important;
}

.auth-page {
    background: #000;
    color: #e9eef6;
    display: grid;
    overflow: hidden;
    place-items: center;
    position: relative;
}

.auth-page .btn--primary {
    background: #fff !important;
    border-radius: 5px !important;
    box-shadow: none !important;
    color: #000 !important;
}

.shell {
    padding: clamp(16px, 3vw, 32px);
    width: 100%;
    background: #000;
}

.bg-decor {
    filter: blur(2px);
    inset: 0;
    pointer-events: none;
    position: absolute;
}

.bg-decor .orb {
    animation: float 18s ease-in-out infinite;
    background: radial-gradient(circle at 30% 30%, rgba(124, 58, 237, .55), rgba(124, 58, 237, .1) 60%, transparent 70%);
    border-radius: 50%;
    height: clamp(220px, 28vw, 360px);
    mix-blend-mode: screen;
    position: absolute;
    width: clamp(220px, 28vw, 360px);
}

.bg-decor .orb-1 {
    left: -60px;
    top: -60px;
}

.bg-decor .orb-2 {
    animation-delay: 3s;
    background: radial-gradient(circle at 30% 30%, rgba(34, 211, 238, .55), rgba(34, 211, 238, .1) 60%, transparent 70%);
    right: -80px;
    top: 10%;
}

.bg-decor .orb-3 {
    animation-delay: 6s;
    background: radial-gradient(circle at 30% 30%, hsla(0, 0%, 100%, .35), hsla(0, 0%, 100%, .06) 60%, transparent 70%);
    bottom: -100px;
    left: 30%;
}

@keyframes float {
    0% {
        transform: translateZ(0) scale(1);
    }

    50% {
        transform: translate3d(0, -20px, 0) scale(1.04);
    }

    100% {
        transform: translateZ(0) scale(1);
    }
}

.card {
    backdrop-filter: saturate(130%) blur(14px);
    background: #ffffff14;
    border: 1px solid hsla(0, 0%, 100%, .16);
    border-radius: 10px;
    box-shadow: 0 10px 30px #00000040, inset 0 1px #ffffff05;
    margin-inline: auto;
    padding: clamp(18px, 3.2vw, 28px);
    position: relative;
    width: min(100%, 460px);
}

.card:before {
    content: "";
    pointer-events: none;
    position: absolute;
    background: linear-gradient(rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0.02));
    border-radius: inherit;
    inset: -1px;
    mask: linear-gradient(rgb(0, 0, 0) 0px, rgb(0, 0, 0) 0px) content-box exclude, linear-gradient(rgb(0, 0, 0) 0px, rgb(0, 0, 0) 0px);
    padding: 1px;
}

.card__header {
    margin-bottom: 18px;
}

.card__header .brand {
    display: flex;
    gap: 12px;
    align-items: center;
}

.card__header .logo {
    background: linear-gradient(135deg, #7c3aede6, #22d3eee6);
    border-radius: 5px;
    box-shadow: 0 10px 30px #7c3aed59;
    display: grid;
    height: 44px;
    place-items: center;
    width: 44px;
}

.card__header .title {
    font-weight: 700;
}

.card__header .subtitle {
    color: #b8c1d1;
    font-size: 19px;
}

.form {
    display: grid;
    gap: 14px;
}

.field {
    position: relative;
}

.field input {
    background: #060a1473;
    border: 1px solid hsla(0, 0%, 100%, .15);
    border-radius: 8px;
    color: #e9eef6;
    height: 52px;
    padding: 14px 44px 0 14px;
    width: 100%;
}

.field--float label {
    color: #b8c1d1;
    left: 14px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    font-size: 17px;
    font-weight: 300;
}

.field--float input:focus+label,
.field--float input:not(:placeholder-shown)+label {
    font-size: 12px;
    top: 8px;
}

.password {
    position: relative;
}

.password .toggle {
    background: transparent;
    border: 0;
    display: grid;
    place-items: center;
    height: 36px;
    width: 36px;
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
}

.password .toggle svg {
    width: 20px;
    height: 20px;
}

.form__row {
    display: flex;
    justify-content: space-between;
    gap: 10px;
}

.check {
    display: inline-flex;
    align-items: center;
    color: #fff;
    gap: 8px;
    font-size: 17px;
    font-weight: 300;
}

.password .toggle svg {
    fill: #b8c1d1;
}

.btn {
    border-radius: 18px;
    font-weight: 600;
    height: 50px;
    display: grid;
    place-items: center;
}

.btn--primary {
    background: rgb(255, 255, 255) !important;
    border-radius: 5px !important;
    box-shadow: none !important;
    color: rgb(0, 0, 0) !important;
    cursor: pointer;
    display: inline-grid;
    font-weight: 600;
    height: 50px;
    letter-spacing: 0.2px;
    padding: 0px 16px;
    place-items: center;
    transition: transform 0.15s, box-shadow 0.2s, filter 0.2s;
    font-size: 19px;
}

.card__footer {
    color: #b8c1d1;
    margin-top: 10px;
    text-align: center;
}

.link {
    color: #e9eef6;
}

@media (max-width:420px) {
    .card {
        padding: 16px;
    }

    .btn {
        height: 48px;
    }
}
