// Top navigation
function Nav({ route, navigate }) {
  const [scrolled, setScrolled] = useState(false);
  const [menuOpen, setMenuOpen] = useState(false);
  const isMobile = useIsMobile();

  useEffect(() => {
    const on = () => setScrolled(window.scrollY > 40);
    window.addEventListener('scroll', on, { passive: true });
    on();
    return () => window.removeEventListener('scroll', on);
  }, []);

  // Close menu on route change
  useEffect(() => { setMenuOpen(false); }, [route.name]);

  // Lock body scroll when menu open
  useEffect(() => {
    document.body.style.overflow = menuOpen ? 'hidden' : '';
    return () => { document.body.style.overflow = ''; };
  }, [menuOpen]);

  const links = [
    { to: 'home', label: 'Home' },
    { to: 'work', label: 'Portfolio' },
    { to: 'services', label: 'Services' },
    { to: 'about', label: 'About' },
  ];

  const go = (to) => { navigate(to); setMenuOpen(false); };

  return (
    <>
      <header style={{
        position: 'fixed', top: 0, left: 0, right: 0, zIndex: 90,
        padding: isMobile ? '16px 24px' : (scrolled ? '16px 48px' : '28px 48px'),
        background: (scrolled || menuOpen) ? 'color-mix(in oklab, var(--bg) 96%, transparent)' : 'transparent',
        backdropFilter: (scrolled || menuOpen) ? 'blur(12px) saturate(1.1)' : 'none',
        borderBottom: (scrolled || menuOpen) ? '1px solid var(--rule)' : '1px solid transparent',
        transition: 'all .5s cubic-bezier(.2,.7,.2,1)',
        display: 'flex', alignItems: 'center', justifyContent: 'space-between',
      }}>
        {/* Logo */}
        <a href="#/home" onClick={(e) => { e.preventDefault(); go('home'); }}
          style={{ display: 'inline-flex', alignItems: 'baseline', gap: '8px' }}>
          <span className="script" style={{
            fontSize: isMobile ? '28px' : (scrolled ? '28px' : '34px'),
            transition: 'font-size .4s', lineHeight: 1, color: 'var(--ink)'
          }}>ari joon</span>
        </a>

        {/* Desktop nav */}
        {!isMobile && (
          <nav style={{ display: 'flex', gap: '42px' }}>
            {links.map((l) => (
              <a key={l.to} href={`#/${l.to}`} onClick={(e) => { e.preventDefault(); go(l.to); }}
                className="nav-link"
                style={{
                  fontFamily: 'Manrope, sans-serif',
                  fontSize: '12px', letterSpacing: '0.22em', textTransform: 'uppercase',
                  color: 'var(--ink)', position: 'relative', padding: '8px 2px'
                }}
                data-active={route.name === l.to || (l.to === 'work' && route.name === 'project')}>
                {l.label}
              </a>
            ))}
          </nav>
        )}

        {/* Desktop CTA / Mobile hamburger */}
        {!isMobile ? (
          <a href="#/inquiry" onClick={(e) => { e.preventDefault(); go('inquiry'); }}
            className="nav-cta"
            style={{
              display: 'inline-flex', alignItems: 'center', gap: '10px',
              fontFamily: 'Manrope, sans-serif',
              fontSize: '11px', letterSpacing: '0.24em', textTransform: 'uppercase',
              padding: '12px 20px', border: '1px solid var(--ink)', color: 'var(--ink)'
            }}>
            <span style={{ fontSize: '14px', transform: 'translateY(-1px)' }}>INQUIRY →</span>
          </a>
        ) : (
          <button onClick={() => setMenuOpen(!menuOpen)} style={{
            background: 'none', border: 'none', cursor: 'pointer', padding: '8px',
            display: 'flex', flexDirection: 'column', gap: '5px', zIndex: 91,
          }}>
            <span style={{
              display: 'block', width: '24px', height: '1px', background: 'var(--ink)',
              transform: menuOpen ? 'translateY(6px) rotate(45deg)' : 'none',
              transition: 'transform .35s cubic-bezier(.2,.7,.2,1)',
            }}/>
            <span style={{
              display: 'block', width: '24px', height: '1px', background: 'var(--ink)',
              opacity: menuOpen ? 0 : 1,
              transition: 'opacity .2s',
            }}/>
            <span style={{
              display: 'block', width: '24px', height: '1px', background: 'var(--ink)',
              transform: menuOpen ? 'translateY(-6px) rotate(-45deg)' : 'none',
              transition: 'transform .35s cubic-bezier(.2,.7,.2,1)',
            }}/>
          </button>
        )}
      </header>

      {/* Mobile full-screen menu */}
      {isMobile && (
        <div style={{
          position: 'fixed', inset: 0, zIndex: 80,
          background: 'var(--bg)',
          display: 'flex', flexDirection: 'column', justifyContent: 'center', alignItems: 'center',
          gap: '0',
          opacity: menuOpen ? 1 : 0,
          pointerEvents: menuOpen ? 'auto' : 'none',
          transition: 'opacity .4s cubic-bezier(.2,.7,.2,1)',
        }}>
          <nav style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', gap: '0', width: '100%' }}>
            {links.map((l, i) => (
              <a key={l.to} href={`#/${l.to}`}
                onClick={(e) => { e.preventDefault(); go(l.to); }}
                style={{
                  fontFamily: 'Manrope, sans-serif',
                  fontSize: '11px', letterSpacing: '0.28em', textTransform: 'uppercase',
                  color: route.name === l.to ? 'var(--accent)' : 'var(--ink)',
                  padding: '20px 0', width: '100%', textAlign: 'center',
                  borderBottom: '1px solid var(--rule)',
                  opacity: menuOpen ? 1 : 0,
                  transform: menuOpen ? 'translateY(0)' : 'translateY(12px)',
                  transition: `opacity .4s ${i * 60}ms, transform .4s ${i * 60}ms`,
                }}>
                {l.label}
              </a>
            ))}
            <a href="#/inquiry" onClick={(e) => { e.preventDefault(); go('inquiry'); }}
              style={{
                marginTop: '32px',
                display: 'inline-flex', alignItems: 'center', gap: '10px',
                fontFamily: 'Manrope, sans-serif',
                fontSize: '11px', letterSpacing: '0.24em', textTransform: 'uppercase',
                padding: '16px 32px', border: '1px solid var(--ink)', color: 'var(--ink)',
                opacity: menuOpen ? 1 : 0,
                transform: menuOpen ? 'translateY(0)' : 'translateY(12px)',
                transition: 'opacity .4s 240ms, transform .4s 240ms',
              }}>
              INQUIRY →
            </a>
          </nav>
        </div>
      )}

      <style>{`
        .nav-link::after {
          content:''; position:absolute; left:0; right:100%; bottom:0; height:1px; background: var(--ink);
          transition: right .5s cubic-bezier(.2,.7,.2,1);
        }
        .nav-link:hover::after, .nav-link[data-active="true"]::after { right: 0; }
        .nav-cta { transition: background .3s, color .3s; }
        .nav-cta:hover { background: var(--ink); color: var(--bg-cream); }
      `}</style>
    </>
  );
}

Object.assign(window, { Nav });
