        * {
            box-sizing: border-box;
        }

        body {
            margin: 0;
            min-height: 100vh;
            display: grid;
            place-items: center;
            padding: 24px;
            background: #101010;
            color: white;
            font-family: Arial, sans-serif;
        }

        .login-box {
            width: 100%;
            max-width: 420px;
            padding: 32px;
            border: 1px solid #303030;
            border-radius: 18px;
            background: #181818;
        }

        h1 {
            margin-top: 0;
            color: #8aff80;
        }

        p {
            color: #aaa;
        }

        label {
            display: block;
            margin-top: 20px;
            margin-bottom: 8px;
        }

        input {
            width: 100%;
            padding: 13px;
            border: 1px solid #444;
            border-radius: 8px;
            background: #101010;
            color: white;
            font-size: 16px;
        }

        button {
            width: 100%;
            margin-top: 24px;
            padding: 13px;
            border: 0;
            border-radius: 8px;
            background: #8aff80;
            color: #101010;
            font-weight: bold;
            cursor: pointer;
        }

        button:disabled {
            opacity: 0.6;
            cursor: wait;
        }

        #status {
            margin-top: 18px;
            white-space: pre-wrap;
        }

        .error {
            color: #ff7777;
        }

        .success {
            color: #8aff80;
        }

        @media (max-width: 480px) {
            body {
                padding: 16px;
                place-items: start center;
            }

            .login-box {
                margin-top: 8vh;
                padding: 24px 18px;
                border-radius: 16px;
            }

            h1 {
                font-size: clamp(1.8rem, 9vw, 2.4rem);
                line-height: 1.1;
            }

            input,
            button {
                min-height: 48px;
            }
        }

        /* Homepage-inspired login surface */
        body {
            position: relative;
            overflow: hidden;
            font-family: "Be Vietnam Pro", sans-serif;
            background:
                radial-gradient(circle at 12% 10%, rgba(255, 255, 255, 0.9), transparent 24%),
                radial-gradient(circle at 88% 18%, rgba(120, 204, 255, 0.28), transparent 27%),
                radial-gradient(circle at 70% 92%, rgba(240, 138, 203, 0.22), transparent 26%),
                linear-gradient(135deg, #f6f0ff 0%, #e7dcff 42%, #cdb4ff 100%);
        }

        body::before,
        body::after {
            content: "";
            position: fixed;
            pointer-events: none;
            border-radius: 50%;
        }

        body::before {
            width: 520px;
            height: 520px;
            right: -210px;
            bottom: -250px;
            border: 1px solid rgba(124, 77, 224, 0.16);
            box-shadow: 0 0 0 28px rgba(124, 77, 224, 0.04), 0 0 0 58px rgba(124, 77, 224, 0.025);
            animation: loginOrbit 18s linear infinite;
        }

        body::after {
            inset: 0;
            opacity: 0.28;
            border-radius: 0;
            background-image: linear-gradient(rgba(91, 58, 151, 0.08) 1px, transparent 1px), linear-gradient(90deg, rgba(91, 58, 151, 0.08) 1px, transparent 1px);
            background-size: 52px 52px;
            mask-image: linear-gradient(to bottom, black, transparent 88%);
        }

        .login-box {
            position: relative;
            z-index: 1;
            max-width: 480px;
            padding: 42px 40px 30px;
            border: 1px solid rgba(255, 255, 255, 0.62);
            border-radius: 30px;
            background: rgba(255, 255, 255, 0.42);
            box-shadow: 0 28px 70px rgba(77, 46, 123, 0.2), 0 0 30px rgba(255, 255, 255, 0.28);
            backdrop-filter: blur(20px);
            animation: loginReveal 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
        }

        .login-box::before {
            content: "✦  ·  ✧";
            position: absolute;
            top: 20px;
            right: 24px;
            color: rgba(124, 77, 224, 0.42);
            font-family: Georgia, serif;
            font-size: 18px;
            letter-spacing: 8px;
            animation: loginSparkle 3.8s ease-in-out infinite;
        }

        .login-kicker {
            margin-bottom: 14px;
            color: #7c4de0;
            font-size: 10px;
            font-weight: 800;
            letter-spacing: 0.16em;
        }

        .login-kicker span {
            color: #f08acb;
            font-size: 16px;
        }

        h1 {
            margin-bottom: 12px;
            color: #2b1149;
            font-family: "Patrick Hand", cursive;
            font-size: clamp(2.8rem, 8vw, 4.2rem);
            line-height: 0.96;
            text-shadow: 0 8px 24px rgba(124, 77, 224, 0.18);
        }

        .login-box > p:not(#status) {
            max-width: 350px;
            color: #6b6080;
            line-height: 1.7;
        }

        label {
            margin-top: 24px;
            color: #44207a;
            font-size: 0.86rem;
            font-weight: 700;
        }

        input {
            margin-top: 2px;
            padding: 15px 16px;
            border: 1px solid rgba(91, 58, 151, 0.16);
            border-radius: 14px;
            outline: none;
            color: #2e1f47;
            background: rgba(255, 255, 255, 0.72);
            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
            transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
        }

        input:focus {
            border-color: #9d7af8;
            box-shadow: 0 0 0 4px rgba(124, 77, 224, 0.12), 0 8px 20px rgba(77, 46, 123, 0.1);
            transform: translateY(-1px);
        }

        #loginButton {
            position: relative;
            overflow: hidden;
            margin-top: 28px;
            padding: 15px;
            border-radius: 14px;
            color: #fff;
            background: linear-gradient(135deg, #7c4de0, #44207a);
            box-shadow: 0 16px 28px rgba(92, 54, 170, 0.25);
            transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease;
        }

        #loginButton::after {
            content: "";
            position: absolute;
            top: 0;
            left: -85%;
            width: 46%;
            height: 100%;
            background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.42), transparent);
            transform: skewX(-18deg);
            transition: left 0.55s ease;
        }

        #loginButton:hover {
            transform: translateY(-3px);
            filter: brightness(1.08);
            box-shadow: 0 20px 34px rgba(92, 54, 170, 0.3);
        }

        #loginButton:hover::after {
            left: 140%;
        }

        #status {
            min-height: 22px;
            margin: 18px 0 0;
            color: #6b6080;
            font-size: 0.86rem;
            line-height: 1.5;
        }

        .login-back-link {
            display: inline-block;
            margin-top: 18px;
            color: #7c4de0;
            font-size: 0.8rem;
            font-weight: 700;
            transition: transform 0.2s ease, color 0.2s ease;
        }

        .login-back-link:hover {
            color: #44207a;
            transform: translateX(-3px);
        }

        @keyframes loginReveal {
            from { opacity: 0; transform: translateY(24px) scale(0.98); }
            to { opacity: 1; transform: translateY(0) scale(1); }
        }

        @keyframes loginOrbit {
            to { transform: rotate(360deg); }
        }

        @keyframes loginSparkle {
            0%, 100% { opacity: 0.35; transform: scale(0.82); }
            50% { opacity: 1; transform: scale(1.08); }
        }

        @media (max-width: 480px) {
            .login-box {
                margin-top: 6vh;
                padding: 34px 22px 26px;
                border-radius: 24px;
            }
        }

        @media (prefers-reduced-motion: reduce) {
            *, *::before, *::after {
                animation-duration: 0.01ms !important;
                animation-iteration-count: 1 !important;
                transition-duration: 0.01ms !important;
            }
        }