  * { box-sizing: border-box; }
  body { font-family: 'Public Sans', sans-serif; overflow-x: hidden; }
  .material-symbols-outlined { font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24; vertical-align: middle; }

  /* ── Animations ── */
  @keyframes fadeInUp  { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }
  @keyframes fadeIn    { from{opacity:0} to{opacity:1} }
  @keyframes slideDown { from{opacity:0;transform:translateY(-14px)} to{opacity:1;transform:translateY(0)} }
  @keyframes pulse-ring{
    0%  {box-shadow:0 0 0 0 rgba(106,198,200,.45)}
    70% {box-shadow:0 0 0 14px rgba(106,198,200,0)}
    100%{box-shadow:0 0 0 0 rgba(106,198,200,0)}
  }

  .animate-fade-in-up { animation: fadeInUp .7s ease both; }
  .animate-fade-in    { animation: fadeIn  .6s ease both; }
  .delay-100 { animation-delay:.1s }
  .delay-200 { animation-delay:.2s }
  .delay-300 { animation-delay:.3s }
  .delay-400 { animation-delay:.4s }

  /* ── Scroll reveal ── */
  .reveal { opacity:0; transform:translateY(32px); transition:opacity .65s ease,transform .65s ease; }
  .reveal.visible { opacity:1; transform:translateY(0); }

  /* ── Mobile menu ── */
  #mobile-menu { display:none }
  #mobile-menu.open { display:block; animation:slideDown .3s ease both }

  .hamburger span {
    display:block; width:22px; height:2px;
    background:currentColor; border-radius:2px;
    transition:.3s ease; transform-origin:center;
  }
  .hamburger.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}
  .hamburger.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

  /* ── Timeline ── */
  .tl-line {
    position:absolute; left:50%; transform:translateX(-50%);
    width:2px; top:0; bottom:0;
    background:linear-gradient(180deg,#6ac6c8 0%,#0e6f73 100%);
    z-index:0;
  }
  @media(max-width:767px){
    .tl-line { left:20px; transform:none; }
  }

  /* ── Stat card hover ── */
  .stat-card { transition:transform .25s ease,box-shadow .25s ease }
  .stat-card:hover { transform:translateY(-4px); box-shadow:0 20px 40px rgba(14,111,115,.12) }

  /* ── Team card ── */
  .team-card .thumb-img { transition:transform .5s ease }
  .team-card:hover .thumb-img { transform:scale(1.07) }
  .team-card .overlay { opacity:0; transition:opacity .35s ease }
  .team-card:hover .overlay { opacity:1 }

  /* ── CTA btn ── */
  .btn-pulse { animation:pulse-ring 2.2s infinite }

  /* ── Compliance link underline ── */
  .compliance-link { position:relative }
  .compliance-link::after { content:''; position:absolute; left:0; bottom:-2px; width:0; height:1px; background:#6ac6c8; transition:.3s }
  .compliance-link:hover::after { width:100% }

  html { scroll-behavior:smooth }