<!DOCTYPE html>
<html lang="en-GB">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
    <meta name="description" content="Startup School TV - Premium online education platform for entrepreneurs. Learn from successful founders, access AI-powered mentorship, and join a thriving startup community. 500+ hours of expert-led courses.">
    <meta name="keywords" content="startup education, entrepreneurship courses, online learning, business education, startup mentorship, AI mentorship, founder training, business courses, startup school, entrepreneur education">
    <meta name="author" content="Startup School TV">
    <meta property="og:title" content="Startup School TV - Learn to Build Successful Startups">
    <meta property="og:description" content="Access 500+ hours of premium startup education, AI-powered mentorship, and a global community of founders. Start your entrepreneurial journey today.">
    <meta property="og:type" content="website">
    <meta property="og:url" content="https://startupschool.tv">
    <meta property="og:image" content="https://startupschool.tv/images/og-image.jpg">
    <meta property="og:image:width" content="1200">
    <meta property="og:image:height" content="630">
    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:title" content="Startup School TV - Master Entrepreneurship">
    <meta name="twitter:description" content="Premium startup education with AI mentorship and expert-led courses.">
    <meta name="twitter:image" content="https://startupschool.tv/images/twitter-card.jpg">
    <meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
    <link rel="canonical" href="https://startupschool.tv">
    <link rel="apple-touch-icon" sizes="180x180" href="https://startupschool.tv/apple-touch-icon.png">
    <link rel="icon" type="image/png" sizes="32x32" href="https://startupschool.tv/favicon-32x32.png">
    <link rel="icon" type="image/png" sizes="16x16" href="https://startupschool.tv/favicon-16x16.png">
    <link rel="icon" type="image/svg+xml" href="https://startupschool.tv/favicon.svg">
    <link rel="icon" type="image/svg+xml" href="https://startupschool.tv/favicon.svg">
    <link rel="manifest" href="https://startupschool.tv/site.webmanifest">
    <meta name="theme-color" content="#0f172a">
    <meta property="og:site_name" content="Startup School TV">
    <meta property="og:locale" content="en_GB">
    <link rel="alternate" hreflang="en-GB" href="https://startupschool.tv/">
    <link rel="preload" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Space+Grotesk:wght@500;600;700&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'">
    <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Space+Grotesk:wght@500;600;700&display=swap"></noscript>
    
    <title>Startup School TV - Master Entrepreneurship with Expert-Led Courses | Online Startup Education</title>

        <script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "name": "Startup School TV",
            "url": "https://startupschool.tv",
            "logo": "https://startupschool.tv/favicon.svg",
            "sameAs": [
                "https://www.facebook.com/StartupSchool",
                "https://www.twitter.com/StartupSchool",
                "https://www.linkedin.com/company/startup-school"
            ]
        }
        </script>
    
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        :root {
            --primary-color: #6366f1;
            --primary-dark: #4f46e5;
            --primary-light: #818cf8;
            --secondary-color: #ec4899;
            --accent-color: #14b8a6;
            --accent-yellow: #fbbf24;
            --text-primary: #f8fafc;
            --text-secondary: #cbd5e1;
            --text-light: #94a3b8;
            --bg-primary: rgba(15, 23, 42, 0.85);
            --bg-secondary: rgba(30, 41, 59, 0.85);
            --bg-tertiary: #334155;
            --border-color: rgba(71, 85, 105, 0.7);
            --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
            --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);
            --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);
            --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1);
            --text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
            --text-shadow-heavy: 0 2px 4px rgba(0, 0, 0, 0.3);
        }

        body {
            font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
            color: var(--text-primary);
            line-height: 1.6;
            overflow-x: hidden;
            background: #0f172a;
            transition: background-color 0.3s ease, color 0.3s ease;
        }

        /* Performance optimizations */
        .hero, .product-card, .pricing-card {
            will-change: transform;
        }

        /* Loading animation */
        .loading-screen {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: #0f172a;
            display: flex;
            justify-content: center;
            align-items: center;
            z-index: 9999;
            transition: opacity 0.5s ease, visibility 0.5s ease;
        }

        .loading-screen.hidden {
            opacity: 0;
            visibility: hidden;
        }

        .loader {
            width: 50px;
            height: 50px;
            border: 3px solid rgba(99, 102, 241, 0.3);
            border-radius: 50%;
            border-top-color: var(--primary-color);
            animation: spin 1s ease-in-out infinite;
        }

        @keyframes spin {
            to { transform: rotate(360deg); }
        }

        /* Cookie consent banner */
        .cookie-consent {
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            background: var(--bg-secondary);
            padding: 1.5rem;
            box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.1);
            z-index: 1000;
            transform: translateY(100%);
            transition: transform 0.3s ease;
        }

        .cookie-consent.show {
            transform: translateY(0);
        }

        .cookie-content {
            max-width: 1200px;
            margin: 0 auto;
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 1rem;
        }

        .cookie-text {
            flex: 1;
        }

        .cookie-buttons {
            display: flex;
            gap: 1rem;
        }

        /* Top Banner */
        .top-banner {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            background: linear-gradient(90deg, var(--primary-color), var(--secondary-color));
            color: white;
            padding: 8px 0;
            text-align: center;
            font-size: 14px;
            font-weight: 500;
            z-index: 101;
            transition: transform 0.3s ease;
            text-shadow: var(--text-shadow);
        }
        
        .top-banner.hidden {
            transform: translateY(-100%);
        }

        .top-banner a {
            color: white;
            text-decoration: none;
            font-weight: 600;
        }

        .top-banner a:hover {
            text-decoration: underline;
        }

        /* Three.js Canvas - Full screen background */
        #three-canvas {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: -1;
        }

        /* Scroll to Top Button */
        #scrollToTop {
            position: fixed;
            bottom: 30px;
            right: 30px;
            width: 50px;
            height: 50px;
            background: var(--primary-color);
            color: white;
            border: none;
            border-radius: 50%;
            cursor: pointer;
            display: none;
            align-items: center;
            justify-content: center;
            font-size: 20px;
            box-shadow: var(--shadow-lg);
            transition: all 0.3s ease;
            z-index: 999;
        }

        #scrollToTop:hover {
            background: var(--primary-dark);
            transform: translateY(-3px);
            box-shadow: var(--shadow-xl);
        }

        /* Scroll ring inside the button */
        .scroll-ring-svg { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 48px; height: 48px; pointer-events: none; }
        #scrollToTop { position: fixed; overflow: visible; }
        .progress-ring-circle { stroke: white; stroke-opacity: 0.95; transition: stroke-dashoffset 0.12s linear; }
        .scroll-to-top-icon { position: relative; z-index: 2; display: inline-block; line-height: 1; font-size: 18px; }

        /* Navigation */
        nav {
            position: fixed;
            top: 36px; /* Height of top banner */
            left: 0;
            right: 0;
            z-index: 1000;
            background: rgba(12, 16, 30, 0.64);
            backdrop-filter: blur(6px) saturate(120%);
            -webkit-backdrop-filter: blur(6px) saturate(120%);
            border-bottom: 1px solid rgba(255,255,255,0.03);
            box-shadow: 0 6px 18px rgba(2,6,23,0.45);
            transition: all 0.3s ease;
        }

        /* When the top banner is hidden, lift the nav to the top to close the gap */
        .top-banner.hidden + nav {
            top: 0;
        }

        nav.scrolled {
            box-shadow: var(--shadow-md);
            background: rgba(15, 23, 42, 0.95);
            transform: translateY(0);
        }

        nav.hidden {
            transform: translateY(-100%);
        }

        .nav-container {
            max-width: 1400px;
            margin: 0 auto;
            /* further reduced vertical padding to tighten nav while keeping logo visible */
            padding: 0.12rem 2rem;
            display: flex;
            justify-content: space-between;
            align-items: center;
            min-height: 44px;
            overflow: visible; /* allow larger logo to overflow without clipping */
        }

        .logo {
            display: flex;
            align-items: center;
            gap: 0.75rem;
            text-decoration: none;
            color: var(--text-primary);
            font-weight: 800;
            font-size: 1.5rem;
            font-family: 'Space Grotesk', sans-serif;
            text-shadow: var(--text-shadow);
            transform: translateY(12px); /* nudge logo down slightly more */
            transition: transform 180ms ease;
        }

        /* Logo text styling: single-line, bold, impressive with animated gradient and glow */
        .logo-text {
            display: inline-block;
            white-space: nowrap; /* keep single-line */
            font-weight: 800;
            font-size: 1.35rem; /* increased for stronger presence */
            letter-spacing: 0.6px;
            line-height: 1;
            background: linear-gradient(90deg, #a78bfa 0%, #7c83ff 35%, #34d399 65%, #f472b6 100%);
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent; /* gradient text fallback uses background-clip */
            text-shadow: 0 2px 10px rgba(79,70,229,0.16), 0 1px 0 rgba(0,0,0,0.28);
            padding-left: 2px;
            transform-origin: left center;
            transition: transform 0.18s ease, filter 0.18s ease;
        }

        /* sizing for the SVG-based logotype (render at 90px) */
        /* higher-specificity override so nav's generic .logo svg sizing doesn't prevent enlargement */
        .logo .logo-svg { height: 90px; width: auto; display: inline-block; vertical-align: middle; }
        /* make the rocket icon a bit smaller than the text so both feel balanced and vertically centered */
        .logo .rocket-icon { height: 56px; width: auto; display: inline-block; vertical-align: middle; }
        .logo-svg text { font-family: 'Space Grotesk', Inter, sans-serif; }

        /* animate gradient on the SVG face by shifting gradient's x via CSS animation (applies to element with gradient fill) */
        .logo-svg .animate-face { animation: logoGradientShift 6s linear infinite; }

        /* Hide extrude/back layers and subtle highlights to remove dark shadowed text */
        .logo-svg .extrude { display: none !important; }
        .logo-svg .front-stroke, .logo-svg .front-highlight { display: none !important; }
        .logo-svg .front-face { opacity: 1; transform: none; }

        @keyframes extrudeIn {
            from { opacity: 0; transform: translate(-20px,28px) skewX(-8deg); }
            to { opacity: 1; transform: translate(0,0) skewX(0deg); }
        }

        @keyframes frontAppear {
            from { opacity: 0; transform: translateY(-14px) scale(0.98); }
            to { opacity: 1; transform: translateY(0) scale(1); }
        }

        /* Staggered timings for a drawn-in extrude */
        .logo-svg .e1 { animation: extrudeIn 420ms cubic-bezier(.2,.9,.2,1) 0.05s forwards; }
        .logo-svg .e2 { animation: extrudeIn 420ms cubic-bezier(.2,.9,.2,1) 0.14s forwards; }
        .logo-svg .e3 { animation: extrudeIn 420ms cubic-bezier(.2,.9,.2,1) 0.23s forwards; }
        .logo-svg .e4 { animation: extrudeIn 420ms cubic-bezier(.2,.9,.2,1) 0.32s forwards; }

        /* Front face appears after extrude layers */
        .logo-svg .front-face { animation: frontAppear 520ms cubic-bezier(.2,.9,.2,1) 0.46s forwards; }
        .logo-svg .front-stroke { animation: frontAppear 520ms cubic-bezier(.2,.9,.2,1) 0.5s forwards; }
        .logo-svg .front-highlight { animation: frontAppear 520ms cubic-bezier(.2,.9,.2,1) 0.52s forwards; }

        /* Respect prefers-reduced-motion */
        @media (prefers-reduced-motion: reduce) {
            .logo-svg .extrude, .logo-svg .front-face, .logo-svg .front-stroke, .logo-svg .front-highlight { animation: none; opacity: 1; transform: none; }
        }

        /* Animated gradient shift for a subtle living logo */
        .logo-text.animate {
            background-size: 200% 100%;
            animation: logoGradientShift 6s linear infinite;
            -webkit-background-clip: text;
            background-clip: text;
        }

        @keyframes logoGradientShift {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }

        /* focus/hover emphasis (keeps single-line) */
        .logo:hover .logo-text, .logo:focus .logo-text {
            transform: translateY(-1px) scale(1.02);
            filter: drop-shadow(0 8px 18px rgba(99,102,241,0.12));
        }

        @media (max-width: 900px) {
            .logo-text { font-size: 1.05rem; }
        }


        .logo svg {
            width: 50px;
            height: 50px;
            filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
        }

        /* Rocket Launch Logo Animations */
        @keyframes rocketLaunch {
            0% {
                transform: translateY(0) scale(1);
            }
            10% {
                transform: translateY(-5px) scale(1.05);
            }
            20% {
                transform: translateY(-10px) scale(1.1);
            }
            30% {
                transform: translateY(-15px) scale(1.15);
            }
            40% {
                transform: translateY(-20px) scale(1.2);
            }
            50% {
                transform: translateY(-25px) scale(1.25);
            }
            60% {
                transform: translateY(-30px) scale(1.3);
            }
            70% {
                transform: translateY(-35px) scale(1.35);
            }
            80% {
                transform: translateY(-40px) scale(1.4);
            }
            90% {
                transform: translateY(-45px) scale(1.45);
            }
            100% {
                transform: translateY(-50px) scale(1.5);
            }
        }

        @keyframes flameFlicker {
            0%, 100% { 
                opacity: 1;
                transform: scaleY(1);
            }
            25% { 
                opacity: 0.8;
                transform: scaleY(0.9);
            }
            50% { 
                opacity: 0.9;
                transform: scaleY(1.1);
            }
            75% { 
                opacity: 0.7;
                transform: scaleY(0.95);
            }
        }

        @keyframes smokePuff {
            0% {
                opacity: 0;
                transform: translateY(0) scale(0.5);
            }
            20% {
                opacity: 0.8;
                transform: translateY(-5px) scale(0.8);
            }
            40% {
                opacity: 0.6;
                transform: translateY(-10px) scale(1);
            }
            60% {
                opacity: 0.4;
                transform: translateY(-15px) scale(1.2);
            }
            80% {
                opacity: 0.2;
                transform: translateY(-20px) scale(1.4);
            }
            100% {
                opacity: 0;
                transform: translateY(-25px) scale(1.6);
            }
        }

        @keyframes starTwinkle {
            0%, 100% { opacity: 0.3; }
            50% { opacity: 1; }
        }

        .rocket-launch {
            animation: rocketLaunch 4s ease-in-out infinite;
            transform-origin: center;
        }

        /* Camera shake applied to the rocket container (keeps rocketLaunch intact) */
        .rocket-container {
            transform-origin: 60px 52px; /* center of rocket in SVG coordinates mapped to px */
            animation: cameraShake 4s ease-in-out infinite;
        }

        @keyframes cameraShake {
            0% { transform: translate(0,0) rotate(0deg); }
            10% { transform: translate(-0.6px,0.4px) rotate(-0.25deg); }
            30% { transform: translate(0.4px,-0.6px) rotate(0.18deg); }
            50% { transform: translate(-0.3px,0.3px) rotate(-0.12deg); }
            70% { transform: translate(0.35px,-0.25px) rotate(0.08deg); }
            90% { transform: translate(-0.15px,0.2px) rotate(-0.04deg); }
            100% { transform: translate(0,0) rotate(0deg); }
        }

        /* Motion blur animation (subtle) applied to speed lines & flames */
        @keyframes motionBlur {
            0% { filter: blur(0px); }
            50% { filter: blur(2px); }
            100% { filter: blur(0px); }
        }

        .flame {
            animation: flameFlicker 0.3s ease-in-out infinite;
            transform-origin: bottom center;
        }

        .smoke {
            animation: smokePuff 2s ease-out infinite;
        }

        .smoke:nth-child(2) {
            animation-delay: 0.5s;
        }

        .smoke:nth-child(3) {
            animation-delay: 1s;
        }

        .star {
            animation: starTwinkle 3s ease-in-out infinite;
        }

        .star:nth-child(2) { animation-delay: 0.5s; }
        .star:nth-child(3) { animation-delay: 1s; }
        .star:nth-child(4) { animation-delay: 1.5s; }
        .star:nth-child(5) { animation-delay: 2s; }
        .star:nth-child(6) { animation-delay: 2.5s; }

        /* Extra rocket polish */
        .window-shine { transform-origin: center; animation: windowShimmer 2.2s linear infinite; opacity: 0.0; }

        @keyframes windowShimmer {
            0% { transform: translate(-6px,-6px) scale(0.9); opacity: 0; }
            20% { opacity: 0.6; }
            50% { transform: translate(6px,6px) scale(1.05); opacity: 0.2; }
            100% { transform: translate(-6px,-6px) scale(0.9); opacity: 0; }
        }

        .spark { animation: sparkFlicker 0.9s linear infinite; transform-origin: center; }
        @keyframes sparkFlicker { 0% { opacity: 0.9; transform: translateY(0) scale(1); } 50% { opacity: 0.3; transform: translateY(3px) scale(0.9); } 100% { opacity: 0.9; transform: translateY(0) scale(1); } }

        /* Subtle glow for layered flames */
        .flame.glow { filter: drop-shadow(0 6px 8px rgba(255,100,50,0.22)); }

        /* Space travel surroundings */
        .space-layer { will-change: transform, opacity; }

        /* Nebula drift */
        .nebula { opacity: 0.16; transform-origin: center; filter: blur(10px); animation: nebulaDrift 18s linear infinite; }
        @keyframes nebulaDrift { 0% { transform: translateX(-6px) translateY(0) scale(1); } 50% { transform: translateX(6px) translateY(-4px) scale(1.02); } 100% { transform: translateX(-6px) translateY(0) scale(1); } }

        /* Starfield parallax layers */
        .starfield { opacity: 0.85; }
        .starfield .star { fill: #ffffff; opacity: 0.9; filter: drop-shadow(0 0 1px rgba(255,255,255,0.6)); }
        .starfield.layer-back { transform: translateZ(0); animation: starsSlow 30s linear infinite; }
        .starfield.layer-mid { animation: starsMedium 18s linear infinite; }
        .starfield.layer-front { animation: starsFast 10s linear infinite; }
        @keyframes starsSlow { from { transform: translateY(0); } to { transform: translateY(-40px); } }
        @keyframes starsMedium { from { transform: translateY(0); } to { transform: translateY(-70px); } }
        @keyframes starsFast { from { transform: translateY(0); } to { transform: translateY(-110px); } }

        /* Speed streaks that slide past the rocket */
        .speed-line { stroke: rgba(255,255,255,0.08); stroke-width: 0.8; stroke-linecap: round; opacity: 0.9; }
        .speed-lines .speed-line { animation: streakMove 0.6s linear infinite, motionBlur 0.6s ease-in-out infinite; }
        .speed-lines .speed-line:nth-child(2) { animation-delay: 0.08s; }
        .speed-lines .speed-line:nth-child(3) { animation-delay: 0.16s; }
        .speed-lines .speed-line:nth-child(4) { animation-delay: 0.24s; }
        @keyframes streakMove { 0% { transform: translateY(120%); opacity: 0; } 10% { opacity: 0.7; } 100% { transform: translateY(-120%); opacity: 0; } }

        /* Comets trail */
        .comet { animation: cometTravel 4s linear infinite; opacity: 0.0; }
        @keyframes cometTravel { 0% { transform: translate(-30px,40px) scale(0.8); opacity: 0; } 20% { opacity: 0.95; } 80% { opacity: 0.6; } 100% { transform: translate(140px,-120px) scale(1.05); opacity: 0; } }

        /* animate subtle blur on flame group for motion feel */
        .flame-group { animation: motionBlur 0.45s ease-in-out infinite; }

        .nav-links {
            display: flex;
            gap: 1.4rem;
            list-style: none;
            /* move nav items slightly upward relative to the logo */
            align-items: flex-start;
            height: 100%;
            transform: translateY(-4px); /* tuned for the tighter nav height */
        }
        .nav-links li { display: flex; align-items: center; height: 100%; }
        /* modernized nav link style: icon + label, hover motion, subtle background */
        .nav-links a, .nav-links a:visited { display: inline-flex; align-items: center; gap: 0.6rem; height: 36px; padding: 4px 10px; border-radius: 10px; color: var(--text-secondary); text-decoration: none; }
        .nav-links a .nav-icon { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; }
        .nav-links a .nav-icon svg { width: 18px; height: 18px; display: block; fill: currentColor; opacity: 0.95; transition: transform 220ms cubic-bezier(.2,.9,.2,1), opacity 180ms; }
        .nav-links a .nav-label { display: inline-block; line-height: 1; font-weight: 700; color: inherit; }
        .nav-links a:hover, .nav-links a:focus { color: var(--text-primary); transform: translateY(-4px); background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); box-shadow: 0 8px 20px rgba(2,6,23,0.45); }
        .nav-links a:hover .nav-icon svg, .nav-links a:focus .nav-icon svg { transform: translateY(-3px) scale(1.02); opacity: 1; }
        .nav-links a:active { transform: translateY(-2px) scale(0.995); }
        .nav-links a:focus { outline: 3px solid rgba(99,102,241,0.12); outline-offset: 4px; }
        /* small animated underline retained but shifted for new padding */
        .nav-links a::after { content: ''; position: absolute; left: 0; right: 0; bottom: -8px; height: 3px; background: linear-gradient(90deg, var(--primary-color), var(--secondary-color)); transform: scaleX(0); transform-origin: left center; transition: transform 0.22s cubic-bezier(.2,.9,.2,1), opacity 0.18s ease; opacity: 0; border-radius: 3px; }
        /* keep CTA visually consistent with other nav items */
        .cta-button { height: 36px; }
        /* Slightly emphasize the CTA with an icon and entrance micro-animation */
        .cta-button { position: relative; overflow: visible; }
        .cta-button .cta-pill-icon { transition: transform 220ms ease, background 180ms ease; }
        .cta-button:hover .cta-pill-icon { transform: translateX(6px) scale(1.02); }

        /* make sure logo remains visually fixed and doesn't get pushed */
        .logo { flex: 0 0 auto; }
        .nav-links a {
            position: relative;
            text-decoration: none;
            color: var(--text-secondary);
            font-weight: 600;
            transition: color 0.18s ease, transform 0.18s ease;
            font-size: 0.95rem;
            text-shadow: var(--text-shadow);
            padding: 6px 4px;
            border-radius: 6px;
        }

        .nav-links a::after {
            content: '';
            position: absolute;
            left: 0;
            right: 0;
            bottom: -6px;
            height: 3px;
            background: linear-gradient(90deg, var(--primary-color), var(--secondary-color));
            transform: scaleX(0);
            transform-origin: left center;
            transition: transform 0.22s cubic-bezier(.2,.9,.2,1), opacity 0.18s ease;
            opacity: 0;
            border-radius: 3px;
        }

        .nav-links a:hover {
            color: var(--text-primary);
            transform: translateY(-2px);
        }

        .nav-links a:focus {
            outline: 3px solid rgba(99,102,241,0.18);
            outline-offset: 4px;
        }

        .nav-links a.active {
            color: var(--text-primary);
        }

        .nav-links a.active::after {
            transform: scaleX(1);
            opacity: 1;
        }

        .cta-button {
            display: inline-flex;
            align-items: center;
            gap: 0.6rem;
            padding: 0.6rem 1.25rem;
            background: linear-gradient(90deg, #7c3aed 0%, #ec4899 50%, #f97316 100%);
            background-size: 200% 100%;
            color: #fff;
            font-weight: 700;
            border-radius: 999px;
            text-decoration: none;
            border: none;
            box-shadow: 0 6px 18px rgba(124,58,237,0.18), 0 2px 6px rgba(0,0,0,0.12);
            transition: transform 0.18s ease, box-shadow 0.18s ease, background-position 0.45s ease, filter 0.18s ease;
            -webkit-font-smoothing:antialiased;
        }

        .cta-button:hover {
            transform: translateY(-3px) scale(1.02);
            background-position: 100% 50%;
            box-shadow: 0 12px 28px rgba(124,58,237,0.22), 0 6px 12px rgba(0,0,0,0.12);
        }

        .cta-button:active {
            transform: translateY(-1px) scale(0.995);
        }

        .cta-button:focus-visible {
            outline: 3px solid rgba(124,58,237,0.18);
            outline-offset: 4px;
        }

        .cta-button .cta-pill-icon {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 20px;
            height: 20px;
            background: rgba(255,255,255,0.12);
            border-radius: 6px;
            font-size: 0.85rem;
            transition: transform 0.18s ease, background 0.18s ease;
        }

        .cta-button:hover .cta-pill-icon {
            transform: translateX(4px);
            background: rgba(255,255,255,0.18);
        }

        .product-card .learn-more {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            padding: 0.75rem 1.1rem;
            background: linear-gradient(90deg, rgba(99,102,241,1), rgba(236,72,153,1));
            background-size: 200% 100%;
            background-position: 0% 50%;
            color: white;
            font-weight: 700;
            border-radius: 999px;
            text-decoration: none;
            box-shadow: 0 8px 24px rgba(99,102,241,0.14), 0 2px 6px rgba(0,0,0,0.35);
            transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease, background-position 0.45s ease;
            position: relative;
            overflow: hidden;
        }

        .product-card .learn-more::after {
            content: '→';
            display: inline-block;
            transform: translateX(6px);
            transition: transform 0.18s ease;
            font-weight: 800;
        }

        .product-card .learn-more:hover {
            transform: translateY(-4px) scale(1.02);
            box-shadow: 0 14px 40px rgba(99,102,241,0.18), 0 6px 18px rgba(0,0,0,0.45);
            filter: saturate(1.05);
            background-position: 100% 50%;
        }

        .product-card .learn-more:hover::after { transform: translateX(10px); }

        .product-card .learn-more:focus { outline: 3px solid rgba(99,102,241,0.18); outline-offset: 4px; }

        /* Optional subtle gradient movement */
        .product-card .learn-more::before {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(120deg, rgba(255,255,255,0.05), rgba(255,255,255,0.02));
            mix-blend-mode: overlay;
            opacity: 0.6;
            pointer-events: none;
            transition: opacity 0.3s ease, transform 0.6s ease;
        }

        .product-card .learn-more:hover::before { transform: translateX(6px); opacity: 0.9; }
        .product-card .learn-more { z-index: 3; }
        .product-card:hover .learn-more { transform: translateY(-6px) scale(1.04); }
        .mobile-menu-btn {
            display: none;
            background: none;
            border: none;
            cursor: pointer;
            padding: 0.5rem;
        }

        .mobile-menu-btn span {
            display: block;
            width: 25px;
            height: 3px;
            background: var(--text-primary);
            margin: 5px 0;
            transition: all 0.3s ease;
        }

        /* Hero Section */
        .hero {
            min-height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 8rem 2rem 4rem;
            position: relative;
            background: transparent;
        }

        .hero-content {
            max-width: 1200px;
            text-align: center;
            position: relative;
            z-index: 10;
        }

        .hero h1 {
            font-size: 4rem;
            font-weight: 800;
            line-height: 1.1;
            margin-bottom: 1.5rem;
            color: white;
            font-family: 'Space Grotesk', sans-serif;
            text-shadow: var(--text-shadow-heavy);
        }

        .hero h1 .highlight {
            background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            text-shadow: none;
        }

        .hero p {
            font-size: 1.5rem;
            margin-bottom: 2.5rem;
            color: rgba(255, 255, 255, 0.95);
            max-width: 800px;
            margin-left: auto;
            margin-right: auto;
            line-height: 1.7;
            text-shadow: var(--text-shadow-heavy);
        }

        .hero-buttons {
            display: flex;
            gap: 1.5rem;
            justify-content: center;
            flex-wrap: wrap;
        }

        .btn-primary {
            background: white;
            color: #000000;
            padding: 1rem 2.5rem;
            border-radius: 12px;
            text-decoration: none;
            font-weight: 700;
            font-size: 1.1rem;
            transition: all 0.3s ease;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
            border: none;
            cursor: pointer;
            text-shadow: var(--text-shadow);
        }

        .btn-primary:hover {
            transform: translateY(-3px);
            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3);
        }

        .btn-secondary {
            background: rgba(255, 255, 255, 0.1);
            color: white;
            padding: 1rem 2.5rem;
            border-radius: 12px;
            text-decoration: none;
            font-weight: 700;
            font-size: 1.1rem;
            transition: all 0.3s ease;
            border: 2px solid rgba(255, 255, 255, 0.3);
            text-shadow: var(--text-shadow);
        }

        .btn-secondary:hover {
            background: rgba(255, 255, 255, 0.2);
            transform: translateY(-3px);
        }

        .btn-gpt {
            background: linear-gradient(135deg, #6366f1 0%, #ec4899 100%);
            color: white;
            padding: 1rem 2.5rem;
            border-radius: 12px;
            text-decoration: none;
            font-weight: 700;
            font-size: 1.1rem;
            transition: all 0.3s ease;
            box-shadow: 0 10px 30px rgba(99, 102, 241, 0.3);
            border: none;
            cursor: pointer;
            text-shadow: var(--text-shadow);
            animation: pulse-gpt 2s infinite;
        }

        @keyframes pulse-gpt {
            0% {
                box-shadow: 0 10px 30px rgba(99, 102, 241, 0.3);
            }
            50% {
                box-shadow: 0 10px 40px rgba(99, 102, 241, 0.6);
            }
            100% {
                box-shadow: 0 10px 30px rgba(99, 102, 241, 0.3);
            }
        }

        .btn-gpt:hover {
            transform: translateY(-3px);
            box-shadow: 0 15px 40px rgba(99, 102, 241, 0.5);
            animation: none;
        }

        /* Sections */
        section {
            padding: 6rem 2rem;
            position: relative;
            background: var(--bg-primary);
            z-index: 1;
        }

        section:nth-child(even) {
            background: var(--bg-secondary);
        }

        .container {
            max-width: 1400px;
            margin: 0 auto;
        }

        /* Make About section full width while keeping other containers centered */
        #about .container {
            max-width: none;
            width: 100%;
            margin: 0;
            padding-left: 2rem;
            padding-right: 2rem;
            box-sizing: border-box;
            background: transparent;
        }

        .section-header {
            text-align: center;
            margin-bottom: 4rem;
        }

        .section-tag {
            color: var(--primary-color);
            font-weight: 700;
            font-size: 0.95rem;
            text-transform: uppercase;
            letter-spacing: 1.5px;
            margin-bottom: 1rem;
            display: block;
            text-shadow: var(--text-shadow-heavy);
        }

        .section-title {
            font-size: 3rem;
            font-weight: 800;
            margin-bottom: 1.5rem;
            font-family: 'Space Grotesk', sans-serif;
            color: white;
            text-shadow: var(--text-shadow-heavy);
        }

        .section-description {
            font-size: 1.25rem;
            color: white;
            max-width: 800px;
            margin: 0 auto;
            line-height: 1.8;
            text-shadow: var(--text-shadow-heavy);
        }

        /* Products Grid */
        .products-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
            gap: 2.5rem;
            margin-top: 3rem;
        }

        .product-card {
            background: rgba(15, 23, 42, 0.9);
            border-radius: 20px;
            padding: 2.5rem;
            box-shadow: var(--shadow-lg);
            transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
            border: 1px solid var(--border-color);
            position: relative;
            overflow: hidden;
            transform-style: preserve-3d;
            perspective: 1000px;
        }

        .product-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
            transition: left 0.7s;
            z-index: 1;
        }

        .product-card:hover::before {
            left: 100%;
        }

        .product-card:hover {
            transform: translateY(-15px) scale(1.03) rotateY(5deg);
            box-shadow: 0 25px 50px rgba(0, 0, 0, 0.2);
        }

        .product-icon {
            width: 70px;
            height: 70px;
            background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%);
            border-radius: 16px;
            display: flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 1.5rem;
            box-shadow: var(--shadow-md);
            transition: all 0.5s ease;
        }

        .product-card:hover .product-icon {
            transform: scale(1.1) rotate(10deg);
            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
        }

        .product-icon svg {
            width: 36px;
            height: 36px;
            stroke: white;
            transition: all 0.5s ease;
        }

        .product-card:hover .product-icon svg {
            transform: scale(1.1);
        }

        .product-card h3 {
            font-size: 1.75rem;
            font-weight: 700;
            margin-bottom: 1rem;
            color: var(--text-primary);
            font-family: 'Space Grotesk', sans-serif;
            text-shadow: var(--text-shadow-heavy);
            transition: all 0.3s ease;
        }

        .product-card:hover h3 {
            color: var(--primary-color);
        }

        .product-card p {
            color: var(--text-secondary);
            font-size: 1.05rem;
            line-height: 1.7;
            margin-bottom: 1.5rem;
            text-shadow: var(--text-shadow);
        }

        .product-features {
            list-style: none;
            margin-bottom: 2rem;
        }

        .product-features li {
            padding: 0.5rem 0;
            color: var(--text-secondary);
            display: flex;
            align-items: center;
            gap: 0.75rem;
            text-shadow: var(--text-shadow);
            transition: all 0.3s ease;
        }

        .product-card:hover .product-features li {
            transform: translateX(5px);
        }

        .product-features li::before {
            content: "✓";
            color: var(--accent-color);
            font-weight: 700;
            font-size: 1.2rem;
        }

        .learn-more {
            color: var(--primary-color);
            font-weight: 600;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            transition: all 0.3s ease;
            text-shadow: var(--text-shadow);
        }

        .learn-more:hover {
            gap: 0.75rem;
            transform: translateX(5px);
        }

        /* Pricing */
        .pricing-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
            gap: 2.5rem;
            margin-top: 3rem;
        }

        .pricing-card {
            background: rgba(15, 23, 42, 0.9);
            border-radius: 20px;
            padding: 2.5rem;
            box-shadow: var(--shadow-lg);
            border: 2px solid var(--border-color);
            transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
            position: relative;
            overflow: hidden;
            transform-style: preserve-3d;
            perspective: 1000px;
        }

        .pricing-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
            transition: left 0.7s;
            z-index: 1;
        }

        .pricing-card:hover::before {
            left: 100%;
        }

        .pricing-card.featured {
            border-color: var(--primary-color);
            transform: scale(1.05);
            box-shadow: 0 20px 40px rgba(99, 102, 241, 0.2);
        }

        .pricing-card:hover {
            transform: translateY(-10px) scale(1.02);
            box-shadow: 0 25px 50px rgba(0, 0, 0, 0.2);
        }

        .pricing-card.featured:hover {
            transform: translateY(-10px) scale(1.07);
        }

        .pricing-badge {
            position: absolute;
            top: -15px;
            left: 50%;
            transform: translateX(-50%);
            background: var(--primary-color);
            color: white;
            padding: 0.5rem 1.5rem;
            border-radius: 20px;
            font-weight: 700;
            font-size: 0.85rem;
            text-transform: uppercase;
            letter-spacing: 1px;
            text-shadow: var(--text-shadow);
            animation: pulse 2s infinite;
        }

        @keyframes pulse {
            0% {
                box-shadow: 0 0 0 0 rgba(99, 102, 241, 0.7);
            }
            70% {
                box-shadow: 0 0 0 10px rgba(99, 102, 241, 0);
            }
            100% {
                box-shadow: 0 0 0 0 rgba(99, 102, 241, 0);
            }
        }

        .pricing-card h3 {
            font-size: 1.75rem;
            font-weight: 700;
            margin-bottom: 0.5rem;
            font-family: 'Space Grotesk', sans-serif;
            text-shadow: var(--text-shadow-heavy);
            transition: all 0.3s ease;
        }

        .pricing-card:hover h3 {
            color: var(--primary-color);
        }

        .pricing-description {
            color: var(--text-secondary);
            margin-bottom: 1.5rem;
            text-shadow: var(--text-shadow);
        }

        .price {
            font-size: 3rem;
            font-weight: 800;
            color: var(--text-primary);
            font-family: 'Space Grotesk', sans-serif;
            text-shadow: var(--text-shadow-heavy);
            transition: all 0.3s ease;
        }

        .pricing-card:hover .price {
            color: var(--primary-color);
            transform: scale(1.05);
        }

        .price span {
            font-size: 1.25rem;
            color: var(--text-secondary);
            font-weight: 400;
        }

        .pricing-features {
            list-style: none;
            margin: 2rem 0;
        }

        .pricing-features li {
            padding: 0.75rem 0;
            color: var(--text-secondary);
            display: flex;
            align-items: flex-start;
            gap: 0.75rem;
            text-shadow: var(--text-shadow);
            transition: all 0.3s ease;
        }

        .pricing-card:hover .pricing-features li {
            transform: translateX(5px);
        }

        .pricing-features li::before {
            content: "✓";
            color: var(--accent-color);
            font-weight: 700;
            font-size: 1.2rem;
            flex-shrink: 0;
        }

        .pricing-cta {
            width: 100%;
            padding: 1rem;
            background: var(--primary-color);
            color: white;
            border: none;
            border-radius: 10px;
            font-weight: 700;
            font-size: 1.05rem;
            cursor: pointer;
            transition: all 0.3s ease;
            text-shadow: var(--text-shadow);
            position: relative;
            overflow: hidden;
        }

        .pricing-cta::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
            transition: left 0.5s;
        }

        .pricing-cta:hover::before {
            left: 100%;
        }

        .pricing-cta:hover {
            background: var(--primary-dark);
            transform: translateY(-2px);
            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
        }

        .pricing-cta.free {
            background: var(--bg-secondary);
            color: var(--primary-color);
            border: 2px solid var(--primary-color);
        }

        .pricing-cta.free:hover {
            background: var(--bg-tertiary);
        }

        /* Contact Section */
        .contact-section {
            background: linear-gradient(135deg, rgba(99, 102, 241, 0.9) 0%, rgba(79, 70, 229, 0.9) 100%);
            color: white;
        }

        .contact-section .section-title,
        .contact-section .section-description,
        .contact-section .section-tag {
            color: white;
        }

        .contact-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 3rem 4rem;
            align-items: start;
            margin-top: 3rem;
            max-width: 1400px;
            margin-left: auto;
            margin-right: auto;
            padding: 2rem;
        }

        .contact-info h3 {
            font-size: 1.75rem;
            margin-bottom: 1.5rem;
            font-family: 'Space Grotesk', sans-serif;
            text-shadow: var(--text-shadow-heavy);
        }

        .contact-info p {
            margin-bottom: 2rem;
            font-size: 1.1rem;
            opacity: 0.9;
            text-shadow: var(--text-shadow);
        }

        /* Accessibility helper */
        .sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

        .contact-form h3 { font-size: 1.5rem; margin-bottom: 1rem; font-family: 'Space Grotesk', sans-serif; color: white; }

        .contact-details {
            display: flex;
            flex-direction: column;
            gap: 1.5rem;
        }

        .contact-item {
            display: flex;
            align-items: center;
            gap: 1rem;
            transition: all 0.3s ease;
            background: rgba(255,255,255,0.03);
            padding: 0.9rem 1rem;
            border-radius: 10px;
            border: 1px solid rgba(255,255,255,0.04);
        }

        .contact-item:hover {
            transform: translateX(10px);
        }

        .contact-item svg {
            width: 24px;
            height: 24px;
            stroke: white;
            transition: all 0.3s ease;
        }

        /* Contact form */
        .contact-form {
            background: rgba(255,255,255,0.03);
            padding: 2rem;
            border-radius: 14px;
            border: 1px solid rgba(255,255,255,0.04);
            box-shadow: 0 8px 30px rgba(2,6,23,0.45);
        }

        .contact-form form {
            display: grid;
            gap: 1rem;
        }

        .contact-form input[type="text"],
        .contact-form input[type="email"],
        .contact-form textarea {
            width: 100%;
            padding: 0.9rem 1rem;
            border-radius: 8px;
            border: 1px solid rgba(255,255,255,0.06);
            background: rgba(0,0,0,0.12);
            color: white;
            resize: vertical;
            min-height: 44px;
            font-size: 0.95rem;
        }

        .contact-form textarea { min-height: 120px; padding-top: 0.9rem; }

        .contact-form button[type="submit"] {
            background: linear-gradient(90deg, var(--primary-color), var(--secondary-color));
            color: white;
            border: none;
            padding: 0.9rem 1.25rem;
            border-radius: 10px;
            cursor: pointer;
            font-weight: 700;
            box-shadow: var(--shadow-lg);
            transition: transform 0.15s ease, box-shadow 0.15s ease;
        }

        .contact-form button[type="submit"]:hover { transform: translateY(-3px); box-shadow: var(--shadow-xl); }

        .contact-item:hover svg {
            transform: scale(1.2);
        }

        /* Footer */
        footer {
            background: rgba(30, 41, 59, 0.9);
            color: white;
            padding: 2rem 2rem 1rem;
        }

        .footer-content {
            max-width: 1400px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: 480px 1fr 1fr 1fr;
            gap: 1.5rem;
            align-items: start;
            margin-bottom: 1.25rem;
        }

        .footer-brand h3 {
            font-size: 1.5rem;
            margin-bottom: 1rem;
            font-family: 'Space Grotesk', sans-serif;
            text-shadow: var(--text-shadow-heavy);
        }

        .footer-brand { display: flex; align-items: flex-start; gap: 1.25rem; }
        .footer-logo { width: 320px; height: auto; display: block; margin: 0; max-width: 100%; }
        .brand-meta { display: flex; flex-direction: column; justify-content: center; }
        .footer-brand h3 { margin: 0 0 0.5rem 0; }

        .footer-brand p {
            color: var(--text-light);
            margin-bottom: 1.5rem;
            text-shadow: var(--text-shadow);
        }

        .social-links {
            display: flex;
            gap: 1rem;
        }

        .social-links a {
            width: 40px;
            height: 40px;
            background: rgba(255, 255, 255, 0.1);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: all 0.3s ease;
        }

        .social-links a:hover {
            background: var(--primary-color);
            transform: translateY(-3px) scale(1.1);
        }

        .footer-links h4 {
            margin-bottom: 1rem;
            font-size: 1.1rem;
            text-shadow: var(--text-shadow);
        }

        .footer-links ul {
            list-style: none;
        }

        .footer-links li {
            margin-bottom: 0.75rem;
        }

        .footer-links a {
            color: var(--text-light);
            text-decoration: none;
            transition: color 0.3s ease;
            text-shadow: var(--text-shadow);
        }

        .footer-links a:hover {
            color: white;
            transform: translateX(5px);
            display: inline-block;
        }

        .footer-bottom {
            border-top: 1px solid rgba(255, 255, 255, 0.1);
            padding-top: 1rem;
            text-align: center;
            color: var(--text-light);
            text-shadow: var(--text-shadow);
        }

        /* Responsive footer adjustments */
        @media (max-width: 1100px) {
            .footer-content { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; }
            .footer-brand { grid-column: 1 / -1; }
        }

        @media (max-width: 800px) {
            .footer-content { grid-template-columns: 1fr; gap: 1rem; }
            .footer-brand { flex-direction: column; align-items: center; text-align: center; }
            .brand-meta { justify-content: center; align-items: center; }
            .footer-logo { width: 200px; height: auto; }
        }

        /* Enhanced Acquisition Notice in Footer */
        .acquisition-notice {
            background: linear-gradient(90deg, var(--primary-color), var(--secondary-color));
            color: white;
            padding: 1rem 1.5rem;
            border-radius: 12px;
            margin: 1.5rem 0;
            text-align: center;
            font-weight: 600;
            font-size: 1.1rem;
            box-shadow: var(--shadow-md);
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 0.75rem;
            animation: pulse 2s infinite;
        }

        .acquisition-notice a {
            color: white;
            text-decoration: none;
            font-weight: 700;
            transition: all 0.3s ease;
            padding: 0.25rem 0.5rem;
            border-radius: 6px;
        }

        .acquisition-notice a:hover {
            background: rgba(255, 255, 255, 0.2);
            text-decoration: underline;
        }

        /* Animations */
        @keyframes fadeInUp {
            from {
                opacity: 0;
                transform: translateY(30px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .fade-in-up {
            animation: fadeInUp 0.8s ease-out;
        }

        /* About Section */
        .about-content {
            max-width: 900px;
            margin: 0 auto;
        }

        .about-content > div {
            background: rgba(15, 23, 42, 0.9);
            padding: 3rem;
            border-radius: 20px;
            box-shadow: var(--shadow-lg);
            margin-bottom: 3rem;
            transition: all 0.5s ease;
        }

        .about-content > div:hover {
            transform: translateY(-10px);
            box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
        }

        .about-content h3 {
            font-size: 2rem;
            margin-bottom: 1.5rem;
            font-family: 'Space Grotesk', sans-serif;
            text-shadow: var(--text-shadow-heavy);
        }

        .about-content p {
            font-size: 1.15rem;
            color: var(--text-secondary);
            line-height: 1.8;
            margin-bottom: 1.5rem;
            text-shadow: var(--text-shadow);
        }

        /* NEW: Improved Mission Cards */
        .mission-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 2.5rem;
            margin-top: 3rem;
        }

        .mission-card {
            background: linear-gradient(135deg, rgba(30, 41, 59, 0.9) 0%, rgba(15, 23, 42, 0.9) 100%);
            border-radius: 20px;
            padding: 3rem 2rem;
            box-shadow: var(--shadow-lg);
            border: 1px solid rgba(99, 102, 241, 0.2);
            transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
            position: relative;
            overflow: hidden;
            text-align: center;
            transform-style: preserve-3d;
            perspective: 1000px;
        }

        /* Full-width row wrapper for mission cards placed outside the container */
        .mission-row-outer { width: 100%; box-sizing: border-box; padding: 3rem 2rem; display: flex; justify-content: center; background: transparent; }
        .mission-grid-row { display: flex; gap: 2.5rem; align-items: stretch; justify-content: center; }
        .mission-grid-row .mission-card { flex: 0 0 320px; max-width: 360px; }
        @media (max-width: 900px) {
            .mission-grid-row { flex-wrap: wrap; justify-content: center; }
            .mission-grid-row .mission-card { flex: 1 1 280px; max-width: none; }
        }

        .mission-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
            transition: left 0.7s;
            z-index: 1;
        }

        .mission-card:hover::before {
            left: 100%;
        }

        .mission-card::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            border-radius: 20px;
            padding: 2px;
            background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
            -webkit-mask: 
                linear-gradient(#fff 0 0) content-box, 
                linear-gradient(#fff 0 0);
            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;
        }

        .mission-card:hover::after {
            opacity: 1;
        }

        .mission-card:hover {
            transform: translateY(-15px) scale(1.03);
            box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3);
        }

        .mission-icon {
            width: 80px;
            height: 80px;
            margin: 0 auto 1.5rem;
            background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
            transition: all 0.5s ease;
            position: relative;
            z-index: 2;
        }

        .mission-card:hover .mission-icon {
            transform: scale(1.1) rotateY(180deg);
            box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3);
        }

        .mission-icon span {
            font-size: 2.5rem;
            transition: all 0.5s ease;
        }

        .mission-card:hover .mission-icon span {
            transform: scale(1.2);
        }

        .mission-card h4 {
            font-size: 1.5rem;
            margin-bottom: 1rem;
            font-family: 'Space Grotesk', sans-serif;
            text-shadow: var(--text-shadow-heavy);
            transition: all 0.3s ease;
            position: relative;
            z-index: 2;
        }

        .mission-card:hover h4 {
            color: var(--primary-color);
        }

        .mission-card p {
            color: var(--text-secondary);
            font-size: 1.05rem;
            line-height: 1.7;
            text-shadow: var(--text-shadow);
            position: relative;
            z-index: 2;
        }

        /* Floating Animation */
        @keyframes float {
            0% {
                transform: translateY(0px);
            }
            50% {
                transform: translateY(-10px);
            }
            100% {
                transform: translateY(0px);
            }
        }

        .floating {
            animation: float 5s ease-in-out infinite;
        }

        /* Focus styles for accessibility */
        *:focus {
            outline: 2px solid var(--primary-color);
            outline-offset: 2px;
        }

        /* Popup Modal Styles */
        .modal-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.7);
            display: flex;
            justify-content: center;
            align-items: center;
            z-index: 10000;
            opacity: 0;
            visibility: hidden;
            transition: all 0.3s ease;
        }

        .modal-overlay.active {
            opacity: 1;
            visibility: visible;
        }

        .modal {
            background: var(--bg-primary);
            border-radius: 20px;
            width: 90%;
            max-width: 600px;
            max-height: 90vh;
            overflow-y: auto;
            box-shadow: var(--shadow-xl);
            transform: scale(0.9);
            transition: transform 0.3s ease;
            position: relative;
        }

        .modal-overlay.active .modal {
            transform: scale(1);
        }

        .modal-header {
            padding: 1.5rem 2rem;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .modal-header h2 {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 1.5rem;
            color: var(--text-primary);
            text-shadow: var(--text-shadow-heavy);
        }

        .close-modal {
            background: none;
            border: none;
            color: var(--text-secondary);
            font-size: 1.5rem;
            cursor: pointer;
            width: 32px;
            height: 32px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            transition: all 0.3s ease;
        }

        .close-modal:hover {
            background: rgba(255, 255, 255, 0.1);
            color: var(--text-primary);
        }

        .modal-body {
            padding: 2rem;
        }

        .ai-demo {
            background: linear-gradient(135deg, rgba(30, 41, 59, 0.8) 0%, rgba(15, 23, 42, 0.8) 100%);
            border-radius: 12px;
            border: 1px solid var(--border-color);
            padding: 1.5rem;
            margin-bottom: 1.5rem;
        }

        .ai-header {
            display: flex;
            align-items: center;
            gap: 0.75rem;
            margin-bottom: 1rem;
        }

        .ai-badge {
            width: 32px;
            height: 32px;
            background: linear-gradient(135deg, var(--primary-color), var(--primary-light));
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-weight: bold;
            font-size: 0.9rem;
            box-shadow: var(--shadow-sm);
            animation: pulse 2s infinite;
        }

        .ai-title {
            font-size: 1.1rem;
            color: var(--text-primary);
            font-weight: bold;
            text-shadow: var(--text-shadow);
        }

        .ai-subtitle {
            font-size: 0.9rem;
            color: var(--text-secondary);
            margin: 0;
            text-shadow: var(--text-shadow);
        }

        .chat-bubble {
            background: rgba(15, 23, 42, 0.9);
            padding: 1rem;
            border-radius: 8px;
            margin-bottom: 1rem;
            border-left: 3px solid var(--primary-color);
        }

        .chat-bubble.ai {
            border-left-color: var(--accent-color);
        }

        .chat-bubble p {
            font-size: 0.95rem;
            color: var(--text-secondary);
            margin: 0;
            text-shadow: var(--text-shadow);
        }

        .chat-bubble strong {
            color: var(--text-primary);
        }

        .chat-bubble ul {
            font-size: 0.9rem;
            color: var(--text-secondary);
            margin: 0.5rem 0 0 1.5rem;
            line-height: 1.6;
            text-shadow: var(--text-shadow);
        }

        .chat-cta {
            font-size: 0.9rem;
            color: var(--primary-color);
            margin: 0.75rem 0 0 0;
            font-weight: 600;
            text-shadow: var(--text-shadow);
        }

        .ai-buttons {
            display: flex;
            gap: 0.5rem;
            margin-top: 1rem;
        }

        .ai-button {
            flex: 1;
            padding: 0.75rem;
            background: var(--primary-color);
            color: white;
            border: none;
            border-radius: 8px;
            font-size: 0.9rem;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s ease;
            text-shadow: var(--text-shadow);
            position: relative;
            overflow: hidden;
        }

        .ai-button::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
            transition: left 0.5s;
        }

        .ai-button:hover::before {
            left: 100%;
        }

        .ai-button:hover {
            background: var(--primary-dark);
            transform: translateY(-2px);
        }

        .ai-button.secondary {
            background: var(--bg-secondary);
            color: var(--text-primary);
            border: 2px solid var(--primary-color);
        }

        .ai-button.secondary:hover {
            background: var(--bg-tertiary);
        }

        .modal-footer {
            padding: 1.5rem 2rem;
            border-top: 1px solid var(--border-color);
            text-align: center;
        }

        .modal-footer p {
            color: var(--text-secondary);
            font-size: 0.9rem;
            text-shadow: var(--text-shadow);
        }

        /* Reduced motion support */
        @media (prefers-reduced-motion: reduce) {
            * {
                animation-duration: 0.01ms !important;
                animation-iteration-count: 1 !important;
                transition-duration: 0.01ms !important;
            }
        }

        /* Print styles */
        @media print {
            .hero-buttons, nav, .top-banner, #scrollToTop, .cookie-consent, .loading-screen {
                display: none !important;
            }
            
            body {
                background: white !important;
                color: black !important;
            }
            
            section {
                background: transparent !important;
                break-inside: avoid;
            }
        }

        /* Responsive */
        @media (max-width: 1024px) {
            .hero h1 {
                font-size: 3rem;
            }

            .footer-content {
                grid-template-columns: 1fr;
            }

            .products-grid,
            .pricing-grid {
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 768px) {
            .nav-links {
                display: none;
            }

            .mobile-menu-btn {
                display: block;
            }

            .hero h1 {
                font-size: 2.5rem;
            }

            .hero p {
                font-size: 1.25rem;
            }

            .section-title {
                font-size: 2.25rem;
            }

            .products-grid {
                grid-template-columns: 1fr;
            }

            #scrollToTop {
                bottom: 20px;
                right: 20px;
                width: 45px;
                height: 45px;
            }

            .cookie-content {
                flex-direction: column;
                text-align: center;
            }

            .cookie-buttons {
                width: 100%;
                justify-content: center;
            }

            .hero-buttons {
                flex-direction: column;
                align-items: center;
            }

            .btn-primary, .btn-secondary, .btn-gpt {
                width: 100%;
                max-width: 300px;
            }

            .modal {
                width: 95%;
            }

            .ai-buttons {
                flex-direction: column;
            }

            .mission-grid {
                grid-template-columns: 1fr;
            }

            .contact-grid { grid-template-columns: 1fr; padding: 1rem; }
        }

        @media (max-width: 480px) {
            .hero h1 {
                font-size: 2rem;
            }

            .hero p {
                font-size: 1.1rem;
            }

            #scrollToTop {
                bottom: 15px;
                right: 15px;
                width: 40px;
                height: 40px;
                font-size: 18px;
            }

            .cookie-buttons {
                flex-direction: column;
            }

            .modal-header, .modal-body, .modal-footer {
                padding: 1rem;
            }

            .mission-card {
                padding: 2rem 1.5rem;
            }
        }
    /* Dot scroll + progress UI */
    .dot-scroll { position: fixed; right: 28px; top: 50%; transform: translateY(-50%); z-index: 1100; display: flex; flex-direction: column; align-items: center; gap: 16px; pointer-events: auto; }
    .dot-scroll .page-progress { position: fixed; top: 0; left: 0; height: 6px; width: 100%; z-index: 1200; background: rgba(255,255,255,0.03); pointer-events: none; }
    .dot-scroll .page-progress .fill { height: 100%; width: 0%; background: linear-gradient(90deg, var(--primary-color), var(--secondary-color)); transition: width 0.12s linear; box-shadow: 0 2px 8px rgba(79,70,229,0.12); }
    .dots { list-style: none; display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; }
    .dot-item { position: relative; }
    .dot { width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.04); display: flex; align-items: center; justify-content: center; cursor: pointer; position: relative; }
    .dot .ring { width: 22px; height: 22px; border-radius: 50%; display: block; background: conic-gradient(var(--primary-color) 0deg, rgba(255,255,255,0.06) 0deg); transition: background 0.12s linear; }
    .dot .inner { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,0.06); position: absolute; }
    .dot-label { position: absolute; right: 48px; top: 50%; transform: translateY(-50%) translateX(6px); background: rgba(15,23,42,0.95); color: var(--text-primary); padding: 6px 8px; border-radius: 6px; font-size: 0.85rem; opacity: 0; pointer-events: none; transition: opacity .16s, transform .16s; white-space: nowrap; box-shadow: var(--shadow-md); }
    .dot-item:hover .dot-label { opacity: 1; transform: translateY(-50%) translateX(0); }
    .dot-item.active .dot { transform: scale(1.05); box-shadow: 0 6px 18px rgba(0,0,0,0.25); border-color: var(--primary-color); }
    @media (max-width: 900px) { .dot-scroll { display: none; } }

    /* Custom branded cursor (desktop only) */
    :root { --cursor-dot-size: 20px; --cursor-ring-size: 36px; --cursor-trail-max: 24; }

    body.custom-cursor-hidden, body.cursor-enabled { cursor: none; }

    .cursor-dot, .cursor-ring { position: fixed; top: 0; left: 0; pointer-events: none; z-index: 2147483647; transform: translate(-50%, -50%); transition: transform 160ms cubic-bezier(.2,.9,.2,1), opacity 160ms; will-change: transform, opacity; }

    .cursor-dot { width: var(--cursor-dot-size); height: var(--cursor-dot-size); background: radial-gradient(circle at 35% 30%, #22c55e 60%, #16a34a 100%); border-radius: 50%; box-shadow: 0 6px 20px rgba(34,197,94,0.18), 0 0 20px rgba(22,163,74,0.10); }

    .cursor-ring { width: var(--cursor-ring-size); height: var(--cursor-ring-size); border-radius: 50%; border: 1px solid rgba(255,255,255,0.06); box-shadow: 0 8px 28px rgba(79,70,229,0.06); background: radial-gradient(circle, rgba(255,255,255,0.02), transparent 40%); }

    /* Hover/intensified state */
    .cursor-hover .cursor-dot { transform: scale(1.45); box-shadow: 0 10px 28px rgba(124,58,237,0.18), 0 0 36px rgba(34,211,238,0.06); }
    .cursor-hover .cursor-ring { transform: scale(1.15); border-color: rgba(124,58,237,0.28); box-shadow: 0 14px 44px rgba(79,70,229,0.12); }

    /* Click ripple (canvas-based) - canvas full screen */
    .cursor-sparks-canvas { position: fixed; inset: 0; pointer-events: none; z-index: 2147483646; mix-blend-mode: screen; }

    /* Hide custom cursor on touch / coarse pointers */
    @media (hover: none), (pointer: coarse) {
        .cursor-dot, .cursor-ring, .cursor-sparks-canvas { display: none !important; }
        body { cursor: default !important; }
    }
    </style>
</head>
<body>
    <!-- Loading Screen -->
    <div class="loading-screen" id="loadingScreen">
        <div class="loader"></div>
    </div>

    <!-- Cookie Consent Banner -->
    <div class="cookie-consent" id="cookieConsent">
        <div class="cookie-content">
            <div class="cookie-text">
                <p>We use cookies to enhance your experience, analyze site traffic, and for marketing purposes. By continuing to browse, you agree to our <a href="https://startupschool.tv/privacy" style="color: var(--primary-color);">Privacy Policy</a>.</p>
            </div>
            <div class="cookie-buttons">
                <button id="cookieAccept" class="cta-button">Accept All</button>
                <button id="cookieReject" class="btn-secondary">Essential Only</button>
            </div>
        </div>
    </div>

    <!-- Top Banner -->
    <div class="top-banner" id="top-banner">
        💡DEMO: 🚀 Acquisition or Partnership Opportunities | <a href="mailto:Contact@BrandingSME.com">Contact@BrandingSME.com</a>
    </div>

    <!-- Navigation -->
    <nav id="navbar">
        <div class="nav-container">
            <a href="#home" class="logo">
                <svg class="rocket-icon" viewBox="0 0 120 120" xmlns="http://www.w3.org/2000/svg" aria-label="Startup School TV Detailed Rocket Logo">
                    <defs>
                        <filter id="softShadow" x="-50%" y="-50%" width="200%" height="200%">
                            <feGaussianBlur in="SourceAlpha" stdDeviation="2" result="blur" />
                            <feOffset in="blur" dx="0" dy="2" result="offset" />
                            <feMerge>
                                <feMergeNode in="offset"/>
                                <feMergeNode in="SourceGraphic"/>
                            </feMerge>
                        </filter>

                        <radialGradient id="noseGradient" cx="30%" cy="20%" r="80%">
                            <stop offset="0%" stop-color="#9aa8ff" />
                            <stop offset="100%" stop-color="#4f46e5" />
                        </radialGradient>

                        <linearGradient id="bodyGradient" x1="0%" y1="0%" x2="0%" y2="100%">
                            <stop offset="0%" stop-color="#7c83ff" />
                            <stop offset="40%" stop-color="#6366f1" />
                            <stop offset="100%" stop-color="#2b2e7a" />
                        </linearGradient>

                        <linearGradient id="finGradient" x1="0%" y1="0%" x2="100%" y2="100%">
                            <stop offset="0%" stop-color="#5b4ce6" />
                            <stop offset="100%" stop-color="#2d2a99" />
                        </linearGradient>

                        <radialGradient id="windowGlow" cx="40%" cy="40%">
                            <stop offset="0%" stop-color="#e0f7ff" />
                            <stop offset="100%" stop-color="#0284c7" />
                        </radialGradient>

                        <linearGradient id="flameGradient2" x1="0%" y1="0%" x2="0%" y2="100%">
                            <stop offset="0%" stop-color="#fff59b" />
                            <stop offset="30%" stop-color="#ffd54d" />
                            <stop offset="60%" stop-color="#ff8a4b" />
                            <stop offset="100%" stop-color="#ff4d4d" />
                        </linearGradient>

                        <!-- soft flame glow filter -->
                        <filter id="flameGlow" x="-50%" y="-50%" width="200%" height="200%" color-interpolation-filters="sRGB">
                            <feGaussianBlur stdDeviation="3" result="coloredBlur"/>
                            <feMerge>
                                <feMergeNode in="coloredBlur"/>
                                <feMergeNode in="SourceGraphic"/>
                            </feMerge>
                        </filter>

                        <!-- tiny specular highlight for chrome edges -->
                        <filter id="specular" x="-20%" y="-20%" width="140%" height="140%">
                            <feGaussianBlur stdDeviation="0.8" result="b" />
                            <feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
                        </filter>
                    </defs>

                    <!-- Deep-space backdrop (subtle) -->
                    <rect x="0" y="0" width="120" height="120" fill="transparent" />

                    <!-- Distant stars + layered starfields -->
                    <g class="starfield layer-back" aria-hidden="true">
                        <circle class="star" cx="8" cy="18" r="0.9" fill="#fff" opacity="0.45" />
                        <circle class="star" cx="110" cy="52" r="1.1" fill="#fff" opacity="0.36" />
                        <circle class="star" cx="30" cy="12" r="1.1" fill="#fff" opacity="0.38" />
                        <circle class="star" cx="72" cy="8" r="0.8" fill="#fff" opacity="0.5" />
                    </g>
                    <g class="starfield layer-mid" aria-hidden="true">
                        <circle class="star" cx="12" cy="20" r="1.2" fill="#fbbf24" opacity="0.45" />
                        <circle class="star" cx="86" cy="36" r="1.3" fill="#fbbf24" opacity="0.4" />
                        <circle class="star" cx="100" cy="14" r="0.9" fill="#fbbf24" opacity="0.35" />
                        <circle class="star" cx="8" cy="45" r="0.9" fill="#fbbf24" opacity="0.35" />
                    </g>
                    <g class="starfield layer-front" aria-hidden="true">
                        <circle class="star" cx="40" cy="8" r="0.7" fill="#fff" opacity="0.9" />
                        <circle class="star" cx="92" cy="22" r="0.6" fill="#fff" opacity="0.9" />
                        <circle class="star" cx="20" cy="34" r="0.8" fill="#fff" opacity="0.9" />
                        <circle class="star" cx="106" cy="8" r="0.5" fill="#fff" opacity="0.9" />
                    </g>

                    <!-- Nebula cloud behind rocket -->
                    <g class="nebula space-layer" aria-hidden="true">
                        <path d="M14 74 C30 34, 90 24, 108 70 C96 44, 70 28, 52 50 C34 72, 20 82, 14 74 Z" fill="#7b61ff" opacity="0.16" />
                        <path d="M8 84 C28 50, 88 38, 112 86 C92 62, 64 46, 44 68 C26 88, 12 94, 8 84 Z" fill="#ff7ab6" opacity="0.12" />
                    </g>

                    <!-- Speed lines that pass behind the rocket to indicate motion -->
                    <g class="speed-lines" aria-hidden="true" transform="translate(0,0)">
                        <path class="speed-line" d="M10 120 L38 10" opacity="0.12"/>
                        <path class="speed-line" d="M24 120 L52 10" opacity="0.12"/>
                        <path class="speed-line" d="M38 120 L66 10" opacity="0.12"/>
                        <path class="speed-line" d="M52 120 L80 10" opacity="0.10"/>
                    </g>

                    <!-- Comets for depth and motion -->
                    <g class="comets" aria-hidden="true">
                        <g class="comet" transform="translate(-20,40)">
                            <path d="M0 0 C12 -6, 26 -12, 36 -18" stroke="#fff" stroke-opacity="0.12" stroke-width="1" fill="none" />
                            <circle cx="36" cy="-18" r="1.6" fill="#fff" />
                        </g>
                        <g class="comet" transform="translate(-10,20)">
                            <path d="M0 0 C10 -5, 20 -10, 28 -14" stroke="#ffd54d" stroke-opacity="0.1" stroke-width="1" fill="none" />
                            <circle cx="28" cy="-14" r="1.2" fill="#ffd54d" />
                        </g>
                    </g>

                    <!-- Rocket Group -->
                    <g class="rocket-container">
                        <g class="rocket-launch" transform="translate(0,0)">
                        <!-- Smoke puffs (animated via existing .smoke) -->
                        <g>
                            <circle class="smoke" cx="60" cy="96" r="5" fill="#e2e8f0" opacity="0" />
                            <circle class="smoke" cx="52" cy="98" r="6" fill="#cbd5e1" opacity="0" />
                            <circle class="smoke" cx="68" cy="100" r="7" fill="#94a3b8" opacity="0" />
                        </g>

                        <!-- Main body -->
                        <g filter="url(#softShadow)">
                            <!-- body shell -->
                            <path d="M48 30 C52 22, 68 22, 72 30 L78 72 C78 78, 70 92, 60 92 C50 92, 42 78, 42 72 Z" fill="url(#bodyGradient)" stroke="#0b1220" stroke-width="0.6" />

                            <!-- nose cone -->
                            <path d="M48 30 L60 12 L72 30 Z" fill="url(#noseGradient)" stroke="#0b1220" stroke-width="0.5" />

                            <!-- panel lines -->
                            <path d="M54 36 L66 36" stroke="#94a3b8" stroke-opacity="0.08" stroke-width="0.8" />
                            <path d="M52 46 L68 46" stroke="#94a3b8" stroke-opacity="0.06" stroke-width="0.6" />

                            <!-- window with glossy highlight and animated shimmer -->
                            <g>
                                <ellipse cx="60" cy="52" rx="8" ry="9" fill="url(#windowGlow)" stroke="#e6f6ff" stroke-opacity="0.6" stroke-width="0.9" />
                                <circle cx="57" cy="50" r="2.5" fill="#ffffff" fill-opacity="0.4" />
                                <ellipse class="window-shine" cx="64" cy="46" rx="4.5" ry="2.5" fill="#ffffff" fill-opacity="0.18" transform="rotate(-25 64 46)" />
                            </g>

                            <!-- small rivets for detail -->
                            <g>
                                <circle cx="52" cy="40" r="0.6" fill="#ffffff" fill-opacity="0.12" />
                                <circle cx="52" cy="44" r="0.5" fill="#ffffff" fill-opacity="0.08" />
                                <circle cx="68" cy="40" r="0.6" fill="#ffffff" fill-opacity="0.08" />
                            </g>

                            <!-- left fin -->
                            <path d="M48 64 L32 78 L46 74 Z" fill="url(#finGradient)" stroke="#0b1220" stroke-width="0.5" />
                            <!-- right fin -->
                            <path d="M72 64 L88 78 L74 74 Z" fill="url(#finGradient)" stroke="#0b1220" stroke-width="0.5" />

                            <!-- rear ring / thruster mouth -->
                            <ellipse cx="60" cy="86" rx="10" ry="4.5" fill="#0b1220" opacity="0.9" />
                        </g>

                        <!-- Layered flames (animated via .flame) with glow and sparks -->
                        <g class="flame-group" filter="url(#flameGlow)">
                            <path class="flame glow" d="M54 86 C56 100, 58 104, 60 106 C62 104, 64 100, 66 86 C62 96, 58 96, 54 86 Z" fill="url(#flameGradient2)" opacity="0.95"/>
                            <path class="flame" d="M56 88 C58 98, 60 102, 60 104 C60 102, 62 98, 64 88 C60 96, 60 96, 56 88 Z" fill="#ffd54d" opacity="0.85"/>
                            <path class="flame" d="M58 92 C59 98, 60 100, 60 101 C60 100, 61 98, 62 92 C60 96, 60 96, 58 92 Z" fill="#fff59b" opacity="0.9"/>

                            <!-- sparks (animated) -->
                            <circle class="spark" cx="60" cy="94" r="0.8" fill="#fff59b" opacity="0.95" />
                            <circle class="spark" cx="54" cy="98" r="0.6" fill="#ffb74d" opacity="0.85" />
                            <circle class="spark" cx="66" cy="98" r="0.6" fill="#ff8a4b" opacity="0.75" />
                        </g>
                    </g>
                </svg>
                <!-- 3D extruded SVG logotype (single-line) -->
                <svg class="logo-svg" viewBox="0 0 1600 320" role="img" aria-label="Startup School TV" xmlns="http://www.w3.org/2000/svg">
                    <defs>
                        <linearGradient id="logo3dGrad" x1="0%" y1="0%" x2="100%" y2="0%">
                            <stop offset="0%" stop-color="#c7b3ff" />
                            <stop offset="40%" stop-color="#8f93ff" />
                            <stop offset="70%" stop-color="#34d399" />
                            <stop offset="100%" stop-color="#fb7185" />
                        </linearGradient>
                        <filter id="logoDrop" x="-50%" y="-50%" width="200%" height="200%">
                            <feGaussianBlur in="SourceAlpha" stdDeviation="3" result="blur"/>
                            <feOffset in="blur" dx="0" dy="2" result="off"/>
                            <feMerge><feMergeNode in="off"/><feMergeNode in="SourceGraphic"/></feMerge>
                        </filter>
                    </defs>

                    <!-- extrude layers (back-to-front) -->
                    <g transform="translate(8,79)" aria-hidden="true">
                        <text class="extrude e1" x="0" y="149" font-family="Space Grotesk, Inter, sans-serif" font-weight="800" font-size="90" fill="#0f172a" opacity="0.14">Startup School TV</text>
                        <text class="extrude e2" x="3" y="144" font-family="Space Grotesk, Inter, sans-serif" font-weight="800" font-size="90" fill="#111827" opacity="0.22">Startup School TV</text>
                        <text class="extrude e3" x="6" y="139" font-family="Space Grotesk, Inter, sans-serif" font-weight="800" font-size="90" fill="#0b1220" opacity="0.34">Startup School TV</text>
                        <text class="extrude e4" x="9" y="134" font-family="Space Grotesk, Inter, sans-serif" font-weight="800" font-size="90" fill="#06070b" opacity="0.5">Startup School TV</text>
                    </g>

                    <!-- front face with gradient (drop shadow removed) -->
                    <g>
                        <text class="front-face" x="8" y="158" font-family="Space Grotesk, Inter, sans-serif" font-weight="800" font-size="90" fill="url(#logo3dGrad)" style="letter-spacing:0.6px;">
                            Startup School TV
                        </text>
                        <text class="front-stroke" x="8" y="158" font-family="Space Grotesk, Inter, sans-serif" font-weight="800" font-size="90" fill="none" stroke="#061028" stroke-width="0.6" stroke-opacity="0.18" style="letter-spacing:0.6px;"/>
                        <!-- subtle top bevel highlight (kept but hidden via CSS) -->
                        <text class="front-highlight" x="9" y="151" font-family="Space Grotesk, Inter, sans-serif" font-weight="800" font-size="90" fill="#ffffff" fill-opacity="0.12" style="letter-spacing:0.6px;">Startup School TV</text>
                    </g>
                </svg>
            </a>
            <ul class="nav-links">
                <li>
                    <a href="#home">
                        <span class="nav-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M3 11.5L12 4l9 7.5V20a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1v-8.5z" fill="currentColor"/></svg></span>
                        <span class="nav-label">Home</span>
                    </a>
                </li>
                <li>
                    <a href="#products">
                        <span class="nav-icon" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 3h8v8H3V3zm10 0h8v8h-8V3zM3 13h8v8H3v-8zm10 0h8v8h-8v-8z" fill="currentColor"/></svg></span>
                        <span class="nav-label">Products</span>
                    </a>
                </li>
                <li>
                    <a href="#pricing">
                        <span class="nav-icon" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 1L3 5v6c0 5 3.8 9.6 9 11 5.2-1.4 9-6 9-11V5l-9-4zM11 11V6h2v5h-2z" fill="currentColor"/></svg></span>
                        <span class="nav-label">Pricing</span>
                    </a>
                </li>
                <li>
                    <a href="#about">
                        <span class="nav-icon" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 2a10 10 0 100 20 10 10 0 000-20zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z" fill="currentColor"/></svg></span>
                        <span class="nav-label">About</span>
                    </a>
                </li>
                <li>
                    <a href="#contact">
                        <span class="nav-icon" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M2 4h20v16H2V4zm2 2v2l8 5 8-5V6H4zm0 4v8h16v-8l-8 5-8-5z" fill="currentColor"/></svg></span>
                        <span class="nav-label">Contact</span>
                    </a>
                </li>
                <li>
                    <a href="#pricing" class="cta-button" aria-label="Start free trial">
                        <span class="nav-icon" aria-hidden="true"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M5 12h14v2H5v-2zm0-6h14v2H5V6z" fill="currentColor"/></svg></span>
                        <span class="nav-label">Start Free Trial</span>
                        <span class="cta-pill-icon" aria-hidden="true">→</span>
                    </a>
                </li>
            </ul>
            <button class="mobile-menu-btn" aria-label="Toggle menu" aria-expanded="false">
                <span></span>
                <span></span>
                <span></span>
            </button>
        </div>
    </nav>

    <!-- Scroll to Top Button with progress ring -->
    <button id="scrollToTop" aria-label="Scroll to top">
        <svg class="scroll-ring-svg" width="48" height="48" viewBox="0 0 48 48" aria-hidden="true">
            <circle class="progress-ring-track" cx="24" cy="24" r="20" fill="none" stroke="rgba(255,255,255,0.06)" stroke-width="4"></circle>
            <circle class="progress-ring-circle" cx="24" cy="24" r="20" fill="none" stroke="white" stroke-width="4" stroke-linecap="round" transform="rotate(-90 24 24)"></circle>
        </svg>
        <span class="scroll-to-top-icon">↑</span>
    </button>

    <!-- Three.js Background Canvas -->
    <canvas id="three-canvas"></canvas>

    <!-- Main Content -->
    <main id="main-content">
        <!-- Hero Section -->
        <section class="hero" id="home">
            <div class="hero-content fade-in-up">
                <h1>Launch Your <span class="highlight">Startup</span><br>With Expert Guidance</h1>
                <p>Access 500+ hours of premium education from successful founders, AI-powered mentorship, and a global community of entrepreneurs</p>
                <div class="hero-buttons">
                    <a href="#pricing" class="btn-primary floating">Start Learning Today</a>
                    <button id="tryStartupGPT" class="btn-gpt floating" style="animation-delay: 0.3s;">Try our Startup GPT</button>
                    <a href="#products" class="btn-secondary floating" style="animation-delay: 0.6s;">Explore Products</a>
                </div>
            </div>
        </section>

        <!-- Products Section -->
        <section id="products">
            <div class="container">
                <div class="section-header">
                    <span class="section-tag">Our Products</span>
                    <h2 class="section-title">Everything You Need to Succeed</h2>
                    <p class="section-description">Comprehensive tools and resources designed to take you from idea to successful, scaled business</p>
                </div>
                <div class="products-grid">
                    <article class="product-card">
                        <div class="product-icon">
                            <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
                                <path d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"/>
                            </svg>
                        </div>
                        <h3>Structured Learning Paths</h3>
                        <p>Follow our carefully designed curriculum covering all aspects of startup building, from idea validation to scaling strategies.</p>
                        <ul class="product-features">
                            <li>Step-by-step curriculum progression</li>
                            <li>Idea validation to scaling strategies</li>
                            <li>Progress tracking and milestone achievements</li>
                            <li>Personalized recommendations</li>
                        </ul>
                        <a href="#pricing" class="learn-more">Learn More</a>
                    </article>

                    <article class="product-card">
                        <div class="product-icon">
                            <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
                                <path d="M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"/>
                            </svg>
                        </div>
                        <h3>Video Content Library</h3>
                        <p>Access 500+ hours of expert-led video content with production quality comparable to MasterClass, available on all devices.</p>
                        <ul class="product-features">
                            <li>500+ hours of high-quality content</li>
                            <li>Available on all devices</li>
                            <li>Download for offline viewing</li>
                            <li>MasterClass-level production quality</li>
                        </ul>
                        <a href="#pricing" class="learn-more">Learn More</a>
                    </article>

                    <article class="product-card">
                        <div class="product-icon">
                            <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
                                <path d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"/>
                            </svg>
                        </div>
                        <h3>AI-Powered Mentorship</h3>
                        <p>24/7 access to "StartupGPT" - your personal AI advisor trained on startup best practices and fine-tuned for entrepreneurial guidance.</p>
                        <ul class="product-features">
                            <li>Personalised learning paths based on your goals</li>
                            <li>Business plan co-pilot and review</li>
                            <li>Pitch practice with AI feedback</li>
                            <li>Financial modelling assistance</li>
                            <li>Instant answers to your startup questions</li>
                        </ul>
                        <a href="#pricing" class="learn-more">Learn More</a>
                    </article>

                    <article class="product-card">
                        <div class="product-icon">
                            <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
                                <path d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z"/>
                            </svg>
                        </div>
                        <h3>Community & Mentorship</h3>
                        <p>Connect with peers and experienced founders through our networking platform, mentor matching, and live Q&A sessions.</p>
                        <ul class="product-features">
                            <li>Co-founder matching algorithm</li>
                            <li>Topic and industry-specific forums</li>
                            <li>Peer accountability groups</li>
                            <li>Virtual networking events</li>
                            <li>Exclusive job board and talent marketplace</li>
                        </ul>
                        <a href="#pricing" class="learn-more">Learn More</a>
                    </article>

                    <article class="product-card">
                        <div class="product-icon">
                            <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
                                <path d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/>
                            </svg>
                        </div>
                        <h3>Tools & Templates</h3>
                        <p>Utilize our business model canvas generator, financial projection templates, pitch deck builder, and other essential resources.</p>
                        <ul class="product-features">
                            <li>Business plan and financial model templates</li>
                            <li>Pitch deck frameworks and examples</li>
                            <li>Legal documents and contracts</li>
                            <li>Marketing and GTM strategy templates</li>
                            <li>OKR and KPI tracking sheets</li>
                        </ul>
                        <a href="#pricing" class="learn-more">Learn More</a>
                    </article>

                    <article class="product-card">
                        <div class="product-icon">
                            <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
                                <path d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"/>
                            </svg>
                        </div>
                        <h3>Startup Accelerator</h3>
                        <p>Join our 12-week intensive programme with small cohorts, demo day presentations to investors, and follow-on investment opportunities.</p>
                        <ul class="product-features">
                            <li>12-week intensive programme</li>
                            <li>Small cohort sizes for personalized attention</li>
                            <li>Demo day presentations to investors</li>
                            <li>Follow-on investment opportunities</li>
                            <li>Mentorship from successful founders</li>
                        </ul>
                        <a href="#pricing" class="learn-more">Learn More</a>
                    </article>
                </div>
            </div>
        </section>

        <!-- Pricing Section -->
        <section id="pricing">
            <div class="container">
                <div class="section-header">
                    <span class="section-tag">Pricing Plans</span>
                    <h2 class="section-title">Invest in Your Future</h2>
                    <p class="section-description">Choose the plan that best fits your entrepreneurial journey. All plans include access to our core curriculum and community.</p>
                </div>
                <div class="pricing-grid">
                    <article class="pricing-card">
                        <h3>Free</h3>
                        <p class="pricing-description">Perfect for getting started</p>
                        <div class="price">£0<span>/month</span></div>
                        <ul class="pricing-features">
                            <li>Limited access to video content</li>
                            <li>Limited access to AI-powered mentorship (StartupGPT)</li>
                            <li>1 Live masterclass attendance per month</li>
                            <li>Community platform access</li>
                            <li>Basic templates and tools</li>
                        </ul>
                        <button class="pricing-cta free">Start Free Plan</button>
                    </article>

                    <article class="pricing-card">
                        <h3>Monthly</h3>
                        <p class="pricing-description">Perfect for exploring the platform</p>
                        <div class="price">£29.99<span>/month</span></div>
                        <ul class="pricing-features">
                            <li>Full access to 500+ hours of video content</li>
                            <li>AI-powered mentorship (StartupGPT)</li>
                            <li>Community platform access</li>
                            <li>Live masterclass attendance</li>
                            <li>All templates and tools</li>
                            <li>Cancel anytime</li>
                        </ul>
                        <button class="pricing-cta">Start Monthly Plan</button>
                    </article>

                    <article class="pricing-card featured">
                        <div class="pricing-badge">Most Popular</div>
                        <h3>Annual</h3>
                        <p class="pricing-description">Best value - Save 30%</p>
                        <div class="price">£249<span>/year</span></div>
                        <ul class="pricing-features">
                            <li>Everything in Monthly, plus:</li>
                            <li>Save £111 compared to monthly</li>
                            <li>Priority customer support</li>
                            <li>Early access to new content</li>
                            <li>Exclusive annual member events</li>
                            <li>Foundation certification included</li>
                            <li>30-day money-back guarantee</li>
                        </ul>
                        <button class="pricing-cta">Start Annual Plan</button>
                    </article>

                    <article class="pricing-card">
                        <h3>Pro</h3>
                        <p class="pricing-description">For serious founders</p>
                        <div class="price">£499<span>/year</span></div>
                        <ul class="pricing-features">
                            <li>Everything in Annual, plus:</li>
                            <li>4 hours of one-to-one mentorship</li>
                            <li>Business plan professional review</li>
                            <li>Pitch deck consultation (1 hour)</li>
                            <li>VIP community access</li>
                            <li>All specialist certifications</li>
                            <li>Direct instructor messaging</li>
                            <li>Quarterly strategic reviews</li>
                        </ul>
                        <button class="pricing-cta">Start Pro Plan</button>
                    </article>
                </div>
                <div style="text-align: center; margin-top: 3rem;">
                    <p style="color: white; font-size: 1.1rem; text-shadow: var(--text-shadow-heavy);">
                        <strong>Student discount available:</strong> £149/year with valid student ID • 
                        <strong>Enterprise solutions:</strong> <a href="#contact" style="color: white; text-decoration: none; font-weight: 600;">Contact us</a> for custom pricing
                    </p>
                </div>
            </div>
        </section>

        <!-- About Section -->
        <section id="about">
            <div class="container">
                <div class="section-header">
                    <span class="section-tag">About Us</span>
                    <h2 class="section-title">Democratising Startup Education</h2>
                    <p class="section-description">We believe that entrepreneurship can be taught, and that world-class education should be accessible to everyone, everywhere.</p>
                </div>
                <div class="about-content">
                    <div>
                        <h3>Our Mission</h3>
                        <p>
                            With 80% of startups failing within their first five years and only 10% of economies providing adequate entrepreneurial education, there's a massive gap between aspiration and achievement. Startup School TV bridges this gap by providing premium, practical education from those who've successfully built businesses.
                        </p>
                        <p>
                            We've assembled the world's best founders, operators, and investors to share their real-world experiences, frameworks, and strategies. Combined with cutting-edge AI technology and a supportive global community, we're creating the essential first step for any aspiring entrepreneur.
                        </p>
                    </div>
                    
                    <!-- Mission cards moved outside the centered container (rendered full-width below) -->
                </div>
            </div>
        </section>
        <!-- Full-width mission cards row (outside centered container) -->
        <div class="mission-row-outer">
            <div class="mission-grid mission-grid-row">
                <div class="mission-card">
                    <div class="mission-icon">
                        <span>🎯</span>
                    </div>
                    <h4>Our Vision</h4>
                    <p>To become the global standard for startup education, empowering millions of entrepreneurs worldwide to turn their ideas into successful businesses.</p>
                </div>
                <div class="mission-card">
                    <div class="mission-icon">
                        <span>💡</span>
                    </div>
                    <h4>Our Values</h4>
                    <p>Excellence, accessibility, and practical application guide everything we do. We believe in learning by doing and mentorship that makes a real impact.</p>
                </div>
                <div class="mission-card">
                    <div class="mission-icon">
                        <span>🚀</span>
                    </div>
                    <h4>Our Impact</h4>
                    <p>Empowering founders to build sustainable businesses that create jobs, drive innovation, and make a positive impact on communities worldwide.</p>
                </div>
            </div>
        </div>

        <!-- Contact Section -->
        <section class="contact-section" id="contact">
            <div class="container">
                <div class="section-header">
                    <span class="section-tag">Get In Touch</span>
                    <h2 class="section-title">Start Your Journey Today</h2>
                    <p class="section-description">Have questions? Want to learn more? We're here to help you take the first step towards building your successful startup.</p>
                </div>
                <div class="contact-grid">
                    <div class="contact-info">
                        <h3>Let's Connect</h3>
                        <p>Whether you're an aspiring entrepreneur, investor, or potential partner, we'd love to hear from you.</p>
                        <div class="contact-details">
                            <div class="contact-item">
                                <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
                                    <path d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"/>
                                </svg>
                                <div>
                                    <strong>Email</strong><br>
                                    hello@startupschool.com
                                </div>
                            </div>
                            <div class="contact-item">
                                <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
                                    <path d="M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"/>
                                    <path d="M15 11a3 3 0 11-6 0 3 3 0 016 0z"/>
                                </svg>
                                <div>
                                    <strong>Location</strong><br>
                                    London, United Kingdom
                                </div>
                            </div>
                            <div class="contact-item">
                                <svg fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
                                    <path d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/>
                                </svg>
                                <div>
                                    <strong>Support Hours</strong><br>
                                    Mon-Fri: 9AM-6PM GMT
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="contact-form" aria-labelledby="contact-form-heading">
                        <h3 id="contact-form-heading">Send us a message</h3>
                        <form id="contactForm">
                            <label for="name" class="sr-only">Name</label>
                            <input type="text" id="name" name="name" placeholder="Your name" required>

                            <label for="email" class="sr-only">Email</label>
                            <input type="email" id="email" name="email" placeholder="you@email.com" required>

                            <label for="message" class="sr-only">Message</label>
                            <textarea id="message" name="message" placeholder="How can we help?" required></textarea>

                            <div style="display:flex; gap:0.75rem; align-items:center;">
                                <button type="submit">Send Message</button>
                                <div id="contactFormMsg" style="color:white; opacity:0.9; font-size:0.95rem; display:none;">Message sent — thanks!</div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </section>
    </main>

    <!-- Footer -->
    <footer>
        <div class="footer-content">
            <div class="footer-brand">
                <svg class="footer-logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120" aria-label="Startup School TV logo" role="img">
                                    <rect x="0" y="0" width="120" height="120" fill="transparent" />

                                    <!-- Stars (twinkle) -->
                                    <g id="footer-stars">
                                        <circle cx="8" cy="18" r="0.9" fill="#fff" opacity="0.45">
                                            <animate attributeName="opacity" values="0.45;0.9;0.45" dur="2s" repeatCount="indefinite"/>
                                        </circle>
                                        <circle cx="110" cy="52" r="1.1" fill="#fff" opacity="0.36">
                                            <animate attributeName="opacity" values="0.36;0.8;0.36" dur="2.5s" repeatCount="indefinite"/>
                                        </circle>
                                        <circle cx="30" cy="12" r="1.1" fill="#fff" opacity="0.38">
                                            <animate attributeName="opacity" values="0.38;0.7;0.38" dur="2.2s" repeatCount="indefinite"/>
                                        </circle>
                                        <circle cx="72" cy="8" r="0.8" fill="#fff" opacity="0.5">
                                            <animate attributeName="opacity" values="0.5;0.9;0.5" dur="1.8s" repeatCount="indefinite"/>
                                        </circle>
                                        <circle cx="12" cy="20" r="1.2" fill="#fbbf24" opacity="0.45">
                                            <animate attributeName="opacity" values="0.45;0.9;0.45" dur="2.1s" repeatCount="indefinite"/>
                                        </circle>
                                        <circle cx="86" cy="36" r="1.3" fill="#fbbf24" opacity="0.4">
                                            <animate attributeName="opacity" values="0.4;0.8;0.4" dur="2.3s" repeatCount="indefinite"/>
                                        </circle>
                                        <circle cx="100" cy="14" r="0.9" fill="#fbbf24" opacity="0.35">
                                            <animate attributeName="opacity" values="0.35;0.7;0.35" dur="2.6s" repeatCount="indefinite"/>
                                        </circle>
                                        <circle cx="8" cy="45" r="0.9" fill="#fbbf24" opacity="0.35">
                                            <animate attributeName="opacity" values="0.35;0.7;0.35" dur="2.4s" repeatCount="indefinite"/>
                                        </circle>
                                        <circle cx="40" cy="8" r="0.7" fill="#fff" opacity="0.9">
                                            <animate attributeName="opacity" values="0.9;0.3;0.9" dur="1.7s" repeatCount="indefinite"/>
                                        </circle>
                                        <circle cx="92" cy="22" r="0.6" fill="#fff" opacity="0.9">
                                            <animate attributeName="opacity" values="0.9;0.3;0.9" dur="1.9s" repeatCount="indefinite"/>
                                        </circle>
                                        <circle cx="20" cy="34" r="0.8" fill="#fff" opacity="0.9">
                                            <animate attributeName="opacity" values="0.9;0.3;0.9" dur="2.2s" repeatCount="indefinite"/>
                                        </circle>
                                        <circle cx="106" cy="8" r="0.5" fill="#fff" opacity="0.9">
                                            <animate attributeName="opacity" values="0.9;0.3;0.9" dur="2.1s" repeatCount="indefinite"/>
                                        </circle>
                                    </g>

                                    <!-- Nebula subtle pulse -->
                                    <path d="M14 74 C30 34, 90 24, 108 70 C96 44, 70 28, 52 50 C34 72, 20 82, 14 74 Z" fill="#7b61ff" opacity="0.16">
                                        <animate attributeName="opacity" values="0.12;0.24;0.12" dur="4s" repeatCount="indefinite"/>
                                    </path>
                                    <path d="M8 84 C28 50, 88 38, 112 86 C92 62, 64 46, 44 68 C26 88, 12 94, 8 84 Z" fill="#ff7ab6" opacity="0.12">
                                        <animate attributeName="opacity" values="0.08;0.18;0.08" dur="4.2s" repeatCount="indefinite"/>
                                    </path>

                                    <!-- Speed lines subtle shimmer -->
                                    <g id="footer-speedLines" opacity="0.9">
                                        <path d="M10 120 L38 10" stroke="#fff" opacity="0.12" stroke-width="1">
                                            <animate attributeName="opacity" values="0.12;0.28;0.12" dur="3s" repeatCount="indefinite"/>
                                        </path>
                                        <path d="M24 120 L52 10" stroke="#fff" opacity="0.12" stroke-width="1">
                                            <animate attributeName="opacity" values="0.12;0.28;0.12" dur="3.2s" repeatCount="indefinite"/>
                                        </path>
                                        <path d="M38 120 L66 10" stroke="#fff" opacity="0.12" stroke-width="1">
                                            <animate attributeName="opacity" values="0.12;0.28;0.12" dur="3.4s" repeatCount="indefinite"/>
                                        </path>
                                        <path d="M52 120 L80 10" stroke="#fff" opacity="0.10" stroke-width="1">
                                            <animate attributeName="opacity" values="0.10;0.22;0.10" dur="3.1s" repeatCount="indefinite"/>
                                        </path>
                                    </g>

                                    <!-- Comets -->
                                    <g id="footer-comets">
                                        <g>
                                            <path d="M-20 40 C-8 34, 6 28, 16 22" stroke="#fff" stroke-opacity="0.12" stroke-width="1" fill="none">
                                                <animate attributeName="stroke-opacity" values="0.08;0.22;0.08" dur="3s" repeatCount="indefinite"/>
                                            </path>
                                            <circle cx="16" cy="22" r="1.6" fill="#fff">
                                                <animate attributeName="opacity" values="0.4;1;0.4" dur="3s" repeatCount="indefinite"/>
                                            </circle>
                                        </g>
                                        <g>
                                            <path d="M-10 20 C0 15, 10 10, 18 6" stroke="#ffd54d" stroke-opacity="0.1" stroke-width="1" fill="none">
                                                <animate attributeName="stroke-opacity" values="0.06;0.2;0.06" dur="3.2s" repeatCount="indefinite"/>
                                            </path>
                                            <circle cx="18" cy="6" r="1.2" fill="#ffd54d">
                                                <animate attributeName="opacity" values="0.3;1;0.3" dur="3.2s" repeatCount="indefinite"/>
                                            </circle>
                                        </g>
                                    </g>

                                    <!-- Rocket group: bobbing animation applied to the whole rocket -->
                                    <g id="footer-rocket" transform="translate(0,0)">
                                        <animateTransform attributeName="transform" attributeType="XML" type="translate" dur="1.6s" values="0 0; 0 -3; 0 0" repeatCount="indefinite" />

                                        <!-- Main body -->
                                        <path d="M48 30 C52 22, 68 22, 72 30 L78 72 C78 78, 70 92, 60 92 C50 92, 42 78, 42 72 Z" fill="#6366f1" stroke="#0b1220" stroke-width="0.6" />

                                        <!-- Nose cone -->
                                        <polygon points="48,30 60,12 72,30" fill="#4f46e5" stroke="#0b1220" stroke-width="0.5" />

                                        <!-- Window with shimmer -->
                                        <ellipse cx="60" cy="52" rx="8" ry="9" fill="#e0f7ff" stroke="#0284c7" stroke-width="0.9" />
                                        <ellipse class="window-shine" cx="64" cy="46" rx="4.5" ry="2.5" fill="#ffffff" fill-opacity="0.18" transform="rotate(-25 64 46)">
                                            <animate attributeName="opacity" values="0;0.18;0" dur="2.2s" repeatCount="indefinite" />
                                            <animateTransform attributeName="transform" type="translate" values="0 0; 0 -1.5; 0 0" dur="2.2s" repeatCount="indefinite"/>
                                        </ellipse>

                                        <!-- small rivets -->
                                        <circle cx="52" cy="40" r="0.6" fill="#ffffff" fill-opacity="0.12" />
                                        <circle cx="52" cy="44" r="0.5" fill="#ffffff" fill-opacity="0.08" />
                                        <circle cx="68" cy="40" r="0.6" fill="#ffffff" fill-opacity="0.08" />

                                        <!-- Fins -->
                                        <polygon points="48,64 32,78 46,74" fill="#5b4ce6" stroke="#0b1220" stroke-width="0.5" />
                                        <polygon points="72,64 88,78 74,74" fill="#5b4ce6" stroke="#0b1220" stroke-width="0.5" />

                                        <!-- Thruster -->
                                        <ellipse cx="60" cy="86" rx="10" ry="4.5" fill="#0b1220" opacity="0.9" />

                                        <!-- Layered flame: flicker animation on opacity -->
                                        <g id="footer-flames">
                                            <path class="flame1" d="M54 86 C56 100, 58 104, 60 106 C62 104, 64 100, 66 86 C62 96, 58 96, 54 86 Z" fill="#ffd54d" opacity="0.95">
                                                <animate attributeName="opacity" values="0.6;0.95;0.6" dur="0.7s" repeatCount="indefinite"/>
                                            </path>
                                            <path class="flame2" d="M56 88 C58 98, 60 102, 60 104 C60 102, 62 98, 64 88 C60 96, 60 96, 56 88 Z" fill="#ffd54d" opacity="0.85">
                                                <animate attributeName="opacity" values="0.5;0.85;0.5" dur="0.6s" repeatCount="indefinite"/>
                                            </path>
                                            <path class="flame3" d="M58 92 C59 98, 60 100, 60 101 C60 100, 61 98, 62 92 C60 96, 60 96, 58 92 Z" fill="#fff59b" opacity="0.9">
                                                <animate attributeName="opacity" values="0.4;0.9;0.4" dur="0.55s" repeatCount="indefinite"/>
                                            </path>
                                        </g>

                                    </g>
                                </svg>
                                <div class="brand-meta">
                                    <h3>Startup School TV</h3>
                                    <p>Democratising access to world-class startup education. Learn from those who've built successful businesses and join a global community of entrepreneurs.</p>
                                </div>
                
                <!-- acquisition notice moved to footer end -->
                
                
            </div>
            <div class="footer-links">
                <h4>Products</h4>
                <ul>
                    <li><a href="#products">Video Curriculum</a></li>
                    <li><a href="#products">AI Mentorship</a></li>
                    <li><a href="#products">Community</a></li>
                    <li><a href="#products">Certifications</a></li>
                    <li><a href="#products">Enterprise</a></li>
                </ul>
            </div>
            <div class="footer-links">
                <h4>Company</h4>
                <ul>
                    <li><a href="#about">About Us</a></li>
                    <li><a href="#">Careers</a></li>
                    <li><a href="#">Instructors</a></li>
                    <li><a href="#">Partners</a></li>
                    <li><a href="#contact">Contact</a></li>
                </ul>
            </div>
            <div class="footer-links">
                <h4>Resources</h4>
                <ul>
                    <li><a href="#">Blog</a></li>
                    <li><a href="#">Podcast</a></li>
                    <li><a href="#">Success Stories</a></li>
                    <li><a href="#">Help Centre</a></li>
                    <li><a href="#">Terms & Privacy</a></li>
                </ul>
            </div>
        </div>
        <div class="footer-bottom">
            <p>&copy; <span id="copyright-year">2026</span> Startup School TV Limited. All rights reserved. Registered in England and Wales.</p>
            <div class="footer-socials" style="margin-top:0.75rem;">
                <a href="#" class="social-link" aria-label="LinkedIn">
                    <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24"><path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"/></svg>
                </a>
                <a href="#" class="social-link" aria-label="Twitter">
                    <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24"><path d="M23 3a10.9 10.9 0 01-3.14 1.53 4.48 4.48 0 00-7.86 3v1A10.66 10.66 0 013 4s-4 9 5 13a11.64 11.64 0 01-7 2c9 5 20 0 20-11.5a4.5 4.5 0 00-.08-.83A7.72 7.72 0 0023 3z"/></svg>
                </a>
                <a href="#" class="social-link" aria-label="YouTube">
                    <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg>
                </a>
                <a href="#" class="social-link" aria-label="Instagram">
                    <svg width="20" height="20" fill="currentColor" viewBox="0 0 24 24"><path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"/></svg>
                </a>
            </div>
        </div>
        <div class="acquisition-notice" style="margin:1.25rem 0 0;">
            🚀 <strong>DEMO: Acquisition or Partnership Opportunities</strong>
            <span style="margin:0 0.5rem;">|</span>
            <a href="mailto:Contact@BrandingSME.com">Contact@BrandingSME.com</a>
        </div>
    </footer>

    <!-- StartupGPT Demo Modal -->
    <div class="modal-overlay" id="startupGPTModal">
        <div class="modal">
            <div class="modal-header">
                <h2>StartupGPT Live Demo</h2>
                <button class="close-modal" id="closeModal">&times;</button>
            </div>
            <div class="modal-body">
                <div class="ai-demo">
                    <div class="ai-header">
                        <div class="ai-badge">AI</div>
                        <div>
                            <div class="ai-title">StartupGPT</div>
                            <p class="ai-subtitle">Your AI startup mentor</p>
                        </div>
                    </div>
                    
                    <div class="chat-bubble">
                        <p><strong>You:</strong> "How do I validate my startup idea?"</p>
                    </div>
                    
                    <div class="chat-bubble ai">
                        <p><strong>StartupGPT:</strong> Great question! Here's a practical validation framework:</p>
                        <ul>
                            <li><strong>Problem interviews:</strong> Talk to 20-30 potential customers</li>
                            <li><strong>Landing page test:</strong> Measure conversion interest</li>
                            <li><strong>MVP launch:</strong> Build minimal version in 2-4 weeks</li>
                            <li><strong>Pre-sales:</strong> Get 5-10 paying customers before building</li>
                        </ul>
                        <p class="chat-cta">→ Want me to create a custom validation plan for your idea?</p>
                    </div>
                    
                    <div class="ai-buttons">
                        <button class="ai-button">Try StartupGPT</button>
                        <button class="ai-button secondary">See More Examples</button>
                    </div>
                </div>
                
                <div class="chat-bubble">
                    <p><strong>You:</strong> "What should I include in my pitch deck?"</p>
                </div>
                
                <div class="chat-bubble ai">
                    <p><strong>StartupGPT:</strong> A compelling pitch deck should include:</p>
                    <ul>
                        <li><strong>Problem:</strong> The specific pain point you're solving</li>
                        <li><strong>Solution:</strong> How your product addresses the problem</li>
                        <li><strong>Market size:</strong> TAM, SAM, SOM analysis</li>
                        <li><strong>Business model:</strong> How you make money</li>
                        <li><strong>Team:</strong> Why you're the right team to solve this</li>
                        <li><strong>Traction:</strong> Key metrics and milestones</li>
                        <li><strong>Ask:</strong> What you're raising and how it will be used</li>
                    </ul>
                    <p class="chat-cta">→ I can help you structure each section based on your specific business!</p>
                </div>
            </div>
            <div class="modal-footer">
                <p>Ready to get personalized startup advice? <a href="#pricing" style="color: var(--primary-color); font-weight: 600;">Start your free trial</a> for full access to StartupGPT.</p>
            </div>
        </div>
    </div>

    <!-- Schema.org Structured Data -->
    <script type="application/ld+json">
    {
        "@context": "https://schema.org",
        "@type": "EducationalOrganization",
            "name": "Startup School TV",
        "description": "Premium online education platform for entrepreneurs offering 500+ hours of expert-led courses, AI-powered mentorship, and a global community.",
        "url": "https://startupschool.tv",
        "logo": "https://startupschool.tv/logo.png",
        "sameAs": [
            "https://linkedin.com/company/startupschool",
            "https://twitter.com/startupschool",
            "https://youtube.com/@startupschool"
        ],
        "contactPoint": {
            "@type": "ContactPoint",
            "email": "hello@startupschool.com",
            "contactType": "Customer Service",
            "areaServed": "Worldwide",
            "availableLanguage": ["English"]
        },
        "offers": {
            "@type": "AggregateOffer",
            "priceCurrency": "GBP",
            "lowPrice": "0",
            "highPrice": "499",
            "offerCount": "4"
        },
        "address": {
            "@type": "PostalAddress",
            "addressLocality": "London",
            "addressCountry": "GB"
        }
    }
    </script>
    <script>
    // Custom cursor with GPU-friendly sparks, ripple and hover-intensified glow
    (function setupCustomCursor(){
        // robust detection for touch / coarse pointers
        if (typeof window === 'undefined') return;
        const isTouchCapable = ('ontouchstart' in window) || (navigator.maxTouchPoints && navigator.maxTouchPoints > 0) || (navigator.msMaxTouchPoints && navigator.msMaxTouchPoints > 0);
        const mqHoverNone = window.matchMedia && window.matchMedia('(hover: none)').matches;
        const mqPointerCoarse = window.matchMedia && window.matchMedia('(pointer: coarse)').matches;
        const isCoarse = isTouchCapable || mqHoverNone || mqPointerCoarse;

        const body = document.body;
        // we won't add cursor-enabled class until we confirm we're not on a coarse device

        // Elements: cursor dot + ring
        const dot = document.createElement('div'); dot.className = 'cursor-dot';
        const ring = document.createElement('div'); ring.className = 'cursor-ring';
        // append to the top-level element to avoid stacking context clipping
        const mount = document.documentElement || document.body;
        mount.appendChild(ring);
        mount.appendChild(dot);
        // ensure visible via inline styles (robust against stacking contexts)
        [dot, ring].forEach(el => {
            el.style.zIndex = '2147483647';
            el.style.pointerEvents = 'none';
            el.style.opacity = '1';
            el.style.display = 'block';
        });

        // Sparks canvas (GPU-friendly drawing)
        const canvas = document.createElement('canvas'); canvas.className = 'cursor-sparks-canvas';
        // mount canvas at top-level to ensure visibility
        mount.appendChild(canvas);
        canvas.style.zIndex = '2147483646';
        const ctx = canvas.getContext('2d', { alpha: true });

        // If device is coarse/touch-capable, hide the custom cursor elements and stop
        if (isCoarse) {
            [dot, ring, canvas].forEach(el => { try{ el.style.display = 'none'; }catch(e){} });
            return;
        }

        // enable cursor mode on body (hides native cursor via CSS)
        body.classList.add('cursor-enabled');

        // device pixel ratio handling
        let DPR = Math.max(1, window.devicePixelRatio || 1);
        function resize(){
            DPR = Math.max(1, window.devicePixelRatio || 1);
            canvas.width = Math.round(window.innerWidth * DPR);
            canvas.height = Math.round(window.innerHeight * DPR);
            canvas.style.width = window.innerWidth + 'px';
            canvas.style.height = window.innerHeight + 'px';
            ctx && ctx.setTransform(DPR, 0, 0, DPR, 0, 0);
        }
        resize();
        window.addEventListener('resize', resize, { passive: true });

        // particle pool for sparks and ripples
        const MAX_PARTICLES = 60; // cap for performance
        const particles = new Array(MAX_PARTICLES).fill(null).map(() => ({
            alive: false, x:0, y:0, vx:0, vy:0, life:0, ttl:0, size:0, color: 'rgba(255,255,255,0.9)'
        }));

        function spawnSpark(x,y, intensity=1){
            // find inactive particle
            for (let i=0;i<MAX_PARTICLES;i++){
                const p = particles[i]; if (p.alive) continue;
                p.alive = true; p.x = x; p.y = y;
                const speed = (Math.random()*1.6 + 0.6) * intensity;
                const angle = Math.random() * Math.PI * 2;
                p.vx = Math.cos(angle) * speed; p.vy = Math.sin(angle) * speed - (Math.random()*0.6);
                p.ttl = 350 + Math.random()*350; p.life = 0; p.size = 1 + Math.random()*3 * intensity;
                p.color = `hsla(${220 + Math.random()*60}, 90%, ${60 - Math.random()*18}%, 1)`;
                break;
            }
        }

        // click ripple objects
        const ripples = [];

        function spawnRipple(x,y){
            ripples.push({x,y,r:6,alpha:0.6,ttl:500});
            // emit a burst of sparks
            const bursts = 8 + Math.round(Math.random()*6);
            for (let i=0;i<bursts;i++) spawnSpark(x, y, 1.2);
        }

        // trailing cursor smoothing
        let mouseX = window.innerWidth/2, mouseY = window.innerHeight/2;
        let lastX = mouseX, lastY = mouseY;

        // interactive hover detection selectors
        const hoverSelectors = 'a, button, .cta-button, .nav-links a, input, .product-card a, .learn-more';

        let hoverState = false;
        function setHover(state){
            hoverState = state;
            if (state) document.documentElement.classList.add('cursor-hover');
            else document.documentElement.classList.remove('cursor-hover');
        }

        // listeners for hover on interactive elements
        document.querySelectorAll(hoverSelectors).forEach(el => {
            el.addEventListener('mouseenter', ()=> setHover(true));
            el.addEventListener('mouseleave', ()=> setHover(false));
        });

        // pointer movement
        let lastMoveTime = 0;
        window.addEventListener('pointermove', (e) => {
            mouseX = e.clientX; mouseY = e.clientY; lastMoveTime = performance.now();
            // emit small number of sparks on fast movement (throttled)
            const now = performance.now();
            if (now - (window._lastSpark || 0) > 36){ // ~28fps bursts
                spawnSpark(mouseX, mouseY, 0.9);
                window._lastSpark = now;
            }
        }, { passive: true });

        // click ripple
        window.addEventListener('pointerdown', (e) => {
            spawnRipple(e.clientX, e.clientY);
        }, { passive: true });

        // animation loop
        let lastTime = performance.now();
        function step(now){
            const dt = Math.min(40, now - lastTime); lastTime = now;

            // smooth trailing cursor (lerp)
            const t = 0.18;
            lastX += (mouseX - lastX) * t;
            lastY += (mouseY - lastY) * t;
            dot.style.transform = `translate(${lastX}px, ${lastY}px) translate(-50%, -50%)`;
            ring.style.transform = `translate(${mouseX}px, ${mouseY}px) translate(-50%, -50%)`;

            // draw canvas
            ctx.clearRect(0,0, canvas.width / DPR, canvas.height / DPR);
            ctx.globalCompositeOperation = 'lighter';

            // update particles
            for (let i=0;i<MAX_PARTICLES;i++){
                const p = particles[i]; if (!p.alive) continue;
                p.life += dt; if (p.life >= p.ttl){ p.alive = false; continue; }
                // physics
                p.vy += 0.02 * (dt/16); p.x += p.vx * (dt/16) * 1.2; p.y += p.vy * (dt/16) * 1.2;
                const lifeRatio = 1 - (p.life / p.ttl);
                const alpha = Math.max(0, lifeRatio);
                const size = p.size * (1 + (1-lifeRatio)*1.6);
                // draw glow circle
                ctx.beginPath();
                const g = ctx.createRadialGradient(p.x, p.y, 0, p.x, p.y, size*3);
                g.addColorStop(0, p.color.replace(/,\s*1\)/g, ', 1)'));
                g.addColorStop(0.2, p.color.replace(/,\s*1\)/g, ', 0.7)'));
                g.addColorStop(1, p.color.replace(/,\s*1\)/g, ', 0)'));
                ctx.fillStyle = g; ctx.fillRect(p.x - size*3, p.y - size*3, size*6, size*6);
            }

            // update ripples
            for (let i = ripples.length - 1; i >= 0; i--){
                const r = ripples[i]; r.r += dt * 0.06 * (1 + Math.random()*0.4); r.ttl -= dt; r.alpha *= 0.995;
                if (r.ttl <= 0 || r.alpha < 0.02) { ripples.splice(i,1); continue; }
                ctx.beginPath(); ctx.strokeStyle = `rgba(124,58,237,${r.alpha * 0.45})`; ctx.lineWidth = 2; ctx.arc(r.x, r.y, r.r, 0, Math.PI*2); ctx.stroke();
            }

            requestAnimationFrame(step);
        }

        requestAnimationFrame(step);

        // cleanup on unload
        window.addEventListener('pagehide', () => {
            try { canvas.remove(); dot.remove(); ring.remove(); } catch(e){}
        });

    })();
    </script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
    <script>
        // Enhanced Three.js Background with Glow Effects and Top-Focused Particles
        document.addEventListener('DOMContentLoaded', function() {
            // Loading screen management
            const loadingScreen = document.getElementById('loadingScreen');
            
            // Show loading screen immediately (guarded)
            if (loadingScreen) loadingScreen.classList.remove('hidden');
            
                // SCENE SETUP (guarded: skip Three.js if canvas or library missing)
                const threeCanvas = document.getElementById('three-canvas');
                if (threeCanvas && typeof THREE !== 'undefined') {
                    const scene = new THREE.Scene();
                    const camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 1, 2000);
                    const renderer = new THREE.WebGLRenderer({
                        canvas: threeCanvas,
                        alpha: true,
                        antialias: true,
                        powerPreference: "high-performance"
                    });

                    renderer.setSize(window.innerWidth, window.innerHeight);
                    renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
                    renderer.setClearColor(0x000000, 0);

            // PARTICLE SYSTEM WITH GLOW
            const particleCount = 250;
            const particles = new THREE.BufferGeometry();
            const positions = new Float32Array(particleCount * 3);
            const colors = new Float32Array(particleCount * 3);
            const sizes = new Float32Array(particleCount);
            const velocities = [];
            const originalColors = [];
            const glowIntensities = new Float32Array(particleCount);

            // Enhanced color palette with brighter colors for better glow
            const mainColor = new THREE.Color(0x6366f1);
            const accentColor1 = new THREE.Color(0xec4899);
            const accentColor2 = new THREE.Color(0x14b8a6);
            const highlightColor = new THREE.Color(0xfbbf24);
            const glowColor = new THREE.Color(0x8b5cf6);

            // Compute a world radius based on viewport so particles cover the visible area
            const vpMax = Math.max(window.innerWidth, window.innerHeight);
            const worldRadius = Math.max(600, Math.round(vpMax * 0.6));

            for (let i = 0; i < particleCount; i++) {
                const i3 = i * 3;
                // Spread particles across a wide X/Z area and a tall Y range
                positions[i3] = (Math.random() - 0.5) * worldRadius * 2; // x
                positions[i3 + 1] = Math.random() * (window.innerHeight * 1.4) - (window.innerHeight * 0.2); // y
                positions[i3 + 2] = (Math.random() - 0.5) * worldRadius; // z
                
                // Enhanced color assignment with brighter variants
                const colorChoice = Math.random();
                let color;
                if (colorChoice < 0.5) {
                    color = mainColor.clone().multiplyScalar(1.2);
                } else if (colorChoice < 0.75) {
                    color = accentColor1.clone().multiplyScalar(1.3);
                } else {
                    color = accentColor2.clone().multiplyScalar(1.4);
                }

                colors[i3] = color.r;
                colors[i3 + 1] = color.g;
                colors[i3 + 2] = color.b;
                
                originalColors[i3] = color.r;
                originalColors[i3 + 1] = color.g;
                originalColors[i3 + 2] = color.b;

                sizes[i] = Math.random() * 2.5 + 1.0;
                glowIntensities[i] = Math.random() * 0.8 + 0.2;
                
                velocities.push({
                    x: (Math.random() - 0.5) * 0.08,
                    // gentler upward drift: smaller positive Y bias
                    y: Math.random() * 0.04 + 0.01, // range ~[0.01, 0.05]
                    z: (Math.random() - 0.3) * 0.2
                });
            }

            particles.setAttribute('position', new THREE.BufferAttribute(positions, 3));
            particles.setAttribute('color', new THREE.BufferAttribute(colors, 3));
            particles.setAttribute('size', new THREE.BufferAttribute(sizes, 1));
            particles.setAttribute('glowIntensity', new THREE.BufferAttribute(glowIntensities, 1));

                // create a soft radial sprite for particles
                function createParticleTexture(size = 64) {
                    const c = document.createElement('canvas');
                    c.width = c.height = size;
                    const ctx = c.getContext('2d');
                    const grd = ctx.createRadialGradient(size/2, size/2, 0, size/2, size/2, size/2);
                    grd.addColorStop(0, 'rgba(255,255,255,1)');
                    grd.addColorStop(0.2, 'rgba(200,180,255,0.9)');
                    grd.addColorStop(0.45, 'rgba(120,90,220,0.6)');
                    grd.addColorStop(1, 'rgba(0,0,0,0)');
                    ctx.fillStyle = grd;
                    ctx.fillRect(0,0,size,size);
                    const tex = new THREE.CanvasTexture(c);
                    tex.minFilter = THREE.LinearFilter;
                    tex.magFilter = THREE.LinearFilter;
                    tex.needsUpdate = true;
                    return tex;
                }

                const particleSprite = createParticleTexture(128);

                const particleMaterial = new THREE.PointsMaterial({
                    size: 8,
                    map: particleSprite,
                    vertexColors: true,
                    transparent: true,
                    opacity: 0.95,
                    sizeAttenuation: true,
                    blending: THREE.AdditiveBlending,
                    depthWrite: false
                });

                // Glow layer: slightly larger, low-opacity additive layer using same geometry
                const glowMaterial = new THREE.PointsMaterial({
                    size: 20,
                    map: particleSprite,
                    vertexColors: true,
                    transparent: true,
                    opacity: 0.08,
                    sizeAttenuation: true,
                    blending: THREE.AdditiveBlending,
                    depthWrite: false
                });

                const glowSystem = new THREE.Points(particles, glowMaterial);
                scene.add(glowSystem);

                const particleSystem = new THREE.Points(particles, particleMaterial);
                scene.add(particleSystem);

            // ADD FLOATING GEOMETRIES FOR ADDED VISUAL INTEREST
            const geometries = [];
            const geometryMaterials = [];
            
            const geometryTypes = [
                () => new THREE.OctahedronGeometry(8, 0),
                () => new THREE.TetrahedronGeometry(6),
                () => new THREE.IcosahedronGeometry(5, 0)
            ];
            
            for (let i = 0; i < 6; i++) {
                const geometry = geometryTypes[i % geometryTypes.length]();
                // use a slightly more advanced material so lights can affect these meshes
                const material = new THREE.MeshStandardMaterial({
                    color: new THREE.Color().setHSL(Math.random() * 0.3 + 0.5, 0.7, 0.6),
                    transparent: true,
                    opacity: 0.14,
                    metalness: 0.25,
                    roughness: 0.6,
                    emissive: new THREE.Color(0x111022),
                    side: THREE.DoubleSide
                });
                
                const mesh = new THREE.Mesh(geometry, material);
                mesh.position.set(
                    (Math.random() - 0.5) * 300,
                    (Math.random() - 0.2) * 200 + 50,
                    (Math.random() - 0.5) * 200 - 100
                );
                mesh.rotation.set(
                    Math.random() * Math.PI,
                    Math.random() * Math.PI,
                    Math.random() * Math.PI
                );
                
                geometries.push(mesh);
                geometryMaterials.push(material);
                scene.add(mesh);
            }

            // Add lighting for better highlights and glow
            const hemi = new THREE.HemisphereLight(0x8899ff, 0x222233, 0.35);
            scene.add(hemi);
            const ambient = new THREE.AmbientLight(0xffffff, 0.12);
            scene.add(ambient);
            const movingLight = new THREE.PointLight(0xffffff, 0.9, 600, 2);
            movingLight.position.set(0, 120, 120);
            scene.add(movingLight);

            // ANIMATION LOGIC WITH ENHANCED INTERACTIONS
            const particlePositions = particles.attributes.position.array;
            const particleColors = particles.attributes.color.array;
            const mouse = new THREE.Vector2();
            const mouseInfluence = 25;
            
            let scrollY = 0;
            let targetScrollY = 0;

            // Mouse interaction
            window.addEventListener('mousemove', (event) => {
                mouse.x = (event.clientX / window.innerWidth) * 2 - 1;
                mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;
                // move the point light for dynamic highlights (if present)
                if (typeof movingLight !== 'undefined' && movingLight) {
                    movingLight.position.x = mouse.x * 220;
                    movingLight.position.y = Math.max(40, mouse.y * 140 + 100);
                }
            });

            // Scroll tracking
            window.addEventListener('scroll', () => {
                targetScrollY = window.pageYOffset;
            });

            camera.position.z = 180;

            // PULSING GLOW EFFECT
            let glowPulse = 0;

            // ANIMATION LOOP
            function animate() {
                requestAnimationFrame(animate);

                const time = Date.now() * 0.001;
                glowPulse = Math.sin(time * 2) * 0.1 + 0.9;

                // Smooth scroll tracking
                scrollY += (targetScrollY - scrollY) * 0.03;

                // Animate particles with enhanced behavior
                for (let i = 0; i < particleCount; i++) {
                    const i3 = i * 3;
                    
                    particlePositions[i3] += velocities[i].x;
                    particlePositions[i3 + 1] += velocities[i].y + Math.sin(time + i) * 0.02;
                    particlePositions[i3 + 2] += velocities[i].z;
                    
                    const dx = particlePositions[i3] - (mouse.x * mouseInfluence);
                    const dy = particlePositions[i3 + 1] - (mouse.y * mouseInfluence);
                    const distanceToMouse = Math.sqrt(dx * dx + dy * dy);

                    const maxDistance = 20;
                    if (distanceToMouse < maxDistance) {
                        const force = (maxDistance - distanceToMouse) / maxDistance;
                        particlePositions[i3] += (dx / distanceToMouse) * force * 2;
                        particlePositions[i3 + 1] += (dy / distanceToMouse) * force * 2;
                        
                        const intensity = 1 - (distanceToMouse / maxDistance);
                        const glowFactor = intensity * glowPulse;
                        
                        particleColors[i3] = glowColor.r * glowFactor + originalColors[i3] * (1 - glowFactor);
                        particleColors[i3 + 1] = glowColor.g * glowFactor + originalColors[i3 + 1] * (1 - glowFactor);
                        particleColors[i3 + 2] = glowColor.b * glowFactor + originalColors[i3 + 2] * (1 - glowFactor);
                        
                        particleMaterial.size = 7 * (1 + intensity * 0.6);
                    } else {
                            const pulseEffect = 0.1 * Math.sin(time * 3 + i * 0.1) + 0.9;
                            particleColors[i3] = originalColors[i3] * pulseEffect;
                            particleColors[i3 + 1] = originalColors[i3 + 1] * pulseEffect;
                            particleColors[i3 + 2] = originalColors[i3 + 2] * pulseEffect;
                            // gentle base size when not interacting
                            if (particleMaterial) particleMaterial.size = 7 + Math.sin(time * 0.5) * 0.9;
                    }
                    
                    if (particlePositions[i3 + 1] < -150 || 
                        Math.sqrt(particlePositions[i3] * particlePositions[i3] + 
                                 particlePositions[i3 + 1] * particlePositions[i3 + 1] + 
                                 particlePositions[i3 + 2] * particlePositions[i3 + 2]) > 400) {
                        
                        const theta = Math.random() * Math.PI * 2;
                        const phi = Math.acos((Math.random() * 1.2) - 1);
                        
                        // respawn across the full world area so coverage remains consistent
                        particlePositions[i3] = (Math.random() - 0.5) * worldRadius * 2;
                        particlePositions[i3 + 1] = Math.random() * (window.innerHeight * 1.2) - (window.innerHeight * 0.2);
                        particlePositions[i3 + 2] = (Math.random() - 0.5) * worldRadius;
                        
                        velocities[i].x = (Math.random() - 0.5) * 0.08;
                        // gentler upward bias on respawn
                        velocities[i].y = Math.random() * 0.04 + 0.01;
                        velocities[i].z = Math.random() * 0.2 + 0.1;
                    }
                }

                particles.attributes.position.needsUpdate = true;
                particles.attributes.color.needsUpdate = true;

                // Animate floating geometries
                geometries.forEach((geom, index) => {
                    geom.rotation.x += 0.005 + index * 0.001;
                    geom.rotation.y += 0.003 + index * 0.002;
                    geom.position.y += Math.sin(time + index) * 0.1;
                    
                    geometryMaterials[index].opacity = 0.1 + Math.sin(time * 0.5 + index) * 0.05;
                });

                particleSystem.rotation.y = time * 0.02 + (mouse.x * 0.02);
                particleSystem.rotation.x = time * 0.015 + (mouse.y * 0.01) + (scrollY * 0.00005);
                // also rotate the glow layer slightly for a richer look
                if (glowSystem) {
                    glowSystem.rotation.y = particleSystem.rotation.y * 0.98;
                    glowSystem.rotation.x = particleSystem.rotation.x * 0.98;
                }

                camera.position.x += (mouse.x * 20 - camera.position.x) * 0.02;
                camera.position.y += (mouse.y * 15 - camera.position.y) * 0.02 + (scrollY * 0.001);
                camera.lookAt(scene.position);

                renderer.render(scene, camera);
            }
            
                // Start animation and hide loading screen when ready
                setTimeout(() => {
                    animate();
                    if (loadingScreen) loadingScreen.classList.add('hidden');
                }, 1000);

                // Handle window resize
                window.addEventListener('resize', function() {
                    camera.aspect = window.innerWidth / window.innerHeight;
                    camera.updateProjectionMatrix();
                    renderer.setSize(window.innerWidth, window.innerHeight);
                });
            } else {
                // If Three.js or canvas not available, hide loading screen after short delay
                setTimeout(() => { if (loadingScreen) loadingScreen.classList.add('hidden'); }, 600);
                if (!threeCanvas) console.warn('three-canvas element not found; background visuals disabled');
                if (typeof THREE === 'undefined') console.warn('THREE.js not loaded; background visuals disabled');
            }
        });

        // Modal functionality
        document.addEventListener('DOMContentLoaded', function() {
            const modal = document.getElementById('startupGPTModal');
            const tryButton = document.getElementById('tryStartupGPT');
            const closeButton = document.getElementById('closeModal');

            if (modal && tryButton && closeButton) {
                // Open modal when Try Startup GPT button is clicked
                tryButton.addEventListener('click', function() {
                    modal.classList.add('active');
                    document.body.style.overflow = 'hidden'; // Prevent scrolling
                });

                // Close modal when close button is clicked
                closeButton.addEventListener('click', function() {
                    modal.classList.remove('active');
                    document.body.style.overflow = ''; // Restore scrolling
                });

                // Close modal when clicking outside the modal
                modal.addEventListener('click', function(e) {
                    if (e.target === modal) {
                        modal.classList.remove('active');
                        document.body.style.overflow = ''; // Restore scrolling
                    }
                });

                // Close modal with Escape key
                document.addEventListener('keydown', function(e) {
                    if (e.key === 'Escape' && modal.classList.contains('active')) {
                        modal.classList.remove('active');
                        document.body.style.overflow = ''; // Restore scrolling
                    }
                });
            }
        });

        // Cookie Consent Functionality
        document.addEventListener('DOMContentLoaded', function() {
            const cookieConsent = document.getElementById('cookieConsent');
            const cookieAccept = document.getElementById('cookieAccept');
            const cookieReject = document.getElementById('cookieReject');

            if (!cookieConsent) return;

            // Check if user has already made a choice
            if (!localStorage.getItem('cookieConsent')) {
                setTimeout(() => {
                    cookieConsent.classList.add('show');
                }, 2000);
            }

            if (cookieAccept) {
                cookieAccept.addEventListener('click', function() {
                    localStorage.setItem('cookieConsent', 'accepted');
                    cookieConsent.classList.remove('show');
                    // Initialize analytics and marketing cookies
                    initializeTracking();
                });
            }

            if (cookieReject) {
                cookieReject.addEventListener('click', function() {
                    localStorage.setItem('cookieConsent', 'rejected');
                    cookieConsent.classList.remove('show');
                    // Only initialize essential cookies
                });
            }

            function initializeTracking() {
                // Placeholder for analytics initialization
                console.debug('Analytics and marketing cookies initialized');
            }
        });

        // Performance Monitoring
        if ('performance' in window) {
            // Log Largest Contentful Paint (guard entries)
            new PerformanceObserver((entryList) => {
                const entries = entryList.getEntries();
                if (!entries || entries.length === 0) return;
                const lastEntry = entries[entries.length - 1];
                if (lastEntry) {
                    console.debug('LCP:', lastEntry.renderTime || lastEntry.loadTime || lastEntry.startTime);
                }
            }).observe({entryTypes: ['largest-contentful-paint']});

            // Log First Input Delay
            new PerformanceObserver((entryList) => {
                for (const entry of entryList.getEntries()) {
                    const delay = entry.processingStart - entry.startTime;
                    console.debug('FID:', delay);
                }
            }).observe({entryTypes: ['first-input']});
        }

        // Service Worker Registration for PWA capabilities
        if ('serviceWorker' in navigator) {
            window.addEventListener('load', function() {
                navigator.serviceWorker.register('/sw.js').then(function(registration) {
                    console.debug('ServiceWorker registration successful');
                }, function(err) {
                    console.warn('ServiceWorker registration failed: ', err);
                });
            });
        }

        // Security Headers (would be implemented server-side)
        // Content Security Policy would be set via HTTP headers

        // Enhanced error tracking
        window.addEventListener('error', function(e) {
            // In a real implementation, this would send to an error tracking service
            console.error('Error occurred:', e.error);
        });

        // Scroll to Top Button Functionality
        const scrollToTopBtn = document.getElementById('scrollToTop');
        if (scrollToTopBtn) {
            window.addEventListener('scroll', () => {
                if (window.pageYOffset > 300) {
                    scrollToTopBtn.style.display = 'flex';
                } else {
                    scrollToTopBtn.style.display = 'none';
                }
            }, { passive: true });

            scrollToTopBtn.addEventListener('click', () => {
                window.scrollTo({
                    top: 0,
                    behavior: 'smooth'
                });
            });
        }

        // Contact form handling (mock)
        const contactForm = document.getElementById('contactForm');
        if (contactForm) {
            contactForm.addEventListener('submit', function(e){
                e.preventDefault();
                const msg = document.getElementById('contactFormMsg');
                if (msg) {
                    msg.style.display = 'block';
                    setTimeout(() => { msg.style.display = 'none'; contactForm.reset(); }, 2400);
                } else {
                    // fallback: just reset
                    contactForm.reset();
                }
            });
        }

        // Progress ring for scroll-to-top button (full page progress)
        (function(){
            const ring = document.querySelector('#scrollToTop .progress-ring-circle');
            if (!ring) return;
            const r = parseFloat(ring.getAttribute('r')) || 20;
            const circumference = 2 * Math.PI * r;
            ring.style.strokeDasharray = `${circumference} ${circumference}`;
            ring.style.strokeDashoffset = `${circumference}`;

            function setProgress(percent){
                const offset = circumference * (1 - percent);
                ring.style.strokeDashoffset = offset;
            }

            let tickingRing = false;
            function onScrollRing(){
                if (tickingRing) return;
                tickingRing = true;
                requestAnimationFrame(() => {
                    const vh = window.innerHeight;
                    const docH = document.documentElement.scrollHeight;
                    const scrollY = window.scrollY || window.pageYOffset;
                    const percent = docH - vh > 0 ? clamp(scrollY / (docH - vh), 0, 1) : 0;
                    setProgress(percent);
                    tickingRing = false;
                });
            }

            // Reuse clamp from above; if not present define one
            function clamp(v, a, b){ return Math.max(a, Math.min(b, v)); }

            window.addEventListener('scroll', onScrollRing, { passive: true });
            window.addEventListener('resize', onScrollRing, { passive: true });
            // initialize
            onScrollRing();
        })();

        // Navigation scroll effect
        const navbar = document.getElementById('navbar');
        const topBanner = document.getElementById('top-banner');
        let lastScrollTop = 0;

        window.addEventListener('scroll', () => {
            const scrollTop = window.pageYOffset || document.documentElement.scrollTop;

            if (navbar) {
                if (scrollTop > 50) {
                    navbar.classList.add('scrolled');
                } else {
                    navbar.classList.remove('scrolled');
                }
            }

            if (topBanner) {
                // Only hide the demo acquisition header on scroll down — keep the navbar visible
                const demoHeaderText = '💡DEMO: 🚀 Acquisition or Partnership Opportunities | Contact@BrandingSME.com';
                const isDemoHeader = topBanner.textContent && topBanner.textContent.includes(demoHeaderText);

                if (isDemoHeader && scrollTop > lastScrollTop && scrollTop > 100) {
                    topBanner.classList.add('hidden');
                } else {
                    topBanner.classList.remove('hidden');
                }
            }

            lastScrollTop = scrollTop;
        }, { passive: true });

        // Smooth scrolling
        document.querySelectorAll('.nav-links a[href^="#"]').forEach(anchor => {
            anchor.addEventListener('click', function (e) {
                e.preventDefault();
                const href = this.getAttribute('href');
                const target = document.querySelector(href);
                if (!target) return;
                // compute offset for fixed nav and top banner
                const navHeight = navbar ? navbar.offsetHeight : 0;
                const bannerHeight = (topBanner && !topBanner.classList.contains('hidden')) ? topBanner.offsetHeight : 0;
                const scrollY = window.scrollY || window.pageYOffset;
                const targetY = target.getBoundingClientRect().top + scrollY - navHeight - bannerHeight - 8;
                window.scrollTo({ top: Math.max(0, targetY), behavior: 'smooth' });
            });
        });

        // Scrollspy: highlight current nav link based on section midpoint proximity to viewport center
        (function(){
            const navLinks = Array.from(document.querySelectorAll('.nav-links a[href^="#"]'));
            let spySections = Array.from(document.querySelectorAll('section[id]'));
            if (!spySections.length) return;

            function updateActive(){
                const scrollY = window.scrollY || window.pageYOffset;
                const vh = window.innerHeight;
                const viewportCenter = scrollY + vh / 2;

                let closest = {id: null, distance: Infinity};
                spySections.forEach(s => {
                    const top = s.offsetTop;
                    const mid = top + s.offsetHeight / 2;
                    const dist = Math.abs(mid - viewportCenter);
                    if (dist < closest.distance) { closest = { id: s.id, distance: dist }; }
                });

                if (closest.id) {
                    navLinks.forEach(l => l.classList.toggle('active', l.getAttribute('href') === '#' + closest.id));
                }
            }

            let ticking = false;
            function onScrollSpy(){ if (!ticking){ requestAnimationFrame(() => { updateActive(); ticking = false; }); ticking = true; } }

            window.addEventListener('scroll', onScrollSpy, { passive: true });
            window.addEventListener('resize', () => { spySections = Array.from(document.querySelectorAll('section[id]')); updateActive(); }, { passive: true });
            // initial
            updateActive();
        })();

        // Mobile menu
        const mobileMenuBtn = document.querySelector('.mobile-menu-btn');
        const mobileNav = document.querySelector('.nav-links');

        if (mobileMenuBtn) {
            mobileMenuBtn.addEventListener('click', () => {
                const isExpanded = mobileMenuBtn.getAttribute('aria-expanded') === 'true';
                mobileMenuBtn.setAttribute('aria-expanded', String(!isExpanded));

                if (!mobileNav) return;

                if (mobileNav.style.display === 'flex') {
                    mobileNav.style.display = 'none';
                } else {
                    mobileNav.style.display = 'flex';
                    mobileNav.style.flexDirection = 'column';
                    mobileNav.style.position = 'absolute';
                    mobileNav.style.top = '100%';
                    mobileNav.style.left = '0';
                    mobileNav.style.right = '0';
                    mobileNav.style.background = 'rgba(15, 23, 42, 0.95)';
                    mobileNav.style.padding = '2rem';
                    mobileNav.style.boxShadow = 'var(--shadow-lg)';
                    mobileNav.style.zIndex = '999';
                }
            });
        }

        // Close mobile menu on link click
        document.querySelectorAll('.nav-links a').forEach(link => {
            link.addEventListener('click', () => {
                if (window.innerWidth <= 768) {
                    if (mobileNav) mobileNav.style.display = 'none';
                    if (mobileMenuBtn) mobileMenuBtn.setAttribute('aria-expanded', 'false');
                }
            });
        });

        // Intersection Observer for animations
        const observerOptions = {
            threshold: 0.1,
            rootMargin: '0px 0px -50px 0px'
        };

        const observer = new IntersectionObserver((entries) => {
            entries.forEach(entry => {
                if (entry.isIntersecting) {
                    entry.target.style.opacity = '1';
                    entry.target.style.transform = 'translateY(0)';
                }
            });
        }, observerOptions);

        // Observe cards
        document.querySelectorAll('.product-card, .pricing-card, .mission-card').forEach(card => {
            card.style.opacity = '0';
            card.style.transform = 'translateY(30px)';
            card.style.transition = 'opacity 0.6s ease, transform 0.6s ease';
            observer.observe(card);
        });

        // Enhanced card animations with staggered effect
        document.querySelectorAll('.product-card, .pricing-card, .mission-card').forEach((card, index) => {
            card.style.transitionDelay = `${index * 0.1}s`;
        });

        // Section reveal animation
        const revealSections = document.querySelectorAll('section');
        const sectionObserver = new IntersectionObserver((entries) => {
            entries.forEach(entry => {
                if (entry.isIntersecting) {
                    entry.target.style.opacity = '1';
                    entry.target.style.transform = 'translateY(0)';
                }
            });
        }, { threshold: 0.05 });

        revealSections.forEach(section => {
            if (!section.classList.contains('hero')) {
                section.style.opacity = '0';
                section.style.transform = 'translateY(20px)';
                section.style.transition = 'opacity 0.8s ease, transform 0.8s ease';
                sectionObserver.observe(section);
            }
        });

        // Smooth page load
        window.addEventListener('load', () => {
            document.body.style.opacity = '1';
        });

        console.debug('Startup School TV website loaded with enhanced functionality, SEO, and security.');
    </script>
    <!-- Dot scroll UI: generated dynamically -->
    <div class="dot-scroll" id="dotScroll">
        <div class="page-progress" aria-hidden="true"><div class="fill" id="pageProgressFill"></div></div>
        <ul class="dots" id="dotsList" role="navigation" aria-label="Section navigation"></ul>
    </div>

    <script>
    (function(){
        const pageProgressFill = document.getElementById('pageProgressFill');
        const dotsList = document.getElementById('dotsList');
        let dotSections = Array.from(document.querySelectorAll('section[id]'))
            .filter(s => s.offsetHeight > 0);

        // If the dot-scroll UI is not present, skip this module
        if (!pageProgressFill || !dotsList) return;

        function makeLabel(section){
            if (section.dataset && section.dataset.label) return section.dataset.label;
            const h = section.querySelector('h1, h2, h3');
            if (h && h.textContent && h.textContent.trim()) return h.textContent.trim();
            return section.id ? section.id.replace(/[-_]/g, ' ').replace(/\b\w/g, c => c.toUpperCase()) : 'Section';
        }

        function buildDots(){
            dotsList.innerHTML = '';
            dotSections.forEach((s, i) => {
                const li = document.createElement('li');
                li.className = 'dot-item';
                li.dataset.target = s.id;

                const label = makeLabel(s);

                li.innerHTML = `
                    <button class="dot" aria-label="${label}" data-target="${s.id}">
                        <span class="ring"></span>
                        <span class="inner"></span>
                    </button>
                    <div class="dot-label">${label}</div>
                `;

                li.querySelector('.dot').addEventListener('click', (e) => {
                    e.preventDefault();
                    const targetEl = document.getElementById(s.id);
                    if (targetEl) targetEl.scrollIntoView({ behavior: 'smooth', block: 'start' });
                });

                dotsList.appendChild(li);
            });
        }

        function clamp(v, a, b){ return Math.max(a, Math.min(b, v)); }

        function update(){
            const vh = window.innerHeight;
            const docH = document.documentElement.scrollHeight;
            const scrollY = window.scrollY || window.pageYOffset;
            const pagePercent = docH - vh > 0 ? (scrollY / (docH - vh)) * 100 : 0;
            pageProgressFill.style.width = clamp(pagePercent, 0, 100) + '%';

            dotSections.forEach((s, idx) => {
                const li = dotsList.children[idx];
                if (!li) return;
                const ring = li.querySelector('.ring');

                const sectionTop = s.offsetTop;
                const sectionHeight = s.offsetHeight;
                const denom = sectionHeight + vh; // span from before section enters to after it leaves
                const progressRaw = denom > 0 ? (scrollY + vh - sectionTop) / denom : 0;
                const progress = clamp(progressRaw, 0, 1);
                const angle = Math.round(progress * 360);
                ring.style.background = `conic-gradient(var(--primary-color) ${angle}deg, rgba(255,255,255,0.06) ${angle}deg)`;

                // mark active when section midpoint is near viewport center
                const sectionMid = sectionTop + sectionHeight / 2;
                const viewportMid = scrollY + vh / 2;
                const distance = Math.abs(viewportMid - sectionMid);
                if (distance < Math.max(sectionHeight, vh) / 2) {
                    li.classList.add('active');
                } else {
                    li.classList.remove('active');
                }
            });
        }

        // Rebuild on DOM ready
        document.addEventListener('DOMContentLoaded', () => {
            sections = Array.from(document.querySelectorAll('section[id]')).filter(s => s.offsetHeight > 0);
            if (sections.length === 0) return;
            buildDots();
            update();
        });

        // Update on scroll/resize with rAF
        let ticking = false;
        function onScroll(){ if (!ticking){ requestAnimationFrame(() => { update(); ticking = false; }); ticking = true; } }
            window.addEventListener('scroll', onScroll, { passive: true });
        window.addEventListener('resize', () => { dotSections = Array.from(document.querySelectorAll('section[id]')).filter(s => s.offsetHeight > 0); buildDots(); update(); }, { passive: true });
    })();
    </script>
    <script>
    // Set footer copyright year automatically
    (function(){
        try{
            var y = new Date().getFullYear();
            var el = document.getElementById('copyright-year');
            if(el) el.textContent = y;
        }catch(e){/* noop */}
    })();
    </script>
        <script>
        // Register service worker for offline support
        if ('serviceWorker' in navigator) {
            window.addEventListener('load', function() {
                navigator.serviceWorker.register('/sw.js').then(function(reg) {
                    console.debug('Service worker registered.', reg);
                }).catch(function(err) {
                    console.warn('Service worker registration failed:', err);
                });
            });
        }
        </script>
</body>
</html>