
        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
            overflow-x: hidden;
            overscroll-behavior-y: contain; 
        }

        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(30px); }
            to { opacity: 1; transform: translateY(0); }
        }
        main {
            animation: fadeIn 0.6s ease-out both;
            will-change: transform, opacity;
        }
        
        .panel {
            background: white; padding: 15px 25px; border-radius: 8px;
            box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1); margin-bottom: 20px;
            display: flex; flex-direction: column; align-items: center; gap: 15px;
            width: 100%; max-width: 800px; box-sizing: border-box;
        }

        /* Game Zone */
        #game-zone {
            width: 100%;
            display: flex;
            flex-direction: column;
            align-items: center;
            background: transparent;
        }

        /* Native fullscreen (desktop) */
        #game-zone:fullscreen {
            background-color: #0f172a;
            justify-content: center;
            padding: 10px;
            overflow: auto;
        }
        #game-zone:-webkit-full-screen {
            background-color: #0f172a;
            justify-content: center;
            padding: 10px;
            overflow: auto;
        }

        /* Faux fullscreen (mobile & unsupported browsers) */
        #game-zone.faux-fullscreen {
            position: fixed;
            inset: 0;
            z-index: 9999;
            background-color: #0f172a;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: flex-start; /* Changed from center to prevent top clipping */
            padding: 10px;
            overflow: auto;
        }

        /* Larger cells in fullscreen modes */
        #game-zone:fullscreen .grid-board,
        #game-zone:-webkit-full-screen .grid-board,
        #game-zone.faux-fullscreen .grid-board {
            --calculated-size: calc(min(90vw / var(--cols), 80vh / var(--rows)));
            --cell-size: max(36px, var(--calculated-size));
        }

        #game-zone.faux-fullscreen #board-wrapper {
            max-width: 100%;
        }
        
        /* Board */
        #board-wrapper {
            width: 100%; 
            max-width: 98vw;
            padding: 15px;
            display: flex;
            overflow: auto;
            -webkit-overflow-scrolling: touch;
            user-select: none; 
            -webkit-user-select: none;
            -webkit-touch-callout: none;
        }
        
        #board-container {
            position: relative; 
            border: 3px solid #64748b; 
            border-radius: 4px;
            box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.2); 
            background: #cbd5e1; 
            touch-action: manipulation;
            margin: auto;
            flex-shrink: 0;
        }
        
        .grid-board { 
            display: grid; 
            gap: 1px; 
            background-color: #94a3b8; 
            border: 1px solid #94a3b8;
            --calculated-size: calc(min(90vw / var(--cols), 65vh / var(--rows)));
            --cell-size: max(32px, var(--calculated-size));
            grid-template-columns: repeat(var(--cols), var(--cell-size));
            grid-template-rows: repeat(var(--rows), var(--cell-size));
        }
        
        .cell {
            position: relative;
            display: flex; align-items: center; justify-content: center;
            cursor: pointer; font-weight: 800; 
            /* Lock to western monospace so numbers look identical across all languages */
            font-family: ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono",
                         "Roboto Mono", "Courier New", monospace !important;
            font-size: calc(var(--cell-size) * 0.55);
            width: var(--cell-size);
            height: var(--cell-size);
        }
        
        .cell-hidden {
            background-color: #e2e8f0;
            border-top: 2px solid #ffffff; border-left: 2px solid #ffffff;
            border-bottom: 2px solid #94a3b8; border-right: 2px solid #94a3b8;
        }
        .cell-hidden:active {
            border: 1px solid #94a3b8; background-color: #cbd5e1;
        }
        .cell-revealed {
            background-color: #f8fafc; border: 1px solid #e2e8f0;
        }
        .cell-mine-hit {
            background-color: #ef4444 !important; border-color: #ef4444 !important; color: white;
        }

        .ghost-flag {
            position: absolute; inset: 0;
            display: flex; align-items: center; justify-content: center;
            color: #ef4444; opacity: 0.15; pointer-events: none; transform: scale(0.85); 
        }

        .num-1 { color: #2563eb; } 
        .num-2 { color: #16a34a; } 
        .num-3 { color: #dc2626; } 
        .num-4 { color: #9333ea; } 
        .num-5 { color: #7f1d1d; } 
        .num-6 { color: #0d9488; } 
        .num-7 { color: #000000; } 
        .num-8 { color: #475569; } 

        .toggle-label {
            display: flex; align-items: center; gap: 6px; font-size: 14px; color: #334155;
            cursor: pointer; user-select: none; background: #f1f5f9; padding: 6px 12px;
            border-radius: 6px; font-weight: bold; transition: background 0.2s; border: 1px solid #cbd5e1;
        }
        .toggle-label:hover { background: #e2e8f0; }

        .fs-btn {
            background: none; border: none; color: #94a3b8;
            cursor: pointer; transition: color 0.2s; font-size: 1.2rem; padding: 4px 6px;
        }
        .fs-btn:hover { color: #f8fafc; }

        .seo-footer {
            width: 100%; max-width: 800px; color: #475569; font-size: 0.95rem;
            line-height: 1.6; padding: 20px; background: white;
            border-top: 3px solid #e2e8f0; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.05);
        }
        .seo-lang-block { display: none; }
        .seo-lang-block.active { display: block; }