/**
 * ============================================
 * SeoNet Animation System - Modern Animasyon KÃ¼tÃ¼phanesi
 * ============================================
 * Class tabanlÄ±, kolayca entegre edilebilir animasyon sistemi.
 * 
 * KullanÄ±m: Animasyon vermek istediÄŸiniz elemente class ekleyin.
 * Ã–rnek: <div class="anim-fade-up delay-200">Ä°Ã§erik</div>
 */

/* ============================================
   CSS DEÄÄ°ÅKENLERÄ° (Custom Properties)
   ============================================ */
:root {
  /* SÃ¼reler */
  --anim-duration-fast: 200ms;
  --anim-duration-normal: 400ms;
  --anim-duration-slow: 600ms;
  --anim-duration-slower: 1000ms;
  
  /* VarsayÄ±lan sÃ¼re */
  --anim-duration: var(--anim-duration-normal);
  
  /* Easing fonksiyonlarÄ± */
  --ease-linear: linear;
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
  --ease-smooth: cubic-bezier(0.25, 0.1, 0.25, 1);
  
  /* VarsayÄ±lan easing */
  --anim-ease: var(--ease-out);
  
  /* Mesafeler */
  --anim-distance: 30px;
  --anim-distance-lg: 60px;
  
  /* Ã–lÃ§ek */
  --anim-scale-from: 0.9;
  --anim-scale-to: 1;
  
  /* Blur */
  --anim-blur: 10px;
  
  /* DÃ¶ndÃ¼rme */
  --anim-rotate: 15deg;
}

/* ============================================
   TEMEL ANIMASYON DURUMLARI
   ============================================ */

/* Animasyon bekleyen elementler - baÅŸlangÄ±Ã§ durumu */
[class*="anim-"]:not(.anim-active):not(.anim-marquee):not(.anim-on-load):not([class*="hover-"]) {
  opacity: 0;
  will-change: opacity, transform;
}

/* Animasyon aktif olduÄŸunda */
.anim-active {
  opacity: 1 !important;
}

/* ============================================
   FADE ANÄ°MASYONLARI
   ============================================ */

/* Fade In - Saydamdan gÃ¶rÃ¼nÃ¼r */
.anim-fade-in {
  opacity: 0;
  transition: opacity var(--anim-duration) var(--anim-ease);
}
.anim-fade-in.anim-active {
  opacity: 1;
}

/* Fade Up - AÅŸaÄŸÄ±dan yukarÄ± kayarak gÃ¶rÃ¼nÃ¼r */
.anim-fade-up {
  opacity: 0;
  transform: translateY(var(--anim-distance));
  transition: opacity var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--anim-ease);
}
.anim-fade-up.anim-active {
  opacity: 1;
  transform: translateY(0);
}

/* Fade Down - YukarÄ±dan aÅŸaÄŸÄ± kayarak gÃ¶rÃ¼nÃ¼r */
.anim-fade-down {
  opacity: 0;
  transform: translateY(calc(var(--anim-distance) * -1));
  transition: opacity var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--anim-ease);
}
.anim-fade-down.anim-active {
  opacity: 1;
  transform: translateY(0);
}

/* Fade Left - Soldan saÄŸa kayarak gÃ¶rÃ¼nÃ¼r */
.anim-fade-left {
  opacity: 0;
  transform: translateX(calc(var(--anim-distance) * -1));
  transition: opacity var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--anim-ease);
}
.anim-fade-left.anim-active {
  opacity: 1;
  transform: translateX(0);
}

/* Fade Right - SaÄŸdan sola kayarak gÃ¶rÃ¼nÃ¼r */
.anim-fade-right {
  opacity: 0;
  transform: translateX(var(--anim-distance));
  transition: opacity var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--anim-ease);
}
.anim-fade-right.anim-active {
  opacity: 1;
  transform: translateX(0);
}

/* ============================================
   SLIDE ANÄ°MASYONLARI (Opacity deÄŸiÅŸmeden)
   ============================================ */

/* Slide Up */
.anim-slide-up {
  opacity: 0;
  transform: translateY(var(--anim-distance-lg));
  transition: opacity var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--anim-ease);
}
.anim-slide-up.anim-active {
  opacity: 1;
  transform: translateY(0);
}

/* Slide Down */
.anim-slide-down {
  opacity: 0;
  transform: translateY(calc(var(--anim-distance-lg) * -1));
  transition: opacity var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--anim-ease);
}
.anim-slide-down.anim-active {
  opacity: 1;
  transform: translateY(0);
}

/* Slide Left */
.anim-slide-left {
  opacity: 0;
  transform: translateX(calc(var(--anim-distance-lg) * -1));
  transition: opacity var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--anim-ease);
}
.anim-slide-left.anim-active {
  opacity: 1;
  transform: translateX(0);
}

/* Slide Right */
.anim-slide-right {
  opacity: 0;
  transform: translateX(var(--anim-distance-lg));
  transition: opacity var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--anim-ease);
}
.anim-slide-right.anim-active {
  opacity: 1;
  transform: translateX(0);
}

/* ============================================
   SCALE ANÄ°MASYONLARI
   ============================================ */

/* Scale In - KÃ¼Ã§Ã¼kten bÃ¼yÃ¼ÄŸe */
.anim-scale-in {
  opacity: 0;
  transform: scale(var(--anim-scale-from));
  transition: opacity var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--anim-ease);
}
.anim-scale-in.anim-active {
  opacity: 1;
  transform: scale(1);
}

/* Scale Out - BÃ¼yÃ¼kten kÃ¼Ã§Ã¼ÄŸe (gÃ¶rÃ¼nÃ¼r olmak iÃ§in) */
.anim-scale-out {
  opacity: 0;
  transform: scale(1.1);
  transition: opacity var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--anim-ease);
}
.anim-scale-out.anim-active {
  opacity: 1;
  transform: scale(1);
}

/* Scale Up - Fade up ile birlikte scale */
.anim-scale-up {
  opacity: 0;
  transform: scale(0.95) translateY(var(--anim-distance));
  transition: opacity var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--anim-ease);
}
.anim-scale-up.anim-active {
  opacity: 1;
  transform: scale(1) translateY(0);
}

/* ============================================
   ROTATE / FLIP ANÄ°MASYONLARI
   ============================================ */

/* Rotate In - DÃ¶nerek gÃ¶rÃ¼nÃ¼r */
.anim-rotate-in {
  opacity: 0;
  transform: rotate(calc(var(--anim-rotate) * -1)) scale(0.9);
  transition: opacity var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--anim-ease);
}
.anim-rotate-in.anim-active {
  opacity: 1;
  transform: rotate(0) scale(1);
}

/* Flip X - X ekseninde dÃ¶nerek */
.anim-flip-x {
  opacity: 0;
  transform: perspective(400px) rotateX(90deg);
  transition: opacity var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--anim-ease);
}
.anim-flip-x.anim-active {
  opacity: 1;
  transform: perspective(400px) rotateX(0);
}

