body { background:#fff; color:#0a2a3f; }
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in { opacity:1; transform:none; }
.no-js .reveal { opacity:1; transform:none; }
@keyframes floaty { 0%,100%{ transform:translateY(0) rotate(var(--r,0deg)); } 50%{ transform:translateY(-14px) rotate(var(--r,0deg)); } }
@keyframes blob { 0%,100%{ border-radius:42% 58% 63% 37% / 41% 44% 56% 59%; } 50%{ border-radius:61% 39% 38% 62% / 56% 62% 38% 44%; } }
@keyframes marquee { from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@keyframes ping2 { 0%{ transform:scale(1); opacity:.7; } 100%{ transform:scale(2.4); opacity:0; } }
@keyframes dash { to { stroke-dashoffset:0; } }
.floaty { animation:floaty 6s ease-in-out infinite; }
.blob { animation:blob 14s ease-in-out infinite; }
.marquee-track { animation:marquee 28s linear infinite; width:max-content; }
.ping2 { animation:ping2 1.8s cubic-bezier(0,0,.2,1) infinite; }
.draw { stroke-dasharray:400; stroke-dashoffset:400; animation:dash 2.4s .6s ease forwards; }
.grain { background-image:radial-gradient(rgba(0,159,227,.18) 1.2px, transparent 1.2px); background-size:22px 22px; }
.stripes { background-image:repeating-linear-gradient(115deg, rgba(255,255,255,.14) 0 3px, transparent 3px 26px); }
@media (prefers-reduced-motion: reduce){
  .floaty,.blob,.marquee-track,.ping2{ animation:none; }
  .reveal{ opacity:1; transform:none; transition:none; }
  html{ scroll-behavior:auto; }
}
details > summary { list-style:none; }
input:focus-visible, textarea:focus-visible, button:focus-visible, a:focus-visible, summary:focus-visible { outline:3px solid #FF8A3D; outline-offset:2px; }
