function MenuPreview() {
  const sectionRef = React.useRef(null);
  const [visible, setVisible] = React.useState(false);

  React.useEffect(() => {
    const observer = new IntersectionObserver(
      ([entry]) => { if (entry.isIntersecting) { setVisible(true); observer.disconnect(); } },
      { threshold: 0.1 }
    );
    if (sectionRef.current) observer.observe(sectionRef.current);
    return () => observer.disconnect();
  }, []);

  const cocktails = [
    { name: 'Island Sunset',  desc: 'Dark rum, passion fruit, fresh lime, cane syrup',           price: 'Rs 250' },
    { name: 'Palm Garden',    desc: 'Gin, elderflower, cucumber, coconut water',                  price: 'Rs 240' },
    { name: 'The After5',     desc: 'House reserve rum, spiced bitters, Mauritian vanilla, rocks', price: 'Rs 280' },
  ];

  const food = [
    { name: 'Catch of the Day',      desc: 'Fresh Mauritian seafood, herb butter, seasoned greens', price: 'Rs 450' },
    { name: 'Mediterranean Board',   desc: 'Mezze selection, olives, warm flatbread, house dips',   price: 'Rs 380' },
    { name: 'Palm Charcoal Grill',   desc: 'Choice cuts, island spice rub, seasonal sides',         price: 'Rs 520' },
  ];

  return (
    <>
      <style>{`
        /* ── Section ── */
        .menu {
          background: #0A0A0A;
          padding: 100px 0 0;
          overflow: hidden;
        }

        /* ── Header ── */
        .menu-header {
          display: flex;
          align-items: flex-end;
          justify-content: space-between;
          padding: 0 96px 64px;
          gap: 40px;
          opacity: 0; transform: translateY(16px);
          transition: opacity 0.8s cubic-bezier(0.16,1,0.3,1) 0.1s,
                      transform 0.8s cubic-bezier(0.16,1,0.3,1) 0.1s;
        }
        .menu-header.in { opacity: 1; transform: translateY(0); }

        .menu-eyebrow {
          font-family: 'Josefin Sans', sans-serif;
          font-size: 11px; font-weight: 400;
          letter-spacing: 0.35em; text-transform: uppercase;
          color: #E84800;
          display: flex; align-items: center; gap: 12px;
          margin-bottom: 18px;
        }
        .menu-eyebrow-rule { width: 32px; height: 1px; background: #E84800; opacity: 0.6; }

        .menu-title {
          font-family: 'Playfair Display', serif;
          font-size: clamp(32px, 3vw, 50px);
          font-weight: 400; font-style: italic;
          color: #F5F0EA;
          line-height: 1.15; letter-spacing: -0.02em;
        }

        .menu-header-rule {
          flex: 1; max-width: 200px; height: 1px;
          background: rgba(255,255,255,0.08);
          align-self: center; flex-shrink: 0;
        }

        /* ── Main grid ── */
        .menu-main {
          display: grid;
          grid-template-columns: 1fr 1fr;
        }

        /* ── Left: list panel ── */
        .menu-list-panel {
          padding: 64px 80px 80px 96px;
          display: flex;
          flex-direction: column;
          justify-content: center;
          opacity: 0; transform: translateX(-24px);
          transition: opacity 0.9s cubic-bezier(0.16,1,0.3,1) 0.25s,
                      transform 0.9s cubic-bezier(0.16,1,0.3,1) 0.25s;
        }
        .menu-list-panel.in { opacity: 1; transform: translateX(0); }

        .menu-cat-label {
          font-family: 'Josefin Sans', sans-serif;
          font-size: 9px; font-weight: 400;
          letter-spacing: 0.4em; text-transform: uppercase;
          color: #E84800;
          margin-bottom: 24px;
          display: flex; align-items: center; gap: 10px;
        }
        .menu-cat-label::before {
          content: '';
          display: block;
          width: 24px; height: 1px;
          background: #E84800; opacity: 0.6; flex-shrink: 0;
        }

        /* Menu item */
        .menu-item {
          display: flex;
          align-items: baseline;
          justify-content: space-between;
          gap: 16px;
          padding: 18px 0;
          border-bottom: 1px solid rgba(255,255,255,0.06);
          transition: border-color 0.25s ease;
        }
        .menu-item:first-of-type { border-top: 1px solid rgba(255,255,255,0.06); }
        .menu-item:hover { border-color: rgba(232,72,0,0.18); }

        .menu-item-left { flex: 1; min-width: 0; }

        .menu-item-name {
          font-family: 'Playfair Display', serif;
          font-size: clamp(19px, 1.6vw, 25px);
          font-weight: 400; font-style: italic;
          color: #F5F0EA;
          letter-spacing: -0.01em;
          display: block;
          margin-bottom: 5px;
          transition: color 0.25s ease;
        }
        .menu-item:hover .menu-item-name { color: #E84800; }

        .menu-item-desc {
          font-family: 'Josefin Sans', sans-serif;
          font-size: 11px; font-weight: 300;
          letter-spacing: 0.08em; line-height: 1.6;
          color: rgba(245,240,234,0.32);
          transition: color 0.25s ease;
        }
        .menu-item:hover .menu-item-desc { color: rgba(245,240,234,0.55); }

        .menu-item-price {
          font-family: 'Josefin Sans', sans-serif;
          font-size: 11px; font-weight: 400;
          letter-spacing: 0.1em;
          color: rgba(255,255,255,0.28);
          flex-shrink: 0;
          transition: color 0.25s ease;
        }
        .menu-item:hover .menu-item-price { color: rgba(255,255,255,0.65); }

        /* Category separator */
        .menu-cat-sep {
          margin: 36px 0 28px;
          display: flex; align-items: center; gap: 16px;
        }
        .menu-cat-sep-line { flex: 1; height: 1px; background: rgba(255,255,255,0.05); }
        .menu-cat-sep-dot {
          width: 4px; height: 4px; border-radius: 50%;
          background: rgba(232,72,0,0.35);
        }

        /* CTA */
        .menu-cta {
          margin-top: 48px;
          display: inline-flex; align-items: center; gap: 14px;
          font-family: 'Josefin Sans', sans-serif;
          font-size: 11px; font-weight: 600;
          letter-spacing: 0.28em; text-transform: uppercase;
          color: #F5F0EA;
          text-decoration: none;
          position: relative;
          padding-bottom: 10px;
          align-self: flex-start;
        }
        .menu-cta::after {
          content: '';
          position: absolute; bottom: 0; left: 0;
          width: 100%; height: 1px;
          background: rgba(255,255,255,0.18);
          transition: background 0.3s ease;
        }
        .menu-cta:hover::after { background: #E84800; }

        .menu-cta-arrow {
          width: 24px; height: 1px;
          background: currentColor; position: relative; flex-shrink: 0;
          transition: width 0.35s cubic-bezier(0.16,1,0.3,1);
        }
        .menu-cta-arrow::after {
          content: '';
          position: absolute; right: 0; top: 50%;
          transform: translateY(-50%) rotate(45deg);
          width: 5px; height: 5px;
          border-right: 1px solid currentColor;
          border-top: 1px solid currentColor;
        }
        .menu-cta:hover .menu-cta-arrow { width: 36px; }

        /* ── Right: image mosaic panel ── */
        .menu-img-panel {
          position: relative;
          overflow: hidden;
          display: grid;
          grid-template-columns: 1fr 1fr;
          grid-auto-rows: 1fr;
          gap: 3px;
          background: #0A0A0A;
          opacity: 0; transform: translateX(24px);
          transition: opacity 0.9s cubic-bezier(0.16,1,0.3,1) 0.35s,
                      transform 0.9s cubic-bezier(0.16,1,0.3,1) 0.35s;
        }
        .menu-img-panel.in { opacity: 1; transform: translateX(0); }

        .menu-tile {
          position: relative;
          overflow: hidden;
          background: #111;
        }
        .menu-tile img {
          width: 100%; height: 100%;
          object-fit: cover; object-position: center;
          display: block;
          transform: scale(1.04);
          transition: transform 1.1s cubic-bezier(0.16,1,0.3,1);
        }
        .menu-tile:hover img { transform: scale(1.09); }

        /* Gentle per-tile vignette so the mosaic reads as one surface */
        .menu-tile::after {
          content: '';
          position: absolute; inset: 0;
          background: linear-gradient(180deg,
            rgba(0,0,0,0) 55%,
            rgba(0,0,0,0.35) 100%);
          pointer-events: none;
        }

        /* Left-edge gradient to blend the whole mosaic into the list panel */
        .menu-img-overlay {
          position: absolute; inset: 0;
          z-index: 5;
          background: linear-gradient(
            to right,
            rgba(10,10,10,0.75) 0%,
            rgba(10,10,10,0.2)  18%,
            rgba(10,10,10,0)    40%
          );
          pointer-events: none;
        }

        /* Floating slogan on image */
        .menu-img-badge {
          position: absolute;
          bottom: 52px; right: 52px;
          z-index: 6;
          text-align: right;
          pointer-events: none;
        }
        .menu-img-badge-text {
          font-family: 'Playfair Display', serif;
          font-size: clamp(22px, 2.2vw, 32px);
          font-weight: 400; font-style: italic;
          color: rgba(255,255,255,0.82);
          letter-spacing: -0.01em;
          line-height: 1.35;
          display: block;
        }
        .menu-img-badge-sub {
          font-family: 'Josefin Sans', sans-serif;
          font-size: 9px; font-weight: 400;
          letter-spacing: 0.38em; text-transform: uppercase;
          color: #E84800;
          display: block;
          margin-top: 10px;
        }

        /* ── Bottom tagline band ── */
        .menu-tagline {
          display: flex; align-items: center; justify-content: center;
          gap: 28px; flex-wrap: wrap;
          padding: 40px 96px;
          border-top: 1px solid rgba(255,255,255,0.05);
          opacity: 0; transform: translateY(12px);
          transition: opacity 0.8s cubic-bezier(0.16,1,0.3,1) 0.6s,
                      transform 0.8s cubic-bezier(0.16,1,0.3,1) 0.6s;
        }
        .menu-tagline.in { opacity: 1; transform: translateY(0); }

        .menu-tagline-word {
          font-family: 'Josefin Sans', sans-serif;
          font-size: 10px; font-weight: 400;
          letter-spacing: 0.38em; text-transform: uppercase;
          color: rgba(255,255,255,0.18);
        }
        .menu-tagline-dot {
          width: 3px; height: 3px; border-radius: 50%;
          background: rgba(232,72,0,0.32); flex-shrink: 0;
        }

        /* ── Responsive ── */
        @media (max-width: 900px) {
          .menu { padding: 72px 0 0; }
          .menu-header { padding: 0 32px 48px; flex-direction: column; align-items: flex-start; gap: 20px; }
          .menu-header-rule { display: none; }
          .menu-main { grid-template-columns: 1fr; }
          .menu-img-panel { height: 64vw; min-height: 260px; order: -1; }
          .menu-img-overlay {
            background: linear-gradient(
              to bottom,
              rgba(10,10,10,0) 50%,
              rgba(10,10,10,0.65) 100%
            );
          }
          .menu-list-panel { padding: 48px 32px 56px; }
          .menu-tagline { padding: 32px 32px; gap: 20px; }
        }
        @media (max-width: 480px) {
          .menu-img-panel { height: 80vw; }
          .menu-item-name { font-size: 18px; }
        }
      `}</style>

      <section className="menu" ref={sectionRef} id="menu" aria-label="Menu Preview">

        {/* Header */}
        <div className={`menu-header ${visible ? 'in' : ''}`}>
          <div>
            <p className="menu-eyebrow">
              <span className="menu-eyebrow-rule" />
              Pour. Chill. Enjoy.
            </p>
            <h2 className="menu-title">
              Drinks crafted for<br />the night ahead.
            </h2>
          </div>
          <div className="menu-header-rule" />
        </div>

        {/* Main two-column area */}
        <div className="menu-main">

          {/* Left: menu list */}
          <div className={`menu-list-panel ${visible ? 'in' : ''}`}>

            <p className="menu-cat-label">Signature Cocktails</p>

            {cocktails.map((item, i) => (
              <div className="menu-item" key={`cocktail-${i}`}>
                <div className="menu-item-left">
                  <span className="menu-item-name">{item.name}</span>
                  <span className="menu-item-desc">{item.desc}</span>
                </div>
                <span className="menu-item-price">{item.price}</span>
              </div>
            ))}

            <div className="menu-cat-sep">
              <div className="menu-cat-sep-line" />
              <div className="menu-cat-sep-dot" />
              <div className="menu-cat-sep-line" />
            </div>

            <p className="menu-cat-label">From the Kitchen</p>

            {food.map((item, i) => (
              <div className="menu-item" key={`food-${i}`}>
                <div className="menu-item-left">
                  <span className="menu-item-name">{item.name}</span>
                  <span className="menu-item-desc">{item.desc}</span>
                </div>
                <span className="menu-item-price">{item.price}</span>
              </div>
            ))}

            <a href="./menu.pdf" className="menu-cta" target="_blank" rel="noopener noreferrer">
              View Full Menu
              <span className="menu-cta-arrow" />
            </a>
          </div>

          {/* Right: image mosaic — cocktails + atmosphere tiles */}
          <div className={`menu-img-panel ${visible ? 'in' : ''}`}>
            <div className="menu-tile"><img src="./brand_assets/cocktail/cocktail-01.webp" alt="Signature cocktail detail"         loading="lazy" /></div>
            <div className="menu-tile"><img src="./brand_assets/cocktail/cocktail-03.webp" alt="Hand-crafted cocktail"              loading="lazy" /></div>
            <div className="menu-tile"><img src="./brand_assets/after5/after5-02.webp"     alt="Pour. Chill. Enjoy. — bar mural"    loading="lazy" /></div>
            <div className="menu-tile"><img src="./brand_assets/cocktail/cocktail-05.webp" alt="Signature cocktail pour"            loading="lazy" /></div>

            <div className="menu-img-overlay" />
            <div className="menu-img-badge">
              <span className="menu-img-badge-text">
                Pour.<br />Chill.<br />Enjoy.
              </span>
              <span className="menu-img-badge-sub">After5 Signature</span>
            </div>
          </div>

        </div>

        {/* Bottom tagline band */}
        <div className={`menu-tagline ${visible ? 'in' : ''}`}>
          <span className="menu-tagline-word">Cocktails</span>
          <span className="menu-tagline-dot" />
          <span className="menu-tagline-word">Fine Food</span>
          <span className="menu-tagline-dot" />
          <span className="menu-tagline-word">Seafood</span>
          <span className="menu-tagline-dot" />
          <span className="menu-tagline-word">Vegetarian</span>
          <span className="menu-tagline-dot" />
          <span className="menu-tagline-word">Full Bar</span>
        </div>

      </section>
    </>
  );
}
