/* Contact form only. Original scene styles and animation code are unchanged. */
.contact-layout > div { min-width: 0; }
.contact-panel .contact-form { display: grid; gap: 17px; margin-top: 25px; }
.contact-form label { display: grid; gap: 8px; color: #e9defb; font-size: 13px; font-weight: 700; }
.contact-form label span { color: #b9aec4; font-size: 11px; font-weight: 400; }
.contact-form input, .contact-form textarea, .contact-form select {
  box-sizing: border-box; width: 100%; min-width: 0; border: 1px solid #81649a;
  border-radius: 0; background: #100c18; color: #f7f3ff; padding: 12px;
  font: inherit; font-size: 16px; line-height: 1.45;
}
.contact-form textarea { resize: vertical; min-height: 135px; }
.contact-form :is(input, textarea, select, button):focus-visible,
.contact-panel a:focus-visible { outline: 2px solid #dac1ff; outline-offset: 3px; }
.contact-form .button { justify-content: center; white-space: normal; cursor: pointer; margin: 0; }
.contact-form .button:disabled { opacity: .6; cursor: wait; transform: none; }
.contact-form .form-status { margin: 0; min-height: 2.8em; overflow-wrap: anywhere; }
.contact-form .form-status[data-state="error"] { color: #ffd0da; }
.contact-form .form-status[data-state="success"] { color: #d9f5de; }
.contact-form .form-privacy { margin: 0; font-size: 12px; }
.contact-form .security-widget { min-height: 140px; }
.contact-form .security-retry { justify-self: start; width: auto; background: transparent; color: #dac1ff; border: 1px solid #81649a; padding: 10px 14px; font: inherit; font-size: 13px; cursor: pointer; }
.contact-form .security-retry[hidden] { display: none; }
.contact-form .form-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.contact-panel > .contact-email-fallback { margin-bottom: 0; justify-content: center; }
@media (max-width: 580px) {
  .contact-panel .contact-form { gap: 15px; }
}
