        /* Custom scrollbar and ambient visual effects */
        ::-webkit-scrollbar {
            width: 8px;
        }
        ::-webkit-scrollbar-track {
            background: #06060a;
        }
        ::-webkit-scrollbar-thumb {
            background: #2a2d42;
            border-radius: 4px;
        }
        ::-webkit-scrollbar-thumb:hover {
            background: #e04228;
        }
        .glass-panel {
            background: rgba(20, 22, 34, 0.65);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            border: 1px solid rgba(255, 255, 255, 0.08);
        }
        .glass-card-hover {
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }
        .glass-card-hover:hover {
            border-color: rgba(224, 66, 40, 0.4);
            transform: translateY(-4px);
            box-shadow: 0 12px 30px -10px rgba(224, 66, 40, 0.25);
        }
        .glow-red {
            box-shadow: 0 0 25px rgba(224, 66, 40, 0.35);
        }
        .glow-green {
            box-shadow: 0 0 25px rgba(16, 185, 129, 0.25);
        }
        .clip-slant {
            clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%);
        }

        /* ---------- Surface atmosphere: airborne dust grain over the whole site ---------- */
        body::before {
            content: '';
            position: fixed;
            inset: 0;
            z-index: 100;
            pointer-events: none;
            opacity: 0.22;
            mix-blend-mode: overlay;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");
        }
        /* Helmet-visor vignette */
        body::after {
            content: '';
            position: fixed;
            inset: 0;
            z-index: 99;
            pointer-events: none;
            background: radial-gradient(ellipse at 50% 45%, transparent 45%, rgba(20, 8, 4, 0.55) 100%);
        }

        /* ---------- Hero HUD chrome ---------- */
        .hud-mono {
            font-family: 'JetBrains Mono', monospace;
            letter-spacing: 0.08em;
        }
        .hud-bracket {
            position: absolute;
            width: 42px;
            height: 42px;
            border-color: rgba(232, 177, 132, 0.5);
            pointer-events: none;
        }
        .hud-scan {
            background-image: repeating-linear-gradient(
                to bottom,
                rgba(255, 255, 255, 0.03) 0px,
                rgba(255, 255, 255, 0.03) 1px,
                transparent 1px,
                transparent 3px
            );
        }
        @keyframes dustDrift {
            0%   { transform: translateX(-8%) translateY(0); opacity: 0; }
            15%  { opacity: 0.5; }
            85%  { opacity: 0.4; }
            100% { transform: translateX(108%) translateY(-3%); opacity: 0; }
        }
        .dust-sweep {
            position: absolute;
            inset: 0;
            pointer-events: none;
            background: radial-gradient(ellipse 55% 40% at 20% 70%, rgba(232, 177, 132, 0.16), transparent 70%);
            animation: dustDrift 26s linear infinite;
        }
        .dust-sweep.delay { animation-duration: 38s; animation-delay: -14s; opacity: 0.6; }

        /* Horizon rule used between sections */
        .horizon-rule {
            height: 1px;
            background: linear-gradient(to right, transparent, rgba(232, 177, 132, 0.35), transparent);
        }

        /* ---------- Touchdown / descent boot sequence ---------- */
        #landingSeq {
            position: fixed;
            inset: 0;
            z-index: 200;
            background: #0a0402;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: opacity 900ms ease, visibility 900ms;
        }
        #landingSeq.done {
            opacity: 0;
            visibility: hidden;
        }
        @keyframes flicker {
            0%, 100% { opacity: 1; }
            50%      { opacity: 0.45; }
        }
        .flicker { animation: flicker 1.1s ease-in-out infinite; }
