@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root {
    --bg-1: #07111f;
    --bg-2: #0b1424;
    --bg-3: #111827;
    --glass: rgba(255, 255, 255, .07);
    --glass-strong: rgba(255, 255, 255, .11);
    --border: rgba(255, 255, 255, .14);
    --text: #ffffff;
    --muted: #a8b3cf;
    --soft: #d7def2;
    --blue: #3b82f6;
    --green: #22c55e;
    --purple: #8b5cf6;
    --red: #ef4444;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "Inter", "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif;
}

html,
body {
    width: 100%;
    min-height: 100%;
    background: var(--bg-1);
}

body {
    overflow: hidden;
    color: var(--text);
}

.login-shell {
    position: relative;
    isolation: isolate;
    min-height: 100vh;
    width: 100%;
    display: grid;
    place-items: center;
    padding: 24px;
    overflow: hidden;
    background:
        radial-gradient(circle at 50% 48%, rgba(245, 158, 11, .16), transparent 28%),
        radial-gradient(circle at 20% 12%, rgba(59, 130, 246, .14), transparent 28%),
        linear-gradient(135deg, var(--bg-1) 0%, var(--bg-2) 52%, var(--bg-3) 100%);
}

.login-shell::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    background:
        linear-gradient(90deg, rgba(7, 17, 31, .74), rgba(7, 17, 31, .28) 42%, rgba(7, 17, 31, .82)),
        radial-gradient(circle at 50% 44%, rgba(0, 0, 0, .06), rgba(0, 0, 0, .72) 72%);
}

.ai-holo-bg {
    position: absolute;
    inset: 0;
    z-index: -1;
    overflow: hidden;
    background:
        radial-gradient(circle at 50% 39%, rgba(56, 189, 248, .24), transparent 23%),
        radial-gradient(circle at 50% 42%, rgba(14, 165, 233, .18), transparent 40%),
        linear-gradient(115deg, rgba(4, 10, 23, .98), rgba(8, 18, 36, .72) 44%, rgba(2, 6, 16, .98));
}

