:root {
  --ochre-canvas: #F5EDD8;
  --ochre-surface: #F1E8D2;
  --ochre-surface-deep: #E7D7B9;
  --ochre-ink: #3D1A00;
  --ochre-ink-soft: #6D5046;
  --ochre-muted: #9A897B;
  --ochre-border: #D9BDA3;
  --ochre-border-soft: #E2CEB5;
  --ochre-action: #DCB52A;
  --ochre-focus: #2A7A6E;
  --ochre-danger: #C32222;

  --pigment-rust: #7A2800;
  --pigment-vermilion: #DA5704;
  --pigment-umber: #510901;
  --pigment-gold: #D4A017;
  --pigment-petrol: #053C39;
  --pigment-teal: #2A7A6E;

  --font-display: "Fraunces", Georgia, serif;
  --font-sans: "Plus Jakarta Sans", sans-serif;
  --font-mono: "JetBrains Mono", monospace;

  --radius-control: 12px;
  --radius-card: 24px;

  --shadow-warm: 0 12px 32px rgba(61, 26, 0, 0.10);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-font-smoothing: antialiased; }
body {
  font-family: var(--font-sans);
  background: var(--pigment-rust);
  color: var(--ochre-canvas);
  min-height: 100svh;
  display: flex;
  flex-direction: column;
}

.hero {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 48px 32px;
  background: var(--pigment-rust);
  position: relative;
  isolation: isolate;
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  opacity: 0.5;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 300 300' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 300px 300px;
}

.hero > * {
  position: relative;
  z-index: 2;
}

.hero-inner {
  width: 100%;
  max-width: 560px;
  text-align: center;
}

.logo {
  display: block;
  height: auto;
  max-width: 100%;
  margin: 0 auto 48px;
}

.headline {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 40px;
  color: var(--ochre-canvas);
  line-height: 1.15;
  margin-bottom: 16px;
  max-width: 480px;
  margin-left: auto;
  margin-right: auto;
}

.subline {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: 18px;
  color: #D4B896;
  line-height: 1.5;
  margin-bottom: 40px;
}

.form-wrapper {
  display: flex;
  gap: 12px;
  max-width: 480px;
  margin: 0 auto;
}

.form-input {
  flex: 1;
  height: 52px;
  padding: 14px 18px;
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(245,237,216,0.25);
  border-radius: var(--radius-control);
  color: var(--ochre-canvas);
  font-family: var(--font-sans);
  font-size: 16px;
  outline: none;
  transition: border-color 140ms ease-out;
}

.form-input::placeholder {
  color: rgba(245,237,216,0.45);
}

.form-input:focus {
  border-color: var(--pigment-gold);
}

.form-button {
  height: 52px;
  padding: 14px 24px;
  background: var(--ochre-action);
  color: var(--ochre-ink);
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 600;
  border: none;
  border-radius: var(--radius-control);
  cursor: pointer;
  transition: background 140ms ease-out;
  white-space: nowrap;
}

.form-button:hover {
  background: #E3C340;
}

.form-button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.micro-copy {
  font-family: var(--font-sans);
  font-size: 13px;
  color: rgba(245,237,216,0.45);
  margin-top: 14px;
  text-align: center;
}

.error-message {
  font-family: var(--font-sans);
  font-size: 13px;
  color: #F4A26A;
  text-align: center;
  margin-top: 10px;
  display: none;
}

.error-message.visible {
  display: block;
}

.success-message {
  font-family: var(--font-sans);
  font-size: 16px;
  color: var(--pigment-gold);
  opacity: 0;
  transition: opacity 200ms ease-out;
}

.success-message.visible {
  opacity: 1;
}

.footer-line {
  font-family: var(--font-mono);
  font-size: 11px;
  color: rgba(245,237,216,0.30);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
  padding: 24px 48px;
}

@media (max-width: 480px) {
  .hero {
    padding: 48px 24px 24px;
  }

  .headline {
    font-size: 28px;
  }

  .subline {
    font-size: 16px;
  }

  .form-wrapper {
    flex-direction: column;
  }

  .form-input {
    width: 100%;
  }

  .form-button {
    width: 100%;
  }

  .footer-line {
    padding: 16px 24px;
  }
}
