/* UNIDEA GROUP — Live Stage Neon */
@font-face{font-family:Sora;font-weight:300;font-display:swap;src:url(../fonts/sora-300.woff2) format("woff2")}
@font-face{font-family:Sora;font-weight:400;font-display:swap;src:url(../fonts/sora-400.woff2) format("woff2")}
@font-face{font-family:Sora;font-weight:600;font-display:swap;src:url(../fonts/sora-600.woff2) format("woff2")}
@font-face{font-family:Sora;font-weight:800;font-display:swap;src:url(../fonts/sora-800.woff2) format("woff2")}
@font-face{font-family:Anton;font-weight:400;font-display:swap;src:url(../fonts/anton-400.woff2) format("woff2")}

:root{--bg:#05050a;--bg2:#0a0a14;--line:#1d1d2c;--line2:#26263a;--tx:#f1f0f7;--mut:#cfcde0;--dim:#9a98b3;--faint:#6c6a85;
--pink:#ff2e93;--cyan:#00e5ff;--yel:#f6e701;--vio:#8a6bff;--org:#ff8a2e;--lime:#b7ff4a;--w:1280px;--gut:48px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--tx);font-family:Sora,system-ui,sans-serif;line-height:1.6;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%}
h1,h2,h3,p{margin-top:0}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-999px;top:8px;background:var(--pink);color:var(--bg);padding:10px 16px;border-radius:6px;font-weight:800;z-index:100}
.skip:focus{left:8px}
.wrap{max-width:var(--w);margin:0 auto;padding:0 var(--gut)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* animazioni */
@property --a{syntax:'<angle>';initial-value:0deg;inherits:false}
@keyframes ang{to{--a:360deg}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes drift1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(18vw,10vh) scale(1.35)}}
@keyframes drift2{0%,100%{transform:translate(0,0) scale(1.1)}50%{transform:translate(-20vw,-8vh) scale(.8)}}
@keyframes drift3{0%,100%{transform:translate(0,0) scale(.9)}50%{transform:translate(-10vw,14vh) scale(1.4)}}
@keyframes beam{0%{transform:translateX(-60vw) rotate(24deg);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateX(140vw) rotate(24deg);opacity:0}}
@keyframes flicker{0%,18%,22%,25%,53%,57%,100%{opacity:1;text-shadow:0 0 14px rgba(246,231,1,.9),0 0 48px rgba(246,231,1,.6),0 0 110px rgba(255,46,147,.55)}20%,24%,55%{opacity:.45;text-shadow:none}}
@keyframes rise{from{opacity:0;transform:translateY(60px) scale(.96)}to{opacity:1;transform:none}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes eq{0%,100%{transform:scaleY(.12)}50%{transform:scaleY(1)}}
@keyframes pulse{0%,100%{box-shadow:0 0 24px rgba(255,46,147,.45)}50%{box-shadow:0 0 64px rgba(255,46,147,1),0 0 120px rgba(255,46,147,.5)}}
@keyframes glitch{0%,92%,100%{transform:none;clip-path:none}93%{transform:translate(-6px,2px);clip-path:inset(10% 0 55% 0)}95%{transform:translate(6px,-2px);clip-path:inset(60% 0 8% 0)}97%{transform:translate(-3px,0);clip-path:none}}
@keyframes kb{from{transform:scale(1.04)}to{transform:scale(1.22) translate(-2%,-2%)}}
.rise{opacity:0;animation:rise 1.1s cubic-bezier(.2,.8,.2,1) forwards}
.neon{display:inline-block;color:var(--yel);animation:flicker 5s linear infinite}
.glitch{display:inline-block;animation:glitch 6s steps(1) infinite}
.pulse{animation:pulse 2.2s ease-in-out infinite}
.kb{animation:kb 22s ease-in-out infinite alternate}
.rise.glitch{animation:rise 1.1s cubic-bezier(.2,.8,.2,1) forwards,glitch 6s steps(1) infinite}
.rise.neon{animation:rise 1.1s cubic-bezier(.2,.8,.2,1) forwards,flicker 5s linear infinite}
.reveal{opacity:1}
.js .reveal{opacity:0;transform:translateY(40px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}
.js .reveal.in{opacity:1;transform:none}
@supports (animation-timeline:view()){.js .reveal{opacity:1;transform:none;transition:none;animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 60%}}

/* header */
.hdr{position:sticky;top:0;z-index:50;background:rgba(5,5,10,.72);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s,background .3s}
.hdr.stuck{border-color:var(--line);background:rgba(5,5,10,.88)}
.hdr .in{max-width:var(--w);margin:0 auto;padding:16px var(--gut);display:flex;align-items:center;justify-content:space-between;gap:16px}
.logo img{display:block;height:48px;width:auto}
.nav{display:flex;gap:28px;align-items:center;font-size:14px;letter-spacing:.04em}
.nav a{padding:6px 0;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.nav a:hover,.nav a[aria-current]{border-color:var(--cyan);color:#fff}
.nav a.cta{border:1px solid var(--pink);color:var(--pink);padding:10px 22px;border-radius:6px;transition:background .2s,color .2s}
.nav a.cta:hover,.nav a.cta[aria-current]{background:var(--pink);color:var(--bg)}
.burger{display:none;background:none;border:1px solid var(--line2);border-radius:8px;width:44px;height:44px;cursor:pointer;color:var(--tx);padding:0;position:relative}
.burger i{position:absolute;left:11px;right:11px;height:2px;background:currentColor;border-radius:2px;transition:transform .3s,opacity .3s}
.burger i:nth-child(1){top:14px}.burger i:nth-child(2){top:21px}.burger i:nth-child(3){top:28px}
.burger[aria-expanded=true] i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded=true] i:nth-child(2){opacity:0}
.burger[aria-expanded=true] i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* bottoni */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:14px 30px;border-radius:6px;font:inherit;font-weight:800;border:1px solid transparent;cursor:pointer;transition:transform .25s,background .25s}
.btn:hover{transform:translateY(-3px)}
.btn.pri{background:var(--pink);color:var(--bg)}
.btn.sec{border-color:#3a3a52;font-weight:600;color:var(--tx)}
.btn.sec:hover{border-color:var(--cyan)}
.lnk{color:var(--cyan);font-weight:600;border-bottom:1px solid var(--cyan);padding-bottom:3px}

/* titoli sezione */
.h2{margin:0;font-weight:800;font-size:clamp(30px,4.5vw,56px);line-height:1.05;text-transform:uppercase;letter-spacing:-.02em}
.h2 b{font-weight:800}
.c-cy{color:var(--cyan)}.c-pk{color:var(--pink)}.c-ye{color:var(--yel)}
.eyebrow{font-size:12px;letter-spacing:.3em;color:var(--cyan);text-transform:uppercase;font-weight:600}
.sct{padding:112px 0 0}

/* hero */
.hero{position:relative;min-height:clamp(620px,90vh,900px);display:flex;align-items:center;overflow:hidden}
.hero video,.hero .bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.7}
.hero .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,5,10,.55) 0%,rgba(5,5,10,.78) 70%,var(--bg) 100%)}
.blob{position:absolute;border-radius:50%;filter:blur(90px);will-change:transform;mix-blend-mode:screen;pointer-events:none}
.b1{width:620px;height:620px;left:-8%;top:-10%;background:rgba(255,46,147,.55);animation:drift1 14s ease-in-out infinite}
.b2{width:700px;height:700px;right:-10%;bottom:-20%;background:rgba(0,229,255,.45);animation:drift2 17s ease-in-out infinite}
.b3{width:460px;height:460px;left:40%;top:-15%;background:rgba(246,231,1,.35);animation:drift3 12s ease-in-out infinite}
.beam{position:absolute;top:-20%;width:90px;height:150%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);filter:blur(10px);animation:beam 7s linear infinite;pointer-events:none}
.ring{position:absolute;right:6%;top:50%;width:520px;height:520px;margin-top:-260px;border-radius:50%;background:conic-gradient(#ff2e93,#00e5ff,#f6e701,#8a6bff,#ff2e93);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px));opacity:.65;animation:spin 16s linear infinite;pointer-events:none}
.ring2{width:380px;height:380px;margin-top:-190px;right:calc(6% + 70px);animation-direction:reverse;animation-duration:11s;opacity:.4}
.pixels{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(0,0,0,.7) 1.2px,transparent 1.8px);background-size:7px 7px;mix-blend-mode:multiply;pointer-events:none}
.eq{position:absolute;left:0;right:0;bottom:0;height:150px;display:flex;gap:6px;padding:0 var(--gut);opacity:.5;pointer-events:none}
.eq i{flex:1;display:block;height:100%;transform-origin:bottom;background:linear-gradient(0deg,var(--pink),var(--cyan));border-radius:3px 3px 0 0;animation:eq var(--t,1.2s) ease-in-out infinite;animation-delay:var(--d,0s)}
.hero .txt{position:relative;z-index:2;max-width:var(--w);margin:0 auto;padding:100px var(--gut) 140px;display:flex;flex-direction:column;gap:32px;width:100%}
.hero h1{margin:0;font-weight:800;font-size:clamp(46px,9vw,136px);line-height:.95;letter-spacing:-.035em;text-transform:uppercase}
.hero h1 span{display:inline-block}
.hero p.lead{margin:0;max-width:560px;font-size:18px;font-weight:300;color:var(--mut)}
.ctas{display:flex;flex-wrap:wrap;gap:16px}

/* striscia ticker */
.ticker{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg2);padding:22px 0;overflow:hidden;white-space:nowrap}
.track{display:flex;width:max-content;animation:marquee 26s linear infinite}
.track.slow{animation-duration:48s}
.ticker .track{font-weight:800;font-size:22px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.half{display:flex;gap:48px;padding-right:48px;flex-shrink:0}

/* lane lavori + card */
.lanes{overflow:hidden}
.lane{overflow:hidden;margin-top:16px;padding:6px 0}
.lane .track{animation-duration:110s}
.lane.l2 .track{animation-direction:reverse;animation-duration:130s}
.lane.l3 .track{animation-duration:150s}
.lane:hover .track,.lane:focus-within .track{animation-play-state:paused}
.lane .half{gap:16px;padding-right:16px}
.card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;padding:24px;border-radius:14px;overflow:hidden;background:var(--bg2);aspect-ratio:16/10;transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s}
.lane .card{flex:0 0 auto;width:min(78vw,540px)}
.card::before{content:"";z-index:1;position:absolute;inset:0;background-image:radial-gradient(circle,rgba(0,0,0,.55) 1px,transparent 1.6px);background-size:6px 6px;pointer-events:none}
.card::after{content:"";z-index:2;position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.4) 50%,transparent 70%);transform:translateX(-130%);transition:transform .9s;pointer-events:none}
.card:hover,.card:focus-visible{transform:translateY(-14px) scale(1.025);box-shadow:0 30px 80px rgba(255,46,147,.35)}
.card:hover::after,.card:focus-visible::after{transform:translateX(130%)}
.card .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,.8,.2,1)}
.card:hover .ph{transform:scale(1.12)}
.card .shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,5,10,.94) 0%,rgba(5,5,10,.55) 28%,rgba(5,5,10,0) 58%)}
.card .tag{position:relative;z-index:3;font-size:11px;letter-spacing:.25em;color:var(--ac,var(--yel));font-weight:600;text-transform:uppercase}
.card .ttl{position:relative;z-index:3;font-weight:800;font-size:22px;line-height:1.15}
.head-row{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:flex-end;margin-bottom:32px}

