 *,
 *::before,
 *::after {
   box-sizing: border-box;
 }

 body {
   margin: 0;
   font-family: 'Inter', system-ui, sans-serif;
   background: #ffffff;
   color: #001529;
   -webkit-font-smoothing: antialiased;
 }

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

 ::-webkit-scrollbar-track {
   background: #001529;
 }

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

 /* Animations */
 @keyframes marquee {
   0% {
     transform: translateX(0);
   }

   100% {
     transform: translateX(-50%);
   }
 }

 .animate-marquee {
   animation: marquee 30s linear infinite;
 }

 @keyframes kenburns {
   0% {
     transform: scale(1);
   }

   100% {
     transform: scale(1.08);
   }
 }

 .animate-kenburns {
   animation: kenburns 8s ease-out forwards;
 }

 @keyframes fadeInUp {
   from {
     opacity: 0;
     transform: translateY(30px);
   }

   to {
     opacity: 1;
     transform: translateY(0);
   }
 }

 .animate-fade-in-up {
   animation: fadeInUp 0.6s ease-out forwards;
 }

 @keyframes fadeIn {
   from {
     opacity: 0;
   }

   to {
     opacity: 1;
   }
 }

 .animate-fade-in {
   animation: fadeIn 0.5s ease-out forwards;
 }

 @keyframes slideUp {
   from {
     opacity: 0;
     transform: translateY(100px);
   }

   to {
     opacity: 1;
     transform: translateY(0);
   }
 }

 .animate-slide-up {
   animation: slideUp 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
 }

 @keyframes scaleX {
   from {
     transform: scaleX(0);
   }

   to {
     transform: scaleX(1);
   }
 }

 .animate-scale-x {
   animation: scaleX 0.8s ease-out 0.3s forwards;
   transform-origin: left;
   transform: scaleX(0);
 }

 /* Hero Slide Transitions */
 .hero-slide {
   position: absolute;
   inset: 0;
   opacity: 0;
   transition: opacity 1.2s ease-in-out;
 }

 .hero-slide.active {
   opacity: 1;
 }

 .hero-content {
   opacity: 0;
   transform: translateY(30px);
   transition: opacity 0.8s ease-out 0.3s, transform 0.8s ease-out 0.3s;
 }

 .hero-slide.active .hero-content {
   opacity: 1;
   transform: translateY(0);
 }

 /* Lightbox */
 .lightbox-overlay {
   position: fixed;
   inset: 0;
   z-index: 60;
   display: flex;
   align-items: center;
   justify-content: center;
   background: rgba(0, 21, 41, 0.95);
   backdrop-filter: blur(4px);
   opacity: 0;
   pointer-events: none;
   transition: opacity 0.3s;
 }

 .lightbox-overlay.active {
   opacity: 1;
   pointer-events: all;
 }

 .lightbox-img {
   max-width: 90vw;
   max-height: 80vh;
   object-fit: contain;
   border-radius: 8px;
   transform: scale(0.9);
   transition: transform 0.3s;
 }

 .lightbox-overlay.active .lightbox-img {
   transform: scale(1);
 }

 /* Cookie Banner */
 .cookie-banner {
   transform: translateY(100%);
   transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.3s;
   opacity: 0;
 }

 .cookie-banner.visible {
   transform: translateY(0);
   opacity: 1;
 }

 /* Page sections (hidden by default for SPA navigation) */
 .page-section {
   display: block;
 }

 .page-section.active {
   display: block;
 }

 /* Intersection Observer animation helper */
 .reveal {
   opacity: 0;
   transform: translateY(30px);
   transition: opacity 0.6s ease-out, transform 0.6s ease-out;
 }

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

 /* Line clamp */
 .line-clamp-2 {
   display: -webkit-box;
   -webkit-line-clamp: 2;
   -webkit-box-orient: vertical;
   overflow: hidden;
 }

 .line-clamp-3 {
   display: -webkit-box;
   -webkit-line-clamp: 3;
   -webkit-box-orient: vertical;
   overflow: hidden;
 }