.ai-holo-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(rgba(125, 211, 252, .05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(125, 211, 252, .05) 1px, transparent 1px);
    background-size: 48px 48px;
    opacity: .55;
    mask-image: radial-gradient(circle at 50% 42%, #000 0 34%, transparent 78%);
}

.holo-room {
    position: absolute;
    inset: auto -8% -15% -8%;
    height: 50vh;
    background:
        linear-gradient(90deg, transparent 0 8%, rgba(59, 130, 246, .14) 8.2% 8.6%, transparent 8.8% 29%, rgba(125, 211, 252, .14) 29.2% 29.7%, transparent 30% 70%, rgba(125, 211, 252, .12) 70.2% 70.7%, transparent 71% 100%),
        linear-gradient(0deg, rgba(125, 211, 252, .16) 0 1px, transparent 1px 72px),
        linear-gradient(90deg, rgba(125, 211, 252, .1) 0 1px, transparent 1px 72px);
    transform: perspective(820px) rotateX(63deg);
    transform-origin: bottom;
    opacity: .42;
}

.holo-assistant {
    position: absolute;
    left: 50%;
    top: 36%;
    width: min(52vw, 420px);
    aspect-ratio: 1;
    transform: translate(-50%, -50%);
    filter: drop-shadow(0 0 28px rgba(56, 189, 248, .9)) drop-shadow(0 0 86px rgba(14, 165, 233, .4));
    opacity: .82;
}

.holo-ring,
.holo-core,
.voice-wave,
.holo-node {
    position: absolute;
    display: block;
}

.holo-ring {
    inset: 8%;
    border-radius: 50%;
    border: 1px solid rgba(125, 211, 252, .58);
    background:
        conic-gradient(from 20deg, transparent 0 18deg, rgba(56, 189, 248, .9) 20deg 25deg, transparent 26deg 72deg, rgba(165, 243, 252, .7) 74deg 79deg, transparent 80deg 166deg, rgba(59, 130, 246, .82) 168deg 173deg, transparent 174deg 360deg);
    mask: radial-gradient(circle, transparent 0 57%, #000 58% 61%, transparent 62%);
    animation: holoSpin 12s linear infinite;
}

.ring-one {
    inset: 1%;
    opacity: .7;
}

.ring-two {
    inset: 25%;
    animation-duration: 7s;
    animation-direction: reverse;
    opacity: .95;
}

.ring-three {
    inset: 38%;
    animation-duration: 4.8s;
    opacity: .85;
}

.holo-core {
    inset: 31%;
    border-radius: 50%;
    background:
        radial-gradient(circle, rgba(240, 249, 255, .96) 0 8%, rgba(125, 211, 252, .86) 9% 18%, rgba(14, 165, 233, .26) 19% 42%, transparent 43%),
        conic-gradient(from 90deg, rgba(125, 211, 252, .12), rgba(255, 255, 255, .75), rgba(59, 130, 246, .1), rgba(125, 211, 252, .12));
    box-shadow: 0 0 28px rgba(125, 211, 252, .9), inset 0 0 28px rgba(255, 255, 255, .28);
    animation: aiPulse 1.55s ease-in-out infinite;
}

.voice-wave {
    left: 50%;
    bottom: 20%;
    width: 5px;
    height: 36px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(240, 249, 255, .95), rgba(56, 189, 248, .28));
    box-shadow: 0 0 16px rgba(56, 189, 248, .86);
    transform: translateX(-50%);
    animation: voiceTalk 1s ease-in-out infinite;
}

.wave-one {
    margin-left: -42px;
    animation-delay: -.35s;
}

.wave-two {
    margin-left: -21px;
    animation-delay: -.15s;
}

.wave-three {
    margin-left: 0;
    animation-delay: -.55s;
}

.wave-four {
    margin-left: 21px;
    animation-delay: -.25s;
}

.wave-five {
    margin-left: 42px;
    animation-delay: -.45s;
}

.holo-node {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #e0f2fe;
    box-shadow: 0 0 20px rgba(56, 189, 248, .96);
    animation: nodeDrift 3.4s ease-in-out infinite;
}

.node-one {
    left: 24%;
    top: 33%;
}

.node-two {
    right: 22%;
    top: 46%;
    animation-delay: -1.1s;
}

.node-three {
    left: 48%;
    top: 16%;
    animation-delay: -2s;
}

.login-card {
    width: min(100%, 500px);
    padding: 26px 28px;
    border: 0;
    border-radius: 24px;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.logo-placeholder {
    width: min(100%, 360px);
    height: auto;
    margin: 0 auto 18px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
}

.logo-placeholder img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 16px 22px rgba(0, 0, 0, .38));
}

.login-heading {
    text-align: center;
    margin-bottom: 24px;
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    padding: 5px 11px;
    margin-bottom: 12px;
    border: 1px solid rgba(59, 130, 246, .3);
    border-radius: 999px;
    background: rgba(59, 130, 246, .13);
    color: #bfdbfe;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.login-heading h1 {
    color: var(--text);
    font-size: 28px;
    line-height: 1.15;
    font-weight: 800;
    margin-bottom: 9px;
}

.login-heading p,
.login-footnote {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}

.login-alert {
    margin-bottom: 16px;
    padding: 11px 13px;
    border: 1px solid rgba(239, 68, 68, .32);
    border-radius: 14px;
    background: rgba(239, 68, 68, .12);
    color: #fecaca;
    font-size: 13px;
    font-weight: 700;
}

.login-form {
    width: min(100%, 300px);
    margin: 0 auto;
    display: grid;
    gap: 13px;
}

.form-group label {
    display: block;
    margin-bottom: 6px;
    color: var(--soft);
    font-size: 11px;
    font-weight: 800;
    text-align: center;
}

.input-shell {
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: 34px;
    padding: 0 10px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    background: rgba(3, 7, 18, .26);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07);
    transition: border-color .25s ease, box-shadow .25s ease, background .25s ease;
}

.input-shell:focus-within {
    border-color: rgba(125, 211, 252, .68);
    background: rgba(3, 7, 18, .34);
    box-shadow: 0 0 0 3px rgba(56, 189, 248, .11), 0 0 22px rgba(56, 189, 248, .12);
}