/* griglia lavori */
.filters{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 36px}
.filters button{background:transparent;border:1px solid var(--line2);color:var(--mut);font:inherit;font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;padding:11px 22px;border-radius:999px;cursor:pointer;min-height:44px;transition:all .25s}
.filters button:hover{border-color:var(--cyan);color:#fff}
.filters button[aria-pressed=true]{background:var(--pink);border-color:var(--pink);color:var(--bg)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px}
.grid .card[hidden]{display:none}
.count{color:var(--dim);font-size:14px;margin:0 0 20px}

/* banner */
.banner{position:relative;min-height:560px;overflow:hidden;display:flex;align-items:center;justify-content:center;margin-top:96px}
.banner>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.banner .veil{position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(5,5,10,.15) 0%,rgba(5,5,10,.78) 85%),linear-gradient(180deg,var(--bg) 0%,rgba(5,5,10,0) 22%,rgba(5,5,10,0) 78%,var(--bg) 100%)}
.banner .in{position:relative;z-index:2;text-align:center;padding:48px;max-width:980px}
.banner .big{font-weight:800;font-size:clamp(34px,6.5vw,92px);line-height:1;text-transform:uppercase;letter-spacing:-.03em;text-shadow:0 0 60px rgba(255,46,147,.6)}

/* servizi */
.svcs{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px}
.svc{border:2px solid transparent;border-radius:14px;padding:32px;display:flex;flex-direction:column;gap:12px;background:linear-gradient(var(--bg2),var(--bg2)) padding-box,conic-gradient(from var(--a),var(--c),var(--bg) 30%,var(--bg) 70%,var(--c)) border-box;animation:ang 6s linear infinite;transition:transform .4s,box-shadow .4s}
.svc:hover{transform:translateY(-8px);box-shadow:0 20px 60px -10px var(--c)}
.svc .n{color:var(--c);font-weight:800;font-size:13px;letter-spacing:.25em}
.svc h3{margin:0;font-weight:800;font-size:20px;text-transform:uppercase;letter-spacing:.02em}
.svc p{margin:0;font-weight:300;color:var(--mut)}

