/* ---------- Sayfa geçişleri (cross-document View Transitions) ---------- */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: vt-out .22s var(--ease) both; }
::view-transition-new(root) { animation: vt-in .38s var(--ease) both; }
::view-transition-old(sidebar), ::view-transition-new(sidebar) { animation: none; }
@keyframes vt-out { to { opacity: 0; transform: translateY(-4px); } }
@keyframes vt-in { from { opacity: 0; transform: translateY(8px); } }

/* ---------- Görününce belirme ---------- */
.reveal { opacity: 0; transform: translateY(14px) scale(.99); transition: opacity .7s var(--ease), transform .7s var(--ease); transition-delay: calc(var(--i, 0) * 60ms); }
.reveal.in { opacity: 1; transform: none; }
.no-js .reveal { opacity: 1; transform: none; }

/* ---------- Animasyon kütüphanesi ---------- */
@keyframes float { 0%, 100% { transform: translate(0, 0) rotate(0); } 33% { transform: translate(14px, -18px) rotate(6deg); } 66% { transform: translate(-10px, 10px) rotate(-4deg); } }
@keyframes morph { 0%, 100% { border-radius: 42% 58% 63% 37% / 41% 44% 56% 59%; } 50% { border-radius: 63% 37% 42% 58% / 55% 38% 62% 45%; } }
@keyframes bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes ring-fill { from { --val: 0; } }
@keyframes grow-x { from { transform: scaleX(0); } }
@keyframes shimmer { 0% { background-position: -400px 0; } 100% { background-position: 400px 0; } }
@keyframes breathe { 0%, 100% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.12); opacity: .6; } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes pop-in { from { opacity: 0; transform: translateY(10px) scale(.96); } }
@keyframes slide-up { from { opacity: 0; transform: translateY(16px); } }
@keyframes highlight { 0%, 100% { background: transparent; } 40%, 60% { background: color-mix(in srgb, var(--mint) 45%, transparent); } }
@keyframes wiggle { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(-6deg); } 75% { transform: rotate(6deg); } }

.blob { position: absolute; width: var(--size, 380px); height: var(--size, 380px); background: var(--c, var(--lavender-bg)); filter: blur(var(--blur, 40px)); opacity: var(--o, .9);
  animation: float var(--t, 18s) ease-in-out infinite, morph calc(var(--t, 18s) * .8) ease-in-out infinite; pointer-events: none; z-index: 0; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-delay: 0s !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1; transform: none; }
  @view-transition { navigation: none; }
}
