/* Present before the application bundle starts, including the first PWA paint. */
.fly-launch {
  position: fixed; inset: 0; z-index: 200; display: grid; place-items: center;
  min-height: 100dvh; padding: max(24px, env(safe-area-inset-top, 0px)) 24px max(24px, env(safe-area-inset-bottom, 0px));
  box-sizing: border-box; overflow: hidden; isolation: isolate;
  background: #0e0b10; color: #fff1eb;
  opacity: 1; transition: opacity 380ms ease, visibility 380ms;
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
}
.fly-launch::before {
  content: ''; position: absolute; z-index: -1; top: 50%; left: 50%; width: min(650px, 140vw); aspect-ratio: 1;
  border-radius: 50%; background: radial-gradient(ellipse, #9e275d24, #5521390d 44%, transparent 70%);
  transform: translate(-50%, -57%); animation: fly-launch-glow 3.4s ease-in-out infinite;
}
.fly-launch__content { width: 100%; max-width: 340px; text-align: center; transition: transform 380ms ease; }
.fly-launch__scene { position: relative; width: 232px; height: 202px; margin: 0 auto 17px; display: grid; place-items: center; }
.fly-launch__aura { position: absolute; width: 150px; height: 150px; border-radius: 50%; background: radial-gradient(circle, #ed36743d, transparent 70%); animation: fly-launch-breathe 2.8s ease-in-out infinite; }
.fly-launch__orbit { position: absolute; width: 206px; height: 121px; border: 1px solid #f79eae2b; border-radius: 50%; }
.fly-launch__orbit--rose { transform: rotate(-27deg); animation: fly-launch-orbit-rose 10s linear infinite; }
.fly-launch__orbit--gold { width: 210px; height: 119px; border-color: #e6bd8529; transform: rotate(27deg); animation: fly-launch-orbit-gold 12s linear infinite; }
.fly-launch__orbit::after { content: ''; position: absolute; top: 14px; right: 19px; width: 5px; height: 5px; border-radius: 50%; background: #f5a2b6; box-shadow: 0 0 11px #f5a2b68c; }
.fly-launch__orbit--gold::after { top: auto; right: auto; bottom: 12px; left: 23px; width: 4px; height: 4px; background: #e6bd85; box-shadow: 0 0 11px #e6bd858c; }
.fly-launch__logo-wrap { position: relative; width: 108px; height: 108px; border-radius: 28px; animation: fly-launch-arrive 650ms cubic-bezier(.16,1,.3,1) both; }
.fly-launch__logo { display: block; width: 100%; height: 100%; border-radius: inherit; box-shadow: 0 10px 35px #0006, 0 0 24px #f0337220; animation: fly-launch-heartbeat 2.8s ease-in-out 650ms infinite; }
.fly-launch__eyebrow { margin: 0 0 12px; color: #d8b48b; font-size: 9px; font-weight: 600; line-height: 1.5; letter-spacing: .24em; text-transform: uppercase; animation: fly-launch-type 650ms ease 130ms both; }
.fly-launch__name { margin: 0; font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(50px, 12vw, 61px); font-weight: 500; line-height: 1.05; letter-spacing: -.04em; animation: fly-launch-type 700ms ease 180ms both; }
.fly-launch__name span { color: #f5b3c1; font-style: italic; font-weight: 400; }
.fly-launch__tagline { margin: 12px 0 0; color: #bba7b9; font-size: 12px; font-weight: 400; line-height: 1.7; animation: fly-launch-type 700ms ease 250ms both; }
.fly-launch__loading { position: relative; width: 72px; height: 2px; margin: 32px auto 12px; overflow: hidden; border-radius: 2px; background: #e6bd851c; }
.fly-launch__loading::after { content: ''; display: block; width: 42px; height: 100%; border-radius: inherit; background: linear-gradient(90deg, transparent, #f5a2b6, #e6bd85, transparent); transform: translateX(-44px); animation: fly-launch-shimmer 1.8s ease-in-out infinite; }
.fly-launch__status { margin: 0; color: #a28ea2; font-size: 10px; line-height: 1.7; }
.fly-launch__retry { margin: 16px auto 0; padding: 11px 16px; min-height: 44px; border: 1px solid #e6bd8545; border-radius: 12px; background: #e6bd850b; color: #edcc9f; cursor: pointer; font: inherit; font-size: 12px; }
.fly-launch__retry:focus-visible { outline: 3px solid #f5a2b6; outline-offset: 4px; }
.fly-launch.is-leaving { opacity: 0; visibility: hidden; pointer-events: none; }
.fly-launch.is-leaving .fly-launch__content { transform: translateY(-8px) scale(1.025); }
@keyframes fly-launch-arrive { from { opacity: 0; transform: translateY(12px) scale(.84); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes fly-launch-type { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fly-launch-heartbeat { 0%, 12%, 34%, 58%, 100% { transform: scale(1); } 22% { transform: scale(1.045); } 43% { transform: scale(1.025); } }
@keyframes fly-launch-breathe { 0%, 100% { opacity: .5; transform: scale(.92); } 50% { opacity: 1; transform: scale(1.12); } }
@keyframes fly-launch-glow { 0%, 100% { opacity: .6; } 50% { opacity: 1; } }
@keyframes fly-launch-orbit-rose { from { transform: rotate(-27deg); } to { transform: rotate(333deg); } }
@keyframes fly-launch-orbit-gold { from { transform: rotate(27deg); } to { transform: rotate(-333deg); } }
@keyframes fly-launch-shimmer { from { transform: translateX(-44px); } to { transform: translateX(76px); } }
@media (max-height: 540px) { .fly-launch__scene { width: 200px; height: 145px; margin-bottom: 8px; } .fly-launch__orbit { width: 180px; height: 98px; } .fly-launch__logo-wrap { width: 84px; height: 84px; border-radius: 23px; } .fly-launch__name { font-size: 45px; } .fly-launch__loading { margin-top: 20px; } }
@media (prefers-reduced-motion: reduce) {
  .fly-launch, .fly-launch__content { transition: none; }
  .fly-launch::before, .fly-launch *, .fly-launch *::after { animation: none !important; }
  .fly-launch__loading::after { transform: translateX(15px); }
  .fly-launch.is-leaving .fly-launch__content { transform: none; }
}
