@font-face {
  font-family: 'Playfair Display';
  src: url('../fonts/PlayfairDisplay-VariableFont_wght.ttf') format('truetype');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* @font-face {
  font-family: 'Playfair Display';
  src: url('../fonts/PlayfairDisplay-Italic-VariableFont_wght.ttf') format('truetype');
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
} */

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

:root {
  --color-cream: #F8F4EF;
  --color-charcoal: #1A1A1A;
  --color-gold: #C9A962;
  --color-gold-light: #E8D5A3;
  --color-rose: #D4A5A5;
}

html,
body {
  height: 100%;
  overflow: hidden;
}

body {
  font-family: 'Playfair Display', Georgia, serif;
  background-color: var(--color-charcoal);
  color: var(--color-cream);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  position: relative;
}

/* Background with overlay */
.background {
  position: fixed;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(135deg,
      rgba(26, 26, 26, 0.85) 0%,
      rgba(26, 26, 26, 0.7) 50%,
      rgba(26, 26, 26, 0.85) 100%),
    url('../background-degleex-ganzorig.jpg') center/cover no-repeat;
}

/* Subtle grain texture overlay */
.grain {
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0.04;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
}

/* Main content container */
.content {
  position: relative;
  z-index: 10;
  text-align: center;
  padding: 2rem;
}

/* The main heading with sparkle animation */
.heading {
  position: relative;
  display: inline-block;
}

.heading h1 {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 900;
  font-size: clamp(3rem, 12vw, 8rem);
  letter-spacing: 0.02em;
  color: var(--color-cream);
  position: relative;
  opacity: 0;
  animation: ghostAppear 2.5s ease-out 0.5s forwards;
}

/* Sparkle glow behind text */
.heading::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  background: radial-gradient(ellipse at center,
      rgba(201, 169, 98, 0.3) 0%,
      rgba(201, 169, 98, 0.15) 30%,
      rgba(201, 169, 98, 0.05) 60%,
      transparent 80%);
  transform: translate(-50%, -50%);
  border-radius: 50%;
  z-index: -1;
  filter: blur(20px);
  animation: sparkleGlow 2.5s ease-out 0.3s forwards;
}

/* Ghost appear animation */
@keyframes ghostAppear {
  0% {
    opacity: 0;
    filter: blur(20px);
    transform: scale(0.6) translateY(20px);
  }

  100% {
    opacity: 1;
    filter: blur(0);
    transform: scale(1) translateY(0);
  }
}

/* Sparkle glow expansion */
@keyframes sparkleGlow {
  0% {
    width: 0;
    height: 0;
    opacity: 0.8;
  }

  50% {
    width: 180%;
    height: 350%;
    opacity: 0.5;
  }

  100% {
    width: 150%;
    height: 250%;
    opacity: 0.2;
  }
}

/* Sparkle particles */
.sparkles {
  position: absolute;
  inset: -50%;
  pointer-events: none;
  z-index: 5;
}

.sparkle {
  position: absolute;
  width: 4px;
  height: 4px;
  background: var(--color-gold-light);
  border-radius: 50%;
  opacity: 0;
  box-shadow:
    0 0 6px 2px var(--color-gold),
    0 0 12px 4px rgba(201, 169, 98, 0.5);
}

/* Generate multiple sparkle animations */
.sparkle:nth-child(1) {
  left: 10%;
  top: 30%;
  animation: sparkleFloat 2s ease-out 0.4s forwards;
}

.sparkle:nth-child(2) {
  left: 90%;
  top: 25%;
  animation: sparkleFloat 2.2s ease-out 0.5s forwards;
}

.sparkle:nth-child(3) {
  left: 20%;
  top: 70%;
  animation: sparkleFloat 1.8s ease-out 0.6s forwards;
}

.sparkle:nth-child(4) {
  left: 80%;
  top: 75%;
  animation: sparkleFloat 2.1s ease-out 0.45s forwards;
}

.sparkle:nth-child(5) {
  left: 50%;
  top: 15%;
  animation: sparkleFloat 1.9s ease-out 0.55s forwards;
}

.sparkle:nth-child(6) {
  left: 35%;
  top: 85%;
  animation: sparkleFloat 2.3s ease-out 0.35s forwards;
}

.sparkle:nth-child(7) {
  left: 65%;
  top: 20%;
  animation: sparkleFloat 2s ease-out 0.65s forwards;
}

