/* Fiberserver hareket katmanı (fs-motion.js ile). Yalnızca transform/opacity; hareketi azalt tercihine saygılı. */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
  @view-transition { navigation: auto; }
  ::view-transition-old(root) { animation: fs-vt-out .18s ease-in both; }
  ::view-transition-new(root) { animation: fs-vt-in .26s ease-out both; }
  @keyframes fs-vt-out { to { opacity: 0; } }
  @keyframes fs-vt-in { from { opacity: 0; transform: translateY(6px); } }
}

/* kaydırmada belirme: başlangıç durumu yalnızca JS .reveal verdiğinde uygulanır */
.js-motion:not(.motion-reduce) .reveal { opacity: 0; transform: translateY(18px); will-change: opacity, transform; }
.js-motion:not(.motion-reduce) .reveal.in-view { opacity: 1; transform: none; transition: opacity .6s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); transition-delay: calc(var(--d, 0) * 70ms); will-change: auto; }
.js-motion:not(.motion-reduce) .reveal.in-view.no-anim { transition: none; }

/* basma tepkisi */
.js-motion:not(.motion-reduce) :is(.btn, .sv-btn, .sv-ghost, .cartbtn, .srv-buy, .lp-related a, .ex-pill-btn, button:not(.btn-close)) { transition: transform .15s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease; }
.js-motion:not(.motion-reduce) :is(.btn, .sv-btn, .sv-ghost, .cartbtn, .srv-buy, .ex-pill-btn):active { transform: translateY(1px) scale(.98); }
.js-motion:not(.motion-reduce) :is(.sv-btn, .btn-primary, .btn-soft, .srv-buy):hover { transform: translateY(-1px); box-shadow: 0 10px 24px -14px rgba(8,127,91,.6); }
.fs-ripple-host { position: relative; overflow: hidden; }
.fs-ripple { position: absolute; border-radius: 50%; pointer-events: none; background: currentColor; opacity: .18; transform: scale(0); animation: fs-ripple .55s ease-out forwards; }
@keyframes fs-ripple { to { transform: scale(1); opacity: 0; } }

/* kartlar: hafif kalkma */
.js-motion:not(.motion-reduce) :is(.lp-grid3 article, .sv-step-list li, .plan-card, .srv-card, .kb-card, .post-card, .news-card, .tool-card, .sv-feat, .lp-ben article) { transition: transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s ease, border-color .2s ease; }
.js-motion:not(.motion-reduce) :is(.lp-grid3 article, .sv-step-list li, .plan-card, .srv-card, .kb-card, .post-card, .news-card, .tool-card, .sv-feat, .lp-ben article):hover { transform: translateY(-4px); }

/* bağlantı altı çizgi animasyonu (metin içi bağlantılar) */
.js-motion:not(.motion-reduce) .rd-prose a:not(.btn), .js-motion:not(.motion-reduce) .ex-story p a { background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0 1.5px; text-decoration: none; transition: background-size .3s ease; }
.js-motion:not(.motion-reduce) .rd-prose a:not(.btn):hover, .js-motion:not(.motion-reduce) .ex-story p a:hover { background-size: 100% 1.5px; }

/* sayfa geçişi ilerleme çubuğu */
.fs-nav-progress { position: fixed; left: 0; top: 0; height: 3px; width: 0; z-index: 9999; background: linear-gradient(90deg, #1fb383, #7de3bc); opacity: 0; pointer-events: none; }
.fs-nav-progress.run { opacity: 1; animation: fs-prog 2.4s cubic-bezier(.1,.6,.2,1) forwards; box-shadow: 0 0 10px rgba(31,179,131,.6); }
@keyframes fs-prog { 0% { width: 0; } 20% { width: 45%; } 60% { width: 78%; } 100% { width: 92%; } }

/* odak görünürlüğü (klavye) */
.js-motion :is(a, button, summary):focus-visible { outline: 2px solid #1fb383; outline-offset: 3px; border-radius: 6px; }
