.contact-page{overflow:clip}.contact-brief{padding-block-start:calc(var(--space-section-block) * 1.5)}.contact-brief__grid{display:block}.contact-brief__intro{align-content:start;gap:var(--space-md);max-width:60rem;display:grid}.contact-brief__intro h1{max-width:15ch;margin:0}.contact-brief__intro p{max-width:48ch;color:var(--color-text-muted);font-size:var(--type-lead-size)}.contact-page__form{width:100%;max-width:none;gap:var(--space-md);margin-block-start:var(--space-xl);display:grid}.contact-form__fields{gap:var(--space-md);display:grid}.contact-form__fields--two{grid-template-columns:minmax(0,1fr)}.contact-form__project-grid{gap:var(--space-md);align-items:start;display:grid}.contact-page__form label{color:var(--color-text-muted)}.contact-page__form label small{color:var(--color-text-subtle);font-size:var(--type-footnote-size);font-weight:var(--font-weight-regular)}.contact-page__form input:not([type=checkbox]),.contact-page__form select,.contact-page__form textarea{border-radius:var(--radius-card);min-width:0;min-height:0;padding-block:var(--space-xs);padding-inline:var(--space-xs);font-size:1rem;font-size:max(1rem, var(--type-body-size))}.contact-page__form input:focus-visible,.contact-page__form select:focus-visible,.contact-page__form textarea:focus-visible{border-color:var(--color-text);box-shadow:var(--header-shadow)}.contact-upload{gap:var(--space-xs);display:grid}.contact-upload__field{gap:var(--space-2xs);display:grid}.contact-upload__label{color:var(--color-text-muted);font-size:var(--type-label-size);font-weight:var(--font-weight-semibold)}.contact-upload__dropzone{padding:var(--space-sm);border:var(--border-width-hairline) dashed var(--color-border-strong);border-radius:var(--radius-card);background:var(--color-surface-soft);text-align:start;cursor:pointer;transition:border-color var(--transition-interactive), background-color var(--transition-interactive), box-shadow var(--transition-interactive), transform var(--transition-interactive);justify-content:center;align-items:center;position:relative;gap:var(--space-sm)!important;color:var(--color-text)!important;display:flex!important}.contact-upload__dropzone:hover,.contact-upload__dropzone.is-dragover{border-color:var(--color-text);background:var(--color-surface-card);transform:scale(var(--scale-interactive-hover))}.contact-upload__content{gap:var(--space-3xs);min-width:0;display:grid}.contact-upload__dropzone:focus-within{border-color:var(--color-text);box-shadow:var(--header-shadow)}.contact-upload__symbol{width:var(--size-reveal-control);height:var(--size-reveal-control);border:var(--border-width-hairline) solid var(--color-circular-control-border);border-radius:var(--radius-feature-control);background:var(--color-circular-control-background);color:var(--color-circular-control-text);backdrop-filter:blur(var(--blur-media-control-glass)) saturate(var(--saturate-media-control-glass));transition:background-color var(--transition-interactive), border-color var(--transition-interactive), color var(--transition-interactive), transform var(--transition-interactive);flex:none;place-items:center;display:grid;position:relative}.contact-upload__symbol svg{width:var(--size-reveal-control-icon);height:var(--size-reveal-control-icon)}.contact-upload__symbol svg path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:var(--border-width-strong)}.contact-upload__dropzone:hover .contact-upload__symbol,.contact-upload__dropzone.is-dragover .contact-upload__symbol,.contact-upload__dropzone:focus-within .contact-upload__symbol{border-color:var(--color-circular-control-hover-border);background:var(--color-circular-control-hover-background);color:var(--color-circular-control-hover-text)}.contact-upload__action{font-family:var(--font-heading);font-size:var(--type-h3-size);font-weight:var(--type-heading-weight)}.contact-upload__hint,.contact-upload__types,.contact-upload__meta{color:var(--color-text-muted);font-size:var(--type-body-sm-size)}.contact-upload__types{font-size:var(--type-footnote-size)}.contact-upload__meta{margin-block-start:var(--space-2xs)}.contact-upload__input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;opacity:0;overflow:hidden;border:0!important;width:1px!important;height:1px!important;padding:0!important;position:absolute!important}.contact-upload__summary{color:var(--color-text-muted);font-size:var(--type-body-sm-size)}.contact-upload__errors{border-inline-start:var(--border-width-strong) solid var(--color-text);color:var(--color-text);font-size:var(--type-body-sm-size);padding-inline-start:var(--space-xs)}.contact-upload__list{margin:0;padding:0;list-style:none;display:grid}.contact-upload__item{grid-template-columns:var(--size-control-lg) minmax(0, 1fr) auto;gap:var(--space-xs);padding-block:var(--space-xs);border-block-start:var(--border-width-hairline) solid var(--color-border);align-items:center;display:grid}.contact-upload__preview{width:var(--size-control-lg);height:var(--size-control-lg);border-radius:var(--radius-swatch);background:var(--color-surface-card);color:var(--color-surface-card-text);font-size:var(--type-footnote-size);font-weight:var(--font-weight-semibold);text-transform:uppercase;place-items:center;display:grid;overflow:hidden}.contact-upload__preview img{object-fit:cover;width:100%;height:100%}.contact-upload__file{gap:var(--space-4xs);min-width:0;display:grid}.contact-upload__file-name{color:var(--color-text);font-size:var(--type-body-sm-size);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.contact-upload__file-meta{color:var(--color-text-muted);font-size:var(--type-footnote-size)}.contact-upload__remove{min-height:var(--size-control-sm);padding:var(--space-3xs) 0 var(--space-3xs) var(--space-xs);color:var(--color-text-muted);font-size:var(--type-body-sm-size);transition:color var(--transition-interactive), transform var(--transition-interactive);transform-origin:100%;background:0 0;justify-content:center;align-items:center;display:inline-flex}.contact-upload__remove:hover,.contact-upload__remove:focus-visible{color:var(--color-text);transform:scale(var(--scale-interactive-hover))}.contact-form__footer{gap:var(--space-sm);display:grid}.contact-form__submit{justify-self:start}.contact-form__confirmation{gap:var(--space-sm);padding:var(--space-lg) var(--space-md);border:var(--border-width-hairline) solid var(--color-border-strong);border-radius:var(--radius-card);background:var(--color-surface-soft);margin-block-start:var(--space-xl);display:grid}.contact-form__confirmation h2,.contact-form__confirmation p{margin:0}.contact-form__confirmation h2{max-width:24ch;color:var(--color-text);font-size:var(--type-h2-size)}.contact-form__confirmation p{max-width:54ch;color:var(--color-text-muted)}.contact-form__confirmation:focus{outline:var(--focus-ring-width) solid var(--color-focus);outline-offset:var(--focus-ring-offset)}.contact-form__status{gap:var(--space-2xs);padding:var(--space-xs) var(--space-sm);border:var(--border-width-hairline) solid var(--color-border);border-radius:var(--radius-field);color:var(--color-text-muted);font-size:var(--type-body-sm-size);display:grid}.contact-form__status h3{color:inherit;font-size:var(--type-h3-size)}.contact-form__status.is-error{padding:var(--space-sm);color:#991b1b;background:#fef2f2;border-color:#ef4444}.contact-form__status.is-success{border-color:var(--color-text);color:var(--color-text)}.contact-form__email-fallback{gap:var(--space-xs);display:grid}.contact-form__email-fallback p{color:var(--color-text-muted);font-size:var(--type-body-sm-size)}.contact-form__email-fallback-actions{gap:var(--space-xs);flex-wrap:wrap;display:flex}@media (width>=48rem){.contact-page__form select{appearance:none;background-image:none}.contact-form__project-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.contact-form__fields--two{column-gap:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr))}.contact-form__footer{grid-template-columns:minmax(0,1fr) auto;align-items:start}.contact-form__submit{grid-area:1/2}.contact-form__status,.contact-form__email-fallback{grid-column:1/-1}}@media (width<=47.99rem){.contact-page__form,.contact-form__fields,.contact-form__project-grid{row-gap:var(--space-sm)}.contact-page__form input:not([type=checkbox]),.contact-page__form select,.contact-page__form textarea{line-height:var(--leading-tight)}}@media (prefers-reduced-motion:reduce){.contact-upload__dropzone,.contact-upload__remove{transition:none}}
