.contact__grid{grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:start}.contact__aside,.contact__grid{display:grid;gap:var(--space-2xl)}.contact__aside{position:sticky;top:calc(var(--nav-height) + var(--space-xl))}.contact__block{display:grid;gap:var(--space-md)}.contact__block h2{font-size:var(--text-xl)!important;text-wrap:balance}.contact__why>li{display:flex;align-items:center;gap:var(--space-sm);padding-block:var(--space-md);color:var(--color-ink-2)}.contact__why .glyph{background:var(--color-accent)}.contact__info>li{display:flex;align-items:flex-start;gap:var(--space-md);padding-block:var(--space-md)}.contact__icon{width:20px;height:20px;flex-shrink:0;margin-top:var(--space-2xs);color:var(--color-green-ink)}.contact__label{font-size:var(--text-sm);color:var(--color-muted)}.contact__value{font-weight:600}.contact__value.num{display:inline-block}.contact__link{color:var(--color-green-ink);text-decoration:underline;text-decoration-color:var(--color-rule);text-underline-offset:5px;text-decoration-thickness:2px;border-radius:var(--radius-sheet);transition:text-decoration-color var(--dur-short) var(--ease-out)}.contact__link:hover{text-decoration-color:var(--color-green)}.contact-form{padding:var(--space-2xl)}.contact-form__fields,.contact-form__row{display:grid;gap:var(--space-lg)}.contact-form__row{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-form .key--block{margin-top:var(--space-xs)}@media (max-width:60rem){.contact__grid{grid-template-columns:minmax(0,1fr);gap:var(--space-xl)}.contact__aside{position:static;order:2;gap:var(--space-xl)}.contact-form{padding:var(--space-xl) var(--space-lg)}}@media (max-width:40rem){.contact-form__row{grid-template-columns:minmax(0,1fr)}.contact-form{padding:var(--space-lg) var(--space-md)}}.submit-key__state{display:inline-flex;align-items:center;gap:var(--space-xs)}.motion .submit-key__state{animation:state-in var(--dur-base) var(--ease-enter) backwards}@keyframes state-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.submit-key[data-status=sending]{cursor:progress}.submit-key[data-status=sent]{background:var(--color-green-tint);border-color:var(--color-green-ink);color:var(--color-green-ink)}.motion .submit-key .spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}