/* Flip Y - Y ekseninde dÃ¶nerek */
.anim-flip-y {
  opacity: 0;
  transform: perspective(400px) rotateY(90deg);
  transition: opacity var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--anim-ease);
}
.anim-flip-y.anim-active {
  opacity: 1;
  transform: perspective(400px) rotateY(0);
}

/* ============================================
   BLUR ANÄ°MASYONU
   ============================================ */

/* Blur In - BulanÄ±ktan netleÅŸen */
.anim-blur-in {
  opacity: 0;
  filter: blur(var(--anim-blur));
  transition: opacity var(--anim-duration) var(--anim-ease),
              filter var(--anim-duration) var(--anim-ease);
}
.anim-blur-in.anim-active {
  opacity: 1;
  filter: blur(0);
}

/* Blur Up - Blur + fade up kombinasyonu */
.anim-blur-up {
  opacity: 0;
  filter: blur(var(--anim-blur));
  transform: translateY(var(--anim-distance));
  transition: opacity var(--anim-duration) var(--anim-ease),
              filter var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--anim-ease);
}
.anim-blur-up.anim-active {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
}

/* ============================================
   BOUNCE ANÄ°MASYONU
   ============================================ */

@keyframes bounceIn {
  0% {
    opacity: 0;
    transform: scale(0.3);
  }
  50% {
    transform: scale(1.05);
  }
  70% {
    transform: scale(0.9);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

.anim-bounce {
  opacity: 0;
}
.anim-bounce.anim-active {
  animation: bounceIn var(--anim-duration-slow) var(--ease-bounce) forwards;
}

/* ============================================
   ZOOM ANÄ°MASYONLARI
   ============================================ */

/* Zoom In */
.anim-zoom-in {
  opacity: 0;
  transform: scale(0);
  transition: opacity var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--ease-bounce);
}
.anim-zoom-in.anim-active {
  opacity: 1;
  transform: scale(1);
}

/* Zoom Out */
.anim-zoom-out {
  opacity: 0;
  transform: scale(1.5);
  transition: opacity var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--anim-ease);
}
.anim-zoom-out.anim-active {
  opacity: 1;
  transform: scale(1);
}

/* ============================================
   GECÄ°KME CLASS'LARI (DELAY)
   ============================================ */

.delay-0 { transition-delay: 0ms !important; }
.delay-50 { transition-delay: 50ms !important; }
.delay-100 { transition-delay: 100ms !important; }
.delay-150 { transition-delay: 150ms !important; }
.delay-200 { transition-delay: 200ms !important; }
.delay-300 { transition-delay: 300ms !important; }
.delay-400 { transition-delay: 400ms !important; }
.delay-500 { transition-delay: 500ms !important; }
.delay-600 { transition-delay: 600ms !important; }
.delay-700 { transition-delay: 700ms !important; }
.delay-800 { transition-delay: 800ms !important; }
.delay-900 { transition-delay: 900ms !important; }
.delay-1000 { transition-delay: 1000ms !important; }
.delay-1100 { transition-delay: 1100ms !important; }
.delay-1200 { transition-delay: 1200ms !important; }
.delay-1300 { transition-delay: 1300ms !important; }
.delay-1400 { transition-delay: 1400ms !important; }
.delay-1500 { transition-delay: 1500ms !important; }
.delay-1600 { transition-delay: 1600ms !important; }
.delay-1700 { transition-delay: 1700ms !important; }
.delay-1800 { transition-delay: 1800ms !important; }
.delay-1900 { transition-delay: 1900ms !important; }
.delay-2000 { transition-delay: 2000ms !important; }
.delay-2100 { transition-delay: 2100ms !important; }
.delay-2200 { transition-delay: 2200ms !important; }
.delay-2300 { transition-delay: 2300ms !important; }
.delay-2400 { transition-delay: 2400ms !important; }
.delay-2500 { transition-delay: 2500ms !important; }

/* ============================================
   SÃœRE CLASS'LARI (DURATION)
   ============================================ */

.duration-fast { --anim-duration: var(--anim-duration-fast); }
.duration-normal { --anim-duration: var(--anim-duration-normal); }
.duration-slow { --anim-duration: var(--anim-duration-slow); }
.duration-slower { --anim-duration: var(--anim-duration-slower); }

/* Ã–zel sÃ¼reler */
.duration-100 { --anim-duration: 100ms; }
.duration-200 { --anim-duration: 200ms; }
.duration-300 { --anim-duration: 300ms; }
.duration-400 { --anim-duration: 400ms; }
.duration-500 { --anim-duration: 500ms; }
.duration-600 { --anim-duration: 600ms; }
.duration-700 { --anim-duration: 700ms; }
.duration-800 { --anim-duration: 800ms; }
.duration-900 { --anim-duration: 900ms; }
.duration-1000 { --anim-duration: 1000ms; }
.duration-1100 { --anim-duration: 1100ms; }
.duration-1200 { --anim-duration: 1200ms; }
.duration-1300 { --anim-duration: 1300ms; }
.duration-1400 { --anim-duration: 1400ms; }
.duration-1500 { --anim-duration: 1500ms; }
.duration-1600 { --anim-duration: 1600ms; }
.duration-1700 { --anim-duration: 1700ms; }
.duration-1800 { --anim-duration: 1800ms; }
.duration-1900 { --anim-duration: 1900ms; }
.duration-2000 { --anim-duration: 2000ms; }
.duration-2100 { --anim-duration: 2100ms; }
.duration-2200 { --anim-duration: 2200ms; }
.duration-2300 { --anim-duration: 2300ms; }
.duration-2400 { --anim-duration: 2400ms; }
.duration-2500 { --anim-duration: 2500ms; }

/* ============================================
   EASING CLASS'LARI
   ============================================ */

.ease-linear { --anim-ease: var(--ease-linear); }
.ease-in { --anim-ease: var(--ease-in); }
.ease-out { --anim-ease: var(--ease-out); }
.ease-in-out { --anim-ease: var(--ease-in-out); }
.ease-bounce { --anim-ease: var(--ease-bounce); }
.ease-smooth { --anim-ease: var(--ease-smooth); }

/* ============================================
   STAGGER (SIRALAMALI GECÄ°KME)
   ============================================ */

/* Stagger container */
.stagger-children > * {
  --stagger-delay: 0ms;
}

/* Stagger aralÄ±klarÄ± - JS tarafÄ±ndan hesaplanÄ±r */
.stagger-50 > *:nth-child(1) { transition-delay: 0ms; }
.stagger-50 > *:nth-child(2) { transition-delay: 50ms; }
.stagger-50 > *:nth-child(3) { transition-delay: 100ms; }
.stagger-50 > *:nth-child(4) { transition-delay: 150ms; }
.stagger-50 > *:nth-child(5) { transition-delay: 200ms; }
.stagger-50 > *:nth-child(6) { transition-delay: 250ms; }
.stagger-50 > *:nth-child(7) { transition-delay: 300ms; }
.stagger-50 > *:nth-child(8) { transition-delay: 350ms; }
.stagger-50 > *:nth-child(9) { transition-delay: 400ms; }
.stagger-50 > *:nth-child(10) { transition-delay: 450ms; }

