body {
            background-color: white;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
            font-family: Arial, sans-serif;
            position: relative;
        }
        
        /* Yellow circle background */
        body::before {
            content: '';
            position: fixed;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: var(--circle-size, 500px);
            height: var(--circle-size, 500px);
            background-color: yellow;
            border-radius: 50%;
            z-index: -1;
            opacity: 0;
            transition: opacity 0.1s;
        }
        
        /* Show circle only after size is calculated */
        body.circle-ready::before {
            opacity: 1;
        }
        
        /* Dark mode support */
        @media (prefers-color-scheme: dark) {
            body {
                background-color: #1a1a1a;
                color: #e0e0e0;
            }
            h1 {
                color: #e0e0e0;
            }
            input[type="text"] {
                color: #e0e0e0;
                background-color: #1a1a1a;
                border: 2px solid yellow;
            }
            input[type="text"]:focus {
                outline: none;
                border-color: yellow;
                background-color: #222;
            }
            input[type="text"]::placeholder {
                color: #888;
            }
            .footer {
                color: #e0e0e0;
            }
            .footer a {
                color: #6bb6ff !important;
            }
            .footer a:hover {
                color: #8cc8ff !important;
            }
            /* In dark mode, only show outline of yellow circle */
            body::before {
                background-color: transparent;
                border: 5px solid yellow;
            }
        }
        h1 {
            font-size: 1.5em;
            text-align: center;
        }
        input[type="text"] {
            width: 80%;
            padding: 15px;
            font-size: 1.4em;
            margin-bottom: 20px;
            text-align: center;
            font-family: monospace;
        }
        button {
            padding: 15px 30px;
            font-size: 1.4em;
            cursor: pointer;
            background-color: #0057B7;
            color: white;
            border: none;
            border-radius: 4px;
        }
        .footer {
            margin-top: 20px;
            font-size: 1em;
        }
        .footer a {
            text-decoration: none;
            color: blue;
        }
        
        /* Mobile keyboard handling */
        @media (max-width: 768px) {
            body {
                transition: transform 0.3s ease-out;
            }
            
            body.keyboard-visible {
                transform: translateY(-20vh);
            }
        }
        
        /* Error message styling */
        .error-message {
            background-color: #ff4444;
            color: white;
            padding: 15px 20px;
            border-radius: 4px;
            margin-bottom: 20px;
            text-align: center;
            font-size: 1.1em;
            max-width: 80%;
            word-break: break-word;
        }
        
        @media (prefers-color-scheme: dark) {
            .error-message {
                background-color: #cc0000;
                color: #ffffff;
            }
        } 