/* servizi pagina (elenco esteso) */
.svc-long{display:flex;flex-direction:column;gap:20px}
.svc-row{display:grid;grid-template-columns:110px 1fr;gap:28px;padding:36px 0;border-top:1px solid var(--line)}
.svc-row:last-child{border-bottom:1px solid var(--line)}
.svc-row .num{font-family:Anton,sans-serif;font-size:72px;line-height:1;color:transparent;-webkit-text-stroke:2px var(--c)}
.svc-row h3{margin:0 0 10px;font-weight:800;font-size:clamp(22px,3vw,34px);text-transform:uppercase;letter-spacing:-.01em}
.svc-row p{margin:0;max-width:760px;font-weight:300;font-size:18px;color:var(--mut)}

/* fasi */
.steps{position:relative;display:flex;flex-wrap:wrap;border:1px solid var(--line2);border-radius:14px;overflow:hidden}
.steps>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.9}
.steps .veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,10,.9),rgba(5,5,10,.78))}
.steps .st{flex:1 1 300px;position:relative;padding:36px;border-right:1px solid rgba(255,255,255,.14)}
.steps .st:last-child{border-right:0}
.steps .st .k{font-weight:800;font-size:13px;letter-spacing:.25em}
.steps .st h3{margin:8px 0;font-weight:800;font-size:22px;text-transform:uppercase}
.steps .st p{margin:0;font-weight:300;color:var(--mut)}

