/* SpaceIF 0.7.2 | home-only, decorative progressive enhancement.
   No font/viewport scaling, full-scene movement, video, or external dependencies. */
.sp-motion-plane {
  display: none; position: absolute; left: 0; top: 0; width: 1448px; height: 546px;
  pointer-events: none; transform-origin: 0 0; isolation: isolate;
}
.sp-motion-plane.is-ready { display: block; }
.sp-trail-art { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .25; }
.sp-rocket-drift {
  position: absolute; left: 843px; top: 33px; width: 182px; height: 171px;
  background-size: 1448px 546px; background-position: -843px -33px; background-repeat: no-repeat;
  transform-origin: 82px 117px;
  /* Opaque center covers BOTH positions of the same rocket; only the sky edge feathers.
     The complete approved image remains as the failure/reduced-motion fallback. */
  -webkit-mask-image: radial-gradient(ellipse closest-side, #000 80%, transparent 100%);
  mask-image: radial-gradient(ellipse closest-side, #000 80%, transparent 100%);
}
.sp-trail-spark {
  position: absolute; left: 0; top: 0; width: 80px; height: 18px;
  margin-left: -40px; margin-top: -9px; border-radius: 50%; opacity: 0;
  background: radial-gradient(ellipse, #fff5d2 0%, #ffce8ba8 18%, #ff926845 42%, transparent 72%);
}
.sp-engine-glow {
  position: absolute; left: 875px; top: 123px; width: 80px; height: 64px;
  border-radius: 50%; opacity: 0;
  background: radial-gradient(ellipse, #fff0bd88 0%, #ffbf6552 24%, #ff82351a 45%, transparent 70%);
}
.sp-home .sp-stars { opacity: 1; }
/* Reserve a real strip for the 44px control: never cover a theme, CTA or metadata. */
.sp-home .sp-hero-inner { padding-bottom: 4rem; }
.sp-home .sp-motion {
  position: absolute; bottom: .5rem;
  right: max(var(--gutter), calc((100% - var(--narrow)) / 2));
  width: auto; height: auto; min-width: 44px; min-height: 44px;
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .625rem .875rem; border-radius: 999px;
  background: #1a0d29e8; border: 1px solid #b38bb580;
  color: #eadbed; opacity: .94; font-size: .75rem; line-height: 1.2;
  white-space: normal; max-width: calc(100% - var(--gutter) - var(--gutter));
  box-shadow: 0 2px 12px #10081b33;
}
.sp-home .sp-motion .sp-icon { width: 16px; height: 16px; }
.sp-home .sp-motion > span { display: inline-flex; }
.sp-home .sp-motion:hover, .sp-home .sp-motion:focus-visible { opacity: 1; border-color: #f5b2cb; }
.sp-home .sp-motion:disabled { cursor: default; opacity: .86; }
.sp-home .sp-button:not(.sp-button-outline) { position: relative; overflow: hidden; isolation: isolate; }
.sp-home .sp-button:not(.sp-button-outline)::before {
  content: ""; position: absolute; inset: -30% auto -30% -65%; width: 45%;
  background: linear-gradient(110deg, transparent, #fff5 50%, transparent);
  transform: skewX(-15deg) translateX(0); pointer-events: none; opacity: 0;
}
.sp-home .sp-button > .sp-icon { transition: transform .25s ease; }
.sp-home .sp-nav > a:not(.sp-button)::after { transform-origin: left center; transition-duration: .28s; }
@keyframes sp-button-sheen { 0% { opacity: 0; transform: skewX(-15deg) translateX(0); } 20% { opacity: .75; } 100% { opacity: 0; transform: skewX(-15deg) translateX(460%); } }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .sp-home:not(.sp-effects-paused) .sp-button:not(.sp-button-outline):hover::before,
  .sp-home:not(.sp-effects-paused) .sp-button:not(.sp-button-outline):focus-visible::before { animation: sp-button-sheen .7s ease-out; }
  .sp-home:not(.sp-effects-paused) .sp-button:not(.sp-button-outline):hover > .sp-icon,
  .sp-home:not(.sp-effects-paused) .sp-button:not(.sp-button-outline):focus-visible > .sp-icon { transform: translateX(3px); }
  .sp-home:not(.sp-effects-paused) .sp-feature-card:focus-visible { transform: translateY(-3px); border-color: #eeacbc; }
  .sp-home:not(.sp-effects-paused) .sp-feature-card:focus-visible > img { transform: scale(1.035); }
}
/* Touch is not hover: avoid sticky lift/zoom after tapping on iOS and Android. */
@media (hover: none), (pointer: coarse) {
  .sp-home .sp-button:hover, .sp-home .sp-feature-card:hover,
  .sp-home .sp-feature-card:hover > img { transform: none; }
}
@media (max-width: 680px) {
  .sp-home .sp-rocket-drift { display: none; }
  .sp-home .sp-motion { font-size: .75rem; }
}
/* A deliberately paused page must not resume interaction or entrance animations. */
.sp-home.sp-effects-paused .sp-button,
.sp-home.sp-effects-paused .sp-button > .sp-icon,
.sp-home.sp-effects-paused .sp-feature-card,
.sp-home.sp-effects-paused .sp-feature-card > img,
.sp-home.sp-effects-paused .sp-nav > a::after { transition: none !important; }
.sp-home.sp-effects-paused .sp-button:hover,
.sp-home.sp-effects-paused .sp-button > .sp-icon,
.sp-home.sp-effects-paused .sp-feature-card:hover,
.sp-home.sp-effects-paused .sp-feature-card:focus-visible,
.sp-home.sp-effects-paused .sp-feature-card > img { transform: none !important; }
.sp-home.sp-effects-paused .sp-button::before { animation: none !important; }
@media (prefers-reduced-motion: reduce) {
  .sp-home .sp-motion-plane, .sp-home .sp-stars { display: none !important; }
  .sp-home .sp-button::before { display: none; }
  .sp-home .sp-button > .sp-icon, .sp-home .sp-feature-card > img { transform: none !important; }
}
@media print {
  .sp-motion-plane, .sp-home .sp-stars, .sp-home .sp-motion { display: none !important; }
  .sp-home .sp-hero-inner { padding-bottom: 1.75rem; }
}
