// hero-section.jsx — Full-bleed photo hero with floating UI cards
const { useState: useStateH, useEffect: useEffectH, useRef: useRefH } = React;

// ── Hero Logo (cream version for photo overlay) ────────────────────
function HeroLogo({ size = 28, light = true }) {
  const stroke = light ? '#F4F0E8' : 'var(--ink)';
  const w = size * (44 / 28);
  return (
    <svg width={w} height={size} viewBox="0 0 44 28" fill="none" xmlns="http://www.w3.org/2000/svg">
      <circle cx="9" cy="14" r="3.6" fill="#60A5FA"/>
      <path d="M16 9.5 A 6 6 0 0 1 16 18.5" stroke={stroke} strokeOpacity="0.96" strokeWidth="3" strokeLinecap="round" fill="none"/>
      <path d="M23 6 A 11 11 0 0 1 23 22"   stroke={stroke} strokeOpacity="0.55" strokeWidth="3" strokeLinecap="round" fill="none"/>
      <path d="M31 2 A 16 16 0 0 1 31 26"   stroke={stroke} strokeOpacity="0.30" strokeWidth="3" strokeLinecap="round" fill="none"/>
    </svg>
  );
}

// ── Floating live ticker (bottom-left of hero) ─────────────────────
function LiveTicker() {
  const events = [
    { agent: 'Otis', verb: 'posted POD',     ref: 'PRO# 4421',     channel: 'TruckMate AR', time: '2s' },
    { agent: 'Dax',  verb: 'sent quote',     ref: 'CHI → ATL',     channel: 'Email',        time: '12s' },
    { agent: 'Ren',  verb: 'booked dock',    ref: 'Door 7 · 2pm',  channel: 'OpenDock',     time: '34s' },
    { agent: 'Mira', verb: 'filed detention', ref: '3h 34m',        channel: 'AR',           time: '1m' },
    { agent: 'Otis', verb: 'posted POD',     ref: 'PRO# 4429',     channel: 'TruckMate AR', time: '1m' },
  ];
  const [idx, setIdx] = useStateH(0);
  useEffectH(() => {
    const t = setInterval(() => setIdx(i => (i + 1) % events.length), 2400);
    return () => clearInterval(t);
  }, []);
  return (
    <div style={{
      background: 'rgba(10, 22, 18, 0.72)',
      backdropFilter: 'blur(20px) saturate(180%)',
      WebkitBackdropFilter: 'blur(20px) saturate(180%)',
      border: '1px solid rgba(244, 240, 232, 0.14)',
      borderRadius: 14,
      padding: '14px 18px 14px 16px',
      display: 'flex', alignItems: 'center', gap: 14,
      minWidth: 340,
      boxShadow: '0 24px 60px rgba(0,0,0,0.35)',
    }}>
      <div style={{ display: 'flex', alignItems: 'center', gap: 8 }}>
        <span style={{ position: 'relative', display: 'inline-flex', width: 8, height: 8 }}>
          <span style={{ position: 'absolute', inset: 0, borderRadius: '50%', background: '#5DA88A', animation: 'pulse 1.6s ease-in-out infinite' }} />
          <span style={{ position: 'absolute', inset: 0, borderRadius: '50%', background: '#5DA88A' }} />
        </span>
        <span style={{ fontFamily: 'var(--ff-mono)', fontSize: 9.5, letterSpacing: '0.14em', color: 'rgba(244,240,232,0.55)', textTransform: 'uppercase', fontWeight: 500 }}>Live</span>
      </div>
      <div style={{ width: 1, height: 18, background: 'rgba(244,240,232,0.16)' }} />
      <div style={{ flex: 1, position: 'relative', height: 18, overflow: 'hidden' }}>
        {events.map((e, i) => (
          <div key={i} style={{
            position: 'absolute', inset: 0, display: 'flex', alignItems: 'center', gap: 6,
            opacity: i === idx ? 1 : 0,
            transform: i === idx ? 'translateY(0)' : (i < idx ? 'translateY(-100%)' : 'translateY(100%)'),
            transition: 'opacity 0.4s cubic-bezier(0.16,1,0.3,1), transform 0.5s cubic-bezier(0.16,1,0.3,1)',
            fontSize: 12,
            color: 'rgba(244,240,232,0.92)',
            whiteSpace: 'nowrap',
          }}>
            <span style={{ color: '#3B82F6', fontFamily: 'var(--ff-mono)', fontSize: 11, letterSpacing: '0.06em', fontWeight: 600 }}>{e.agent.toUpperCase()}</span>
            <span style={{ color: 'rgba(244,240,232,0.6)' }}>{e.verb}</span>
            <span style={{ fontFamily: 'var(--ff-mono)', fontSize: 11, color: 'rgba(244,240,232,0.92)' }}>{e.ref}</span>
            <span style={{ color: 'rgba(244,240,232,0.4)', marginLeft: 4 }}>·</span>
            <span style={{ fontFamily: 'var(--ff-mono)', fontSize: 10.5, color: 'rgba(244,240,232,0.5)' }}>{e.channel}</span>
          </div>
        ))}
      </div>
      <span style={{ fontFamily: 'var(--ff-mono)', fontSize: 10, color: 'rgba(244,240,232,0.4)', letterSpacing: '0.04em' }}>{events[idx].time}</span>
    </div>
  );
}

