body{font-family:var(--font-inter),Inter,system-ui,sans-serif}
.skip-link{position:absolute;left:-999px;top:0;background:#005eb8;color:#fff;padding:8px 12px;z-index:100}
.skip-link:focus{left:8px;top:8px}
.carousel-track{overflow-x:auto;scrollbar-width:none;width:100%}
.carousel-track::-webkit-scrollbar{display:none}
.carousel-track>*{flex-shrink:0}
[data-carousel] [data-carousel-dot]{display:none}
a:focus-visible,button:focus-visible{outline:2px solid #005eb8;outline-offset:2px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ---- motion polish ---- */
@keyframes pageIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.page-in{animation:pageIn .5s cubic-bezier(.22,.61,.36,1) both}
.rv{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}
.rv.rv-in{opacity:1;transform:none}
.lift{transition:transform .3s ease,box-shadow .3s ease}
.lift:hover{transform:translateY(-6px);box-shadow:0 18px 36px -12px rgba(0,60,130,.28)}
@keyframes floatY{0%,100%{translate:0 0}50%{translate:0 -10px}}
.float-a{animation:floatY 6s ease-in-out infinite}
.float-b{animation:floatY 7s ease-in-out -2s infinite}
.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,#005eb8,#7c37d7,#f68b3e);pointer-events:none}
html[data-scrolled] header>div.fixed{box-shadow:0 8px 30px rgba(0,30,80,.12);background-color:rgba(255,255,255,.97)!important;backdrop-filter:blur(14px)}
header a,header button{transition:color .2s ease,opacity .2s ease,transform .2s ease}
main a[class*="bg-["],main button[class*="bg-["],main a[class*="bg-gradient"]{transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}
main a[class*="bg-["]:hover,main button[class*="bg-["]:hover{transform:translateY(-2px);box-shadow:0 10px 22px -8px rgba(0,60,130,.45);filter:brightness(1.04)}
main img{transition:transform .6s ease}
main [class*="overflow-hidden"]:hover>img{transform:scale(1.03)}
@media (prefers-reduced-motion:reduce){.page-in,.rv,.float-a,.float-b{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}}
