/* Polygon page animations — matched to the main NTMC visual language. */
.poly-reveal{opacity:0;transform:translateY(55px);transition:opacity .8s ease,transform .8s ease}
.poly-reveal.is-visible{opacity:1;transform:none}
.poly-card{transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.poly-card:hover{transform:translateY(-8px);box-shadow:0 25px 60px rgba(0,0,0,.28);border-color:rgba(0,183,255,.35)!important}
.poly-hero-item{opacity:0;transform:translateY(30px);animation:polyHeroReveal .8s ease forwards}
.poly-hero .badge{animation-delay:.1s}
.poly-hero h1{animation-delay:.25s}
.poly-hero h2{animation-delay:.38s}
.poly-hero .desc{animation-delay:.5s}
.poly-hero .buttons{animation-delay:.62s}
.poly-hero .stats{animation-delay:.74s}
.poly-hero .hero-image{animation-delay:.2s}
.poly-hero .hero-image img{animation:polyFloat 6s ease-in-out infinite}
@keyframes polyHeroReveal{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes polyFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-18px)}}
.card strong[data-target]{min-width:2ch}
@media(prefers-reduced-motion:reduce){.poly-reveal,.poly-hero-item{opacity:1;transform:none;transition:none;animation:none!important}.poly-card,.poly-card:hover{transition:none;transform:none}.poly-hero .hero-image img{animation:none}}