.sparkle:nth-child(8) {
  left: 15%;
  top: 50%;
  animation: sparkleFloat 1.7s ease-out 0.7s forwards;
}

.sparkle:nth-child(9) {
  left: 85%;
  top: 55%;
  animation: sparkleFloat 2.4s ease-out 0.4s forwards;
}

.sparkle:nth-child(10) {
  left: 45%;
  top: 80%;
  animation: sparkleFloat 2s ease-out 0.5s forwards;
}

.sparkle:nth-child(11) {
  left: 55%;
  top: 10%;
  animation: sparkleFloat 1.8s ease-out 0.6s forwards;
}

.sparkle:nth-child(12) {
  left: 25%;
  top: 40%;
  animation: sparkleFloat 2.2s ease-out 0.55s forwards;
}

@keyframes sparkleFloat {
  0% {
    opacity: 0;
    transform: scale(0) translateY(0);
  }

  20% {
    opacity: 1;
    transform: scale(1.5);
  }

  60% {
    opacity: 0.8;
    transform: scale(1) translateY(-20px);
  }

  100% {
    opacity: 0;
    transform: scale(0.3) translateY(-40px);
  }
}

/* Tagline */
.tagline {
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1rem, 3vw, 1.5rem);
  color: var(--color-gold-light);
  letter-spacing: 0.15em;
  text-transform: lowercase;
  margin-top: 1.5rem;
  opacity: 0;
  animation: fadeUp 1.5s ease-out 2s forwards;
}

@keyframes fadeUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Decorative line */
.decorative-line {
  width: 0;
  height: 1px;
  background: linear-gradient(90deg,
      transparent,
      var(--color-gold) 20%,
      var(--color-gold-light) 50%,
      var(--color-gold) 80%,
      transparent);
  margin: 0.75rem auto 2rem;
  animation: lineExpand 1.5s ease-out 2.5s forwards;
}

@keyframes lineExpand {
  to {
    width: min(300px, 60vw);
  }
}

/* CTA / Coming Soon text */
.cta {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(0.75rem, 2vw, 0.9rem);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--color-cream);
  opacity: 0;
  animation: fadeUp 1.5s ease-out 3s forwards;
}

/* Footer */
.footer {
  position: fixed;
  bottom: 2rem;
  width: 100%;
  z-index: 10;
  opacity: 0;
  animation: fadeUp 1s ease-out 3.5s forwards;
}

.footer p {
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  color: rgba(248, 244, 239, 0.4);
  text-align: center;
}

/* Ambient floating particles (continuous) */
.ambient-particles {
  position: fixed;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  overflow: hidden;
}

.ambient-particle {
  position: absolute;
  width: 3px;
  height: 3px;
  background: var(--color-gold);
  border-radius: 50%;
  opacity: 0;
  box-shadow:
    0 0 4px 1px var(--color-gold),
    0 0 8px 2px rgba(201, 169, 98, 0.3);
  animation: ambientFloat 8s ease-in-out infinite;
}

.ambient-particle:nth-child(1) {
  left: 5%;
  animation-delay: 0s;
}

.ambient-particle:nth-child(2) {
  left: 15%;
  animation-delay: 1.5s;
}

.ambient-particle:nth-child(3) {
  left: 25%;
  animation-delay: 3s;
}

.ambient-particle:nth-child(4) {
  left: 35%;
  animation-delay: 0.5s;
}

.ambient-particle:nth-child(5) {
  left: 45%;
  animation-delay: 2s;
}

.ambient-particle:nth-child(6) {
  left: 55%;
  animation-delay: 4s;
}

.ambient-particle:nth-child(7) {
  left: 65%;
  animation-delay: 1s;
}

.ambient-particle:nth-child(8) {
  left: 75%;
  animation-delay: 2.5s;
}

.ambient-particle:nth-child(9) {
  left: 85%;
  animation-delay: 3.5s;
}

.ambient-particle:nth-child(10) {
  left: 95%;
  animation-delay: 0.8s;
}

@keyframes ambientFloat {

  0%,
  100% {
    opacity: 0;
    transform: translateY(100vh) scale(0);
  }

  10% {
    opacity: 0.75;
    transform: translateY(90vh) scale(1.1);
  }

  90% {
    opacity: 0.35;
    transform: translateY(10vh) scale(0.65);
  }
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .heading h1 {
    letter-spacing: 0.01em;
  }

  .tagline {
    letter-spacing: 0.1em;
  }
}