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

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

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  overflow: hidden;
  height: 100%;
  width: 100%;
  /* Prevent any horizontal scroll in Firefox */
  overflow-x: hidden;
}

/* Sky gradient */
.sky {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    180deg,
    #0f1b3d 0%,
    #1e3065 10%,
    #2d4a8c 20%,
    #3d6bb5 32%,
    #5a8fce 44%,
    #78ade0 56%,
    #9dc5ea 68%,
    #c4ddf2 80%,
    #deedf8 90%,
    #eef5fb 100%
  );
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* Cloud container */
.clouds {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

/* Soft clouds using box-shadow for a wispy, natural look */
.cloud {
  position: absolute;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  filter: blur(1px);
}

.cloud::before,
.cloud::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.85);
}

/* Wispy top layer — subtle, high up */
.cloud-1 {
  width: 220px;
  height: 40px;
  top: 55%;
  left: -300px;
  opacity: 0.25;
  filter: blur(8px);
  animation: drift1 80s linear infinite;
}
.cloud-1::before {
  width: 100px;
  height: 60px;
  top: -25px;
  left: 40px;
  filter: blur(4px);
}
.cloud-1::after {
  width: 70px;
  height: 45px;
  top: -15px;
  left: 110px;
  filter: blur(6px);
}

/* Medium cloud */
.cloud-2 {
  width: 260px;
  height: 50px;
  top: 62%;
  left: -350px;
  opacity: 0.35;
  filter: blur(6px);
  animation: drift2 65s linear infinite;
  animation-delay: -30s;
}
.cloud-2::before {
  width: 120px;
  height: 80px;
  top: -40px;
  left: 50px;
  filter: blur(3px);
}
.cloud-2::after {
  width: 90px;
  height: 60px;
  top: -25px;
  left: 140px;
  filter: blur(5px);
}

/* Large soft cloud */
.cloud-3 {
  width: 350px;
  height: 60px;
  top: 70%;
  left: -450px;
  opacity: 0.5;
  filter: blur(4px);
  animation: drift3 90s linear infinite;
  animation-delay: -50s;
}
.cloud-3::before {
  width: 160px;
  height: 100px;
  top: -55px;
  left: 60px;
  filter: blur(3px);
}
.cloud-3::after {
  width: 120px;
  height: 80px;
  top: -35px;
  left: 180px;
  filter: blur(4px);
}

/* Thicker cloud layer */
.cloud-4 {
  width: 300px;
  height: 55px;
  top: 76%;
  left: -400px;
  opacity: 0.6;
  filter: blur(3px);
  animation: drift4 70s linear infinite;
  animation-delay: -15s;
}
.cloud-4::before {
  width: 140px;
  height: 90px;
  top: -45px;
  left: 40px;
  filter: blur(2px);
}
.cloud-4::after {
  width: 100px;
  height: 70px;
  top: -30px;
  left: 150px;
  filter: blur(3px);
}

/* Dense lower cloud */
.cloud-5 {
  width: 400px;
  height: 70px;
  top: 82%;
  left: -500px;
  opacity: 0.7;
  filter: blur(2px);
  animation: drift5 75s linear infinite;
  animation-delay: -40s;
}
.cloud-5::before {
  width: 180px;
  height: 120px;
  top: -60px;
  left: 70px;
  filter: blur(2px);
}
.cloud-5::after {
  width: 140px;
  height: 90px;
  top: -40px;
  left: 200px;
  filter: blur(2px);
}

/* Bottom cloud bank */
.cloud-6 {
  width: 500px;
  height: 80px;
  top: 88%;
  left: -600px;
  opacity: 0.85;
  filter: blur(1px);
  animation: drift6 60s linear infinite;
  animation-delay: -20s;
}
.cloud-6::before {
  width: 200px;
  height: 140px;
  top: -70px;
  left: 80px;
  filter: blur(1px);
}
.cloud-6::after {
  width: 160px;
  height: 110px;
  top: -50px;
  left: 240px;
  filter: blur(1px);
}

/* Ground fog */
.cloud-7 {
  width: 100%;
  height: 80px;
  top: 94%;
  left: 0;
  opacity: 0.9;
  filter: blur(2px);
  border-radius: 0;
  animation: none;
  background: linear-gradient(to top, rgba(255,255,255,0.95), rgba(255,255,255,0));
}
.cloud-7::before,
.cloud-7::after {
  display: none;
}

