.hero-cursor{position:fixed;left:0;top:0;width:0;height:0;pointer-events:none;z-index:1000;opacity:0;transition:opacity .12s}
.hero-cursor-core{position:absolute;left:-4px;top:-4px;width:8px;height:8px;background:var(--red);border-radius:50%;transition:background .15s,scale .2s}
.hero-cursor-ring{position:absolute;left:-16px;top:-16px;width:32px;height:32px;border:1px solid var(--red);border-radius:50%;opacity:.6;transform:translate(var(--ring-x,0px),var(--ring-y,0px));transition:width .2s,height .2s,left .2s,top .2s,opacity .2s}
.hero-cursor.over-link .hero-cursor-ring{width:48px;height:48px;left:-24px;top:-24px;opacity:1}.hero-cursor.over-link .hero-cursor-core{scale:.65}.hero-cursor.over-headline .hero-cursor-core{background:white}
.hero-ripple{position:fixed;width:190px;height:190px;border:1px solid var(--red);border-radius:50%;opacity:0;pointer-events:none;z-index:20}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.hero-cursor-active .hero-cursor{opacity:1}.hero-cursor-active .hero-intro,.hero-cursor-active .hero-intro *,.hero-cursor-active body>.header,.hero-cursor-active body>.header *{cursor:none}}
@media(prefers-reduced-motion:reduce),(hover:none),(pointer:coarse){.hero-cursor,.hero-ripple{display:none}}

.hero-word{transition:color .28s ease}
.hero-word + .red{display:inline-block;vertical-align:baseline}
@media(hover:hover) and (pointer:fine){.hero-word:hover{color:var(--red)}}
@media(prefers-reduced-motion:reduce){.hero-word{transition:none}}

/* Nested arches in the opening screen's negative space. */
.hero-arches{position:absolute;right:0;top:50%;z-index:1;width:clamp(240px,26vw,420px);aspect-ratio:400/560;transform:translateY(-50%);pointer-events:none}
.hero-arches svg{display:block;width:100%;height:100%;overflow:visible}
.hero-arches path{fill:none;stroke:#fff;stroke-width:1;vector-effect:non-scaling-stroke}
.hero-arches .arch-dot{fill:var(--red)}
.arch-layer{transform:translate(calc(var(--px,0)*var(--d)*1px),calc(var(--py,0)*var(--d)*1px));transition:transform 1.6s cubic-bezier(.16,1,.3,1)}
@media(max-width:1100px){.hero-arches{display:none}}
@media(prefers-reduced-motion:reduce){.arch-layer{transition:none}}
