/* Keep the car as the visual focus while preserving a readable desktop hero. */
.panel,
.service-list article {
  container-type: inline-size;
}

.panel h1,
.panel h2,
.panel h3 {
  max-width: 100%;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.panel h2 {
  font-size: clamp(1.8rem, 5.2cqi, 3.35rem);
  line-height: 1.02;
}

.panel h3 {
  font-size: clamp(1.05rem, 5cqi, 1.35rem);
  line-height: 1.15;
}

#contact {
  text-align: left;
}

#contact .eyebrow {
  align-self: flex-start;
}

#contact h2,
#contact p:not(.eyebrow),
#contact .cta-group {
  margin-left: 0;
  margin-right: 0;
}

#contact h2 {
  max-width: 100%;
}

#contact .cta-group {
  justify-content: flex-start;
}

#contact .contact-details {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

/* Full-screen branded 3D preloader. */
.loader {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  width: 100%;
  padding: 2rem;
  border: 0;
  border-radius: 0;
  background:
    radial-gradient(circle at 50% 44%, rgba(25, 185, 255, .14), transparent 18rem),
    radial-gradient(circle at 50% 54%, rgba(232, 75, 197, .1), transparent 22rem),
    #020419;
  color: #fff;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transform: none;
  transition: opacity .65s ease, visibility 0s linear .65s;
}

.loader.is-hidden {
  visibility: hidden;
  opacity: 0;
  transform: none;
  pointer-events: none;
}

.preloader-mark {
  position: relative;
  display: grid;
  place-items: center;
  width: clamp(9rem, 18vw, 13rem);
  aspect-ratio: 1;
}

.preloader-mark::before {
  content: "";
  position: absolute;
  inset: 22%;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(25, 185, 255, .32), rgba(232, 75, 197, .25));
  filter: blur(1.5rem);
  animation: zilo-preloader-glow 1.8s ease-in-out infinite;
}

.preloader-mark img {
  position: relative;
  z-index: 2;
  display: block;
  width: 58%;
  height: 58%;
  object-fit: contain;
  filter: drop-shadow(0 0 1.2rem rgba(25, 185, 255, .28));
  animation: zilo-preloader-logo 1.8s ease-in-out infinite;
}

.preloader-orbit {
  position: absolute;
  inset: 1%;
  border: 2px solid transparent;
  border-top-color: #19b9ff;
  border-right-color: rgba(25, 185, 255, .18);
  border-radius: 50%;
  animation: zilo-preloader-spin 1.4s linear infinite;
}

.preloader-orbit-secondary {
  inset: 8%;
  border-top-color: #e84bc5;
  border-right-color: rgba(232, 75, 197, .16);
  animation-direction: reverse;
  animation-duration: 2s;
}

.preloader-status {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .7rem;
  font-size: .82rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.preloader-status span {
  color: rgba(255, 255, 255, .68);
}

.preloader-status strong {
  min-width: 2.8rem;
  color: #fff;
  font-variant-numeric: tabular-nums;
}

.preloader-track {
  position: relative;
  overflow: hidden;
  width: min(15rem, 66vw);
  height: 3px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .1);
}

.preloader-track i {
  position: absolute;
  inset: 0;
  width: 45%;
  border-radius: inherit;
  background: linear-gradient(90deg, transparent, #19b9ff, #e84bc5, transparent);
  animation: zilo-preloader-progress 1.25s ease-in-out infinite;
}

@keyframes zilo-preloader-spin {
  to { transform: rotate(360deg); }
}

@keyframes zilo-preloader-logo {
  0%, 100% { transform: scale(.96); opacity: .82; }
  50% { transform: scale(1.04); opacity: 1; }
}

@keyframes zilo-preloader-glow {
  0%, 100% { opacity: .5; transform: scale(.9); }
  50% { opacity: 1; transform: scale(1.15); }
}

@keyframes zilo-preloader-progress {
  from { transform: translateX(-130%); }
  to { transform: translateX(320%); }
}

@media (min-width: 761px) {
  .panel,
  .panel.compact,
  .hero-panel,
  .split-panel,
  .services-panel,
  .proof-panel,
  .performance-panel,
  .process-panel,
  .tag-panel,
  .cta-panel {
    width: min(42rem, 46vw);
    max-width: min(42rem, 46vw);
    padding: clamp(2rem, 3vw, 2.8rem) clamp(1.5rem, 3vw, 2.8rem);
  }

  .panel.align-left,
  .cta-panel {
    margin-left: clamp(1rem, 3vw, 3rem);
    margin-right: auto;
  }

  .panel.align-right {
    margin-left: auto;
    margin-right: clamp(1rem, 3vw, 3rem);
  }

  .panel::before {
    background:
      radial-gradient(circle at 14% 0%, rgba(25, 185, 255, .09), transparent 18rem),
      radial-gradient(circle at 96% 16%, rgba(232, 75, 197, .07), transparent 16rem),
      linear-gradient(110deg, rgba(4, 7, 36, .38), rgba(1, 0, 0, .2));
    border-color: rgba(255, 255, 255, .24);
    backdrop-filter: blur(1.5px) saturate(1.03);
    -webkit-backdrop-filter: blur(1.5px) saturate(1.03);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, .2),
      0 1rem 3rem rgba(0, 0, 0, .14);
    opacity: .72;
  }

  .panel::after {
    opacity: .1;
  }

  .panel > * {
    position: relative;
    z-index: 1;
    text-shadow: 0 2px 8px rgba(0, 0, 0, .92), 0 1px 2px rgba(0, 0, 0, .95);
  }

  .service-list,
  .feature-list,
  .proof-list {
    grid-template-columns: 1fr;
  }

  #opening.hero-panel {
    width: min(42rem, 46vw);
    margin-left: clamp(1rem, 3vw, 3rem);
    padding: clamp(2rem, 3vw, 2.8rem) clamp(1.5rem, 3vw, 2.8rem);
  }

  #opening.hero-panel h1 {
    max-width: 100%;
    font-size: clamp(2.15rem, 7cqi, 3rem);
    line-height: 1.02;
    overflow-wrap: normal;
    word-break: normal;
  }

  #opening.hero-panel p:not(.eyebrow) {
    max-width: 36rem;
    font-size: clamp(.92rem, 1vw, 1.02rem);
    line-height: 1.48;
  }
}

@media (max-width: 760px) {
  .panel h1 {
    font-size: clamp(2rem, 9cqi, 3rem);
    line-height: 1.02;
  }

  .panel h2 {
    font-size: clamp(1.75rem, 8cqi, 2.5rem);
    line-height: 1.05;
  }

  .panel h3 {
    font-size: clamp(1.05rem, 5.5cqi, 1.3rem);
  }
}
