.contact-page{grid-template-columns:1fr min(680px,90vw) 1fr;gap:clamp(2.5rem,6vw,4rem) 0;min-height:100vh;padding-top:clamp(6rem,14vw,10rem);padding-bottom:clamp(4rem,8vw,8rem);display:grid}.contact-header,.contact-body{grid-column:2}.contact-header{flex-direction:column;gap:1rem;display:flex}.contact-header h1{font-family:var(--font-display);font-size:var(--fs-h2);letter-spacing:var(--ls-tight);line-height:var(--lh-heading);color:var(--text-bright);margin:.3rem 0 0}.contact-desc{color:var(--text-muted);font-size:var(--fs-body);line-height:var(--lh-body-jp);margin-top:.25rem}.contact-body{flex-direction:column;gap:clamp(2rem,5vw,3rem);display:flex}.contact-form{flex-direction:column;gap:1.5rem;display:flex}.form-group{flex-direction:column;gap:.45rem;display:flex}.form-label{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--silver);transition:color var(--duration-fast) var(--ease-out)}.form-group:focus-within .form-label{color:var(--text-bright)}.form-req{color:var(--accent-bright)}.form-input{background:var(--bg-surface);border:1px solid var(--silver-dim);width:100%;color:var(--text-bright);font-family:var(--font-body);font-size:var(--fs-body);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);-webkit-appearance:none;border-radius:2px;outline:none;padding:.75rem 1rem}.form-input::placeholder{color:var(--silver-dim)}.form-input:focus{border-color:var(--accent-bright);box-shadow:0 0 0 2px #a018282e}.form-group.--error .form-input{border-color:#c0392b}.form-textarea{resize:vertical;min-height:140px;line-height:var(--lh-body-jp)}@media (width<=640px){.form-textarea{resize:none}.form-submit{justify-content:center;width:100%}.contact-page{padding-left:var(--container-padding);padding-right:var(--container-padding);grid-template-columns:1fr}.contact-header,.contact-body{grid-column:1}}.form-error{font-family:var(--font-mono);font-size:var(--fs-label);color:#e05a4f;opacity:0;max-height:0;transition:opacity .2s,max-height .2s;overflow:hidden}.form-error.--visible{opacity:1;max-height:2em}.form-submit{background:var(--accent);color:var(--text-bright);font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-wide);text-transform:uppercase;cursor:pointer;transition:background var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out), opacity var(--duration-fast);border:none;border-radius:2px;align-self:flex-start;align-items:center;gap:.75rem;padding:.75rem 2rem;display:inline-flex}.form-submit:hover:not(:disabled){background:var(--accent-bright);transform:translateY(-2px)}.form-submit:disabled{opacity:.6;cursor:not-allowed}.form-submit.--loading .submit-arrow{display:none}.form-submit.--error-state{background:#8b1a12}.contact-success{text-align:center;background:var(--bg-surface);border:1px solid var(--silver-dim);border-radius:2px;flex-direction:column;align-items:center;gap:1rem;padding:3rem 2rem;display:none}.success-icon{color:var(--accent-bright);font-size:2.5rem;font-family:var(--font-mono)}.success-title{font-family:var(--font-display);font-size:var(--fs-h3);color:var(--text-bright);letter-spacing:var(--ls-tight)}.success-body{color:var(--text-muted);line-height:var(--lh-body-jp);font-size:var(--fs-body)}.success-back{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-wide);color:var(--silver);text-transform:uppercase;transition:color var(--duration-fast) var(--ease-out);margin-top:.5rem}.success-back:hover{color:var(--accent-bright)}.contact-also{border-top:1px solid var(--silver-dim);flex-direction:column;gap:1rem;padding-top:clamp(1.5rem,3vw,2rem);display:flex}.also-links{flex-direction:column;gap:0;display:flex}.also-link{color:var(--text-primary);font-size:var(--fs-body);transition:color var(--duration-fast) var(--ease-out), padding-left var(--duration-fast) var(--ease-out);border-bottom:1px solid #5a60704d;justify-content:space-between;align-items:center;padding:.85rem 0;display:flex}.also-link span{color:var(--silver-dim);font-family:var(--font-mono);transition:color var(--duration-fast) var(--ease-out)}.also-link:hover{color:var(--text-bright);padding-left:.4rem}.also-link:hover span{color:var(--accent-bright)}
