  @media (prefers-reduced-motion: no-preference) {
    .reveal.hidden-reveal {
      opacity: 0;
      transform: translateY(30px);
      transition: opacity 0.7s ease, transform 0.7s ease;
    }
    .reveal.revealed {
      opacity: 1;
      transform: translateY(0);
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .reveal.hidden-reveal {
      opacity: 1;
      transform: none;
      transition: none;
    }
  }

  /* Smooth scrolling */
  html {
    scroll-behavior: smooth;
  }

  /* Navbar scroll state */
  #navbar.scrolled {
    background: rgba(253, 252, 248, 0.95);
    backdrop-filter: blur(10px);
    box-shadow: 0 1px 12px rgba(28, 75, 43, 0.08);
  }

  /* Mobile link hover */
  .mobile-link {
    display: block;
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(28, 75, 43, 0.08);
  }
  .mobile-link:last-child {
    border-bottom: none;
  }

  /* Selection color */
  ::selection {
    background: #dce8dc;
    color: #1f3d23;
  }
</styles.css>
<sm-file path="script.js">
  (function () {
    'use strict';

    // Navbar scroll effect
    const navbar = document.getElementById('navbar');
    let lastScroll = 0;

    function handleScroll() {
      const currentScroll = window.pageYOffset;
      if (currentScroll > 50) {
        navbar.classList.add('scrolled');
      } else {
        navbar.classList.remove('scrolled');
      }
      lastScroll = currentScroll;
    }

    window.addEventListener('scroll', handleScroll, { passive: true });

    // Mobile menu toggle
    const menuToggle = document.getElementById('menu-toggle');
    const mobileMenu = document.getElementById('mobile-menu');
    const menuIconOpen = document.getElementById('menu-icon-open');
    const menuIconClose = document.getElementById('menu-icon-close');
    let menuOpen = false;

    menuToggle.addEventListener('click', function () {
      menuOpen = !menuOpen;
      mobileMenu.classList.toggle('hidden', !menuOpen);
      menuIconOpen.classList.toggle('hidden', menuOpen);
      menuIconClose.classList.toggle('hidden', !menuOpen);
    });

    // Close mobile menu on link click
    document.querySelectorAll('.mobile-link').forEach(function (link) {
      link.addEventListener('click', function () {
        menuOpen = false;
        mobileMenu.classList.add('hidden');
        menuIconOpen.classList.remove('hidden');
        menuIconClose.classList.add('hidden');
      });
    });

    // Scroll reveal (progressive enhancement, respects prefers-reduced-motion)
    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;

    if (!prefersReducedMotion && 'IntersectionObserver' in window) {
      const revealElements = document.querySelectorAll('.reveal.hidden-reveal');

      const revealObserver = new IntersectionObserver(function (entries) {
        entries.forEach(function (entry) {
          if (entry.isIntersecting) {
            entry.target.classList.add('revealed');
            entry.target.classList.remove('hidden-reveal');
            revealObserver.unobserve(entry.target);
          }
        });
      }, {
        threshold: 0.15,
        rootMargin: '0px 0px -40px 0px'
      });

      revealElements.forEach(function (el) {
        revealObserver.observe(el);
      });
    } else {
      // If JS is disabled or reduced motion is preferred, ensure all elements are visible
      document.querySelectorAll('.reveal.hidden-reveal').forEach(function (el) {
        el.classList.remove('hidden-reveal');
        el.classList.add('revealed');
      });
    }
  })();
</script>
