:root {
  --pine:#1E5945;
  --cream:#F7F1E3;
  --cream-2:#fffaf1;
  --line:#e5dac7;
  --amber:#F2A93B;
  --coral:#E8734A;
  --muted:#5d7369;
}
* { box-sizing:border-box; }
html { min-height:100%; background:var(--cream); }
body { margin:0; min-height:100%; color:var(--pine); font-family:Nunito, Avenir Next, Segoe UI, system-ui, -apple-system, sans-serif; }
a { color:inherit; }
.site {
  min-height:100svh;
  background:
    radial-gradient(circle at 12% 25%, rgba(242,169,59,.08) 0 72px, transparent 73px),
    radial-gradient(circle at 88% 26%, rgba(30,89,69,.045) 0 92px, transparent 93px),
    radial-gradient(circle at 70% 82%, rgba(232,115,74,.045) 0 118px, transparent 119px),
    linear-gradient(180deg, var(--cream-2) 0%, var(--cream) 100%);
  padding:clamp(22px,4vw,46px) clamp(20px,5vw,64px) clamp(20px,3vw,38px);
}
.shell { max-width:1180px; margin:0 auto; min-height:calc(100svh - 84px); display:flex; flex-direction:column; }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-bottom:clamp(16px,2.2vw,26px); border-bottom:1px solid var(--line); }
.brand-small img { width:clamp(176px,21vw,255px); max-width:60vw; display:block; }
.opening { display:inline-flex; align-items:center; gap:8px; font-size:clamp(13px,1.1vw,16px); font-weight:900; letter-spacing:.03em; white-space:nowrap; }
.opening svg { width:20px; height:20px; stroke:currentColor; stroke-width:2; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.hero { flex:1; display:grid; place-items:center; text-align:center; padding:clamp(44px,6vw,84px) 0 clamp(28px,4vw,54px); }
.inner { width:min(100%,930px); }
.main-logo { width:min(76vw,840px); display:block; margin:0 auto clamp(30px,4vw,52px); filter:drop-shadow(0 13px 20px rgba(20,54,44,.05)); }
h1 { margin:0; color:var(--pine); font-weight:900; font-size:clamp(34px,4.8vw,64px); line-height:1.02; letter-spacing:-.045em; }
.subtitle { margin:clamp(14px,1.6vw,20px) auto 0; max-width:760px; font-size:clamp(16px,1.45vw,21px); line-height:1.5; font-weight:500; }
.signup { margin:clamp(32px,4vw,52px) auto 0; width:min(100%,590px); display:flex; justify-content:center; gap:14px; }
.signup input { flex:1 1 auto; min-width:0; min-height:64px; border:1.5px solid #d9cbb8; background:rgba(255,250,241,.76); color:var(--pine); border-radius:12px; padding:0 24px; font:inherit; font-size:clamp(16px,1.25vw,18px); outline:none; box-shadow:0 10px 24px rgba(30,89,69,.04); }
.signup input:focus { border-color:var(--amber); box-shadow:0 0 0 4px rgba(242,169,59,.18); background:#fffdf8; }
.signup button, .button-link { min-height:64px; border:0; border-radius:12px; padding:0 30px; background:linear-gradient(180deg,#f8b34c 0%,var(--amber) 100%); color:var(--pine); font:inherit; font-weight:900; font-size:clamp(15px,1.2vw,17px); letter-spacing:.01em; cursor:pointer; box-shadow:0 13px 22px rgba(242,169,59,.18); white-space:nowrap; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }
.signup button:hover, .button-link:hover { transform:translateY(-1px); }

.form-status {
  min-height: 1.4em;
  margin: 14px auto 0;
  color: var(--pine);
  font-size: clamp(14px,1.1vw,16px);
  font-weight: 800;
}
.form-status a {
  color: var(--pine);
  text-decoration-color: var(--amber);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
.signup button:disabled {
  opacity: .72;
  cursor: wait;
  transform: none;
}

.launching { margin:clamp(32px,4vw,52px) 0 0; font-weight:900; font-size:clamp(15px,1.2vw,18px); }
.features { margin-top:clamp(16px,2vw,26px); display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:clamp(14px,2vw,28px); }
.feature { display:inline-flex; align-items:center; gap:10px; font-size:clamp(15px,1.15vw,17px); font-weight:700; }
.feature svg { width:27px; height:27px; stroke:var(--pine); stroke-width:1.8; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.dot { width:8px; height:8px; background:var(--amber); border-radius:999px; display:inline-block; }
.footer { margin-top:auto; padding-top:clamp(17px,2vw,28px); border-top:1px solid var(--line); text-align:center; }
.socials { display:flex; align-items:center; justify-content:center; gap:18px; }
.socials a { width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center; color:var(--pine); text-decoration:none; transition:transform .18s ease, color .18s ease; }
.socials a:hover { color:var(--coral); transform:translateY(-2px); }
.socials svg { width:100%; height:100%; fill:currentColor; }
.socials a[aria-label="Email Rinse & Wag"] svg { fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.handle { margin:10px 0 0; font-size:clamp(15px,1.2vw,18px); font-weight:700; }
.hidden, .visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.thanks-page { min-height:100svh; display:grid; place-items:center; background:linear-gradient(180deg, var(--cream-2), var(--cream)); padding:32px; }
.thanks-card { width:min(100%,640px); text-align:center; background:rgba(255,250,241,.76); border:1px solid var(--line); border-radius:28px; padding:clamp(32px,6vw,64px); box-shadow:0 24px 70px rgba(30,89,69,.09); }
.thanks-logo { width:min(100%,360px); margin:0 auto 30px; display:block; }
.thanks-card p { margin:16px auto 28px; max-width:440px; line-height:1.55; font-size:18px; }
@media (max-width:680px) {
  .site { padding:18px 16px 20px; }
  .shell { min-height:calc(100svh - 38px); }
  .topbar { align-items:flex-start; padding-bottom:16px; }
  .opening span { display:none; }
  .main-logo { width:min(94vw,620px); margin-bottom:26px; }
  h1 { font-size:clamp(32px,10vw,48px); line-height:1.03; }
  .subtitle { font-size:16px; max-width:31rem; }
  .signup { flex-direction:column; width:min(100%,430px); gap:12px; margin-top:30px; }
  .signup input, .signup button { min-height:58px; width:100%; }
  .dot { display:none; }
  .feature { font-size:15px; }
}
