:root{--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.76, 0, .24, 1);--ease-soft:cubic-bezier(.33, 1, .68, 1)}.lines .line{margin-bottom:-.1em;padding-bottom:.1em;display:block;overflow:hidden}.lines [data-line]{display:block}@media (prefers-reduced-motion:no-preference){.js .lines [data-line]{animation:ed-line-up .9s var(--ease-out) forwards;animation-delay:calc(var(--i) * .11s + .15s);transform:translateY(110%)}.js [data-after-lines]{opacity:0;animation:ed-rise .7s var(--ease-out) .52s forwards;transform:translateY(16px)}}@keyframes ed-line-up{to{transform:none}}@keyframes ed-rise{to{opacity:1;transform:none}}@media (prefers-reduced-motion:no-preference){.js [data-reveal]{opacity:0;transition:opacity .7s var(--ease-out), transform .9s var(--ease-out);transition-delay:calc(var(--d,0) * 80ms);transform:translateY(24px)}.js [data-reveal].is-in{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.js [data-reveal]{opacity:0;transition:opacity .5s}.js [data-reveal].is-in{opacity:1}}@media (prefers-reduced-motion:no-preference){.js .shutter{clip-path:inset(100% 0 0);animation:ed-shutter 1.1s var(--ease-in-out) .3s forwards}.js .shutter img{animation:ed-settle 1.6s var(--ease-soft) .3s forwards;transform:scale(1.12)}}@keyframes ed-shutter{to{clip-path:inset(0)}}@keyframes ed-settle{to{transform:none}}#top :is(a,button):focus-visible{outline:2px solid var(--foreground);outline-offset:3px}#top footer :is(a,button):focus-visible,#site-menu :is(a,button):focus-visible{outline-color:var(--field-foreground)}.press{transition:transform .16s var(--ease-out), background-color .2s ease, color .2s ease, opacity .2s ease}.press:active{transform:scale(.97)}
