/*
 * GDV Aurora Luxury Auth v6
 * Supports Light & Dark mode from one file.
 */
:root {
    --gdv-lux-max-width: 334px;

    --gdv-lux-bg: var(--gdv-brand-canvas);
    --gdv-lux-bg-2: #eef4f8;
    --gdv-lux-text: var(--gdv-brand-ink);
    --gdv-lux-muted: var(--gdv-brand-muted);
    --gdv-lux-faint: rgba(var(--gdv-brand-ink-rgb), .07);
    --gdv-lux-line: rgba(var(--gdv-brand-ink-rgb), .18);
    --gdv-lux-shadow: 0 18px 48px rgba(28, 44, 74, .09);

    /* Brand accents: no generic champagne palette */
    --gdv-lux-primary: var(--gdv-brand-blue);
    --gdv-lux-primary-rgb: var(--gdv-brand-blue-rgb);
    --gdv-lux-warm: var(--gdv-brand-yellow);
    --gdv-lux-warm-rgb: var(--gdv-brand-yellow-rgb);
    --gdv-lux-energy: var(--gdv-brand-red);
    --gdv-lux-energy-rgb: var(--gdv-brand-red-rgb);

    /* Friendly premium face */
    --gdv-lux-face-fill: rgba(255, 255, 255, .82);
    --gdv-lux-face-fill-2: rgba(248, 251, 253, .98);
    --gdv-lux-face-line: var(--gdv-brand-blue);
    --gdv-lux-face-eye: #17597e;
    --gdv-lux-face-blush: rgba(var(--gdv-brand-red-rgb), .15);

    /* Aurora is GDV blue-dominant, yellow/red as supporting energy */
    --gdv-lux-aurora-1: var(--gdv-brand-blue-rgb);
    --gdv-lux-aurora-2: var(--gdv-brand-yellow-rgb);
    --gdv-lux-aurora-3: var(--gdv-brand-red-rgb);
}

html[data-theme="dark"] {
    --gdv-lux-bg: #080d14;
    --gdv-lux-bg-2: #0b1420;
    --gdv-lux-text: #f5f8fb;
    --gdv-lux-muted: #9eacbc;
    --gdv-lux-faint: rgba(255,255,255,.08);
    --gdv-lux-line: rgba(255,255,255,.18);
    --gdv-lux-shadow: 0 18px 48px rgba(0,0,0,.28);

    --gdv-lux-face-fill: rgba(14, 35, 49, .76);
    --gdv-lux-face-fill-2: rgba(10, 26, 38, .94);
    --gdv-lux-face-line: #59a9d5;
    --gdv-lux-face-eye: #eef8ff;
    --gdv-lux-face-blush: rgba(var(--gdv-brand-red-rgb), .16);
}

* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; }
html { color-scheme: light; }
html[data-theme="dark"] { color-scheme: dark; }

body.gdv-luxury-auth {
    margin: 0;
    width: 100%;
    min-width: 0;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
    position: relative;
    isolation: isolate;
    font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: var(--gdv-lux-text);
    background:
        radial-gradient(circle at 50% 120%, rgba(var(--gdv-lux-primary-rgb), .07), transparent 42%),
        linear-gradient(160deg, var(--gdv-lux-bg-2), var(--gdv-lux-bg));
}

body.gdv-luxury-auth::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -4;
    background: radial-gradient(circle at 50% 50%, transparent 0%, rgba(2,4,9,.03) 48%, rgba(2,4,9,.12) 100%);
    pointer-events: none;
}
html[data-theme="dark"] body.gdv-luxury-auth::before {
    background: radial-gradient(circle at 50% 50%, transparent 0%, rgba(2,4,9,.10) 46%, rgba(2,4,9,.58) 100%);
}

.gdv-aurora,
.gdv-aurora-veil,
.gdv-aurora-noise {
    position: fixed;
    inset: 0;
    pointer-events: none;
}
.gdv-aurora { z-index: -5; overflow: hidden; background: var(--gdv-lux-bg); }
.gdv-aurora-blob {
    position: absolute;
    display: block;
    width: 62vw;
    height: 62vw;
    min-width: 560px;
    min-height: 560px;
    border-radius: 44% 56% 63% 37% / 51% 42% 58% 49%;
    filter: blur(96px);
    opacity: .24;
    mix-blend-mode: screen;
    will-change: transform, border-radius;
}
html[data-theme="dark"] .gdv-aurora-blob { opacity: .34; }
.gdv-aurora-blob-a {
    left: -22vw;
    top: -32vw;
    background: radial-gradient(circle at center, rgba(var(--gdv-lux-aurora-1), .92), rgba(var(--gdv-lux-aurora-1), 0) 67%);
    animation: gdvAuroraA 18s ease-in-out infinite alternate;
}
.gdv-aurora-blob-b {
    right: -28vw;
    top: -12vw;
    background: radial-gradient(circle at center, rgba(var(--gdv-lux-aurora-2), .82), rgba(var(--gdv-lux-aurora-2), 0) 68%);
    animation: gdvAuroraB 22s ease-in-out infinite alternate;
}
.gdv-aurora-blob-c {
    left: 24vw;
    bottom: -45vw;
    background: radial-gradient(circle at center, rgba(var(--gdv-lux-aurora-3), .78), rgba(var(--gdv-lux-aurora-3), 0) 68%);
    animation: gdvAuroraC 26s ease-in-out infinite alternate;
}
.gdv-aurora-veil {
    z-index: 1;
    background:
        linear-gradient(135deg, rgba(255,255,255,.025), transparent 24%, rgba(255,255,255,.012) 50%, transparent 74%),
        radial-gradient(circle at 50% 50%, rgba(255,255,255,.022), transparent 40%);
    backdrop-filter: blur(1px);
}
html[data-theme="dark"] .gdv-aurora-veil {
    background:
        linear-gradient(135deg, rgba(255,255,255,.015), transparent 24%, rgba(255,255,255,.01) 50%, transparent 74%),
        radial-gradient(circle at 50% 50%, rgba(255,255,255,.018), transparent 40%);
}
.gdv-aurora-noise {
    z-index: 2;
    opacity: .018;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E");
}
html[data-theme="dark"] .gdv-aurora-noise { opacity: .025; }

.gdv-luxury-brand {
    position: fixed;
    top: max(22px, env(safe-area-inset-top));
    left: max(24px, env(safe-area-inset-left));
    z-index: 10;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: color-mix(in srgb, var(--gdv-lux-text) 82%, transparent);
    font-size: 11px;
    font-weight: 650;
    letter-spacing: .02em;
}
.gdv-luxury-brand img {
    width: 30px;
    height: 30px;
    object-fit: contain;
    border-radius: 9px;
    padding: 3px;
    background: rgba(255,255,255,.24);
    border: 1px solid rgba(255,255,255,.22);
    backdrop-filter: blur(12px);
}
html[data-theme="dark"] .gdv-luxury-brand img {
    background: rgba(255,255,255,.05);
    border-color: rgba(255,255,255,.08);
}

