﻿
    /* --- Custom Animations --- */
    @keyframes fade-in-down {
      from { opacity: 0; transform: translateY(-20px); }
      to { opacity: 1; transform: translateY(0); }
    }
    .animate-fade-in-down {
      animation: fade-in-down 0.6s ease-out forwards;
    }

    @keyframes fade-in-up {
      from { opacity: 0; transform: translateY(20px); }
      to { opacity: 1; transform: translateY(0); }
    }
    .animate-fade-in-up {
      animation: fade-in-up 0.8s ease-out forwards;
    }

    @keyframes scale-in {
      from { opacity: 0; transform: scale(0.9); }
      to { opacity: 1; transform: scale(1); }
    }
    .animate-scale-in {
      animation: scale-in 0.8s ease-out forwards;
    }

    /* Prevent pre-animation flash/blink when delays are used */
    .animate-fade-in-down,
    .animate-fade-in-up,
    .animate-scale-in {
      opacity: 0;
      animation-fill-mode: both;
    }

    @keyframes glow-pulse {
      0% { box-shadow: 0 0 20px rgba(38, 92, 255, 0.5); }
      50% { box-shadow: 0 0 40px rgba(38, 92, 255, 0.8); }
      100% { box-shadow: 0 0 20px rgba(38, 92, 255, 0.5); }
    }
    .animate-glow {
      animation: glow-pulse 2s infinite;
    }

    @keyframes glow-pulse-alt {
      0% { box-shadow: 0 0 30px rgba(193, 39, 45, 0.6); }
      50% { box-shadow: 0 0 60px rgba(212, 160, 55, 0.8); }
      100% { box-shadow: 0 0 30px rgba(193, 39, 45, 0.6); }
    }
    .animate-glow-alt {
      animation: glow-pulse-alt 2s infinite;
    }

    @keyframes scroll-dot {
      0%,100% { transform: translateY(0); }
      50% { transform: translateY(6px); }
    }
    .animate-scroll-dot {
      animation: scroll-dot 1.5s infinite;
    }

    @keyframes float-y {
      0%,100% { transform: translateY(0); }
      50% { transform: translateY(10px); }
    }
    .animate-float-y {
      animation: float-y 1.5s infinite;
    }
    html {
      scroll-behavior: smooth;
    }

    /* Smooth Scroll & Scrollbar */
    ::-webkit-scrollbar {
      width: 8px;
    }

    ::-webkit-scrollbar-track {
      background: #0a0a0a;
    }

    ::-webkit-scrollbar-thumb {
      background: #333;
      border-radius: 4px;
    }

    ::-webkit-scrollbar-thumb:hover {
      background: #c5a059;
    }

    /* Hide scrollbar for slider but keep functionality */
    .hide-scroll::-webkit-scrollbar {
      display: none;
    }

    .hide-scroll {
      -ms-overflow-style: none;
      scrollbar-width: none;
    }

    /* Text Stroke */
    .text-outline {
      -webkit-text-stroke: 2px rgba(255, 255, 255, 0.1);
      color: transparent;
    }

    /* Floating Animation */
    @keyframes float {
      0%,
      100% {
        transform: translateY(0) translateX(-50%);
      }

      50% {
        transform: translateY(-15px) translateX(-50%);
      }
    }

    .float-rock {
      animation: float 6s ease-in-out infinite;
    }

    /* Masonry Grid */
    .masonry-grid {
      column-count: 1;
      column-gap: 1.5rem;
    }

    @media (min-width: 768px) {
      .masonry-grid {
        column-count: 2;
      }
    }

    @media (min-width: 1024px) {
      .masonry-grid {
        column-count: 3;
      }
    }

    @media (min-width: 1280px) {
      .masonry-grid {
        column-count: 4;
      }
    }

    .break-inside-avoid {
      break-inside: avoid;
      page-break-inside: avoid;
    }

    /* Reveal Animation */
    .reveal {
      opacity: 0;
      transform: translateY(50px);
      transition: all 1s cubic-bezier(0.5, 0, 0, 1);
    }

    .reveal.active {
      opacity: 1;
      transform: translateY(0);
    }

    /* Lightbox */
    #lightbox {
      transition: opacity 0.3s ease-in-out, visibility 0.3s;
    }

    /* Contact Drawer Transitions */
    #contact-drawer {
      transition: transform 0.5s cubic-bezier(0.77, 0, 0.175, 1);
    }

    #contact-overlay {
      transition: opacity 0.5s ease-in-out, visibility 0.5s;
    }

    /* Ensures active tabs keep white text on hover */
    .filter-btn.active:hover {
      color: #ffffff !important;
      background-color: #c5a059 !important;
      border-color: #c5a059 !important;
    }
