 /* --- Root Styles for Typing Game --- */
        :root {
            --game-main-color: #0D3AC4;
            --game-secondary-color: #0077E6;
            --game-secondary-background: #f9f9f9;
            --game-color-white: #ffffff;
            --game-color-error-dark: #c53030;
            --game-color-green: #15803d;
            --game-border-color: #e2e8f0;
            --game-color-gray: #4a5568;
            --game-color-dark-gray: #2d3748;
            --game-shadow-color: rgba(0, 138, 255, 0.2);
            --game-focus-ring-color: rgba(26, 72, 238, 0.4);
        }

        /* --- Main Layout & Card Styling --- */
        .typing-game-container {
            font-family: 'Inter', sans-serif;
            color: var(--game-color-dark-gray);
            width: 100%;
            max-width: 56rem;
            margin: 2rem auto; /* Center the game on the page */
        }

        .typing-game-container .page-header {
            text-align: center;
            margin-bottom: 2rem;
        }

        .typing-game-container .page-header h1 {
            font-size: 3rem;
            font-weight: 700;
            color: var(--game-main-color);
            margin: 0;
        }

        .typing-game-container .page-header p {
            color: var(--game-color-gray);
            margin-top: 0.5rem;
        }

        .typing-game-container .game-card {
            background-color: var(--game-color-white);
            border-radius: 1rem;
            border: 1px solid var(--game-border-color);
            box-shadow: 0 5px 15px var(--game-shadow-color);
            padding: 2rem;
            position: relative;
            overflow: hidden; /* Contains the absolute overlay */
        }

        /* --- Stats Display --- */
        .typing-game-container .stats-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 1.5rem;
            margin-bottom: 1.5rem;
            text-align: center;
        }

        .typing-game-container .stat-label {
            font-size: 0.875rem;
            color: var(--game-color-gray);
            text-transform: uppercase;
            letter-spacing: 0.05em;
            margin: 0 0 0.25rem 0;
        }

        .typing-game-container .stat-value {
            font-size: 2.25rem;
            font-weight: 600;
            color: var(--game-main-color);
            margin: 0;
        }

        /* --- Visible Text Label for Input --- */
        .typing-game-container .text-input-label {
            font-size: 0.875rem;
            color: var(--game-color-gray);
            text-transform: uppercase;
            letter-spacing: 0.05em;
            margin-bottom: 0.5rem;
            text-align: center;
        }

        /* --- Text Display Area --- */
        .typing-game-container #text-display-container {
            font-family: monospace;
            font-size: 2.5rem;
            line-height: 1.6; 
            background-color: var(--game-secondary-background);
            padding: 1.5rem;
            border-radius: 0.5rem;
            border: 1px solid var(--game-border-color);
            outline: none;
            cursor: text;
        }

        .typing-game-container #text-display-container:focus {
            border-color: var(--game-main-color);
            box-shadow: 0 0 0 3px var(--game-focus-ring-color);
        }

        .typing-game-container #text-display {
            word-break: break-word;
            user-select: none;
        }
                
        .typing-game-container #text-display > span {
            position: relative; 
        }

        .typing-game-container #mobile-input {
            opacity: 0;
            position: absolute;
            width: 0;
            height: 0;
            top: -9999px;
            left: -9999px;
        }

        /* --- Character & Cursor Styles --- */
        .typing-game-container .cursor {
            position: absolute;
            left: -2px;
            top: 10%;
            height: 80%;
            width: 3px;
            background-color: var(--game-secondary-color);
            border-radius: 1px;
            animation: blink 1s infinite;
        }

        @keyframes blink {
            50% { opacity: 0; }
        }
                
        .typing-game-container .char-correct { color: var(--game-color-green); }
        .typing-game-container .char-incorrect { 
            color: var(--game-color-error-dark); 
            text-decoration: underline;
            text-decoration-color: var(--game-color-error-dark);
            text-decoration-thickness: 2px;
        }
        .typing-game-container .char-untyped { color: var(--game-color-gray); }

        /* --- Overlay/Modal for Start & Results --- */
        .typing-game-container .overlay {
            position: absolute;
            inset: 0;
            background-color: var(--game-color-white);
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            text-align: center;
            padding: 2rem;
            transition: opacity 0.3s ease, visibility 0.3s ease;
            border-radius: 1rem;
        }

        .typing-game-container .overlay.hidden {
            opacity: 0;
            visibility: hidden;
        }
                
        .typing-game-container .overlay-content {
            width: 100%;
            max-width: 40rem;
        }

        .typing-game-container .overlay-content h2 {
            font-size: 2.5rem;
            font-weight: 700;
            color: var(--game-main-color);
            margin-top: 0;
            margin-bottom: 0.5rem;
        }

        .typing-game-container .overlay p {
            font-size: 1.125rem;
            color: var(--game-color-gray);
            margin-top: 0;
            margin-bottom: 2rem;
            max-width: 40ch;
            margin-left: auto;
            margin-right: auto;
        }

        .typing-game-container #results-grid {
            display: flex;
            gap: 1.5rem;
            width: 100%;
            max-width: 32rem;
            margin-left: auto;
            margin-right: auto;
        }
                
        .typing-game-container #results-grid > div {
            background-color: var(--game-main-background);
            padding: 1.5rem;
            border-radius: 0.75rem;
            border: 1px solid var(--game-border-color);
            flex: 1;
        }

        .typing-game-container #results-grid .stat-value {
            font-size: 3.5rem;
            font-weight: 700;
            color: var(--game-secondary-color);
            margin-top: 0.25rem;
        }

        /* --- Buttons --- */
        .typing-game-container .button-group {
            margin-top: 2.5rem;
            text-align: center;
            display: flex;
            justify-content: center;
            gap: 1rem;
        }

        .typing-game-container .button {
            background-color: var(--game-main-color);
            color: var(--game-color-white);
            font-weight: bold;
            padding: 0.75rem 2rem;
            border: none;
            border-radius: 0.5rem;
            box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06);
            transition: all 0.2s;
            cursor: pointer;
            font-size: 1rem;
            text-decoration: none;
            display: inline-block;
        }

        .typing-game-container .button:hover {
            background-color: var(--game-secondary-color);
            transform: translateY(-2px);
            box-shadow: 0 6px 10px -1px rgba(0,0,0,0.1);
        }
                
        .typing-game-container .button:focus {
            outline: none;
            box-shadow: 0 0 0 4px var(--game-focus-ring-color);
        }

        .typing-game-container .button.secondary {
            background-color: #0057b3;
        }
                
        .typing-game-container .button.secondary:hover {
             background-color: var(--game-main-color);
        }
                
        .typing-game-container .hidden { display: none; }
        .typing-game-container .visually-hidden {
            border: 0; clip: rect(0 0 0 0); height: 1px;
            margin: -1px; overflow: hidden; padding: 0;
            position: absolute; width: 1px;
        }

        /* --- SEO Content Section --- */
        .typing-game-container .seo-content {
            margin-top: 3rem;
            padding: 2rem;
            background-color: var(--game-secondary-background);
            border-radius: 1rem;
        }
        .typing-game-container .seo-content h2 {
            color: var(--game-main-color);
            margin-top: 0;
        }
        .typing-game-container .seo-content p {
            line-height: 1.6;
        }

        /* --- Mobile Responsive Styles --- */
        @media (max-width: 768px) {
            .typing-game-container .page-header h1 {
                font-size: 2.25rem;
            }

            .typing-game-container .game-card {
                padding: 1.5rem;
            }

            .typing-game-container #text-display-container {
                font-size: 1.75rem;
                padding: 1rem;
            }

            .typing-game-container .overlay-content h2 {
                font-size: 2rem;
            }

            .typing-game-container .stat-value {
                font-size: 1.75rem;
            }

            .typing-game-container #results-grid .stat-value {
                font-size: 2.5rem;
            }

            .typing-game-container .button-group {
                flex-direction: column;
                gap: 0.75rem;
            }

            .typing-game-container .button {
                white-space: normal; /* Allow text to wrap on smaller screens */
                padding: 0.85rem 1rem; /* Adjust padding for better text flow */
            }
        }

        @media (max-width: 480px) {
            .typing-game-container .page-header h1 {
                font-size: 2rem;
            }
            .typing-game-container .page-header p {
                font-size: 0.875rem;
            }
            .typing-game-container .game-card {
                padding: 1rem;
            }
            .typing-game-container #text-display-container {
                font-size: 1.5rem;
            }
            .typing-game-container .stats-grid {
                gap: 1rem;
            }
            .typing-game-container #results-grid {
                flex-direction: column;
            }
            .typing-game-container .overlay-content {
                padding: 1.5rem;
            }
        }