:root {
  --background: #2C3A30;
  --foreground: #F8FAF9;
  --card: rgba(255, 255, 255, 0.03);
  --card-foreground: #F8FAF9;
  --popover: #212C24;
  --popover-foreground: #F8FAF9;
  --primary: #D4AF37;
  --primary-foreground: #000000;
  --secondary: rgba(255, 255, 255, 0.05);
  --secondary-foreground: #F8FAF9;
  --muted: rgba(255, 255, 255, 0.1);
  --muted-foreground: #9CA3AF;
  --accent: #111413;
  --accent-foreground: #F8FAF9;
  --border: rgba(255, 255, 255, 0.08);
  --input: rgba(255, 255, 255, 0.1);
  --ring: #D4AF37;
  --radius: 1rem;
}

body {
  background-color: var(--background);
  color: var(--foreground);
}

html {
  scroll-behavior: smooth;
}


/* SCROLL REVEAL ANIMATIONS */
.scroll-reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}
.scroll-reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}

.scroll-reveal-left {
  opacity: 0;
  transform: translateX(-40px);
  transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}
.scroll-reveal-left.revealed {
  opacity: 1;
  transform: translateX(0);
}

.scroll-reveal-right {
  opacity: 0;
  transform: translateX(40px);
  transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}
.scroll-reveal-right.revealed {
  opacity: 1;
  transform: translateX(0);
}

.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }
.delay-400 { transition-delay: 400ms; }
.delay-500 { transition-delay: 500ms; }

.scroll-reveal-blur {
  opacity: 0;
  filter: blur(12px);
  transform: scale(0.95);
  transition: all 1.4s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform, filter;
}
.scroll-reveal-blur.revealed {
  opacity: 1;
  filter: blur(0px);
  transform: scale(1);
}

@keyframes slideUp {
  from { opacity: 0; transform: translateY(80px) rotate(2deg); }
  to { opacity: 1; transform: translateY(0) rotate(0); }
}

@keyframes letterReveal {
  0% { transform: translateY(120px); opacity: 0; filter: blur(10px); }
  100% { transform: translateY(0); opacity: 1; filter: blur(0); }
}
.animate-letter-reveal {
  animation: letterReveal 1.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  opacity: 0;
  display: inline-block;
}

@keyframes subtitleReveal {
  0% { transform: translateY(-20px); opacity: 0; letter-spacing: 0em; filter: blur(5px); }
  100% { transform: translateY(0); opacity: 1; letter-spacing: 0.4em; filter: blur(0); }
}
.animate-subtitle-reveal {
  animation: subtitleReveal 1.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  opacity: 0;
}

@keyframes gradientMove {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

@keyframes float {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-20px); }
}

@keyframes scale-in {
  from { opacity: 0; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes fadeIn {
  from { opacity: 0; transform: scale(1.02); }
  to { opacity: 1; transform: scale(1); }
}

.animate-float { animation: float 6s ease-in-out infinite; }
.animate-scale-in { animation: scale-in 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
.animate-fade-in { animation: fadeIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; }

/* Custom hide scrollbar */
.scrollbar-hide {
  -ms-overflow-style: none;  /* IE and Edge */
  scrollbar-width: none;  /* Firefox */
}
.scrollbar-hide::-webkit-scrollbar {
  display: none; /* Chrome, Safari and Opera */
}
