@layer components{.contact-form{--_cyan:var(--accent);--_label:var(--label);--_line:var(--line-field);--_error:var(--error);gap:calc(var(--space-5) * .85);font-family:var(--font-secondary);padding:clamp(1.25rem,3.2vw,2.75rem);font-weight:400;display:grid;position:relative}.contact-form_frame{border:.0625rem solid color-mix(in srgb, var(--accent) 18%, transparent);border-radius:var(--radius-frame);background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 6%, transparent), transparent 45%, color-mix(in srgb, var(--accent) 3%, transparent));pointer-events:none;position:absolute;inset:0}.contact-form_frame:before,.contact-form_frame:after{content:"";border:0 solid color-mix(in srgb, var(--accent-light) 60%, transparent);width:1.25rem;height:1.25rem;position:absolute}.contact-form_frame:before{border-top-width:.0625rem;border-left-width:.0625rem;top:-.0625rem;left:-.0625rem}.contact-form_frame:after{border-bottom-width:.0625rem;border-right-width:.0625rem;bottom:-.0625rem;right:-.0625rem}.contact-form_row{gap:calc(var(--space-5) * .85);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.contact-form_field{border:0;min-width:0;margin:0;padding:0;position:relative}.contact-form_field label{color:var(--_label);font-size:var(--type-readout);letter-spacing:.2em;text-transform:uppercase;margin-bottom:.35rem;padding:0;transition:color .3s;display:block}.contact-form_field:focus-within>label{color:var(--accent-light)}.contact-form input:not([type=radio]),.contact-form textarea{border:0;border-bottom:.0625rem solid var(--_line);width:100%;color:var(--text-1);font:inherit;font-size:var(--type-input);background:0 0;border-radius:0;padding:.7rem 0;line-height:1.5;transition:border-color .3s,box-shadow .3s;display:block}.contact-form textarea{resize:vertical;min-height:9rem}.contact-form input:not([type=radio]):focus,.contact-form textarea:focus{border-bottom-color:var(--_cyan);box-shadow:0 .0625rem 0 var(--_cyan);outline:none}.contact-form [data-invalid=true] input:not([type=radio]),.contact-form [data-invalid=true] textarea{border-bottom-color:var(--_error)}.contact-form_error{min-height:0;color:var(--_error);font-size:var(--text-small);margin:.4rem 0 0;line-height:1.4}.contact-form_error:empty{display:none}.contact-form_trap{width:.0625rem;height:.0625rem;position:absolute;left:-10000px;overflow:hidden}.contact-form_footer{gap:var(--space-4);display:grid}.contact-form_privacy,.contact-form_note{color:color-mix(in srgb, var(--text-1) 65%, transparent);font-size:var(--type-caption);margin:0;line-height:1.6}.contact-form_privacy{max-width:62ch}.contact-form_privacy a{text-underline-offset:.2em;text-decoration:underline}.contact-form_note{color:var(--_error)}.contact-form_actions{align-items:center;gap:var(--space-4) var(--space-5);flex-wrap:wrap;display:flex}.contact-form_submit{border:.0625rem solid color-mix(in srgb, var(--accent) 45%, transparent);border-radius:var(--radius-round);color:var(--text-1);font:inherit;font-size:var(--type-button);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;background:0 0;align-items:center;gap:.9rem;padding:.95rem 1.6rem;transition:border-color .4s,background-color .4s,scale .4s cubic-bezier(.16,1,.3,1);display:inline-flex}.contact-form_submit span{letter-spacing:0;transition:transform .5s cubic-bezier(.16,1,.3,1)}@media (hover:hover){.contact-form_submit:hover{border-color:var(--_cyan);background:color-mix(in srgb, var(--accent) 8%, transparent)}.contact-form_submit:hover span{transform:translate(.2rem)}}.contact-form_submit:active{border-color:var(--_cyan);background:color-mix(in srgb, var(--accent) 8%, transparent);scale:.97}.contact-form_submit:active span{transform:translate(.2rem)}.contact-form_submit:focus-visible{outline:var(--focus-width) solid var(--text-1);outline-offset:.1875rem}.contact-form_submit:disabled{opacity:.6;cursor:progress}.contact-form_status{min-height:1.5em;font-size:var(--text-small);flex:14rem;margin:0;line-height:1.5}.contact-form_status[data-tone=success]{color:var(--accent)}.contact-form_status[data-tone=error]{color:var(--_error)}.contact-form_status[data-tone=info]{color:color-mix(in srgb, var(--text-1) 70%, transparent)}@media (width<=47.9375rem){.contact-form_row{grid-template-columns:minmax(0,1fr)}}.contact-transition_wrap{z-index:3;pointer-events:none;visibility:hidden;position:fixed;inset:0;overflow:clip}.contact-transition_wrap[data-active=true]{visibility:visible}.contact-transition_glow{background:radial-gradient(closest-side, color-mix(in srgb, var(--accent) 15%, transparent), color-mix(in srgb, var(--accent) 4%, transparent) 45%, transparent);opacity:0;will-change:transform, opacity;width:70vmax;height:70vmax;margin:-35vmax 0 0 -35vmax;position:absolute;top:0;left:0}.contact-transition_frame{opacity:0;border:.0625rem solid color-mix(in srgb, var(--accent) 30%, transparent);border-radius:var(--radius-frame);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, transparent), color-mix(in srgb, var(--accent) 1%, transparent) 45%, color-mix(in srgb, var(--accent) 6%, transparent));width:1px;height:1px;box-shadow:inset 0 0 2.5rem color-mix(in srgb, var(--accent) 5%, transparent), 0 0 2rem color-mix(in srgb, var(--accent) 5%, transparent);will-change:transform, opacity;position:absolute;top:0;left:0}#about[data-outro] .about_layer--photo .about_piece{opacity:calc(var(--_in,1) * (1 - var(--about-outro-photos,0)));transform:translate3d(0, 0, calc(var(--about-outro-photos,0) * -9rem)) scale(calc(1 - var(--about-outro-photos,0) * .08));transition:none}#about[data-outro] .about_layer:is([data-tone=beam],[data-tone=faint]) .about_piece{opacity:calc(var(--_in,1) * (1 - var(--about-outro-faint,0)));transition:none}#about[data-outro] .about_layer:is([data-tone=bright],[data-tone=soft]) .about_piece{opacity:calc(var(--_in,1) * (1 - var(--about-outro-frames,0)));transition:none}#contact[data-reveal] .contact_reveal{--_r:clamp(0, calc((var(--contact-reveal,1) - var(--o,0)) * 3.5), 1);opacity:var(--_r);transform:translateY(calc((1 - var(--_r)) * 1rem))}#contact[data-reveal] .contact_frame{opacity:var(--contact-frames,1)}#contact[data-reveal]:focus-within .contact_reveal,#contact[data-reveal]:focus-within .contact_frame{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.contact-transition_wrap{display:none}#about[data-outro] .about_piece,#contact[data-reveal] .contact_reveal,#contact[data-reveal] .contact_frame{opacity:1;transform:none}}.contact_wrap{--_text:var(--text-1);--_muted:var(--text-muted);--_line:var(--line-faint);--_cyan:var(--accent);isolation:isolate;min-height:100svh;padding:calc(var(--nav-height) * 2) var(--space-5) calc(var(--space-5) * 2);color:var(--_text);background:var(--background-1);font-family:var(--font-secondary);align-items:center;font-weight:400;display:grid;position:relative;overflow:clip}.contact_inner{align-items:center;gap:var(--space-5) calc(var(--space-5) * 2.5);width:100%;max-width:var(--container);grid-template-columns:minmax(0,5fr) minmax(0,7fr);margin-inline:auto;display:grid;position:relative}.contact_frames{pointer-events:none;position:absolute;inset:0}.contact_frame{left:var(--x);top:var(--y);width:var(--w);height:var(--h);border:.0625rem solid color-mix(in srgb, var(--accent) 14%, transparent);border-radius:var(--radius-frame);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 7%, transparent), color-mix(in srgb, var(--accent) 1%, transparent) 45%, color-mix(in srgb, var(--accent) 4%, transparent));position:absolute}.contact_frame[data-tone=bright]{border-color:color-mix(in srgb, var(--accent-light) 25%, transparent);box-shadow:inset 0 0 3rem color-mix(in srgb, var(--accent) 5%, transparent), 0 0 3rem color-mix(in srgb, var(--accent) 7%, transparent)}.contact_frame[data-tone=faint]{border-color:color-mix(in srgb, var(--accent) 9%, transparent);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 4%, transparent), transparent 60%)}.contact_intro,.contact_panel{min-width:0;position:relative}.contact_intro{isolation:isolate;padding:calc(var(--space-5) * 1.5) clamp(1.75rem, 3.2vw, 3.5rem);align-content:center;display:grid}.contact_frame[data-frame=intro]{z-index:-1;width:auto;height:auto;inset:0}@media (width>=64rem){.contact_inner{align-items:stretch}.contact_wrap[data-mode=home] .contact_panel{margin-inline-end:4%}}.contact_wrap[data-mode=page] .contact_frame:is([data-frame=panel],[data-frame^=low]){display:none}.contact_title{margin:0 0 calc(var(--space-5) * 1.1);font-family:var(--font-primary);font-size:var(--type-headline-large);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);text-wrap:balance;line-height:1}.contact_title-mark{color:var(--_cyan)}.contact_text{max-width:34ch;margin:0 0 calc(var(--space-5) * 1.3);color:var(--_muted);font-size:calc(var(--fluid-unit) * 1.05);line-height:1.7}.contact_email{justify-self:start;align-items:center;gap:var(--space-4);padding-block:var(--space-3);border-bottom:.0625rem solid color-mix(in srgb, var(--accent) 35%, transparent);font-size:var(--type-link);overflow-wrap:anywhere;transition:border-color .5s;display:inline-flex}.contact_email span{transition:transform .5s cubic-bezier(.16,1,.3,1),color .5s}@media (hover:hover){.contact_email:hover{border-color:var(--_cyan)}.contact_email:hover span{color:var(--_cyan);transform:translate(.2rem,-.2rem)}}.contact_email:active{border-color:var(--_cyan)}.contact_email:active span{color:var(--_cyan);transform:translate(.2rem,-.2rem)}@media (width<=63.9375rem){.contact_inner{justify-items:center;gap:calc(var(--space-5) * 1.5);grid-template-columns:minmax(0,1fr)}.contact_intro,.contact_panel{width:min(100%,40rem)}.contact_frame[data-wide]{display:none}.contact_intro{padding:0}.contact_frame:is([data-frame=panel],[data-frame=low-right]){display:none}}@media (width<=47.9375rem){.contact_wrap{min-height:0;padding-inline:var(--space-4);padding-top:calc(var(--nav-height) * 2.6)}.contact_title{font-size:var(--type-display-phone)}}}