.gdv-luxury-theme-toggle {
    position: fixed;
    top: max(18px, env(safe-area-inset-top));
    right: max(20px, env(safe-area-inset-right));
    z-index: 12;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255,255,255,.26);
    border-radius: 999px;
    background: rgba(255,255,255,.34);
    color: var(--gdv-lux-text);
    display: grid;
    place-items: center;
    cursor: pointer;
    backdrop-filter: blur(14px);
    box-shadow: var(--gdv-lux-shadow);
    transition: .22s ease;
}
html[data-theme="dark"] .gdv-luxury-theme-toggle {
    background: rgba(14, 18, 27, .46);
    border-color: rgba(255,255,255,.08);
}
.gdv-luxury-theme-toggle:hover {
    transform: translateY(-1px) scale(1.02);
}
.gdv-theme-icon {
    position: absolute;
    width: 18px;
    height: 18px;
    transition: .22s ease;
}
.gdv-theme-icon-moon { opacity: 0; transform: scale(.76) rotate(-20deg); }
html[data-theme="dark"] .gdv-theme-icon-sun { opacity: 0; transform: scale(.76) rotate(20deg); }
html[data-theme="dark"] .gdv-theme-icon-moon { opacity: 1; transform: scale(1) rotate(0); }

.gdv-luxury-footer {
    position: fixed;
    z-index: 9;
    left: 50%;
    bottom: max(16px, env(safe-area-inset-bottom));
    transform: translateX(-50%);
    color: color-mix(in srgb, var(--gdv-lux-text) 32%, transparent);
    font-size: 9px;
    white-space: nowrap;
}

.gdv-luxury-shell {
    width: 100%;
    height: 100vh;
    height: 100dvh;
    display: grid;
    place-items: center;
    overflow: hidden;
    padding: clamp(72px, 8vh, 90px) 22px clamp(46px, 6vh, 66px);
}
.gdv-luxury-authbox {
    width: min(var(--gdv-lux-max-width), calc(100vw - 36px));
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(22px, 3.2vh, 34px);
    transform: translateY(-1.5vh);
}
.gdv-luxury-content { width: 100%; }

.gdv-luxury-face {
    position: relative;
    width: clamp(110px, 13.5vh, 140px);
    height: clamp(110px, 13.5vh, 140px);
    display: grid;
    place-items: center;
    animation: gdvFaceFloat 5.8s ease-in-out infinite;
    cursor: default;
}
.gdv-luxury-face-halo {
    position: absolute;
    inset: -22%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(var(--gdv-lux-primary-rgb), .18), rgba(var(--gdv-lux-primary-rgb), .04) 48%, transparent 70%);
    filter: blur(10px);
    animation: gdvHaloPulse 5s ease-in-out infinite;
}
.gdv-luxury-face-ring {
    position: relative;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    border: 2px solid rgba(var(--gdv-lux-primary-rgb), .72);
    background: linear-gradient(180deg, var(--gdv-lux-face-fill), var(--gdv-lux-face-fill-2));
    box-shadow:
        0 0 0 1px rgba(255,255,255,.18) inset,
        0 16px 46px rgba(var(--gdv-lux-primary-rgb), .12),
        0 12px 40px rgba(21, 28, 43, .10);
    backdrop-filter: blur(10px);
}
html[data-theme="dark"] .gdv-luxury-face-ring {
    box-shadow:
        0 0 0 1px rgba(255,255,255,.03) inset,
        0 16px 46px rgba(var(--gdv-lux-primary-rgb), .10),
        0 14px 40px rgba(0,0,0,.20);
}
.gdv-luxury-face-highlight {
    position: absolute;
    inset: 10px 12px auto auto;
    width: 22%;
    height: 18%;
    border-radius: 50%;
    background: rgba(255,255,255,.30);
    filter: blur(2px);
}
html[data-theme="dark"] .gdv-luxury-face-highlight { background: rgba(255,255,255,.08); }
.gdv-luxury-eye {
    position: absolute;
    top: 34%;
    width: 16%;
    height: 18%;
    border-radius: 50%;
    background: rgba(255,255,255,.72);
    border: 1.5px solid rgba(var(--gdv-lux-primary-rgb), .42);
    display: grid;
    place-items: center;
    overflow: hidden;
}
html[data-theme="dark"] .gdv-luxury-eye {
    background: rgba(255,255,255,.06);
    border-color: rgba(var(--gdv-lux-primary-rgb), .46);
}
.gdv-luxury-eye-left { left: 24%; }
.gdv-luxury-eye-right { right: 24%; }
.gdv-luxury-pupil {
    width: 34%;
    height: 34%;
    border-radius: 50%;
    background: var(--gdv-lux-face-eye);
    box-shadow: 0 0 8px rgba(var(--gdv-lux-primary-rgb), .12);
    transition: transform .12s ease-out;
}
.gdv-luxury-pupil::after {
    content: '';
    position: absolute;
    width: 28%;
    height: 28%;
    top: 18%;
    right: 16%;
    border-radius: 50%;
    background: rgba(255,255,255,.82);
}
.gdv-luxury-lid {
    position: absolute;
    inset: -2px;
    border-radius: 50%;
    background: linear-gradient(180deg, var(--gdv-lux-face-fill), var(--gdv-lux-face-fill-2));
    transform: translateY(-110%);
    transform-origin: top;
    animation: gdvBlink 6.8s infinite;
}
.gdv-luxury-eye-right .gdv-luxury-lid { animation-delay: .03s; }
.gdv-luxury-blush {
    position: absolute;
    top: 57%;
    width: 16%;
    height: 9%;
    border-radius: 50%;
    background: var(--gdv-lux-face-blush);
    filter: blur(2px);
}
.gdv-luxury-blush-left { left: 14%; }
.gdv-luxury-blush-right { right: 14%; }
.gdv-luxury-smile {
    position: absolute;
    left: 50%;
    bottom: 22%;
    width: 35%;
    height: 19%;
    transform: translateX(-50%);
    border-bottom: 3px solid var(--gdv-lux-face-line);
    border-radius: 0 0 999px 999px;
    filter: drop-shadow(0 0 4px rgba(var(--gdv-lux-primary-rgb), .10));
}
.gdv-luxury-face:hover .gdv-luxury-smile {
    height: 22%;
}

