/* The logo is the only focal object while the space scene is being prepared. */
.landing-loader{display:none;position:fixed;inset:0;z-index:1000;place-items:center;background:#050606;opacity:1;transition:opacity .4s ease;isolation:isolate}
.landing-loading .landing-loader,.landing-leaving .landing-loader{display:grid}
.landing-loading{overflow:hidden}
.landing-leaving .landing-loader{opacity:0;pointer-events:none}
.loader-emblem{position:relative;width:min(210px,48vw);z-index:1;animation:logo-breathe 2.4s ease-in-out infinite}
.loader-emblem svg{display:block;width:100%;height:auto;stroke:none}
.loader-orbit{position:absolute;width:min(380px,80vw);aspect-ratio:1;border:1px solid #f8825026;border-radius:50%;transform:rotateX(62deg) rotate(-24deg);animation:orbit-drift 5s linear infinite}
.loader-orbit::before{content:"";position:absolute;inset:14px;border:1px solid #ffffff0d;border-radius:50%}
.loader-orbit::after{content:"";position:absolute;top:50%;left:-3px;width:5px;height:5px;border-radius:50%;background:#f88250;box-shadow:0 0 14px 3px #f8825070}
.landing-loader::before{content:"";position:absolute;width:min(520px,95vw);aspect-ratio:1;background:radial-gradient(ellipse,#f882500c,transparent 65%);pointer-events:none}
.loader-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.landing-hidden .loader-emblem,.landing-hidden .loader-orbit{animation-play-state:paused}
@keyframes logo-breathe{0%,100%{opacity:.75;transform:scale(.99)}50%{opacity:1;transform:scale(1)}}
@keyframes orbit-drift{from{transform:rotateX(62deg) rotate(-24deg)}to{transform:rotateX(62deg) rotate(336deg)}}
/* A decoded-photo fallback is visible even if the 3D module cannot start. */
.hero{background-image:url('/assets/nebula.webp');background-position:center;background-size:cover}
#space{opacity:0}
.sky-painted #space{opacity:1}
.landing-loading #phone-stage{opacity:0}
.notice:not([hidden]){animation:notice-arrival .25s cubic-bezier(.16,1,.3,1)}
@keyframes notice-arrival{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){
  .loader-emblem,.loader-orbit,.notice:not([hidden]){animation:none}
  .landing-loader{transition-duration:.12s}
}