/* chi siamo */
.about{display:flex;flex-wrap:wrap;gap:56px}
.about>div:first-child{flex:1 1 400px;display:flex;flex-direction:column;gap:32px}
.prose{flex:1 1 480px;display:flex;flex-direction:column;gap:20px;font-weight:300;font-size:17px;color:var(--mut)}
.prose p{margin:0}
.prose ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.prose li::marker{color:var(--pink)}
.prose .quote{font-weight:600;font-size:21px;line-height:1.4;color:var(--tx);border-left:3px solid var(--pink);padding-left:20px}
.prose strong{color:var(--tx);font-weight:600}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:56px}
.stat{border:1px solid var(--line2);border-radius:14px;padding:28px;background:var(--bg2)}
.stat b{display:block;font-weight:800;font-size:48px;line-height:1;color:var(--c)}
.stat span{color:var(--dim);font-size:14px}

/* strip outline */
.strip{overflow:hidden;padding:72px 0;margin-top:112px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:radial-gradient(600px 200px at 50% 50%,rgba(255,46,147,.18),transparent 70%)}
.outline{font-family:Anton,sans-serif;font-weight:400;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;color:transparent;-webkit-text-stroke:2px var(--pink);font-size:clamp(70px,11vw,170px);line-height:1;padding:0 28px}

