@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+HK:wght@400;700&family=Orbitron:wght@500;700&display=swap');
        
        @font-face {
            font-family: 'Free HK Kai';
            src: local('Free HK Kai'), local('自由香港楷書'), url('../Free-HK-Kai_4700-v1.02.ttf') format('truetype');
            font-display: swap;
        }

        body {
            font-family: 'Free HK Kai', 'Noto Sans HK', sans-serif;
            margin: 0;
            overflow: hidden;
            background-color: #020617; 
            color: #f0f9ff; 
        }

        .sci-fi-font { font-family: 'Orbitron', sans-serif; display: inline-block; }

        .btn-primary {
            background-color: #0ea5e9; box-shadow: 0 4px 0 #0369a1; color: #f0f9ff;
            transition: transform 0.1s, box-shadow 0.1s;
        }
        .btn-primary:active:not(:disabled) { transform: translateY(4px); box-shadow: 0 0 0 #0369a1; }
        .btn-primary:disabled { background-color: #0369a1; box-shadow: 0 4px 0 #082f49; opacity: 0.7; }

        .btn-secondary {
            background-color: #1e293b; box-shadow: 0 4px 0 #0f172a; color: #bae6fd;
            transition: transform 0.1s, box-shadow 0.1s;
        }
        .btn-secondary:active { transform: translateY(4px); box-shadow: 0 0 0 #0f172a; }

        @keyframes recognize-pulse {
            0% { border-color: #1e293b; }
            50% { border-color: #38bdf8; background-color: rgba(56, 189, 248, 0.05); }
            100% { border-color: #1e293b; }
        }
        .recognizing { animation: recognize-pulse 1s infinite; }

        .error-flash {
            background-color: rgba(239, 68, 68, 0.15) !important;
            border-color: #ef4444 !important;
        }

        ::-webkit-scrollbar { width: 8px; }
        ::-webkit-scrollbar-track { background: #020617; }
        ::-webkit-scrollbar-thumb { background: #0284c7; border-radius: 4px; }
        ::-webkit-scrollbar-thumb:hover { background: #0ea5e9; }

        @keyframes modal-fade-in { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }
        .modal-active { animation: modal-fade-in 0.3s ease-out; }
