 /* --- CSS Variables for Cyberpunk Theme --- */
        :root {
            --neon-blue: #00e5ff; /* Primary Cyberpunk Blue */
            --neon-pink: #ff007f; /* Accent Cyberpunk Pink/Fuchsia */
            --dark-bg-1: #0a001a; /* Very dark background */
            --dark-bg-2: #05000d; /* Even darker, almost black */
            --text-main: #b3ffff; /* Light blue/cyan for main text */
            --text-secondary: #0099cc; /* Darker blue for secondary text */
            --card-bg: rgba(10, 0, 26, 0.7); /* Dark, slightly transparent panel */
            --border-color: rgba(0, 229, 255, 0.3); /* Neon blue border */
            --shadow-color: rgba(0, 229, 255, 0.15); /* Neon blue shadow */
            --glow-intensity: 0 0 15px var(--neon-blue), 0 0 25px var(--neon-pink); /* Dual color glow */
            --glitch-color-1: rgba(0, 255, 255, 0.5); /* Cyan for glitch */
            --glitch-color-2: rgba(255, 0, 127, 0.5); /* Pink for glitch */
            --big-color: #60a5fa; /* Original Tailwind blue for BIG */
            --small-color: #fb923c; /* Original Tailwind orange for SMALL */
        }
        
        /* --- Global / Body Styles --- */
        body {
            font-family: 'Share Tech Mono', monospace; /* Digital, monospace font */
            background: linear-gradient(135deg, var(--dark-bg-1) 0%, var(--dark-bg-2) 100%);
            min-height: 100vh;
            overflow-x: hidden;
            color: var(--text-main); /* Main text color */
            user-select: none;
            -webkit-user-select: none;
            -webkit-touch-callout: none;
            text-rendering: optimizeLegibility;
            -webkit-font-smoothing: antialiased;
            position: relative; /* For matrix effect */
        }
        
        /* --- Anti-copy elements --- */
        .no-copy::selection { background: transparent; color: inherit; }
        .no-copy {
            -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none;
            -moz-user-select: none; -ms-user-select: none; user-select: none;
        }
        .copy-protect { position: absolute; width: 100%; height: 100%; top: 0; left: 0; z-index: 9999; opacity: 0; }
        .hidden-watermark {
            position: fixed; bottom: 10px; right: 10px; color: rgba(255, 255, 255, 0.03);
            font-size: 9px; z-index: -1; user-select: none;
        }

        /* --- Glass Card / Console Styles --- */
        .glass-card {
            background: var(--card-bg);
            backdrop-filter: blur(18px) saturate(1.5);
            -webkit-backdrop-filter: blur(18px) saturate(1.5);
            border: 2px solid var(--border-color); /* Thicker, neon border */
            box-shadow: var(--glow-intensity), inset 0 0 10px rgba(0, 229, 255, 0.1); /* Dual color glow */
            transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
            position: relative;
            overflow: hidden;
            border-radius: 1rem; /* Slightly less rounded for sharper look */
            /* Performance: Promote to composite layer */
            will-change: transform, box-shadow, filter;
        }
        
        .glass-card::before {
            content: '';
            position: absolute;
            top: 0; left: 0; right: 0;
            height: 3px; /* Even thicker top line */
            background: linear-gradient(90deg, transparent, var(--neon-pink), var(--neon-blue), transparent);
            opacity: 0.9;
            animation: line-scan 3s infinite linear; /* Scanning effect */
        }
        @keyframes line-scan {
            0% { background-position: -200% 0; }
            100% { background-position: 200% 0; }
        }

        /* Glitch Effect on Console (main cards) */
        .glass-card::after {
            content: '';
            position: absolute;
            top: 0; left: 0; width: 100%; height: 100%;
            border: 2px solid var(--neon-blue);
            border-radius: 1rem;
            opacity: 0;
            animation: glitch-border 5s infinite linear; /* Slower glitch */
            z-index: 1; /* Below content */
            pointer-events: none;
            /* Performance: Promote to composite layer */
            will-change: transform, opacity;
        }
        .glass-card.glitchy::after { /* Add this class to cards for glitch */
            border-color: var(--neon-pink);
            animation-delay: 0.15s;
        }

        @keyframes glitch-border {
            0% { transform: translate(0, 0); opacity: 0; }
            0.5% { transform: translate(-2px, -2px); opacity: 0.5; }
            1% { transform: translate(2px, 2px); opacity: 0; }
            1.5% { transform: translate(0, 0); opacity: 0.8; }
            2% { transform: translate(1px, -1px); opacity: 0.3; }
            2.5% { transform: translate(-1px, 1px); opacity: 0; }
            100% { opacity: 0; }
        }

        .glass-card:hover {
            transform: translateY(-5px) scale(1.005);
            box-shadow: 0 0 25px var(--neon-blue), 0 0 40px var(--neon-pink);
            border-color: var(--neon-pink);
        }
        
        /* Win/Loss Card Animations */
        .win-card {
            animation: winFlash 1.8s ease-out;
            border-color: var(--neon-blue) !important;
            box-shadow: 0 0 25px var(--neon-blue), inset 0 0 10px rgba(0, 229, 255, 0.4) !important;
        }
        .win-card::after {
            background: radial-gradient(circle, rgba(0, 229, 255, 0.4) 0%, transparent 70%);
            animation: winRipple 1.8s ease-out;
        }
        @keyframes winFlash {
            0% { background-color: rgba(0, 229, 255, 0.1); }
            50% { background-color: rgba(0, 229, 255, 0.3); }
            100% { background-color: var(--card-bg); }
        }
        @keyframes winRipple {
            0% { transform: scale(0); opacity: 0.9; }
            100% { transform: scale(1); opacity: 0; }
        }
        
        .loss-card {
            animation: lossShake 0.9s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
            border-color: var(--neon-pink) !important; /* Cyberpunk pink for loss */
            box-shadow: 0 0 25px var(--neon-pink), inset 0 0 10px rgba(255, 0, 127, 0.4) !important;
        }
        @keyframes lossShake {
            0%, 100% { transform: translateX(0); }
            10%, 30%, 50%, 70%, 90% { transform: translateX(-10px); } /* More aggressive shake */
            20%, 40%, 60%, 80% { transform: translateX(10px); }
        }
        
        /* General Animations */
        .pulse { animation: pulse 2.5s infinite cubic-bezier(0.4, 0, 0.6, 1); }
        @keyframes pulse {
            0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(0, 229, 255, 0.5); }
            70% { transform: scale(1.03); box-shadow: 0 0 0 15px rgba(0, 229, 255, 0); }
            100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(0, 229, 255, 0); }
        }
        
        .floating { animation: floating 4s ease-in-out infinite; }
        @keyframes floating {
            0%, 100% { transform: translateY(0) translateX(0); }
            25% { transform: translateY(-12px) translateX(7px); } /* More movement */
            50% { transform: translateY(0) translateX(0); }
            75% { transform: translateY(12px) translateX(-7px); }
        }
        
        .rotate { animation: rotate 20s linear infinite; } /* Slower rotate */
        @keyframes rotate {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }
        
        .number-glow {
            animation: numberGlow 2.5s infinite alternate;
            text-shadow: 0 0 10px var(--neon-blue); /* Stronger glow for numbers */
        }
        @keyframes numberGlow {
            0% { box-shadow: 0 0 10px rgba(0, 229, 255, 0.4); }
            100% { box-shadow: 0 0 25px rgba(0, 229, 255, 0.8); }
        }
        
        /* Adjusted neon-glow for "TANMAY" to be less blurry and more sharp */
        .neon-glow {
            text-shadow: 
                0 0 5px var(--neon-blue),   /* Inner, sharper glow */
                0 0 15px var(--neon-pink),  /* Medium glow */
                0 0 25px var(--neon-blue); /* Outer, more diffuse glow */
            animation: neonPulse 1.5s infinite alternate; /* Faster pulse */
        }
        @keyframes neonPulse {
            from { opacity: 0.9; text-shadow: 0 0 8px var(--neon-blue), 0 0 18px var(--neon-pink); }
            to { opacity: 1; text-shadow: 0 0 12px var(--neon-pink), 0 0 25px var(--neon-blue), 0 0 40px var(--neon-pink); }
        }
        
        .text-flicker { /* New animation for text elements */
            animation: textFlicker 0.1s infinite alternate;
        }
        @keyframes textFlicker {
            0%, 100% { opacity: 1; filter: brightness(1) contrast(1); }
            50% { opacity: 0.9; filter: brightness(1.2) contrast(0.8); }
        }

        /* --- Scrollbar --- */
        .scrollbar-hide::-webkit-scrollbar { display: none; }
        .scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; }
        
        ::-webkit-scrollbar { width: 10px; height: 10px; } /* Wider */
        ::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.4); border-radius: 5px; } /* Darker track */
        ::-webkit-scrollbar-thumb {
            background: linear-gradient(180deg, var(--neon-blue), var(--neon-pink));
            border-radius: 5px;
            border: 1px solid var(--border-color);
        }
        ::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, var(--neon-pink), var(--neon-blue)); }

        /* --- Gradient Text --- */
        .gradient-text {
            background: linear-gradient(135deg, var(--neon-blue), var(--neon-pink));
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
            text-shadow: none; /* Remove default text shadow for gradient */
            font-family: 'Orbitron', sans-serif; /* Aggressive font for title */
            /* Performance: Ensure smooth text rendering */
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }
        
        /* --- Popup Overlay --- */
        .popup-overlay {
            background-color: rgba(0, 0, 0, 0.9); /* Darker overlay */
            backdrop-filter: blur(10px) brightness(0.7); /* Stronger blur and dim */
            -webkit-backdrop-filter: blur(10px) brightness(0.7);
            transition: opacity 0.3s ease-in-out;
            opacity: 0;
            pointer-events: none;
            /* Performance: Promote to composite layer */
            will-change: opacity, filter;
        }
        .popup-overlay.active {
            opacity: 1;
            pointer-events: all;
        }
        .popup-content {
            background: rgba(10, 0, 26, 0.95); /* Matches card background */
            backdrop-filter: blur(25px) saturate(2); /* More intense glass */
            -webkit-backdrop-filter: blur(25px) saturate(2);
            border: 2px solid var(--neon-blue);
            box-shadow: var(--glow-intensity);
            border-radius: 1.5rem;
            transform: translateY(50px) scale(0.9); /* Starts lower */
            animation: popup-enter 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
            /* Performance: Promote to composite layer */
            will-change: transform, opacity, filter, box-shadow;
        }
        @keyframes popup-enter {
            0% { transform: translateY(50px) scale(0.9); opacity: 0; }
            100% { transform: translateY(0) scale(1); opacity: 1; }
        }
        .popup-header {
            border-bottom: 2px solid var(--border-color); /* Thicker border */
        }
        .popup-close {
            color: var(--neon-pink); /* Neon pink close button */
            text-shadow: 0 0 10px var(--neon-pink);
            transition: transform 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
            /* Performance: Promote to composite layer */
            will-change: transform, color, box-shadow;
        }
        .popup-close:hover {
            transform: rotate(180deg) scale(1.2); /* More pronounced hover */
            color: var(--neon-blue);
            box-shadow: 0 0 15px var(--neon-blue);
        }
        
        /* --- Security Badge --- */
        .security-badge {
            background: rgba(0, 229, 255, 0.08); /* Neon blue translucent */
            border: 1px solid var(--neon-blue);
            box-shadow: 0 0 15px var(--neon-blue);
            color: var(--text-main);
            transition: all 0.3s ease;
            /* Performance: Promote to composite layer */
            will-change: transform, box-shadow, border-color;
        }
        .security-badge:hover {
            transform: scale(1.05);
            box-shadow: 0 0 25px var(--neon-pink);
            border-color: var(--neon-pink);
        }
        .security-badge i {
            color: var(--neon-pink); /* Neon pink icon */
            text-shadow: 0 0 8px var(--neon-pink);
        }
        
        /* --- Matrix Rain Effect --- */
        .matrix-rain {
            opacity: 0.08; /* Slightly more visible, denser rain */
            filter: blur(0.5px); /* Soften for background effect */
            /* Performance: Promote to composite layer and isolate */
            transform: translateZ(0);
            will-change: opacity, filter;
        }
        
        /* --- Terminal Digit Styling --- */
        .terminal-digit {
            font-family: 'Orbitron', monospace; /* Aggressive font for numbers */
            background: rgba(0, 255, 255, 0.12); /* Brighter cyan background */
            border: 1px solid rgba(0, 255, 255, 0.25); /* Brighter border */
            border-radius: 8px; /* Slightly more rounded */
            padding: 4px 9px; /* More padding */
            margin: 0 3px;
            text-shadow: 0 0 10px rgba(0, 255, 255, 0.8); /* Intense glow */
            color: var(--neon-blue); /* Neon blue text */
            box-shadow: inset 0 0 8px rgba(0, 255, 255, 0.3); /* Inner glow */
            transition: all 0.3s ease;
            /* Performance: Promote to composite layer */
            will-change: transform, background, box-shadow, border-color;
        }
        .terminal-digit:hover {
            background: rgba(0, 255, 255, 0.2);
            box-shadow: inset 0 0 15px rgba(0, 255, 255, 0.6), 0 0 15px rgba(0, 255, 255, 0.5);
            transform: scale(1.05); /* Slight pop on hover */
        }
        
        /* --- Holographic Effect --- */
        .holographic::after {
            background: linear-gradient(
                to bottom right,
                rgba(0, 255, 255, 0) 0%,
                rgba(0, 255, 255, 0) 45%,
                rgba(0, 255, 255, 0.2) 50%, /* Stronger light band */
                rgba(0, 255, 255, 0) 55%,
                rgba(0, 255, 255, 0) 100%
            );
            transform: rotate(45deg);
            animation: hologram 6s linear infinite; /* Faster hologram */
            /* Performance: Promote to composite layer */
            will-change: transform;
        }
        @keyframes hologram {
            0% { transform: rotate(45deg) translate(-50%, -50%); } /* Increased movement */
            100% { transform: rotate(45deg) translate(50%, 50%); }
        }

        /* --- History Card Overhaul --- */
        .history-card {
            background: rgba(10, 0, 26, 0.7); /* Dark background */
            border: 2px solid var(--border-color); /* Neon border */
            box-shadow: var(--glow-intensity); /* Neon glow */
            color: var(--text-main);
            border-radius: 0.5rem; /* Sharper corners */
            transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
            /* Performance: Promote to composite layer */
            will-change: transform, box-shadow, border-color;
        }
        .history-card::before { /* Remove original top line, use main card's before */
            display: none;
        }
        .history-card.green {
            border-color: var(--neon-blue);
            box-shadow: 0 0 15px var(--neon-blue);
        }
        .history-card.red {
            border-color: var(--neon-pink);
            box-shadow: 0 0 15px var(--neon-pink);
        }
        .history-card.yellow {
            border-color: var(--text-secondary); /* A neutral neon for pending */
            box-shadow: 0 0 15px var(--text-secondary);
        }
        .history-card:hover {
            transform: translateY(-7px); /* More pronounced lift */
            box-shadow: 0 0 25px var(--neon-blue), 0 0 40px var(--neon-pink);
            border-color: var(--neon-pink);
        }

        .history-actions i {
            font-size: 1.5rem; /* Larger icons */
            text-shadow: 0 0 10px currentColor; /* Stronger glow */
        }
        .history-actions i:hover {
            transform: scale(1.35); /* More pronounced pop */
        }

        .win-icon { color: var(--neon-blue); }
        .loss-icon { color: var(--neon-pink); }
        .spinner {
            color: var(--text-secondary); /* Cyan for pending */
            animation: spin 1.5s linear infinite; /* Slower spin */
        }
        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }

        /* --- Specific element color mappings to Cyberpunk --- */
        .text-green-400 { color: var(--neon-blue); }
        .text-cyan-400 { color: var(--neon-pink); } /* Using pink for AI ACTIVE */
        .text-yellow-400 { color: var(--text-secondary); } /* Accent for warnings/special */
        .text-blue-400 { color: var(--big-color); }
        .text-orange-400 { color: var(--small-color); }
        .text-green-300 { color: var(--text-main); } /* For popup text */
        .text-gray-400 { color: var(--text-secondary); } /* For loading/default text */

        .bg-green-900 { background-color: rgba(0, 0, 0, 0.4); } /* Darker, less green */
        .bg-green-800 { background-color: rgba(0, 0, 0, 0.6); } /* Darker */
        .border-green-900 { border-color: rgba(0, 229, 255, 0.1); }
        .border-green-800 { border-color: rgba(0, 229, 255, 0.2); }

        /* General button styling */
        .bg-gradient-to-r {
            background-image: linear-gradient(to right, var(--neon-blue), var(--neon-pink));
            box-shadow: var(--glow-intensity);
            transition: all 0.3s ease; /* Smooth transition for buttons */
            /* Performance: Promote to composite layer */
            will-change: transform, box-shadow, background-image;
        }
        .hover\:from-green-700:hover { /* Adjust hover gradient to flip */
            background-image: linear-gradient(to right, var(--neon-pink), var(--neon-blue));
            box-shadow: 0 0 20px var(--neon-pink), 0 0 35px var(--neon-blue);
        }
        .hover\:scale-105:hover { transform: scale(1.03); } /* Slightly less aggressive scale */
        .hover\:scale-125:hover { transform: scale(1.3); }

        /* Floating background elements */
        .relative div[class*="rounded-full"][class*="opacity-"] {
            background-color: var(--neon-blue);
            box-shadow: 0 0 25px var(--neon-blue);
            filter: brightness(1.2);
            /* Performance: Promote to composite layer */
            will-change: transform, opacity, filter;
        }
        /* Specific overrides for your Tailwind-generated classes */
        .absolute.top-1\/3.right-20.w-24.h-24.rounded-full.bg-cyan-300 {
            background-color: var(--neon-pink);
            box-shadow: 0 0 30px var(--neon-pink);
            filter: brightness(1.3);
        }
        .absolute.bottom-20.right-10.w-32.h-32.rounded-full.bg-cyan-500 {
            background-color: var(--neon-blue);
            box-shadow: 0 0 40px var(--neon-blue);
            filter: brightness(1.4);
        }

        /* Prediction Circle and Char */
        #predictionCircle {
            background-color: rgba(10, 0, 26, 0.8); /* Dark background */
            border: 3px solid var(--border-color); /* Neon border */
            box-shadow: var(--glow-intensity); /* Initial glow */
            transition: all 0.4s ease; /* Smooth transition for prediction circle */
            /* Performance: Promote to composite layer */
            will-change: background-color, border-color, box-shadow, transform;
        }
        #predictionCircle.bg-blue-800 { background-color: rgba(30, 60, 100, 0.8); border-color: var(--big-color); box-shadow: 0 0 20px var(--big-color); }
        #predictionCircle.bg-orange-800 { background-color: rgba(100, 50, 20, 0.8); border-color: var(--small-color); box-shadow: 0 0 20px var(--small-color); }

        #predictionIcon {
            text-shadow: 0 0 10px currentColor; /* Stronger icon glow */
            animation: neonPulse 1.2s infinite alternate; /* Faster pulse for icon */
            transition: all 0.4s ease;
            /* Performance: Promote to composite layer */
            will-change: color, text-shadow, transform;
        }
        #predictionIcon.text-blue-400 { color: var(--big-color); }
        #predictionIcon.text-orange-400 { color: var(--small-color); }

        #predictionChar {
            font-family: 'Orbitron', sans-serif;
            text-shadow: 0 0 10px currentColor;
            animation: neonPulse 1.2s infinite alternate;
            transition: all 0.4s ease;
            /* Performance: Promote to composite layer */
            will-change: color, text-shadow, transform;
        }
        #predictionChar.text-blue-400 { color: var(--big-color); }
        #predictionChar.text-orange-400 { color: var(--small-color); }

        .progress-ring {
            stroke: var(--neon-blue); /* Neon blue progress bar */
            filter: drop-shadow(0 0 10px var(--neon-blue));
            /* Performance: Promote to composite layer */
            will-change: stroke, filter, stroke-dashoffset;
        }
        .text-green-500.progress-ring { /* Specific color for actual progress */
            stroke: var(--neon-pink); /* Pink accent for progress */
            filter: drop-shadow(0 0 10px var(--neon-pink));
        }

        /* History card numbers for better contrast */
        .history-card .terminal-digit {
            background: rgba(0, 255, 255, 0.05); /* Lighter background for numbers in history */
            border-color: rgba(0, 255, 255, 0.1);
        }
        .history-card .terminal-digit.neon-glow {
            text-shadow: 0 0 8px var(--neon-blue), 0 0 15px var(--neon-pink); /* Dual glow for history numbers */
        }

        /* Input field styling */
        #periodDisplay {
            background: rgba(0, 0, 0, 0.3);
            border: 1px solid var(--border-color);
            border-radius: 6px;
            padding: 6px 10px;
            color: var(--neon-blue);
            text-align: center;
            font-size: 1.15rem;
            box-shadow: inset 0 0 10px rgba(0, 229, 255, 0.3);
            transition: all 0.3s ease;
        }

        #periodDisplay:focus {
            outline: none;
            border-color: var(--neon-pink);
            box-shadow: inset 0 0 20px rgba(255, 0, 127, 0.5), 0 0 15px var(--neon-pink);
        }

        /* New: Pulsating icon for active AI */
        .ai-active-pulse {
            animation: pulse-ai 1.5s infinite alternate;
        }
        @keyframes pulse-ai {
            0% { transform: scale(1); opacity: 0.8; }
            100% { transform: scale(1.1); opacity: 1; }
        }

        /* New: Loading spinner for history */
        .history-loading {
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 150px;
            color: var(--neon-blue);
            font-size: 2rem;
            text-shadow: 0 0 10px var(--neon-blue);
        }

        /* New: Button hover effects for text/icon */
        button:hover .fas, button:hover .fab {
            transform: scale(1.1);
            text-shadow: 0 0 15px var(--neon-blue);
            transition: transform 0.2s ease, text-shadow 0.2s ease;
        }

        /* Enhanced header glow */
        header::before {
            content: '';
            position: absolute;
            top: 0; left: 0; right: 0; bottom: 0;
            background: radial-gradient(circle at center, rgba(0, 229, 255, 0.05) 0%, transparent 70%);
            z-index: 0;
            animation: header-radial-pulse 4s infinite alternate;
            /* Performance: Promote to composite layer */
            will-change: transform, opacity;
        }
        @keyframes header-radial-pulse {
            0% { transform: scale(0.9); opacity: 0.8; }
            100% { transform: scale(1.1); opacity: 1; }
        }

        /* Add subtle movement to all elements */
        /* Applied will-change to specific elements where needed for performance */
        .container {
            perspective: 1000px; /* For 3D transforms */
        }
        /* Further optimizations for specific animations */
        .number-glow, .neon-glow, .text-flicker {
            transform: translateZ(0); /* Ensure these are also on their own layer */
        }