.stagger-100 > *:nth-child(1) { transition-delay: 0ms; }
.stagger-100 > *:nth-child(2) { transition-delay: 100ms; }
.stagger-100 > *:nth-child(3) { transition-delay: 200ms; }
.stagger-100 > *:nth-child(4) { transition-delay: 300ms; }
.stagger-100 > *:nth-child(5) { transition-delay: 400ms; }
.stagger-100 > *:nth-child(6) { transition-delay: 500ms; }
.stagger-100 > *:nth-child(7) { transition-delay: 600ms; }
.stagger-100 > *:nth-child(8) { transition-delay: 700ms; }
.stagger-100 > *:nth-child(9) { transition-delay: 800ms; }
.stagger-100 > *:nth-child(10) { transition-delay: 900ms; }

.stagger-150 > *:nth-child(1) { transition-delay: 0ms; }
.stagger-150 > *:nth-child(2) { transition-delay: 150ms; }
.stagger-150 > *:nth-child(3) { transition-delay: 300ms; }
.stagger-150 > *:nth-child(4) { transition-delay: 450ms; }
.stagger-150 > *:nth-child(5) { transition-delay: 600ms; }
.stagger-150 > *:nth-child(6) { transition-delay: 750ms; }
.stagger-150 > *:nth-child(7) { transition-delay: 900ms; }
.stagger-150 > *:nth-child(8) { transition-delay: 1050ms; }
.stagger-150 > *:nth-child(9) { transition-delay: 1200ms; }
.stagger-150 > *:nth-child(10) { transition-delay: 1350ms; }

.stagger-200 > *:nth-child(1) { transition-delay: 0ms; }
.stagger-200 > *:nth-child(2) { transition-delay: 200ms; }
.stagger-200 > *:nth-child(3) { transition-delay: 400ms; }
.stagger-200 > *:nth-child(4) { transition-delay: 600ms; }
.stagger-200 > *:nth-child(5) { transition-delay: 800ms; }
.stagger-200 > *:nth-child(6) { transition-delay: 1000ms; }
.stagger-200 > *:nth-child(7) { transition-delay: 1200ms; }
.stagger-200 > *:nth-child(8) { transition-delay: 1400ms; }
.stagger-200 > *:nth-child(9) { transition-delay: 1600ms; }
.stagger-200 > *:nth-child(10) { transition-delay: 1800ms; }

/* ============================================
   HOVER ANÄ°MASYONLARI
   ============================================ */

/* Hover Scale - Ãœzerine gelince bÃ¼yÃ¼r */
.hover-scale {
  transition: transform var(--anim-duration-fast) var(--anim-ease);
}
.hover-scale:hover {
  transform: scale(1.05);
}

/* Hover Scale Large */
.hover-scale-lg {
  transition: transform var(--anim-duration-fast) var(--anim-ease);
}
.hover-scale-lg:hover {
  transform: scale(1.1);
}

/* Hover Lift - Ãœzerine gelince yukarÄ± kalkar */
.hover-lift {
  transition: transform var(--anim-duration-fast) var(--anim-ease),
              box-shadow var(--anim-duration-fast) var(--anim-ease);
}
.hover-lift:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

/* Hover Lift Large */
.hover-lift-lg {
  transition: transform var(--anim-duration-fast) var(--anim-ease),
              box-shadow var(--anim-duration-fast) var(--anim-ease);
}
.hover-lift-lg:hover {
  transform: translateY(-10px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}

/* Hover Glow - Ãœzerine gelince parlama */
.hover-glow {
  transition: box-shadow var(--anim-duration-fast) var(--anim-ease);
}
.hover-glow:hover {
  box-shadow: 0 0 20px rgba(59, 130, 246, 0.5);
}

/* Hover Shake - Ãœzerine gelince sallanma */
@keyframes shake {
  0%, 100% { transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
  20%, 40%, 60%, 80% { transform: translateX(5px); }
}
.hover-shake:hover {
  animation: shake 0.5s ease-in-out;
}

/* Hover Pulse - Ãœzerine gelince nabÄ±z gibi */
@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}
.hover-pulse:hover {
  animation: pulse 1s ease-in-out infinite;
}

/* Hover Rotate - Ãœzerine gelince dÃ¶ner */
.hover-rotate {
  transition: transform var(--anim-duration-normal) var(--anim-ease);
}
.hover-rotate:hover {
  transform: rotate(5deg);
}

/* Hover Tilt - 3D eÄŸilme efekti */
.hover-tilt {
  transition: transform var(--anim-duration-fast) var(--anim-ease);
  transform-style: preserve-3d;
}
.hover-tilt:hover {
  transform: perspective(500px) rotateX(5deg) rotateY(5deg);
}

/* Hover Underline - Alt Ã§izgi animasyonu */
.hover-underline {
  position: relative;
  display: inline-block;
}
.hover-underline::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background: currentColor;
  transition: width var(--anim-duration-fast) var(--anim-ease);
}
.hover-underline:hover::after {
  width: 100%;
}

/* Hover Fill - Arka plan dolma efekti */
.hover-fill {
  position: relative;
  overflow: hidden;
  z-index: 1;
}
.hover-fill::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 100%;
  background: rgba(0, 0, 0, 0.1);
  transition: width var(--anim-duration-normal) var(--anim-ease);
  z-index: -1;
}
.hover-fill:hover::before {
  width: 100%;
}

/* ============================================
   BUTON ANÄ°MASYONLARI
   ============================================ */

/* --- TEMEL BUTON HAZIRLIÄI --- */
[class*="btn-anim"] {
  position: relative;
  overflow: hidden;
  z-index: 1;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* --- BACKGROUND GEÃ‡Ä°ÅLERÄ° --- */

/* Sweep Left - Soldan saÄŸa dolma */
.btn-anim-sweep-left::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 100%;
  background: var(--btn-hover-bg, rgba(255,255,255,0.15));
  transition: width 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  z-index: -1;
}

.btn-anim-sweep-left:hover::before {
  width: 100%;
}

/* Sweep Right - SaÄŸdan sola dolma */
.btn-anim-sweep-right::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 0;
  height: 100%;
  background: var(--btn-hover-bg, rgba(255,255,255,0.15));
  transition: width 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  z-index: -1;
}

.btn-anim-sweep-right:hover::before {
  width: 100%;
}

/* Sweep Up - AÅŸaÄŸÄ±dan yukarÄ± dolma */
.btn-anim-sweep-up::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 0;
  background: var(--btn-hover-bg, rgba(255,255,255,0.15));
  transition: height 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  z-index: -1;
}

