/* ── Base & Utilities ── */
html { scroll-behavior: smooth; }
body { overflow-x: hidden; }

/* ── Geometric Decorations ── */
.geo-circle {
  position: absolute;
  border-radius: 50%;
  opacity: 0.06;
  pointer-events: none;
}
.geo-circle-1 {
  width: 600px; height: 600px;
  background: #2dd4bf;
  top: -200px; left: -150px;
}
.geo-circle-2 {
  width: 400px; height: 400px;
  background: #14b8a6;
  bottom: -100px; right: 10%;
}
.geo-circle-3 {
  width: 200px; height: 200px;
  background: #5eead4;
  top: 30%; left: 55%;
  opacity: 0.04;
}
.geo-circle-4 {
  width: 500px; height: 500px;
  background: #ffffff;
  top: -150px; right: -100px;
  opacity: 0.05;
}
.geo-circle-5 {
  width: 350px; height: 350px;
  background: #14b8a6;
  bottom: -100px; left: -80px;
  opacity: 0.08;
}

.geo-tri {
  position: absolute;
  width: 0; height: 0;
  pointer-events: none;
  opacity: 0.05;
}
.geo-tri-1 {
  border-left: 120px solid transparent;
  border-right: 120px solid transparent;
  border-bottom: 200px solid #2dd4bf;
  top: 15%; right: 8%;
  transform: rotate(15deg);
}
.geo-tri-2 {
  border-left: 80px solid transparent;
  border-right: 80px solid transparent;
  border-bottom: 140px solid #14b8a6;
  bottom: 10%; right: 15%;
  transform: rotate(-20deg);
  opacity: 0.06;
}

.geo-square {
  position: absolute;
  border-radius: 20px;
  opacity: 0.04;
  pointer-events: none;
}
.geo-square-1 {
  width: 180px; height: 180px;
  background: #0d9488;
  top: 40%; left: 5%;
  transform: rotate(30deg);
}
.geo-square-2 {
  width: 250px; height: 250px;
  background: #ffffff;
  bottom: -80px; left: 10%;
  transform: rotate(-15deg);
}

/* ── Hero Photo ── */
.hero-photo {
  clip-path: polygon(15% 0%, 100% 0%, 100% 100%, 0% 100%);
}

/* ── Scroll Reveal (progressive enhancement) ── */
@media (prefers-reduced-motion: no-preference) {
  .reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.7s ease, transform 0.7s ease;
  }
  .reveal.revealed {
    opacity: 1;
    transform: translateY(0);
  }
  .reveal-delay-1 { transition-delay: 0.1s; }
  .reveal-delay-2 { transition-delay: 0.2s; }
  .reveal-delay-3 { transition-delay: 0.3s; }
}

/* ── Mobile Menu Transition ── */
#mobileMenu {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
#mobileMenu.open {
  max-height: 400px;
}

/* ── Navbar Shadow on Scroll ── */
nav.scrolled {
  box-shadow: 0 1px 20px rgba(0,0,0,0.08);
}
