.kem-launch {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  min-height: 100dvh;
  overflow: hidden;
  box-sizing: border-box;
  padding: max(24px, env(safe-area-inset-top)) 20px max(24px, env(safe-area-inset-bottom));
  color: #f6f3eb;
  background: radial-gradient(circle at 50% 42%, rgba(45,107,99,.28), transparent 38%), #1b2a28;
}
.kem-launch-center { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; }
.kem-launch-logo { position: relative; display: flex; align-items: center; justify-content: center; margin-bottom: 28px; }
.kem-launch-logo img { position: relative; z-index: 1; display: block; width: 144px; height: 144px; border-radius: 32px; box-shadow: 0 8px 32px rgba(45,107,99,.34); }
.kem-launch-ring { position: absolute; width: 160px; height: 160px; border-radius: 40px; background: #2d6b63; opacity: .35; animation: kem-launch-pulse 2.2s ease-out infinite; }
.kem-launch-ring-delayed { animation-delay: -.7s; }
.kem-launch-name { font: 700 34px/1.2 Fraunces, Georgia, serif; letter-spacing: -.8px; }
.kem-launch-tagline { margin-top: 8px; font: 400 13px/1.5 "Plus Jakarta Sans", sans-serif; color: #c5d3ce; letter-spacing: .3px; }
.kem-launch-dots { display: flex; gap: 7px; margin-top: 40px; }
.kem-launch-dots span { width: 8px; height: 8px; border-radius: 50%; background: #e8bb6c; opacity: .65; animation: kem-launch-dot 1.4s ease-in-out infinite; }
.kem-launch-dots span:nth-child(2) { background: #a8d2c7; animation-delay: .16s; }
.kem-launch-dots span:nth-child(3) { background: #d57b5b; animation-delay: .32s; }
.kem-launch-orb { position: absolute; border-radius: 50%; background: radial-gradient(circle, #2d6b63, transparent 70%); opacity: .25; animation: kem-launch-float 6s ease-in-out infinite; }
.kem-launch-orb-one { width: 180px; height: 180px; top: 8%; left: 5%; }
.kem-launch-orb-two { width: 120px; height: 120px; top: 70%; left: 80%; animation-delay: -1.2s; animation-duration: 7s; }
.kem-launch-orb-three { width: 90px; height: 90px; top: 55%; left: 10%; animation-delay: -.6s; animation-duration: 5.5s; }
.kem-launch-orb-four { width: 60px; height: 60px; top: 15%; left: 75%; animation-delay: -2s; animation-duration: 8s; }
@keyframes kem-launch-pulse { from { transform: scale(.85); opacity: .5; } 70%, to { transform: scale(1.55); opacity: 0; } }
@keyframes kem-launch-dot { 0%, 80%, 100% { opacity: .2; transform: scale(.6); } 40% { opacity: 1; transform: scale(1); } }
@keyframes kem-launch-float { 0%, 100% { transform: translateY(0); opacity: .15; } 50% { transform: translateY(-18px); opacity: .35; } }
@media (prefers-reduced-motion: reduce) {
  .kem-launch *, .kem-launch *::before { animation: none !important; }
}
