.elementor-kit-6{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#E7F1F5;--e-global-color-accent:#61CE70;--e-global-color-0839ab7:#080B12;--e-global-color-a18b105:#101722;--e-global-color-49288c4:#162230;--e-global-color-d1b940f:#00E5FF;--e-global-color-ac4cb8f:#FF2A9D;--e-global-color-02c6797:#35FF9A;--e-global-color-dea0a46:#FFB000;--e-global-color-1775f49:#E7F1F5;--e-global-color-8a36436:#82919C;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;--e-global-typography-d86d5c8-font-family:"IBM Plex Mono";--e-global-typography-d86d5c8-font-size:32px;--e-global-typography-d86d5c8-font-weight:700;--e-global-typography-d86d5c8-text-transform:uppercase;--e-global-typography-d86d5c8-line-height:1.15em;--e-global-typography-d86d5c8-letter-spacing:0px;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-6{--e-global-typography-d86d5c8-font-size:28px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --Moonbat_Background:#080B12; --Moonbat_Surface:#101722; --Moonbat_Surface_Light:#162230; --Moonbat_Cyan:#00E5FF; --Moonbat_Magenta:#FF2A9D; --Moonbat_Green:#35FF9A; --Moonbat_Amber:#FFB000; --Moonbat_Text:#E7F1F5; --Moonbat_Muted:#82919C; --Moonbat_Display:IBM Plex Mono; --Moonbat_UI:IBM Plex Mono; --Moonbat_Body:Manrope; --Moonbat_Body_Strong:Manrope; --Moonbat-Content-Width:1240px; --Moonbat-Section-Gap:120px; --Moonbat-Container-Gap:24px; --Moonbat-Card-Padding:32px; --Moonbat-Border-Radius:0px; --Moonbat-Button-Height:48px; }
/* Start custom CSS *//* TERMINAL WINDOW */
.moonbat-terminal {
  position: relative;
  overflow: hidden;
  background: var(--Moonbat_Surface);
  border: 1px solid rgba(0, 229, 255, 0.30);
  box-shadow:
    0 0 0 1px rgba(0, 229, 255, 0.04),
    0 0 28px rgba(0, 229, 255, 0.10);
  transition:
    transform 220ms ease,
    border-color 220ms ease,
    box-shadow 220ms ease;
}

.moonbat-terminal::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.45;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.018) 0,
    rgba(255, 255, 255, 0.018) 1px,
    transparent 1px,
    transparent 4px
  );
  background-size: 100% 4px;
}

.moonbat-terminal:hover {
  transform: translateY(-4px);
  border-color: rgba(0, 229, 255, 0.68);
  box-shadow:
    0 0 0 1px rgba(0, 229, 255, 0.09),
    0 0 40px rgba(0, 229, 255, 0.18);
}

.moonbat-terminal-topbar,
.moonbat-terminal-body {
  position: relative;
  z-index: 1;
}

.moonbat-terminal-topbar {
  border-bottom: 1px solid rgba(0, 229, 255, 0.22);
}

.moonbat-terminal-body {
  position: relative;
}

.moonbat-terminal-body::before {
  content: "";
  position: absolute;
  top: 22px;
  bottom: 22px;
  left: 14px;
  width: 1px;
  background: linear-gradient(
    to bottom,
    transparent,
    rgba(0, 229, 255, 0.40),
    transparent
  );
}

.moonbat-terminal-line,
.moonbat-terminal-progress,
.moonbat-terminal-status {
  position: relative;
  z-index: 1;
  padding-left: 14px;
}

.moonbat-terminal-line {
  color: var(--moonbat-text);
  opacity: 0;
  animation: moonbat-terminal-line-in 420ms ease forwards;
}

.moonbat-terminal-line:nth-of-type(1) {
  animation-delay: 120ms;
}

.moonbat-terminal-line:nth-of-type(2) {
  animation-delay: 240ms;
}

.moonbat-terminal-line:nth-of-type(3) {
  animation-delay: 360ms;
}

.moonbat-terminal-line:nth-of-type(4) {
  animation-delay: 480ms;
}

.moonbat-terminal-line:nth-of-type(5) {
  animation-delay: 600ms;
}

.moonbat-terminal-progress,
.moonbat-terminal-status {
  opacity: 0;
  animation: moonbat-terminal-line-in 420ms ease forwards;
  animation-delay: 740ms;
}