.gdv-luxury-heading {
    margin-bottom: clamp(22px, 3.2vh, 30px);
    text-align: center;
}
.gdv-luxury-heading span {
    color: color-mix(in srgb, var(--gdv-lux-text) 78%, transparent);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.gdv-luxury-form {
    width: 100%;
    display: grid;
    gap: 18px;
}
.gdv-luxury-field {
    position: relative;
    width: 100%;
    padding-top: 10px;
}
.gdv-luxury-field input {
    width: 100%;
    height: 44px;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--gdv-lux-text);
    font-size: 16px;
    font-weight: 500;
    padding: 0 34px 0 0;
    border-radius: 0;
}
.gdv-luxury-field input::placeholder { color: transparent; }
.gdv-luxury-field label {
    position: absolute;
    left: 0;
    top: 16px;
    font-size: 13px;
    color: var(--gdv-lux-muted);
    transition: transform .18s ease, color .18s ease, font-size .18s ease;
    pointer-events: none;
}
.gdv-luxury-line {
    display: block;
    width: 100%;
    height: 1.5px;
    background: var(--gdv-lux-line);
    transform-origin: left;
    transition: transform .18s ease, background .18s ease;
}
.gdv-luxury-field input:focus + label,
.gdv-luxury-field input:not(:placeholder-shown) + label,
.gdv-luxury-field input:-webkit-autofill + label {
    transform: translateY(-14px);
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gdv-lux-primary);
}
.gdv-luxury-field input:focus ~ .gdv-luxury-line,
.gdv-luxury-field input:not(:placeholder-shown) ~ .gdv-luxury-line,
.gdv-luxury-field input:-webkit-autofill ~ .gdv-luxury-line {
    background: linear-gradient(90deg, var(--gdv-lux-primary), var(--gdv-lux-primary));
    transform: scaleX(1);
}
.gdv-luxury-password-toggle {
    position: absolute;
    right: 0;
    top: 15px;
    width: 24px;
    height: 24px;
    border: 0;
    padding: 0;
    background: transparent;
    color: color-mix(in srgb, var(--gdv-lux-text) 58%, transparent);
    display: inline-grid;
    place-items: center;
    cursor: pointer;
}
.gdv-luxury-password-toggle svg { width: 18px; height: 18px; }
.gdv-luxury-field.is-invalid .gdv-luxury-line { background: rgba(220, 38, 38, .85); }
.gdv-luxury-error {
    display: block;
    margin-top: 7px;
    color: #dc2626;
    font-size: 10px;
}

.gdv-luxury-options {
    width: 100%;
    margin-top: 1px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    font-size: 11px;
}
.gdv-luxury-options a,
.gdv-luxury-remember { color: var(--gdv-lux-muted) !important; }
.gdv-luxury-remember {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    user-select: none;
}
.gdv-luxury-remember input { position: absolute; opacity: 0; }
.gdv-luxury-remember span {
    width: 15px;
    height: 15px;
    border-radius: 4px;
    border: 1px solid color-mix(in srgb, var(--gdv-lux-text) 24%, transparent);
    display: inline-grid;
    place-items: center;
    transition: .18s ease;
}
.gdv-luxury-remember input:checked + span {
    background: var(--gdv-lux-primary);
    border-color: transparent;
}
.gdv-luxury-remember input:checked + span::after {
    content: '';
    width: 7px;
    height: 4px;
    border-left: 1.8px solid #ffffff;
    border-bottom: 1.8px solid #ffffff;
    transform: rotate(-45deg) translateY(-.5px);
}

.gdv-luxury-submit {
    width: 100%;
    margin-top: 6px;
    height: 46px;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #ffffff;
    background: linear-gradient(135deg, #2b82b5, var(--gdv-lux-primary));
    box-shadow: 0 12px 30px rgba(var(--gdv-lux-primary-rgb), .18);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .02em;
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.gdv-luxury-submit:hover {
    transform: translateY(-1px);
    box-shadow: 0 16px 34px rgba(var(--gdv-lux-primary-rgb), .24);
    filter: saturate(1.04);
}
.gdv-luxury-submit svg { width: 16px; height: 16px; }

/* Support auth pages */
.gdv-luxury-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
    color: var(--gdv-lux-muted) !important;
    font-size: 10.5px;
    text-decoration: none;
}
.gdv-luxury-title {
    margin: 0 0 8px;
    color: var(--gdv-lux-text);
    font-size: 24px;
    line-height: 1.08;
    text-align: center;
    font-weight: 700;
}
.gdv-luxury-subtitle {
    margin: 0 0 18px;
    color: var(--gdv-lux-muted);
    font-size: 12px;
    line-height: 1.65;
    text-align: center;
}
.gdv-luxury-alert {
    margin-bottom: 14px;
    color: color-mix(in srgb, var(--gdv-lux-text) 76%, transparent);
    font-size: 11px;
    line-height: 1.6;
    text-align: center;
}
.gdv-luxury-submit.is-secondary {
    background: rgba(255,255,255,.24);
    color: var(--gdv-lux-text);
    box-shadow: none;
    border: 1px solid color-mix(in srgb, var(--gdv-lux-text) 14%, transparent);
}
html[data-theme="dark"] .gdv-luxury-submit.is-secondary {
    background: rgba(255,255,255,.05);
}

@keyframes gdvAuroraA {
    0%   { transform: translate3d(0, 0, 0) scale(1); }
    50%  { transform: translate3d(12vw, 8vw, 0) scale(1.08); }
    100% { transform: translate3d(5vw, 18vw, 0) scale(.96); }
}
@keyframes gdvAuroraB {
    0%   { transform: translate3d(0, 0, 0) scale(1); }
    50%  { transform: translate3d(-14vw, 10vw, 0) scale(1.04); }
    100% { transform: translate3d(-6vw, 18vw, 0) scale(.96); }
}
@keyframes gdvAuroraC {
    0%   { transform: translate3d(0, 0, 0) scale(1); }
    50%  { transform: translate3d(-6vw, -12vw, 0) scale(1.06); }
    100% { transform: translate3d(10vw, -6vw, 0) scale(.98); }
}
@keyframes gdvFaceFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}
@keyframes gdvHaloPulse {
    0%, 100% { transform: scale(1); opacity: .9; }
    50% { transform: scale(1.06); opacity: 1; }
}
@keyframes gdvBlink {
    0%, 46%, 48%, 100% { transform: translateY(-110%); }
    47% { transform: translateY(0); }
}

@media (max-width: 640px) {
    .gdv-luxury-brand {
        top: max(16px, env(safe-area-inset-top));
        left: max(16px, env(safe-area-inset-left));
        font-size: 10px;
    }
    .gdv-luxury-brand img { width: 28px; height: 28px; }
    .gdv-luxury-theme-toggle {
        top: max(14px, env(safe-area-inset-top));
        right: max(14px, env(safe-area-inset-right));
        width: 40px;
        height: 40px;
    }
    .gdv-luxury-shell {
        padding: 68px 18px 42px;
    }
    .gdv-luxury-authbox {
        width: min(var(--gdv-lux-max-width), calc(100vw - 28px));
        gap: 22px;
        transform: translateY(-1vh);
    }
    .gdv-luxury-face {
        width: 104px;
        height: 104px;
    }
    .gdv-luxury-heading { margin-bottom: 20px; }
    .gdv-luxury-heading span { font-size: 11px; }
    .gdv-luxury-field input {
        font-size: 15px;
        height: 42px;
    }
    .gdv-luxury-options {
        font-size: 10.5px;
        gap: 10px;
    }
    .gdv-luxury-submit { height: 44px; }
    .gdv-luxury-footer { font-size: 8.5px; }
}

@media (max-height: 760px) {
    .gdv-luxury-shell {
        padding-top: 64px;
        padding-bottom: 34px;
    }
    .gdv-luxury-authbox { gap: 20px; }
    .gdv-luxury-face {
        width: 100px;
        height: 100px;
    }
    .gdv-luxury-heading { margin-bottom: 18px; }
    .gdv-luxury-form { gap: 16px; }
    .gdv-luxury-submit { height: 42px; }
}


