/* APSA prototype — motion & responsive helpers. Semua animasi mati bila "kurangi gerakan" aktif. */
.apsa-rise{animation:apsaRise .5s cubic-bezier(.2,.7,.2,1) both}
.apsa-d1{animation-delay:.06s}.apsa-d2{animation-delay:.12s}.apsa-d3{animation-delay:.18s}.apsa-d4{animation-delay:.24s}.apsa-d5{animation-delay:.3s}
@keyframes apsaRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.apsa-btn{transition:transform .18s cubic-bezier(.3,1.6,.5,1),background-color .18s ease,box-shadow .18s ease;cursor:pointer}
.apsa-btn:hover{transform:translateY(-2px)}
.apsa-btn:active{transform:scale(.96)}
.apsa-red:hover{background-color:#B9221D!important}
.apsa-btn:focus-visible,.apsa-link:focus-visible,.apsa-input:focus-visible{outline:3px solid #111;outline-offset:2px}
.apsa-link{transition:color .15s ease,background-color .15s ease}
.apsa-link:hover{background-color:#E3F5FF}
.apsa-card{transition:transform .22s ease,box-shadow .22s ease}
.apsa-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(17,17,17,.08)}
.apsa-skel{background:linear-gradient(90deg,#E3EDF5 0%,#F3F7FB 50%,#E3EDF5 100%);background-size:200% 100%;animation:apsaShimmer 1.3s linear infinite}
@keyframes apsaShimmer{to{background-position:-200% 0}}
.apsa-pulse{animation:apsaPulse 2.6s ease-out infinite}
@keyframes apsaPulse{0%{box-shadow:0 0 0 0 rgba(228,49,43,.45)}70%{box-shadow:0 0 0 14px rgba(228,49,43,0)}100%{box-shadow:0 0 0 0 rgba(228,49,43,0)}}
.apsa-fade{animation:apsaFade .28s ease both}
@keyframes apsaFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.apsa-snap{scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.apsa-snap::-webkit-scrollbar{display:none}
.apsa-snap>*{scroll-snap-align:start}
@media (max-width:760px){.apsa-hide-sm{display:none!important}}
@media (min-width:761px){.apsa-only-sm{display:none!important}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
