:root{
  --ivory:#F7F3EA;
  --ivory-2:#F1EBDC;
  --ink:#17181A;
  --charcoal:#3C3A34;
  --brass:#9C7A32;
  --brass-soft:#C9A857;
  --hairline:#D9D0B8;
  --hairline-strong:#B8A97E;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:
    radial-gradient(1200px 600px at 50% -10%, #FFFEFA 0%, var(--ivory) 55%, var(--ivory-2) 100%);
  color:var(--ink);
  font-family:'Cormorant Garamond', serif;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow-x:hidden;
  position:relative;
}

.visually-hidden{
  position:absolute;
  width:1px;height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
}

/* faint letterform watermark field */
.letterfield{
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
  overflow:hidden;
}
.letterfield span{
  position:absolute;
  font-family:'Playfair Display', serif;
  font-weight:600;
  color:var(--ink);
  opacity:0.028;
  user-select:none;
}

.stage{
  position:relative;
  z-index:1;
  width:100%;
  max-width:640px;
  padding:56px 32px 64px;
  text-align:center;
}

.eyebrow{
  font-family:'Space Mono', monospace;
  font-size:11px;
  letter-spacing:0.32em;
  text-transform:uppercase;
  color:var(--brass);
  margin:0 0 30px;
  opacity:0;
  animation:riseIn 0.9s ease forwards 0.15s;
}

.logo-wrap{
  width:150px;
  margin:0 auto 34px;
  opacity:0;
  animation:riseIn 1s ease forwards 0.3s;
}
.logo-wrap img{
  width:100%;
  display:block;
  filter:drop-shadow(0 8px 22px rgba(23,24,26,0.10));
}

.rule{
  width:64px;
  height:1px;
  background:var(--hairline-strong);
  margin:0 auto 26px;
  opacity:0;
  animation:riseIn 0.9s ease forwards 0.45s;
}

.greeting-stage{
  height:104px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:8px;
  opacity:0;
  animation:riseIn 0.9s ease forwards 0.55s;
}
.greeting{
  font-family:'Playfair Display', serif;
  font-weight:600;
  font-style:italic;
  font-size:clamp(40px, 9vw, 68px);
  line-height:1;
  color:var(--ink);
  position:relative;
}
.greeting .script-tag{
  display:block;
  font-family:'Space Mono', monospace;
  font-style:normal;
  font-size:11px;
  letter-spacing:0.26em;
  text-transform:uppercase;
  color:var(--brass);
  margin-top:14px;
}

h1{
  font-family:'Playfair Display', serif;
  font-weight:700;
  font-size:clamp(30px, 5.6vw, 44px);
  letter-spacing:0.01em;
  margin:6px 0 18px;
  color:var(--ink);
  opacity:0;
  animation:riseIn 1s ease forwards 0.7s;
}

p.lede{
  font-size:19px;
  line-height:1.65;
  color:var(--charcoal);
  max-width:440px;
  margin:0 auto 38px;
  opacity:0;
  animation:riseIn 1s ease forwards 0.85s;
}

.divider-row{
  display:flex;
  align-items:center;
  gap:14px;
  max-width:340px;
  margin:0 auto 34px;
  opacity:0;
  animation:riseIn 1s ease forwards 1s;
}
.divider-row .line{ flex:1; height:1px; background:var(--hairline); }
.divider-row .mark{
  font-family:'Space Mono', monospace;
  font-size:11px;
  letter-spacing:0.2em;
  color:var(--brass);
  white-space:nowrap;
}

form.notify{
  display:flex;
  gap:0;
  max-width:380px;
  margin:0 auto 20px;
  border:1px solid var(--ink);
  opacity:0;
  animation:riseIn 1s ease forwards 1.15s;
}
form.notify input[type="email"]{
  flex:1;
  border:none;
  background:transparent;
  padding:15px 18px;
  font-family:'Cormorant Garamond', serif;
  font-size:16px;
  color:var(--ink);
  outline:none;
}
form.notify input[type="email"]::placeholder{
  color:#8b8578;
  font-style:italic;
}
form.notify button{
  border:none;
  border-left:1px solid var(--ink);
  background:var(--ink);
  color:var(--ivory);
  font-family:'Space Mono', monospace;
  font-size:11px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  padding:0 22px;
  cursor:pointer;
  transition:background 0.25s ease, color 0.25s ease;
}
form.notify button:hover{
  background:var(--brass);
}
form.notify button:focus-visible,
form.notify input:focus-visible{
  outline:2px solid var(--brass);
  outline-offset:-2px;
}

.status-msg{
  min-height:20px;
  font-family:'Space Mono', monospace;
  font-size:11px;
  letter-spacing:0.1em;
  color:var(--brass);
  margin-bottom:34px;
}

.langs{
  font-family:'Space Mono', monospace;
  font-size:10.5px;
  letter-spacing:0.14em;
  color:#9a927c;
  text-transform:uppercase;
  opacity:0;
  animation:riseIn 1s ease forwards 1.3s;
}
.langs span{ margin:0 8px; }

@keyframes riseIn{
  from{ opacity:0; transform:translateY(10px); }
  to{ opacity:1; transform:translateY(0); }
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.01ms !important; animation-delay:0s !important; transition:none !important; }
}

@media (max-width:480px){
  .stage{ padding:40px 22px 48px; }
  .greeting-stage{ height:86px; }
  form.notify{ flex-direction:column; border:1px solid var(--ink); }
  form.notify input[type="email"]{ padding:14px 16px; border-bottom:1px solid var(--hairline); }
  form.notify button{ border-left:none; padding:13px; }
}
