/* Ponte hero -> Digital Core: le linee maggiori della griglia (192px) nascono nel fondo della hero e scendono nella parte alta di Digital Core. Solo con la scena Software. */
:root{--gp-x:0px;--gp-y:0px;--gp-o:1}
#top .hero__scrim::before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(4,4,10,0) 55%,#04040a 100%);opacity:0;transition:opacity .9s var(--ease)}
#top .hero__scrim::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,#1080FC 25%,#C112F9 75%,transparent);opacity:0;transition:opacity .9s var(--ease)}
#top::after{content:'';position:absolute;left:0;right:0;bottom:0;height:42%;z-index:2;pointer-events:none;opacity:0;transition:opacity .9s var(--ease);background-image:linear-gradient(90deg,rgba(16,128,252,.5) 0,rgba(16,128,252,.5) 1px,transparent 1px);background-size:192px 100%;background-repeat:repeat-x;background-position:var(--gp-x,0px) 0;-webkit-mask-image:linear-gradient(180deg,transparent,#000);mask-image:linear-gradient(180deg,transparent,#000)}
body:has(#top[data-scene='software']) #top .hero__scrim::before,body:has(#top[data-scene='software']) #top .hero__scrim::after,body:has(#top[data-scene='software']) #top::after{opacity:1}
#software::after{content:'';position:absolute;left:0;right:0;top:0;height:var(--gp-h,100svh);z-index:0;pointer-events:none;opacity:var(--gp-po,1);background-image:linear-gradient(90deg,rgba(16,128,252,.5) 0,rgba(16,128,252,.5) 1px,transparent 1px);background-size:192px 100%;background-repeat:repeat-x;background-position:var(--gp-x,0px) 0;transform:translateY(var(--gp-ty,0px)) perspective(620px) rotateX(var(--gp-a,0deg));transform-origin:50% var(--gp-hy,50%);-webkit-mask-image:linear-gradient(180deg,transparent var(--gp-m0,-1px),#000 var(--gp-m1,0px),#000 var(--gp-m2,4%),transparent var(--gp-m3,72%)),linear-gradient(90deg,transparent,#000 var(--gp-e,0%),#000 calc(100% - var(--gp-e,0%)),transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(180deg,transparent var(--gp-m0,-1px),#000 var(--gp-m1,0px),#000 var(--gp-m2,4%),transparent var(--gp-m3,72%)),linear-gradient(90deg,transparent,#000 var(--gp-e,0%),#000 calc(100% - var(--gp-e,0%)),transparent);mask-composite:intersect}
#software.is-fx .fx{z-index:1}
@media (max-width:899px){#top::after{height:34%;background-size:384px 100%}#software::after{background-size:384px 100%}}
@media (prefers-reduced-motion:reduce){#top .hero__scrim::before,#top .hero__scrim::after,#top::after{transition:none}}
