/* Portal Monagas 2.1 — microinteracciones institucionales */
:root{--ux-duration:420ms;--ux-ease:cubic-bezier(.2,.7,.2,1)}

.ux-reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity var(--ux-duration) var(--ux-ease),transform var(--ux-duration) var(--ux-ease);
  transition-delay:var(--ux-delay,0ms);
}
.ux-reveal.ux-visible{opacity:1;transform:none}

.header{
  transition:box-shadow .28s ease,background-color .28s ease,transform .28s ease;
}
.header.ux-scrolled{
  box-shadow:0 10px 34px rgba(15,35,55,.10);
}
.header.ux-scrolled .header-inner{
  min-height:68px;
  transition:min-height .28s ease;
}

.card,.home-gallery-item,.featured-news-card,.sistema-card,.info-item,.system-row{
  transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease;
}
.card:hover,.home-gallery-item:hover,.featured-news-card:hover,.sistema-card:hover,.info-item:hover,.system-row:hover{
  transform:translateY(-3px);
}

.btn,.card-link,.nav-link,.top-link{
  transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease;
}
.btn:active,.card-link:active{transform:translateY(1px)}

.progress span{
  transition:width 900ms var(--ux-ease);
}

.featured-news-card .featured-news-expanded{
  animation:uxDetails .3s ease both;
}
@keyframes uxDetails{
  from{opacity:0;transform:translateY(-6px)}
  to{opacity:1;transform:none}
}

#chatAssistant .chat-window.open,
#chatAssistant.open .chat-window{
  animation:uxChatOpen .26s var(--ux-ease) both;
}
#chatAssistant .bubble.dynamic{animation:uxBubble .24s ease both}
@keyframes uxChatOpen{
  from{opacity:0;transform:translateY(10px) scale(.985)}
  to{opacity:1;transform:none}
}
@keyframes uxBubble{
  from{opacity:0;transform:translateY(6px)}
  to{opacity:1;transform:none}
}

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