  * { 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(26px)} 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)}
  }
  @keyframes gridFade { from{opacity:0} to{opacity:.07} }
  @keyframes scaleIn  { from{opacity:0;transform:scale(.92)} to{opacity:1;transform:scale(1)} }

  .afu { animation: fadeInUp .6s ease both; }
  .af  { animation: fadeIn   .5s ease both; }
  .d1  { animation-delay:.08s } .d2 { animation-delay:.16s }
  .d3  { animation-delay:.24s } .d4 { animation-delay:.32s }

  /* ── Scroll reveal ── */
  .reveal { opacity:0; transform:translateY(26px); transition:opacity .6s ease,transform .6s 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) }

  /* ── Compliance link ── */
  .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% }

  /* ── Masonry ── */
  .masonry { columns:1; column-gap:1.25rem; }
  @media(min-width:640px)  { .masonry { columns:2; } }
  @media(min-width:1024px) { .masonry { columns:3; } }
  .masonry-item { break-inside:avoid; margin-bottom:1.25rem; }

  /* ── Gallery card ── */
  .gallery-card { transition: transform .25s ease, box-shadow .25s ease; }
  .gallery-card:hover { transform: translateY(-4px); box-shadow: 0 20px 44px rgba(14,111,115,.14); }
  .gallery-card:hover .gallery-img { transform: scale(1.07); }
  .gallery-card:hover .gallery-overlay { opacity:1; }
  .gallery-img { transition: transform .5s ease; }
  .gallery-overlay {
    background: linear-gradient(to top, rgba(14,111,115,.92) 0%, rgba(14,111,115,.45) 55%, rgba(14,111,115,0) 100%);
    opacity: 0; transition: opacity .3s ease;
  }

  /* ── Video card ── */
  .video-card { transition: transform .25s ease, box-shadow .25s ease; }
  .video-card:hover { transform: translateY(-4px); box-shadow: 0 20px 44px rgba(14,111,115,.14); }
  .play-btn { transition: transform .2s ease, box-shadow .2s ease; }
  .video-card:hover .play-btn { transform: scale(1.12); box-shadow: 0 0 0 8px rgba(244,208,63,.3); }
  .video-thumb { transition: transform .5s ease; }
  .video-card:hover .video-thumb { transform: scale(1.05); }

  /* ── Filter tabs ── */
  .filter-btn { transition: all .18s ease; }
  .filter-btn.active { background: #0e6f73; color: white; box-shadow: 0 4px 14px rgba(14,111,115,.25); }
  .filter-btn:not(.active):hover { background: rgba(106,198,200,.12); color: #0e6f73; }

  /* ── CTA btn ── */
  .btn-accent { transition: all .2s; }
  .btn-accent:hover { background:#e9c027; transform:translateY(-1px); box-shadow:0 10px 28px rgba(244,208,63,.35); }

  /* ── Social ── */
  .social-btn { transition: all .2s; }
  .social-btn:hover { transform: translateY(-2px); }

  /* ── Lightbox ── */
  #lightbox {
    display:none; position:fixed; inset:0; z-index:1000;
    background:rgba(0,0,0,.92); backdrop-filter:blur(6px);
    align-items:center; justify-content:center;
  }
  #lightbox.open { display:flex; animation:fadeIn .25s ease; }
  #lightbox-img { max-width:92vw; max-height:88vh; border-radius:.75rem; object-fit:contain; animation:scaleIn .3s ease; }
  #lightbox-frame { width:min(900px,92vw); aspect-ratio:16/9; border-radius:.75rem; animation:scaleIn .3s ease; }

  /* ── Pulse btn ── */
  .btn-pulse { animation: pulse-ring 2.2s infinite; }

  /* ── Grid bg ── */
  .grid-bg { animation: gridFade .8s ease both; animation-delay:.3s; }

  /* Hide scrollbar on filter row */
  .scrollbar-none::-webkit-scrollbar { display:none; }
  .scrollbar-none { -ms-overflow-style:none; scrollbar-width:none; }

  html { scroll-behavior: smooth; }