        /* ---------- Section background ---------- */
        .section-bg {
            background:
                radial-gradient(ellipse 60% 40% at 20% 30%, rgba(20, 35, 102, 0.55) 0%, transparent 60%),
                radial-gradient(ellipse 50% 35% at 80% 70%, rgba(10, 22, 71, 0.6) 0%, transparent 55%),
                linear-gradient(165deg, #050B26 0%, #0A1647 60%, #0A1958 100%);
        }

        /* ---------- Countdown cards ---------- */
        .cd-card {
            background: var(--c-card);
            color: var(--c-card-text);
            border-radius: 18px;
            box-shadow:
                0 24px 60px rgba(0, 0, 0, 0.35),
                0 0 0 1px rgba(255, 255, 255, 0.04) inset;
        }
        .cd-number {
            font-family: var(--font-display);
            line-height: 0.95;
            letter-spacing: -0.02em;
            color: var(--c-card-text);
        }
        .cd-label {
            font-family: var(--font-display);
            letter-spacing: 0.02em;
            color: var(--c-card-text);
        }

        /* The wavy decorative line behind the countdown */
        .cd-wave {
            position: absolute;
            inset: -8% -6% -8% -8%;
            pointer-events: none;
            z-index: 0;
            opacity: 0.95;
        }
        .cd-wave svg { width: 100%; height: 100%; }

        /* ---------- Programme rows ---------- */
        .row-date {
            font-family: var(--font-body);
            font-weight: 800;
            color: #fff;
            letter-spacing: 0.01em;
        }
        .row-title {
            font-family: var(--font-body);
            font-weight: 700;
            color: var(--c-accent);
            letter-spacing: 0.04em;
            text-transform: uppercase;
        }
        .row-divider {
            background: linear-gradient(90deg, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0.85) 50%, rgba(255,255,255,0.35) 100%);
            height: 1px;
        }

        /* ---------- Animations ---------- */
        @keyframes riseIn {
            from { opacity: 0; transform: translateY(20px); }
            to   { opacity: 1; transform: translateY(0); }
        }
        @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
        @keyframes waveFloat {
            0%, 100% { transform: translateY(0) translateX(0); }
            50%      { transform: translateY(-8px) translateX(4px); }
        }
        @keyframes lineGrow {
            from { transform: scaleX(0); }
            to   { transform: scaleX(1); }
        }
        @keyframes numFlip {
            0%   { transform: rotateX(-90deg); opacity: 0; }
            100% { transform: rotateX(0); opacity: 1; }
        }

        .anim-rise { opacity: 0; animation: riseIn 0.9s cubic-bezier(.2,.7,.2,1) forwards; }
        .anim-fade { opacity: 0; animation: fadeIn 1.1s ease forwards; }
        .anim-wave { animation: waveFloat 7s ease-in-out infinite; }
        .anim-line { transform-origin: left center; transform: scaleX(0); animation: lineGrow 0.9s cubic-bezier(.2,.7,.2,1) forwards; }

        .cd-number-anim {
            display: inline-block;
            transform-origin: center bottom;
            animation: numFlip 0.6s cubic-bezier(.2,.7,.2,1);
        }

        /* ---------- Responsive countdown sizing ---------- */
        /* Desktop: 01 = ~10rem, side cells ~5rem; Mobile scales down */
        .num-big   { font-size: clamp(4.5rem, 13vw, 10rem); }
        .num-small { font-size: clamp(2.5rem, 7vw, 5rem); }
        .lbl-big   { font-size: clamp(1.5rem, 3.5vw, 2.25rem); }
        .lbl-small { font-size: clamp(0.85rem, 1.6vw, 1.05rem); }
