/* Contact: a gentle welcome, with stationary fields and immediate focus. */
body[data-page="contact"]{--contact-motion-ease:cubic-bezier(.22,1,.36,1)}
body[data-page="contact"] [data-contact-reveal]{opacity:1;animation:none!important}
body[data-page="contact"] .contact-hub-form>h2{position:relative}
body[data-page="contact"] .contact-hub-form>h2::after{content:"";position:absolute;left:0;bottom:-8px;width:68px;height:2px;background:linear-gradient(90deg,var(--violet),var(--gold));transform:scaleX(1);transform-origin:left;pointer-events:none}
body[data-page="contact"].contact-motion-ready .contact-hub-form>h2::after{transition:transform .45s var(--contact-motion-ease)}
body[data-page="contact"].contact-motion-ready .contact-hub-form>h2:not(.contact-revealed)::after{transform:scaleX(.3)}
body[data-page="contact"] .contact-copy .contact-details a{background-image:linear-gradient(currentColor,currentColor);background-size:0 1px;background-repeat:no-repeat;background-position:left bottom;transition:background-size .22s var(--contact-motion-ease),color .2s ease}
body[data-page="contact"] .contact-copy>.text-link{transition:color .2s ease,border-color .2s ease}
body[data-page="contact"] .contact-copy>.text-link svg{transition:transform .22s var(--contact-motion-ease)}
body[data-page="contact"] .contact-save{transition:background-color .22s ease,border-color .22s ease,box-shadow .22s ease}
body[data-page="contact"] .contact-save:hover{transform:none}
body[data-page="contact"] .contact-hub-form{transition:border-color .22s ease,box-shadow .22s ease}
body[data-page="contact"] .contact-hub-form:focus-within{border-top-color:#b49bc4;box-shadow:0 0 0 3px #7944a60c,0 15px 40px #39145107}
body[data-page="contact"] .contact-hub-form .btn:hover{transform:none}
body[data-page="contact"] .contact-hub-form [type="submit"]{transition:background-color .2s ease,color .2s ease,border-color .2s ease}
@media(hover:hover) and (pointer:fine){
 body[data-page="contact"] .contact-copy .contact-details a:hover{background-size:100% 1px;color:#fff1ce}
 body[data-page="contact"] .contact-copy>.text-link:hover{color:#fff1ce;border-color:#f4d69b}
 body[data-page="contact"] .contact-copy>.text-link:hover svg{transform:translateX(2px)}
 body[data-page="contact"] .contact-copy>.contact-save:hover{background:#ffffff12;border-color:#e6c17680;box-shadow:0 0 0 1px #e6c17618}
}
body[data-page="contact"] .contact-copy .contact-details a:focus-visible{background-size:100% 1px}
body[data-page="contact"] .contact-copy>.contact-save:focus-visible{border-color:#f4d69b}
body[data-page="contact"].contact-form-active [data-contact-reveal],
body[data-page="contact"].contact-form-active .contact-hub-form>h2::after{transition:none!important}
body[data-page="contact"].contact-form-active .contact-hub-form>h2::after{transform:scaleX(1)!important}
.motion-paused body[data-page="contact"] [data-contact-reveal],
.motion-paused body[data-page="contact"] .contact-hub-form,
.motion-paused body[data-page="contact"] .contact-hub-form *,
.motion-paused body[data-page="contact"] .contact-hub-form *::before,
.motion-paused body[data-page="contact"] .contact-hub-form *::after{animation:none!important;transition:none!important}
.motion-paused body[data-page="contact"] .contact-hub-form>h2::after{transform:scaleX(1)!important}
.motion-paused body[data-page="contact"] .contact-copy>.text-link:hover svg{transform:none!important}
@media(prefers-reduced-motion:reduce){
 body[data-page="contact"] [data-contact-reveal],
 body[data-page="contact"] .contact-copy *,
 body[data-page="contact"] .contact-hub-form,
 body[data-page="contact"] .contact-hub-form *,
 body[data-page="contact"] .contact-hub-form *::before,
 body[data-page="contact"] .contact-hub-form *::after{animation:none!important;transition:none!important}
 body[data-page="contact"] .contact-hub-form>h2::after{transform:scaleX(1)!important}
 body[data-page="contact"] .contact-copy>.text-link:hover svg{transform:none!important}
}
@media print{
 body[data-page="contact"] [data-contact-reveal]{opacity:1!important;transform:none!important}
 body[data-page="contact"] .contact-hub-form>h2::after{display:none}
}