/* contatti */
.contact{position:relative;overflow:hidden;margin-top:0}
.contact>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.contact .veil{position:absolute;inset:0;background:linear-gradient(180deg,var(--bg) 0%,rgba(5,5,10,.72) 30%,rgba(5,5,10,.82) 100%)}
.contact .in{position:relative;max-width:var(--w);margin:0 auto;padding:112px var(--gut);display:flex;flex-wrap:wrap;gap:56px}
.contact .info{flex:1 1 320px;display:flex;flex-direction:column;gap:28px}
.lab{font-size:11px;letter-spacing:.25em;color:var(--cyan);font-weight:600;text-transform:uppercase}
.contact .val{margin-top:4px;font-weight:300;font-size:18px}
.contact .val a{border-bottom:1px solid var(--pink)}
form.f{flex:2 1 460px;display:flex;flex-direction:column;gap:16px}
.f .row{display:flex;flex-wrap:wrap;gap:16px}
.f label{flex:1 1 220px;display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--dim)}
.f input,.f textarea{background:var(--bg2);border:1px solid #2a2a40;border-radius:8px;padding:14px 16px;color:var(--tx);font:inherit;font-size:16px;width:100%}
.f input:focus,.f textarea:focus{border-color:var(--cyan);outline:none;box-shadow:0 0 0 3px rgba(0,229,255,.18)}
.f .hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.f .note{font-size:12px;color:var(--faint);margin:0}
.f .msg{min-height:24px;font-size:15px;margin:0}
.f .msg.ok{color:var(--lime)}.f .msg.err{color:var(--pink)}

/* footer */
.ftr{border-top:1px solid var(--line);background:var(--bg)}
.ftr .in{max-width:var(--w);margin:0 auto;padding:44px var(--gut) 28px;display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between}
.ftr .col{display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--dim)}
.ftr .col h4{margin:0 0 6px;font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:var(--cyan);font-weight:600}
.ftr .col a:hover{color:#fff}
.ftr .bot{max-width:var(--w);margin:0 auto;padding:18px var(--gut) 28px;border-top:1px solid var(--line);font-size:12px;color:var(--faint);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}
.ftr .col img{height:44px!important;width:auto!important;max-width:none!important;aspect-ratio:193/57;object-fit:contain;align-self:flex-start;flex:0 0 auto;display:block;margin-bottom:12px}

/* scheda lavoro */
.w-hero{position:relative;min-height:520px;display:flex;align-items:flex-end;overflow:hidden}
.w-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.75}
.w-hero .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,5,10,.45) 0%,rgba(5,5,10,.7) 55%,var(--bg) 100%)}
.w-hero .in{position:relative;z-index:2;max-width:var(--w);margin:0 auto;width:100%;padding:120px var(--gut) 56px;display:flex;flex-direction:column;gap:20px}
.w-hero h1{margin:0;font-weight:800;font-size:clamp(34px,6vw,84px);line-height:1;letter-spacing:-.03em;text-transform:uppercase;max-width:1000px;text-wrap:balance}
.w-hero .intro{max-width:820px;font-size:clamp(16px,1.5vw,19px);font-weight:300;color:var(--mut)}
.w-hero .intro p{margin:0 0 12px}
.crumbs{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.crumbs a{color:var(--cyan)}
.chips{display:flex;gap:10px;flex-wrap:wrap}
.chip{display:inline-block;border:1px solid var(--ac,var(--pink));color:var(--ac,var(--pink));font-size:11px;letter-spacing:.25em;font-weight:600;padding:6px 14px;border-radius:999px;text-transform:uppercase}
.w-body{display:flex;flex-wrap:wrap;gap:56px;padding-top:72px}
.w-body h2{flex:1 1 320px;margin:0;font-weight:800;font-size:clamp(26px,3.4vw,44px);line-height:1.1;text-transform:uppercase;letter-spacing:-.02em}
.w-body .prose{flex:1.6 1 480px}
.media{display:grid;gap:20px;margin-top:72px;grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr))}
.vid{position:relative;border-radius:14px;overflow:hidden;background:#000;border:1px solid var(--line2);aspect-ratio:16/9}
.vid.portrait{aspect-ratio:9/16;max-height:80vh;justify-self:center;width:auto}
.vid video,.vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}
.yt{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;cursor:pointer;background:#000;color:#fff}
.yt img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.7;transition:opacity .3s,transform .8s}
.yt:hover img{opacity:.9;transform:scale(1.04)}
.yt .play{position:absolute;left:50%;top:50%;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:50%;background:var(--pink);box-shadow:0 0 40px rgba(255,46,147,.7);animation:pulse 2.2s ease-in-out infinite}
.yt .play::after{content:"";position:absolute;left:34px;top:26px;border-style:solid;border-width:16px 0 16px 26px;border-color:transparent transparent transparent var(--bg)}
.yt .cap{position:absolute;left:18px;bottom:14px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;text-shadow:0 1px 8px #000}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:20px}
.gal a{display:block;position:relative;aspect-ratio:3/2;border-radius:10px;overflow:hidden;background:var(--bg2);cursor:zoom-in}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .4s}
.gal a:hover img{transform:scale(1.08)}
.gal-h{margin:72px 0 0;font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--cyan);font-weight:600}
.pn{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:96px}
.pn a{display:flex;flex-direction:column;gap:4px;padding:24px;border:1px solid var(--line2);border-radius:14px;background:var(--bg2);transition:border-color .3s,transform .3s}
.pn a:hover{border-color:var(--pink);transform:translateY(-4px)}
.pn a.n{text-align:right}
.pn small{font-size:11px;letter-spacing:.25em;color:var(--cyan);text-transform:uppercase;font-weight:600}
.pn span{font-weight:800;font-size:18px;line-height:1.2}
.cta-band{margin-top:96px;margin-bottom:112px;padding:56px;border-radius:14px;border:1px solid var(--line2);background:radial-gradient(500px 220px at 85% 50%,rgba(255,46,147,.22),transparent 70%),var(--bg2);display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between}
.cta-band .t{font-weight:800;font-size:clamp(24px,3.2vw,40px);line-height:1.1;text-transform:uppercase;letter-spacing:-.02em;max-width:640px}

