.contact-dialog{border:0;border-radius:24px;padding:0;width:min(720px,calc(100% - 28px));max-height:calc(100dvh - 32px);color:#000;background:#fff;box-shadow:0 24px 100px #0003;font-family:Arial,Helvetica,sans-serif;overscroll-behavior:contain}
.contact-dialog::backdrop{background:rgba(16,18,22,.48)}
.contact-dialog[open]{animation:contactOpen .5s cubic-bezier(.2,.7,.2,1)}
.contact-dialog[open]::backdrop{animation:contactBackdrop .4s ease}
.contact-form-content{padding:44px;position:relative;overflow:hidden}
.contact-close{position:absolute;right:18px;top:14px;border:0;background:#f3f3f3;width:40px;height:40px;border-radius:50%;font:28px Arial;cursor:pointer;z-index:1}
.contact-dialog h2{font-size:clamp(28px,5vw,40px);letter-spacing:-.04em;margin:8px 40px 14px 0;line-height:1.1}
.contact-dialog .contact-lead{font-size:16px;line-height:1.6;margin:0 0 26px;color:#444}
.contact-dialog label{display:block;font-size:14px;font-weight:600;margin:18px 0 8px}
.contact-dialog input,.contact-dialog textarea{display:block;width:100%;border:1px solid #ccc;border-radius:12px;padding:14px;font:16px/1.6 Arial;background:#fff;color:#000}
.contact-dialog textarea{min-height:350px;resize:vertical}
.contact-dialog input:focus,.contact-dialog textarea:focus{outline:2px solid #ff0808;outline-offset:2px}
.contact-dialog .contact-submit{border:0;cursor:pointer;font-family:inherit;margin-top:20px;gap:10px}
.contact-dialog .contact-submit:disabled{opacity:.6;cursor:wait}
.contact-dialog .contact-status{font-size:15px;line-height:1.6;margin:16px 0 0}
.contact-dialog .contact-note{font-size:12px;line-height:1.6;color:#555;margin:18px 0 0}
.contact-sparks{position:absolute;right:65px;top:36px;pointer-events:none;width:80px;height:80px}
.contact-sparks i{position:absolute;left:50%;top:50%;width:3px;height:3px;border-radius:50%;background:#ff0808;opacity:0;animation:contactSpark 1.4s ease-out forwards;animation-delay:var(--delay)}
@keyframes contactOpen{from{opacity:0;transform:translateY(22px) scale(.98)}to{opacity:1;transform:none}}
@keyframes contactBackdrop{from{opacity:0}to{opacity:1}}
@keyframes contactSpark{15%{opacity:.8}to{transform:translate(var(--x),var(--y));opacity:0}}
@media(max-width:700px){.contact-form-content{padding:30px 22px}.contact-dialog textarea{min-height:390px}.contact-dialog .contact-submit{width:100%}.contact-dialog{border-radius:18px}}
@media(prefers-reduced-motion:reduce){.contact-dialog[open],.contact-dialog[open]::backdrop,.contact-sparks i{animation:none}}
.contact-dialog .contact-submit[hidden]{display:none!important}
.contact-status.is-sending{position:relative}
.contact-status.is-success{padding:22px;border:1px solid #e5e5e5;border-radius:16px;background:#fff}
.contact-confirmation{position:relative;display:block;font:600 22px/32px Arial,Helvetica,sans-serif;color:#111}
.contact-thanks{color:#ff0808}
.contact-confirmation.is-forming .contact-confirmation-copy{opacity:0}
.contact-confirmation-copy{display:block}
.contact-confirmation-particles{position:absolute;left:0;top:0;pointer-events:none}
.contact-confirmation-note{display:block;margin-top:12px;font-size:15px;color:#333}
@media(max-width:500px){.contact-confirmation{font-size:19px;line-height:29px}.contact-status.is-success{padding:18px}}


.contact-dialog .contact-submit{width:60px;height:60px;padding:14px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;color:#ff0808;border:1px solid #ff0808;box-shadow:0 5px 22px #ff080815}
.contact-submit svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.contact-submit.has-launched svg{opacity:0}
.contact-flight-overlay{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;pointer-events:none;overflow:hidden;z-index:2147483647}
.contact-flight-overlay::backdrop{background:transparent;pointer-events:none}
.contact-dialog.is-evaporating{pointer-events:none;will-change:opacity,transform}
.contact-dialog.is-evaporating .contact-form-content{visibility:hidden!important}
.contact-dialog.is-evaporating::backdrop{background:transparent;transition:background 1.2s ease}


.contact-dialog.has-confirmation .contact-lead,
.contact-dialog.has-confirmation form>label,
.contact-dialog.has-confirmation form>input,
.contact-dialog.has-confirmation form>textarea,
.contact-dialog.has-confirmation .contact-submit,
.contact-dialog.has-confirmation .contact-note{display:none!important}
.contact-dialog.has-confirmation .contact-form-content{padding-top:42px;padding-bottom:42px}
.contact-dialog.has-confirmation .contact-status{margin-top:24px}
.contact-dialog.has-confirmation{max-height:calc(100dvh - 32px)}

/* Mobile keyboard and landscape: the dialog scrolls instead of overflowing. */
.contact-dialog{overflow-y:auto;overscroll-behavior:contain}
.contact-dialog input,.contact-dialog textarea{box-sizing:border-box;min-width:0}
@media(max-width:700px),(max-height:500px){
 .contact-form-content{padding:26px 20px}
 .contact-dialog textarea{min-height:150px;height:clamp(150px,28dvh,260px)}
 .contact-dialog{max-height:calc(100dvh - 20px);border-radius:18px}
}
