:root{
  --clr-primary:#1A73E8;
  --clr-error:#D93025;
  --clr-success:#137333;
  --clr-border:#D1D5DB;
  --clr-bg-muted:#F8FAFC;
  --clr-btn-bg:#E9680F;
  --clr-btn-hover:#E08642;
  --radius:4px;
  --transition:150ms;
}
.project-form-wrapper{max-width:100%;margin-inline:auto;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;padding:1.5rem;box-sizing:border-box;}
label{display:block;font-weight:500;margin-block:.75rem .25rem;}
label span.req{color:var(--clr-error);}
.form-control{width:100%;padding:.75rem;font-size:1rem;border:1px solid var(--clr-border);border-radius:var(--radius);background:#fff;transition:border-color var(--transition),box-shadow var(--transition);box-sizing:border-box;margin-bottom:1rem;}
.form-control::placeholder{color:#9CA3AF;}
.form-control:focus{outline:none;border-color:var(--clr-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--clr-primary) 45%,transparent);}
textarea.form-control{padding-bottom:0;margin-bottom:0;}
.form-control.valid{border-color:var(--clr-success);box-shadow:0 0 0 2px color-mix(in srgb,var(--clr-primary) 45%,transparent);}
.form-control.error{border-color:var(--clr-error);box-shadow:0 0 0 2px color-mix(in srgb,var(--clr-error) 40%,transparent);}
.help-text,.error-msg{font-size:.875rem;margin-top:.25rem;line-height:1.4;}
.help-text{color:#64748b;}
.error-msg{color:var(--clr-error);}
.char-count{font-size:.875rem;color:#64748b;text-align:right;margin-top:0;}
.char-count.error{color:var(--clr-error);}
.radio-group{display:flex;gap:1.5rem;margin-block:.25rem 1rem;}
.radio-option{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500;}
.radio-option input[type="radio"]{width:1.25rem;height:1.25rem;accent-color:var(--clr-primary);cursor:pointer;}
.radio-option span{cursor:pointer;user-select:none;}
.btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.9rem 1.4rem;font-size:1.05rem;font-weight:600;letter-spacing:.5px;color:#fff;background:var(--clr-btn-bg);border:none;border-radius:var(--radius);cursor:pointer;transition:background var(--transition),opacity var(--transition);}
.btn-primary:hover:not([disabled]),.btn-primary:focus-visible:not([disabled]){background:var(--clr-btn-hover);}
.btn-primary[disabled]{opacity:.6;cursor:not-allowed;}
.spinner{width:1.25rem;height:1.25rem;border:3px solid #fff;border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite;display:none;}
.spinner.show{display:inline-block;}
@keyframes spin{to{transform:rotate(360deg);}}
.error-banner{display:none;background:var(--clr-error);color:#fff;padding:1rem;border-radius:var(--radius);margin-bottom:1rem;}
.error-banner.show{display:block;}
.success-overlay{position:fixed;inset:0;background:#0f172acc;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:#fff;z-index:9999;opacity:0;pointer-events:none;transition:opacity var(--transition);}
.success-overlay.show{opacity:1;pointer-events:auto;}
.success-overlay .title{font-size:1.5rem;font-weight:600;}
.success-overlay .subtitle{font-size:1rem;text-align:center;max-width:380px;}
.privacy-note{background:var(--clr-bg-muted);border:1px solid var(--clr-border);border-radius:var(--radius);padding:1rem;margin:1.5rem 0 1.5rem;display:block;width:100%;box-sizing:border-box;font-size:.9rem;line-height:1.4;}
.hp-wrapper{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
