/* Contact doors (S7 port, October 4). Shared by /extraction/ and /lattice-sphere/. Plain mailto: links; the address stays as text with a copy button. */
.contact-doors .cd-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.contact-doors.cd-one .cd-list { grid-template-columns: minmax(0, 420px); }
.contact-doors .cd-door { border: var(--rule); background: var(--paper); padding: 16px 18px; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; min-width: 0; }
.contact-doors .cd-door h3 { margin: 0; font: 400 24px/1.1 var(--display); }
.contact-doors .cd-door p { margin: 0 0 6px; font-size: 14.5px; line-height: 1.5; color: var(--ink-2); }
.contact-doors .cd-btn { margin-top: auto; }
.contact-doors .cd-addr { display: flex; align-items: center; gap: 10px 14px; flex-wrap: wrap; margin: 20px 0 0; }
.contact-doors .cd-label { font: 11px var(--meta); letter-spacing: .07em; text-transform: uppercase; color: var(--ink-2); }
.contact-doors .cd-email { font: 400 clamp(20px, 2.4vw, 30px)/1.2 var(--display); user-select: all; -webkit-user-select: all; overflow-wrap: anywhere; }
.contact-doors .cd-copy[hidden] { display: none; }
.contact-doors .cd-fb { font: 11px var(--meta); letter-spacing: .04em; color: var(--ink-2); min-height: 1em; }
@media (max-width: 1100px) { .contact-doors .cd-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .contact-doors .cd-list, .contact-doors.cd-one .cd-list { grid-template-columns: minmax(0, 1fr); } }
.contact-doors .cd-door { position: relative; isolation: isolate; }
.contact-doors .cd-door::before { content: ""; position: absolute; inset: 0; z-index: -1; background: repeating-conic-gradient(#0000000c 0 25%, transparent 0 50%) 0 0/6px 6px; opacity: 0; transition: opacity .18s ease; }
.contact-doors .cd-door:hover::before, .contact-doors .cd-door:focus-within::before { opacity: 1; }
.contact-doors .cd-btn { min-height: 44px; display: inline-flex; align-items: center; }
.contact-doors .cd-copy { min-height: 44px; }
.contact-doors :is(a, button):focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .contact-doors .cd-door::before { transition: none; } }
body:is(.paused, .ink-still) .contact-doors .cd-door::before { transition: none; }
