        /* Reset */
        html { scroll-behavior: smooth; }
        * { margin: 0; padding: 0; box-sizing: border-box; }

        /* Base */
        body {
            font-family: 'Roboto', sans-serif;
            background: #f9f9f9;
            color: #1a1a1a;
            min-height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 1rem;
            opacity: 0;
            transition: opacity 1s ease-in-out;
        }
        body.loaded { opacity: 1; }

        /* Container */
        .auth-container { width: 100%; max-width: 480px; padding: 2rem; }

        /* Card */
        .auth-card {
            background: #ffffff;
            padding: 3.5rem 3rem;
            border-radius: 18px;
            box-shadow: 0 12px 50px rgba(0,0,0,0.08);
            text-align: center;
        }

        /* Branding */
        .auth-card h1 {
            font-family: 'Michroma', sans-serif;
            font-size: 2.6rem;
            margin-bottom: 0.7rem;
        }
        .subtitle {
            font-family: 'Michroma', sans-serif;
            font-size: 1.1rem;
            color: #555;
            margin-bottom: 2.5rem;
        }

        /* Form */
        form {
            display: flex;
            flex-direction: column;
            gap: 1.5rem;
        }

        .name-fields {
            display: flex;
            gap: 1rem;
            width: 100%;
            box-sizing: border-box;
        }
        .name-fields input {
            flex: 1;
            min-width: 0;
            padding: 1rem 1.2rem;
            border-radius: 12px;
            border: 1px solid #ddd;
            font-size: 1.1rem;
            transition: border 0.2s ease;
        }
        .name-fields input:focus {
            outline: none;
            border-color: #1a1a1a;
        }

        input[type="username"],
        input[type="email"] {
            padding: 1rem 1.2rem;
            border-radius: 12px;
            border: 1px solid #ddd;
            font-size: 1.1rem;
            transition: border 0.2s ease;
            width: 100%;
            box-sizing: border-box;
        }
        input[type="username"]:focus,
        input[type="email"]:focus {
            outline: none;
            border-color: #1a1a1a;
        }

        /* Error highlight + shake */
        input.error { border-color: red; }
        @keyframes shake {
            0%,100% { transform: translateX(0); }
            20%,60% { transform: translateX(-5px); }
            40%,80% { transform: translateX(5px); }
        }
        input.shake { animation: shake 0.3s ease; }

        /* Button */
        button {
            font-family: 'Michroma', sans-serif;
            padding: 1.1rem;
            border-radius: 50px;
            border: none;
            background: #1a1a1a;
            color: #fff;
            font-size: 1.05rem;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        button:hover {
            background: #333;
            transform: translateY(-2px);
        }

        /* Messages */
        .error-msg {
            background: #fdecea;
            color: #a12a2a;
            padding: 1rem;
            border-radius: 10px;
            font-size: 1rem;
        }
        .success {
            font-size: 1.1rem;
            color: #2d7a46;
            background: #eaf6ef;
            padding: 1.2rem;
            border-radius: 12px;
            text-align: center;
        }

        /* Small login prompt */
        .login-prompt {
            display: block;
            margin-top: 1.2rem;
            font-family: 'Roboto', sans-serif;
            font-size: 1rem;
            color: #555;
            text-align: center;
        }
        .login-prompt a {
            color: #1a1a1a;
            text-decoration: none;
            font-weight: 500;
            transition: color 0.3s ease;
        }
        .login-prompt a:hover {
            color: #333;
            text-decoration: underline;
        }

        /* Responsive */
        @media (max-width: 600px) {
            .name-fields { flex-direction: column; }
            .auth-card { padding: 3rem 2rem; }
            .auth-card h1 { font-size: 2.2rem; }
            .subtitle { font-size: 1rem; }
            input[type="email"],
            .name-fields input {
                font-size: 1rem;
                padding: 0.95rem 1rem;
            }
            button {
                font-size: 1rem;
                padding: 1rem;
            }
        }