/* pagine interne */
.p-hero{position:relative;overflow:hidden;padding:120px 0 72px;border-bottom:1px solid var(--line)}
.p-hero .blob{opacity:.55}
.p-hero .in{position:relative;z-index:2;max-width:var(--w);margin:0 auto;padding:0 var(--gut);display:flex;flex-direction:column;gap:20px}
.p-hero h1{margin:0;font-weight:800;font-size:clamp(40px,7vw,104px);line-height:.98;letter-spacing:-.035em;text-transform:uppercase}
.p-hero p{margin:0;max-width:640px;font-size:18px;font-weight:300;color:var(--mut)}

/* lightbox */
.lb{position:fixed;inset:0;z-index:200;background:rgba(5,5,10,.94);display:none;align-items:center;justify-content:center;padding:56px 16px}
.lb.open{display:flex}
.lb img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;box-shadow:0 0 80px rgba(255,46,147,.25)}
.lb button{position:absolute;background:rgba(10,10,20,.8);border:1px solid var(--line2);color:#fff;width:48px;height:48px;border-radius:50%;font-size:22px;cursor:pointer}
.lb button:hover{border-color:var(--pink)}
.lb .x{top:12px;right:12px}.lb .pv{left:12px;top:50%;margin-top:-24px}.lb .nx{right:12px;top:50%;margin-top:-24px}
.lb .ct{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-size:12px;letter-spacing:.2em;color:var(--dim)}

@media (max-width:980px){
:root{--gut:24px}
.burger{display:block}
.nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:rgba(5,5,10,.97);border-bottom:1px solid var(--line);padding:8px var(--gut) 20px;display:none}
.nav.open{display:flex}
.nav a{padding:16px 0;border-bottom:1px solid var(--line);font-size:16px}
.nav a.cta{margin-top:14px;text-align:center;border-radius:6px}
.svc-row{grid-template-columns:70px 1fr;gap:16px}
.svc-row .num{font-size:48px}
}
@media (max-width:760px){
.ring{display:none}
.sct{padding-top:80px}
.hero .txt{padding:64px var(--gut) 110px}
.hero .veil{background:linear-gradient(180deg,rgba(5,5,10,.7) 0%,rgba(5,5,10,.82) 70%,var(--bg) 100%)}
.banner{min-height:420px}
.steps .st{border-right:0;border-bottom:1px solid rgba(255,255,255,.14)}
.cta-band{padding:32px 24px}
.pn{grid-template-columns:1fr}
.pn a.n{text-align:left}
.grid{grid-template-columns:1fr}
.w-hero{min-height:440px}
.w-hero .in{padding:96px var(--gut) 40px}
.contact .in{padding:80px var(--gut)}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rise{opacity:1}.js .reveal{opacity:1;transform:none}}

