/* Site animations (Kelly's final list, Oct 30, 2026). Each plays once per visit when scrolled into view; under reduced motion,
   without JavaScript, or once seen this visit the page shows its finished state. Overlays sit on the screen picture only and never
   change the layout. Made by assets/anim.js. */
.anl { position: absolute; left: 0; top: 0; pointer-events: none; z-index: 3; container-type: inline-size; }
.anl > * { position: absolute; }
.anl .ancov { background: #fff; }
.anl .anchip { background-repeat: no-repeat; border-radius: 0.35cqw; }
.anl .anpress { border-radius: 999px; background: rgba(1, 34, 61, .28); opacity: 0; }
.anl .anring { border-radius: 999px; box-shadow: 0 0 0 2px #01a263, 0 0 12px 3px rgba(1, 162, 99, .35); opacity: 0; }
.anl .anptr { border-radius: 50%; background: rgba(1, 34, 61, .22); box-shadow: 0 0 0 2px rgba(255, 255, 255, .85), 0 4px 12px rgba(1, 34, 61, .25); opacity: 0; }
.anl .antype { white-space: nowrap; font-family: Montserrat, Helvetica, Arial, sans-serif; font-weight: 400; color: #16181c; line-height: 1; transform: translateY(-50%); }
.anl .antype::after { content: ""; display: inline-block; width: 1px; height: 1.15em; margin-left: 1px; vertical-align: -0.2em; background: #16181c; animation: anblink 1s steps(1) infinite; }
.anl .antype.done::after { display: none; }
@keyframes anblink { 50% { opacity: 0; } }
.anum { display: inline-block; font-variant-numeric: tabular-nums; }
.owchecks.andeal li { opacity: 0; transform: translateY(8px); }
@media (prefers-reduced-motion: reduce) { .anl { display: none; } .owchecks.andeal li { opacity: 1; transform: none; } }
