/* NRC Company wow layer. Tutte le regole che nascondono contenuto valgono solo sotto html.wow-on (aggiunta da JS). */

/* 1. Reveal generico */
html.wow-on .wow{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1)}
html.wow-on .wow.wow-in{opacity:1;transform:none}

/* 2. Tipografia a parole mascherate */
html.wow-on [data-wow-split] .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
html.wow-on [data-wow-split] .w>i{font-style:normal;display:inline-block;transform:translateY(115%);transition:transform .9s cubic-bezier(.22,1,.36,1)}
html.wow-on [data-wow-split].wow-in .w>i{transform:none}

/* 3. Marquee tecnologie */
html.wow-on .wow-marquee{display:flex;flex-wrap:nowrap;overflow:hidden;gap:12px;justify-content:flex-start;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
html.wow-on .wow-marquee-track{display:flex;gap:12px;flex-shrink:0;min-width:max-content;animation:wowMarquee var(--marquee-dur,30s) linear infinite}
html.wow-on .wow-marquee:hover .wow-marquee-track{animation-play-state:paused}
@keyframes wowMarquee{to{transform:translateX(calc(-100% - 12px))}}

/* 4. Micro interazioni desktop */
html.wow-on .wow-magnet{transition:transform .18s ease}
html.wow-on .wow-tilt.wow-done{transition:transform .18s ease,box-shadow .18s ease;will-change:transform}

/* 5. Parallax layer */
html.wow-on .hero-glow,html.wow-on .hero-grid{will-change:transform}

/* 6. Uniforma le curve degli elementi data-aos esistenti (animati da main.min.js) */
html.wow-on [data-aos]{transition-duration:.9s;transition-timing-function:cubic-bezier(.22,1,.36,1)}

/* 7. Mobile: reveal piu brevi */
@media (max-width:768px){
html.wow-on .wow{transform:translateY(16px);transition-duration:.6s}
html.wow-on [data-wow-split] .w>i{transition-duration:.6s}
}

/* 8. Barra di progresso scroll */
html.wow-on .wow-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,#38b6ff,#a0d8ff);transform:scaleX(0);transform-origin:0 50%;z-index:2000;pointer-events:none}

/* 9. Spotlight sulle card */
html.wow-on .wow-spot::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(56,182,255,.14),transparent 65%);opacity:0;transition:opacity .25s ease;pointer-events:none}
html.wow-on .wow-spot:hover::after{opacity:1}

/* 10. Sicurezza: con reduced-motion tutto statico anche se wow-on fosse presente */
@media (prefers-reduced-motion:reduce){
html.wow-on .wow{opacity:1;transform:none;transition:none}
html.wow-on [data-wow-split] .w>i{transform:none;transition:none}
html.wow-on .wow-marquee-track{animation:none}
}

/* Page curtain: slat wipe between internal pages */
.curtain{position:fixed;inset:0;z-index:4000;display:flex;pointer-events:none}
.curtain i{flex:1;position:relative;background:var(--primary-dark,#0f2640);transform:translateY(101%)}
.curtain i::before,.curtain i::after{content:"";position:absolute;left:0;right:0;height:3px;background:var(--accent,#38b6ff)}
.curtain i::before{top:0}
.curtain i::after{bottom:0}
.curtain-enter{pointer-events:auto}
.curtain-enter i{transition:transform .55s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--ci,0) * .05s)}
.curtain-enter.curtain-in i{transform:translateY(0)}
.curtain-cover i{transform:translateY(0);transition:transform .6s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--ci,0) * .055s)}
.curtain-cover.curtain-out i{transform:translateY(-101%)}
@media(prefers-reduced-motion:reduce){.curtain{display:none}}

html.curtain-arrival .preloader{display:none!important}
