.photo{aspect-ratio:var(--photo-crop,var(--photo-aspect));background-color:var(--bone-deep);isolation:isolate;background-position:50%;background-size:cover;position:relative;overflow:hidden}.photo__img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .9s var(--ease-out)}.photo.is-loaded .photo__img{opacity:1}.photo picture{width:100%;height:100%;transform:scale(var(--photo-scale,1));transition:transform 1.1s var(--ease-out);display:block}.contact{padding-block:var(--section-y) clamp(2rem, 5vh, 3rem);background:var(--bone);--contact-gap:clamp(1.5rem, 4vw, 3rem)}.contact__title{font-size:var(--t-4xl);margin-top:clamp(1rem,2.5vh,1.75rem);font-weight:300}.contact__body{border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:end;gap:clamp(1.5rem,5vw,4rem);margin-top:clamp(2rem,5vh,3.5rem);padding-bottom:clamp(2.5rem,6vh,4rem);display:flex}.contact__lede{max-width:38ch;font-size:var(--t-lg);color:var(--ink-soft);text-wrap:pretty;line-height:1.55}.contact__mail{font-family:var(--display);letter-spacing:-.02em;align-items:center;gap:.6em;font-size:clamp(1.6rem,.9rem + 3vw,4rem);line-height:1;display:inline-flex}.contact__mail-text{padding-bottom:.08em;display:inline-block;position:relative}.contact__mail-text:after{content:"";inset-inline:0;transform-origin:100%;height:1px;transition:transform .55s var(--ease-out);background:currentColor;position:absolute;bottom:0}.contact__mail:hover .contact__mail-text:after,.contact__mail:focus-visible .contact__mail-text:after{transform:scaleX(0)}.contact__mail svg{fill:none;width:.5em;height:.5em;stroke:var(--accent);stroke-width:1.5px;stroke-linecap:round;transition:transform .5s var(--ease-out)}.contact__mail:hover svg{transform:translate(.15em,-.15em)}.contact__book{flex-wrap:wrap;align-items:baseline;gap:.75rem clamp(1.5rem,4vw,3rem);margin-top:clamp(2.5rem,6vh,4rem);display:flex}.contact__book-cta{background:var(--espresso);color:var(--bone);font-size:var(--t-xs);letter-spacing:.2em;text-transform:uppercase;transition:background .4s var(--ease-out), transform .4s var(--ease-out);border-radius:999px;align-items:center;gap:.7em;padding:.95em 2.4em;font-weight:500;display:inline-flex}.contact__book-cta:hover,.contact__book-cta:focus-visible{background:var(--blush-deep);transform:translateY(-2px)}.contact__book-cta svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:.85em;height:.85em;transition:transform .5s var(--ease-out);flex:none}.contact__book-cta:hover svg,.contact__book-cta:focus-visible svg{transform:translate(.2em,-.2em)}.contact__book-note{max-width:38ch;font-size:var(--t-sm);color:var(--ink-faint);text-wrap:pretty;line-height:1.6}.contact__details{gap:var(--contact-gap);grid-template-columns:repeat(3,minmax(0,1fr));padding-block:clamp(2.5rem,6vh,4rem);display:grid}@media (width<=900px){.contact__details{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.contact__details{grid-template-columns:1fr;justify-content:start}}.contact__subhead,.contact__all-links{margin-top:1.5rem}.contact__collab{max-width:42ch;font-size:var(--t-sm);text-wrap:pretty;line-height:1.65}.contact__details h3{font-size:var(--t-xs);letter-spacing:.24em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.75rem;font-weight:500}.contact__details p,.contact__socials{font-size:var(--t-base);color:var(--ink-soft);line-height:1.7}.contact__socials{gap:.15rem;display:grid}.contact__base{border-top:1px solid var(--rule);font-size:var(--t-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);align-items:center;gap:clamp(1rem,4vw,2rem);padding-top:clamp(1.5rem,4vh,2.5rem);display:flex}.contact__mark{font-family:var(--display);color:var(--accent);font-size:1.5rem;line-height:1}.contact__base p{margin-inline-end:auto}@media (width<=560px){.contact__base{flex-wrap:wrap;row-gap:.9rem}.contact__base p{flex-basis:100%;order:3;margin-inline-end:0}.contact__base a{white-space:nowrap;margin-inline-start:auto}}.contact__socials a{flex-direction:column;gap:.1rem;display:inline-flex}.contact__socials i{font-style:normal;font-size:var(--t-xs);letter-spacing:.04em;color:var(--ink-faint)}.contact__socials li+li{margin-top:.55rem}