/* Each cloud drifts at its own speed, all starting off-screen left */
@keyframes drift1 { from { transform: translateX(0); } to { transform: translateX(calc(100vw + 600px)); } }
@keyframes drift2 { from { transform: translateX(0); } to { transform: translateX(calc(100vw + 700px)); } }
@keyframes drift3 { from { transform: translateX(0); } to { transform: translateX(calc(100vw + 900px)); } }
@keyframes drift4 { from { transform: translateX(0); } to { transform: translateX(calc(100vw + 800px)); } }
@keyframes drift5 { from { transform: translateX(0); } to { transform: translateX(calc(100vw + 1000px)); } }
@keyframes drift6 { from { transform: translateX(0); } to { transform: translateX(calc(100vw + 1200px)); } }

/* Paraglider */
.paraglider {
  position: absolute;
  top: 8%;
  left: 35%;
  width: 160px;
  animation: float 8s ease-in-out infinite, glide 30s ease-in-out infinite;
  opacity: 0.8;
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.08));
  pointer-events: none;
}

@keyframes float {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-15px) rotate(-0.5deg); }
  70% { transform: translateY(-8px) rotate(0.5deg); }
}

@keyframes glide {
  0%, 100% { left: 35%; }
  25% { left: 50%; }
  50% { left: 40%; }
  75% { left: 28%; }
}

/* Content */
.content {
  position: relative;
  z-index: 10;
  text-align: center;
  padding: 1.5rem;
  max-width: 100%;
}

/* Avatar */
.avatar {
  margin: 0 auto 1.5rem;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid rgba(255, 255, 255, 0.6);
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.2);
  /* Force clip in Firefox */
  -moz-border-radius: 50%;
  clip-path: circle(50%);
}

.avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

h1 {
  font-size: clamp(2rem, 6vw, 4rem);
  font-weight: 600;
  color: white;
  letter-spacing: -0.02em;
  text-shadow:
    0 2px 4px rgba(0, 0, 0, 0.3),
    0 4px 20px rgba(0, 0, 0, 0.2);
  margin-bottom: 0.4rem;
}

.tagline {
  font-size: clamp(1rem, 2.5vw, 1.3rem);
  font-weight: 300;
  color: rgba(255, 255, 255, 0.95);
  letter-spacing: 0.08em;
  text-transform: lowercase;
  text-shadow:
    0 1px 3px rgba(0, 0, 0, 0.3),
    0 2px 12px rgba(0, 0, 0, 0.15);
  margin-bottom: 2rem;
}

.links {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}

.link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.65rem 1.4rem;
  color: white;
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 400;
  border-radius: 50px;
  background: rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.3);
  transition: all 0.3s ease;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

.link:hover {
  background: rgba(255, 255, 255, 0.35);
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.link svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.2));
}

/* Easter egg: Cloud popping */
.cloud:not(.cloud-7) {
  pointer-events: auto;
  cursor: pointer;
}

.cloud.popped {
  opacity: 0 !important;
  filter: blur(20px) !important;
  transform: scale(1.5) !important;
  transition: all 0.4s ease-out !important;
  animation-play-state: paused !important;
}

.cloud.reforming {
  opacity: inherit;
  filter: inherit;
  transform: scale(1);
  transition: opacity 1s ease-in, filter 1s ease-in, transform 1s ease-in !important;
}

/* Easter egg: Avatar spin */
.avatar.spin {
  animation: avatar-spin 0.6s ease-in-out;
}

@keyframes avatar-spin {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.1); }
  100% { transform: rotate(360deg) scale(1); }
}

/* Easter egg: Content fly-away */
.content.fly-away {
  animation: fly-away 2s ease-in forwards;
}

.content.fly-back {
  animation: fly-back 2s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

@keyframes fly-away {
  0% { transform: translateY(0); opacity: 1; }
  100% { transform: translateY(-120vh); opacity: 0; }
}

@keyframes fly-back {
  0% { transform: translateY(-120vh); opacity: 0; }
  60% { opacity: 1; }
  100% { transform: translateY(0); opacity: 1; }
}

/* Easter egg: Paraglider cursor-follow */
.paraglider.cursor-follow {
  animation: float 8s ease-in-out infinite;
  transition: left 0.3s ease-out;
}

/* Mobile */
@media (max-width: 480px) {
  .paraglider {
    width: 110px;
    top: 4%;
  }

  .avatar {
    width: 100px;
    height: 100px;
  }

  .links {
    gap: 0.75rem;
  }

  .link {
    padding: 0.6rem 1.2rem;
    font-size: 0.9rem;
  }
}
