.elementor-80 .elementor-element.elementor-element-5c06260{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}body.elementor-page-80:not(.elementor-motion-effects-element-type-background), body.elementor-page-80 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}@media(max-width:767px){.elementor-80 .elementor-element.elementor-element-5c06260{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}}/* Start custom CSS for html, class: .elementor-element-4d08214 */li {
    FONT-SIZE: 14.5PX ! IMPORTANT;
    COLOR: #111111A6;
}

/* =========================
GLOBAL LIST STYLE (solo dentro il portfolio)
========================= */

.asv-root li{
font-size:14.5px !important;
color:#111111A6;
}


/* =========================
LOADER 8BIT INTRO
========================= */

.asv-loader{
position:fixed;
inset:0;
color:#fff;
z-index:9999;
display:flex;
align-items:center;
justify-content:center;
overflow:hidden;
transition:opacity .55s ease, visibility .55s ease;
background:#6cc7ff;
}


/* CRT scanlines */

.asv-loader::before{
content:"";
position:absolute;
inset:0;
background:repeating-linear-gradient(
to bottom,
rgba(0,0,0,0) 0px,
rgba(0,0,0,0) 3px,
rgba(0,0,0,.06) 4px
);
mix-blend-mode:multiply;
opacity:.55;
pointer-events:none;
z-index:1;
}


/* noise texture */

.asv-loader::after{
content:"";
position:absolute;
inset:0;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
opacity:.05;
mix-blend-mode:overlay;
pointer-events:none;
z-index:2;
}


/* =========================
SCENA 8BIT
========================= */

.asv-8bit{
position:absolute;
inset:0;
z-index:0;
overflow:hidden;
}


/* clouds */