// ── Floating stats card (bottom-right) ─────────────────────────────
function HeroStatsCard() {
  return (
    <div style={{
      background: 'rgba(244, 240, 232, 0.94)',
      backdropFilter: 'blur(20px) saturate(180%)',
      WebkitBackdropFilter: 'blur(20px) saturate(180%)',
      border: '1px solid rgba(20, 52, 43, 0.12)',
      borderRadius: 14,
      padding: '18px 22px',
      display: 'flex', gap: 28,
      boxShadow: '0 24px 60px rgba(0,0,0,0.18)',
    }}>
      {[
        { k: 'PODs / day',   v: '4,200', d: 'auto-posted' },
        { k: 'Quote latency', v: '< 4m',  d: 'first response' },
        { k: 'Audit trail',  v: '100%',  d: 'logged' },
      ].map((s, i) => (
        <div key={i} style={{ display: 'flex', flexDirection: 'column', gap: 2, borderLeft: i > 0 ? '1px solid rgba(20,52,43,0.10)' : 'none', paddingLeft: i > 0 ? 24 : 0 }}>
          <div style={{ fontFamily: 'var(--ff-display)', fontSize: 26, fontWeight: 500, color: 'var(--forest)', letterSpacing: '-0.02em', lineHeight: 1 }}>{s.v}</div>
          <div style={{ fontFamily: 'var(--ff-mono)', fontSize: 9, letterSpacing: '0.1em', color: 'var(--muted)', textTransform: 'uppercase', marginTop: 4 }}>{s.k}</div>
          <div style={{ fontSize: 11, color: 'var(--muted)' }}>{s.d}</div>
        </div>
      ))}
    </div>
  );
}

// ── Floating SMS preview (right side, mid) ─────────────────────────
function HeroSMSPreview() {
  return (
    <div style={{
      background: 'rgba(244, 240, 232, 0.96)',
      backdropFilter: 'blur(20px) saturate(180%)',
      WebkitBackdropFilter: 'blur(20px) saturate(180%)',
      border: '1px solid rgba(20, 52, 43, 0.10)',
      borderRadius: 14,
      padding: 16,
      width: 280,
      boxShadow: '0 28px 72px rgba(0,0,0,0.28), 0 4px 12px rgba(0,0,0,0.12)',
      display: 'flex', flexDirection: 'column', gap: 10,
    }}>
      {/* header */}
      <div style={{ display: 'flex', alignItems: 'center', gap: 10, paddingBottom: 10, borderBottom: '1px solid rgba(20,52,43,0.08)' }}>
        <div style={{ width: 32, height: 32, borderRadius: '50%', background: 'var(--forest)', display: 'flex', alignItems: 'center', justifyContent: 'center', color: '#F4F0E8', fontFamily: 'var(--ff-display)', fontSize: 14, fontWeight: 500 }}>O</div>
        <div style={{ flex: 1 }}>
          <div style={{ fontSize: 12, fontWeight: 600, color: 'var(--forest)' }}>Otis</div>
          <div style={{ fontFamily: 'var(--ff-mono)', fontSize: 9, color: 'var(--muted)', letterSpacing: '0.08em', textTransform: 'uppercase' }}>SMS · 11:42 AM</div>
        </div>
        <span style={{ width: 6, height: 6, borderRadius: '50%', background: '#5DA88A' }} />
      </div>
      {/* msg */}
      <div style={{ background: 'var(--surface)', borderRadius: 10, padding: '10px 12px', fontSize: 12, color: 'var(--ink)', lineHeight: 1.5 }}>
        POD ready for <span style={{ fontFamily: 'var(--ff-mono)', color: 'var(--accent)', fontWeight: 600 }}>PRO# 4421</span>.<br />
        Summit Industrial · J. Martinez<br />
        Approve to post to TruckMate AR?
      </div>
      {/* reply */}
      <div style={{ alignSelf: 'flex-end', background: 'var(--forest)', color: '#F4F0E8', borderRadius: 10, padding: '7px 12px', fontSize: 12, fontWeight: 500 }}>Approved</div>
      {/* result */}
      <div style={{ display: 'flex', alignItems: 'center', gap: 8, padding: '8px 10px', background: 'rgba(93, 168, 138, 0.12)', border: '1px solid rgba(93, 168, 138, 0.3)', borderRadius: 8 }}>
        <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="#3A8068" strokeWidth="2.5" strokeLinecap="round"><polyline points="20 6 9 17 4 12"/></svg>
        <span style={{ fontFamily: 'var(--ff-mono)', fontSize: 10, color: '#1F5444', letterSpacing: '0.04em' }}>Posted to TruckMate · PRO# 4421</span>
      </div>
    </div>
  );
}

