/* === EFEKTLER VE ANİMASYONLAR === */

/* Header Arka Plan Kalp Pulse */
.pulse-bg {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 0;
  pointer-events: none;
  opacity: 0.28;
  filter: blur(14px);
}
.pulse-bg svg {
  width: min(520px, 80vw);
  height: auto;
  transform: scale(1.05);
  animation: pulse 3.2s ease-in-out infinite;
}
@keyframes pulse {
  0%,
  100% {
    transform: scale(1.02);
  }
  50% {
    transform: scale(1.12);
  }
}

/* Arka Plan Yıldızları (ve Spot Işığı) */
.stars {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0.7;
  transition: transform 0.2s linear;

  /* ===  IŞIK KAYNAĞI ARTIK BURADA === */
  background: radial-gradient(
      600px circle at var(--x, 50%) var(--y, 50%),
      rgba(168, 85, 247, 0.1),
      transparent 80%
    ),
    radial-gradient(1200px 600px at 20% -10%, #1d1630 0, transparent 70%),
    radial-gradient(1200px 600px at 120% 10%, #231933 0, transparent 70%),
    var(--bg);
  background-attachment: fixed, fixed, fixed, scroll;
  background-repeat: no-repeat;
}

/* Arka Plan Kalpleri */
.hearts {
  position: fixed;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 0;
}
/* === ARKA PLAN KALPLERİ (YENİ SÜRÜM - SVG MASKE) === */

.heart {
  position: absolute;
  width: var(--sz, 16px);
  height: var(--sz, 16px);

  /* DEĞİŞTİ: Arka planı pembe-mor degrade yaptık */
  background: linear-gradient(45deg, var(--accent), var(--primary));

  /* DEĞİŞTİ: İmleçteki SVG'nin aynısını maske olarak ekledik */
  /* Bu, degradeyi o kalp şeklinde "keser" */
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.22 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3c3.08 0 5.5 2.42 5.5 5.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>');
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;

  /* DEĞİKLİKLER BİTTİ */
  animation: floatUp var(--dur, 10s) linear forwards;
  opacity: 0.72;
  will-change: transform, opacity;
}

/* DEĞİŞTİ: Bu ::before ve ::after kuralları artık GEREKLİ DEĞİL. */
.heart::before,
.heart::after {
  display: none;
  content: none;
}
@keyframes floatUp {
  from {
    /* DEĞİŞTİ: rotate(45deg) kaldırıldı */
    transform: translate(calc(var(--x, 50vw)), 0);
  }
  to {
    /* DEĞİŞTİ: rotate(45deg) kaldırıldı */
    transform: translate(calc(var(--x, 50vw) + var(--dx, 0px)), -120vh);
  }
}

/* Ses Dalgaları */
.wave {
  display: flex;
  gap: 4px;
  justify-content: center;
  align-items: flex-end;
  height: 24px;
  margin-top: 10px;
}
.bar {
  width: 4px;
  height: 8px;
  background: linear-gradient(180deg, var(--accent), var(--primary));
  border-radius: 3px;
  opacity: 0.6;
  transform-origin: bottom;
  animation: idle 1.2s ease-in-out infinite;
}
.playing .bar {
  animation: play 0.6s ease-in-out infinite;
}
.bar:nth-child(2) {
  animation-delay: 0.1s;
}
.bar:nth-child(3) {
  animation-delay: 0.2s;
}
.bar:nth-child(4) {
  animation-delay: 0.3s;
}
.bar:nth-child(5) {
  animation-delay: 0.4s;
}
.bar:nth-child(6) {
  animation-delay: 0.5s;
}
.bar:nth-child(7) {
  animation-delay: 0.6s;
}
.bar:nth-child(8) {
  animation-delay: 0.7s;
}
.bar:nth-child(9) {
  animation-delay: 0.8s;
}
.bar:nth-child(10) {
  animation-delay: 0.9s;
}
@keyframes idle {
  0%,
  100% {
    height: 8px;
  }
  50% {
    height: 12px;
  }
}
@keyframes play {
  0%,
  100% {
    height: 8px;
  }
  50% {
    height: 24px;
  }
}

/* Scroll-Reveal Animasyonu */
.section-reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.section-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Form Odaklanma Efekti */
input:focus,
button:focus,
details:focus,
summary:focus {
  outline: none;
}
input[type="password"]:focus,
input[type="text"]:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(168, 85, 247, 0.4);
}
input[type="range"]:focus {
  box-shadow: 0 0 0 3px rgba(168, 85, 247, 0.4);
}
