.hero-grain { z-index: -1; pointer-events: none; opacity: .12; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E"); mix-blend-mode: soft-light; }
.hero-content > * { animation: rise .9s var(--ease) both; }
.hero-content > :nth-child(2) { animation-delay: .08s; }
.hero-content > :nth-child(3) { animation-delay: .16s; }
.hero-content > :nth-child(4) { animation-delay: .24s; }
.project-card::before { content: ""; position: absolute; z-index: 1; inset: 0; pointer-events: none; border: 1px solid rgba(255,255,255,.09); box-shadow: inset 0 0 4rem rgba(117,167,255,.04); }
.project-card:nth-child(4n+2) { transform-origin: left center; }
.project-card:nth-child(4n+3) { transform-origin: right center; }
.partner-card { position: relative; overflow: hidden; }
.partner-card::before { content: ""; position: absolute; width: 60%; aspect-ratio: 1; background: radial-gradient(circle, rgba(117,167,255,.12), transparent 67%); filter: blur(20px); }
.partner-card img { position: relative; transition: transform .5s var(--ease), filter .5s var(--ease); }
.partner-card:is(:hover,:focus-visible) img { transform: scale(1.04); filter: drop-shadow(0 1rem 2rem rgba(117,167,255,.2)); }
@keyframes rise { from { opacity: 0; transform: translateY(1.2rem); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .project-card { transform: none !important; }
}
