:root {
  --cream: #f3ebde;
  --paper: #efe6d6;
  --ink: #3f372d;
  --ink-soft: #6f6353;
  --terra: #b1542f;
  --terra-deep: #8f3f22;
  --olive: #76784a;
  --olive-deep: #5f6238;
  --gold: #d99a2f;
  --brown: #4a3526;
  --rosehip: #a83a30;
  --amber: #bf9248;
  --lav: #8d7aa6;
}

* {
  box-sizing: border-box;
}

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

body {
  position: relative;
  min-height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem 1.5rem 4rem;
  overflow: hidden;
  font-family: "Cormorant Garamond", Georgia, serif;
  color: var(--ink);
  background:
    radial-gradient(120% 80% at 50% 0%, #f7f1e6 0%, var(--cream) 55%, var(--paper) 100%);
}

/* soft paper grain */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: 0.5;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E");
}

/* ===== Meadow background ===== */
.field {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.haze {
  fill: var(--olive);
  opacity: 0.12;
  filter: blur(18px);
}

/* cosmos */
#cosmos .petals use {
  fill: var(--bloom, #d089a0);
  stroke: var(--bloom-deep, #b06d85);
  stroke-width: 0.6;
}
#cosmos .eye {
  fill: var(--gold);
}
#cosmos .eye-dot {
  fill: var(--brown);
}

/* rudbeckia */
#rud .petals-r use {
  fill: var(--ray, #d99a2f);
  stroke: var(--ray-deep, #bf7f2a);
  stroke-width: 0.5;
}
#rud .dome {
  fill: #3d2a1c;
}

/* twigs, blades, foliage */
.twig,
.blade,
.frond {
  fill: none;
  stroke: var(--olive-deep);
  stroke-width: 2.2;
  stroke-linecap: round;
}
.blade,
.frond {
  stroke: var(--amber);
}
.blade.slim {
  stroke: var(--olive);
  stroke-width: 1.8;
}
.twig.thin {
  stroke-width: 1.6;
}
.leaflet {
  fill: none;
  stroke: var(--olive);
  stroke-width: 1.6;
  stroke-linecap: round;
}
.seed {
  fill: var(--amber);
  opacity: 0.92;
}
.berry {
  fill: var(--rosehip);
}
.bud {
  fill: var(--lav);
}

/* queen anne's lace */
.lace line {
  stroke: #cdbfa4;
  stroke-width: 1;
}
.lace circle {
  fill: #f6efe3;
  stroke: #d8cab0;
  stroke-width: 0.5;
}

/* a gentle breeze */
.meadow {
  transform-origin: 50% 100%;
  animation: breeze 9s ease-in-out infinite;
}
@keyframes breeze {
  0%,
  100% {
    transform: rotate(-0.5deg);
  }
  50% {
    transform: rotate(0.5deg);
  }
}

/* ===== Words ===== */
.stage {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 2.4rem 2.2rem 2.6rem;
  background: rgba(247, 241, 231, 0.72);
  border: 1px solid rgba(177, 84, 47, 0.22);
  border-radius: 4px;
  box-shadow: 0 24px 60px -34px rgba(63, 55, 45, 0.6);
  backdrop-filter: blur(3px);
}

.sprig {
  width: 84px;
  height: auto;
  margin-bottom: 1.1rem;
}
.s-stem {
  fill: none;
  stroke: var(--olive-deep);
  stroke-width: 1.4;
  stroke-linecap: round;
}
.s-leaf {
  fill: var(--olive);
  opacity: 0.88;
}

.coming {
  margin: 0;
  font-family: "Pinyon Script", "Cormorant Garamond", cursive;
  font-weight: 400;
  font-size: clamp(3.4rem, 13vw, 5.8rem);
  line-height: 1.05;
  color: var(--terra);
}

.subtitle {
  margin: 1.1rem auto 0;
  max-width: 24rem;
  font-size: clamp(1.05rem, 3.4vw, 1.32rem);
  font-style: italic;
  line-height: 1.5;
  color: var(--ink-soft);
}

/* ===== Portrait / narrow screens ===== */
@media (max-aspect-ratio: 4 / 5) {
  body {
    padding: 2rem 1rem 0;
  }

  .stage {
    width: 100%;
    min-width: 0; /* allow the card to shrink to the viewport */
    max-width: 26rem;
    margin: 0 auto;
    padding: 2rem 1.4rem 2.2rem;
  }

  .coming {
    font-size: clamp(2.7rem, 13vw, 4rem);
  }

  .subtitle {
    font-size: clamp(1.05rem, 4.4vw, 1.3rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .meadow {
    animation: none;
  }
}
