        html {
            scroll-behavior: smooth;
        }

        body {
            background-color: #050505;
            color: #f8fafc;
            overflow-x: hidden;
            cursor: none;
        }
        
        /* Custom Scrollbar */
        ::-webkit-scrollbar {
            width: 8px;
            height: 8px;
        }
        ::-webkit-scrollbar-track {
            background: #050505;
        }
        ::-webkit-scrollbar-thumb {
            background: #1e293b;
            border-radius: 4px;
        }
        ::-webkit-scrollbar-thumb:hover {
            background: #334155;
        }
        
        /* Custom Cursor */
        #custom-cursor {
            position: fixed;
            width: 8px;
            height: 8px;
            background: #5DA9FF;
            border-radius: 50%;
            pointer-events: none;
            z-index: 9999;
            transition: transform 0.1s ease-out;
        }
        #cursor-glow {
            position: fixed;
            width: 40px;
            height: 40px;
            background: rgba(93, 169, 255, 0.2);
            border-radius: 50%;
            pointer-events: none;
            z-index: 9998;
            filter: blur(8px);
            transition: transform 0.2s ease-out, width 0.3s, height 0.3s;
        }

        /* 3D Moving Perspective Grid */
        .grid-perspective-container {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            perspective: 800px;
            overflow: hidden;
            z-index: 0;
            pointer-events: none;
        }
        .grid-perspective {
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background-image: 
                linear-gradient(rgba(93, 169, 255, 0.04) 1px, transparent 1px),
                linear-gradient(90deg, rgba(93, 169, 255, 0.04) 1px, transparent 1px);
            background-size: 80px 80px;
            transform: rotateX(75deg);
            animation: grid-move 40s linear infinite;
        }
        @keyframes grid-move {
            0% { transform: rotateX(75deg) translateY(0); }
            100% { transform: rotateX(75deg) translateY(80px); }
        }

        .atmospheric-layer {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: radial-gradient(circle at 50% 50%, transparent 0%, #050505 90%);
            mix-blend-mode: overlay;
            z-index: 1;
            pointer-events: none;
        }
        .fog-cloud {
            position: absolute;
            width: 150%;
            height: 150%;
            top: -25%;
            left: -25%;
            background: radial-gradient(circle, rgba(93, 169, 255, 0.02) 0%, transparent 70%);
            filter: blur(100px);
            animation: drift 45s ease-in-out infinite alternate;
            z-index: 1;
            pointer-events: none;
        }
        @keyframes drift {
            from { transform: translate(-8%, -8%) scale(1); }
            to { transform: translate(8%, 8%) scale(1.15); }
        }

        .glass-card {
            background: linear-gradient(145deg, rgba(30, 41, 59, 0.3) 0%, rgba(11, 17, 32, 0.4) 100%);
            backdrop-filter: blur(24px);
            -webkit-backdrop-filter: blur(24px);
            border: 1px solid rgba(255, 255, 255, 0.03);
            border-top: 1px solid rgba(255, 255, 255, 0.1);
            box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.3), inset 0 0 20px rgba(93, 169, 255, 0.02);
            transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
        }
        .glass-card:hover {
            border-color: rgba(93, 169, 255, 0.2);
            background: linear-gradient(145deg, rgba(30, 41, 59, 0.5) 0%, rgba(11, 17, 32, 0.6) 100%);
            box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4), inset 0 0 20px rgba(93, 169, 255, 0.05);
        }

        /* ============================
           3D TILT CARD SYSTEM
           ============================ */
        .card-3d {
            perspective: 1000px;
            transform-style: preserve-3d;
        }
        .card-3d-inner {
            transition: transform 0.4s cubic-bezier(0.23, 1, 0.32, 1), box-shadow 0.4s ease;
            transform-style: preserve-3d;
            will-change: transform;
        }
        .card-3d-inner:hover {
            box-shadow: 
                0 25px 60px rgba(0, 0, 0, 0.5),
                0 0 30px rgba(93, 169, 255, 0.1),
                inset 0 0 30px rgba(93, 169, 255, 0.03);
        }

        /* Glowing border sweep on 3D cards */
        .card-3d-inner::before {
            content: '';
            position: absolute;
            top: -1px;
            left: -1px;
            right: -1px;
            bottom: -1px;
            border-radius: inherit;
            background: linear-gradient(
                var(--glow-angle, 135deg),
                transparent 0%,
                rgba(93, 169, 255, 0.3) 50%,
                transparent 100%
            );
            z-index: -1;
            opacity: 0;
            transition: opacity 0.5s ease;
            pointer-events: none;
        }
        .card-3d-inner:hover::before {
            opacity: 1;
        }

        /* 3D content float layer */
        .card-3d-content {
            transform: translateZ(30px);
            transform-style: preserve-3d;
        }

        /* ============================
           PAGE ENTRANCE BACKGROUND
           (replaces earth on non-home pages)
           ============================ */
        .page-entrance-bg {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 0;
            pointer-events: none;
            overflow: hidden;
        }

        /* Animated perspective grid for entrance */
        .entrance-grid-container {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            perspective: 600px;
            overflow: hidden;
        }
        .entrance-grid {
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background-image: 
                linear-gradient(rgba(93, 169, 255, 0.06) 1px, transparent 1px),
                linear-gradient(90deg, rgba(93, 169, 255, 0.06) 1px, transparent 1px);
            background-size: 60px 60px;
            transform: rotateX(70deg);
            animation: entrance-grid-flow 30s linear infinite;
        }
        @keyframes entrance-grid-flow {
            0% { transform: rotateX(70deg) translateY(0); }
            100% { transform: rotateX(70deg) translateY(60px); }
        }

        /* Floating energy orbs */
        .entrance-orb {
            position: absolute;
            border-radius: 50%;
            filter: blur(40px);
            opacity: 0.4;
            animation: orb-float 12s ease-in-out infinite alternate;
        }
        .entrance-orb-1 {
            width: 300px;
            height: 300px;
            background: radial-gradient(circle, rgba(93, 169, 255, 0.2), transparent 70%);
            top: 10%;
            right: -5%;
            animation-delay: 0s;
            animation-duration: 15s;
        }
        .entrance-orb-2 {
            width: 200px;
            height: 200px;
            background: radial-gradient(circle, rgba(125, 211, 252, 0.15), transparent 70%);
            bottom: 20%;
            left: 5%;
            animation-delay: -3s;
            animation-duration: 18s;
        }
        .entrance-orb-3 {
            width: 150px;
            height: 150px;
            background: radial-gradient(circle, rgba(93, 169, 255, 0.12), transparent 70%);
            top: 40%;
            left: 30%;
            animation-delay: -7s;
            animation-duration: 20s;
        }
        @keyframes orb-float {
            0% { transform: translate(0, 0) scale(1); }
            33% { transform: translate(30px, -40px) scale(1.1); }
            66% { transform: translate(-20px, 20px) scale(0.9); }
            100% { transform: translate(15px, -15px) scale(1.05); }
        }

        /* Scan line effect */
        .entrance-scanline {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 2px;
            background: linear-gradient(90deg, transparent, rgba(93, 169, 255, 0.3), transparent);
            animation: scanline-move 8s linear infinite;
            opacity: 0.6;
        }
        @keyframes scanline-move {
            0% { top: -2px; }
            100% { top: 100%; }
        }

        /* Radial vignette overlay */
        .entrance-vignette {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: radial-gradient(ellipse at center, transparent 30%, #050505 85%);
        }

        /* Entrance particles canvas */
        .entrance-particles {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 1;
        }

        /* ============================
           PRODUCT CARD 3D STYLES
           ============================ */
        .product-card {
            perspective: 1000px;
        }
        .product-card-inner {
            position: relative;
            background: linear-gradient(145deg, rgba(30, 41, 59, 0.4) 0%, rgba(11, 17, 32, 0.6) 100%);
            backdrop-filter: blur(24px);
            -webkit-backdrop-filter: blur(24px);
            border: 1px solid rgba(255, 255, 255, 0.05);
            border-radius: 16px;
            overflow: hidden;
            transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1), box-shadow 0.5s ease;
            transform-style: preserve-3d;
            will-change: transform;
        }
        .product-card-inner:hover {
            box-shadow: 
                0 30px 80px rgba(0, 0, 0, 0.6),
                0 0 40px rgba(93, 169, 255, 0.12),
                inset 0 1px 0 rgba(255, 255, 255, 0.1);
        }

        /* Animated gradient border on product cards */
        .product-card-inner::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            border-radius: 16px;
            padding: 1px;
            background: linear-gradient(
                var(--border-angle, 0deg),
                transparent 30%,
                rgba(93, 169, 255, 0.5) 50%,
                transparent 70%
            );
            -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
            -webkit-mask-composite: xor;
            mask-composite: exclude;
            opacity: 0;
            transition: opacity 0.5s ease;
            pointer-events: none;
            z-index: 2;
        }
        .product-card-inner:hover::before {
            opacity: 1;
            animation: border-spin 3s linear infinite;
        }
        @keyframes border-spin {
            to { --border-angle: 360deg; }
        }
        @property --border-angle {
            syntax: '<angle>';
            initial-value: 0deg;
            inherits: false;
        }

        /* Product card icon glow */
        .product-icon {
            width: 60px;
            height: 60px;
            border-radius: 16px;
            background: linear-gradient(135deg, rgba(93, 169, 255, 0.15), rgba(125, 211, 252, 0.08));
            border: 1px solid rgba(93, 169, 255, 0.2);
            display: flex;
            align-items: center;
            justify-content: center;
            transition: all 0.4s ease;
            position: relative;
        }
        .product-card-inner:hover .product-icon {
            background: linear-gradient(135deg, rgba(93, 169, 255, 0.25), rgba(125, 211, 252, 0.15));
            box-shadow: 0 0 30px rgba(93, 169, 255, 0.2);
            transform: translateZ(10px);
        }

        /* Product price tag */
        .product-price {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 28px;
            font-weight: 700;
            background: linear-gradient(135deg, #5DA9FF, #7DD3FC);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }
        .product-price-label {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 11px;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            color: rgba(148, 163, 184, 0.7);
        }

        /* Know More button */
        .know-more-btn {
            position: relative;
            background: transparent;
            border: 1px solid rgba(93, 169, 255, 0.3);
            color: #5DA9FF;
            padding: 12px 32px;
            border-radius: 8px;
            font-family: 'Space Grotesk', sans-serif;
            font-size: 12px;
            font-weight: 600;
            letter-spacing: 0.15em;
            text-transform: uppercase;
            cursor: pointer;
            overflow: hidden;
            transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
        }
        .know-more-btn::after {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(135deg, rgba(93, 169, 255, 0.15), rgba(125, 211, 252, 0.05));
            opacity: 0;
            transition: opacity 0.4s ease;
        }
        .know-more-btn:hover {
            border-color: rgba(93, 169, 255, 0.7);
            box-shadow: 0 0 25px rgba(93, 169, 255, 0.2), inset 0 0 20px rgba(93, 169, 255, 0.05);
            transform: translateY(-2px);
        }
        .know-more-btn:hover::after {
            opacity: 1;
        }
        .know-more-btn span {
            position: relative;
            z-index: 1;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        /* ============================
           STAGGERED REVEAL ANIMATIONS
           ============================ */
        .reveal-card {
            opacity: 0;
            transform: translateY(40px) rotateX(5deg);
            transition: opacity 0.8s cubic-bezier(0.23, 1, 0.32, 1),
                        transform 0.8s cubic-bezier(0.23, 1, 0.32, 1);
        }
        .reveal-card.revealed {
            opacity: 1;
            transform: translateY(0) rotateX(0deg);
        }
        .reveal-card:nth-child(1) { transition-delay: 0.05s; }
        .reveal-card:nth-child(2) { transition-delay: 0.12s; }
        .reveal-card:nth-child(3) { transition-delay: 0.19s; }
        .reveal-card:nth-child(4) { transition-delay: 0.26s; }
        .reveal-card:nth-child(5) { transition-delay: 0.33s; }
        .reveal-card:nth-child(6) { transition-delay: 0.4s; }

        /* Page entrance reveal */
        .page-reveal {
            opacity: 0;
            transform: translateY(30px);
            animation: page-enter 1s cubic-bezier(0.23, 1, 0.32, 1) forwards;
        }
        .page-reveal-smooth {
            opacity: 0;
            transform: translate3d(0, 28px, 0);
            animation: page-enter-smooth 0.85s cubic-bezier(0.22, 1, 0.36, 1) forwards;
            will-change: transform, opacity;
        }
        .page-reveal-delay-1 { animation-delay: 0.1s; }
        .page-reveal-delay-2 { animation-delay: 0.2s; }
        .page-reveal-delay-3 { animation-delay: 0.35s; }
        .page-reveal-delay-4 { animation-delay: 0.5s; }
        @keyframes page-enter {
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        @keyframes page-enter-smooth {
            to {
                opacity: 1;
                transform: translate3d(0, 0, 0);
            }
        }

        /* ============================
           EXISTING STYLES (preserved)
           ============================ */
        .glow-button {
            box-shadow: 0 4px 15px rgba(93, 169, 255, 0.15);
            transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
            position: relative;
            overflow: hidden;
        }
        .glow-button::after {
            content: '';
            position: absolute;
            top: -50%; left: -50%;
            width: 200%; height: 200%;
            background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 60%);
            opacity: 0;
            transition: opacity 0.3s;
            pointer-events: none;
        }
        .glow-button:hover {
            box-shadow: 0 8px 25px rgba(140, 196, 255, 0.4);
            background-color: #8CC4FF;
            transform: translateY(-2px);
        }
        .glow-button:hover::after {
            opacity: 1;
        }
        
        .particles-canvas {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 2;
        }

        @keyframes subtle-float {
            0%, 100% { transform: translateY(0px) rotate(0deg); }
            33% { transform: translateY(-30px) rotate(1deg); }
            66% { transform: translateY(-15px) rotate(-1deg); }
        }
        @keyframes slow-rotate {
            from { transform: rotate(0deg); }
            to { transform: rotate(360deg); }
        }
        @keyframes rhythmic-glow {
            0%, 100% { filter: drop-shadow(0 0 30px rgba(93, 169, 255, 0.2)) brightness(1); }
            50% { filter: drop-shadow(0 0 60px rgba(93, 169, 255, 0.4)) brightness(1.2); }
        }

        .orb-container {
            transition: transform 0.6s cubic-bezier(0.23, 1, 0.32, 1), filter 0.6s ease;
        }
        .crystal-float {
            animation: subtle-float 10s ease-in-out infinite;
        }
        .crystal-rotate {
            animation: floatPlanet 8s ease-in-out infinite;
        }
        .crystal-glow {
            animation: rhythmic-glow 6s ease-in-out infinite;
        }

        .orb-glow-backdrop {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 500px;
            height: 500px;
            background: radial-gradient(circle, rgba(93, 169, 255, 0.12) 0%, transparent 70%);
            filter: blur(60px);
            transition: all 0.8s ease;
            z-index: 1;
            pointer-events: none;
        }

        /* Tether Animation */
        .energy-tether {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 5;
        }
        .tether-line {
            fill: none;
            stroke: rgba(93, 169, 255, 0.4);
            stroke-width: 1.5;
            stroke-dasharray: 4, 12;
            stroke-linecap: round;
            animation: dash 20s linear infinite;
        }
        @keyframes dash {
            to { stroke-dashoffset: -100; }
        }

        .marquee {
            overflow: hidden;
            white-space: nowrap;
            position: relative;
        }
        .marquee-content {
            display: inline-block;
            animation: marquee 30s linear infinite;
        }
        @keyframes marquee {
            0% { transform: translateX(0); }
            100% { transform: translateX(-50%); }
        }

        @keyframes slide-up {
            from { opacity: 0; transform: translateY(30px); }
            to { opacity: 1; transform: translateY(0); }
        }
        .animate-slide-up {
            opacity: 0;
            animation: slide-up 1.2s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
        }
        .delay-1 { animation-delay: 0.1s; }
        .delay-2 { animation-delay: 0.2s; }
        .delay-3 { animation-delay: 0.3s; }
        .delay-4 { animation-delay: 0.4s; }
        .delay-5 { animation-delay: 0.5s; }

        .breathing-text {
            animation: breathe 8s ease-in-out infinite;
        }
        @keyframes breathe {
            0%, 100% { opacity: 0.4; letter-spacing: 0.05em; }
            50% { opacity: 1; letter-spacing: 0.15em; }
        }

        #top-nav {
            transform: translateY(0);
            transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), backdrop-filter 0.6s ease, width 0.6s ease, top 0.6s ease;
        }
        #top-nav.scrolled {
            transform: translateY(-8px);
            backdrop-filter: blur(40px);
            width: 85%;
            top: 24px;
        }

        /* Minimized header state (toggled by the minimize button) */
        #top-nav.minimized {
            transform: translateY(-6px);
            padding-top: 0.25rem !important;
            padding-bottom: 0.25rem !important;
            backdrop-filter: blur(20px);
            width: 92%;
            top: 20px;
        }
        #top-nav.minimized .font-headline {
            font-size: 0.9rem;
        }
        #top-nav.minimized nav {
            opacity: 0.95;
        }

        @media (prefers-reduced-motion: reduce) {
            .grid-perspective, .crystal-float, .crystal-rotate, .crystal-glow, .animate-slide-up, .marquee-content, .tether-line, .breathing-text, .entrance-grid, .entrance-orb, .entrance-scanline, .reveal-card {
                animation: none !important;
                transform: none !important;
                opacity: 1 !important;
            }
            #custom-cursor, #cursor-glow { display: none !important; }
            body { cursor: auto !important; }
        }

        @keyframes floatPlanet {
            0% { transform: translateY(0px); }
            50% { transform: translateY(-18px); }
            100% { transform: translateY(0px); }
        }

        /* Goals page specific styles */
        .glass {
            background: linear-gradient(145deg, rgba(30, 41, 59, 0.3) 0%, rgba(11, 17, 32, 0.4) 100%);
            backdrop-filter: blur(24px);
            -webkit-backdrop-filter: blur(24px);
            border: 1px solid rgba(255, 255, 255, 0.05);
        }
        .progress {
            height: 4px;
            background: rgba(255,255,255,0.1);
            border-radius: 2px;
            overflow: hidden;
        }
        .progress > div {
            height: 100%;
            background: linear-gradient(90deg, #5DA9FF, #7DD3FC);
            border-radius: 2px;
            box-shadow: 0 0 10px rgba(93, 169, 255, 0.5);
        }
        .text-gradient {
            background: linear-gradient(135deg, #5DA9FF, #7DD3FC);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }
        .timeline-line {
            position: absolute;
            left: 50%;
            top: 0;
            bottom: 0;
            width: 1px;
            background: linear-gradient(to bottom, transparent, rgba(93, 169, 255, 0.3), transparent);
        }
        .timeline-dot {
            position: absolute;
            left: 50%;
            transform: translateX(-50%);
            width: 40px;
            height: 40px;
            background: rgba(11, 17, 32, 0.8);
            border: 1px solid rgba(93, 169, 255, 0.3);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 18px;
            z-index: 1;
        }
        .card-hover {
            transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
        }
        .card-hover:hover {
            transform: translateY(-4px);
            box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4), 0 0 20px rgba(93, 169, 255, 0.08);
            border-color: rgba(93, 169, 255, 0.2);
        }
        .blue-glow {
            box-shadow: 0 0 80px rgba(93, 169, 255, 0.08);
        }

        @media (max-width: 768px) {
            /* Hide the custom cursor elements on small / touch devices */
            #custom-cursor, #cursor-glow {
                display: none !important;
            }

            body {
                cursor: auto !important;
            }
        }

        /* Ask-AI page: responsive fixes to avoid overflow and ensure header remains visible */
        @media (max-width: 1024px) {
            #orb-trigger {
                right: -60px !important;
                top: 8% !important;
                width: 320px !important;
            }
        }

        @media (max-width: 768px) {
            /* Shrink decorative orb so it doesn't push viewport or cause horizontal overflow */
            #orb-trigger {
                right: -20px !important;
                top: 6% !important;
                width: 220px !important;
            }

            /* Allow main container to use most of the viewport on small screens */
            .max-w-4xl {
                max-width: 92% !important;
                padding-left: 1rem !important;
                padding-right: 1rem !important;
            }

            .glass-card {
                padding: 1rem !important;
            }

            /* Make chat area adapt to viewport height so header stays visible */
            .chat-container {
                height: calc(100vh - 220px) !important;
            }

            /* Ensure header and mobile menu stay on top */
            header#top-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 70; }
            #mobile-menu { z-index: 80; }
        }

        /* General chat container sizing for larger screens */
        .chat-container {
            max-height: calc(100vh - 260px);
            overflow-y: auto;
        }

        /* Prevent the chat container children from causing the parent to grow */
        .chat-container > * {
            flex-shrink: 0;
        }

        /* For ask-ai page: remove internal scroll and allow the chat box to grow */
        .ask-ai-page .chat-container {
            max-height: none !important;
            overflow-y: visible !important;
            height: auto !important;
        }

        .ask-ai-page .glass-card {
            overflow: visible !important;
        }

        /* Typing cursor for AI replies */
        .typing-cursor {
            display: inline-block;
            width: 10px;
            height: 1em;
            vertical-align: text-bottom;
            margin-left: 4px;
            background-color: rgba(93,169,255,0.85);
            animation: typing-blink 1s steps(2, start) infinite;
        }
        @keyframes typing-blink {
            0% { opacity: 1; }
            50% { opacity: 0; }
            100% { opacity: 1; }
        }