.input-icon {
    min-width: 29px;
    min-height: 23px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(59, 130, 246, .22);
    color: #dbeafe;
    font-size: 9px;
    font-weight: 800;
}

.input-shell input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--text);
    font-size: 11.5px;
    font-weight: 600;
}

.input-shell input::placeholder {
    color: rgba(168, 179, 207, .76);
}

.password-visibility {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #93c5fd;
    cursor: pointer;
}

.password-visibility:hover,
.password-visibility:focus-visible {
    background: rgba(59, 130, 246, .18);
    outline: none;
}

.input-shell input:-webkit-autofill,
.input-shell input:-webkit-autofill:hover,
.input-shell input:-webkit-autofill:focus,
.input-shell input:-webkit-autofill:active {
    -webkit-text-fill-color: #ffffff !important;
    caret-color: #ffffff !important;
    box-shadow: 0 0 0 1000px transparent inset !important;
    -webkit-box-shadow: 0 0 0 1000px transparent inset !important;
    border: 0 !important;
    transition: background-color 9999s ease-in-out 0s !important;
}

.input-shell input:autofill {
    color: #ffffff !important;
    background: transparent !important;
}

.login-options {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 1px;
}

.remember-option {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: var(--muted);
    cursor: pointer;
    font-size: 11px;
    font-weight: 700;
    user-select: none;
}

.remember-option input {
    position: absolute;
    opacity: 0;
}

.remember-option span {
    width: 17px;
    height: 17px;
    display: inline-flex;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 5px;
    background: rgba(255, 255, 255, .07);
    transition: background .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.remember-option input:checked + span {
    border-color: rgba(34, 197, 94, .7);
    background: var(--green);
    box-shadow: 0 0 18px rgba(34, 197, 94, .32);
}

.forgot-link {
    color: #93c5fd;
    text-decoration: none;
    font-size: 11px;
    font-weight: 800;
    transition: color .25s ease, text-shadow .25s ease;
}

.forgot-link:hover {
    color: #ffffff;
    text-shadow: 0 0 18px rgba(59, 130, 246, .42);
}

.login-button {
    width: 100%;
    min-height: 36px;
    margin-top: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 1px solid rgba(59, 130, 246, .52);
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(59, 130, 246, .96), rgba(37, 99, 235, .78));
    color: #ffffff;
    box-shadow: 0 18px 36px rgba(59, 130, 246, .22), inset 0 1px 0 rgba(255, 255, 255, .2);
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
    transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}

.login-button:hover {
    transform: translateY(-2px);
    background: linear-gradient(135deg, rgba(96, 165, 250, .98), rgba(59, 130, 246, .82));
    box-shadow: 0 22px 44px rgba(59, 130, 246, .3), inset 0 1px 0 rgba(255, 255, 255, .24);
}

.login-button span {
    transition: transform .25s ease;
}

.login-button:hover span {
    transform: translateX(3px);
}

.login-footnote {
    margin-top: 22px;
    text-align: center;
    font-weight: 700;
}

@keyframes holoSpin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes aiPulse {
    0%,
    100% {
        transform: scale(.94);
        opacity: .72;
    }

    50% {
        transform: scale(1.08);
        opacity: 1;
    }
}

@keyframes voiceTalk {
    0%,
    100% {
        height: 18px;
        opacity: .45;
    }

    50% {
        height: 54px;
        opacity: 1;
    }
}

@keyframes nodeDrift {
    0%,
    100% {
        transform: translate3d(0, 0, 0);
        opacity: .45;
    }

    50% {
        transform: translate3d(10px, -12px, 0);
        opacity: .95;
    }
}

@media (max-width: 560px) {
    body {
        overflow-y: auto;
    }

    .login-shell {
        padding: 18px;
    }

    .login-card {
        padding: 20px 0;
        border-radius: 20px;
    }

    .login-form {
        width: min(100%, 270px);
    }

    .login-heading h1 {
        font-size: 24px;
    }

    .logo-placeholder {
        width: 100%;
        height: auto;
        border-radius: 0;
    }

    .holo-assistant {
        top: 31%;
        width: 90vw;
        opacity: .48;
    }
}
