/* Dibacii Technologies — branded first-load experience */
html.has-js, html.has-js body { overflow: hidden; }
.page-loader { display: none; }
html.has-js .page-loader {
  position: fixed;
  z-index: 10000;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: var(--text, #f5f4f1);
  background: var(--bg, #111318);
  opacity: 1;
  visibility: visible;
  transition: opacity .55s cubic-bezier(.22,.7,.2,1), visibility .55s;
}
html.has-js .page-loader::before,
html.has-js .page-loader::after {
  content: "";
  position: absolute;
  width: min(68vw, 620px);
  aspect-ratio: 1;
  border: 1px solid color-mix(in srgb, var(--accent, #e40000) 19%, transparent);
  border-radius: 50%;
  pointer-events: none;
  animation: loader-orbit 4s ease-in-out infinite alternate;
}
html.has-js .page-loader::after {
  width: min(48vw, 430px);
  border-style: dashed;
  opacity: .55;
  animation-duration: 6s;
  animation-direction: alternate-reverse;
}
.page-loader-content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 28px;
  animation: loader-content-in .8s cubic-bezier(.2,.75,.25,1) both;
}
.loader-brand-mark {
  width: 58px;
  height: 58px;
  gap: 5px;
  padding: 12px;
  border-radius: 18px;
  box-shadow: 0 12px 45px color-mix(in srgb, var(--accent, #e40000) 24%, transparent);
  animation: loader-mark-float 1.7s ease-in-out infinite;
}
.loader-brand-mark span { width: 7px; transform-origin: center bottom; }
.loader-brand-mark span:nth-child(1) { animation: loader-bar 1.1s ease-in-out infinite; }
.loader-brand-mark span:nth-child(2) { animation: loader-bar 1.1s .16s ease-in-out infinite; }
.loader-brand-mark span:nth-child(3) { animation: loader-bar 1.1s .32s ease-in-out infinite; }
.loader-brand-name {
  margin-top: 23px;
  font-size: clamp(27px, 4vw, 34px);
  letter-spacing: -.075em;
}
.loader-brand-name small { margin-top: 7px; text-align: center; font-size: 9px; letter-spacing: .32em; }
.loader-tagline {
  margin-top: 25px;
  color: var(--muted, #a6a8b2);
  font: 600 10px/1.4 "DM Sans", sans-serif;
  letter-spacing: .19em;
  text-align: center;
  text-transform: uppercase;
}
.loader-progress {
  display: block;
  width: 132px;
  height: 2px;
  margin-top: 25px;
  overflow: hidden;
  border-radius: 99px;
  background: var(--line, rgba(255,255,255,.11));
}
.loader-progress > span {
  display: block;
  width: 38%;
  height: 100%;
  border-radius: inherit;
  background: var(--accent, #e40000);
  animation: loader-progress-run 1.25s cubic-bezier(.65,0,.35,1) infinite;
}
html.has-js .page-loader.is-leaving { opacity: 0; visibility: hidden; pointer-events: none; }
html.has-js.is-loaded, html.has-js.is-loaded body { overflow-x: clip; overflow-y: auto; }
@keyframes loader-bar {
  0%, 100% { transform: scaleY(.58) skew(-18deg); opacity: .75; }
  50% { transform: scaleY(1) skew(-18deg); opacity: 1; }
}
@keyframes loader-mark-float { 0%, 100% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-5px) rotate(1deg); } }
@keyframes loader-orbit { from { transform: scale(.92) rotate(-12deg); opacity: .3; } to { transform: scale(1.06) rotate(12deg); opacity: .8; } }
@keyframes loader-content-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes loader-progress-run { 0% { transform: translateX(-120%); } 100% { transform: translateX(360%); } }
/* Match the preloader's floating mark and staggered bar pulse: three runs, then a 30-second rest. */
#header .header-logo .brand-mark {
  animation: navbar-mark-cycle 35.1s ease-in-out infinite;
  transform-origin: center;
}
#header .header-logo .brand-mark span {
  transform-origin: center bottom;
}
#header .header-logo .brand-mark span:nth-child(1) {
  animation: navbar-bar-cycle 35.1s linear infinite;
}
#header .header-logo .brand-mark span:nth-child(2) {
  animation: navbar-bar-cycle 35.1s .16s linear infinite;
}
#header .header-logo .brand-mark span:nth-child(3) {
  animation: navbar-bar-cycle 35.1s .32s linear infinite;
}
@keyframes navbar-mark-cycle {
  0%, 4.8433%, 9.6866%, 14.5299%, 100% { transform: translateY(0) rotate(-5deg); }
  2.4217%, 7.2649%, 12.1083% { transform: translateY(-5px) rotate(1deg); }
}
@keyframes navbar-bar-cycle {
  /* Match the footer logo's exact resting geometry: full height, designed skew, full opacity. */
  0%, 18.8034%, 100% { transform: scaleY(1) skew(-18deg); opacity: 1; }
  /* Three pulses compress and soften the bars, then always return to the footer state. */
  1.5670%, 4.7009%, 7.8348%, 10.9687%, 14.1026%, 17.2365% { transform: scaleY(1) skew(-18deg); opacity: 1; }
  3.1339%, 6.2678%, 9.4017%, 12.5356%, 15.6695% { transform: scaleY(.58) skew(-18deg); opacity: .75; }
}
@media (prefers-reduced-motion: reduce) {
  #header .header-logo .brand-mark, #header .header-logo .brand-mark span,
  html.has-js .page-loader::before, html.has-js .page-loader::after,
  .loader-brand-mark, .loader-brand-mark span, .loader-progress > span,
  .page-loader-content { animation: none !important; }
  .loader-progress > span { width: 100%; }
  html.has-js .page-loader { transition-duration: .01ms; }
}
