/* Home-only enhancement. The JS-only pending state has a loading fallback. */
.home-congiunzione { overflow: clip; }
.home-motion-pending :is(.home-congiunzione__copy, .home-congiunzione__signature, .home-congiunzione__channels) { visibility: hidden; }
.home-motion-pending :is(.home-regia__visual, .service-composition__gesture) { visibility: hidden; }
.home-motion-pending .home-congiunzione__drag-hint,
.home-congiunzione[data-home-intro-active] .home-congiunzione__drag-hint { visibility: hidden; }
.home-motion-falling-orb { position: fixed; top: 0; z-index: 10001; border-radius: 50%; background: var(--color-brand-orange); pointer-events: none; visibility: hidden; }
.home-congiunzione .home-motion-title-word { display: inline-block; font: inherit; color: inherit; }
.home-congiunzione .home-congiunzione__cta,
.home-congiunzione .home-congiunzione__cta:visited {
  position: relative; top: 0; isolation: isolate;
  color: var(--color-brand-navy) !important;
  background: linear-gradient(180deg, #c4f5fc 0%, #82dfed 22%, #58c6df 55%, #49bad5 78%, #1685aa 100%);
  border: 1px solid #4aa7bc;
  border-top-color: #dcfaff;
  border-bottom-color: #3689a3;
  box-shadow: inset 0 2px 3px #ffffffcc, inset 2px 0 5px #e2fbff66, inset 0 -3px 5px #07517352, 0 6px 13px #10364e33;
  transition: box-shadow .16s ease, top .1s ease;
}
.home-congiunzione__cta::before {
  content: ''; position: absolute; inset: 2px 5px 48%; z-index: -1; border-radius: 999px; pointer-events: none;
  background: linear-gradient(180deg, #ffffff80, #ffffff00);
}
.home-congiunzione .home-congiunzione__cta:hover {
  color: var(--color-brand-navy) !important;
  background: linear-gradient(180deg, #d4f9ff 0%, #96e9f4 22%, #65d2e7 55%, #4cc3dd 78%, #1c91b2 100%);
  box-shadow: inset 0 2px 3px #ffffffdd, inset 2px 0 5px #e2fbff80, inset 0 -3px 5px #07517352, 0 7px 16px #10364e38;
}
.home-congiunzione .home-congiunzione__cta:active {
  top: 2px;
  box-shadow: inset 0 2px 5px #07517340, inset 0 -1px 2px #e2fbff80, 0 3px 7px #10364e29;
}
.home-congiunzione__cta > [aria-hidden="true"] { color: #98370f; font-weight: 800; }
@media (prefers-reduced-motion: reduce) { .home-congiunzione .home-congiunzione__cta { transition: none; } }
.home-congiunzione :is([data-home-symbol], [data-home-shape], [data-home-orb]) { transform-box: fill-box; transform-origin: center; }
.home-congiunzione [data-home-draggable] { pointer-events: visiblePainted; cursor: grab; user-select: none; }
.home-congiunzione [data-home-dragging] { cursor: grabbing; }
.home-congiunzione [data-home-draggable]:is(:hover, [data-home-dragging]) { filter: drop-shadow(0 0 5px #0dafd766); }
.home-congiunzione__signature > svg { overflow: visible; }
.home-congiunzione__drag-hint { position: absolute; left: 0; bottom: 1rem; z-index: 2; display: flex; align-items: center; gap: .5rem; margin: 0; color: #526574; font: inherit; font-size: .75rem; line-height: 1.4; pointer-events: none; }
.home-congiunzione__drag-hint[hidden] { display: none; }
.home-congiunzione__drag-hint > span { color: #087c99; font-size: 1.25rem; }
@media (max-width: 48rem), (hover: none), (pointer: coarse) { .home-congiunzione__drag-hint { display: none; } }
.home-congiunzione__copy { pointer-events: none; }
.home-congiunzione__copy > * { pointer-events: auto; }
.home-motion-stage { position: absolute; z-index: 3; inset: 0; max-height: calc(100svh - 100px); pointer-events: none; }
.home-motion-stage[hidden] { display: none; }
.home-motion-stage > svg { position: absolute; top: 50%; left: 50%; width: 100%; height: auto; max-height: 70%; transform: translate(-50%, -50%); overflow: visible; }
.home-motion-flow { position: absolute; top: 0; left: calc(50% - 50vw); width: 100vw; height: 100%; pointer-events: none; background: radial-gradient(ellipse at 75% 45%, #10445a 0%, #102b42 42%, #0b1d30 85%); }
.home-motion-stage > svg { z-index: 1; }
.home-congiunzione__inner:has(.home-motion-flow) .home-motion-skip { color: #d5e7ef; mix-blend-mode: difference; }
.home-motion-skip { position: absolute; z-index: 4; right: 0; top: 1rem; padding: .5rem; border: 0; background: transparent; color: var(--color-text-muted); font: inherit; font-size: .8rem; cursor: pointer; }
.home-motion-skip[hidden] { display: none; }
.home-motion-skip:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }
@media (max-width: 64rem) {
  .home-motion-stage { max-height: calc(100svh - 80px); }
  .home-motion-skip { top: auto; bottom: 1.25rem; right: 50%; transform: translateX(50%); }
}
.service-composition__gesture > svg { display: block; width: 100%; height: auto; }
/* The coloured service panels remain readable with or without animation. */
.home .service-composition__index { display: grid; gap: 1.25rem; border: 0; }
.home .service-composition .service-entry { border: 0; padding-inline: 1.25rem; }
.home .service-composition .service-entry::before {
  opacity: var(--service-card-fill, 1); transform: none; transition: none;
  background: color-mix(in srgb, var(--service-wash) 65%, var(--color-background-page));
  border: 1px solid #0e22380d;
  box-shadow: 0 12px 24px -18px #0e223840;
}
.home .service-composition .service-entry--grafica-immagine-coordinata::before { background: #ECFAFD; }
.home .service-entry[data-service-draggable] { cursor: grab; }
.home .service-entry[data-service-dragging] { cursor: grabbing; user-select: none; }
.home .service-entry[data-service-draggable] a { cursor: pointer; }
.home .service-entry[data-service-dragging]::before { box-shadow: 0 18px 30px -18px #0e223859; }
@media (min-width: 64.0625rem) {
  .home .service-composition__index { margin-inline: 2.5rem; gap: 2rem; }
  .home .service-composition__slot:nth-child(odd) .service-entry { transform: translateX(-18px); }
  .home .service-composition__slot:nth-child(even) .service-entry { transform: translateX(18px); }
}
@media (max-width: 48rem) {
  .home .service-composition .service-entry { padding-inline: 1rem; }
}
.home-regia__visual .eg-visual__node,
.home-regia__visual .eg-visual__output { transform-box: fill-box; transform-origin: center; }
