:root{
  --bg:#0a0806;--bg2:#120d09;--bone:#efe7d8;--dim:#8a7f70;
  --red:#c0362c;--gold:#d9a441;--line:rgba(217,164,65,.22);
  --serif:'Cormorant Garamond',Georgia,serif;--mono:'Space Mono',monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--bone);font-family:var(--serif);
  line-height:1.5;overflow-x:hidden;-webkit-font-smoothing:antialiased}
.mono{font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;font-size:.7rem;color:var(--dim)}
.grain{position:fixed;inset:0;pointer-events:none;z-index:99;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* HERO */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.hero-bg{position:absolute;inset:-8%;background-size:cover;background-position:center;
  filter:brightness(.35) saturate(.7) contrast(1.1);transform:scale(1.05);animation:drift 22s ease-in-out infinite alternate}
@keyframes drift{to{transform:scale(1.14) translateY(-2%)}}
.hero-veil{position:absolute;inset:0;background:
  radial-gradient(ellipse at 50% 40%,rgba(192,54,44,.18),transparent 60%),
  linear-gradient(180deg,rgba(10,8,6,.55),rgba(10,8,6,.95))}
.hero-inner{position:relative;z-index:2;padding:2rem}
.coords{margin-bottom:1.2rem}
.title{font-size:clamp(3.5rem,15vw,9rem);font-weight:600;letter-spacing:.12em;line-height:.9;
  color:var(--bone);text-shadow:0 0 40px rgba(217,164,65,.25)}
.title.small{font-size:2rem}
.place{margin:1rem 0 2rem;color:var(--gold)}
.statement{font-size:clamp(1.4rem,4vw,2.4rem);font-style:italic;color:var(--bone);opacity:.9;margin-bottom:2.5rem;line-height:1.2}
.scroll-cue{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:2;animation:bob 2.4s ease-in-out infinite}
@keyframes bob{50%{transform:translateX(-50%) translateY(8px)}}

/* buttons */
.btn-threshold,.btn-cashapp{display:inline-block;font-family:var(--mono);text-transform:uppercase;
  letter-spacing:.2em;font-size:.75rem;text-decoration:none;padding:1rem 2.4rem;border:1px solid var(--gold);
  color:var(--gold);background:transparent;cursor:pointer;transition:.4s;position:relative;overflow:hidden}
.btn-threshold::after{content:"";position:absolute;inset:0;background:var(--gold);transform:translateY(101%);transition:.4s;z-index:-1}
.btn-threshold:hover{color:var(--bg)}
.btn-threshold:hover::after{transform:translateY(0)}
.btn-cashapp{background:var(--red);border-color:var(--red);color:var(--bone);margin:.5rem 0}
.btn-cashapp:hover{background:#d94236;box-shadow:0 0 30px rgba(192,54,44,.5)}

/* sections */
section{padding:6rem 1.5rem;max-width:1080px;margin:0 auto}
.label{margin-bottom:1rem}.center{text-align:center}
.section-title{font-size:clamp(2rem,6vw,3rem);text-align:center;margin-bottom:2.5rem;font-weight:400}

/* signal */
.signal{text-align:center}
.counter{margin:.5rem 0}
.amount{display:block;font-size:clamp(3rem,12vw,6rem);color:var(--gold);font-weight:600;text-shadow:0 0 30px rgba(217,164,65,.3)}
.goal{display:block;margin-top:.5rem}
.meter{height:3px;background:rgba(255,255,255,.08);margin:2rem auto 1rem;max-width:520px;overflow:hidden}
.meter-f
=== FILE: site/styles.css ===
:root{
  --bg:#0a0806;--bg2:#120d09;--bone:#efe7d8;--dim:#8a7f70;
  --red:#c0362c;--gold:#d9a441;--line:rgba(217,164,65,.22);
  --serif:'Cormorant Garamond',Georgia,serif;--mono:'Space Mono',monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--bone);font-family:var(--serif);
  line-height:1.5;overflow-x:hidden;-webkit-font-smoothing:antialiased}
.mono{font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;font-size:.7rem;color:var(--dim)}
.grain{position:fixed;inset:0;pointer-events:none;z-index:99;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* HERO */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.hero-bg{position:absolute;inset:-8%;background-size:cover;background-position:center;
  filter:brightness(.35) saturate(.7) contrast(1.1);transform:scale(1.05);animation:drift 22s ease-in-out infinite alternate}
@keyframes drift{to{transform:scale(1.14) translateY(-2%)}}
.hero-veil{position:absolute;inset:0;background:
  radial-gradient(ellipse at 50% 40%,rgba(192,54,44,.18),transparent 60%),
  linear-gradient(180deg,rgba(10,8,6,.55),rgba(10,8,6,.95))}
.hero-inner{position:relative;z-index:2;padding:2rem}
.coords{margin-bottom:1.2rem}
.title{font-size:clamp(3.5rem,15vw,9rem);font-weight:600;letter-spacing:.12em;line-height:.9;
  color:var(--bone);text-shadow:0 0 40px rgba(217,164,65,.25)}
.title.small{font-size:2rem}
.place{margin:1rem 0 2rem;color:var(--gold)}
.statement{font-size:clamp(1.4rem,4vw,2.4rem);font-style:italic;color:var(--bone);opacity:.9;margin-bottom:2.5rem;line-height:1.2}
.scroll-cue{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:2;animation:bob 2.4s ease-in-out infinite}
@keyframes bob{50%{transform:translateX(-50%) translateY(8px)}}

/* buttons */
.btn-threshold,.btn-cashapp{display:inline-block;font-family:var(--mono);text-transform:uppercase;
  letter-spacing:.2em;font-size:.75rem;text-decoration:none;padding:1rem 2.4rem;border:1px solid var(--gold);
  color:var(--gold);background:transparent;cursor:pointer;transition:.4s;position:relative;overflow:hidden}
.btn-threshold::after{content:"";position:absolute;inset:0;background:var(--gold);transform:translateY(101%);transition:.4s;z-index:-1}
.btn-threshold:hover{color:var(--bg)}
.btn-threshold:hover::after{transform:translateY(0)}
.btn-cashapp{background:var(--red);border-color:var(--red);color:var(--bone);margin:.5rem 0}
.btn-cashapp:hover{background:#d94236;box-shadow:0 0 30px rgba(192,54,44,.5)}

/* sections */
section{padding:6rem 1.5rem;max-width:1080px;margin:0 auto}
.label{margin-bottom:1rem}.center{text-align:center}
.section-title{font-size:clamp(2rem,6vw,3rem);text-align:center;margin-bottom:2.5rem;font-weight:400}

/* signal */
.signal{text-align:center}
.counter{margin:.5rem 0}
.amount{display:block;font-size:clamp(3rem,12vw,6rem);color:var(--gold);font-weight:600;text-shadow:0 0 30px rgba(217,164,65,.3)}
.goal{display:block;margin-top:.5rem}
.meter{height:3px;background:rgba(255,255,255,.08);margin:2rem auto 1rem;max-width:520px;overflow:hidden}
.meter-fill{height:100%;width:0;background:linear-gradient(90deg,var(--red),var(--gold));transition:width 1.6s cubic-bezier(.2,.8,.2,1)}
.signal .note{margin-top:.5rem}

/* tiers */
.tier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem}
.tier{border:1px solid var(--line);padding:2rem 1.5rem;text-align:center;background:var(--bg2);transition:.4s;display:flex;flex-direction:column;gap:.8rem}
.tier:hover{border-color:var(--gold);transform:translateY(-6px);box-shadow:0 20px 50px rgba(0,0,0,.5)}
.tier.feature{border-color:var(--gold);box-shadow:0 0 40px rgba(217,164,65,.12)}
.t-label{color:var(--gold)}
.t-amt{font-size:2.6rem;font-weight:600;color:var(--bone)}
.t-desc{color:var(--dim);font-size:1rem;flex:1}
.t-cta{margin-top:.5rem;font-family:var(--mono);text-transform:uppercase;letter-spacing:.15em;
  font-size:.7rem;text-decoration:none;color:var(--gold);border:1px solid var(--line);padding:.7rem 1rem;transition:.3s}
.t-cta:hover{background:var(--gold);color:var(--bg);border-color:var(--gold)}

/* pay */
.pay{text-align:center}
.pay-sub{margin-bottom:1.5rem;font-size:1.1rem}
.alt-pay{margin-top:1rem}

/* interest */
.interest{max-width:640px}
.form{display:flex;flex-direction:column;gap:1.2rem}
.form label{display:flex;flex-direction:column;gap:.4rem;font-family:var(--mono);font-size:.7rem;
  letter-spacing:.15em;text-transform:uppercase;color:var(--dim)}
.form input,.form select{font-family:var(--serif);font-size:1.05rem;color:var(--bone);
  background:var(--bg2);border:1px solid var(--line);padding:.8rem 1rem;transition:.3s}
.form input:focus,.form select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 2px rgba(217,164,65,.15)}
.form select option{background:var(--bg2);color:var(--bone)}
.opt{color:var(--dim);text-transform:none}
.form .btn-threshold{align-self:flex-start;margin-top:.5rem}
#formMsg{min-height:1.2em}
#formMsg.ok{color:var(--gold)}
#formMsg.err{color:var(--red)}

/* footer */
.foot{text-align:center;padding:4rem 1.5rem;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.6rem}
.foot .dim{color:var(--dim);opacity:.7}

/* reveal */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none;transition:none}
  .meter-fill{transition:none}
}
