body { margin: 0; padding: 0; overflow: hidden; background-color: #000; font-family: 'BBCReithSans', Arial, sans-serif; }
        
        @font-face {
            font-family: 'BBCReithSerif';
            src: url('BBCReithSerif_V2.300/Desktop/BBCReithSerif_Md.ttf') format('truetype');
        }
        @font-face {
            font-family: 'BBCReithSans';
            src: url('BBCReithSans_V2.300/Desktop/BBCReithSans_Md.ttf') format('truetype');
        }

        /* force fonts to load by using them in dom invisibly */
        #font-loader {
            position: absolute;
            opacity: 0;
            pointer-events: none;
        }

        #app-container {
            position: absolute;
            transform-origin: top left;
            width: 1920px;
            height: 1080px;
            overflow: hidden;
        }

        #main-menu {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.85);
            backdrop-filter: blur(5px);
            z-index: 100;
            display: flex;
            flex-direction: row;
            color: white;
        }

        #fade-overlay {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: black;
            z-index: 200;
            pointer-events: none;
            opacity: 0; 
            transition: opacity 0.3s ease-in-out;
        }

        #error-overlay {
            position: absolute;
            top: 0; left: 0; width: 100%; height: 100%;
            background: rgba(20, 0, 0, 0.95);
            color: white;
            display: none;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            z-index: 150; 
            font-family: 'BBCReithSans', sans-serif;
            text-align: center;
        }
        .error-title { font-size: 40px; color: #ff4444; margin-bottom: 20px; font-weight: bold; }
        .error-msg { font-size: 24px; margin-bottom: 40px; max-width: 80%; line-height: 1.5; }
        .error-btn {
            padding: 15px 40px;
            font-size: 24px;
            background: #fff;
            color: #000;
            border: none;
            cursor: pointer;
            font-weight: bold;
        }
        .error-btn:hover { background: #ccc; }

        .menu-left {
            flex: 1;
            padding: 80px 60px;
            display: flex;
            flex-direction: column;
            gap: 25px;
        }

        .menu-right {
            flex: 1;
            display: flex;
            align-items: center;
            justify-content: center;
            background: rgba(255,255,255,0.05);
        }

        h1 {
            font-family: 'BBCReithSans', sans-serif;
            font-size: 42px;
            margin: 0 0 10px 0;
            border-bottom: 2px solid #B80000;
            padding-bottom: 15px;
            display: inline-block;
            width: 100%;
        }

        .config-group {
            background: rgba(255,255,255,0.1);
            padding: 20px;
            border-radius: 8px;
        }

        .config-label {
            font-size: 20px;
            color: #aaa;
            margin-bottom: 10px;
            display: block;
            font-weight: bold;
        }

        .config-item {
            font-size: 24px;
            margin: 10px 0;
            cursor: pointer;
            display: flex;
            align-items: center;
            transition: color 0.2s;
            user-select: none;
        }

        .config-item:hover {
            color: #fff;
        }

        .clickable-text:hover {
            color: #B80000;
        }

        .key-hint {
            background: #333;
            padding: 2px 8px;
            border-radius: 4px;
            font-size: 18px;
            margin-right: 10px;
            font-family: monospace;
            border: 1px solid #555;
            cursor: pointer;
            transition: background 0.2s;
        }
        
        .key-hint:hover {
            background: #555;
            border-color: #888;
        }

        .status-active { color: #4CAF50; font-weight: bold; margin-left: 8px; }
        .status-inactive { color: #aaa; margin-left: 8px; }

        #preview-img {
            max-width: 90%;
            max-height: 90%;
            box-shadow: 0 0 30px rgba(0,0,0,0.5);
            border: 2px solid #333;
        }

        .start-btn {
            margin-top: 30px;
            background: #B80000;
            color: white;
            border: none;
            padding: 20px 40px;
            font-size: 32px;
            font-family: 'BBCReithSans', sans-serif;
            cursor: pointer;
            text-align: center;
            width: 100%;
            font-weight: bold;
        }
        .start-btn:hover { background: #d40000; }

        .footer {
            margin-top: auto;
            font-size: 16px;
            color: #777;
        }

        #loading-overlay {
            position: absolute;
            top: 0; left: 0; width: 100%; height: 100%;
            background: black;
            color: white;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            font-size: 30px;
            z-index: 90;
            display: none;
            font-family: 'BBCReithSans', sans-serif;
        }
        
        .loading-stat {
            font-size: 20px;
            color: #aaa;
            margin-top: 10px;
            font-family: monospace;
        }