:root{
  --camo1:#4a5320; --camo2:#6b7333; --camo3:#2f3318;
  --leopard:#d99a2b; --hot:#ff2d95; --neon:#39ff14; --teal:#00e0d0;
  --black:#141210; --cream:#f7efdf; --rust:#c0392b;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Special Elite",system-ui,sans-serif;
  background:var(--black);color:var(--cream);
  line-height:1.5;overflow-x:hidden;
}
a{color:inherit}
.btn{
  display:inline-block;font-family:"Anton",sans-serif;letter-spacing:.04em;
  text-transform:uppercase;text-decoration:none;cursor:pointer;border:none;
  padding:1rem 1.8rem;border-radius:4px;font-size:1.1rem;
  background:var(--hot);color:#fff;box-shadow:5px 5px 0 var(--black);
  transition:transform .08s ease, box-shadow .08s ease;
}
.btn:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--black)}
.btn:active{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--black)}

/* ---------- HERO ---------- */
.hero{
  position:relative;text-align:center;padding:0 1rem 4rem;
  background:
    repeating-linear-gradient(45deg, var(--camo3) 0 40px, transparent 40px 80px),
    repeating-linear-gradient(-45deg, var(--camo1) 0 60px, var(--camo2) 60px 120px);
  border-bottom:8px dashed var(--leopard);
}
.banner-tape{
  background:var(--neon);color:var(--black);font-family:"Anton",sans-serif;
  text-transform:uppercase;white-space:nowrap;overflow:hidden;
  padding:.45rem 0;font-size:.85rem;letter-spacing:.1em;
  border-bottom:3px solid var(--black);
}
.banner-tape{animation:none}
.hero-inner{max-width:820px;margin:0 auto;padding-top:3rem}
.kicker{
  font-family:"Rye",serif;color:var(--leopard);font-size:1.1rem;
  text-shadow:2px 2px 0 var(--black);margin-bottom:.5rem;
}
.title{
  font-family:"Anton",sans-serif;text-transform:uppercase;line-height:.85;
  font-size:clamp(4rem,18vw,11rem);color:var(--cream);
  text-shadow:6px 6px 0 var(--hot), 12px 12px 0 var(--black);
  -webkit-text-stroke:2px var(--black);
}
.title .bash{
  color:var(--neon);
  text-shadow:6px 6px 0 var(--rust), 12px 12px 0 var(--black);
}
.tagline{
  font-size:1.25rem;margin:1.5rem auto 2rem;max-width:34ch;
  background:var(--black);display:inline-block;padding:.5rem 1rem;
  border:3px solid var(--leopard);transform:rotate(-1.5deg);
}
.hero-facts{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:2.2rem}
.fact{
  background:var(--cream);color:var(--black);border:4px solid var(--black);
  padding:.8rem 1.2rem;min-width:120px;transform:rotate(-2deg);
  box-shadow:4px 4px 0 var(--hot);
}
.fact:nth-child(2){transform:rotate(1.5deg);box-shadow:4px 4px 0 var(--teal)}
.fact:nth-child(3){transform:rotate(-1deg);box-shadow:4px 4px 0 var(--neon)}
.fact-num{display:block;font-family:"Anton",sans-serif;font-size:2.4rem;line-height:1}
.fact-num small{font-size:1rem}
.fact-lbl{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;margin-top:.2rem}
.btn-hero{font-size:1.35rem;background:var(--hot)}
.flamingos{font-size:2.5rem;margin-top:2.5rem;letter-spacing:.5rem}

/* ---------- DETAILS ---------- */
.section-head{
  font-family:"Anton",sans-serif;text-transform:uppercase;text-align:center;
  font-size:clamp(2.2rem,7vw,3.8rem);margin:0 0 2rem;color:var(--cream);
  -webkit-text-stroke:1px var(--black);
}
.section-head span{color:var(--hot)}
.section-head.light{color:var(--black);-webkit-text-stroke:0}
.details{padding:4rem 1rem;max-width:1100px;margin:0 auto}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.5rem}
.card{
  background:var(--cream);color:var(--black);padding:1.8rem;border:4px solid var(--black);
  border-radius:6px;box-shadow:7px 7px 0 var(--camo2);
}
.card:nth-child(odd){transform:rotate(-1deg)}
.card:nth-child(even){transform:rotate(1deg)}
.card-icon{font-size:2.8rem;margin-bottom:.5rem}
.card h3{font-family:"Anton",sans-serif;text-transform:uppercase;font-size:1.5rem;margin-bottom:.5rem;color:var(--rust)}

/* ---------- RSVP ---------- */
.rsvp{
  padding:4rem 1rem 5rem;
  background:
    repeating-linear-gradient(45deg, var(--leopard) 0 22px, #b8801f 22px 44px);
}
.rsvp-card{
  max-width:620px;margin:0 auto;background:var(--cream);color:var(--black);
  border:6px solid var(--black);border-radius:8px;padding:2.5rem 2rem;
  box-shadow:12px 12px 0 var(--black);
}
.rsvp-sub{text-align:center;margin-bottom:2rem;font-size:1.05rem}
.field{display:block;margin-bottom:1.3rem}
.field > span:first-child,.legend{
  display:block;font-family:"Anton",sans-serif;text-transform:uppercase;
  letter-spacing:.03em;font-size:1rem;margin-bottom:.4rem;
}
input[type=text],input[type=number],textarea{
  width:100%;padding:.75rem;font-family:"Special Elite",monospace;font-size:1rem;
  border:3px solid var(--black);border-radius:4px;background:#fff;color:var(--black);
}
input:focus,textarea:focus{outline:3px solid var(--hot);outline-offset:1px}
.choices{border:none}
.choice{display:inline-flex;align-items:center;gap:.4rem;margin-right:1.5rem;font-size:1.05rem;cursor:pointer}
.choice input{width:auto;transform:scale(1.3)}
.btn-submit{width:100%;background:var(--rust);font-size:1.3rem;margin-top:.5rem}
.form-msg{text-align:center;margin-top:1rem;font-size:1.05rem;min-height:1.3em;font-weight:bold}
.form-msg.ok{color:#1a7a1a}
.form-msg.err{color:var(--rust)}
.is-hidden{display:none}

/* ---------- FOOT ---------- */
.foot{
  text-align:center;padding:2.5rem 1rem;background:var(--black);
  border-top:8px dashed var(--leopard);
}
.foot p{margin:.3rem 0}
.foot-small{font-size:.85rem;color:var(--leopard);text-transform:uppercase;letter-spacing:.05em}

@media (max-width:600px){
  .tagline{font-size:1.05rem}
  .rsvp-card{padding:1.8rem 1.2rem}
  .choice{display:flex;margin-bottom:.5rem}
}
