html { scrollbar-gutter:stable; }
html.contact-open,html.contact-open body { overflow:hidden !important; overscroll-behavior:none; }
#contactDialog { position:fixed; inset:0; width:100%; max-width:none; height:100%; max-height:none; margin:0; padding:28px; border:0; color:#f1eee7; background:rgba(5,10,12,0); backdrop-filter:blur(0); -webkit-backdrop-filter:blur(0); transition:background .55s ease,backdrop-filter .55s ease; }
#contactDialog[open] { display:grid; place-items:center; }
#contactDialog::backdrop { background:transparent; }
#contactDialog.is-visible { background:rgba(5,10,12,.46); backdrop-filter:blur(15px); -webkit-backdrop-filter:blur(15px); }
#contactDialog::after { content:""; position:absolute; inset:0; background:url('../assets/textures/paper-grain.svg'); opacity:.06; pointer-events:none; }
.contact-content { position:relative; width:min(800px,100%); padding:64px 20px; opacity:0; transform:translateY(15px) scale(.96); transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1); }
.is-visible .contact-content { opacity:1; transform:translateY(0) scale(1); }
.contact-content h2 { margin:0 0 55px; font:500 clamp(20px,3vw,32px)/1.3 var(--sans); letter-spacing:.15em; }
.contact-content .contact-label { font:500 10px/1.8 var(--sans); letter-spacing:.18em; color:#bcc8cb; margin:40px 0 12px; }
.contact-content a { font:400 clamp(18px,3.1vw,38px)/1.5 var(--sans); color:#f1eee7; overflow-wrap:anywhere; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:8px; text-decoration-color:#8fa0a680; }
.contact-close { position:absolute; top:0; right:0; width:48px; height:48px; border:0; background:transparent; color:#f1eee7; font:300 38px/1 Arial,sans-serif; cursor:pointer; }
#contactDialog :focus-visible { outline:1px solid #cad5d8; outline-offset:6px; }
@media(max-width:640px) { #contactDialog {padding:22px;} .contact-content {padding:64px 0 35px;} .contact-content h2 {margin-bottom:36px;} }
@media(prefers-reduced-motion:reduce) { #contactDialog,.contact-content {transition:none;} }
