/* INÍCIO - Abertura Solodev: isolada, sem dependências externas */
.sd-page:has(> .sd-rocket-loader[open]) { overflow: hidden; }
.sd-rocket-loader {
  --sd-loader-ready: 1;
  --sd-loader-flight-time: 3000ms;
  --sd-loader-fade-time: 320ms;
  --sd-loader-rocket-width: 140px;
  --sd-loader-rocket-height: calc(var(--sd-loader-rocket-width) * 3 / 7);
  position: fixed;
  inset: 0;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 32px 24px;
  border: 0;
  overflow: auto;
  overscroll-behavior: contain;
  color: #fff;
  background:
    radial-gradient(ellipse at 18% 20%, #243b7c55, transparent 58%),
    radial-gradient(ellipse at 86% 80%, #49307940, transparent 55%),
    #020817;
  font: 400 16px/1.5 Arial, Helvetica, sans-serif;
  opacity: 1;
  transition: opacity var(--sd-loader-fade-time) ease;
}
.sd-rocket-loader[open] { display: flex; }
.sd-rocket-loader::backdrop { background: #020817; }
.sd-rocket-loader.sd-rocket-loader--finished { opacity: 0; }
.sd-rocket-loader.sd-rocket-loader--finished::backdrop { background: transparent; }
/* INÍCIO - Universo: arte inteira, com camada escura para leitura */
.sd-rocket-loader::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(100%, calc(100dvh * 1672 / 941));
  aspect-ratio: 1672 / 941;
  transform: translate(-50%, -50%);
  z-index: 0;
  pointer-events: none;
  background-image:
    radial-gradient(ellipse at 50% 48%, #0208177a, #02081740 35%, #02081708 75%),
    url("../assets/images/universo-solodev-desktop.jpg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%, contain;
  mask-image:
    linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent),
    linear-gradient(180deg, transparent, #000 10%, #000 90%, transparent);
  mask-composite: intersect;
}
@media (max-width: 900px) and (orientation: portrait) {
  .sd-rocket-loader::before {
    width: min(100%, calc(100dvh * 941 / 1672));
    aspect-ratio: 941 / 1672;
    background-image:
      radial-gradient(ellipse at 50% 48%, #02081780, #02081740 38%, #02081708 80%),
      url("../assets/images/universo-solodev-mobile.jpg");
  }
}
/* FIM - Universo */
.sd-rocket-loader .sd-loader-content {
  position: relative;
  z-index: 2;
  width: min(740px, 100%);
  margin: auto;
  flex-shrink: 0;
  text-align: center;
}
.sd-rocket-loader .sd-loader-brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 64px;
  padding: 4px 20px;
  margin-bottom: 28px;
  border: 0;
  background: transparent;
  color: #fff;
}
/* Logo claro sobre fundo escuro, com a transparência original preservada. */
.sd-rocket-loader .sd-loader-logo { display: block; width: 180px; height: auto; max-width: 100%; filter: brightness(0) invert(1); }
.sd-rocket-loader .sd-loader-logo-fallback { display: none; font-size: 20px; font-weight: 700; }
.sd-rocket-loader .sd-loader-brand--fallback .sd-loader-logo { display: none; }
.sd-rocket-loader .sd-loader-brand--fallback .sd-loader-logo-fallback { display: block; }
.sd-rocket-loader .sd-loader-title { margin: 0; font-size: clamp(24px, 3.2vw, 34px); line-height: 1.2; letter-spacing: -.035em; }
.sd-rocket-loader .sd-loader-title:focus { outline: none; }
.sd-rocket-loader .sd-loader-subtitle { margin: 16px 0 32px; font-size: 15px; color: #c1cee3; }

/* INÍCIO - Céu estrelado e estrelas cadentes atrás do conteúdo */
.sd-rocket-loader .sd-loader-stars {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  contain: paint;
  pointer-events: none;
}
.sd-rocket-loader .sd-loader-stars::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .35;
  background:
    radial-gradient(1px 1px at 9% 17%, #d5eaff 95%, transparent),
    radial-gradient(1px 1px at 22% 38%, #8db5ee 95%, transparent),
    radial-gradient(1.5px 1.5px at 34% 9%, #c7dfff 95%, transparent),
    radial-gradient(1px 1px at 51% 14%, #d5eaff 95%, transparent),
    radial-gradient(1px 1px at 76% 23%, #8db5ee 95%, transparent),
    radial-gradient(1.5px 1.5px at 92% 12%, #c7dfff 95%, transparent),
    radial-gradient(1px 1px at 6% 64%, #d5eaff 95%, transparent),
    radial-gradient(1.5px 1.5px at 17% 85%, #8db5ee 95%, transparent),
    radial-gradient(1px 1px at 39% 76%, #c7dfff 95%, transparent),
    radial-gradient(1px 1px at 64% 88%, #d5eaff 95%, transparent),
    radial-gradient(1.5px 1.5px at 84% 72%, #8db5ee 95%, transparent),
    radial-gradient(1px 1px at 96% 48%, #c7dfff 95%, transparent);
}
.sd-rocket-loader .sd-loader-meteor {
  --sd-star-x: 35%;
  --sd-star-y: -12%;
  --sd-star-delay: 0s;
  --sd-star-duration: 2.6s;
  --sd-star-tail: 90px;
  position: absolute;
  left: var(--sd-star-x);
  top: var(--sd-star-y);
  width: 2px;
  height: 2px;
  opacity: 0;
  animation: sd-loader-meteor-fall var(--sd-star-duration) var(--sd-star-delay) linear 1 both;
}
.sd-rocket-loader .sd-loader-meteor::before {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: var(--sd-star-tail);
  height: 1px;
  max-width: 100px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, #689fff38 40%, #9dd4ffb3 85%, #f3faff);
  transform: rotate(120deg);
  transform-origin: right center;
}
.sd-rocket-loader .sd-loader-meteor::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: #e8f6ff;
  box-shadow: 0 0 4px 1px #91c9ff33;
}
.sd-rocket-loader .sd-loader-meteor:nth-child(2) { --sd-star-x: 72%; --sd-star-y: -8%; --sd-star-delay: .25s; --sd-star-duration: 2.2s; --sd-star-tail: 110px; }
.sd-rocket-loader .sd-loader-meteor:nth-child(3) { --sd-star-x: 108%; --sd-star-y: 2%; --sd-star-delay: .6s; --sd-star-duration: 2.8s; --sd-star-tail: 170px; }
.sd-rocket-loader .sd-loader-meteor:nth-child(4) { --sd-star-x: 54%; --sd-star-y: -18%; --sd-star-delay: .9s; --sd-star-duration: 2.5s; }
.sd-rocket-loader .sd-loader-meteor:nth-child(5) { --sd-star-x: 98%; --sd-star-y: -5%; --sd-star-delay: 1.1s; --sd-star-duration: 2.4s; --sd-star-tail: 150px; }
.sd-rocket-loader .sd-loader-meteor:nth-child(6) { --sd-star-x: 20%; --sd-star-y: -8%; --sd-star-delay: .8s; --sd-star-duration: 2s; --sd-star-tail: 100px; }
.sd-rocket-loader .sd-loader-meteor:nth-child(7) { --sd-star-x: 87%; --sd-star-y: -15%; --sd-star-delay: 1.4s; --sd-star-duration: 2.1s; --sd-star-tail: 120px; }
.sd-rocket-loader .sd-loader-meteor:nth-child(8) { --sd-star-x: 115%; --sd-star-y: 8%; --sd-star-delay: 1.5s; --sd-star-duration: 2s; --sd-star-tail: 100px; }
@keyframes sd-loader-meteor-fall {
  0% { opacity: 0; transform: translate3d(0, 0, 0); }
  12% { opacity: .4; }
  65% { opacity: .25; }
  100% { opacity: 0; transform: translate3d(-65vh, 112.6vh, 0); }
}
/* FIM - Céu estrelado e estrelas cadentes */

/* INÍCIO - Curva ascendente: traçado estático e voo somente por transform */
.sd-rocket-loader .sd-flight-area { display: flex; align-items: flex-start; gap: 20px; width: min(760px, 100%); margin: auto; }
.sd-rocket-loader .sd-flight-track { position: relative; flex: 1; min-width: 0; height: 224px; }
.sd-rocket-loader .sd-flight-line {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: .2;
  animation: sd-loader-line var(--sd-loader-flight-time) .1s ease forwards;
}
.sd-rocket-loader .sd-rocket-travel {
  position: absolute;
  left: 0;
  top: 0;
  width: var(--sd-loader-rocket-width);
  height: var(--sd-loader-rocket-height);
  transform-origin: center;
}
.sd-rocket-loader .sd-rocket {
  display: block;
  width: var(--sd-loader-rocket-width);
  max-width: none;
  height: var(--sd-loader-rocket-height);
}
/* A inclinação acompanha a curva; a propulsão mantém variação sutil. */
.sd-rocket-loader .sd-rocket-brand { opacity: .85; }
.sd-rocket-loader .sd-rocket-brand__fallback { display: none; fill: #254366; font: 600 12px Arial, Helvetica, sans-serif; letter-spacing: .5px; }
.sd-rocket-loader .sd-rocket-brand--fallback .sd-rocket-brand__image { display: none; }
.sd-rocket-loader .sd-rocket-brand--fallback .sd-rocket-brand__fallback { display: block; }
.sd-rocket-loader .sd-exhaust { transform-origin:129px 90px; transform:scale(.7,.75); animation: sd-loader-engine var(--sd-loader-flight-time) .1s linear both; }
.sd-rocket-loader .sd-flame {
  transform-box: fill-box;
  transform-origin: right center;
  animation: sd-loader-flame .32s ease-in-out 10 alternate;
}
.sd-rocket-loader .sd-flame--inner { animation-duration: .26s; animation-delay: -.09s; animation-iteration-count: 13; }
.sd-rocket-loader .sd-flame--core { animation-duration: .22s; animation-delay: -.04s; animation-iteration-count: 15; }
.sd-rocket-loader .sd-engine-glow { transform-box: fill-box; transform-origin: center; animation: sd-loader-heat .7s ease-in-out 5 alternate; }
.sd-rocket-loader .sd-destination {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding-top: 56px;
  opacity: .55;
  transition: opacity .4s ease;
}
.sd-rocket-loader .sd-destination.sd-arrived { opacity: 1; }
.sd-rocket-loader .sd-target-icon { display: grid; place-items: center; box-sizing: border-box; width: 40px; height: 40px; flex-shrink: 0; border: 1px solid #93b2dc50; border-radius: 50%; background: #2563eb0a; color: #b4c9e5; font-size: 22px; }
.sd-rocket-loader .sd-target-text { text-align: left; }
.sd-rocket-loader .sd-target-text strong { display: block; font-size: 17px; }
.sd-rocket-loader .sd-target-text span { display: block; margin-top: 4px; color: #8dc2ff; font-size: 14px; }
.sd-rocket-loader .sd-loader-steps { display: flex; justify-content: space-between; gap: 16px; max-width: 660px; margin: 24px auto 0; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: #becbe0; }
/* FIM - Curva ascendente */

/* INÍCIO - Saída acessível */
.sd-rocket-loader .sd-loader-status { margin: 32px 0 8px; color: #c1cee3; font-size: 12px; }
.sd-rocket-loader .sd-loader-skip { min-height: 44px; padding: 8px 16px; border: 1px solid #ffffff40; border-radius: 999px; font: inherit; font-size: 13px; color: #fff; background: #ffffff0a; cursor: pointer; transition: transform .2s ease; }
.sd-rocket-loader .sd-loader-skip:focus-visible { outline: 2px solid #8dc2ff; outline-offset: 4px; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .sd-rocket-loader .sd-loader-skip:hover { transform: translateY(-2px); }
}
/* FIM - Saída acessível */

/* INÍCIO - Animações finitas */
@keyframes sd-loader-line { to { opacity: .5; } }
@keyframes sd-loader-flame {
  from { transform: scale(.97, .96); opacity: .86; }
  to { transform: scale(1, 1.02); opacity: .96; }
}
@keyframes sd-loader-engine {
  0% { opacity: 0; }
  12%, 85% { opacity: .65; }
  100% { opacity: 0; }
}
@keyframes sd-loader-heat {
  from { opacity: .18; transform: scale(.98); }
  to { opacity: .28; transform: scale(1.02); }
}
/* FIM - Animações finitas */

/* INÍCIO - Celular, telas baixas e movimento reduzido */
@media (max-width: 600px) {
  .sd-rocket-loader { --sd-loader-rocket-width: clamp(80px, 24vw, 94px); padding: 24px 20px; }
  .sd-rocket-loader .sd-loader-meteor::before { max-width: 95px; }
  .sd-rocket-loader .sd-loader-meteor:nth-child(n+6) { display: none; }
  .sd-rocket-loader .sd-loader-brand { margin-bottom: 24px; padding-inline: 16px; }
  .sd-rocket-loader .sd-loader-logo { width: 156px; }
  .sd-rocket-loader .sd-loader-subtitle { font-size: 14px; margin-bottom: 18px; }
  .sd-rocket-loader .sd-flight-area { gap: 12px; }
  .sd-rocket-loader .sd-destination { width: 100px; min-height: 0; flex-direction: column; gap: 8px; padding-top: 56px; }
  .sd-rocket-loader .sd-target-icon { width: 38px; height: 38px; font-size: 21px; }
  .sd-rocket-loader .sd-target-text { text-align: center; }
  .sd-rocket-loader .sd-target-text strong { font-size: 14px; }
  .sd-rocket-loader .sd-target-text span { font-size: 12px; }
  .sd-rocket-loader .sd-loader-steps { gap: 8px; font-size: 10px; letter-spacing: .02em; }
  .sd-rocket-loader .sd-loader-steps span { flex: 1; }
  .sd-rocket-loader .sd-loader-status { margin-top: 24px; }
}
@media (max-height: 540px) and (min-width: 601px) {
  .sd-rocket-loader { padding-block: 20px; }
  .sd-rocket-loader .sd-loader-brand { margin-bottom: 12px; min-height: 48px; }
  .sd-rocket-loader .sd-loader-logo { width: 160px; }
  .sd-rocket-loader .sd-loader-title { font-size: 28px; }
  .sd-rocket-loader .sd-loader-subtitle { margin-block: 10px; }
  .sd-rocket-loader .sd-loader-steps { margin-top: 8px; }
  .sd-rocket-loader .sd-loader-status { margin-top: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .sd-rocket-loader,
  .sd-rocket-loader .sd-destination,
  .sd-rocket-loader .sd-loader-skip { transition: none; }
  .sd-rocket-loader .sd-rocket-travel,
  .sd-rocket-loader .sd-rocket,
  .sd-rocket-loader .sd-exhaust,
  .sd-rocket-loader .sd-flame,
  .sd-rocket-loader .sd-engine-glow,
  .sd-rocket-loader .sd-loader-meteor,
  .sd-rocket-loader .sd-flight-line { animation: none; }
  .sd-rocket-loader .sd-exhaust,
  .sd-rocket-loader .sd-loader-stars { display: none; }
}
/* FIM - Celular, telas baixas e movimento reduzido */
/* FIM - Abertura Solodev */
