/* Movimenti originali Oceano: immersione, correnti, onde. */
.immersion-intro{display:none;position:fixed;inset:0;z-index:80;background:#061b2c;pointer-events:none;align-items:center;justify-content:center;contain:paint}
html[data-entry="full"] .immersion-intro{display:flex;animation:immersion-out 1.25s cubic-bezier(.65,0,.25,1) both}
.immersion-mark{position:relative;width:245px;text-align:center;animation:mark-emerge .55s ease-out both}
.immersion-mark img{width:100%;height:auto;border-radius:6px;box-shadow:0 15px 65px #0007}
.immersion-caption{display:block;margin-top:20px;color:#a9dced;font-size:9px;letter-spacing:.22em}
.waterline{position:absolute;left:-35px;right:-35px;top:50%;height:2px;background:#65dafa;box-shadow:0 0 20px #65dafa,0 0 45px #65dafa88;animation:waterline-rise 1s cubic-bezier(.4,0,.25,1) both}
html[data-entry="full"] .hero-content>.eyebrow{animation:surface-text .7s .6s both}
html[data-entry="full"] .hero h1{animation:surface-text .95s .69s both}
html[data-entry="full"] .hero-intro{animation:surface-text .8s .83s both}
html[data-entry="full"] .hero-actions{animation:surface-text .75s .99s both}
html[data-entry="soft"] .hero-content{animation:surface-text .55s both}
@keyframes immersion-out{0%,35%{clip-path:polygon(0 0,25% 0,50% 0,75% 0,100% 0,100% 100%,0 100%)}65%{clip-path:polygon(0 43%,25% 39%,50% 44%,75% 38%,100% 42%,100% 100%,0 100%)}100%{clip-path:polygon(0 110%,25% 104%,50% 108%,75% 103%,100% 110%,100% 100%,0 100%)}}
@keyframes mark-emerge{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}
@keyframes waterline-rise{0%{transform:translateY(65px) scaleX(.35);opacity:0}20%{opacity:1}100%{transform:translateY(-95px) scaleX(1.6);opacity:0}}
@keyframes surface-text{from{opacity:0;transform:translateY(25px);filter:blur(4px)}to{opacity:1;transform:none;filter:blur(0)}}
/* La corrente segue la posizione della sezione, senza scorrimento forzato. */
.slides{isolation:isolate;z-index:0}.hero-overlay{z-index:1}
.service-list.current-ready{position:relative;padding-left:24px;--current-progress:0}
.current-rail{position:absolute;left:0;top:0;bottom:0;width:2px;background:#cadde5;pointer-events:none}
.current-fill{position:absolute;inset:0;background:linear-gradient(#007dc7,#65dafa);transform-origin:top;transform:scaleY(var(--current-progress));will-change:transform}
.current-head{position:absolute;left:1px;top:calc(var(--current-progress) * 100%);width:9px;height:9px;background:#65dafa;border:2px solid #007dc7;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 5px #65dafa25,0 0 20px #65dafa88}
.current-ready .service-number{position:relative;min-width:24px;transition:color .35s}
.current-ready .service-number:before{content:'';position:absolute;inset:-5px -5px -4px;background:#d7eef8;border-radius:50%;opacity:0;transform:scale(.6);transition:opacity .4s,transform .4s;z-index:-1}
.current-ready .service-item{isolation:isolate;transition:border-color .4s}
.current-ready .service-item.current-reached{border-color:#78bdd7}
.current-ready .service-item.current-reached .service-number{color:#006598}
.current-ready .service-item.current-reached .service-number:before{opacity:1;transform:scale(1)}
/* Maschere e profondità sulle due finestre acquatiche. */
.motion-enabled .world-card.reveal{clip-path:inset(16% 0 0 0 round 4px);transition:opacity .75s,transform .75s,clip-path 1.05s cubic-bezier(.2,.7,.15,1)}
.motion-enabled .world-card.reveal.visible{clip-path:inset(0 0 0 0 round 4px)}
.motion-enabled .world-card{--drift-x:0px;--drift-y:0px;--title-x:0px;--title-y:0px}
.motion-enabled .world-card>img{transform:scale(1.055) translate(var(--drift-x),var(--drift-y));transition:transform .8s cubic-bezier(.2,.65,.3,1)}
.motion-enabled .world-card:hover>img{transform:scale(1.09) translate(var(--drift-x),var(--drift-y))}
.motion-enabled .world-content{transform:translate(var(--title-x),var(--title-y));transition:transform .8s cubic-bezier(.2,.65,.3,1)}
.circle-link{transition:background .25s,color .25s,transform .45s cubic-bezier(.2,.75,.2,1)}
.world-card:hover .circle-link,.circle-link:focus-visible{transform:rotate(45deg)}
.faq-answer{overflow:hidden}
summary:before,summary:after{content:''!important;position:absolute;right:5px;top:50%;width:12px;height:2px;background:#397e9c;transition:transform .3s,background .3s}
summary:after{transform:translateY(-50%)}
summary:before{transform:translateY(-50%) rotate(90deg)}
details[open] summary:before{transform:translateY(-50%) rotate(0deg)}
details[open] summary:before,details[open] summary:after{background:#007dc7}
.contact-form label{position:relative}
.contact-form input,.contact-form textarea,.contact-form select{transition:border-color .25s,box-shadow .3s,background .3s}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{background:#14384b;box-shadow:inset 0 -2px #65dafa,0 4px 16px #0002}
.contact-form label:focus-within{color:#65dafa}
.button{position:relative;overflow:hidden;isolation:isolate}
.button:before{content:'';position:absolute;z-index:-1;inset:-80% -20%;background:linear-gradient(110deg,transparent 35%,#ffffff35 50%,transparent 65%);transform:translateX(-100%) rotate(-8deg);transition:transform .6s}
.button:hover:before,.button:focus-visible:before{transform:translateX(100%) rotate(-8deg)}
.back-top{display:inline-flex;align-items:center;gap:12px}
.surface-arrow{display:inline-block;transition:transform .3s}
.back-top:hover .surface-arrow{transform:translateY(-5px)}
.back-top.surfacing .surface-arrow{animation:surface-bob .55s ease-in-out}
@keyframes surface-bob{50%{transform:translateY(-8px)}}
@media(max-width:600px){.immersion-mark{width:185px}.immersion-caption{font-size:8px}.service-list.current-ready{padding-left:19px}.motion-enabled .world-card.reveal{clip-path:inset(7% 0 0 0 round 4px)}.motion-enabled .world-card.reveal.visible{clip-path:inset(0 0 0 0 round 4px)}}
@media(prefers-reduced-motion:reduce){.immersion-intro{display:none!important}.current-rail{display:none}.service-list.current-ready{padding-left:0}.motion-enabled .world-card.reveal{clip-path:none}.motion-enabled .world-card>img,.motion-enabled .world-content{transform:none!important}summary:after{transition:none}.button:before{display:none}}
/* Persone e canali social. */
.about-section{background:#f2f7f8;border-top:1px solid #e1ebef}.about-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:90px}.about-copy>p{font-size:14px;color:#566875}.about-copy .about-lead{font-family:Manrope,Arial,sans-serif;font-size:22px;letter-spacing:-.025em;line-height:1.45;color:#0c2635}.about-values{display:flex;flex-wrap:wrap;gap:22px;margin-top:36px;color:#147999;font-size:11px;font-weight:600;letter-spacing:.06em}.about-copy .social-invite{font-size:12px;margin-top:25px}.social-links{display:flex;flex-wrap:wrap;gap:12px}.social-links>a{display:inline-flex;align-items:center;gap:9px;padding:10px 13px;border:1px solid #bdd7e2;border-radius:999px;font-size:11px;font-weight:600;transition:background .25s,border-color .25s,transform .25s}.social-links svg{width:19px;height:19px;flex-shrink:0}.social-links>a>span:last-child{color:#007dc7;margin-left:3px}.social-links>a:hover,.social-links>a:focus-visible{background:#d9f5ff;border-color:#75cbe6;transform:translateY(-2px)}.footer-social>p{font-size:12px;color:#9bb7c8}.footer-social .social-links>a{color:#ddecf4;border-color:#345367;font-size:10px;padding:7px 10px}.footer-social .social-links>a:hover,.footer-social .social-links>a:focus-visible{background:#113649;border-color:#65dafa}.footer-social .social-links>a>span:last-child{color:#65dafa}.footer-social .social-links svg{width:16px;height:16px}
@media(max-width:820px){.about-layout{gap:40px}.about-copy .about-lead{font-size:20px}}@media(max-width:600px){.about-layout{grid-template-columns:1fr;gap:25px}.about-values{margin-top:22px}.about-copy .about-lead{font-size:21px}.footer-social{width:100%}.footer-social .social-links{margin-top:12px}}
.hero-socials{position:absolute;right:24px;top:50%;transform:translateY(-50%);z-index:4;display:flex;flex-direction:column;align-items:center;gap:14px}.social-rail-label{font-size:8px;letter-spacing:.18em;color:#e2f6ff;margin:0}.hero-socials .social-links{flex-direction:column;gap:12px}.hero-socials .social-links>a{width:42px;height:42px;padding:10px;background:#061b2ca6;border:1px solid #c3edff88;color:#fff;backdrop-filter:blur(10px);justify-content:center}.hero-socials .social-links>a>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.hero-socials .social-links>a:hover,.hero-socials .social-links>a:focus-visible{background:#65dafa;color:#061b2c;border-color:#65dafa}
@media(max-width:600px){.hero-socials{right:20px;top:auto;bottom:105px;transform:none;gap:9px}.hero-socials .social-links{gap:9px}.hero-socials .social-links>a{width:36px;height:36px;padding:8px}.hero-socials .social-links svg{width:18px;height:18px}.hero-socials .social-rail-label{font-size:7px}}
.footer-social .social-cta{font-family:Manrope,Arial,sans-serif;font-size:15px;color:#e2f4fc;letter-spacing:-.02em;margin-bottom:12px}.footer-social .social-links>a{width:40px;height:40px;padding:9px;justify-content:center}.footer-social .social-links svg{width:20px;height:20px}.footer-social .social-links>a>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
/* Etichette editoriali: vetro scuro, tipografia leggera e fotografia aperta. */
.guide-image{border-radius:16px;isolation:isolate;background:#061b2c}
.guide-image:after{content:'';position:absolute;inset:0;border:1px solid #ffffff1f;border-radius:inherit;pointer-events:none}
.guide-image>span{top:16px;bottom:auto;left:16px;display:inline-flex;align-items:center;gap:8px;max-width:calc(100% - 32px);padding:8px 13px;border:1px solid #c3eaff38;border-radius:999px;background:rgba(4,25,40,.79);color:#f4fbff;font-size:10px;font-weight:500;line-height:1.4;letter-spacing:.025em;backdrop-filter:blur(14px) saturate(120%);-webkit-backdrop-filter:blur(14px) saturate(120%);box-shadow:0 2px 14px #00172512;pointer-events:none}
.guide-image>span:before{content:'';flex-shrink:0;width:5px;height:5px;border-radius:50%;background:#65dafa;box-shadow:0 0 9px #65dafa55}
@media(max-width:600px){.guide-image{border-radius:14px}.guide-image>span{top:14px;left:14px}}
/* Contrasto deciso e fronte ondulato per pulsanti e menu. */
.button,.nav-contact,.surface-float{--wave-fill:#0074af;--wave-text:#fff}
.button-dark,.nav-contact{--wave-fill:#65dafa;--wave-text:#061b2c}
.button:hover,.button:focus-visible,.nav-contact:hover,.nav-contact:focus-visible,.surface-float:hover,.surface-float:focus-visible{color:var(--wave-text)}
.button:before,.nav-contact:before,.surface-float:before{content:'';position:absolute;z-index:-1;inset:-45% -10% -10%;background:var(--wave-fill);border-radius:44% 51% 0 0 / 17% 21% 0 0;transform:translateY(110%) rotate(-7deg);transition:transform .65s cubic-bezier(.25,.7,.2,1);pointer-events:none}
.button:hover:before,.button:focus-visible:before,.nav-contact:hover:before,.nav-contact:focus-visible:before,.surface-float:hover:before,.surface-float:focus-visible:before{transform:translateY(0) rotate(0)}
.nav-contact{position:relative;isolation:isolate;overflow:hidden;transition:color .35s}
.nav-contact:hover span,.nav-contact:focus-visible span{color:inherit}
nav>a:not(.nav-contact){position:relative;isolation:isolate;overflow:hidden;padding-block:12px;transition:color .3s}
nav>a:not(.nav-contact):before{content:'';position:absolute;bottom:4px;left:0;right:0;height:6px;background:#007dc7;clip-path:polygon(0 50%,10% 15%,20% 0,30% 15%,40% 50%,50% 85%,60% 100%,70% 85%,80% 50%,90% 15%,100% 0,100% 55%,90% 70%,80% 100%,70% 100%,60% 100%,50% 100%,40% 95%,30% 60%,20% 45%,10% 60%,0 95%);transform:translateX(-110%);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
nav>a:not(.nav-contact):hover:before,nav>a:not(.nav-contact):focus-visible:before{transform:translateX(0)}
.slide-arrow{display:grid;place-items:center;width:40px;height:40px;border:1px solid #b0d4e1;border-radius:50%;background:#061b2c80;color:#fff;font-size:19px;transition:background .25s,color .25s}
.slide-arrow:hover,.slide-arrow:focus-visible{background:#65dafa;color:#061b2c}
.slider-controls{gap:14px}
/* Le due schede condividono righe e spazi per mantenere i testi allineati. */
.world-content{display:grid;grid-template-rows:32px 52px minmax(66px,auto);align-content:end}
.world-content .eyebrow{margin:0;align-self:start}
.world-content h3{margin:0;align-self:start}
.world-content p:not(.eyebrow){margin:0;max-width:none;padding-right:52px;min-height:66px}
.world-content .circle-link{bottom:3px}
.surface-float{position:fixed;right:26px;bottom:26px;z-index:35;min-height:48px;max-width:calc(100vw - 40px);padding:13px 19px;border:1px solid #5edbff;background:#061b2c;color:#fff;border-radius:30px;box-shadow:0 5px 24px #00142535;isolation:isolate;overflow:hidden;font-size:11px;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(18px);transition:opacity .3s,transform .3s,visibility .3s,color .3s}
.surface-float.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
@media(max-width:820px){nav>a:not(.nav-contact):before{right:auto;width:100px;bottom:7px}.world-content{grid-template-rows:32px 48px minmax(86px,auto)}.world-content p:not(.eyebrow){min-height:86px}}
@media(max-width:600px){.slider-controls{gap:10px}.slide-arrow{width:36px;height:36px}.slide-dot{min-width:31px;gap:7px}.slide-dot span{width:12px}.slide-dot.selected span{width:30px}.surface-float{right:16px;bottom:16px;padding:12px 16px;font-size:10px}.world-content{grid-template-rows:32px 48px minmax(86px,auto)}}
@media(prefers-reduced-motion:reduce){.button:before,.nav-contact:before,.surface-float:before{display:block;transition:none}.button:hover:before,.button:focus-visible:before,.nav-contact:hover:before,.nav-contact:focus-visible:before,.surface-float:hover:before,.surface-float:focus-visible:before{transform:none}}
