:root {
  color-scheme: light;
  --ink: #173b37;
  --muted: #657c76;
  --cream: #fbf7ec;
  --paper: #fffdf8;
  --teal: #177a68;
  --teal-dark: #105d51;
  --coral: #ef8b72;
  --line: #dbe7df;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  color: var(--ink);
  background: var(--cream);
}

button, input { font: inherit; }

.shell {
  display: grid;
  min-height: 100vh;
  grid-template-columns: minmax(0, 1.1fr) minmax(420px, .9fr);
}

.brand {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  padding: clamp(3rem, 8vw, 8rem);
  color: #f8fff9;
  background: linear-gradient(145deg, #0f574e 0%, #168373 56%, #68aa7a 100%);
}

.brand > *:not(.orb) { position: relative; z-index: 1; }

.brand-mark {
  display: grid;
  width: 3.25rem;
  height: 3.25rem;
  margin-bottom: 4rem;
  place-items: center;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 50%;
  font-family: Georgia, serif;
  font-size: 1.65rem;
}

.eyebrow, .kicker {
  margin: 0 0 .85rem;
  font-size: .76rem;
  font-weight: 750;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.eyebrow { color: #c8ebd2; }

h1 {
  max-width: 700px;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.2rem, 7vw, 6.8rem);
  font-weight: 400;
  letter-spacing: -.055em;
  line-height: .96;
}

h1 span { color: #f6c597; }

.lede {
  max-width: 32rem;
  margin: 2rem 0 0;
  color: #d9f0e0;
  font-size: 1.1rem;
  line-height: 1.7;
}

.orb {
  position: absolute;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
}

.orb-one { right: -10rem; bottom: -12rem; width: 32rem; height: 32rem; }
.orb-two { right: 7rem; bottom: 8rem; width: 10rem; height: 10rem; background: rgba(246,197,151,.14); }

.panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem clamp(1.5rem, 7vw, 7rem);
  background: var(--paper);
}

.card { width: min(100%, 440px); }
.kicker { color: var(--teal); }

h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 3rem;
  font-weight: 400;
  letter-spacing: -.035em;
}

.hint { margin: .65rem 0 2.2rem; color: var(--muted); line-height: 1.6; }

label {
  display: block;
  margin: 1.15rem 0 .48rem;
  font-size: .86rem;
  font-weight: 700;
}

input {
  width: 100%;
  padding: .92rem 1rem;
  color: var(--ink);
  border: 1px solid #cddbd3;
  border-radius: .6rem;
  outline: none;
  background: #fff;
  transition: border-color .2s, box-shadow .2s;
}

input:focus {
  border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(23,122,104,.14);
}

button {
  width: 100%;
  margin-top: 1.5rem;
  padding: .95rem 1.1rem;
  color: white;
  border: 0;
  border-radius: .6rem;
  background: var(--teal);
  font-weight: 750;
  cursor: pointer;
  transition: background .2s, transform .1s;
}

button:hover { background: var(--teal-dark); }
button:active { transform: translateY(1px); }
button:focus-visible { outline: 3px solid rgba(23,122,104,.28); outline-offset: 3px; }
button:disabled { cursor: wait; opacity: .6; }
button.secondary { color: var(--teal); border: 1px solid var(--teal); background: transparent; }
button.secondary:hover { color: white; background: var(--teal); }

.status { min-height: 1.4rem; margin: 1rem 0 0; color: #a13d36; font-size: .88rem; line-height: 1.5; }
.hidden { display: none; }

.success-mark {
  display: grid;
  width: 3.2rem;
  height: 3.2rem;
  margin-bottom: 1.5rem;
  place-items: center;
  color: white;
  border-radius: 50%;
  background: var(--teal);
  font-size: 1.25rem;
}

pre {
  max-height: 290px;
  overflow: auto;
  padding: 1rem;
  color: #d9f0e0;
  border-radius: .65rem;
  background: #123e39;
  font: .78rem/1.6 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  white-space: pre-wrap;
  word-break: break-word;
}

.privacy-note {
  width: min(100%, 440px);
  margin: 2rem 0 0;
  color: var(--muted);
  font-size: .76rem;
  line-height: 1.5;
  text-align: center;
}

@media (max-width: 820px) {
  .shell { grid-template-columns: 1fr; }
  .brand { min-height: 38vh; padding: 2.5rem 1.5rem; }
  .brand-mark { margin-bottom: 2.5rem; }
  h1 { font-size: clamp(2.8rem, 14vw, 4.6rem); }
  .panel { min-height: 62vh; padding: 3.5rem 1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
