:root{--motion-fast:150ms;--motion-base:220ms;--motion-slow:320ms;--motion-ease:cubic-bezier(.22,.8,.24,1);--motion-spring:cubic-bezier(.2,.9,.25,1.08)}

/* Dokunma geri bildirimi */
@media(max-width:991.98px){
 button,.btn,.share-btn,.nav-link,.community-btn,.community-action,.reaction-btn,.floating-ihbar-btn,.mobile-comments-trigger{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
 button:active,.btn:active,.share-btn:active,.community-btn:active,.community-action:active,.reaction-btn:active,.floating-ihbar-btn:active,.mobile-comments-trigger:active{transform:scale(.97)!important;transition-duration:80ms!important}

 /* Açılır yüzeyler */
 .dropdown-menu.show{transform-origin:top center;animation:motion-pop var(--motion-base) var(--motion-ease) both}
 .header-search-popover:not(.d-none){animation:motion-search var(--motion-base) var(--motion-ease) both}
 .alert,.toast.show{animation:motion-notice var(--motion-base) var(--motion-ease) both}
 .modal.show .modal-dialog{animation:motion-modal var(--motion-slow) var(--motion-spring) both}
 .offcanvas.show{animation:motion-slide-left var(--motion-slow) var(--motion-ease) both}

 /* Yorum alt sayfası ve asistan paneli mevcut transform sistemini korur. */
 .mobile-comments-sheet{will-change:transform;transition-duration:var(--motion-slow)!important;transition-timing-function:var(--motion-ease)!important}
 .mobile-comments-backdrop:not([hidden]){animation:motion-fade var(--motion-base) ease-out both}
 .manset-assistant-backdrop.is-open,.manset-assistant-backdrop[aria-hidden="false"]{animation:motion-fade var(--motion-base) ease-out both}

 /* Ekrana giren kartlar; JS yalnız görünmeden önce işaretler. */
 .motion-reveal{opacity:0;transform:translate3d(0,14px,0);transition:opacity var(--motion-slow) ease-out,transform var(--motion-slow) var(--motion-ease);will-change:opacity,transform}
 .motion-reveal.motion-reveal--left{transform:translate3d(-12px,0,0)}
 .motion-reveal.is-motion-visible{opacity:1;transform:translate3d(0,0,0);will-change:auto}
 .motion-fragment-enter{animation:motion-fragment var(--motion-slow) var(--motion-ease) both}

 /* Sekme değişiminde içerik sertçe belirmesin. */
 .tab-pane.active,.account-profile-panel,.notification-list,.community-feed{animation:motion-content var(--motion-base) ease-out both}
 details[open]>:not(summary){animation:motion-content var(--motion-base) ease-out both}
}

@keyframes motion-fade{from{opacity:0}to{opacity:1}}
@keyframes motion-pop{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes motion-search{from{opacity:0;transform:translateY(-8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes motion-notice{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@keyframes motion-modal{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes motion-slide-left{from{opacity:.5;transform:translateX(-16px)}to{opacity:1;transform:translateX(0)}}
@keyframes motion-content{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes motion-fragment{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}

@media(min-width:992px){
 .dropdown-menu.show{transform-origin:top center;animation:motion-pop var(--motion-base) var(--motion-ease) both}
 .header-search-popover:not(.d-none),.modal.show .modal-dialog{animation:motion-pop var(--motion-base) var(--motion-ease) both}
}

/* Animasyon hiçbir kapalı yüzeyi görünür hale getiremez. */
.desktop-menu-panel[aria-hidden="true"]{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.desktop-menu-panel[aria-hidden="false"]{visibility:visible}
.desktop-menu-backdrop[hidden],.mobile-menu-backdrop[hidden],.mobile-comments-backdrop[hidden]{display:none!important}
.header-search-popover.d-none,.modal:not(.show),.offcanvas:not(.show){display:none!important}

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