body[data-focus-contact-open]{position:fixed;width:100%}
.focus-contact-overlay{position:fixed;inset:0;z-index:999;display:grid;place-items:center;padding:clamp(24px,5vw,72px);background:color-mix(in srgb,var(--bc-bg) 55%,transparent);-webkit-backdrop-filter:blur(10px) saturate(115%);backdrop-filter:blur(10px) saturate(115%);color:var(--bc-text);opacity:0;transition:opacity .42s ease}
.focus-contact-overlay.is-open{opacity:1}
.focus-contact-frame{position:relative;width:min(720px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--bc-border);border-radius:var(--bc-radius-md);background:var(--bc-surface);padding:clamp(20px,4dvh,44px) clamp(20px,5vw,48px);transform:translateY(18px) scale(.98);opacity:0;transition:transform .42s ease,opacity .42s ease;box-shadow:0 28px 80px -48px var(--bc-shadow);text-align:center}
.focus-contact-overlay.is-open .focus-contact-frame{transform:none;opacity:1}
.focus-contact-frame:focus,.focus-contact-frame:focus-visible{outline:none}
.focus-contact-close{position:absolute;top:14px;right:14px;width:36px;height:36px;border:1px solid var(--bc-border);background:var(--bc-bg-alt);color:var(--bc-text);font-size:1.25rem;line-height:1;border-radius:var(--bc-radius-sm);cursor:pointer;z-index:3}
.focus-contact-close:hover{border-color:var(--bc-text)}
@media(prefers-reduced-motion:reduce){
  .focus-contact-overlay,.focus-contact-frame{transition:none}
  .focus-contact-frame{transform:none}
}
