/* Contact pages use only local assets and the existing ASCIIForge palette. */
.skip-link { position:fixed; left:1rem; top:-100px; z-index:110; padding:.8rem 1rem; background:var(--accent); color:#041016; }
.skip-link:focus { top:1rem; }
.contact-heading { max-width:54rem; margin-bottom:1.75rem; }
.contact-heading h1 { font-size:clamp(2rem,4.4vw,3.25rem); line-height:1.1; letter-spacing:-.025em; text-wrap:balance; margin-bottom:1rem; }
.contact-heading .lead { max-width:65ch; }
.contact-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(14rem,1fr); gap:2.5rem; align-items:start; }
.contact-layout h2 { font-size:1.35rem; line-height:1.3; }
.contact-form { min-width:0; padding:1.5rem; background:var(--panel); border:1px solid var(--border); border-radius:var(--radius); }
.contact-form fieldset { display:grid; gap:1.25rem; padding:0; margin:0; border:0; min-width:0; }
.contact-field { display:grid; gap:.5rem; min-width:0; }
.contact-field label { font-weight:600; }
.contact-optional { color:var(--muted); font-size:.85rem; font-weight:400; margin-left:.35rem; }
.contact-field input,.contact-field textarea,.contact-field select { box-sizing:border-box; width:100%; min-width:0; padding:.75rem; border:1px solid var(--border); border-radius:.5rem; background:var(--bg); color:var(--text); font:inherit; line-height:1.5; }
.contact-field textarea { min-height:12rem; resize:vertical; }
.contact-form fieldset:disabled { opacity:.65; }
.contact-field small,.contact-privacy,.contact-aside p { color:var(--muted); font-size:.9rem; line-height:1.6; }
.contact-form .contact-send { margin-top:1.25rem; min-height:48px; }
.contact-form .contact-send:disabled { cursor:default; opacity:.6; transform:none; }
.contact-status { min-height:1.6rem; margin:1rem 0 0; overflow-wrap:anywhere; }
.contact-status[data-state="error"] { color:#fca5a5; }
.contact-status[data-state="success"] { color:var(--accent); }
.contact-notice { border-left:3px solid var(--accent); background:var(--panel); padding:1rem 1.25rem; margin:1.5rem 0; max-width:70ch; }
.contact-notice p { margin:0; }
.contact-aside { border-top:1px solid var(--border); padding-top:1.25rem; }
.contact-field input:focus-visible,.contact-field select:focus-visible,.contact-field textarea:focus-visible,.contact-form button:focus-visible,.contact-layout a:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.contact-trap[hidden],.contact-notice[hidden] { display:none; }
@media(max-width:800px) { .contact-layout { grid-template-columns:minmax(0,1fr); gap:2rem; } .contact-form { padding:1.25rem; } }
