/* contact.css. Page-specific styles for the contact page.
   The form sits directly on the page rather than inside a bordered
   card; the inputs are the structural elements. Labels use mono
   small-caps to match app chrome; submit button reuses shared
   button chrome from styles.css. */

.prose-page .contact-form{padding:0.25rem 0 0;}
.prose-page .form-group{margin-bottom:1.5rem;}
.prose-page .form-group:last-of-type{margin-bottom:0;}
.prose-page .form-label{display:block;font-family:var(--font-mono);font-size:var(--fs-label-xs);font-weight:var(--fw-label);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:var(--ls-label-wide);line-height:var(--lh-label);margin-bottom:0.45rem;}
.prose-page .form-error{display:block;font-family:var(--font-mono);font-size:var(--fs-label-xs);color:var(--color-error);margin-top:0.3rem;text-transform:uppercase;letter-spacing:var(--ls-label);line-height:var(--lh-label);}
.prose-page .form-label-optional{opacity:var(--opacity-muted);font-size:var(--fs-label-xs);font-weight:400;}
.prose-page .form-footer{display:flex;align-items:flex-start;justify-content:flex-end;gap:1rem;margin-top:1.75rem;padding-top:1.25rem;border-top:var(--chrome-rule);flex-wrap:wrap;}
.prose-page .form-note{font-size:var(--fs-label-md);color:var(--color-text-tertiary);line-height:1.6;flex:1;min-width:0;}
.prose-page .hidden{display:none !important;}
.prose-page .success-message{display:none;text-align:left;padding:1.25rem 1.35rem;background:var(--empty-surface);border:1px solid var(--empty-edge);border-left:2px solid var(--signal-good);border-radius:var(--radius-sm);box-shadow:var(--chrome-inset);}
.prose-page .success-message.visible{display:block;}
.prose-page .success-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;margin:0 0 0.75rem;color:var(--color-positive);}
.prose-page .success-title{font-family:var(--font-display);font-size:var(--fs-h-sm);font-weight:var(--fw-label-strong);letter-spacing:0;color:var(--color-text);line-height:var(--lh-heading);margin-bottom:0.5rem;}
.prose-page .success-text{font-size:var(--fs-ui-sm);color:var(--color-text-tertiary);line-height:1.55;margin-bottom:1.2rem;max-width:64ch;}
.prose-page .success-back{display:inline-flex;align-items:center;gap:0.35rem;font-family:var(--font-mono);font-size:var(--fs-label-sm);font-weight:var(--fw-label);letter-spacing:var(--ls-label-wide);line-height:var(--lh-label);text-transform:uppercase;color:var(--color-accent);text-decoration:none;transition:color var(--duration-fast);}
.prose-page .success-back:hover{color:var(--color-accent-hover);}

@media(max-width:560px){
  .prose-page .form-footer{flex-direction:column-reverse;align-items:stretch;}
  .prose-page .form-submit{width:100%;justify-content:center;}
}
