/* Progressive motion: no navigation interception, no canvas transforms. */
@view-transition { navigation: auto; }
::view-transition-old(root),::view-transition-new(root){animation-duration:180ms;animation-timing-function:ease-out}
:where(a,button,input,textarea,select):focus-visible{outline:2px solid #c4df77;outline-offset:5px}
:where(.button,.pill,.candidate,.survey-option,nav a,.header-nav a){transition:color .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease}
:where(.button,.pill,.candidate):active{filter:brightness(.92)}
:where(input,textarea,select):focus{border-color:#a9c56a}
.dc-reading-progress{position:fixed;inset:0 auto auto 0;height:2px;width:100%;background:#c4df77;transform:scaleX(0);transform-origin:left;z-index:999;pointer-events:none}
.contents a[aria-current="location"]{color:#c4df77;border-left-color:#c4df77}
@media(prefers-reduced-motion:no-preference){
 .dc-enter{animation:dc-rise .55s cubic-bezier(.2,.7,.2,1) both}
 @keyframes dc-rise{from{opacity:.15;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
 body[data-dc-page="catalog"] .modal.open .profile{animation:dc-rise .25s ease-out both}
 body[data-dc-page="atlas"] details[open] > :not(summary){animation:dc-fade .2s ease-out}
 @keyframes dc-fade{from{opacity:.2}to{opacity:1}}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 :where(.species-card,.concept-feature,body[data-dc-page="catalog"] .card){transition:border-color .25s ease,box-shadow .25s ease}
 :where(.species-card,.concept-feature,body[data-dc-page="catalog"] .card):hover{border-color:#718744;box-shadow:0 12px 30px #0003}
 body[data-dc-page="catalog"] .photo{overflow:hidden}
 body[data-dc-page="catalog"] .photo img{transition:transform .55s cubic-bezier(.2,.7,.2,1)}
 body[data-dc-page="catalog"] .card:hover .photo img{transform:scale(1.035)}
 :where(.button,.pill):hover{box-shadow:0 0 20px #bada6814}
}
@media(prefers-reduced-motion:reduce){
 ::view-transition-old(root),::view-transition-new(root){animation:none!important}
 html{scroll-behavior:auto!important}
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
