        html {
            background-color: #000000;
        }
        
        * {
            font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W6", sans-serif;
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body, button, input, select, textarea, a, p, span, div, h1, h2, h3, h4, h5, h6, label {
            text-transform: lowercase !important;
        }
        
        body {
            overflow-x: hidden;
            background-color: #ffffff;
            display: flex;
            flex-direction: column;
            min-height: 100vh;
        }
        
        /* Black fade overlay */
        #login-fade-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: #000000;
            z-index: 99999;
            pointer-events: none;
        }
        
        /* Fade out the black overlay */
        @keyframes fadeOutOverlay {
            0% {
                opacity: 1;
            }
            100% {
                opacity: 0;
            }
        }
        
        #login-fade-overlay.fade-out {
            animation: fadeOutOverlay 0.7s ease-out forwards;
        }
        
        /* Animation containers */
        #login-container {
            opacity: 0;
            transform: translateY(-100vh);
        }
        
        #footer-container {
            opacity: 0;
            transform: translateY(100vh);
            margin-top: auto;
        }
        
        /* Slide in from top animation */
        @keyframes slideInFromTop {
            0% {
                opacity: 0;
                transform: translateY(-100vh);
            }
            100% {
                opacity: 1;
                transform: translateY(0);
            }
        }
        
        /* Slide in from bottom animation */
        @keyframes slideInFromBottom {
            0% {
                opacity: 0;
                transform: translateY(100vh);
            }
            100% {
                opacity: 1;
                transform: translateY(0);
            }
        }
        
        .slide-in-top {
            animation: slideInFromTop 0.6s ease-out forwards;
        }
        
        .slide-in-bottom {
            animation: slideInFromBottom 0.6s ease-out forwards;
        }
        
        /* Custom checkbox styles */
        .checkbox-container {
            display: flex;
            align-items: center;
            justify-content: flex-start;
            cursor: pointer;
        }
        
        .custom-checkbox {
            width: 20px;
            height: 20px;
            border: 2px solid #ef4444;
            border-radius: 4px;
            margin-right: 0.5rem;
            position: relative;
            transition: all 0.3s ease;
            flex-shrink: 0;
        }
        
        .custom-checkbox.unchecked {
            background-color: #ffffff;
            box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4);
            animation: pulseSoftRed 2s ease-in-out infinite;
        }
        
        .custom-checkbox.checked {
            background-color: #10b981;
            border-color: #10b981;
            box-shadow: none;
            animation: none;
        }
        
        .custom-checkbox.checked::after {
            content: '✓';
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            color: white;
            font-size: 14px;
            font-weight: bold;
        }
        
        @keyframes pulseSoftRed {
            0%, 100% {
                transform: scale(1);
                box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4);
            }
            50% {
                transform: scale(1.05);
                box-shadow: 0 0 0 8px rgba(239, 68, 68, 0);
            }
        }
        
        .checkbox-label {
            font-size: 0.875rem;
            color: #000000;
        }
        
        .checkbox-label a {
            color: #ef4444;
            text-decoration: none;
            transition: color 0.3s ease;
        }
        
        .checkbox-label a:hover {
            text-decoration: underline;
        }
        
        .checkbox-container.checked .checkbox-label a {
            color: #10b981;
        }
        
        .login-button {
            opacity: 0.5;
            pointer-events: none;
            transition: opacity 0.3s ease;
        }
        
        .login-button.enabled {
            opacity: 1;
            pointer-events: auto;
        }
        
        /* Logo container clickable */
        .logo-container {
            cursor: pointer;
            transition: opacity 0.2s;
        }
        
        .logo-container:hover {
            opacity: 0.8;
        }
        
        /* Exit overlay fade animation */
        #exit-fade-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: #000000;
            z-index: 99999;
            pointer-events: none;
            opacity: 0;
            display: none;
        }
        
        #exit-fade-overlay.fade-in {
            display: block;
            animation: fadeInOverlay 0.7s ease-out forwards;
        }
        
        @keyframes fadeInOverlay {
            0% {
                opacity: 0;
            }
            100% {
                opacity: 1;
            }
        }