/* ===== GDV BRAND OVERRIDES ===== */
.gdv-luxury-face-halo {
    background:
        radial-gradient(circle at 48% 44%, rgba(var(--gdv-lux-warm-rgb), .20), rgba(var(--gdv-lux-primary-rgb), .08) 47%, transparent 72%);
}
.gdv-luxury-face-ring {
    border-color: rgba(var(--gdv-lux-primary-rgb), .62);
    box-shadow:
        0 0 0 1px rgba(255,255,255,.18) inset,
        0 16px 46px rgba(var(--gdv-lux-primary-rgb), .10),
        0 12px 40px rgba(21,28,43,.08);
}
html[data-theme="dark"] .gdv-luxury-face-ring {
    border-color: rgba(89,169,213,.55);
    box-shadow:
        0 0 0 1px rgba(255,255,255,.03) inset,
        0 16px 46px rgba(var(--gdv-lux-primary-rgb), .12),
        0 14px 40px rgba(0,0,0,.22);
}
.gdv-luxury-smile { border-bottom-color: var(--gdv-lux-face-line); }
.gdv-luxury-blush { background: var(--gdv-lux-face-blush); }
.gdv-luxury-field input:focus + label,
.gdv-luxury-field input:not(:placeholder-shown) + label,
.gdv-luxury-field input:-webkit-autofill + label { color: var(--gdv-lux-primary); }
.gdv-luxury-field input:focus ~ .gdv-luxury-line,
.gdv-luxury-field input:not(:placeholder-shown) ~ .gdv-luxury-line,
.gdv-luxury-field input:-webkit-autofill ~ .gdv-luxury-line {
    background: linear-gradient(90deg, var(--gdv-lux-primary), #55a5d0);
}
.gdv-luxury-submit {
    color: #fff;
    background: linear-gradient(135deg, #2f86b7, var(--gdv-brand-blue));
    box-shadow: 0 12px 30px rgba(var(--gdv-brand-blue-rgb), .20);
}
.gdv-luxury-submit:hover {
    box-shadow: 0 16px 34px rgba(var(--gdv-brand-blue-rgb), .28);
}
.gdv-luxury-remember input:checked + span {
    background: var(--gdv-brand-blue);
}
.gdv-luxury-theme-toggle:hover {
    border-color: rgba(var(--gdv-brand-blue-rgb), .24);
}
/* Blue stays dominant; yellow and red remain soft, recognizable GDV accents. */
.gdv-aurora-blob-a { opacity: .34; }
.gdv-aurora-blob-b { opacity: .18; filter: blur(110px); }
.gdv-aurora-blob-c { opacity: .12; filter: blur(120px); }
html[data-theme="dark"] .gdv-aurora-blob-a { opacity: .38; }
html[data-theme="dark"] .gdv-aurora-blob-b { opacity: .16; }
html[data-theme="dark"] .gdv-aurora-blob-c { opacity: .14; }

/* ======================================================================
   GDV V7.1 — LUXURY AURORA FIX
   Preserve the existing auth layout/features; only improve palette/aurora.
   ====================================================================== */
:root {
    /* Brand-anchored luxury blues: GDV Blue -> Sapphire -> Aurora Azure */
    --gdv-lux-aurora-blue-1: 32, 116, 165;
    --gdv-lux-aurora-blue-2: 47, 74, 181;
    --gdv-lux-aurora-blue-3: 42, 168, 201;

    --gdv-lux-bg: #f4f8fc;
    --gdv-lux-bg-2: #eef5fb;
}

html[data-theme="dark"] {
    --gdv-lux-bg: #07111d;
    --gdv-lux-bg-2: #0b1826;
}

/* The canvas remains visibly aurora instead of being covered by a flat layer. */
.gdv-aurora {
    background:
        radial-gradient(circle at 48% 46%, rgba(255,255,255,.42), transparent 34%),
        linear-gradient(145deg, #f8fbfe 0%, #eef6fc 48%, #f3f7fb 100%);
}
html[data-theme="dark"] .gdv-aurora {
    background:
        radial-gradient(circle at 48% 44%, rgba(36,86,122,.13), transparent 37%),
        linear-gradient(145deg, #07111d 0%, #0a1624 46%, #071019 100%);
}

.gdv-aurora-blob {
    mix-blend-mode: multiply;
    filter: blur(82px);
    opacity: .58;
}
html[data-theme="dark"] .gdv-aurora-blob {
    mix-blend-mode: screen;
    opacity: .48;
    filter: blur(94px);
}

.gdv-aurora-blob-a {
    width: 72vw;
    height: 72vw;
    left: -27vw;
    top: -34vw;
    background:
        radial-gradient(circle at 48% 50%,
            rgba(var(--gdv-lux-aurora-blue-1), .76) 0%,
            rgba(var(--gdv-lux-aurora-blue-1), .32) 37%,
            rgba(var(--gdv-lux-aurora-blue-1), 0) 70%);
    opacity: .52;
}

.gdv-aurora-blob-b {
    width: 68vw;
    height: 68vw;
    right: -24vw;
    top: -20vw;
    background:
        radial-gradient(circle at 50% 50%,
            rgba(var(--gdv-lux-aurora-blue-2), .70) 0%,
            rgba(var(--gdv-lux-aurora-blue-2), .28) 38%,
            rgba(var(--gdv-lux-aurora-blue-2), 0) 70%);
    opacity: .42;
    filter: blur(90px);
}

.gdv-aurora-blob-c {
    width: 76vw;
    height: 76vw;
    left: 20vw;
    bottom: -47vw;
    background:
        radial-gradient(circle at 50% 48%,
            rgba(var(--gdv-lux-aurora-blue-3), .68) 0%,
            rgba(var(--gdv-lux-aurora-blue-3), .25) 38%,
            rgba(var(--gdv-lux-aurora-blue-3), 0) 70%);
    opacity: .44;
    filter: blur(92px);
}

html[data-theme="dark"] .gdv-aurora-blob-a { opacity: .47; }
html[data-theme="dark"] .gdv-aurora-blob-b { opacity: .40; }
html[data-theme="dark"] .gdv-aurora-blob-c { opacity: .38; }

/* Tiny GDV warm reflections: branding without turning the background rainbow. */
.gdv-aurora-veil {
    background:
        radial-gradient(circle at 16% 82%, rgba(var(--gdv-brand-yellow-rgb), .075), transparent 20%),
        radial-gradient(circle at 88% 78%, rgba(var(--gdv-brand-red-rgb), .055), transparent 19%),
        linear-gradient(118deg, rgba(255,255,255,.16), transparent 24%, rgba(255,255,255,.04) 49%, transparent 72%),
        radial-gradient(circle at 50% 50%, rgba(255,255,255,.08), transparent 43%);
    backdrop-filter: blur(1px);
}
html[data-theme="dark"] .gdv-aurora-veil {
    background:
        radial-gradient(circle at 16% 82%, rgba(var(--gdv-brand-yellow-rgb), .035), transparent 19%),
        radial-gradient(circle at 88% 78%, rgba(var(--gdv-brand-red-rgb), .030), transparent 18%),
        linear-gradient(118deg, rgba(92,175,222,.035), transparent 23%, rgba(255,255,255,.012) 48%, transparent 72%);
}

/* Keep the luxury face friendly and align it with the blue gradient. */
.gdv-luxury-face-halo {
    background:
        radial-gradient(circle at 45% 43%, rgba(var(--gdv-brand-yellow-rgb), .11), rgba(var(--gdv-lux-aurora-blue-3), .09) 42%, rgba(var(--gdv-lux-aurora-blue-1), .035) 58%, transparent 73%);
}
.gdv-luxury-face-ring {
    border-color: rgba(var(--gdv-brand-blue-rgb), .54);
    box-shadow:
        0 0 0 1px rgba(255,255,255,.28) inset,
        0 18px 48px rgba(var(--gdv-lux-aurora-blue-1), .12),
        0 12px 42px rgba(21,28,43,.08);
}
html[data-theme="dark"] .gdv-luxury-face-ring {
    border-color: rgba(92,176,220,.58);
    box-shadow:
        0 0 0 1px rgba(255,255,255,.04) inset,
        0 18px 50px rgba(var(--gdv-lux-aurora-blue-1), .16),
        0 14px 42px rgba(0,0,0,.22);
}

/* Primary actions use a richer blue-on-blue gradient instead of a flat corporate blue. */
.gdv-luxury-submit {
    background:
        linear-gradient(135deg,
            rgb(var(--gdv-lux-aurora-blue-3)) 0%,
            rgb(var(--gdv-lux-aurora-blue-1)) 46%,
            rgb(var(--gdv-lux-aurora-blue-2)) 100%);
    color: #fff;
    box-shadow:
        0 13px 30px rgba(var(--gdv-brand-blue-rgb), .22),
        0 4px 14px rgba(var(--gdv-lux-aurora-blue-2), .10);
}
.gdv-luxury-submit:hover {
    box-shadow:
        0 17px 38px rgba(var(--gdv-brand-blue-rgb), .29),
        0 6px 18px rgba(var(--gdv-lux-aurora-blue-2), .13);
}
.gdv-luxury-field input:focus ~ .gdv-luxury-line,
.gdv-luxury-field input:not(:placeholder-shown) ~ .gdv-luxury-line,
.gdv-luxury-field input:-webkit-autofill ~ .gdv-luxury-line {
    background: linear-gradient(90deg,
        rgb(var(--gdv-lux-aurora-blue-3)),
        rgb(var(--gdv-lux-aurora-blue-1)),
        rgb(var(--gdv-lux-aurora-blue-2)));
}

/* Theme button must remain above every aurora layer and be clickable. */
.gdv-luxury-theme-toggle {
    z-index: 30;
    pointer-events: auto;
    touch-action: manipulation;
}

/* ======================================================================
   GDV V7.2 — DUAL LUXURY AURORA
   Light: white + luxury blue.
   Dark : black + luxury yellow/gold.
   IMPORTANT: visual-only override. Auth structure/theme handler stays intact.
   ====================================================================== */
:root {
    /* Light mode: crisp luxury blue, not pastel */
    --gdv-v72-blue-1: 10, 95, 230;      /* Royal / GDV anchor */
    --gdv-v72-blue-2: 18, 62, 164;      /* Sapphire depth */
    --gdv-v72-blue-3: 0, 157, 210;      /* Azure brilliance */
    --gdv-v72-violet: 91, 68, 180;      /* Tiny luxury depth */

    --gdv-lux-bg: #f9fbfe;
    --gdv-lux-bg-2: #ffffff;
    --gdv-lux-primary: var(--gdv-brand-blue);
    --gdv-lux-primary-rgb: var(--gdv-brand-blue-rgb);
    --gdv-lux-face-line: #176c9d;
    --gdv-lux-face-eye: #12557e;
}

html[data-theme="dark"] {
    /* Dark mode: black + gold/yellow is the identity, not blue */
    --gdv-v72-gold-1: 242, 209, 0;      /* GDV yellow */
    --gdv-v72-gold-2: 255, 185, 35;     /* Amber / molten gold */
    --gdv-v72-gold-3: 255, 222, 92;     /* Light gold highlight */
    --gdv-v72-wine: 108, 38, 67;        /* Very subtle luxury depth */
    --gdv-v72-violet-dark: 77, 51, 117; /* Very subtle secondary depth */

    --gdv-lux-bg: #050505;
    --gdv-lux-bg-2: #0b0a07;
    --gdv-lux-primary: var(--gdv-brand-yellow);
    --gdv-lux-primary-rgb: var(--gdv-brand-yellow-rgb);
    --gdv-lux-face-fill: rgba(24, 21, 11, .86);
    --gdv-lux-face-fill-2: rgba(12, 11, 7, .96);
    --gdv-lux-face-line: #f0d53a;
    --gdv-lux-face-eye: #ffe88c;
    --gdv-lux-face-blush: rgba(227, 29, 59, .13);
}

/* --- Canvas: keep enough contrast that movement is obvious --- */
.gdv-aurora {
    background:
        radial-gradient(circle at 50% 48%, rgba(255,255,255,.82) 0%, rgba(255,255,255,.38) 32%, transparent 58%),
        linear-gradient(145deg, #ffffff 0%, #f7fbff 42%, #eef6ff 72%, #fbfdff 100%);
}
html[data-theme="dark"] .gdv-aurora {
    background:
        radial-gradient(circle at 50% 48%, rgba(255, 214, 70, .035) 0%, transparent 38%),
        linear-gradient(145deg, #030303 0%, #080806 43%, #0d0a04 72%, #040404 100%);
}

/* Moving aurora ribbons. These are intentionally visible but still soft. */
.gdv-aurora::before,
.gdv-aurora::after {
    content: '';
    position: absolute;
    pointer-events: none;
    will-change: transform, opacity;
    border-radius: 48% 52% 64% 36% / 42% 54% 46% 58%;
}
.gdv-aurora::before {
    width: 138vw;
    height: 48vh;
    left: -27vw;
    top: 8vh;
    opacity: .31;
    filter: blur(52px) saturate(1.18);
    background:
        linear-gradient(105deg,
            transparent 3%,
            rgba(var(--gdv-v72-blue-2), .10) 17%,
            rgba(var(--gdv-v72-blue-1), .44) 35%,
            rgba(var(--gdv-v72-blue-3), .34) 52%,
            rgba(var(--gdv-v72-violet), .13) 69%,
            transparent 92%);
    transform: rotate(-12deg) translate3d(-10vw, -5vh, 0);
    animation: gdvAuroraRibbonA 11s ease-in-out infinite alternate;
}
.gdv-aurora::after {
    width: 120vw;
    height: 42vh;
    right: -33vw;
    bottom: 2vh;
    opacity: .24;
    filter: blur(58px) saturate(1.15);
    background:
        linear-gradient(78deg,
            transparent 4%,
            rgba(var(--gdv-v72-blue-3), .22) 19%,
            rgba(var(--gdv-v72-blue-1), .34) 43%,
            rgba(var(--gdv-v72-blue-2), .28) 64%,
            transparent 91%);
    transform: rotate(10deg) translate3d(10vw, 4vh, 0);
    animation: gdvAuroraRibbonB 13s ease-in-out infinite alternate;
}

html[data-theme="dark"] .gdv-aurora::before {
    opacity: .36;
    filter: blur(56px) saturate(1.22);
    background:
        linear-gradient(105deg,
            transparent 2%,
            rgba(var(--gdv-v72-wine), .10) 17%,
            rgba(var(--gdv-v72-gold-2), .24) 31%,
            rgba(var(--gdv-v72-gold-1), .52) 48%,
            rgba(var(--gdv-v72-gold-3), .27) 64%,
            rgba(var(--gdv-v72-violet-dark), .10) 78%,
            transparent 94%);
}
html[data-theme="dark"] .gdv-aurora::after {
    opacity: .28;
    filter: blur(62px) saturate(1.18);
    background:
        linear-gradient(78deg,
            transparent 4%,
            rgba(var(--gdv-v72-wine), .09) 18%,
            rgba(var(--gdv-v72-gold-2), .27) 34%,
            rgba(var(--gdv-v72-gold-1), .38) 54%,
            rgba(var(--gdv-v72-gold-3), .17) 72%,
            transparent 93%);
}

/* Three large blobs move across longer paths and at faster, readable speeds. */
.gdv-aurora-blob {
    mix-blend-mode: multiply;
    filter: blur(72px) saturate(1.16);
    opacity: .56;
}
.gdv-aurora-blob-a {
    width: 76vw;
    height: 76vw;
    left: -32vw;
    top: -31vw;
    background:
        radial-gradient(circle at 48% 50%,
            rgba(var(--gdv-v72-blue-1), .78) 0%,
            rgba(var(--gdv-v72-blue-1), .38) 31%,
            rgba(var(--gdv-v72-blue-2), .15) 50%,
            transparent 70%);
    opacity: .55;
    animation: gdvAuroraV72A 12s cubic-bezier(.45,.05,.55,.95) infinite alternate;
}
.gdv-aurora-blob-b {
    width: 70vw;
    height: 70vw;
    right: -28vw;
    top: -16vw;
    background:
        radial-gradient(circle at 50% 50%,
            rgba(var(--gdv-v72-blue-3), .70) 0%,
            rgba(var(--gdv-v72-blue-3), .30) 34%,
            rgba(var(--gdv-v72-violet), .10) 52%,
            transparent 70%);
    opacity: .46;
    animation: gdvAuroraV72B 14s cubic-bezier(.45,.05,.55,.95) infinite alternate;
}
.gdv-aurora-blob-c {
    width: 78vw;
    height: 78vw;
    left: 16vw;
    bottom: -48vw;
    background:
        radial-gradient(circle at 50% 48%,
            rgba(var(--gdv-v72-blue-2), .58) 0%,
            rgba(var(--gdv-v72-blue-1), .25) 34%,
            rgba(var(--gdv-v72-blue-3), .16) 51%,
            transparent 71%);
    opacity: .43;
    animation: gdvAuroraV72C 16s cubic-bezier(.45,.05,.55,.95) infinite alternate;
}

html[data-theme="dark"] .gdv-aurora-blob {
    mix-blend-mode: screen;
    filter: blur(78px) saturate(1.20);
}
html[data-theme="dark"] .gdv-aurora-blob-a {
    background:
        radial-gradient(circle at 48% 50%,
            rgba(var(--gdv-v72-gold-1), .83) 0%,
            rgba(var(--gdv-v72-gold-2), .34) 33%,
            rgba(var(--gdv-v72-wine), .08) 50%,
            transparent 70%);
    opacity: .45;
}
html[data-theme="dark"] .gdv-aurora-blob-b {
    background:
        radial-gradient(circle at 50% 50%,
            rgba(var(--gdv-v72-gold-2), .68) 0%,
            rgba(var(--gdv-v72-gold-3), .25) 34%,
            rgba(var(--gdv-v72-violet-dark), .08) 52%,
            transparent 70%);
    opacity: .38;
}
html[data-theme="dark"] .gdv-aurora-blob-c {
    background:
        radial-gradient(circle at 50% 48%,
            rgba(var(--gdv-v72-gold-1), .54) 0%,
            rgba(var(--gdv-v72-gold-2), .24) 35%,
            rgba(var(--gdv-v72-wine), .09) 53%,
            transparent 72%);
    opacity: .34;
}

/* Veil adds just enough cross-colour depth without becoming pastel/rainbow. */
.gdv-aurora-veil {
    background:
        radial-gradient(circle at 84% 79%, rgba(var(--gdv-v72-violet), .065), transparent 18%),
        radial-gradient(circle at 14% 82%, rgba(var(--gdv-brand-yellow-rgb), .045), transparent 16%),
        linear-gradient(120deg, rgba(255,255,255,.15), transparent 24%, rgba(255,255,255,.025) 52%, transparent 76%);
}
html[data-theme="dark"] .gdv-aurora-veil {
    background:
        radial-gradient(circle at 86% 78%, rgba(var(--gdv-v72-wine), .11), transparent 19%),
        radial-gradient(circle at 16% 84%, rgba(var(--gdv-v72-violet-dark), .08), transparent 18%),
        linear-gradient(120deg, rgba(255, 222, 92, .028), transparent 24%, rgba(255,255,255,.008) 52%, transparent 76%);
}

/* --- Light mode: white + blue luxury --- */
.gdv-luxury-face-halo {
    background:
        radial-gradient(circle at 45% 43%,
            rgba(var(--gdv-v72-blue-3), .15),
            rgba(var(--gdv-v72-blue-1), .08) 43%,
            rgba(var(--gdv-brand-yellow-rgb), .035) 60%,
            transparent 74%);
}
.gdv-luxury-face-ring {
    border-color: rgba(var(--gdv-v72-blue-1), .50);
    box-shadow:
        0 0 0 1px rgba(255,255,255,.36) inset,
        0 18px 50px rgba(var(--gdv-v72-blue-1), .14),
        0 12px 42px rgba(16, 36, 68, .08);
}
.gdv-luxury-submit {
    color: #fff;
    background:
        linear-gradient(135deg,
            rgb(var(--gdv-v72-blue-3)) 0%,
            rgb(var(--gdv-v72-blue-1)) 45%,
            rgb(var(--gdv-v72-blue-2)) 100%);
    box-shadow:
        0 14px 32px rgba(var(--gdv-v72-blue-1), .23),
        0 5px 17px rgba(var(--gdv-v72-blue-3), .11);
}
.gdv-luxury-submit:hover {
    box-shadow:
        0 18px 40px rgba(var(--gdv-v72-blue-1), .30),
        0 7px 20px rgba(var(--gdv-v72-blue-3), .14);
}
.gdv-luxury-field input:focus ~ .gdv-luxury-line,
.gdv-luxury-field input:not(:placeholder-shown) ~ .gdv-luxury-line,
.gdv-luxury-field input:-webkit-autofill ~ .gdv-luxury-line {
    background: linear-gradient(90deg,
        rgb(var(--gdv-v72-blue-3)),
        rgb(var(--gdv-v72-blue-1)),
        rgb(var(--gdv-v72-blue-2)));
}

/* --- Dark mode: black + yellow/gold luxury --- */
html[data-theme="dark"] body.gdv-luxury-auth {
    background:
        radial-gradient(circle at 50% 118%, rgba(var(--gdv-v72-gold-1), .055), transparent 40%),
        linear-gradient(160deg, #0c0a05, #030303);
}
html[data-theme="dark"] .gdv-luxury-face-halo {
    background:
        radial-gradient(circle at 45% 43%,
            rgba(var(--gdv-v72-gold-3), .21),
            rgba(var(--gdv-v72-gold-1), .10) 42%,
            rgba(var(--gdv-v72-wine), .035) 61%,
            transparent 75%);
}
html[data-theme="dark"] .gdv-luxury-face-ring {
    border-color: rgba(var(--gdv-v72-gold-3), .59);
    box-shadow:
        0 0 0 1px rgba(255,255,255,.025) inset,
        0 18px 52px rgba(var(--gdv-v72-gold-1), .13),
        0 14px 44px rgba(0,0,0,.32);
}
html[data-theme="dark"] .gdv-luxury-eye {
    border-color: rgba(var(--gdv-v72-gold-3), .42);
    background: rgba(255, 220, 80, .035);
}
html[data-theme="dark"] .gdv-luxury-pupil {
    background: rgb(var(--gdv-v72-gold-3));
    box-shadow: 0 0 10px rgba(var(--gdv-v72-gold-1), .17);
}
html[data-theme="dark"] .gdv-luxury-field input:focus + label,
html[data-theme="dark"] .gdv-luxury-field input:not(:placeholder-shown) + label,
html[data-theme="dark"] .gdv-luxury-field input:-webkit-autofill + label {
    color: rgb(var(--gdv-v72-gold-3));
}
html[data-theme="dark"] .gdv-luxury-field input:focus ~ .gdv-luxury-line,
html[data-theme="dark"] .gdv-luxury-field input:not(:placeholder-shown) ~ .gdv-luxury-line,
html[data-theme="dark"] .gdv-luxury-field input:-webkit-autofill ~ .gdv-luxury-line {
    background: linear-gradient(90deg,
        rgb(var(--gdv-v72-gold-3)),
        rgb(var(--gdv-v72-gold-1)),
        rgb(var(--gdv-v72-gold-2)));
}
html[data-theme="dark"] .gdv-luxury-submit {
    color: #171405;
    background:
        linear-gradient(135deg,
            rgb(var(--gdv-v72-gold-3)) 0%,
            rgb(var(--gdv-v72-gold-1)) 46%,
            rgb(var(--gdv-v72-gold-2)) 100%);
    box-shadow:
        0 14px 34px rgba(var(--gdv-v72-gold-1), .17),
        0 5px 18px rgba(var(--gdv-v72-gold-2), .10);
}
html[data-theme="dark"] .gdv-luxury-submit:hover {
    box-shadow:
        0 18px 42px rgba(var(--gdv-v72-gold-1), .23),
        0 7px 22px rgba(var(--gdv-v72-gold-2), .13);
}
html[data-theme="dark"] .gdv-luxury-remember input:checked + span {
    background: linear-gradient(145deg,
        rgb(var(--gdv-v72-gold-3)),
        rgb(var(--gdv-v72-gold-1)));
}
html[data-theme="dark"] .gdv-luxury-remember input:checked + span::after {
    border-left-color: #171405;
    border-bottom-color: #171405;
}
html[data-theme="dark"] .gdv-luxury-theme-toggle:hover {
    border-color: rgba(var(--gdv-v72-gold-1), .26);
    box-shadow: 0 12px 30px rgba(var(--gdv-v72-gold-1), .08);
}

@keyframes gdvAuroraV72A {
    0%   { transform: translate3d(-4vw, -3vh, 0) scale(.95) rotate(-7deg); border-radius: 44% 56% 63% 37% / 51% 42% 58% 49%; }
    35%  { transform: translate3d(20vw, 11vh, 0) scale(1.08) rotate(5deg); border-radius: 57% 43% 39% 61% / 48% 58% 42% 52%; }
    70%  { transform: translate3d(34vw, 23vh, 0) scale(.99) rotate(12deg); border-radius: 38% 62% 54% 46% / 63% 40% 60% 37%; }
    100% { transform: translate3d(15vw, 34vh, 0) scale(1.05) rotate(3deg); border-radius: 53% 47% 66% 34% / 39% 59% 41% 61%; }
}
@keyframes gdvAuroraV72B {
    0%   { transform: translate3d(8vw, -5vh, 0) scale(1.04) rotate(7deg); }
    40%  { transform: translate3d(-22vw, 13vh, 0) scale(.96) rotate(-8deg); }
    72%  { transform: translate3d(-34vw, 27vh, 0) scale(1.10) rotate(-13deg); }
    100% { transform: translate3d(-13vw, 38vh, 0) scale(.98) rotate(-4deg); }
}
@keyframes gdvAuroraV72C {
    0%   { transform: translate3d(0, 8vh, 0) scale(.96) rotate(-5deg); }
    35%  { transform: translate3d(-16vw, -17vh, 0) scale(1.08) rotate(8deg); }
    72%  { transform: translate3d(14vw, -31vh, 0) scale(1.01) rotate(14deg); }
    100% { transform: translate3d(28vw, -14vh, 0) scale(1.07) rotate(2deg); }
}
@keyframes gdvAuroraRibbonA {
    0%   { transform: rotate(-12deg) translate3d(-12vw, -6vh, 0) scaleX(.92); opacity: .22; }
    50%  { transform: rotate(-5deg) translate3d(9vw, 10vh, 0) scaleX(1.08); opacity: .39; }
    100% { transform: rotate(4deg) translate3d(24vw, 23vh, 0) scaleX(.98); opacity: .28; }
}
@keyframes gdvAuroraRibbonB {
    0%   { transform: rotate(10deg) translate3d(13vw, 7vh, 0) scaleX(.96); opacity: .18; }
    50%  { transform: rotate(2deg) translate3d(-8vw, -11vh, 0) scaleX(1.10); opacity: .31; }
    100% { transform: rotate(-7deg) translate3d(-25vw, -23vh, 0) scaleX(1.02); opacity: .22; }
}

/* Keep animation visible on phones too; only lower GPU load slightly. */
@media (max-width: 640px) {
    .gdv-aurora-blob { filter: blur(62px) saturate(1.12); }
    html[data-theme="dark"] .gdv-aurora-blob { filter: blur(68px) saturate(1.16); }
    .gdv-aurora::before { filter: blur(46px) saturate(1.14); }
    .gdv-aurora::after { filter: blur(50px) saturate(1.12); }
}

@media (prefers-reduced-motion: reduce) {
    .gdv-aurora-blob,
    .gdv-aurora::before,
    .gdv-aurora::after,
    .gdv-luxury-face,
    .gdv-luxury-face-halo {
        animation-duration: 28s !important;
    }
}

/* =========================================================
   V7.3 — Light-mode readability over animated aurora
   Keeps the aurora visible; adds only a soft invisible scrim.
   ========================================================= */

/* Give the form a subtle local contrast zone without turning it into a card. */
html:not([data-theme="dark"]) .gdv-luxury-authbox {
    position: relative;
    isolation: isolate;
}
html:not([data-theme="dark"]) .gdv-luxury-authbox::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: -34px -32px -30px;
    border-radius: 46px;
    background:
        radial-gradient(circle at 50% 38%, rgba(255,255,255,.42), rgba(255,255,255,.17) 50%, rgba(255,255,255,.04) 78%, transparent 100%);
    backdrop-filter: blur(8px) saturate(.92);
    -webkit-backdrop-filter: blur(8px) saturate(.92);
    pointer-events: none;
}

/* Stronger neutral ink in light mode. */
html:not([data-theme="dark"]) {
    --gdv-lux-text: #10213a;
    --gdv-lux-muted: #45566d;
    --gdv-lux-line: rgba(16, 33, 58, .34);
}

html:not([data-theme="dark"]) .gdv-luxury-heading span {
    color: #132846;
    font-weight: 700;
    text-shadow: 0 1px 16px rgba(255,255,255,.34);
}

html:not([data-theme="dark"]) .gdv-luxury-field label {
    color: #40536b;
    font-weight: 520;
    text-shadow: 0 1px 12px rgba(255,255,255,.24);
}

html:not([data-theme="dark"]) .gdv-luxury-field input {
    color: #0e2038;
    caret-color: rgb(var(--gdv-v72-blue-1));
    font-weight: 560;
    text-shadow: 0 1px 10px rgba(255,255,255,.18);
}

html:not([data-theme="dark"]) .gdv-luxury-line {
    background: rgba(20, 43, 72, .34);
    box-shadow: 0 1px 0 rgba(255,255,255,.22);
}

html:not([data-theme="dark"]) .gdv-luxury-options,
html:not([data-theme="dark"]) .gdv-luxury-options a,
html:not([data-theme="dark"]) .gdv-luxury-remember {
    color: #465a73 !important;
    font-weight: 520;
}

html:not([data-theme="dark"]) .gdv-luxury-remember span {
    border-color: rgba(20, 43, 72, .38);
    background: rgba(255,255,255,.18);
}

html:not([data-theme="dark"]) .gdv-luxury-password-toggle {
    color: #49617c;
}

html:not([data-theme="dark"]) .gdv-luxury-brand {
    color: #223956;
    font-weight: 700;
}

html:not([data-theme="dark"]) .gdv-luxury-footer {
    color: rgba(21, 44, 72, .52);
}

/* Keep secondary auth pages readable too. */
html:not([data-theme="dark"]) .gdv-luxury-title {
    color: #10213a;
}
html:not([data-theme="dark"]) .gdv-luxury-subtitle,
html:not([data-theme="dark"]) .gdv-luxury-back,
html:not([data-theme="dark"]) .gdv-luxury-alert {
    color: #455a73 !important;
}

@media (max-width: 640px) {
    html:not([data-theme="dark"]) .gdv-luxury-authbox::before {
        inset: -26px -18px -24px;
        border-radius: 34px;
        backdrop-filter: blur(7px) saturate(.94);
        -webkit-backdrop-filter: blur(7px) saturate(.94);
    }
}

/* ======================================================================
   GDV V7.4 — PERFORMANCE OPTIMIZATION
   Visual intent preserved; reduces repaint/GPU cost during typing.
   ====================================================================== */

/* 1) Keep aurora movement transform-only. No animated shape morphing. */
.gdv-aurora-blob {
    border-radius: 50%;
    mix-blend-mode: normal;
    filter: blur(48px) saturate(1.10);
    will-change: transform;
    transform: translateZ(0);
    backface-visibility: hidden;
    contain: paint;
}
html[data-theme="dark"] .gdv-aurora-blob {
    mix-blend-mode: normal;
    filter: blur(52px) saturate(1.12);
}

/* 2) Ribbons stay visible but are much cheaper than the original huge blur layers. */
.gdv-aurora::before,
.gdv-aurora::after {
    filter: blur(34px) saturate(1.08);
    will-change: transform;
    transform-origin: center;
    contain: paint;
}
html[data-theme="dark"] .gdv-aurora::before,
html[data-theme="dark"] .gdv-aurora::after {
    filter: blur(38px) saturate(1.10);
}

/* 3) Expensive backdrop filters are replaced with visually similar translucent surfaces. */
.gdv-aurora-veil,
.gdv-luxury-brand img,
.gdv-luxury-theme-toggle,
.gdv-luxury-face-ring {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

html:not([data-theme="dark"]) .gdv-luxury-authbox::before {
    background:
        radial-gradient(circle at 50% 38%, rgba(255,255,255,.54), rgba(255,255,255,.25) 48%, rgba(255,255,255,.08) 74%, transparent 100%);
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: 0 18px 54px rgba(40, 86, 145, .035);
}

/* 4) Disable expensive text shadows while caret/input is continuously repainting. */
html:not([data-theme="dark"]) .gdv-luxury-heading span,
html:not([data-theme="dark"]) .gdv-luxury-field label,
html:not([data-theme="dark"]) .gdv-luxury-field input {
    text-shadow: none;
}

/* 5) Freeze decorative background while user is actively entering data.
      The result is much smoother on shared-hosting users / lower-end laptops and phones.
      Animation resumes as soon as focus leaves an input. */
body.gdv-luxury-auth:has(.gdv-luxury-field input:focus) .gdv-aurora-blob,
body.gdv-luxury-auth:has(.gdv-luxury-field input:focus) .gdv-aurora::before,
body.gdv-luxury-auth:has(.gdv-luxury-field input:focus) .gdv-aurora::after,
body.gdv-luxury-auth:has(.gdv-luxury-field input:focus) .gdv-luxury-face,
body.gdv-luxury-auth:has(.gdv-luxury-field input:focus) .gdv-luxury-face-halo {
    animation-play-state: paused !important;
}

/* Keep blink from causing extra paint during typing too. */
body.gdv-luxury-auth:has(.gdv-luxury-field input:focus) .gdv-luxury-lid {
    animation-play-state: paused !important;
}

/* 6) Faster, cheaper interactive feedback. */
.gdv-luxury-field input,
.gdv-luxury-field label,
.gdv-luxury-line,
.gdv-luxury-password-toggle,
.gdv-luxury-submit,
.gdv-luxury-theme-toggle {
    transition-duration: .14s;
}

.gdv-luxury-pupil {
    transition: transform .08s linear;
}

/* 7) Smaller devices get a slightly lighter render budget while preserving motion. */
@media (max-width: 640px) {
    .gdv-aurora-blob {
        filter: blur(38px) saturate(1.07);
    }
    html[data-theme="dark"] .gdv-aurora-blob {
        filter: blur(42px) saturate(1.09);
    }
    .gdv-aurora::before,
    .gdv-aurora::after {
        filter: blur(28px) saturate(1.06);
    }
    .gdv-aurora-noise {
        display: none;
    }
}

/* 8) Transform-only keyframes replace the older border-radius morphing animation. */
@keyframes gdvAuroraV72A {
    0%   { transform: translate3d(-4vw, -3vh, 0) scale(.95) rotate(-7deg); }
    35%  { transform: translate3d(20vw, 11vh, 0) scale(1.08) rotate(5deg); }
    70%  { transform: translate3d(34vw, 23vh, 0) scale(.99) rotate(12deg); }
    100% { transform: translate3d(15vw, 34vh, 0) scale(1.05) rotate(3deg); }
}

/* 9) Low-powered / battery-sensitive devices get a clean but still animated version. */
@media (update: slow) {
    .gdv-aurora-blob-c,
    .gdv-aurora::after {
        display: none;
    }
    .gdv-aurora-blob,
    .gdv-aurora::before {
        animation-duration: 18s !important;
    }
}
