/* The boot veil lives outside app-root so hydration cannot replace it mid-reveal. */
#falak-loading { position: fixed; inset: 0; z-index: 100000; color: #f2f0ec; pointer-events: auto; isolation: isolate; }
.falak-loading-panel { position: absolute; inset-inline: 0; height: 50%; overflow: hidden; background: #0b0b0d; will-change: transform; transition: transform 1s cubic-bezier(.76,0,.24,1); }
.falak-loading-panel--top { top: 0; }
.falak-loading-panel--bottom { bottom: 0; }
.falak-loading-face { position: absolute; width: 100%; height: 100vh; height: 100dvh; left: 0; }
.falak-loading-panel--top .falak-loading-face { top: 0; }
.falak-loading-panel--bottom .falak-loading-face { bottom: 0; }
.falak-loading-mark { position: absolute; width: clamp(200px, 23vw, 300px); height: auto; left: 50%; top: 50%; transform: translate(-50%, -53.4375%); overflow: visible; }
/* Stroke paths follow the supplied horizon mark; the two clipped copies draw in sync. */
.falak-line { stroke: #f2f0ec; stroke-width: 4.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 1; animation: falak-draw .7s cubic-bezier(.4,0,.2,1) both; }
.falak-line--horizon { stroke-width: 3; animation-duration: .65s; }
.falak-line--outer { animation-delay: .12s; }
.falak-line--upper { animation-delay: .3s; }
.falak-line--lower { animation-delay: .44s; }
@keyframes falak-draw { to { stroke-dashoffset: 0; } }
.falak-loading-name { position: absolute; top: calc(50% + 62px); width: 100%; text-align: center; font: 400 20px/1.2 'Aquire', sans-serif; letter-spacing: .18em; }
.falak-loading-name small { display: block; margin-top: 11px; font: 400 9px/1.5 Arial, sans-serif; letter-spacing: .38em; color: #96959e; }
.falak-loading-status { position: absolute; top: calc(50% + 148px); left: 50%; width: min(200px, calc(100vw - 80px)); transform: translateX(-50%); transition: opacity .2s, transform .4s; }
.falak-loading-readout { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 10px; color: #96959e; font: 400 11px/1.5 Arial, sans-serif; }
.falak-loading-label { letter-spacing: .04em; }
.falak-loading-count { color: #f2f0ec; font-variant-numeric: tabular-nums; letter-spacing: .08em; }
.falak-loading-track { height: 3px; overflow: hidden; border-radius: 2px; background: #242329; box-shadow: inset 0 1px 1px #0006; }
.falak-loading-track i { display: block; height: 100%; width: 100%; background: linear-gradient(90deg, #9683ae, #d8c4f3); transform: scaleX(var(--loading-progress, 0)); transform-origin: left; transition: transform .35s cubic-bezier(.2,.65,.3,1); border-radius: inherit; }
@media (max-height: 520px) {
  .falak-loading-name { top: calc(50% + 48px); }
  .falak-loading-status { top: calc(50% + 116px); }
}
.falak-orbit { stroke: #c1a0eb; stroke-width: .6; opacity: .16; }
.falak-orbit--light { opacity: .7; stroke-width: 1; stroke-dasharray: .12 .88; animation: falak-orbit 2.2s linear infinite; }
.falak-photon { stroke: #c1a0eb; stroke-width: 2; stroke-linecap: round; stroke-dasharray: .09 .91; stroke-dashoffset: 1; opacity: 0; animation: falak-photon 2s ease-in-out 1.05s infinite; }
.falak-loading-mark { transition: filter .3s; }
#falak-loading.is-ready .falak-loading-mark { filter: drop-shadow(0 0 7px #c1a0eb40); }
#falak-loading.is-ready .falak-loading-label { color: #f2f0ec; }
@keyframes falak-orbit { to { stroke-dashoffset: -1; } }
@keyframes falak-photon { 0% { stroke-dashoffset: 1; opacity: 0; } 25%, 65% { opacity: .9; } 100% { stroke-dashoffset: 0; opacity: 0; } }
#falak-loading.is-opening .falak-loading-panel--top { transform: translateY(-100%); }
#falak-loading.is-opening .falak-loading-panel--bottom { transform: translateY(100%); }
#falak-loading.is-opening .falak-loading-status { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
  .falak-loading-panel { transition: opacity .15s; }
  .falak-loading-track i { transition: none; }
  .falak-orbit--light, .falak-photon { animation: none; display: none; }
  .falak-loading-mark { transition: none; }
  .falak-line { animation: none; stroke-dashoffset: 0; }
  #falak-loading.is-opening .falak-loading-panel { transform: none; opacity: 0; }
}
