.contact{position:relative;overflow:hidden;padding-top:9rem;padding-bottom:6rem}.contact__glow{left:50%;top:-12%;height:520px;width:900px;transform:translateX(-50%);opacity:.28}.contact__inner{position:relative}.contact__title{max-width:18ch;font-size:clamp(2.25rem,6vw,4.25rem);line-height:1.03}.contact__title em{font-style:normal;color:var(--brand-deep)}.contact__grid{display:grid;grid-gap:3rem;gap:3rem;margin-top:clamp(3.5rem,9vh,6.5rem)}.contact__label{font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}.contact__details{margin-top:2rem;display:grid;grid-gap:1.5rem;gap:1.5rem}.contact__details dt{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}.contact__details dd{margin-top:.375rem;font-size:1rem;color:var(--chalk)}.contact__details a{transition:color .2s}.contact__details a:hover{color:var(--brand-strong)}.contact__form{display:grid;grid-gap:2.25rem;gap:2.25rem}.field label{display:block;font-size:1rem;color:var(--muted);transition:color .2s}.field label span{color:var(--brand-strong)}.field input,.field textarea{width:100%;margin-top:.75rem;padding:.25rem 0 .875rem;font:inherit;font-size:1.0625rem;color:var(--chalk);background:transparent;border:0;border-bottom:1px solid var(--hair);border-radius:0;transition:border-color .25s}.field textarea{resize:vertical;min-height:7rem;line-height:1.6}.field input:focus,.field textarea:focus{outline:none;border-bottom-color:var(--brand);border-bottom-width:2px;padding-bottom:calc(.875rem - 1px)}.field:focus-within label{color:var(--brand-strong)}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-bottom-color:var(--risk)}.field__error{margin-top:.625rem;font-size:.8125rem;color:var(--risk)}.field__error a{text-decoration:underline}.contact__submit{width:100%;min-height:60px;border-radius:9999px;background-color:var(--brand);color:var(--brand-deep);font-size:1rem;font-weight:600;box-shadow:var(--shadow-brand);transition:background-color .3s,transform .3s}.contact__submit:hover:not(:disabled){background-color:var(--brand-hover);transform:translateY(-2px)}.contact__submit:disabled{opacity:.65;cursor:progress}.contact__done{align-self:start;border:1px solid var(--hair);border-radius:1rem;background-color:var(--surface);padding:2rem;box-shadow:var(--shadow-panel)}.contact__done-title{font-family:var(--font-display);font-size:1.375rem;font-weight:600;letter-spacing:-.03em;color:var(--chalk)}.contact__done-body{margin-top:.875rem;font-size:.9375rem;line-height:1.7;color:var(--muted)}.contact__done-body a{color:var(--brand-strong);border-bottom:1px solid rgba(253,146,79,.5)}@media (min-width:1024px){.contact{padding-top:11rem}.contact__grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:5rem}}@keyframes contact-rise{0%{opacity:0;transform:translateY(22px);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}@keyframes contact-glow-in{to{opacity:.28}}@keyframes contact-glow-drift{0%,to{transform:translateX(-50%) translateY(0) scale(1)}50%{transform:translateX(-50%) translateY(3vh) scale(1.07)}}@keyframes contact-underline{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.contact__glow{opacity:0;animation:contact-glow-in 1.5s ease .1s forwards,contact-glow-drift 20s ease-in-out 1.6s infinite}.contact__details>div,.contact__done,.contact__label,.contact__line,.contact__submit,.field{opacity:0;animation:contact-rise .75s cubic-bezier(.2,.8,.3,1) forwards}.contact__line{display:block}.contact__line:first-child{animation-delay:.08s}.contact__line:nth-child(2){animation-delay:.2s}.contact__label{animation-delay:.36s}.contact__details>div{animation-delay:calc(.46s + var(--i, 0) * .07s)}.field{animation-delay:calc(.5s + var(--i, 0) * .09s)}.contact__submit{animation-delay:.94s}.contact__done{animation-delay:0s}.contact__title:after{content:"";display:block;width:88px;height:2px;margin-top:clamp(1.5rem,3vh,2.25rem);border-radius:99px;background:linear-gradient(90deg,var(--brand),rgba(253,146,79,0));transform:scaleX(0);transform-origin:0 50%;animation:contact-underline .8s cubic-bezier(.2,.8,.3,1) .55s forwards}.field label{transform-origin:0 50%;transition:color .2s,transform .25s var(--ease-out)}.field:focus-within label{transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.contact__details>div,.contact__done,.contact__glow,.contact__label,.contact__line,.contact__submit,.field{animation:none;opacity:1;transform:none;filter:none}.contact__glow{opacity:.28}.contact__title:after{animation:none;transform:scaleX(1)}}