// ── Main hero ──────────────────────────────────────────────────────
function Hero({ heroImage = 'hero-truck-corridor' }) {
  const [parallax, setParallax] = useStateH(0);
  useEffectH(() => {
    let raf;
    const onScroll = () => {
      if (raf) return;
      raf = requestAnimationFrame(() => {
        setParallax(window.scrollY * 0.25);
        raf = null;
      });
    };
    window.addEventListener('scroll', onScroll, { passive: true });
    return () => window.removeEventListener('scroll', onScroll);
  }, []);

  return (
    <section style={{ position: 'relative', minHeight: '100vh', overflow: 'hidden' }}>
      {/* Headlight sweep — diagonal light beam crossing the corridor */}
      <div className="hero-beam" style={{
        position: 'absolute', inset: 0, pointerEvents: 'none',
        background: 'linear-gradient(110deg, transparent 35%, rgba(96,165,250,0.18) 47%, rgba(255,255,255,0.10) 50%, rgba(96,165,250,0.18) 53%, transparent 65%)',
        mixBlendMode: 'screen',
        opacity: 0.85,
      }} />
      {/* Atmospheric haze drift */}
      <div className="hero-haze" style={{
        position: 'absolute', inset: '-10% -5%', pointerEvents: 'none',
        background: 'radial-gradient(ellipse 80% 60% at 30% 50%, rgba(37,99,235,0.10) 0%, transparent 60%), radial-gradient(ellipse 60% 50% at 80% 70%, rgba(96,165,250,0.08) 0%, transparent 70%)',
        mixBlendMode: 'screen',
      }} />
      {/* Hero-only extra darkening on the left for headline legibility */}
      <div style={{
        position: 'absolute', inset: 0,
        background: 'linear-gradient(90deg, rgba(5,11,9,0.55) 0%, rgba(5,11,9,0.25) 40%, rgba(5,11,9,0) 70%)',
        pointerEvents: 'none',
      }} />
      {/* Speed lines — three thin animated streaks suggesting motion */}
      <div className="hero-speed" aria-hidden="true" style={{ position: 'absolute', inset: 0, pointerEvents: 'none', overflow: 'hidden' }}>
        <span className="streak streak-1" />
        <span className="streak streak-2" />
        <span className="streak streak-3" />
      </div>
      {/* subtle film grain */}
      <div style={{
        position: 'absolute', inset: 0, pointerEvents: 'none', opacity: 0.5, mixBlendMode: 'overlay',
        backgroundImage: "url(\"data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.45'/%3E%3C/svg%3E\")",
        backgroundSize: '200px',
      }} />

      {/* ── Content ─────────────────────────── */}
      <div className="hero-content" style={{
        position: 'relative', zIndex: 2,
        minHeight: '100vh',
        maxWidth: 1280, margin: '0 auto',
        padding: '120px 48px 56px',
        display: 'flex', flexDirection: 'column',
        color: '#F4F0E8',
      }}>
        {/* Top: eyebrow chip */}
        <div style={{ animation: 'heroUp 0.9s cubic-bezier(0.16,1,0.3,1) 0.1s both', marginBottom: 48 }}>
          <div style={{
            display: 'inline-flex', alignItems: 'center', gap: 10,
            background: 'linear-gradient(180deg, rgba(96,165,250,0.10) 0%, rgba(96,165,250,0.04) 100%)',
            backdropFilter: 'blur(14px) saturate(140%)',
            WebkitBackdropFilter: 'blur(14px) saturate(140%)',
            border: '1px solid rgba(96,165,250,0.24)',
            boxShadow: '0 1px 0 rgba(255,255,255,0.04) inset, 0 8px 24px rgba(8,15,22,0.35)',
            borderRadius: 100,
            padding: '7px 18px 7px 14px',
          }}>
            <span style={{ position: 'relative', width: 7, height: 7, display: 'inline-flex', alignItems: 'center', justifyContent: 'center' }}>
              <span style={{ position: 'absolute', inset: -3, borderRadius: '50%', background: 'rgba(96,165,250,0.35)', animation: 'pulse 2s ease-in-out infinite' }} />
              <span style={{ position: 'relative', width: 7, height: 7, borderRadius: '50%', background: '#60A5FA', boxShadow: '0 0 10px #60A5FA' }} />
            </span>
            <span style={{ fontFamily: 'var(--ff-mono)', fontSize: 10.5, letterSpacing: '0.18em', color: '#F4F0E8', textTransform: 'uppercase', fontWeight: 500, textShadow: '0 1px 8px rgba(0,0,0,0.4)' }}>AI agents · For LTL carriers</span>
          </div>
        </div>

        {/* Single-column hero (Otis card removed — now lives in the agents section) */}
        <div className="hero-grid" style={{
          flex: 1,
          display: 'block',
        }}>
          <div>
          <h1 style={{
            fontFamily: 'var(--ff-display)',
            fontSize: 'clamp(44px, 6vw, 88px)',
            fontWeight: 300,
            letterSpacing: '-0.04em',
            lineHeight: 0.96,
            color: '#F4F0E8',
            marginBottom: 24,
            textShadow: '0 2px 30px rgba(0,0,0,0.35)',
            maxWidth: '14ch',
          }}>
            <span style={{ animation: 'heroUp 1s cubic-bezier(0.16,1,0.3,1) 0.18s both', display: 'block' }}>
              Meet{' '}
              <span style={{ color: '#93C5FD', textShadow: '0 2px 24px rgba(37,99,235,0.55), 0 2px 30px rgba(0,0,0,0.5)' }}>
                Echo,
              </span>
              {' '}your AI
            </span>
            <span style={{ animation: 'heroUp 1s cubic-bezier(0.16,1,0.3,1) 0.26s both', display: 'block' }}>
              Workforce for{' '}
              <span style={{ color: '#93C5FD', textShadow: '0 2px 24px rgba(37,99,235,0.55), 0 2px 30px rgba(0,0,0,0.5)' }}>
                LTL Carriers.
              </span>
            </span>
          </h1>

          <p style={{
            animation: 'heroUp 1s cubic-bezier(0.16,1,0.3,1) 0.5s both',
            fontSize: 18,
            lineHeight: 1.6,
            color: 'rgba(244,240,232,0.95)',
            maxWidth: 540,
            marginBottom: 36,
            fontWeight: 400,
            textShadow: '0 1px 12px rgba(0,0,0,0.55)',
          }}>
            Four agents that handle your PODs, quotes, dock bookings, and detention claims — 24/7, inside the tools your team already uses.
          </p>

          {/* CTAs */}
          <div style={{ animation: 'heroUp 1s cubic-bezier(0.16,1,0.3,1) 0.62s both', display: 'flex', gap: 14, alignItems: 'center', flexWrap: 'wrap' }}>
            <a href="#" className="echo-cta echo-cta--primary" style={{
              display: 'inline-flex', alignItems: 'center', gap: 12,
              background: 'linear-gradient(180deg, #3B82F6 0%, #2563EB 100%)',
              color: '#F4F0E8',
              padding: '16px 26px',
              borderRadius: 10,
              fontFamily: 'var(--ff-mono)', fontSize: 12, letterSpacing: '0.12em', textTransform: 'uppercase',
              fontWeight: 600,
              transition: 'all 0.3s var(--ease-out)',
              boxShadow: '0 14px 40px rgba(37,99,235,0.5), inset 0 1px 0 rgba(255,255,255,0.22)',
              border: '1px solid rgba(96,165,250,0.55)',
            }}
              onMouseEnter={e => { e.currentTarget.style.background = 'linear-gradient(180deg, #60A5FA 0%, #3B82F6 100%)'; e.currentTarget.style.transform = 'translateY(-2px)'; e.currentTarget.style.boxShadow = '0 18px 48px rgba(37,99,235,0.65), inset 0 1px 0 rgba(255,255,255,0.3)'; e.currentTarget.querySelector('.ar').style.transform = 'translateX(4px)'; }}
              onMouseLeave={e => { e.currentTarget.style.background = 'linear-gradient(180deg, #3B82F6 0%, #2563EB 100%)'; e.currentTarget.style.transform = 'translateY(0)'; e.currentTarget.style.boxShadow = '0 14px 40px rgba(37,99,235,0.5), inset 0 1px 0 rgba(255,255,255,0.22)'; e.currentTarget.querySelector('.ar').style.transform = 'translateX(0)'; }}
            >
              <span style={{ width: 7, height: 7, borderRadius: '50%', background: '#7DC9A8', boxShadow: '0 0 10px rgba(125,201,168,0.9)' }}></span>
              See Echo run
              <svg className="ar" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" style={{ transition: 'transform 0.3s var(--ease-out)' }}><path d="M5 12h14M12 5l7 7-7 7"/></svg>
            </a>
            <a href="#agents" className="echo-cta echo-cta--ghost" style={{
              display: 'inline-flex', alignItems: 'center', gap: 10,
              padding: '15px 22px',
              border: '1px solid rgba(244,240,232,0.28)',
              borderRadius: 10,
              fontFamily: 'var(--ff-mono)', fontSize: 12,
              letterSpacing: '0.12em',
              textTransform: 'uppercase',
              fontWeight: 500,
              color: 'rgba(244,240,232,0.92)',
              backdropFilter: 'blur(14px)',
              background: 'rgba(244,240,232,0.05)',
              transition: 'all 0.3s var(--ease-out)',
            }}
              onMouseEnter={e => { e.currentTarget.style.background = 'rgba(244,240,232,0.10)'; e.currentTarget.style.borderColor = 'rgba(96,165,250,0.55)'; e.currentTarget.style.color = '#F4F0E8'; }}
              onMouseLeave={e => { e.currentTarget.style.background = 'rgba(244,240,232,0.05)'; e.currentTarget.style.borderColor = 'rgba(244,240,232,0.28)'; e.currentTarget.style.color = 'rgba(244,240,232,0.92)'; }}
            >
              How it works
              <svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
            </a>
          </div>

          {/* trust bar */}
          <div style={{ animation: 'heroUp 1s cubic-bezier(0.16,1,0.3,1) 0.78s both', marginTop: 40, display: 'flex', alignItems: 'center', gap: 28, flexWrap: 'wrap' }}>
            <span style={{ fontFamily: 'var(--ff-mono)', fontSize: 10, letterSpacing: '0.18em', color: 'rgba(244,240,232,0.5)', fontWeight: 500, textTransform: 'uppercase', textShadow: '0 1px 8px rgba(0,0,0,0.6)' }}>Built on</span>
            {/* Microsoft */}
            <div style={{ display: 'flex', alignItems: 'center', gap: 8, opacity: 0.85 }}>
              <svg width="14" height="14" viewBox="0 0 24 24" aria-hidden="true">
                <rect x="2"  y="2"  width="9" height="9" fill="#F25022"/>
                <rect x="13" y="2"  width="9" height="9" fill="#7FBA00"/>
                <rect x="2"  y="13" width="9" height="9" fill="#00A4EF"/>
                <rect x="13" y="13" width="9" height="9" fill="#FFB900"/>
              </svg>
              <span style={{ fontFamily: 'var(--ff-display)', fontSize: 14, color: 'rgba(244,240,232,0.92)', fontWeight: 400, letterSpacing: '-0.01em', textShadow: '0 1px 8px rgba(0,0,0,0.6)' }}>Microsoft</span>
            </div>
            {/* Azure */}
            <div style={{ display: 'flex', alignItems: 'center', gap: 8, opacity: 0.85 }}>
              <svg width="14" height="14" viewBox="0 0 24 24" aria-hidden="true">
                <path d="M13.05 4.24L6.56 18.05l4.18.71L18.5 5.5l-5.45-1.26zM5.62 19.71l5.42-9.21 1.43 4.6L8.28 19.7l-2.66.01z" fill="#0078D4"/>
              </svg>
              <span style={{ fontFamily: 'var(--ff-display)', fontSize: 14, color: 'rgba(244,240,232,0.92)', fontWeight: 400, letterSpacing: '-0.01em', textShadow: '0 1px 8px rgba(0,0,0,0.6)' }}>Azure</span>
            </div>
            {/* TruckMate */}
            <div style={{ display: 'flex', alignItems: 'center', gap: 8, opacity: 0.85 }}>
              <svg width="16" height="14" viewBox="0 0 28 22" aria-hidden="true">
                <rect x="1" y="3" width="17" height="12" rx="1.5" fill="none" stroke="#60A5FA" strokeWidth="1.6"/>
                <path d="M18 6h5l3 3v6h-8z" fill="none" stroke="#60A5FA" strokeWidth="1.6" strokeLinejoin="round"/>
                <circle cx="7" cy="18" r="2.6" fill="#60A5FA"/>
                <circle cx="20" cy="18" r="2.6" fill="#60A5FA"/>
              </svg>
              <span style={{ fontFamily: 'var(--ff-display)', fontSize: 14, color: 'rgba(244,240,232,0.92)', fontWeight: 400, letterSpacing: '-0.01em', textShadow: '0 1px 8px rgba(0,0,0,0.6)' }}>TruckMate</span>
            </div>
            {/* SOC2 chip kept as compliance signal */}
            <span style={{ fontFamily: 'var(--ff-mono)', fontSize: 10, letterSpacing: '0.14em', color: 'rgba(244,240,232,0.55)', fontWeight: 500, padding: '5px 10px', border: '1px solid rgba(244,240,232,0.18)', borderRadius: 4, textShadow: '0 1px 8px rgba(0,0,0,0.6)' }}>SOC 2 · TYPE II</span>
          </div>
          </div>
        </div>

        {/* Bottom row: live ticker only */}
        <div style={{
          animation: 'heroUp 1s cubic-bezier(0.16,1,0.3,1) 0.95s both',
          marginTop: 56,
          display: 'flex', justifyContent: 'flex-start', alignItems: 'center',
          gap: 24, flexWrap: 'wrap',
          paddingTop: 24,
          borderTop: '1px solid rgba(244,240,232,0.10)',
        }}>
          <LiveTicker />
        </div>
      </div>

      <style>{`
        @keyframes floatY {
          0%, 100% { transform: translateY(0); }
          50% { transform: translateY(-10px); }
        }
        @keyframes heroBreathe {
          0%, 100% { filter: brightness(1) saturate(1); }
          50%      { filter: brightness(1.08) saturate(1.1); }
        }
        .hero-bg { animation: heroBreathe 14s ease-in-out infinite; }

        @keyframes beamSweep {
          0%   { transform: translateX(-30%); opacity: 0; }
          15%  { opacity: 0.9; }
          50%  { opacity: 1; }
          85%  { opacity: 0.6; }
          100% { transform: translateX(30%); opacity: 0; }
        }
        .hero-beam { animation: beamSweep 9s ease-in-out infinite; }

        @keyframes hazeDrift {
          0%, 100% { transform: translate3d(0,0,0); }
          50%      { transform: translate3d(2%, -1%, 0); }
        }
        .hero-haze { animation: hazeDrift 18s ease-in-out infinite; }

        @keyframes streakRun {
          0%   { transform: translateX(-110%) skewX(-12deg); opacity: 0; }
          12%  { opacity: 0.45; }
          80%  { opacity: 0.45; }
          100% { transform: translateX(110vw) skewX(-12deg); opacity: 0; }
        }
        .streak {
          position: absolute;
          height: 2px;
          width: 220px;
          background: linear-gradient(90deg, transparent 0%, rgba(96,165,250,0.45) 35%, rgba(255,255,255,0.85) 60%, rgba(96,165,250,0.35) 80%, transparent 100%);
          filter: blur(1.4px);
          will-change: transform, opacity;
          mix-blend-mode: screen;
        }
        .streak-1 { top: 28%; left: 0; animation: streakRun 5.4s linear infinite; animation-delay: 0.2s; opacity: 0; }
        .streak-2 { top: 52%; left: 0; animation: streakRun 7.2s linear infinite; animation-delay: 2.4s; width: 320px; height: 1.5px; opacity: 0; }
        .streak-3 { top: 71%; left: 0; animation: streakRun 4.6s linear infinite; animation-delay: 4.1s; width: 180px; opacity: 0; }

        @media (prefers-reduced-motion: reduce) {
          .hero-bg, .hero-beam, .hero-haze, .streak { animation: none !important; }
        }
        @media (max-width: 980px) {
          .hero-grid { grid-template-columns: 1fr !important; }
          .hero-card-col { display: none !important; }
        }
      `}</style>
    </section>
  );
}

Object.assign(window, { Hero, HeroLogo });
