:root,
[data-theme="dark"] {
  --ink: #12100e;
  --ink-soft: #1c1916;
  --rice: #f0e6d6;
  --rice-dim: rgba(240, 230, 214, 0.72);
  --rose: #c45c6a;
  --rose-deep: #a84856;
  --gold: #c4a36a;
  --panel: rgba(18, 16, 14, 0.45);
  --border: rgba(240, 230, 214, 0.22);
  --placeholder: rgba(240, 230, 214, 0.45);
  --btn-text: #f0e6d6;
  --atmosphere-1: rgba(196, 92, 106, 0.16);
  --atmosphere-2: rgba(196, 163, 106, 0.12);
  --atmosphere-base: linear-gradient(165deg, #1a1613 0%, #12100e 48%, #0c0b0a 100%);
  --font-display: "Cormorant Garamond", Georgia, serif;
  --font-body: "Manrope", system-ui, sans-serif;
  color-scheme: dark;
}

[data-theme="light"] {
  --ink: #f5efe6;
  --ink-soft: #ebe3d6;
  --rice: #1a1613;
  --rice-dim: rgba(26, 22, 19, 0.68);
  --rose: #b84d5c;
  --rose-deep: #9a3d4a;
  --gold: #9a7a3f;
  --panel: rgba(255, 252, 247, 0.72);
  --border: rgba(26, 22, 19, 0.16);
  --placeholder: rgba(26, 22, 19, 0.4);
  --btn-text: #f5efe6;
  --atmosphere-1: rgba(196, 92, 106, 0.1);
  --atmosphere-2: rgba(196, 163, 106, 0.14);
  --atmosphere-base: linear-gradient(165deg, #faf6ef 0%, #f5efe6 48%, #ebe3d6 100%);
  color-scheme: light;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-height: 100%;
}

body {
  color: var(--rice);
  font-family: var(--font-body);
  background: var(--ink);
  overflow-x: hidden;
}

.atmosphere {
  position: fixed;
  inset: 0;
  z-index: 0;
  background:
    radial-gradient(ellipse 85% 55% at 8% 12%, var(--atmosphere-1), transparent 55%),
    radial-gradient(ellipse 70% 50% at 92% 88%, var(--atmosphere-2), transparent 50%),
    var(--atmosphere-base);
  animation: drift 22s ease-in-out infinite alternate;
}

.atmosphere::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E");
  pointer-events: none;
  opacity: 0.85;
}

[data-theme="light"] .atmosphere::after {
  opacity: 0.45;
}

@keyframes drift {
  from { transform: scale(1) translate(0, 0); }
  to { transform: scale(1.04) translate(-1%, 1.2%); }
}

.theme-toggle {
  position: fixed;
  top: 1.25rem;
  right: 1.25rem;
  z-index: 2;
  min-height: 2.25rem;
  padding: 0.45rem 0.9rem;
  border: 1px solid var(--border);
  background: var(--panel);
  color: var(--rice);
  font: inherit;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition: border-color 0.2s ease, background 0.2s ease;
}

.theme-toggle:hover {
  border-color: var(--rose);
}

.theme-toggle-label {
  display: none;
}

[data-theme="dark"] .theme-toggle-label[data-when="dark"],
[data-theme="light"] .theme-toggle-label[data-when="light"] {
  display: inline;
}

.hero {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2rem, 6vw, 4.5rem);
  max-width: 40rem;
}

.brand {
  margin: 0 0 1.75rem;
  animation: rise 1s ease both;
}

.brand-logo {
  display: none;
  width: min(100%, clamp(11rem, 38vw, 16.5rem));
  height: auto;
}

[data-theme="dark"] .brand-logo-dark,
[data-theme="light"] .brand-logo-light {
  display: block;
}

.headline {
  margin: 0 0 0.85rem;
  font-family: var(--font-display);
  font-size: clamp(2rem, 5.5vw, 2.85rem);
  font-weight: 400;
  font-style: italic;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--rice);
  animation: rise 1s ease 0.12s both;
}

.lede {
  margin: 0 0 2.25rem;
  max-width: 26rem;
  font-size: 1.02rem;
  font-weight: 300;
  line-height: 1.6;
  color: var(--rice-dim);
  animation: rise 1s ease 0.24s both;
}

.notify {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  max-width: 28rem;
  animation: rise 1s ease 0.36s both;
}

.notify input {
  flex: 1 1 12rem;
  min-height: 3rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--border);
  border-radius: 0;
  background: var(--panel);
  color: var(--rice);
  font: inherit;
  font-size: 0.95rem;
  outline: none;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.notify input::placeholder {
  color: var(--placeholder);
}

.notify input:focus {
  border-color: var(--rose);
}

.notify button {
  min-height: 3rem;
  padding: 0.75rem 1.35rem;
  border: none;
  border-radius: 0;
  background: var(--rose);
  color: var(--btn-text);
  font: inherit;
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}

.notify button:hover {
  background: var(--rose-deep);
}

.notify button:active {
  transform: translateY(1px);
}

.notify.is-sent button {
  background: var(--gold);
  color: #12100e;
}

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

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

@media (max-width: 540px) {
  .notify button {
    width: 100%;
  }
}
