/* Contact: a short form (name, email, message), then what you can share. Same paper, ink and rule as the rest of the site. */
.ct-box{border:1px solid var(--rule);border-radius:10px;background:var(--panel);padding:clamp(1.1rem,3.2vw,1.75rem);margin:clamp(1.25rem,3vw,1.75rem) 0 clamp(2rem,5vw,3rem);min-width:0}
.ct-box h2{margin:0 0 1.1rem;font-size:1.125rem;line-height:1.35;letter-spacing:-.01em}
.ct-form{display:grid;gap:1.15rem}
.ct-form[hidden],.ct-done[hidden],.ct-status[hidden],.ct-fielderr[hidden],.ct-spin[hidden]{display:none}
.ct-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:1.15rem}
.ct-field{display:grid;gap:.4rem;align-content:start;min-width:0}
.ct-field label{font-size:.9rem;font-weight:600;color:var(--ink)}
.ct-opt{font-weight:400;color:var(--muted)}
.ct-note{margin:0;font-size:.8125rem;line-height:1.45;color:var(--muted)}
.ct-form input,.ct-form textarea{width:100%;min-width:0;max-width:100%;box-sizing:border-box;font:inherit;font-size:1rem;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:8px;padding:.62rem .8rem;transition:border-color 140ms ease,box-shadow 140ms ease}
.ct-form input{min-height:44px}
.ct-form textarea{min-height:9.5rem;resize:vertical;line-height:1.55}
.ct-form input:hover,.ct-form textarea:hover{border-color:var(--muted)}
.ct-form input:focus-visible,.ct-form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.ct-form [aria-invalid="true"]{border-color:var(--accent)}
.ct-form[data-state="sending"] :is(input,textarea){opacity:.7}
.ct-fielderr{margin:0;color:var(--accent);font-size:.875rem;line-height:1.45}
.ct-count{justify-self:end;font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}
.ct-hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.ct-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.1rem}
.ct-send{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:44px;min-width:11rem;padding:0 1.4rem;font:inherit;font-size:1rem;font-weight:600;color:var(--paper);background:var(--ink);border:1px solid var(--ink);border-radius:8px;cursor:pointer;transition:opacity 140ms ease}
.ct-send:hover{opacity:.88}
.ct-send:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.ct-send[aria-busy="true"]{cursor:progress;opacity:.9}
.ct-send:disabled{cursor:progress}
.ct-status{flex:1 1 14rem;margin:0;color:var(--accent);font-size:.9375rem;line-height:1.5}
.ct-spin{width:16px;height:16px;flex:none;box-sizing:border-box;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:ct-spin .8s linear infinite}
@keyframes ct-spin{to{transform:rotate(360deg)}}
@keyframes ct-rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.ct-done{display:grid;justify-items:start;gap:.8rem;padding:.4rem 0;animation:ct-rise .4s ease both;outline:none}
.ct-done h2,.ct-done p{margin:0}
.ct-done p{color:var(--muted);line-height:1.6;max-width:40ch}
.ct-done-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--signal,var(--accent));border:1px solid currentColor}
.ct-again{font:inherit;font-size:.9375rem;color:var(--ink);background:none;border:1px solid var(--rule);border-radius:8px;min-height:44px;padding:0 1.1rem;cursor:pointer}
.ct-again:hover{border-color:var(--muted)}
.ct-again:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ct-closed p{margin:.2rem 0 1rem;color:var(--muted);line-height:1.6;max-width:46ch}
.ct-closed a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}
/* what you can share */
.ct-who{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));border-top:1px solid var(--rule);margin:.9rem 0 0}
.ct-card{padding:1rem 1.25rem 1.1rem 0;border-bottom:1px solid var(--rule)}
.ct-card h3{margin:0 0 .25rem;font-size:1.0625rem;line-height:1.35}
.ct-card p{margin:0;color:var(--muted);line-height:1.55}
@media(prefers-reduced-motion:reduce){.ct-spin{animation:none;border-right-color:currentColor;opacity:.6}.ct-done{animation:none}.ct-form input,.ct-form textarea,.ct-send{transition:none}}
