@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700&family=Exo+2:wght@300;400;500;600;700&display=swap');
        
        html, body {
            font-family: 'Exo 2', sans-serif;
            background: linear-gradient(135deg, #0f172a, #1e293b);
            height: 100%;
            margin: 0;
            padding: 0;
            overflow: hidden;
            position: relative;
        }
        
        h1, h2, h3, .orbitron {
            font-family: 'Orbitron', sans-serif;
        }
        
        .timer-animation {
            transition: width 1s linear;
        }
        
        .star {
            position: absolute;
            background-color: white;
            border-radius: 50%;
            animation: twinkle 4s infinite ease-in-out;
        }
        
        @keyframes twinkle {
            0%, 100% { opacity: 0.2; }
            50% { opacity: 1; }
        }
        
        .planet {
            position: absolute;
            border-radius: 50%;
            box-shadow: inset -10px -10px 20px rgba(0,0,0,0.5);
            z-index: -1;
        }
        
        .meteor {
            position: absolute;
            width: 2px;
            height: 2px;
            background: linear-gradient(to right, transparent, white, transparent);
            animation: meteor 6s linear infinite;
            transform: rotate(45deg);
        }
        
        @keyframes meteor {
            0% {
                transform: translateX(-100px) translateY(-100px) rotate(45deg);
                opacity: 1;
            }
            70% {
                opacity: 1;
            }
            100% {
                transform: translateX(calc(100vw + 100px)) translateY(calc(100vh + 100px)) rotate(45deg);
                opacity: 0;
            }
        }
        
        .pulse {
            animation: pulse 2s infinite;
        }
        
        @keyframes pulse {
            0%, 100% { transform: scale(1); }
            50% { transform: scale(1.05); }
        }
        
        .float {
            animation: float 6s ease-in-out infinite;
        }
        
        @keyframes float {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(-10px); }
        }
        
        .rotate-slow {
            animation: rotate 20s linear infinite;
        }
        
        @keyframes rotate {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }
        
        .glow {
            box-shadow: 0 0 15px rgba(99, 102, 241, 0.6);
        }
        
        .listening {
            animation: listening 1.5s ease-in-out infinite;
        }
        
        @keyframes listening {
            0%, 100% { box-shadow: 0 0 0 0 rgba(99, 102, 241, 0.7); }
            50% { box-shadow: 0 0 0 15px rgba(99, 102, 241, 0); }
        }
        
        .shake {
            animation: shake 0.5s;
        }
        
        @keyframes shake {
            0%, 100% { transform: translateX(0); }
            10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
            20%, 40%, 60%, 80% { transform: translateX(5px); }
        }
        
        .feedback-message {
            transition: all 0.3s ease;
        }
        
        .fade-out {
            opacity: 0;
            transform: translateY(-10px);
        }
        
        /* Full screen container */
        .app-container {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            width: 100vw;
            padding: 0;
            margin: 0;
        }
        
        /* Responsive app sizing */
        .app-content {
            width: 100%;
            max-width: 500px;
            height: 100%;
            max-height: 800px;
            display: flex;
            flex-direction: column;
            overflow: hidden;
        }
        
        /* Scrollable content areas */
        .scrollable-content {
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
            flex-grow: 1;
        }
        
        /* Fixed bottom bar */
        .bottom-bar {
            padding: 0.75rem;
            background: rgba(15, 23, 42, 0.9);
            border-top: 1px solid rgba(99, 102, 241, 0.3);
            backdrop-filter: blur(8px);
        }
        
        /* On-screen keyboard */
        .keyboard {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 6px;
            width: 100%;
            padding: 8px;
            background: rgba(30, 41, 59, 0.8);
            border-top: 1px solid rgba(99, 102, 241, 0.3);
            backdrop-filter: blur(8px);
        }
        
        .key {
            aspect-ratio: 1/0.7;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.1rem;
            font-weight: bold;
            border-radius: 6px;
            cursor: pointer;
            transition: all 0.2s;
            user-select: none;
            background: rgba(51, 65, 85, 0.8);
            color: white;
            border: 1px solid rgba(99, 102, 241, 0.3);
        }
        
        .key:active, .key.active {
            transform: scale(0.95);
            background: rgba(79, 70, 229, 0.8);
        }
        
        .key-action {
            background: rgba(79, 70, 229, 0.6);
            grid-column: span 2;
        }
        
        /* Input method selection */
        .input-method {
            border: 2px solid transparent;
            transition: all 0.3s ease;
            opacity: 0.7;
        }
        
        .input-method.selected {
            border-color: rgba(99, 102, 241, 0.8);
            opacity: 1;
            background-color: rgba(79, 70, 229, 0.2);
        }
        
        /* Modal styles */
        .modal-overlay {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-color: rgba(0, 0, 0, 0.7);
            display: flex;
            justify-content: center;
            align-items: center;
            z-index: 1000;
        }
        
        .modal-content {
            background: linear-gradient(135deg, #1e293b, #0f172a);
            border: 2px solid rgba(99, 102, 241, 0.5);
            border-radius: 12px;
            padding: 20px;
            max-width: 90%;
            width: 350px;
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
        }
        
        /* Mobile optimizations */
        @media (max-width: 640px) {
            .app-content {
                width: 100%;
                height: 100%;
                max-width: none;
                max-height: none;
                border-radius: 0 !important;
            }
            
            .key {
                font-size: 1.1rem;
            }
        }
        
        /* Fall animation for confetti */
        @keyframes fall {
            0% {
                transform: translateY(-10vh) rotate(0deg);
                opacity: 1;
            }
            100% {
                transform: translateY(100vh) rotate(360deg);
                opacity: 0;
            }
        }