.btn-anim-sweep-up:hover::before {
  height: 100%;
}

/* Sweep Down - YukarÄ±dan aÅŸaÄŸÄ± dolma */
.btn-anim-sweep-down::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 0;
  background: var(--btn-hover-bg, rgba(255,255,255,0.15));
  transition: height 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  z-index: -1;
}

.btn-anim-sweep-down:hover::before {
  height: 100%;
}

/* Sweep Center - Ortadan yanlara */
.btn-anim-sweep-center::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  width: 0;
  height: 100%;
  background: var(--btn-hover-bg, rgba(255,255,255,0.15));
  transition: width 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), left 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  z-index: -1;
}

.btn-anim-sweep-center:hover::before {
  width: 100%;
  left: 0;
}

/* --- GRADIENT ANÄ°MASYONLARI --- */

/* Gradient Shift */
.btn-anim-gradient {
  background-size: 200% 100%;
  background-position: 0% 50%;
  transition: background-position 0.5s ease;
}

.btn-anim-gradient:hover {
  background-position: 100% 50%;
}

/* Gradient Shine - Parlama geÃ§iÅŸi */
.btn-anim-shine {
  background: linear-gradient(
    110deg,
    var(--btn-bg, #6366f1) 0%,
    var(--btn-bg, #6366f1) 40%,
    var(--btn-shine, rgba(255,255,255,0.3)) 50%,
    var(--btn-bg, #6366f1) 60%,
    var(--btn-bg, #6366f1) 100%
  );
  background-size: 200% 100%;
  background-position: 100% 50%;
}

.btn-anim-shine:hover {
  background-position: -100% 50%;
  transition: background-position 0.7s ease;
}

/* --- BORDER ANÄ°MASYONLARI --- */

/* Border Draw - Ã‡izgi Ã§izme efekti */
.btn-anim-border-draw {
  background: transparent;
  border: 2px solid transparent;
  position: relative;
}

.btn-anim-border-draw::before,
.btn-anim-border-draw::after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  border: 2px solid transparent;
  transition: all 0.3s ease;
}

.btn-anim-border-draw::before {
  top: -2px;
  left: -2px;
  border-top-color: var(--btn-border, #6366f1);
  border-left-color: var(--btn-border, #6366f1);
}

.btn-anim-border-draw::after {
  bottom: -2px;
  right: -2px;
  border-bottom-color: var(--btn-border, #6366f1);
  border-right-color: var(--btn-border, #6366f1);
}

.btn-anim-border-draw:hover::before,
.btn-anim-border-draw:hover::after {
  width: calc(100% + 4px);
  height: calc(100% + 4px);
}

/* Border Glow */
.btn-anim-border-glow {
  border: 1px solid var(--btn-border, #6366f1);
  box-shadow: 0 0 0 0 var(--btn-border, #6366f1);
  transition: box-shadow 0.3s ease;
}

.btn-anim-border-glow:hover {
  box-shadow: 0 0 20px 2px var(--btn-border, #6366f1);
}

/* Border Pulse */
@keyframes borderPulse {
  0%, 100% { box-shadow: 0 0 0 0 var(--btn-border, rgba(99, 102, 241, 0.7)); }
  50% { box-shadow: 0 0 0 8px var(--btn-border, rgba(99, 102, 241, 0)); }
}

.btn-anim-border-pulse:hover {
  animation: borderPulse 1.5s infinite;
}

/* --- RIPPLE EFEKTÄ° (Material Design) --- */

.btn-anim-ripple {
  position: relative;
  overflow: hidden;
}

.btn-anim-ripple .ripple {
  position: absolute;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.4);
  transform: scale(0);
  animation: rippleEffect 0.6s linear;
  pointer-events: none;
}

@keyframes rippleEffect {
  to {
    transform: scale(4);
    opacity: 0;
  }
}

/* --- GLOW EFEKTLERÄ° --- */

/* Soft Glow */
.btn-anim-glow {
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.btn-anim-glow:hover {
  box-shadow: 0 5px 30px var(--btn-glow, rgba(99, 102, 241, 0.5));
  transform: translateY(-2px);
}

/* Neon Glow */
.btn-anim-neon {
  text-shadow: 0 0 5px currentColor;
  transition: text-shadow 0.3s ease, box-shadow 0.3s ease;
}

.btn-anim-neon:hover {
  text-shadow: 0 0 10px currentColor, 0 0 20px currentColor, 0 0 40px currentColor;
  box-shadow: 0 0 10px var(--btn-glow, #6366f1), 0 0 20px var(--btn-glow, #6366f1);
}

/* --- TRANSFORM ANÄ°MASYONLARI --- */

/* Scale Up */
.btn-anim-scale {
  transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.btn-anim-scale:hover {
  transform: scale(1.05);
}

/* Scale Down on Click */
.btn-anim-press:active {
  transform: scale(0.95);
  transition: transform 0.1s ease;
}

/* Lift Up */
.btn-anim-lift {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.btn-anim-lift:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}

/* Bounce */
.btn-anim-bounce:hover {
  animation: btnBounce 0.5s ease;
}

@keyframes btnBounce {
  0%, 100% { transform: translateY(0); }
  30% { transform: translateY(-8px); }
  50% { transform: translateY(-4px); }
  70% { transform: translateY(-6px); }
}

/* Wiggle */
.btn-anim-wiggle:hover {
  animation: btnWiggle 0.5s ease;
}

@keyframes btnWiggle {
  0%, 100% { transform: rotate(0); }
  25% { transform: rotate(-3deg); }
  75% { transform: rotate(3deg); }
}

/* --- TEXT ANÄ°MASYONLARI --- */

/* Text Slide Up */
.btn-anim-text-up {
  display: inline-flex;
  flex-direction: column;
  overflow: hidden;
  height: auto;
}

.btn-anim-text-up span {
  display: block;
  transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.btn-anim-text-up span:last-child {
  position: absolute;
  transform: translateY(100%);
}

.btn-anim-text-up:hover span:first-child {
  transform: translateY(-100%);
}

.btn-anim-text-up:hover span:last-child {
  transform: translateY(0);
}

/* Text Reveal */
.btn-anim-text-reveal span {
  display: inline-block;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.btn-anim-text-reveal:hover span {
  transform: translateY(-2px);
  opacity: 0.8;
}

/* Letter Spacing */
.btn-anim-expand {
  letter-spacing: normal;
  transition: letter-spacing 0.3s ease;
}

.btn-anim-expand:hover {
  letter-spacing: 2px;
}

/* --- ICON ANÄ°MASYONLARI --- */

/* Arrow Move Right */
.btn-anim-arrow-right .btn-icon {
  display: inline-block;
  transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.btn-anim-arrow-right:hover .btn-icon {
  transform: translateX(5px);
}

/* Arrow Move with Fade */
.btn-anim-arrow-fade {
  position: relative;
}

.btn-anim-arrow-fade .btn-icon {
  display: inline-block;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.btn-anim-arrow-fade .btn-icon-clone {
  position: absolute;
  opacity: 0;
  transform: translateX(-10px);
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.btn-anim-arrow-fade:hover .btn-icon {
  transform: translateX(10px);
  opacity: 0;
}

.btn-anim-arrow-fade:hover .btn-icon-clone {
  transform: translateX(0);
  opacity: 1;
}

/* Icon Rotate */
.btn-anim-icon-rotate .btn-icon {
  display: inline-block;
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.btn-anim-icon-rotate:hover .btn-icon {
  transform: rotate(360deg);
}

/* Icon Scale */
.btn-anim-icon-scale .btn-icon {
  display: inline-block;
  transition: transform 0.3s ease;
}

.btn-anim-icon-scale:hover .btn-icon {
  transform: scale(1.2);
}

/* --- Ã–ZEL EFEKTLER --- */

/* Slide Background */
.btn-anim-slide-bg {
  background: linear-gradient(90deg, var(--btn-bg, #6366f1) 50%, var(--btn-hover-bg, #818cf8) 50%);
  background-size: 200% 100%;
  background-position: 0% 50%;
  transition: background-position 0.4s ease;
}

.btn-anim-slide-bg:hover {
  background-position: 100% 50%;
}

/* Shutter Effect */
.btn-anim-shutter::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--btn-hover-bg, rgba(255,255,255,0.15));
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  z-index: -1;
}

.btn-anim-shutter:hover::before {
  transform: scaleX(1);
  transform-origin: left;
}

/* Circle Expand */
.btn-anim-circle::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  background: var(--btn-hover-bg, rgba(255,255,255,0.15));
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width 0.5s ease, height 0.5s ease;
  z-index: -1;
}

.btn-anim-circle:hover::before {
  width: 300px;
  height: 300px;
}

/* Diagonal Sweep */
.btn-anim-diagonal::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    120deg,
    transparent 0%,
    var(--btn-hover-bg, rgba(255,255,255,0.2)) 50%,
    transparent 100%
  );
  transition: left 0.5s ease;
  z-index: -1;
}

.btn-anim-diagonal:hover::before {
  left: 100%;
}

/* 3D Push */
.btn-anim-3d-push {
  transform-style: preserve-3d;
  transition: transform 0.2s ease;
}

.btn-anim-3d-push:hover {
  transform: perspective(500px) rotateX(10deg);
}

.btn-anim-3d-push:active {
  transform: perspective(500px) rotateX(10deg) translateY(2px);
}

/* Magnetic Effect (JS gerektirir, CSS ile simÃ¼lasyon) */
.btn-anim-magnetic {
  transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.btn-anim-magnetic:hover {
  transform: scale(1.02);
}

/* Underline Slide */
.btn-anim-underline {
  position: relative;
}

.btn-anim-underline::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 2px;
  background: currentColor;
  transition: width 0.3s ease, left 0.3s ease;
}

.btn-anim-underline:hover::after {
  width: 80%;
  left: 10%;
}

/* Double Border */
.btn-anim-double-border {
  border: 2px solid var(--btn-border, #6366f1);
  position: relative;
}

.btn-anim-double-border::before {
  content: '';
  position: absolute;
  top: 4px;
  left: 4px;
  right: 4px;
  bottom: 4px;
  border: 1px solid var(--btn-border, #6366f1);
  opacity: 0;
  transition: opacity 0.3s ease, top 0.3s ease, left 0.3s ease, right 0.3s ease, bottom 0.3s ease;
}

.btn-anim-double-border:hover::before {
  opacity: 1;
  top: 2px;
  left: 2px;
  right: 2px;
  bottom: 2px;
}

/* ============================================
   MARQUEE (SONSUZ KAYAN Ä°Ã‡ERÄ°K)
   ============================================ */

.anim-marquee {
  display: flex;
  overflow: hidden;
  user-select: none;
  gap: 1rem;
}

.anim-marquee-content {
  display: flex;
  gap: 1rem;
  animation: marquee var(--marquee-duration, 20s) linear infinite;
  flex-shrink: 0;
}

/* SaÄŸdan sola (varsayÄ±lan) */
@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-100%); }
}

/* Soldan saÄŸa */
.anim-marquee.reverse .anim-marquee-content {
  animation-direction: reverse;
}

/* Hover'da duraklat */
.anim-marquee.pause-on-hover:hover .anim-marquee-content {
  animation-play-state: paused;
}

/* HÄ±z ayarlarÄ± */
.marquee-slow { --marquee-duration: 40s; }
.marquee-normal { --marquee-duration: 20s; }
.marquee-fast { --marquee-duration: 10s; }

/* ============================================
   TEXT BLUR WAVE ANÄ°MASYONU
   ============================================ */

/* Ana text blur wave container */
.anim-text-blur-wave {
  display: inline-block;
}

.anim-text-blur-wave .char {
  display: inline-block;
  opacity: 0;
  filter: blur(20px);
  transform: translateY(40px) scale(0.9);
  transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              filter 1s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.anim-text-blur-wave.anim-active .char {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0) scale(1);
}

/* Kelime bazlÄ± blur wave */
.anim-text-blur-wave .word {
  display: inline-block;
  opacity: 0;
  filter: blur(15px);
  transform: translateY(30px) rotateX(20deg);
  transform-origin: center bottom;
  transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              filter 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.anim-text-blur-wave.anim-active .word {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0) rotateX(0);
}

/* ============================================
   TEXT REVEAL ANÄ°MASYONU (Klasik)
   ============================================ */

.anim-text-reveal {
  overflow: hidden;
}

.anim-text-reveal .char,
.anim-text-reveal .word {
  display: inline-block;
  opacity: 0;
  transform: translateY(100%);
  transition: opacity var(--anim-duration) var(--anim-ease),
              transform var(--anim-duration) var(--anim-ease);
}

.anim-text-reveal.anim-active .char,
.anim-text-reveal.anim-active .word {
  opacity: 1;
  transform: translateY(0);
}

/* ============================================
   TEXT SLIDE UP (Mask reveal)
   ============================================ */

.anim-text-slide-up {
  overflow: hidden;
  display: inline-block;
}

.anim-text-slide-up .line {
  display: block;
  transform: translateY(110%);
  transition: transform 0.8s cubic-bezier(0.77, 0, 0.175, 1);
}

.anim-text-slide-up.anim-active .line {
  transform: translateY(0);
}

/* ============================================
   TEXT GRADIENT REVEAL
   ============================================ */

.anim-text-gradient-reveal {
  background: linear-gradient(90deg, 
    var(--text-color, #fff) 0%, 
    var(--text-color, #fff) 50%, 
    transparent 50%, 
    transparent 100%
  );
  background-size: 200% 100%;
  background-position: 100% 0;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  transition: background-position 1.2s cubic-bezier(0.77, 0, 0.175, 1);
}

.anim-text-gradient-reveal.anim-active {
  background-position: 0 0;
}

/* ============================================
   TEXT GLITCH EFEKTI
   ============================================ */

@keyframes textGlitch {
  0%, 100% { 
    clip-path: inset(0 0 0 0);
    transform: translate(0);
  }
  20% { 
    clip-path: inset(20% 0 60% 0);
    transform: translate(-3px, 3px);
  }
  40% { 
    clip-path: inset(40% 0 40% 0);
    transform: translate(3px, -3px);
  }
  60% { 
    clip-path: inset(60% 0 20% 0);
    transform: translate(-3px, 3px);
  }
  80% { 
    clip-path: inset(80% 0 0 0);
    transform: translate(3px, -3px);
  }
}

.anim-text-glitch {
  position: relative;
}

.anim-text-glitch::before,
.anim-text-glitch::after {
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
}

.anim-text-glitch.anim-active::before {
  animation: textGlitch 0.3s linear;
  color: #ff00ff;
  opacity: 0.8;
}

.anim-text-glitch.anim-active::after {
  animation: textGlitch 0.3s linear 0.1s;
  color: #00ffff;
  opacity: 0.8;
}

/* ============================================
   COUNTER ANÄ°MASYONU
   ============================================ */

.anim-counter {
  display: inline-block;
  font-variant-numeric: tabular-nums;
}

/* ============================================
   PARALLAX
   ============================================ */

.anim-parallax {
  will-change: transform;
}

/* Parallax hÄ±z ayarlarÄ± - JS tarafÄ±ndan kontrol edilir */
.parallax-slow { --parallax-speed: 0.3; }
.parallax-normal { --parallax-speed: 0.5; }
.parallax-fast { --parallax-speed: 0.8; }

/* ============================================
   TETÄ°KLEME MODLARI
   ============================================ */

/* Sayfa yÃ¼klenince hemen baÅŸlat */
.anim-on-load {
  opacity: 0;
}
.anim-on-load.anim-active {
  opacity: 1;
}

/* SÃ¼rekli tekrar */
@keyframes loopFade {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 1; }
}

.anim-loop {
  animation: loopFade 2s ease-in-out infinite;
}

/* ============================================
   SMOOTH REVEAL ANÄ°MASYONLARI
   ============================================ */

/* Smooth Fade Up - Daha organik hareket */
.anim-smooth-up {
  opacity: 0;
  transform: translateY(60px);
  transition: opacity 1s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              transform 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.anim-smooth-up.anim-active {
  opacity: 1;
  transform: translateY(0);
}

/* Smooth Scale - YumuÅŸak bÃ¼yÃ¼me */
.anim-smooth-scale {
  opacity: 0;
  transform: scale(0.85);
  transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              transform 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.anim-smooth-scale.anim-active {
  opacity: 1;
  transform: scale(1);
}

/* Elastic Pop - Esnek Ã§Ä±kÄ±ÅŸ */
.anim-elastic {
  opacity: 0;
  transform: scale(0.5);
  transition: opacity 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55),
              transform 0.8s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.anim-elastic.anim-active {
  opacity: 1;
  transform: scale(1);
}

/* ============================================
   BLUR REVEAL VARYASYONLARI
   ============================================ */

/* Blur Reveal - Sadece blur */
.anim-blur-reveal {
  opacity: 0;
  filter: blur(30px);
  transition: opacity 1s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              filter 1.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.anim-blur-reveal.anim-active {
  opacity: 1;
  filter: blur(0);
}

/* Blur Scale Up - Blur + scale + yukarÄ± */
.anim-blur-scale-up {
  opacity: 0;
  filter: blur(25px);
  transform: scale(0.9) translateY(40px);
  transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              filter 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              transform 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.anim-blur-scale-up.anim-active {
  opacity: 1;
  filter: blur(0);
  transform: scale(1) translateY(0);
}

/* Blur Rotate - Blur + hafif dÃ¶nÃ¼ÅŸ */
.anim-blur-rotate {
  opacity: 0;
  filter: blur(20px);
  transform: rotate(-5deg) translateY(30px);
  transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              filter 1.1s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              transform 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.anim-blur-rotate.anim-active {
  opacity: 1;
  filter: blur(0);
  transform: rotate(0) translateY(0);
}

/* ============================================
   SPLIT REVEAL ANÄ°MASYONLARI
   ============================================ */

/* Clip Reveal - Kesme ile aÃ§Ä±lma */
.anim-clip-up {
  clip-path: inset(100% 0 0 0);
  transition: clip-path 1s cubic-bezier(0.77, 0, 0.175, 1);
}

.anim-clip-up.anim-active {
  clip-path: inset(0 0 0 0);
}

.anim-clip-down {
  clip-path: inset(0 0 100% 0);
  transition: clip-path 1s cubic-bezier(0.77, 0, 0.175, 1);
}

.anim-clip-down.anim-active {
  clip-path: inset(0 0 0 0);
}

.anim-clip-left {
  clip-path: inset(0 100% 0 0);
  transition: clip-path 1s cubic-bezier(0.77, 0, 0.175, 1);
}

.anim-clip-left.anim-active {
  clip-path: inset(0 0 0 0);
}

.anim-clip-right {
  clip-path: inset(0 0 0 100%);
  transition: clip-path 1s cubic-bezier(0.77, 0, 0.175, 1);
}

.anim-clip-right.anim-active {
  clip-path: inset(0 0 0 0);
}

/* Clip Circle - Daire ÅŸeklinde aÃ§Ä±lma */
.anim-clip-circle {
  clip-path: circle(0% at 50% 50%);
  transition: clip-path 1.2s cubic-bezier(0.77, 0, 0.175, 1);
}

.anim-clip-circle.anim-active {
  clip-path: circle(150% at 50% 50%);
}

/* ============================================
   3D PERSPECTIVE ANÄ°MASYONLARI
   ============================================ */

/* 3D Rotate Y */
.anim-3d-rotate-y {
  opacity: 0;
  transform: perspective(1000px) rotateY(90deg);
  transform-origin: left center;
  transition: opacity 0.6s ease,
              transform 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.anim-3d-rotate-y.anim-active {
  opacity: 1;
  transform: perspective(1000px) rotateY(0);
}

/* 3D Rotate X */
.anim-3d-rotate-x {
  opacity: 0;
  transform: perspective(1000px) rotateX(-90deg);
  transform-origin: center top;
  transition: opacity 0.6s ease,
              transform 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.anim-3d-rotate-x.anim-active {
  opacity: 1;
  transform: perspective(1000px) rotateX(0);
}

/* Card Flip */
.anim-card-flip {
  opacity: 0;
  transform: perspective(800px) rotateY(180deg) scale(0.8);
  transition: opacity 0.4s ease,
              transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.anim-card-flip.anim-active {
  opacity: 1;
  transform: perspective(800px) rotateY(0) scale(1);
}

/* ============================================
   SÃœREKLÄ° EFEKTLER (SCROLL TETÄ°KLEMELÄ°)
   ============================================ */

/* 
 * Bu animasyonlar varsayÄ±lan olarak duraklatÄ±lmÄ±ÅŸ baÅŸlar.
 * .anim-active eklendiÄŸinde (scroll ile) Ã§alÄ±ÅŸmaya baÅŸlar.
 * Delay class'larÄ± ile de uyumlu Ã§alÄ±ÅŸÄ±r.
 */

/* --- FLOAT ANÄ°MASYONLARI --- */

/* Float 1 - Dikey hareket */
@keyframes float1 {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}

/* Float 2 - Ã‡apraz hareket */
@keyframes float2 {
  0%, 100% { transform: translateY(0) translateX(0); }
  25% { transform: translateY(-8px) translateX(5px); }
  50% { transform: translateY(-5px) translateX(-3px); }
  75% { transform: translateY(-10px) translateX(2px); }
}

/* Float 3 - GeniÅŸ yÃ¼zme */
@keyframes float3 {
  0%, 100% { transform: translateY(0) translateX(0) rotate(0deg); }
  20% { transform: translateY(-6px) translateX(8px) rotate(1deg); }
  40% { transform: translateY(-12px) translateX(-4px) rotate(-0.5deg); }
  60% { transform: translateY(-4px) translateX(6px) rotate(0.5deg); }
  80% { transform: translateY(-10px) translateX(-6px) rotate(-1deg); }
}

/* Float temel - baÅŸlangÄ±Ã§ta durgun, anim-active ile baÅŸlar */
.anim-float,
.anim-float-1 {
  animation: float1 3s ease-in-out infinite paused;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.anim-float-2 {
  animation: float2 4s ease-in-out infinite paused;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.anim-float-3 {
  animation: float3 5s ease-in-out infinite paused;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.anim-float.anim-active,
.anim-float-1.anim-active,
.anim-float-2.anim-active,
.anim-float-3.anim-active {
  opacity: 1;
  animation-play-state: running;
}

/* --- GENTLE FLOAT ANÄ°MASYONLARI --- */

@keyframes gentleFloat1 {
  0%, 100% { transform: translateY(0) translateX(0); }
  25% { transform: translateY(-8px) translateX(4px); }
  50% { transform: translateY(-4px) translateX(-4px); }
  75% { transform: translateY(-12px) translateX(2px); }
}

@keyframes gentleFloat2 {
  0%, 100% { transform: translateY(0) translateX(0); }
  20% { transform: translateY(-6px) translateX(-5px); }
  40% { transform: translateY(-10px) translateX(3px); }
  60% { transform: translateY(-3px) translateX(-2px); }
  80% { transform: translateY(-8px) translateX(4px); }
}

@keyframes gentleFloat3 {
  0%, 100% { transform: translateY(0) translateX(0) scale(1); }
  25% { transform: translateY(-5px) translateX(6px) scale(1.01); }
  50% { transform: translateY(-10px) translateX(-3px) scale(0.99); }
  75% { transform: translateY(-3px) translateX(4px) scale(1.005); }
}

.anim-gentle-float,
.anim-gentle-float-1 {
  animation: gentleFloat1 6s ease-in-out infinite paused;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.anim-gentle-float-2 {
  animation: gentleFloat2 7s ease-in-out infinite paused;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.anim-gentle-float-3 {
  animation: gentleFloat3 8s ease-in-out infinite paused;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.anim-gentle-float.anim-active,
.anim-gentle-float-1.anim-active,
.anim-gentle-float-2.anim-active,
.anim-gentle-float-3.anim-active {
  opacity: 1;
  animation-play-state: running;
}

/* --- BREATHING ANÄ°MASYONLARI --- */

@keyframes breathing1 {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.05); opacity: 0.9; }
}

@keyframes breathing2 {
  0%, 100% { transform: scale(1); opacity: 1; }
  30% { transform: scale(1.03); opacity: 0.95; }
  60% { transform: scale(1.06); opacity: 0.88; }
}

@keyframes breathing3 {
  0%, 100% { transform: scale(1) rotate(0deg); opacity: 1; }
  25% { transform: scale(1.02) rotate(0.5deg); opacity: 0.95; }
  50% { transform: scale(1.05) rotate(0deg); opacity: 0.9; }
  75% { transform: scale(1.03) rotate(-0.5deg); opacity: 0.93; }
}

.anim-breathing,
.anim-breathing-1 {
  animation: breathing1 4s ease-in-out infinite paused;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.anim-breathing-2 {
  animation: breathing2 5s ease-in-out infinite paused;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.anim-breathing-3 {
  animation: breathing3 6s ease-in-out infinite paused;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.anim-breathing.anim-active,
.anim-breathing-1.anim-active,
.anim-breathing-2.anim-active,
.anim-breathing-3.anim-active {
  opacity: 1;
  animation-play-state: running;
}

/* --- WAVE ANÄ°MASYONLARI --- */

@keyframes wave1 {
  0%, 100% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-5px) rotate(1deg); }
  75% { transform: translateY(5px) rotate(-1deg); }
}

@keyframes wave2 {
  0%, 100% { transform: translateY(0) rotate(0); }
  20% { transform: translateY(-4px) rotate(1.5deg); }
  40% { transform: translateY(3px) rotate(-0.5deg); }
  60% { transform: translateY(-6px) rotate(0.5deg); }
  80% { transform: translateY(2px) rotate(-1deg); }
}

.anim-wave,
.anim-wave-1 {
  animation: wave1 3s ease-in-out infinite paused;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.anim-wave-2 {
  animation: wave2 4s ease-in-out infinite paused;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.anim-wave.anim-active,
.anim-wave-1.anim-active,
.anim-wave-2.anim-active {
  opacity: 1;
  animation-play-state: running;
}

/* --- HEMEN Ã‡ALIÅAN VERSÄ°YONLAR (scroll beklemeden) --- */
/* .loop-instant class'Ä± eklenerek scroll beklemeden Ã§alÄ±ÅŸtÄ±rÄ±labilir */

.loop-instant.anim-float,
.loop-instant.anim-float-1,
.loop-instant.anim-float-2,
.loop-instant.anim-float-3,
.loop-instant.anim-gentle-float,
.loop-instant.anim-gentle-float-1,
.loop-instant.anim-gentle-float-2,
.loop-instant.anim-gentle-float-3,
.loop-instant.anim-breathing,
.loop-instant.anim-breathing-1,
.loop-instant.anim-breathing-2,
.loop-instant.anim-breathing-3,
.loop-instant.anim-wave,
.loop-instant.anim-wave-1,
.loop-instant.anim-wave-2 {
  opacity: 1 !important;
  animation-play-state: running !important;
}

/* ============================================
   IMAGE/CARD REVEAL ANÄ°MASYONLARI
   ============================================ */

/* Image reveal with overlay */
.anim-img-reveal {
  position: relative;
  overflow: hidden;
}

.anim-img-reveal::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--reveal-color, #6366f1);
  transform: translateX(-101%);
  transition: transform 0.8s cubic-bezier(0.77, 0, 0.175, 1);
  z-index: 1;
}

.anim-img-reveal.anim-active::before {
  transform: translateX(101%);
}

.anim-img-reveal img,
.anim-img-reveal > * {
  opacity: 0;
  transform: scale(1.2);
  transition: opacity 0s 0.4s, transform 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.4s;
}

.anim-img-reveal.anim-active img,
.anim-img-reveal.anim-active > * {
  opacity: 1;
  transform: scale(1);
}

/* Curtain Reveal - Perde aÃ§Ä±lma */
.anim-curtain {
  position: relative;
  overflow: hidden;
}

.anim-curtain::before,
.anim-curtain::after {
  content: '';
  position: absolute;
  top: 0;
  width: 50%;
  height: 100%;
  background: var(--curtain-color, #1a1a24);
  transition: transform 1s cubic-bezier(0.77, 0, 0.175, 1);
  z-index: 1;
}

.anim-curtain::before {
  left: 0;
  transform: translateX(0);
}

.anim-curtain::after {
  right: 0;
  transform: translateX(0);
}

.anim-curtain.anim-active::before {
  transform: translateX(-100%);
}

.anim-curtain.anim-active::after {
  transform: translateX(100%);
}

/* ============================================
   MORPHING / SHAPE ANÄ°MASYONLARI
   ============================================ */

/* --- MORPH ANÄ°MASYONLARI --- */

@keyframes morphShape1 {
  0%, 100% { border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; }
  25% { border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%; }
  50% { border-radius: 50% 60% 30% 60% / 30% 60% 70% 40%; }
  75% { border-radius: 60% 40% 60% 30% / 70% 30% 50% 60%; }
}

@keyframes morphShape2 {
  0%, 100% { border-radius: 40% 60% 60% 40% / 70% 30% 70% 30%; }
  20% { border-radius: 50% 50% 40% 60% / 40% 60% 50% 50%; }
  40% { border-radius: 60% 40% 50% 50% / 50% 50% 60% 40%; }
  60% { border-radius: 45% 55% 55% 45% / 60% 40% 40% 60%; }
  80% { border-radius: 55% 45% 45% 55% / 45% 55% 55% 45%; }
}

.anim-morph,
.anim-morph-1 {
  animation: morphShape1 8s ease-in-out infinite paused;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.anim-morph-2 {
  animation: morphShape2 10s ease-in-out infinite paused;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.anim-morph.anim-active,
.anim-morph-1.anim-active,
.anim-morph-2.anim-active {
  opacity: 1;
  animation-play-state: running;
}

.loop-instant.anim-morph,
.loop-instant.anim-morph-1,
.loop-instant.anim-morph-2 {
  opacity: 1 !important;
  animation-play-state: running !important;
}

/* ============================================
   LINE DRAW ANÄ°MASYONU
   ============================================ */

.anim-line-draw {
  stroke-dasharray: 1000;
  stroke-dashoffset: 1000;
  transition: stroke-dashoffset 2s cubic-bezier(0.77, 0, 0.175, 1);
}

.anim-line-draw.anim-active {
  stroke-dashoffset: 0;
}

/* ============================================
   Ã–ZEL EFEKTLER
   ============================================ */

/* --- GRADIENT ANÄ°MASYONLARI --- */

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

.anim-gradient {
  background-size: 200% 200%;
  animation: gradientShift 3s ease infinite paused;
}

.anim-gradient.anim-active {
  animation-play-state: running;
}

.loop-instant.anim-gradient {
  animation-play-state: running !important;
}

/* --- SHIMMER ANÄ°MASYONLARI --- */

@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

.anim-shimmer {
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.4) 50%,
    rgba(255, 255, 255, 0) 100%
  );
  background-size: 200% 100%;
  animation: shimmer 2s infinite paused;
}

.anim-shimmer.anim-active {
  animation-play-state: running;
}

.loop-instant.anim-shimmer {
  animation-play-state: running !important;
}

/* --- SPIN ANÄ°MASYONLARI --- */

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.anim-spin {
  animation: spin 1s linear infinite paused;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.anim-spin-slow {
  animation: spin 3s linear infinite paused;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.anim-spin-fast {
  animation: spin 0.5s linear infinite paused;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.anim-spin.anim-active,
.anim-spin-slow.anim-active,
.anim-spin-fast.anim-active {
  opacity: 1;
  animation-play-state: running;
}

/* Spin - hemen Ã§alÄ±ÅŸan */
.loop-instant.anim-spin,
.loop-instant.anim-spin-slow,
.loop-instant.anim-spin-fast {
  opacity: 1 !important;
  animation-play-state: running !important;
}

/* --- PING ANÄ°MASYONU --- */

@keyframes ping {
  75%, 100% {
    transform: scale(2);
    opacity: 0;
  }
}

.anim-ping {
  animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite paused;
}

.anim-ping.anim-active {
  animation-play-state: running;
}

.loop-instant.anim-ping {
  animation-play-state: running !important;
}

/* --- GLOW PULSE ANÄ°MASYONLARI --- */

@keyframes glowPulse1 {
  0%, 100% { box-shadow: 0 0 20px rgba(99, 102, 241, 0.3); }
  50% { box-shadow: 0 0 40px rgba(99, 102, 241, 0.6), 0 0 60px rgba(99, 102, 241, 0.3); }
}

@keyframes glowPulse2 {
  0%, 100% { box-shadow: 0 0 15px rgba(99, 102, 241, 0.2); }
  30% { box-shadow: 0 0 30px rgba(99, 102, 241, 0.5); }
  60% { box-shadow: 0 0 45px rgba(99, 102, 241, 0.4), 0 0 70px rgba(99, 102, 241, 0.2); }
}

.anim-glow-pulse,
.anim-glow-pulse-1 {
  animation: glowPulse1 2s ease-in-out infinite paused;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.anim-glow-pulse-2 {
  animation: glowPulse2 3s ease-in-out infinite paused;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.anim-glow-pulse.anim-active,
.anim-glow-pulse-1.anim-active,
.anim-glow-pulse-2.anim-active {
  opacity: 1;
  animation-play-state: running;
}

.loop-instant.anim-glow-pulse,
.loop-instant.anim-glow-pulse-1,
.loop-instant.anim-glow-pulse-2 {
  opacity: 1 !important;
  animation-play-state: running !important;
}

/* ============================================
   RESPONSIVE AYARLAR
   ============================================ */

/* Reduced motion tercihine saygÄ± */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  
  .anim-marquee-content {
    animation: none;
  }
}

/* Mobil iÃ§in hafifletilmiÅŸ animasyonlar */
@media (max-width: 768px) {
  :root {
    --anim-distance: 20px;
    --anim-distance-lg: 40px;
  }
}