.moonbat-progress-fill {
  transform: scaleX(0);
  transform-origin: left center;
  animation: moonbat-progress-load 900ms cubic-bezier(.2, .7, .2, 1) forwards;
  animation-delay: 1500ms;
}

.moonbat-terminal-status::after {
  content: "_";
  display: inline-block;
  margin-left: 5px;
  color: var(--moonbat-cyan);
  animation: moonbat-cursor-blink 1s steps(1, end) infinite;
}

@keyframes moonbat-terminal-line-in {
  from {
    opacity: 0;
    transform: translateY(5px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes moonbat-progress-load {
  to {
    transform: scaleX(1);
  }
}

@keyframes moonbat-cursor-blink {
  0%,
  48% {
    opacity: 1;
  }

  49%,
  100% {
    opacity: 0;
  }
}

/* Rispetta le preferenze di riduzione movimento */
@media (prefers-reduced-motion: reduce) {
  .moonbat-terminal,
  .moonbat-terminal-line,
  .moonbat-terminal-progress,
  .moonbat-terminal-status,
  .moonbat-progress-fill,
  .moonbat-terminal-status::after {
    animation: none !important;
    transition: none !important;
  }

  .moonbat-terminal-line,
  .moonbat-terminal-progress,
  .moonbat-terminal-status {
    opacity: 1;
    transform: none;
  }

  .moonbat-progress-fill {
    transform: scaleX(1);
  }

  .moonbat-terminal:hover {
    transform: none;
  }
}

/*Manifesto*/
.moonbat-manifesto-inner {
  position: relative;
  padding-left: clamp(20px, 4vw, 56px);
}

.moonbat-manifesto-inner::before {
  content: "";
  position: absolute;
  top: 4px;
  bottom: 4px;
  left: 0;
  width: 1px;
  background: linear-gradient(
    to bottom,
    transparent,
    rgba(0, 229, 255, 0.72) 18%,
    rgba(0, 229, 255, 0.72) 82%,
    transparent
  );
  box-shadow: 0 0 10px rgba(0, 229, 255, 0.28);
}

/*Steps*/
.moonbat-process-steps {
  position: relative;
}

.moonbat-process-step {
  position: relative;
}

/* .moonbat-process-step-connected::after {
  content: "";
  position: absolute;
  top: 9px;
  left: 24px;
  right: 0px;
  height: 1px;
  z-index: 0;
  background: linear-gradient(
    90deg,
    rgba(0, 229, 255, 0.72),
    rgba(0, 229, 255, 0.16)
  );
} */

/* Linea originale: visibile normalmente,
   anche senza JavaScript */
.moonbat-process-step-connected::after {
  content: "";
  position: absolute;

  top: 9px;
  left: 24px;
  right: 0;

  height: 1px;
  z-index: 0;

  background: linear-gradient(
    90deg,
    rgba(0, 229, 255, 0.72),
    rgba(0, 229, 255, 0.16)
  );

  pointer-events: none;
}

/* Durante la sequenza:
   base tenue + segmento luminoso progressivo */
/* Linea animata, con sfumatura verso destra */
.moonbat-process.is-deploy-ready
  .moonbat-process-step-connected::after {
  background:
    linear-gradient(
      90deg,
      rgba(0, 229, 255, 0.95) 0%,
      rgba(0, 229, 255, 0.50) 65%,
      rgba(0, 229, 255, 0.10) 100%
    )
    left center /
    var(--deploy-line, 0%) 100%
    no-repeat,

    linear-gradient(
      90deg,
      rgba(0, 229, 255, 0.12),
      rgba(0, 229, 255, 0.02)
    );

  box-shadow: none;
  transition: none;
}

.moonbat-process-number,
.moonbat-process-step-title,
.moonbat-process-step-copy {
  position: relative;
  z-index: 1;
}
.moonbat-process-step {
  transition: opacity 180ms ease, transform 180ms ease;
}

/* .moonbat-process-step:hover {
  transform: translateY(-4px);
}

.moonbat-process-step:hover .moonbat-process-number,
.moonbat-process-step:hover .moonbat-process-step-title {
  color: var(--Moonbat_Amber);
} */

@media (max-width: 767px) {
  .moonbat-process-steps {
    flex-direction: column;
    gap: 0;
  }

  .moonbat-process-step {
    width: 100%;
    padding: 0 0 32px 24px;
    border-left: 1px solid rgba(0, 229, 255, 0.24);
  }

  .moonbat-process-step + .moonbat-process-step {
    padding-top: 28px;
  }

  .moonbat-process-step-connected::after {
    display: none;
  }

  .moonbat-process-number::before {
    content: "";
    position: absolute;
    top: 7px;
    left: -25px;
    width: 9px;
    height: 9px;
    border: 1px solid var(--Moonbat_Cyan);
    background: var(--Moonbat_Background);
  }
}

/*Effetto immagine progetti*/
.moonbat-project-card {
  overflow: hidden;
}

.moonbat-project-image {
  transition: transform 320ms ease;
}

.moonbat-project-card:hover .moonbat-project-image {
  transform: scale(1.025);
}

/* Form */
.moonbat-project-form {
  padding: clamp(22px, 3vw, 36px);
  background: var(--Moonbat_Surface);
  border: 1px solid rgba(0, 229, 255, 0.30);
  box-shadow:
    0 0 0 1px rgba(0, 229, 255, 0.04),
    0 0 30px rgba(0, 229, 255, 0.08);
}

.moonbat-project-form .elementor-field-group {
  margin-bottom: 18px;
}

.moonbat-project-form .elementor-field-label {
  margin-bottom: 8px;
  color: var(--Moonbat_Muted);
  font-family: "IBM Plex Mono", monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.10em;
  line-height: 1.4;
  text-transform: uppercase;
}

.moonbat-project-form .elementor-field,
.moonbat-project-form .elementor-field-textual,
.moonbat-project-form select,
.moonbat-project-form textarea {
  min-height: 48px;
  border: 1px solid rgba(0, 229, 255, 0.26);
  border-radius: 0;
  background: var(--Moonbat_Background);
  color: var(--Moonbat_Text);
  font-family: "IBM Plex Mono", monospace;
  font-size: 14px;
  line-height: 1.45;
  box-shadow: none;
}

.moonbat-project-form textarea {
  min-height: 140px;
  resize: vertical;
}

.moonbat-project-form .elementor-field::placeholder,
.moonbat-project-form textarea::placeholder {
  color: AAB7C2;
  opacity: 0.72;
}

.moonbat-project-form .elementor-field:focus,
.moonbat-project-form select:focus,
.moonbat-project-form textarea:focus {
  border-color: var(--Moonbat_Cyan);
  outline: 2px solid rgba(0, 229, 255, 0.22);
  outline-offset: 2px;
  box-shadow: 0 0 16px rgba(0, 229, 255, 0.09);
}

.moonbat-project-form .elementor-button {
  min-height: 48px;
  padding: 13px 18px;
  border: 1px solid var(--Moonbat_Cyan);
  border-radius: 0;
  background: transparent;
  color: var(--Moonbat_Cyan);
  font-family: "IBM Plex Mono", monospace;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.07em;
  line-height: 1;
  text-transform: uppercase;
  transition:
    color 180ms ease,
    background 180ms ease,
    box-shadow 180ms ease;
}

.moonbat-project-form .elementor-button:hover,
.moonbat-project-form .elementor-button:focus-visible {
  background: var(--Moonbat_Cyan);
  color: var(--Moonbat_Background);
  box-shadow: 0 0 20px rgba(0, 229, 255, 0.34);
}

.moonbat-project-form .elementor-field-type-acceptance {
  margin-top: 4px;
}

.moonbat-project-form .elementor-field-type-acceptance label {
  color: var(--Moonbat_Muted);
  font-family: "Inter", sans-serif;
  font-size: 13px;
  line-height: 1.5;
}

.moonbat-project-form .elementor-field-type-acceptance a {
  color: var(--Moonbat_Cyan);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.moonbat-project-form .elementor-message {
  margin-top: 18px;
  border: 1px solid rgba(53, 255, 154, 0.38);
  padding: 12px 14px;
  color: var(--Moonbat_Green);
  font-family: "IBM Plex Mono", monospace;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.5;
  text-transform: uppercase;
}

.moonbat-project-form input::placeholder,
.moonbat-project-form textarea::placeholder {
  color: #AAB7C2;
  opacity: 1;
}

.moonbat-project-form select {
  color: #E7F1F5;
  background-color: #080B12;
}

#form-field-privacy {
    min-height: 0px;    
}

@media (max-width: 767px) {
  .moonbat-project-form {
    padding: 22px 18px;
  }

  .moonbat-project-form .elementor-button {
    width: 100%;
  }
}

/*Animazione barra system status home*/
/* Stato normale: tutte le voci sono discrete */
.moonbat-system-status-item {
  position: relative;
  display: inline-block;
  color: var(--moonbat-muted, #82919c);
  opacity: 0.62;
  transition:
    color 180ms ease,
    opacity 180ms ease,
    text-shadow 180ms ease;
}

/* Ciclo completo:
   6 elementi × 1 secondo = 6 secondi */
.moonbat-system-status-inner
  .moonbat-system-status-item:nth-child(1) {
  animation: moonbat-status-cycle 6s linear infinite;
  animation-delay: 0s;
}

.moonbat-system-status-inner
  .moonbat-system-status-item:nth-child(2) {
  animation: moonbat-status-cycle 6s linear infinite;
  animation-delay: 1s;
}

.moonbat-system-status-inner
  .moonbat-system-status-item:nth-child(3) {
  animation: moonbat-status-cycle 6s linear infinite;
  animation-delay: 2s;
}

.moonbat-system-status-inner
  .moonbat-system-status-item:nth-child(4) {
  animation: moonbat-status-cycle 6s linear infinite;
  animation-delay: 3s;
}

.moonbat-system-status-inner
  .moonbat-system-status-item:nth-child(5) {
  animation: moonbat-status-cycle 6s linear infinite;
  animation-delay: 4s;
}

.moonbat-system-status-inner
  .moonbat-system-status-item:nth-child(6) {
  animation: moonbat-status-cycle 6s linear infinite;
  animation-delay: 5s;
}

/* Ogni voce resta attiva per circa 0,9 secondi */
@keyframes moonbat-status-cycle {
  0%,
  14% {
    color: var(--moonbat-cyan, #00e5ff);
    opacity: 1;
    text-shadow: 0 0 10px rgba(0, 229, 255, 0.42);
  }

  16%,
  100% {
    color: var(--moonbat-muted, #82919c);
    opacity: 0.62;
    text-shadow: none;
  }
}

/* Rispetta le preferenze di riduzione animazioni */
@media (prefers-reduced-motion: reduce) {
  .moonbat-system-status-inner .moonbat-system-status-item {
    animation: none !important;
    color: var(--moonbat-muted, #82919c);
    opacity: 1;
    text-shadow: none;
  }

  .moonbat-system-status-inner
    .moonbat-system-status-item:first-child {
    color: var(--moonbat-cyan, #00e5ff);
  }
}

/* =====================================
   MOONBAT — PULSANTE CON ANGOLI TAGLIATI
   ===================================== */

.cyber-button,
.moonbat-menu-toggle,
.moonbat-menu-close {
  --cyber-cut: 12px;
  --cyber-line: 1px;

  position: relative;

  /* Elimina il bordo rettangolare di Elementor */
  border: 0 !important;
  border-radius: 0 !important;

  /* Elimina gli effetti delle versioni precedenti */
  box-shadow: none !important;
  filter: none !important;

  /* Taglia realmente anche lo sfondo del pulsante */
  clip-path: polygon(
    var(--cyber-cut) 0,
    100% 0,
    100% calc(100% - var(--cyber-cut)),
    calc(100% - var(--cyber-cut)) 100%,
    0 100%,
    0 var(--cyber-cut)
  ) !important;
}

/* Cornice sagomata, con centro trasparente */
.cyber-button::before,
.moonbat-menu-toggle::before,
.moonbat-menu-close::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;

  pointer-events: none;
  background: currentColor;

  --cyber-inner-cut: calc(
    var(--cyber-cut) + 0.414214 * var(--cyber-line)
  );

  clip-path: polygon(
    evenodd,

    /* Contorno esterno */
    var(--cyber-cut) 0,
    100% 0,
    100% calc(100% - var(--cyber-cut)),
    calc(100% - var(--cyber-cut)) 100%,
    0 100%,
    0 var(--cyber-cut),
    var(--cyber-cut) 0,

    /* Foro interno */
    var(--cyber-inner-cut) var(--cyber-line),
    calc(100% - var(--cyber-line)) var(--cyber-line),
    calc(100% - var(--cyber-line))
      calc(100% - var(--cyber-inner-cut)),
    calc(100% - var(--cyber-inner-cut))
      calc(100% - var(--cyber-line)),
    var(--cyber-line)
      calc(100% - var(--cyber-line)),
    var(--cyber-line) var(--cyber-inner-cut),
    var(--cyber-inner-cut) var(--cyber-line)
  );
}

/* Rimuove l'eventuale secondo livello precedente */
.cyber-button::after,
.moonbat-menu-toggle::after,
.moonbat-menu-close::after {
  content: none !important;
}

/* =====================================
   MOONBAT — CARD CON ANGOLI TAGLIATI
   ===================================== */

.cyber-card,
.moonbat-single-project-overview-specs {
  --card-cut: 20px;
  --card-line: 1px;

  /* Colore della cornice, indipendente dal testo */
  --card-edge: #00E5FF;

  position: relative;

  /* Rimuove il bordo rettangolare originale */
  border: 0 !important;
  border-radius: 0 !important;

  /* Niente ombre rettangolari */
  box-shadow: none !important;

  /* Ritaglia realmente contenitore e sfondo */
  clip-path: polygon(
    var(--card-cut) 0,
    100% 0,
    100% calc(100% - var(--card-cut)),
    calc(100% - var(--card-cut)) 100%,
    0 100%,
    0 var(--card-cut)
  );
}

/* Cornice sagomata con centro trasparente */
.cyber-card::before,
.moonbat-single-project-overview-specs::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;

  pointer-events: none;
  background: var(--card-edge);

  --card-inner-cut: calc(
    var(--card-cut) + 0.414214 * var(--card-line)
  );

  clip-path: polygon(
    evenodd,

    /* Contorno esterno */
    var(--card-cut) 0,
    100% 0,
    100% calc(100% - var(--card-cut)),
    calc(100% - var(--card-cut)) 100%,
    0 100%,
    0 var(--card-cut),
    var(--card-cut) 0,

    /* Foro interno */
    var(--card-inner-cut) var(--card-line),
    calc(100% - var(--card-line)) var(--card-line),
    calc(100% - var(--card-line))
      calc(100% - var(--card-inner-cut)),
    calc(100% - var(--card-inner-cut))
      calc(100% - var(--card-line)),
    var(--card-line)
      calc(100% - var(--card-line)),
    var(--card-line) var(--card-inner-cut),
    var(--card-inner-cut) var(--card-line)
  );

  transition: background-color 180ms ease;
}

@media (prefers-reduced-motion: reduce) {
  .cyber-card::before,
  .moonbat-single-project-overview-specs::before {
    transition: none;
  }
}

/* =====================================
   MOONBAT PROCESS — FULL SCREEN
   ===================================== */

.moonbat-process {
  --deploy-off: #586773;
  --deploy-on: var(--moonbat-cyan, #00E5FF);

  min-height: 100svh;
  box-sizing: border-box;

  display: flex;
  flex-direction: column;
  justify-content: center;

  padding-block: clamp(48px, 7vh, 96px);
}

/* Valore animato da GSAP */
.moonbat-process.is-deploy-ready .moonbat-process-step {
  --deploy-power: 0;
}

/* Accensione dei titoli */
.moonbat-process.is-deploy-ready .moonbat-process-step-title,
.moonbat-process.is-deploy-ready
  .moonbat-process-step-title :is(h2, h3, h4) {
  color: color-mix(
    in srgb,
    var(--deploy-on) calc(var(--deploy-power) * 100%),
    var(--deploy-off)
  );

  text-shadow:
    0 0 7px
      rgb(0 229 255 / calc(var(--deploy-power) * 0.65)),
    0 0 22px
      rgb(0 229 255 / calc(var(--deploy-power) * 0.35));
}

/* Mobile: layout naturale, senza blocco a schermo intero */
@media (max-width: 767px) {
  .moonbat-process {
    min-height: auto;
  }
}

/* Il contenitore bloccato non deve animare
   i cambiamenti di posizione applicati da GSAP */
.moonbat-process {
  transition: none !important;
  animation: none !important;
}

/* Numero e contenuti interni:
   forza l'uso del valore animato dallo step */
.moonbat-process.is-deploy-ready
  .moonbat-process-step .moonbat-process-number,
.moonbat-process.is-deploy-ready
  .moonbat-process-step .moonbat-process-number * {
  color: color-mix(
    in srgb,
    var(--deploy-on, #00E5FF)
      calc(var(--deploy-power, 0) * 100%),
    var(--deploy-off, #586773)
  ) !important;

  text-shadow:
    0 0 7px
      rgb(0 229 255 / calc(var(--deploy-power, 0) * 0.65)),
    0 0 22px
      rgb(0 229 255 / calc(var(--deploy-power, 0) * 0.35))
    !important;

  transition: none !important;
}

/* =====================================
   MOONBAT — SCROLL HINTS
   ===================================== */

.moonbat-process {
  position: relative;
}

/* Widget sovrapposto alla sezione,
   senza occupare spazio nel layout */
.moonbat-process .moonbat-scroll-hints-widget {
  position: absolute;
  inset: 0;

  width: 100%;
  height: 100%;
  margin: 0;

  pointer-events: none;
  z-index: 3;
}

.moonbat-scroll-hints {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

/* Colonna: freccia su / testo / freccia giù */
.moonbat-scroll-hint {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);

  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;

  color: var(--moonbat-cyan, #00E5FF);
}

.moonbat-scroll-hint--left {
  left: 18px;
}

.moonbat-scroll-hint--right {
  right: 18px;
}

/* Lettere dritte, una sotto l'altra */
.moonbat-scroll-hint-label {
  display: block;

  writing-mode: vertical-rl !important;
  text-orientation: upright !important;
  transform: none !important;

  width: auto;
  height: auto;
  flex-shrink: 0;

  font-family: var(--moonbat-font-mono, monospace);
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.2em;

  white-space: nowrap;
  opacity: 0.6;
}

/* Frecce: nessun movimento */
.moonbat-scroll-hint-arrow {
  display: block;

  font-family: var(--moonbat-font-mono, monospace);
  font-size: 20px;
  line-height: 1;

  transform: none;
  opacity: 0.65;
  animation: none;
}

/* Lampeggio morbido: varia soltanto l'opacità */
@media (prefers-reduced-motion: no-preference) {
  .moonbat-scroll-hint-arrow {
    animation: moonbat-scroll-blink 1.8s ease-in-out infinite;
  }
}

@keyframes moonbat-scroll-blink {
  0%, 100% {
    opacity: 0.25;
  }

  50% {
    opacity: 0.9;
  }
}

/* Fasce laterali libere su desktop */
@media (min-width: 1024px) {
  .moonbat-process {
    padding-inline: 72px !important;
  }
}

/* Nasconde gli indicatori su tablet e mobile */
@media (max-width: 1023px) {
  .moonbat-process .moonbat-scroll-hints-widget {
    display: none;
  }
}

/* Versione senza animazioni */
@media (prefers-reduced-motion: reduce) {
  .moonbat-process .moonbat-scroll-hints-widget {
    display: none;
  }
}

/* =====================================
   MOONBAT — HERO TYPEWRITER
   ===================================== */

/* Il layout viene attivato soltanto dallo script */
h1.mb-typewriter-ready {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

/* Due livelli sovrapposti:
   titolo completo invisibile + testo in scrittura */
h1.mb-typewriter-ready > .mb-typewriter-measure,
h1.mb-typewriter-ready > .mb-typewriter-output {
  grid-area: 1 / 1;
  min-width: 0;
  white-space: pre-wrap;
}

/* Riserva lo spazio del titolo completo */
.mb-typewriter-measure {
  visibility: hidden;
  pointer-events: none;
}

/* Cursore a blocco */
.mb-typewriter-cursor {
  display: inline-block;

  width: 0.48em;
  height: 0.08em;
  margin-left: 0.08em;

  vertical-align: -0.06em;
  background: var(--moonbat-cyan, #00E5FF);

  box-shadow:
    0 0 7px rgba(0, 229, 255, 0.35);

  opacity: 1;
}

/* Il lampeggio parte soltanto a scrittura conclusa */
.mb-typewriter-cursor.is-blinking {
  animation: mb-terminal-cursor-blink 1.1s step-end infinite;
}

@keyframes mb-terminal-cursor-blink {
  0%, 100% {
    opacity: 1;
  }

  50% {
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mb-typewriter-cursor,
  .mb-typewriter-cursor.is-blinking {
    animation: none;
  }
}

/* Area entro cui la barra può rimanere sticky */
.moonbat-services-sticky-area {
  position: relative;
  overflow: visible;
}

/* Barra dei servizi */
.moonbat-services-sticky-area .moonbat-system-status {
  position: sticky;
  top: 80px;

  align-self: stretch;
  flex-shrink: 0;
  z-index: 50;

  background: var(--moonbat-background, #080B12);
}

/* =====================================
   SERVIZI — OFFSET RESPONSIVE
   ===================================== */

/* Desktop */
.moonbat-services-sticky-area {
  --services-header-height: 80px;
  --services-bar-height: 30px;
  --services-anchor-gap: 16px;
}

/* Barra sticky sotto l'header */
.moonbat-services-sticky-area .moonbat-system-status {
  top: var(--services-header-height);
}

/* Destinazione dei link ai servizi */
.moonbat-services-sticky-area .moonbat-service-detail[id] {
  scroll-margin-top: calc(
    var(--services-header-height) +
    var(--services-bar-height) +
    var(--services-anchor-gap)
  );
}

/* Mobile */
@media (max-width: 767px) {
  .moonbat-services-sticky-area {
    --services-header-height: 70px;
    --services-bar-height: 30px;
    --services-anchor-gap: 12px;
  }
}

/* Scanline globale Moonbat */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
  background-image:
    repeating-linear-gradient(
      to bottom,
      rgba(0, 0, 0, 0.14) 0px,
      rgba(0, 0, 0, 0.14) 1px,
      transparent 1px,
      transparent 3px
    );
  mix-blend-mode: multiply;
  opacity: 0.5;
  animation: moonbat-global-scanline 6s infinite linear;
}

@keyframes moonbat-global-scanline {
  0%,
  100% {
    opacity: 0.48;
  }

  48% {
    opacity: 0.52;
  }

  50% {
    opacity: 0.4;
  }

  52% {
    opacity: 0.52;
  }

  78% {
    opacity: 0.46;
  }
}

@media (prefers-reduced-motion: reduce) {
  body::after {
    animation: none;
    opacity: 0.45;
  }
}

/* Glitch irregolare e contenuto del codice 404 */
.moonbat-error-code {
  position: relative;
  display: inline-block;
  color: var(--moonbat-cyan);
  animation: moonbat-code-random-glitch 7.3s infinite steps(1, end);
  will-change: transform;
}

.moonbat-error-code::before,
.moonbat-error-code::after {
  content: "404_";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
}

.moonbat-error-code::before {
  color: var(--moonbat-magenta);
  animation: moonbat-glitch-random-a 7.3s infinite steps(1, end);
}

.moonbat-error-code::after {
  color: var(--moonbat-cyan);
  animation: moonbat-glitch-random-b 7.3s infinite steps(1, end);
}

@keyframes moonbat-code-random-glitch {
  0%,
  9%,
  23%,
  41%,
  58%,
  73%,
  86%,
  100% {
    transform: translate(0, 0) skewX(0deg);
  }

  10% {
    transform: translate(-1px, 0.5px) skewX(-0.6deg);
  }

  12% {
    transform: translate(1.5px, -0.5px) skewX(0.8deg);
  }

  14% {
    transform: translate(-0.5px, 0.5px) skewX(-0.3deg);
  }

  16% {
    transform: translate(0, 0) skewX(0deg);
  }

  24% {
    transform: translate(2px, 0.5px) skewX(1deg);
  }

  26% {
    transform: translate(-2px, -0.5px) skewX(-1.2deg);
  }

  28% {
    transform: translate(0.5px, 0.5px) skewX(0.4deg);
  }

  30% {
    transform: translate(0, 0) skewX(0deg);
  }

  42% {
    transform: translate(-1px, -0.5px) skewX(-0.4deg);
  }

  44% {
    transform: translate(1.5px, 1px) skewX(0.7deg);
  }

  46% {
    transform: translate(0, 0) skewX(0deg);
  }

  59% {
    transform: translate(2px, -0.5px) skewX(1.2deg);
  }

  61% {
    transform: translate(-1.5px, 0.5px) skewX(-0.8deg);
  }

  63% {
    transform: translate(0.5px, -0.5px) skewX(0.3deg);
  }

  65% {
    transform: translate(0, 0) skewX(0deg);
  }

  74% {
    transform: translate(-2px, 0.5px) skewX(-1deg);
  }

  76% {
    transform: translate(1.5px, -0.5px) skewX(0.7deg);
  }

  78% {
    transform: translate(0, 0) skewX(0deg);
  }

  87% {
    transform: translate(1px, 0.5px) skewX(0.5deg);
  }

  89% {
    transform: translate(-1px, -0.5px) skewX(-0.6deg);
  }

  91% {
    transform: translate(0, 0) skewX(0deg);
  }
}

@keyframes moonbat-glitch-random-a {
  0%,
  9%,
  23%,
  41%,
  58%,
  73%,
  86%,
  100% {
    opacity: 0;
    transform: translate(0, 0);
    clip-path: inset(0 0 0 0);
  }

  10% {
    opacity: 0.75;
    transform: translate(-3px, -1px) skewX(-2deg);
    clip-path: inset(12% 0 56% 0);
  }

  12% {
    opacity: 0.75;
    transform: translate(3px, 1px) skewX(2.5deg);
    clip-path: inset(64% 0 10% 0);
  }

  14% {
    opacity: 0.75;
    transform: translate(-2px, 0.5px) skewX(-1.2deg);
    clip-path: inset(32% 0 42% 0);
  }

  16% {
    opacity: 0;
    transform: translate(0, 0);
  }

  24% {
    opacity: 0.75;
    transform: translate(4px, 1px) skewX(3deg);
    clip-path: inset(6% 0 78% 0);
  }

  26% {
    opacity: 0.75;
    transform: translate(-4px, -1px) skewX(-2.5deg);
    clip-path: inset(50% 0 24% 0);
  }

  28% {
    opacity: 0.75;
    transform: translate(2px, 0.5px) skewX(1.5deg);
    clip-path: inset(72% 0 8% 0);
  }

  30% {
    opacity: 0;
    transform: translate(0, 0);
  }

  59% {
    opacity: 0.75;
    transform: translate(3px, -1px) skewX(2.5deg);
    clip-path: inset(20% 0 58% 0);
  }

  61% {
    opacity: 0.75;
    transform: translate(-3px, 1px) skewX(-2deg);
    clip-path: inset(68% 0 12% 0);
  }

  63% {
    opacity: 0.75;
    transform: translate(1.5px, -0.5px) skewX(1.2deg);
    clip-path: inset(38% 0 36% 0);
  }

  65% {
    opacity: 0;
    transform: translate(0, 0);
  }

  74% {
    opacity: 0.75;
    transform: translate(-3px, 1px) skewX(-2.5deg);
    clip-path: inset(26% 0 50% 0);
  }

  76% {
    opacity: 0.75;
    transform: translate(2.5px, -1px) skewX(2deg);
    clip-path: inset(76% 0 6% 0);
  }

  78% {
    opacity: 0;
    transform: translate(0, 0);
  }
}

@keyframes moonbat-glitch-random-b {
  0%,
  9%,
  23%,
  41%,
  58%,
  73%,
  86%,
  100% {
    opacity: 0;
    transform: translate(0, 0);
    clip-path: inset(0 0 0 0);
  }

  10% {
    opacity: 0.6;
    transform: translate(3px, 1px) skewX(2deg);
    clip-path: inset(40% 0 30% 0);
  }

  12% {
    opacity: 0.6;
    transform: translate(-3px, -1px) skewX(-2.5deg);
    clip-path: inset(8% 0 72% 0);
  }

  14% {
    opacity: 0.6;
    transform: translate(2px, -0.5px) skewX(1.2deg);
    clip-path: inset(74% 0 8% 0);
  }

  16% {
    opacity: 0;
    transform: translate(0, 0);
  }

  24% {
    opacity: 0.6;
    transform: translate(-4px, -1px) skewX(-3deg);
    clip-path: inset(54% 0 20% 0);
  }

  26% {
    opacity: 0.6;
    transform: translate(4px, 1px) skewX(2.5deg);
    clip-path: inset(14% 0 66% 0);
  }

  28% {
    opacity: 0.6;
    transform: translate(-2px, -0.5px) skewX(-1.5deg);
    clip-path: inset(82% 0 4% 0);
  }

  30% {
    opacity: 0;
    transform: translate(0, 0);
  }

  59% {
    opacity: 0.6;
    transform: translate(-3px, 1px) skewX(-2.5deg);
    clip-path: inset(46% 0 32% 0);
  }

  61% {
    opacity: 0.6;
    transform: translate(3px, -1px) skewX(2deg);
    clip-path: inset(10% 0 80% 0);
  }

  63% {
    opacity: 0.6;
    transform: translate(-1.5px, 0.5px) skewX(-1.2deg);
    clip-path: inset(62% 0 18% 0);
  }

  65% {
    opacity: 0;
    transform: translate(0, 0);
  }

  74% {
    opacity: 0.6;
    transform: translate(3px, -1px) skewX(2.5deg);
    clip-path: inset(32% 0 48% 0);
  }

  76% {
    opacity: 0.6;
    transform: translate(-2.5px, 1px) skewX(-2deg);
    clip-path: inset(78% 0 8% 0);
  }

  78% {
    opacity: 0;
    transform: translate(0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .moonbat-error-code,
  .moonbat-error-code::before,
  .moonbat-error-code::after {
    animation: none;
    transform: none;
  }

  .moonbat-error-code::before,
  .moonbat-error-code::after {
    display: none;
  }
}/* End custom CSS */