/* subtle reveal animations, modern scroll behaviour */
    html { scroll-behavior: smooth; }
    .section-fade {
      opacity: 0;
      transform: translateY(25px);
      transition: opacity 0.8s ease-out, transform 0.8s ease-out;
    }
    .section-fade.visible {
      opacity: 1;
      transform: translateY(0);
    }
    /* staggered children for team / services cards */
    .stagger-group > * {
      opacity: 0;
      transform: translateY(15px);
      animation: staggerPop 0.5s ease forwards;
    }
    @keyframes staggerPop {
      to { opacity: 1; transform: translateY(0); }
    }
    /* floating hero image (gentle) */
    .float-soft {
      animation: float 6s infinite ease-in-out;
    }
    @keyframes float {
      0% { transform: translateY(0px); }
      50% { transform: translateY(-12px); }
      100% { transform: translateY(0px); }
    }
    /* custom underline for headings */
    .accent-underline {
      position: relative;
      display: inline-block;
    }
    .accent-underline:after {
      content: '';
      position: absolute;
      left: 0;
      bottom: -8px;
      width: 70px;
      height: 4px;
      background: linear-gradient(90deg, #f97316, #facc15);
      border-radius: 4px;
    }
    /* card hover effects */
    .service-card, .team-card {
      transition: all 0.3s cubic-bezier(0.25,0.46,0.45,0.94);
    }
    .service-card:hover, .team-card:hover {
      transform: scale(1.02) translateY(-6px);
      box-shadow: 0 25px 30px -15px rgba(0,0,0,0.2);
    }
    /* mobile menu slide animation */
    .mobile-menu-enter {
      max-height: 0;
      opacity: 0;
      overflow: hidden;
      transition: max-height 0.4s ease-in-out, opacity 0.3s ease;
    }
    .mobile-menu-enter-active {
      max-height: 400px; /* enough for menu items */
      opacity: 1;
    }