/* Short, quiet interactions suited to the publication's reading interface. */
:root{--soft-ease:cubic-bezier(.2,.65,.3,1)}
button:not(.glossary-term),.button-primary,.button-secondary,.header-cta{
  transition:background-color 170ms ease,color 170ms ease,border-color 170ms ease,box-shadow 190ms ease,transform 140ms var(--soft-ease)
}
.site-header nav a,.footer-links a,.back-link,.section-more,.card-title a,.series-back,.reader-glossary-link{
  transition:color 160ms ease,background-color 160ms ease
}
.article-card,.series-card{transition:transform 210ms var(--soft-ease),border-color 180ms ease,box-shadow 210ms ease}
.language-switch button{transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease,transform 140ms var(--soft-ease),box-shadow 180ms ease}
.language-switch button.active{box-shadow:0 1px 5px #3467830a}
.reading-progress span{transition:width 100ms linear}
@media(hover:hover){
  .button-primary:hover,.header-cta:hover{transform:translateY(-1px);box-shadow:0 4px 12px #173b5019}
  .button-secondary:hover,.author-field:hover{transform:translateY(-1px)}
  .article-card:hover,.series-card:hover{transform:translateY(-2px)}
}
button:not(.glossary-term):not(:disabled):active,.button-primary:active,.button-secondary:active,.header-cta:active{transform:translateY(1px) scale(.98)}
.view-controls button:active,.journal-controls button:active{transform:scale(.96)}
.word-popover:not([hidden]){animation:merit-popover-in 150ms var(--soft-ease)}
.toast:not([hidden]){animation:merit-toast-in 170ms var(--soft-ease)}
@media(max-width:640px){.site-header.menu-open #main-nav{animation:merit-menu-in 170ms var(--soft-ease)}}
@keyframes merit-popover-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@keyframes merit-menu-in{from{opacity:.4;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@keyframes merit-toast-in{from{opacity:0;transform:translate(-50%,4px)}to{opacity:1;transform:translate(-50%,0)}}
/* Fixed viewport snapshots avoid stretching long scientific articles during navigation. */
::view-transition{pointer-events:none}
::view-transition-group(root){animation-duration:190ms;animation-timing-function:var(--soft-ease)}
::view-transition-old(root){animation:merit-page-out 150ms ease-out both}
::view-transition-new(root){animation:merit-page-in 210ms var(--soft-ease) both}
@keyframes merit-page-out{from{opacity:1}to{opacity:0}}
@keyframes merit-page-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation:none!important;transition:none!important}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
  button:not(.glossary-term):active,.button-primary:hover,.button-primary:active,.button-secondary:hover,.button-secondary:active,.header-cta:hover,.header-cta:active,.article-card:hover,.series-card:hover,.author-field:hover{transform:none}
}
