/* ULIXES V2.5.6 shared multi-page transition layer */
/* Deliberately use one custom transition system. Native cross-document View
   Transitions are not enabled because combining both systems caused double
   animation and destination-page flashes. */
html { background: #05070A; }
html.ulx-route-arrival-pending body > :not(.ulx-route-transition),
html.ulx-i18n-pending body > :not(.ulx-route-transition) { visibility: hidden !important; }

html.ulx-transition-lock,
html.ulx-transition-lock body { overflow: hidden !important; }

.ulx-route-transition {
  --ulx-route-accent: #00A3FF;
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: grid;
  place-items: center;
  visibility: hidden;
  pointer-events: none;
  color: #fff;
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  isolation: isolate;
}
.ulx-route-transition.is-leaving,
.ulx-route-transition.is-entering { visibility: visible; pointer-events: auto; }
.ulx-route-transition__panels { position: absolute; inset: -2px; display: grid; grid-template-columns: repeat(6, 1fr); overflow: hidden; }
.ulx-route-transition__panel {
  position: relative;
  background:
    linear-gradient(180deg, rgba(255,255,255,.035), transparent 36%),
    linear-gradient(135deg, #05070A 0%, #07101B 58%, #05070A 100%);
  border-right: 1px solid rgba(0,163,255,.12);
  transform: translateY(104%);
  transition: transform .66s cubic-bezier(.76,0,.24,1);
}
.ulx-route-transition__panel:nth-child(odd) { transform: translateY(-104%); }
.ulx-route-transition__panel::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 20%, rgba(0,163,255,.12) 48%, transparent 76%);
  transform: translateX(-120%);
}
.ulx-route-transition.is-leaving .ulx-route-transition__panel { transform: translateY(0); }
.ulx-route-transition.is-leaving .ulx-route-transition__panel:nth-child(1) { transition-delay: 0ms; }
.ulx-route-transition.is-leaving .ulx-route-transition__panel:nth-child(2) { transition-delay: 55ms; }
.ulx-route-transition.is-leaving .ulx-route-transition__panel:nth-child(3) { transition-delay: 110ms; }
.ulx-route-transition.is-leaving .ulx-route-transition__panel:nth-child(4) { transition-delay: 165ms; }
.ulx-route-transition.is-leaving .ulx-route-transition__panel:nth-child(5) { transition-delay: 220ms; }
.ulx-route-transition.is-leaving .ulx-route-transition__panel:nth-child(6) { transition-delay: 275ms; }
.ulx-route-transition.is-leaving .ulx-route-transition__panel::after { animation: ulx-route-sheen .8s .28s ease-out both; }
.ulx-route-transition.is-entering .ulx-route-transition__panel { transform: translateY(0); transition: none; }
.ulx-route-transition.is-entering.is-revealing .ulx-route-transition__panel { transform: translateY(-104%); transition: transform .72s cubic-bezier(.76,0,.24,1); }
.ulx-route-transition.is-entering.is-revealing .ulx-route-transition__panel:nth-child(even) { transform: translateY(104%); }
.ulx-route-transition.is-entering.is-revealing .ulx-route-transition__panel:nth-child(1) { transition-delay: 250ms; }
.ulx-route-transition.is-entering.is-revealing .ulx-route-transition__panel:nth-child(2) { transition-delay: 200ms; }
.ulx-route-transition.is-entering.is-revealing .ulx-route-transition__panel:nth-child(3) { transition-delay: 150ms; }
.ulx-route-transition.is-entering.is-revealing .ulx-route-transition__panel:nth-child(4) { transition-delay: 100ms; }
.ulx-route-transition.is-entering.is-revealing .ulx-route-transition__panel:nth-child(5) { transition-delay: 50ms; }
.ulx-route-transition.is-entering.is-revealing .ulx-route-transition__panel:nth-child(6) { transition-delay: 0ms; }
@keyframes ulx-route-sheen { to { transform: translateX(120%); } }

.ulx-route-transition__content {
  position: relative;
  z-index: 3;
  width: min(620px, calc(100vw - 40px));
  padding: 30px 34px 26px;
  opacity: 0;
  transform: translateY(18px) scale(.985);
  border: 1px solid rgba(0,163,255,.34);
  background: rgba(5,9,14,.74);
  box-shadow: 0 28px 100px rgba(0,0,0,.55), inset 0 0 70px rgba(0,163,255,.035);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 18px, 100% 100%, 18px 100%, 0 calc(100% - 18px));
  transition: opacity .3s .38s ease, transform .55s .34s cubic-bezier(.16,1,.3,1);
}
.ulx-route-transition.is-leaving .ulx-route-transition__content,
.ulx-route-transition.is-entering .ulx-route-transition__content { opacity: 1; transform: translateY(0) scale(1); }
.ulx-route-transition.is-entering.is-revealing .ulx-route-transition__content { opacity: 0; transform: translateY(-10px) scale(.99); transition-delay: .15s; }
.ulx-route-transition__eyebrow { display: flex; align-items: center; gap: 10px; color: #82D8FF; font: 700 .66rem/1.2 "IBM Plex Mono", Consolas, monospace; letter-spacing: .15em; text-transform: uppercase; }
.ulx-route-transition__dot { width: 7px; height: 7px; border-radius: 50%; background: #FF2D2D; box-shadow: 0 0 0 5px rgba(255,45,45,.09); }
.ulx-route-transition__content strong { display: block; margin-top: 14px; font-size: clamp(1.45rem, 4vw, 2.25rem); line-height: 1.05; letter-spacing: -.035em; }
.ulx-route-transition__track { position: relative; height: 2px; margin-top: 24px; overflow: hidden; background: rgba(255,255,255,.11); }
.ulx-route-transition__track::after { content: ""; position: absolute; inset: 0; transform: scaleX(0); transform-origin: left; background: linear-gradient(90deg, #00A3FF, #B8ECFF 68%, #FF2D2D); box-shadow: 0 0 18px rgba(0,163,255,.65); }
.ulx-route-transition.is-leaving .ulx-route-transition__track::after { animation: ulx-route-progress .58s .42s cubic-bezier(.22,1,.36,1) forwards; }
.ulx-route-transition.is-entering .ulx-route-transition__track::after { transform: scaleX(1); }
@keyframes ulx-route-progress { to { transform: scaleX(1); } }
.ulx-route-transition__meta { display: flex; justify-content: space-between; gap: 20px; margin-top: 13px; color: #77899D; font: 600 .62rem/1.4 "IBM Plex Mono", Consolas, monospace; letter-spacing: .11em; text-transform: uppercase; }

[data-ulx-route].is-routing { pointer-events: none; }
[data-ulx-route].is-routing [data-route-state] { color: #B8ECFF !important; }

@media (max-width: 720px) {
  .ulx-route-transition__panels { grid-template-columns: repeat(4, 1fr); }
  .ulx-route-transition__panel:nth-child(n+5) { display: none; }
  .ulx-route-transition__content { padding: 24px 22px 21px; }
}
@media (prefers-reduced-motion: reduce) {
  .ulx-route-transition__panel,
  .ulx-route-transition__content { transition-duration: .12s !important; transition-delay: 0s !important; animation: none !important; }
  .ulx-route-transition__track::after { animation: none !important; transform: scaleX(1); }
}