.asv-8bit__cloud{
position:absolute;
top:12%;
width:220px;
height:70px;
opacity:.92;
filter:drop-shadow(0 4px 0 rgba(0,0,0,.15));
background:
linear-gradient(#fff,#fff) 20px 28px/40px 18px no-repeat,
linear-gradient(#fff,#fff) 60px 18px/60px 26px no-repeat,
linear-gradient(#fff,#fff) 120px 28px/52px 18px no-repeat,
linear-gradient(#fff,#fff) 70px 42px/90px 18px no-repeat,
linear-gradient(#fff,#fff) 30px 42px/52px 18px no-repeat;
border-radius:8px;
}

.asv-8bit__cloud--1{
left:-260px;
animation:cloudMove 8.5s linear infinite;
}

.asv-8bit__cloud--2{
top:22%;
left:-320px;
transform:scale(.82);
opacity:.85;
animation:cloudMove 10.8s linear infinite;
}

@keyframes cloudMove{
to{transform:translate3d(calc(100vw + 520px),0,0);}
}


/* hills */

.asv-8bit__hill{
position:absolute;
left:-10%;
right:-10%;
bottom:110px;
height:220px;

background:
radial-gradient(closest-side at 25% 80%, #3cc56e 0 55%, transparent 56%),
radial-gradient(closest-side at 55% 85%, #2eb95f 0 60%, transparent 61%),
radial-gradient(closest-side at 80% 78%, #41cf75 0 52%, transparent 53%);

opacity:.95;
animation:hillMove 3.6s ease-in-out infinite;
}

@keyframes hillMove{
0%{transform:translate3d(0,0,0);}
50%{transform:translate3d(-1.2%,0,0);}
100%{transform:translate3d(0,0,0);}
}


/* ground */

.asv-8bit__ground{
position:absolute;
left:0;
right:0;
bottom:0;
height:140px;

background:

linear-gradient(#2fd060,#2fd060) 0 0/100% 10px no-repeat,

repeating-linear-gradient(
to right,
#b35a2e 0 32px,
#a24e28 32px 34px
) 0 10px/100% 42px repeat,

repeating-linear-gradient(
to right,
#b35a2e 0 32px,
#a24e28 32px 34px
) 16px 52px/100% 42px repeat,

repeating-linear-gradient(
to right,
#b35a2e 0 32px,
#a24e28 32px 34px
) 0 94px/100% 42px repeat;

box-shadow:0 -6px 0 rgba(0,0,0,.18) inset;

animation:groundMove 1.2s linear infinite;
}

@keyframes groundMove{

0%{
background-position:
0 0,
0 10px,
16px 52px,
0 94px;
}

100%{
background-position:
0 0,
-64px 10px,
-48px 52px,
-64px 94px;
}

}


/* =========================
SCAN LINE
========================= */

.asv-loader__scan{
position:absolute;
left:-20%;
right:-20%;
height:2px;
top:0;
background:linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent);
opacity:.35;
animation:scanMove 1.2s linear infinite;
pointer-events:none;
z-index:3;
}

@keyframes scanMove{

0%{
transform:translate3d(0,-20px,0);
}

100%{
transform:translate3d(0,calc(100vh + 20px),0);
}

}


/* =========================
LOADER UI
========================= */

.asv-loader__inner{
width:min(520px,86vw);
position:relative;
z-index:4;
}

.asv-loader__name{
font-weight:700;
font-size:clamp(16px,3.6vw,22px);
line-height:1.15;
margin-bottom:16px;
opacity:0;
transform:translate3d(0,14px,0);
animation:loaderName .55s cubic-bezier(.2,.9,.2,1) forwards;
text-shadow:2px 2px 0 rgba(0,0,0,.45);
}

@keyframes loaderName{
to{
opacity:1;
transform:translate3d(0,0,0);
}
}


.asv-loader__bar{
height:2px;
background:rgba(255,255,255,.28);
overflow:hidden;
border-radius:999px;
position:relative;
}

.asv-loader__fill{
height:100%;
width:0%;
background:#fff;
border-radius:999px;
}


/* =========================
DOTS
========================= */

.asv-loader__dots{
display:inline-flex;
gap:4px;
}

.asv-loader__dots span{
width:4px;
height:4px;
border-radius:50%;
background:rgba(255,255,255,.95);
opacity:.35;
animation:dotMove 1s ease-in-out infinite;
}

.asv-loader__dots span:nth-child(2){
animation-delay:.12s;
}

.asv-loader__dots span:nth-child(3){
animation-delay:.24s;
}

@keyframes dotMove{

0%,100%{
transform:translate3d(0,0,0);
opacity:.25;
}

50%{
transform:translate3d(0,-4px,0);
opacity:.95;
}

}


/* =========================
EXIT
========================= */

.asv-loader.is-hidden{
opacity:0;
visibility:hidden;
pointer-events:none;
}

.asv-loader.asv-exit{
transform:scale(1.02);
transition:opacity .55s ease, visibility .55s ease, transform .55s ease;
}

/* FAILSAFE: se per qualunque motivo JS non gira, nascondi il loader dopo 3.2s */
.asv-loader{
  animation: asvForceHide .01s linear 3.2s forwards;
}
@keyframes asvForceHide{
  to{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
  }
}

/* FAILSAFE: mostra la pagina principale dopo 3.2s */
#asvSite{
  animation: asvForceShow .01s linear 3.2s forwards;
}
@keyframes asvForceShow{
  to{ opacity:1; }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-5c06260 *//* =========================
MOBILE FULL HEIGHT (no white gap) — Elementor override
Metti questo NEL CSS di Elementor (con !important)
========================= */

/* Root wrapper: usa DVH (viewport dinamico) */
.w95-root{
  height: 100dvh !important;
  min-height: 100dvh !important;
  overflow: hidden !important;
}

/* Desktop area: sempre full height meno taskbar */
.w95-desktop{
  height: calc(100dvh - 44px) !important;
  min-height: calc(100dvh - 44px) !important;
}

/* Taskbar incollata al fondo */
.w95-taskbar{
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
}

/* Fallback per browser che non supportano dvh */
@supports not (height: 100dvh){
  .w95-root{
    height: 100vh !important;
    min-height: 100vh !important;
  }
  .w95-desktop{
    height: calc(100vh - 44px) !important;
    min-height: calc(100vh - 44px) !important;
  }
}

/* Mobile: rinforzo (Elementor a volte forza altezze/section) */
@media (max-width: 980px){

  .w95-root{
    height: 100dvh !important;
    min-height: 100dvh !important;
  }

  .w95-desktop{
    height: calc(100dvh - 44px) !important;
    min-height: calc(100dvh - 44px) !important;
  }

  /* Se Elementor mette padding/margini sotto, li annulli qui */
  .w95-root,
  .w95-desktop{
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
}/* End custom CSS */
/* Start custom CSS *//* CRT overlay */
/*
.crt::before{
  content:"";
  position:fixed;
  inset:0;
  background:repeating-linear-gradient(
    0deg,
    rgba(0,0,0,0.12),
    rgba(0,0,0,0.12) 1px,
    transparent 1px,
    transparent 2px
  );
  pointer-events:none;
  z-index:9999;
}
@keyframes flicker{
  0%{opacity:.95}
  50%{opacity:1}
  100%{opacity:.96}
}
.crt{ animation:flicker .15s infinite; }
*//* End custom CSS */