:root {
  --bg-deep: #0b1320;
  --bg-dusk: #16243d;
  --sunset: #f0915a;
  --sunset-soft: #d9744f;
  --nexus-blue: #4a9fd8;
  --text: #e8eef6;
  --text-dim: #93a3b8;
  --fern: #3d6b55;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html, body {
  height: 100%;
}

body {
  font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
  color: var(--text);
  background:
    radial-gradient(ellipse 120% 70% at 50% 115%, rgba(217, 116, 79, 0.28), transparent 60%),
    radial-gradient(ellipse 90% 60% at 50% -10%, rgba(74, 159, 216, 0.12), transparent 65%),
    linear-gradient(180deg, var(--bg-deep) 0%, var(--bg-dusk) 100%);
  display: grid;
  place-items: center;
  overflow: hidden;
  text-align: center;
}

/* ---------- Centre content ---------- */

.hero {
  position: relative;
  z-index: 1;
  padding: 2rem;
  max-width: 40rem;
  animation: rise 1.2s ease-out both;
}

.logo-glow {
  display: inline-block;
  border-radius: 50%;
  filter: drop-shadow(0 0 45px rgba(74, 159, 216, 0.35));
  animation: breathe 5s ease-in-out infinite;
}

.logo {
  width: clamp(140px, 28vw, 220px);
  height: auto;
  display: block;
}

h1 {
  margin-top: 2rem;
  font-size: clamp(1.6rem, 4.5vw, 2.6rem);
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.25;
}

.brand {
  background: linear-gradient(100deg, var(--sunset) 10%, var(--nexus-blue) 90%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-weight: 700;
  white-space: nowrap;
}

.tagline {
  margin-top: 0.9rem;
  font-size: clamp(1rem, 2.2vw, 1.2rem);
  color: var(--text-dim);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.divider {
  width: 5.5rem;
  height: 2px;
  margin: 1.8rem auto;
  border-radius: 2px;
  background: linear-gradient(90deg, transparent, var(--sunset-soft), transparent);
}

.note {
  font-size: 0.95rem;
  color: var(--text-dim);
  font-style: italic;
}

/* ---------- Ferns around the edges ---------- */

.foliage {
  position: fixed;
  inset: 0;
  pointer-events: none;
  color: var(--fern);
}

.fern {
  position: absolute;
  width: clamp(70px, 11vw, 150px);
  height: clamp(140px, 22vw, 300px);
  opacity: 0.32;
  transform-origin: center;
  transform: translate(var(--tx, 0%), var(--ty, 0%)) rotate(var(--r));
  animation: sway 8s ease-in-out infinite;
}

.fern--tl { top: 0;    left: 0;  --tx: -28%; --ty: -32%; --r: 135deg; }
.fern--tr { top: 0;    right: 0; --tx: 28%;  --ty: -32%; --r: -135deg; animation-delay: -2.5s; }
.fern--bl { bottom: 0; left: 0;  --tx: -28%; --ty: 32%;  --r: 45deg;   animation-delay: -4s; }
.fern--br { bottom: 0; right: 0; --tx: 28%;  --ty: 32%;  --r: -45deg;  animation-delay: -1.5s; }
.fern--ml { top: 40%;  left: 0;  --tx: -45%; --r: 78deg;  animation-delay: -3s;   opacity: 0.2; }
.fern--mr { top: 36%;  right: 0; --tx: 45%;  --r: -78deg; animation-delay: -5.5s; opacity: 0.2; }

@media (max-width: 700px) {
  .fern--ml, .fern--mr {
    display: none;
  }
}

/* ---------- Animations ---------- */

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

@keyframes breathe {
  0%, 100% { filter: drop-shadow(0 0 35px rgba(74, 159, 216, 0.25)); }
  50%      { filter: drop-shadow(0 0 55px rgba(74, 159, 216, 0.45)); }
}

@keyframes sway {
  0%, 100% { transform: translate(var(--tx, 0%), var(--ty, 0%)) rotate(calc(var(--r) - 2.5deg)); }
  50%      { transform: translate(var(--tx, 0%), var(--ty, 0%)) rotate(calc(var(--r) + 2.5deg)); }
}

@media (prefers-reduced-motion: reduce) {
  .hero, .logo-glow, .fern {
    animation: none;
  }
}
