*{box-sizing:border-box}
:root{
  --blue:#2d4f91;
  --green:#3b913a;
  --yellow:#efc72b;
  --text:#172033;
  --muted:#687386;
  --border:#dfe5ec;
  --bg:#f4f7f5;
}
html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text)}
body{
  min-height:100vh;
  min-height:100dvh;
  display:grid;
  place-items:center;
  padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));
  background:
    radial-gradient(circle at 10% 0%,rgba(59,145,58,.10),transparent 28%),
    radial-gradient(circle at 90% 100%,rgba(45,79,145,.10),transparent 30%),
    #f6f8f6;
}
.app-shell{width:min(100%,760px)}
.card{
  background:#fff;
  border:1px solid rgba(45,79,145,.09);
  border-radius:30px;
  padding:34px clamp(24px,6vw,54px) 42px;
  box-shadow:0 24px 70px rgba(24,47,72,.12);
}
.logo{display:block;width:min(340px,75%);height:auto;margin:0 auto 12px}
.logo.small{width:min(280px,65%);margin-bottom:8px}
.intro{text-align:center;margin-bottom:28px}
.eyebrow{font-size:12px!important;font-weight:800!important;letter-spacing:.16em;color:var(--green)!important;margin-bottom:8px!important}
h1,h2{margin:0;color:var(--blue);line-height:1.08}
h1{font-size:clamp(28px,5vw,42px)}
.intro p,.thanks-copy,.return-note{color:var(--muted);font-size:17px;line-height:1.5}
.intro p{margin:10px 0 0}
form{display:grid;gap:10px}
label{font-size:15px;font-weight:800;margin-top:7px}
input,select,button{
  width:100%;
  min-height:60px;
  border-radius:15px;
  font:inherit;
}
input,select{
  border:1.5px solid var(--border);
  background:#fff;
  padding:0 17px;
  font-size:18px;
  color:var(--text);
  outline:none;
  transition:.18s ease;
}
input:focus,select:focus{
  border-color:var(--green);
  box-shadow:0 0 0 4px rgba(59,145,58,.12);
}
button{
  border:0;
  margin-top:18px;
  background:linear-gradient(135deg,var(--green),#2f7d32);
  color:#fff;
  font-size:18px;
  font-weight:900;
  letter-spacing:.04em;
  box-shadow:0 12px 25px rgba(59,145,58,.22);
  cursor:pointer;
}
button:active{transform:translateY(1px)}
.error{min-height:22px;margin:4px 0 -8px;color:#ba2d2d;font-weight:700}
.hidden{display:none}
.thanks{text-align:center}
.confetti{color:var(--yellow);font-size:28px;letter-spacing:.25em;margin:4px 0 10px}
.region{
  display:inline-block;
  margin:0 0 12px;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(59,145,58,.10);
  color:var(--green);
  font-size:14px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
h2{font-size:clamp(38px,8vw,66px);color:var(--green)}
.thanks-copy{margin:14px auto 22px}
.flag-grid{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:20px;
  padding:22px 0;
  margin:12px 0;
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
.flag{font-size:58px;line-height:1}
.flag-message strong{display:block;margin-top:8px;font-size:21px;color:var(--blue)}
.divider{height:72px;width:1px;background:var(--border)}
.return-note{font-size:14px;margin:20px 0 0}
.secondary{
  background:#fff;
  color:var(--blue);
  border:2px solid var(--blue);
  box-shadow:none;
}
@media(max-width:560px){
  body{padding:0;background:#fff}
  .app-shell{width:100%}
  .card{min-height:100dvh;border:0;border-radius:0;box-shadow:none;padding-top:24px}
  .flag-grid{gap:12px}
  .flag{font-size:46px}
}
