.form{display:flex;flex-direction:column;gap:var(--sp-sm);max-width:600px}.form--center{margin-inline:auto}.form__group{display:flex;flex-direction:column;gap:var(--sp-3xs)}.form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-sm)}@media (max-width:540px){.form__row{grid-template-columns:1fr}}.form__label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-dim);letter-spacing:var(--ls-wide)}.form__input,.form__textarea,.form__select{width:100%;padding:.8em 1em;font-size:var(--fs-sm);color:var(--text);background:var(--bg-input);border:2px solid var(--border);transition:border-color var(--duration-sm),box-shadow var(--duration-sm)}.form__input::placeholder,.form__textarea::placeholder{color:var(--text-muted)}.form__input:hover,.form__textarea:hover,.form__select:hover{border-color:var(--border-strong)}.form__input:focus,.form__textarea:focus,.form__select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.form__textarea{min-height:140px;resize:vertical;line-height:var(--lh-relaxed)}.form__select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%235A6B6B' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 5.646a.5.5 0 0 1 .708 0L8 8.293l2.646-2.647a.5.5 0 0 1 .708.708l-3 3a.5.5 0 0 1-.708 0l-3-3a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1em center;padding-right:2.5em}.sec--dark .form__input,.sec--dark .form__textarea,.sec--dark .form__select{background:rgb(255 255 255 / .06);border-color:var(--border-dark);color:var(--text-on-dark)}.sec--dark .form__input:focus,.sec--dark .form__textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgb(59 90 192 / .12)}.form__input--error,.form__textarea--error{border-color:var(--red)}.form__error{font-size:var(--fs-2xs);color:var(--red);margin-top:var(--sp-3xs)}.form__success{padding:var(--sp-sm);font-size:var(--fs-sm);color:var(--primary);background:var(--accent-dim);border:1px solid rgb(59 90 192 / .2)}.form__message--error{padding:var(--sp-sm);font-size:var(--fs-sm);color:var(--red);background:rgb(217 59 59 / .06);border:1px solid rgb(217 59 59 / .15)}.form__submit{position:relative}.form__submit--loading{pointer-events:none;opacity:.7}.form__submit--loading::after{content:'';position:absolute;width:16px;height:16px;border:2px solid #fff0;border-top-color:currentColor;border-radius:50%;animation:spin 0.5s linear infinite;right:1em;top:50%;transform:translateY(-50%)}@keyframes spin{to{transform:translateY(-50%) rotate(360deg)}}