/* ── Base & Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 64px; }
body { min-height: 100vh; }
img { max-width: 100%; height: auto; display: block; }

/* ── Scroll Reveal ── */
.reveal {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.reveal[data-reveal="hidden"] {
  opacity: 0;
  transform: translateY(24px);
}
@media (prefers-reduced-motion: no-preference) {
  .reveal[data-reveal="hidden"] {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  }
}

/* ── Mobile Menu ── */
#mobile-menu.open {
  opacity: 1;
  pointer-events: auto;
}
#mobile-menu.closed {
  opacity: 0;
  pointer-events: none;
}
body.menu-open { overflow: hidden; }

/* ── Hamburger ── */
#menu-btn.active #bar1 { transform: translateY(6px) rotate(45deg); }
#menu-btn.active #bar2 { opacity: 0; }
#menu-btn.active #bar3 { transform: translateY(-6px) rotate(-45deg); }

/* ── Subtle Line Accents ── */
section::before {
  content: '';
  display: block;
  width: 40px;
  height: 1px;
  background: #f05a1e;
  margin-bottom: 1.5rem;
}
