.contact-effects {position:absolute;inset:0;width:100%;height:100%;pointer-events:none;}
.contact-map-a {animation:contact-map-a 4.8s ease-in-out -.5s infinite;}
.contact-map-b {animation:contact-map-b 5.6s ease-in-out -1.2s infinite;}
.contact-map-c {animation:contact-map-c 6.2s ease-in-out -3.4s infinite;}
@keyframes contact-map-a {0%,100%{opacity:0}42%{opacity:.95}72%{opacity:.12}}
@keyframes contact-map-b {0%,100%{opacity:.95}50%,60%{opacity:0}}
@keyframes contact-map-c {0%,100%{opacity:0}55%{opacity:.95}82%{opacity:.1}}
.contact-choice,.contact-send {pointer-events:auto;cursor:pointer;outline:none;}
.contact-choice .accent {opacity:0;transition:opacity 220ms ease;}
.contact-choice:hover .accent,.contact-choice:focus-visible .accent {opacity:.55;}
.contact-choice[aria-pressed="true"] .accent {opacity:.8;}
.contact-send .button-light {opacity:0;transition:opacity 180ms ease;}
.contact-send:hover .button-light,.contact-send:focus-visible .button-light {opacity:1;}
.contact-send .arrow {transition:transform 180ms ease;}
.contact-send:hover .arrow,.contact-send:focus-visible .arrow {transform:translateX(5px);}
.contact-send:active .arrow {transform:translate(5px,1px);}
.contact-send:active .button-light {opacity:.45;}
@media(prefers-reduced-motion:reduce){.contact-map-a,.contact-map-b,.contact-map-c{animation:none;opacity:0}.contact-reflection{animation:none;opacity:0}.contact-choice .accent,.contact-send .arrow,.contact-send .button-light{transition:none}}

@media(prefers-reduced-motion:reduce){.contact-map-base-dim{display:none}}
