/* Keep portal colors and geometry; motion changes only opacity and transforms. */
.ui-portal .hero{overflow:hidden}
.ui-portal .hero::after{content:'';position:absolute;inset:-12%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 25% 35%,#ffffff0c,transparent 55%);animation:home-light 22s ease-in-out infinite alternate}
.ui-portal.home-motion-paused .hero::after{animation-play-state:paused}
.ui-portal .nav-links a,.ui-portal .tag,.ui-portal .library-card,.ui-portal .library-icon,.ui-portal .description-toggle,.ui-portal .search-btn{transition:color .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.ui-portal .library-icon{display:inline-block;transform-origin:center}
.ui-portal .library-card:focus-within{border-color:var(--ui-accent);box-shadow:0 4px 16px #18373a12}
.ui-portal .search-container:focus-within{box-shadow:0 0 0 3px #ffffff24}
.ui-portal .description-toggle:focus-visible{background:#176d7310}
.ui-portal .home-enter{animation:home-enter .48s ease-out backwards;animation-delay:var(--home-delay,0ms)}
@keyframes home-light{from{transform:translate3d(-3%,0,0);opacity:.45}to{transform:translate3d(3%,2%,0);opacity:.85}}
@keyframes home-enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@media(hover:hover) and (pointer:fine){
 .ui-portal .library-card:hover{transform:translateY(-3px);box-shadow:0 7px 20px #18373a16}
 .ui-portal .library-card:hover .library-icon,.ui-portal .library-card:focus-within .library-icon{color:var(--ui-accent);transform:translateY(-2px) scale(1.06)}
 .ui-portal .nav-links a:hover{color:#10565b;transform:translateY(-1px)}
 .ui-portal .tag:hover{color:#fff;border-color:#fff;transform:translateY(-1px)}
 .ui-portal .description-toggle:hover{background:#176d7310}
}
.ui-portal .library-card:active{border-color:var(--ui-accent);background:#f7fbfa}
.ui-portal .search-btn:active{background:#0d4d52}
@media(hover:none),(max-width:600px){.ui-portal .hero::after{animation:none}.ui-portal .home-enter{animation-duration:.25s;animation-delay:0ms}}
@media(prefers-reduced-motion:reduce){.ui-portal .hero::after,.ui-portal .home-enter{animation:none}.ui-portal .nav-links a,.ui-portal .tag,.ui-portal .library-card,.ui-portal .library-icon,.ui-portal .description-toggle,.ui-portal .search-btn{transition:none;transform:none}}
