/* Interacciones compartidas: movimiento breve y respetuoso con la accesibilidad. */
:root{--motion-ease:cubic-bezier(.2,.7,.2,1)}
a,button,input,select,textarea,.card,.doc,.info-panel,.principle,.admin-tiles>div,.admin-shortcut{transition:transform .22s var(--motion-ease),box-shadow .22s var(--motion-ease),background-color .2s,border-color .2s,color .2s}
.btn,button{position:relative}.btn:active,button:active{transform:scale(.97)}button:disabled{cursor:wait;opacity:.65;transform:none}.btn:focus-visible,button:focus-visible{box-shadow:0 0 0 5px #ffff0033}input:focus,textarea:focus,select:focus{border-color:#c92313;box-shadow:0 0 0 4px #c9231310}
.card{transition:transform .28s var(--motion-ease),box-shadow .28s var(--motion-ease)}.card img,.party-photo,.founder-portrait img{transition:transform .65s var(--motion-ease),filter .4s}.card{isolation:isolate}.party-photo{box-shadow:0 8px 24px #1515150a}.founder-portrait{overflow:hidden}.principle svg{transition:transform .35s var(--motion-ease),color .25s}.principle h3{transition:color .2s}.doc-file-actions .btn,.actions .btn{transform-origin:center}.admin-table td{transition:background-color .2s}.admin-badge{transition:box-shadow .2s}.admin-side nav a{transition:transform .2s,background-color .2s,color .2s}
@media(hover:hover) and (pointer:fine){
 .btn:hover,button:not(:disabled):hover{transform:translateY(-2px)}
 .btn:active,button:not(:disabled):active{transform:translateY(0) scale(.97)}
 a.card:hover{transform:translateY(-6px);box-shadow:0 18px 34px #15151518}
 .card:hover img{transform:scale(1.035)}
 .doc:hover{transform:translateX(4px);box-shadow:0 8px 24px #15151509;border-color:#d5cc86}
 .info-panel:hover,.admin-tiles>div:hover{transform:translateY(-5px);box-shadow:0 16px 35px #15151510;border-color:#dcd389}
 .principle:hover svg{transform:translateY(-7px) rotate(-3deg);color:#c92313}
 .principle:hover h3{color:#b92012}
 .party-photo:hover{transform:translateY(-3px);box-shadow:0 16px 32px #15151516}
 .founder-panel:hover .founder-portrait img{transform:scale(1.025)}
 .admin-side nav a:hover{transform:translateX(3px)}
 .admin-shortcut:hover{transform:translateX(4px)}
 header .brand img{transition:transform .3s var(--motion-ease)}
 header .brand:hover img{transform:rotate(-4deg) scale(1.04)}
}
/* Leves entradas al desplazarse, activadas solo cuando JavaScript está disponible. */
.motion-ready{opacity:0;transform:translateY(18px);transition:opacity .55s var(--motion-ease),transform .55s var(--motion-ease)}.motion-ready.motion-visible{opacity:1;transform:translateY(0)}
.action-pulse{animation:action-response .32s var(--motion-ease)}
@keyframes action-response{0%{filter:brightness(1)}45%{filter:brightness(.9)}100%{filter:brightness(1)}}
.founder-dialog[open]{animation:dialog-arrive .24s var(--motion-ease)}.founder-dialog[open]::backdrop{animation:backdrop-arrive .24s ease}
@keyframes dialog-arrive{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes backdrop-arrive{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-ready{opacity:1;transform:none}.btn:hover,button:hover,.card:hover,.doc:hover,.info-panel:hover,.principle:hover svg,.party-photo:hover,.admin-tiles>div:hover,.admin-shortcut:hover,.admin-side nav a:hover{transform:none!important}.card:hover img,.founder-panel:hover .founder-portrait img,header .brand:hover img{transform:none!important}}
