﻿@font-face {
  font-family: Niristo;
  src: url('/nunito-regular.ttf') format('truetype');
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: Niristo;
  src: url('/nunito-heavy.ttf') format('truetype');
  font-weight: 900;
  font-display: swap;
}
* { box-sizing: border-box; }
:root {
  --u: min(1px, .085svh, .105vw);
  --brown: #592a0e;
}
html {
  min-height: 100%;
  background: #fcece3;
}
body {
  margin: 0;
  min-height: 100svh;
  color: var(--brown);
  font-family: Niristo, Arial, sans-serif;
  position: relative;
  isolation: isolate;
  background: radial-gradient(ellipse at center, #fff6ef, #fcece3 80%);
}
.corner, .botanical {
  position: fixed;
  pointer-events: none;
  z-index: -1;
}
.top {
  top: 0;
  left: 0;
  width: min(35vw, 420px);
}
.bottom {
  bottom: 0;
  right: 0;
  width: min(40vw, 470px);
}
.botanical {
  bottom: 0;
  left: 0;
  width: min(17vw, 210px);
}
main {
  min-height: 100svh;
  margin: auto;
  padding: calc(54 * var(--u)) 16px calc(22 * var(--u));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  gap: 0;
}
header {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: none;
}
.pear {
  display: block;
  height: calc(188 * var(--u));
  width: calc(155 * var(--u));
}
.brand {
  font-size: calc(104 * var(--u));
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: calc(-3 * var(--u));
  text-decoration: none;
  color: #542608;
}
.tagline {
  font-size: max(14px, calc(28 * var(--u)));
  line-height: 1.35;
  color: #88491f;
  margin: calc(8 * var(--u)) 0 calc(43 * var(--u));
}
.card {
  width: min(810px, calc(810 * var(--u)), 100%);
  padding: calc(48 * var(--u)) calc(58 * var(--u)) calc(40 * var(--u));
  border: 1px solid #fff9f3;
  border-radius: calc(34 * var(--u));
  background: #fff7f080;
  box-shadow: 0 calc(16 * var(--u)) calc(45 * var(--u)) #d9956026;
  flex: none;
}
h1 {
  font-size: calc(111 * var(--u));
  font-weight: 900;
  line-height: 1.16;
  letter-spacing: calc(-3 * var(--u));
  white-space: nowrap;
  margin: 0 calc(-12 * var(--u)) calc(28 * var(--u));
}
.intro {
  font-size: max(14px, calc(29 * var(--u)));
  line-height: 1.35;
  color: #777570;
  margin: 0 0 calc(43 * var(--u));
}
form { margin: 0; }
.email-field {
  display: flex;
  align-items: center;
  gap: calc(28 * var(--u));
  min-height: 44px;
  padding: calc(17 * var(--u)) calc(31 * var(--u));
  border: 2px solid #dbc4b4;
  border-radius: calc(18 * var(--u));
  text-align: left;
}
.email-field svg {
  width: max(24px, calc(42 * var(--u)));
  height: max(24px, calc(42 * var(--u)));
  color: #75421d;
  flex: none;
}
.email-field input {
  width: 100%;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--brown);
  font: 400 max(16px, calc(28 * var(--u)))/1.4 Niristo, Arial, sans-serif;
  outline: none;
}
.email-field input::placeholder {
  color: #777570;
  opacity: 1;
}
.email-field:focus-within {
  outline: 2px solid #ad794e;
  outline-offset: 3px;
}
.consent {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  text-align: left;
  margin: calc(15 * var(--u)) 0;
  font-size: max(11px, calc(15 * var(--u)));
  line-height: 1.35;
  color: #795c47;
}
.consent input {
  accent-color: #864823;
  flex: none;
  margin: 1px 0 0;
  width: 13px;
  height: 13px;
}
a { color: inherit; }
button {
  width: 100%;
  min-height: 44px;
  border: 0;
  border-radius: calc(18 * var(--u));
  padding: calc(14 * var(--u)) 14px;
  background: linear-gradient(110deg, #894924, #814321);
  color: #fffaf6;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(36 * var(--u));
  font: 900 max(20px, calc(36 * var(--u)))/1.4 Niristo, Arial, sans-serif;
  cursor: pointer;
}
button span {
  font: 400 max(29px, calc(48 * var(--u)))/1 Arial, sans-serif;
}
button:hover { background: #743a1b; }
button:disabled { opacity: .65; cursor: wait; }
:focus-visible {
  outline: 3px solid #b17c52;
  outline-offset: 4px;
}
#status {
  font-size: 13px;
  line-height: 1.4;
  margin: 8px 0 0;
  color: #6d4528;
}
#status:empty { display: none; }
.launch {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(24 * var(--u));
  margin-top: calc(35 * var(--u));
  color: #79421d;
  font-size: max(16px, calc(28 * var(--u)));
  line-height: 1.4;
  white-space: nowrap;
}
.launch svg {
  width: max(23px, calc(36 * var(--u)));
  height: max(23px, calc(36 * var(--u)));
  flex: none;
}
.line {
  height: 1px;
  background: #d8b9a2;
  flex: 1;
}
footer {
  font-size: 11px;
  line-height: 1.4;
  margin-top: calc(22 * var(--u));
  color: #8b6347;
}
.hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
@media (max-width: 600px) {
  .card {
    padding-left: 20px;
    padding-right: 20px;
    border-radius: 22px;
  }
  .tagline { margin-bottom: 22px; }
  .intro { font-size: 14px; margin-bottom: 22px; }
  .email-field {
    padding: 10px 12px;
    gap: 10px;
    border-radius: 12px;
  }
  button { border-radius: 12px; }
  .consent { margin: 10px 0; }
  .launch { gap: 12px; margin-top: 20px; }
  .bottom { width: 48vw; }
}
@media (max-height: 550px) and (min-width: 601px) {
  :root { --u: .072svh; }
  main {
    padding: 8px 16px;
    flex-direction: row;
    flex-wrap: wrap;
    align-content: center;
    gap: 12px 20px;
  }
  header { width: 180px; }
  .pear { height: 90px; width: 75px; }
  .brand { font-size: 46px; }
  .tagline { margin: 6px 0 0; font-size: 14px; }
  .card {
    width: min(500px, calc(100vw - 250px));
    padding: 14px 26px;
  }
  h1 { font-size: 36px; margin-bottom: 8px; }
  .intro { margin-bottom: 12px; }
  .launch { margin-top: 12px; }
  .consent { margin: 7px 0; }
  footer { width: 100%; margin: 0; }
}

/* Refined heading spacing */
h1 {
  word-spacing: .12em;
  letter-spacing: calc(-2.5 * var(--u));
  font-size: calc(108 * var(--u));
}
@media (max-height: 550px) and (min-width: 601px) {
  h1 { font-size: 36px; }
}

/* Centre the heading and restore natural word spacing */
.card h1 {
  display: block;
  width: 100%;
  margin: 0 0 calc(28 * var(--u));
  padding: 0;
  text-align: center;
  white-space: nowrap;
  word-spacing: normal;
  letter-spacing: -0.025em;
  font-size: calc(104 * var(--u));
  line-height: 1.15;
}
@media (max-height: 550px) and (min-width: 601px) {
  .card h1 {
    font-size: 36px;
    margin-bottom: 8px;
  }
}

/* Balanced, centred heading */
.card h1 {
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: .17em;
  width: 100%;
  margin: 0 0 calc(32 * var(--u));
  padding: 0;
  font-size: calc(100 * var(--u));
  font-weight: 900;
  line-height: 1.16;
  letter-spacing: -.035em;
  word-spacing: normal;
  text-align: center;
}
.card h1 span {
  display: block;
  flex: 0 0 auto;
}
@media (max-height: 550px) and (min-width: 601px) {
  .card h1 {
    font-size: 34px;
    margin-bottom: 10px;
  }
}

/* Consistent alignment */
main {
  margin-inline: auto;
  align-items: center;
  text-align: center;
}
header {
  align-items: center;
  text-align: center;
}
.brand,
.tagline,
.intro,
#status,
footer {
  text-align: center;
}
.card {
  margin-inline: auto;
}
.card h1 {
  justify-content: center;
  align-items: baseline;
  text-align: center;
}
button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  text-align: center;
}
.launch {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto minmax(0, 1fr);
  align-items: center;
  justify-content: center;
}
.launch .line {
  width: 100%;
}
footer {
  width: 100%;
  margin-inline: auto;
}