/* === SFERE UNIDEA (hero) === */
.orbs{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden;--d:110px}
.tint{position:absolute;inset:0;opacity:0;pointer-events:none;mix-blend-mode:screen;transition:opacity .9s ease,background-color .6s ease}
.o{position:absolute;left:0;top:0;width:var(--d);height:var(--d);will-change:transform}
.o .b{position:absolute;inset:0;border-radius:50%;animation:ospin var(--sp,9s) linear infinite;box-shadow:inset -10px -14px 28px rgba(0,0,0,.38),inset 7px 9px 18px rgba(255,255,255,.4),0 14px 40px var(--gl,rgba(255,46,147,.5))}
.o::after{content:"";position:absolute;left:17%;top:9%;width:40%;height:25%;border-radius:50%;background:radial-gradient(ellipse at 50% 45%,rgba(255,255,255,.95),rgba(255,255,255,0) 72%);transform:rotate(-28deg)}
.o .b::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 50% 50%,transparent 58%,rgba(255,255,255,.28) 100%),radial-gradient(circle at 70% 85%,rgba(255,255,255,.28),transparent 45%);animation:ospin var(--sp,9s) linear infinite reverse}
.o::before{content:"";position:absolute;right:14%;bottom:10%;width:22%;height:12%;border-radius:50%;background:radial-gradient(ellipse,rgba(255,255,255,.4),rgba(255,255,255,0) 70%);transform:rotate(-38deg);z-index:1}
.o .l{position:absolute;inset:0;display:grid;place-items:center;font-family:Anton,sans-serif;font-weight:400;font-size:calc(var(--d)*.6);line-height:1;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.22),2px 2px 0 rgba(0,0,0,.2),3px 3px 0 rgba(0,0,0,.18),4px 5px 0 rgba(0,0,0,.16),6px 9px 12px rgba(0,0,0,.4),0 0 22px rgba(255,255,255,.45);z-index:2;padding-top:.04em}
.o1 .b{--gl:rgba(255,46,147,.55);--sp:11s;background:radial-gradient(circle,rgba(255,255,255,.6) 0 2.6px,transparent 3.2px) 0 0/13px 13px,radial-gradient(circle at 35% 28%,#ff9ccc,#ff2e93 52%,#9c0058)}
.o2 .b{--gl:rgba(0,229,255,.5);--sp:8s;background:repeating-linear-gradient(35deg,rgba(255,255,255,.4) 0 7px,transparent 7px 17px),radial-gradient(circle at 35% 28%,#a6f8ff,#00c8e6 52%,#00566e)}
.o3 .b{--gl:rgba(246,231,1,.5);--sp:13s;background:radial-gradient(circle,rgba(255,138,46,.8) 0 2.8px,transparent 3.4px) 0 0/15px 15px,radial-gradient(circle at 35% 28%,#fffdb8,#f6e701 52%,#9a8d00)}
.o4 .b{--gl:rgba(138,107,255,.55);--sp:7s;background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.55),rgba(255,255,255,0) 55%),conic-gradient(#8a6bff,#ff2e93,#00e5ff,#f6e701,#8a6bff)}
.o5 .b{--gl:rgba(255,138,46,.55);--sp:10s;background:repeating-linear-gradient(90deg,rgba(255,255,255,.45) 0 6px,transparent 6px 15px),radial-gradient(circle at 35% 28%,#ffc79a,#ff8a2e 52%,#a33d00)}
.o6 .b{--gl:rgba(183,255,74,.5);--sp:9s;background:radial-gradient(circle,rgba(0,0,0,.28) 0 3px,transparent 3.6px) 0 0/14px 14px,radial-gradient(circle at 35% 28%,#e6ffb0,#b7ff4a 52%,#4d8a00)}
.o6 .l,.o3 .l{color:#fff}
.bub{position:absolute;bottom:-90px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.6),rgba(255,255,255,.04) 45%,rgba(0,229,255,.12) 70%,rgba(255,46,147,.18));box-shadow:inset 0 0 12px rgba(255,255,255,.12);animation:bubup var(--t,20s) linear infinite;animation-delay:var(--dl,0s);opacity:0}
@keyframes bubup{0%{transform:translate(0,0);opacity:0}10%{opacity:.85}50%{transform:translate(28px,-50vh)}100%{transform:translate(-18px,-110vh);opacity:.2}}
@keyframes ospin{to{transform:rotate(360deg)}}
.orbs-on h1{transition:opacity .8s ease,filter .8s ease,transform .8s cubic-bezier(.2,1.3,.4,1);transform-origin:0 50%}
.orbs-on.hide-h1 h1{opacity:0;filter:blur(16px);transform:scale(.88)}
.orbs-on.hide-h1 p.lead,.orbs-on.hide-h1 .ctas{opacity:.9}
@media (max-width:700px){.o .b{box-shadow:inset -6px -9px 18px rgba(0,0,0,.38),inset 4px 6px 12px rgba(255,255,255,.4),0 8px 22px var(--gl,rgba(255,46,147,.5))}}
@media (prefers-reduced-motion:reduce){.orbs,.tint{display:none}}
.svc-row p+p{margin-top:14px}
/* showreel pagina lavori */
.reel{position:relative;max-width:1100px;margin:0 auto;border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:0 0 0 1px rgba(255,46,147,.3),0 0 40px rgba(255,46,147,.18),0 30px 80px rgba(0,0,0,.5)}
.reel video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#000}
.reel-tag{position:absolute;left:16px;top:14px;padding:5px 12px;border-radius:999px;background:rgba(5,5,10,.65);border:1px solid var(--pink);color:#fff;font-weight:800;font-size:12px;letter-spacing:.14em;text-transform:uppercase;pointer-events:none}
