body {
            margin: 0;
            background: #0f1117;
            color: #e2e8f0;
            font-family: 'Inter', system-ui, sans-serif;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            height: 100vh;
            overflow: hidden;
        }
        #game-container {
            position: relative;
            border: 2px solid #22d3ee33;
            border-radius: 12px;
            box-shadow: 0 0 40px rgba(34, 211, 238, 0.1);
            transition: transform 0.05s ease-out;
        }
        #canvas {
            display: block;
            filter: contrast(1.1) brightness(1.1);
        }
        .ui-panel {
            position: absolute;
            top: 20px;
            left: 20px;
            pointer-events: none;
            user-select: none;
            z-index: 20;
        }
        .title {
            font-size: 32px;
            font-weight: 900;
            font-style: italic;
            color: #22d3ee;
            text-shadow: 0 0 15px rgba(34, 211, 238, 0.8), 0 0 30px rgba(34, 211, 238, 0.4);
            letter-spacing: -2px;
        }
        .score {
            font-family: monospace;
            font-size: 24px;
            color: #f472b6;
            text-shadow: 0 0 10px rgba(244, 114, 182, 0.5);
        }
        .banked { font-size: 14px; color: #22d3ee; margin-top: -5px; }
        .active-stage { font-size: 10px; font-weight: 900; opacity: 0.6; color: #fff; text-transform: uppercase; letter-spacing: 2px; margin-top: 5px; }
        
        #combo-container {
            margin-top: 10px;
            opacity: 0;
            transform: scale(0.8);
            transition: all 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
        }
        #combo-container.active { opacity: 1; transform: scale(1); }
        .combo-text {
            font-size: 36px;
            font-weight: 900;
            font-style: italic;
            color: #fbbf24;
            text-shadow: 0 0 15px rgba(251, 191, 36, 0.8);
        }
        .combo-bar-bg { width: 150px; height: 6px; background: rgba(255,255,255,0.1); border-radius: 3px; margin-top: 5px; overflow: hidden; }
        #combo-timer-bar { width: 100%; height: 100%; background: #fbbf24; border-radius: 3px; transition: width 0.1s linear; }

        #overlay {
            position: absolute;
            inset: 0;
            background: rgba(0,0,0,0.85);
            backdrop-filter: blur(12px);
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            transition: opacity 0.5s ease;
            z-index: 30;
        }
        #start-btn {
            background: #22d3ee;
            color: #000;
            border: none;
            padding: 15px 50px;
            font-size: 24px;
            font-weight: 900;
            border-radius: 50px;
            cursor: pointer;
            transition: all 0.2s;
            box-shadow: 0 0 20px rgba(34, 211, 238, 0.5);
            margin-top: 10px;
        }
        #start-btn:hover {
            transform: scale(1.05);
            box-shadow: 0 0 40px rgba(34, 211, 238, 0.8);
        }
        .stage-selector {
            display: flex;
            gap: 15px;
            margin-bottom: 25px;
        }
        .stage-card {
            padding: 10px 15px;
            border: 2px solid rgba(255,255,255,0.1);
            border-radius: 8px;
            background: rgba(255,255,255,0.05);
            color: #fff;
            font-size: 12px;
            font-weight: 900;
            cursor: pointer;
            transition: 0.2s;
        }
        .stage-card:hover { border-color: rgba(255,255,255,0.4); }
        .stage-card.active-card { background: rgba(34,211,238,0.2); border-color: #22d3ee; }

        .shop-container {
            display: grid;
            gap: 10px;
            width: 320px;
            margin-bottom: 25px;
        }
        .upgrade-btn {
            background: rgba(255,255,255,0.05);
            border: 1px solid rgba(34, 211, 238, 0.2);
            padding: 12px 20px;
            border-radius: 8px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            cursor: pointer;
            transition: 0.2s;
            color: #fff;
        }
        .upgrade-btn:hover:not(:disabled) {
            background: rgba(255,255,255,0.1);
            border-color: #22d3ee;
        }
        .upgrade-btn:disabled { opacity: 0.4; cursor: not-allowed; }
        .cost-tag { background: #f472b6; color: #000; padding: 2px 8px; border-radius: 20px; font-size: 12px; font-weight: 900; }

        .hidden { opacity: 0 !important; pointer-events: none !important; }
        @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }