:root {
            --primary-brown: #8B4513;
            --light-brown: #A0522D;
            --cream: #FFF8DC;
            --warm-red: #C41E3A;
            --gold: #DAA520;
            --text-dark: #2d3436;
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Poppins', sans-serif;
            background: linear-gradient(135deg, #F5DEB3 0%, #FFE4B5 50%, #FFDAB9 100%);
            min-height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
            padding: 20px;
        }

        .gatekeeper-container {
            background: var(--cream);
            border-radius: 40px;
            box-shadow: 0 20px 60px rgba(139, 69, 19, 0.25);
            padding: 50px 40px;
            max-width: 420px;
            width: 100%;
            border: 3px solid var(--light-brown);
            animation: slideIn 0.6s ease-out;
        }

        @keyframes slideIn {
            from {
                opacity: 0;
                transform: translateY(-30px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .coffee-icon {
            font-size: 80px;
            text-align: center;
            margin-bottom: 20px;
            animation: bounce 2s infinite;
        }

        @keyframes bounce {
            0%, 100% {
                transform: translateY(0);
            }
            50% {
                transform: translateY(-15px);
            }
        }

        .gatekeeper-title {
            font-family: 'Playfair Display', serif;
            color: var(--primary-brown);
            text-align: center;
            font-size: 36px;
            margin-bottom: 10px;
            font-weight: 700;
        }

        .gatekeeper-subtitle {
            text-align: center;
            color: var(--light-brown);
            font-size: 14px;
            margin-bottom: 30px;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 2px;
        }

        .form-group {
            margin-bottom: 20px;
        }

        .form-group label {
            display: block;
            color: var(--primary-brown);
            font-weight: 600;
            margin-bottom: 10px;
            font-size: 14px;
        }

        .form-group input[type="password"] {
            width: 100%;
            padding: 16px;
            border: 2px solid var(--gold);
            border-radius: 15px;
            font-size: 16px;
            outline: none;
            background: rgba(255, 255, 255, 0.8);
            color: var(--text-dark);
            transition: all 0.3s ease;
            font-family: 'Poppins', sans-serif;
        }

        .form-group input[type="password"]:focus {
            border-color: var(--warm-red);
            background: white;
            box-shadow: 0 0 0 4px rgba(196, 30, 58, 0.1);
        }

        .btn-unlock {
            width: 100%;
            padding: 16px;
            background: linear-gradient(135deg, var(--warm-red), #E63946);
            color: white;
            border: none;
            border-radius: 15px;
            font-weight: 700;
            font-size: 18px;
            cursor: pointer;
            transition: all 0.3s ease;
            box-shadow: 0 8px 20px rgba(196, 30, 58, 0.3);
            font-family: 'Poppins', sans-serif;
        }

        .btn-unlock:hover {
            transform: translateY(-3px);
            box-shadow: 0 12px 30px rgba(196, 30, 58, 0.4);
        }

        .btn-unlock:active {
            transform: translateY(-1px);
        }

        .btn-back {
            width: 100%;
            padding: 12px;
            background: transparent;
            color: var(--primary-brown);
            border: 2px solid var(--light-brown);
            border-radius: 15px;
            font-weight: 600;
            font-size: 16px;
            cursor: pointer;
            transition: all 0.3s ease;
            margin-top: 10px;
            font-family: 'Poppins', sans-serif;
            display: none;
        }

        .btn-back:hover {
            background: rgba(160, 82, 45, 0.1);
        }

        .error-message {
            background: #FFE4E1;
            border-left: 4px solid var(--warm-red);
            color: var(--warm-red);
            padding: 12px 15px;
            border-radius: 8px;
            margin-bottom: 20px;
            font-size: 14px;
            display: none;
            animation: shake 0.5s ease;
        }

        @keyframes shake {
            0%, 100% {
                transform: translateX(0);
            }
            25% {
                transform: translateX(-10px);
            }
            75% {
                transform: translateX(10px);
            }
        }

        .info-text {
            text-align: center;
            color: var(--light-brown);
            font-size: 14px;
            margin-top: 20px;
            font-style: italic;
        }

        .loading-spinner {
            display: none;
            text-align: center;
            margin-top: 15px;
        }

        .spinner {
            display: inline-block;
            width: 20px;
            height: 20px;
            border: 3px solid rgba(196, 30, 58, 0.2);
            border-top-color: var(--warm-red);
            border-radius: 50%;
            animation: spin 0.8s linear infinite;
        }

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