:root{
  --coral:#ff7a5c;
  --coral-deep:#e8573a;
  --blush:#ffd9d2;
  --shell:#fff4f1;
  --plum:#3b1520;
  --plum-soft:#5a2b36;
  --seafoam:#dcefec;
  --radius:999px;
  --shadow:0 18px 40px -22px rgba(59,21,32,.45);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  position:relative;
  margin:0;
  background:var(--shell);
  color:var(--plum);
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  font-size:clamp(16px,1vw + 14px,18px);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}

.visually-hidden{
  position:absolute;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* ---------- hero ---------- */
.hero{
  position:relative;
  min-height:100svh;
  display:grid;
  place-items:center;
  padding:clamp(2.5rem,7vw,5rem) 1.25rem clamp(5rem,10vw,6.5rem);
  overflow:hidden;
  isolation:isolate;
}
.hero__bg{
  position:absolute;
  inset:0;
  z-index:-1;
  background:url("../img/hero.jpg") center/cover no-repeat;
  transform:scale(1.06);
  filter:blur(1px);
  animation:drift 32s ease-in-out infinite alternate;
}
.hero__bg::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(58% 40% at 50% 46%, rgba(255,250,248,.80) 0%, rgba(255,248,245,.55) 55%, rgba(255,246,243,0) 100%),
    radial-gradient(120% 80% at 50% 45%, rgba(255,246,243,.48) 0%, rgba(255,236,231,.60) 55%, rgba(255,226,220,.74) 100%),
    linear-gradient(to bottom, rgba(255,244,241,.30), rgba(255,244,241,0) 28%, rgba(255,238,234,.88) 100%);
}
@keyframes drift{from{transform:scale(1.06) translate3d(0,0,0)}to{transform:scale(1.12) translate3d(0,-1.5%,0)}}

.hero__inner :is(h1,p,label,input,button,a){
  text-shadow:0 0 22px rgba(255,249,247,.75), 0 1px 2px rgba(255,249,247,.9);
}

.hero__inner{
  width:min(37rem,100%);
  text-align:center;
}

.wordmark{
  margin:0 0 clamp(1.75rem,5vw,2.75rem);
  font-family:"Fraunces","Iowan Old Style",Georgia,serif;
  font-size:clamp(1.35rem,3.2vw,1.9rem);
  font-weight:400;
  letter-spacing:.3em;
  text-indent:.3em;
  text-transform:uppercase;
  color:var(--plum);
}

.headline{
  margin:0;
  font-family:"Fraunces","Iowan Old Style",Georgia,serif;
  font-weight:300;
  font-size:clamp(2.9rem,10vw,5.25rem);
  line-height:.98;
  letter-spacing:-.02em;
  color:var(--plum);
}

.lede{
  margin:clamp(1.1rem,3vw,1.6rem) auto 0;
  max-width:26ch;
  font-size:clamp(1.02rem,.6vw + .9rem,1.2rem);
  color:var(--plum-soft);
}

.location{
  margin:1.35rem 0 clamp(1.75rem,5vw,2.5rem);
  font-size:.95rem;
  color:var(--plum-soft);
}

/* ---------- form ---------- */
.waitlist{margin:0}
.waitlist__row{
  display:flex;
  align-items:center;
  gap:1rem;
  width:min(26rem,100%);
  margin-inline:auto;
  padding:0 0 .7rem;
  border-bottom:1px solid rgba(59,21,32,.3);
  transition:border-color .25s ease;
}
.waitlist__row:focus-within{border-bottom-color:var(--coral-deep)}
.waitlist input{
  flex:1 1 auto;
  min-width:0;
  padding:0;
  border:0;
  background:transparent;
  font:inherit;
  font-size:1rem;
  color:var(--plum);
}
.waitlist input::placeholder{color:rgba(59,21,32,.58)}
.waitlist input:focus{outline:none}
.waitlist button{
  flex:0 0 auto;
  padding:0;
  border:0;
  background:none;
  font-family:inherit;
  font-size:.7rem;
  font-weight:500;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--plum);
  cursor:pointer;
  transition:color .25s ease;
}
.waitlist button:hover{color:var(--coral-deep)}
.waitlist button:focus-visible{outline:2px solid rgba(59,21,32,.45);outline-offset:6px;border-radius:2px}
.waitlist button[disabled]{opacity:.45;cursor:progress}

.fineprint{
  margin:1rem auto 0;
  font-size:.75rem;
  letter-spacing:.01em;
  color:var(--plum-soft);
  opacity:.8;
}
.status{
  margin:.65rem auto 0;
  min-height:1.2em;
  font-size:.85rem;
  color:var(--plum-soft);
}
.status--error{color:var(--coral-deep)}
.status a{color:inherit}
.waitlist.is-done .waitlist__row,
.waitlist.is-done .fineprint{display:none}
.waitlist.is-done .status{
  font-family:"Fraunces","Iowan Old Style",Georgia,serif;
  font-size:clamp(1.05rem,2.4vw,1.25rem);
  font-style:italic;
  font-weight:300;
  line-height:1.45;
  color:var(--plum);
  padding-top:.35rem;
}

/* ---------- footer ---------- */
.footer{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:1.25rem;
  text-align:center;
  font-size:.78rem;
  color:var(--plum-soft);
}
.footer p{margin:0}
.footer a{color:inherit;text-decoration-color:rgba(117,67,76,.4);text-underline-offset:3px}
.footer a:hover{color:var(--coral-deep)}

@media (max-width:48rem){
  .hero__bg{background-position:44% center}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
  .hero__bg{transform:scale(1.06)}
}
