:root{
  --bg:#09070e; --bg2:#130f1d; --fg:#f5f2fb; --muted:#a8a1b9; --line:#2a2339;
  --accent:#d04bc0; --radius:18px;
  --display:"Syne",system-ui,sans-serif; --menu:"Space Grotesk",system-ui,sans-serif; --body:"Inter",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:90px;overflow-x:clip}
body{background:var(--bg);color:var(--fg);font:400 17px/1.65 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden;position:relative}
/* luci ambientali fisse: danno qualcosa da sfocare al vetro */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:
  radial-gradient(45% 40% at 90% 8%,rgba(224,39,111,.22),transparent 70%),
  radial-gradient(50% 45% at 4% 55%,rgba(107,79,163,.32),transparent 70%),
  radial-gradient(40% 35% at 70% 100%,rgba(70,60,255,.2),transparent 70%)}
a{color:inherit;text-decoration:none}
img,video{max-width:100%}
.wrap{width:min(1200px,100% - 40px);margin-inline:auto}
.skip{position:absolute;left:-999px;top:8px;background:var(--accent);color:#000;padding:8px 14px;border-radius:8px;z-index:300}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

h1,h2,h3,h4{font-family:var(--display);line-height:1.05;letter-spacing:-.02em}
.giant{font-size:clamp(1.3rem,calc((100vw - 56px)/15.4),4.7rem);font-weight:800;text-transform:uppercase;line-height:.92}
.giant em{font-style:normal;color:var(--accent)}
h1{font-size:clamp(1.3rem,calc((100vw - 56px)/13.4),4.8rem);font-weight:800;text-transform:uppercase}
h2{font-size:clamp(1.8rem,4.4vw,3.2rem);text-transform:uppercase}
h3{font-size:1.25rem}
em{font-style:normal;color:var(--accent)}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;font-weight:600;color:var(--accent);margin-bottom:1.2rem}
.lead{font-size:1.2rem;color:#d3cfdc;max-width:600px;margin:1.6rem 0 2.2rem}
.muted{color:var(--muted)}

/* ============ LIQUID GLASS ============ */
.glass{position:relative;
  background:linear-gradient(135deg,rgba(255,255,255,.11),rgba(255,255,255,.03));
  -webkit-backdrop-filter:blur(18px) saturate(170%);backdrop-filter:blur(18px) saturate(170%);
  border:1px solid rgba(255,255,255,.13);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),inset 0 -1px 0 rgba(255,255,255,.05),0 18px 50px -22px rgba(0,0,0,.75)}
.glass::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .35s;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,0%),rgba(255,255,255,.18),transparent 62%)}
.glass:hover::after{opacity:1}

.btn{display:inline-block;background:var(--accent);color:#0a0a0b;font:600 1rem var(--body);padding:.95rem 1.7rem;border-radius:999px;border:1px solid var(--accent);cursor:pointer;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 30px -10px var(--accent)}
.btn-ghost{background:rgba(255,255,255,.06);color:var(--fg);border-color:rgba(255,255,255,.2)}
.btn-ghost:hover{box-shadow:0 10px 30px -14px #fff;border-color:rgba(255,255,255,.5)}
.btn-sm{padding:.55rem 1.1rem;font-size:.88rem}
.cta-row,.channels{display:flex;gap:12px;flex-wrap:wrap}

/* ============ EFFETTI CINEMA ============ */
.grain{position:fixed;inset:-100%;z-index:250;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation:grain 1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}60%{transform:translate(-6%,-2%)}80%{transform:translate(5%,4%)}100%{transform:translate(0,0)}}
.bars{position:fixed;inset:0;z-index:240;pointer-events:none}
.bars i{position:absolute;left:0;right:0;height:50vh;background:#000;animation:bar 1.8s .3s cubic-bezier(.7,0,.2,1) forwards}
.bars i:first-child{top:0;transform-origin:top}
.bars i:last-child{bottom:0;transform-origin:bottom}
@keyframes bar{to{transform:scaleY(.0001)}}
.flare{position:absolute;left:0;right:0;top:34%;height:2px;pointer-events:none;z-index:1;mix-blend-mode:screen;
  background:linear-gradient(90deg,transparent,rgba(120,150,255,.0) 20%,rgba(170,190,255,.9) 50%,rgba(120,150,255,0) 80%,transparent);
  filter:blur(.6px);box-shadow:0 0 50px 10px rgba(110,130,255,.3);animation:flare 9s ease-in-out infinite alternate;opacity:.65}
@keyframes flare{from{transform:translateX(-30%) scaleX(.6);opacity:.2}to{transform:translateX(30%) scaleX(1);opacity:.75}}
.rec{display:flex;align-items:center;gap:8px;font:600 .72rem var(--body);letter-spacing:.14em;color:var(--muted);font-variant-numeric:tabular-nums}
.rec i{width:8px;height:8px;border-radius:50%;background:#ff3030;animation:blink 1.4s steps(2) infinite}
@keyframes blink{50%{opacity:.15}}
.rec b{font-weight:600;color:var(--fg)}

/* ============ NAV ============ */
.nav{position:fixed;inset:0 0 auto 0;z-index:80;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px max(20px,calc((100% - 1200px)/2))}
.nav::before{content:"";position:absolute;inset:0 0 -26px;z-index:-1;pointer-events:none;background:linear-gradient(var(--bg) 35%,transparent);opacity:0;transition:opacity .3s}
.nav.solid::before{opacity:.92}
.logo{display:flex;align-items:center;gap:10px;font:700 .78rem var(--menu);letter-spacing:.28em;text-transform:uppercase;position:relative;z-index:90}
.logo img{height:42px;width:auto;display:block}
.pill{position:relative;display:flex;gap:6px;padding:6px;border-radius:999px}
.pill a{position:relative;z-index:1;padding:9px 20px;border-radius:999px;font:500 .88rem var(--menu);letter-spacing:.07em;color:#cfcade;transition:color .25s}
.pill a.on,.pill a:hover{color:#fff}
.pill .sel{position:absolute;top:6px;bottom:6px;left:var(--x,6px);width:var(--w,0);border-radius:999px;pointer-events:none;z-index:0;opacity:0;
  background:rgba(208,75,192,.4);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 62%,transparent),color-mix(in srgb,var(--accent) 22%,transparent));
  -webkit-backdrop-filter:blur(10px) saturate(190%);backdrop-filter:blur(10px) saturate(190%);
  border:1px solid rgba(255,255,255,.38);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 -8px 14px rgba(255,255,255,.07),0 10px 26px -10px var(--accent);
  transition:left .6s cubic-bezier(.34,1.45,.5,1),width .6s cubic-bezier(.34,1.45,.5,1),opacity .3s}
.pill .sel::after{content:"";position:absolute;inset:1px 8px auto;height:46%;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.5),transparent);opacity:.55}
.pill .sel.moving{animation:jelly .6s cubic-bezier(.3,.7,.3,1)}
@keyframes jelly{0%{transform:scale(1,1)}28%{transform:scale(1.14,.82)}58%{transform:scale(.96,1.1)}100%{transform:scale(1,1)}}
.pill .sel.press{animation:selpress .5s cubic-bezier(.3,.7,.3,1)}
@keyframes selpress{0%{transform:scale(1)}30%{transform:scale(.86,.74);filter:brightness(1.5)}65%{transform:scale(1.16,1.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 0 0 8px color-mix(in srgb,var(--accent) 30%,transparent),0 12px 34px -6px var(--accent)}100%{transform:scale(1)}}
.menu-open .pill{opacity:0;pointer-events:none}
.pill{transition:opacity .3s}
/* logo bianco con glitch continuo */
.logo img{filter:drop-shadow(-1px 0 rgba(0,229,255,.5)) drop-shadow(1px 0 rgba(255,46,147,.5)) drop-shadow(0 0 8px rgba(255,255,255,.3));animation:lgl 3.4s steps(1,end) infinite}
@keyframes lgl{
  0%,58%{filter:drop-shadow(-1px 0 rgba(0,229,255,.5)) drop-shadow(1px 0 rgba(255,46,147,.5)) drop-shadow(0 0 8px rgba(255,255,255,.3));translate:0 0;transform:none}
  59%{filter:drop-shadow(-4px 0 #00e5ff) drop-shadow(4px 0 #ff2e93);translate:-3px 1px;transform:skewX(9deg)}
  62%{filter:drop-shadow(4px 0 #00e5ff) drop-shadow(-4px 0 #ff2e93);translate:3px -1px;transform:skewX(-7deg)}
  65%{filter:drop-shadow(-2px 0 #00e5ff) drop-shadow(2px 0 #ff2e93);translate:-1px 0;transform:none}
  68%{filter:drop-shadow(-1px 0 rgba(0,229,255,.5)) drop-shadow(1px 0 rgba(255,46,147,.5)) drop-shadow(0 0 8px rgba(255,255,255,.3));translate:0 0;transform:none}
  86%{filter:drop-shadow(3px 0 #00e5ff) drop-shadow(-3px 0 #ff2e93);translate:2px 0;transform:skewX(-5deg)}
  89%{filter:drop-shadow(-3px 0 #00e5ff) drop-shadow(3px 0 #ff2e93);translate:-2px 1px;transform:skewX(6deg)}
  92%,100%{filter:drop-shadow(-1px 0 rgba(0,229,255,.5)) drop-shadow(1px 0 rgba(255,46,147,.5)) drop-shadow(0 0 8px rgba(255,255,255,.3));translate:0 0;transform:none}}
.foot-grid .logo img{animation:none;filter:none}
.nav-right{display:flex;align-items:center;gap:16px;position:relative;z-index:90}
.menu-btn{display:none;position:relative;align-items:center;gap:10px;height:48px;padding:0 8px 0 20px;border-radius:999px;color:var(--fg);font:600 .78rem var(--menu);letter-spacing:.22em;text-transform:uppercase;cursor:pointer}
.mb-label{display:grid;height:1.25em;overflow:hidden;line-height:1.25em}
.mb-label span{grid-area:1/1;transition:transform .55s cubic-bezier(.7,0,.2,1)}
.mb-label span:last-child{transform:translateY(130%)}
.menu-btn[aria-expanded=true] .mb-label span:first-child{transform:translateY(-130%)}
.menu-btn[aria-expanded=true] .mb-label span:last-child{transform:none}
.mb-ico{width:34px;height:34px;overflow:visible}
.mb-ico *{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.mb-ico path{transform-box:fill-box;transform-origin:center;transition:transform .6s cubic-bezier(.7,0,.2,1),opacity .3s}
.mb-ico .solid{transform-box:view-box;transform-origin:20px 20px;opacity:.5;transition:opacity .4s,transform .6s cubic-bezier(.7,0,.2,1)}
.mb-ico .ticks{transform-box:view-box;transform-origin:20px 20px;stroke:var(--accent);stroke-width:3.2;stroke-linecap:butt;stroke-dasharray:1.6 6.15;opacity:0;transition:opacity .4s}
.menu-btn[aria-expanded=true] .l1{transform:translateY(5px) rotate(45deg)}
.menu-btn[aria-expanded=true] .l3{transform:translateY(-5px) rotate(-45deg)}
.menu-btn[aria-expanded=true] .l2{transform:scaleX(0);opacity:0}
.menu-btn[aria-expanded=true] .solid{opacity:0;transform:scale(.55)}
.menu-btn[aria-expanded=true] .ticks{opacity:1;animation:mring 5s linear infinite}
@keyframes mring{to{transform:rotate(360deg)}}
.recdot{position:absolute;top:6px;right:6px;width:9px;height:9px;border-radius:50%;background:#ff3030;box-shadow:0 0 10px #ff3030;transform:scale(0);transition:transform .25s}
.menu-btn[aria-expanded=true] .recdot{transition:transform .4s .3s cubic-bezier(.3,1.6,.5,1);transform:scale(1);animation:blink 1.2s .8s steps(2) infinite}

/* overlay: mirino da videocamera + vetro liquido */
.overlay{position:fixed;inset:0;z-index:70;background:rgba(9,7,14,.72);-webkit-backdrop-filter:blur(28px) saturate(160%);backdrop-filter:blur(28px) saturate(160%);display:flex;flex-direction:column;justify-content:center;gap:clamp(14px,3svh,28px);padding:clamp(108px,15svh,130px) 20px 28px;clip-path:circle(0 at calc(100% - 64px) 38px);visibility:hidden;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;transition:clip-path .8s cubic-bezier(.7,0,.2,1) .24s,visibility 0s 1.04s}
.overlay.open{clip-path:circle(150% at calc(100% - 64px) 38px);visibility:visible;transition:clip-path .85s cubic-bezier(.7,0,.2,1) 0s,visibility 0s 0s}
.ov-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.ov-blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;pointer-events:none;animation:blob 9s ease-in-out infinite alternate}
.ov-blob.b1{width:60vmax;height:60vmax;left:-22vmax;top:12%;background:#6b4fa3}
.ov-blob.b2{width:52vmax;height:52vmax;right:-22vmax;bottom:-12%;background:#e0276f;animation-delay:-4s}
@keyframes blob{to{transform:translate(9vmax,-7vmax) scale(1.18)}}
.vf{position:absolute;inset:0;pointer-events:none}
.vf .third{position:absolute;inset:0;opacity:0;transition:opacity .3s;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:33.3333% 33.3333%}
.vf .c{position:absolute;width:30px;height:30px;border:2px solid var(--accent);opacity:0;transform:scale(2.2);transition:transform .35s ease-in,opacity .25s;filter:drop-shadow(0 0 6px var(--accent))}
.vf .tl{top:92px;left:14px;border-right:0;border-bottom:0;transform-origin:0 0}
.vf .tr{top:92px;right:14px;border-left:0;border-bottom:0;transform-origin:100% 0}
.vf .bl{bottom:16px;left:14px;border-right:0;border-top:0;transform-origin:0 100%}
.vf .br{bottom:16px;right:14px;border-left:0;border-top:0;transform-origin:100% 100%}
.overlay.open .vf .third{opacity:1;transition:opacity .8s .3s}
.overlay.open .vf .c{opacity:.9;transform:none;transition:transform .7s .35s cubic-bezier(.2,.8,.2,1),opacity .5s .35s}
.ov-top{position:absolute;left:34px;right:34px;top:100px;display:flex;justify-content:space-between;gap:12px;font:600 .68rem var(--menu);letter-spacing:.2em;color:var(--muted);text-transform:uppercase;opacity:0;transition:opacity .25s}
.overlay.open .ov-top{opacity:1;transition:opacity .5s .6s}
.ov-top b{color:var(--fg);font-weight:600;font-variant-numeric:tabular-nums}
.overlay nav{position:relative;z-index:1;display:grid;gap:clamp(8px,1.6svh,14px)}
.overlay nav a{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:12px;padding:clamp(12px,2.3svh,20px) 24px;border-radius:24px;opacity:0;transition:transform .3s,border-color .3s,background .3s}
.overlay nav a small{font:600 .72rem var(--menu);letter-spacing:.22em;color:var(--accent)}
.overlay nav a span{font:600 clamp(1.1rem,min(6vw,3.5svh),1.85rem)/1.1 var(--menu);letter-spacing:.1em;text-transform:uppercase}
.overlay nav a em{font-style:normal;color:var(--muted);font-size:1.3rem;transition:transform .3s,color .3s}
.overlay nav a:active{transform:scale(.98)}
.overlay nav a:hover em,.overlay nav a:focus-visible em{transform:translateX(6px);color:var(--accent)}
.overlay nav a[aria-current=page]{border-color:var(--accent);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 0 0 1px var(--accent),0 16px 40px -18px var(--accent)}
.overlay nav a[aria-current=page] em{color:var(--accent)}
.overlay.open nav a{animation:focus .85s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.4s + var(--n)*.08s)}
.overlay.closing nav a{animation:fout .4s calc((5 - var(--n))*.035s) cubic-bezier(.5,0,.8,.4) both}
@keyframes fout{from{opacity:1;filter:none;transform:none}to{opacity:0;filter:blur(12px);transform:translateY(-22px) scale(.96)}}
.overlay nav a.tap{animation:tap .45s cubic-bezier(.3,.7,.3,1) both!important;border-color:var(--accent)}
@keyframes tap{0%{transform:scale(1)}35%{transform:scale(.95);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 55%,transparent),color-mix(in srgb,var(--accent) 18%,transparent));opacity:1;filter:none}70%{transform:scale(1.025);opacity:1;filter:none}100%{transform:scale(1);opacity:1;filter:none}}
@media(min-width:1001px){.overlay nav,.ov-foot{width:min(680px,100%);margin-inline:auto}.overlay nav a span{font-size:1.9rem}.vf .tl,.vf .tr{top:100px}.ov-top{top:108px;left:max(34px,calc((100% - 680px)/2));right:max(34px,calc((100% - 680px)/2))}}
@keyframes focus{from{opacity:0;filter:blur(16px);transform:translateY(36px) scale(.94);letter-spacing:.2em}to{opacity:1;filter:none;transform:none}}
.ov-foot{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;opacity:0;transform:translateY(14px);transition:opacity .25s,transform .25s}
.overlay.open .ov-foot{opacity:1;transform:none;transition:opacity .5s 1s,transform .5s 1s}
.ov-foot .soc{display:flex;gap:20px;color:var(--muted);font:500 .85rem var(--menu);letter-spacing:.08em}
.ov-foot .soc a:hover{color:var(--fg)}
@media(prefers-reduced-motion:reduce){.overlay nav a,.overlay .ov-foot{opacity:1;transform:none;filter:none}}
.no-anim .overlay nav a,.no-anim .overlay .ov-foot,.no-anim .ov-top{opacity:1;transform:none;filter:none}
.no-anim .overlay.open .vf .c{opacity:.9;transform:none;transition:transform .7s .35s cubic-bezier(.2,.8,.2,1),opacity .5s .35s}

/* ============ HERO ============ */
.hero{min-height:100svh;display:flex;align-items:center;position:relative;overflow:hidden;padding:130px 0 110px}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.4}
.hero-bg{position:absolute;inset:0;background:
  radial-gradient(60% 60% at 90% 10%,rgba(224,39,111,.38),transparent 60%),
  radial-gradient(55% 55% at 5% 95%,rgba(107,79,163,.55),transparent 60%),
  linear-gradient(180deg,rgba(9,7,14,.2),var(--bg));
  animation:drift 14s ease-in-out infinite alternate}
.hero-bg::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 50%,transparent 55%,rgba(0,0,0,.55))}
@keyframes drift{to{transform:scale(1.1) translate(-2%,2%)}}
.hero-inner{position:relative;z-index:2}
.ticker{position:absolute;bottom:0;left:0;right:0;overflow:hidden;white-space:nowrap;border-radius:0;border-inline:0;z-index:2}
.ticker div{display:inline-flex;animation:tick 30s linear infinite}
.ticker span{font:700 .9rem var(--display);text-transform:uppercase;letter-spacing:.14em;padding:16px 28px;color:var(--muted)}
.ticker span::after{content:"✦";margin-left:56px;color:var(--accent)}
@keyframes tick{to{transform:translateX(-50%)}}

.page-hero{padding:170px 0 30px}
.page-hero h1 em{display:block}
.section{padding:90px 0}
.sec-head{display:flex;align-items:baseline;gap:18px;margin-bottom:2.2rem;border-bottom:1px solid var(--line);padding-bottom:1.2rem}
.idx{font:700 .9rem var(--display);color:var(--accent);letter-spacing:.1em}
.head-link{margin-left:auto;color:var(--muted);font-size:.9rem}
.head-link:hover{color:var(--accent)}
.manifesto .big{font:700 clamp(1.5rem,3.8vw,2.8rem)/1.2 var(--display);letter-spacing:-.02em;max-width:1000px}

/* ============ CARDS ============ */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{border-radius:var(--radius);padding:30px;transition:transform .35s,border-color .3s;display:flex;flex-direction:column;gap:10px}
.card:hover{transform:translateY(-6px);border-color:rgba(255,255,255,.3)}
.num{color:var(--accent);font:700 .85rem var(--display);letter-spacing:.1em}
.card p{color:var(--muted);font-size:.97rem}
.more{margin-top:auto;padding-top:8px;color:var(--accent);font-weight:600;font-size:.9rem}

.list{list-style:none}
.list li{display:grid;grid-template-columns:60px 1fr 1.5fr;gap:20px;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--line);transition:padding .3s}
.list li:hover{padding-left:16px}
.list li:hover h3{color:var(--accent)}
.list span{font:700 .85rem var(--display);color:var(--muted)}
.list h3{font-size:clamp(1.3rem,2.8vw,2rem);text-transform:uppercase;transition:color .2s}
.list p{color:var(--muted)}
.inl{color:var(--accent);white-space:nowrap}

.packs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}
.pack{border-radius:var(--radius);padding:34px;display:flex;flex-direction:column;gap:14px}
.pack.featured{border-color:var(--accent);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 0 0 1px var(--accent),0 24px 60px -24px var(--accent)}
.pack h3{font-size:1.8rem;text-transform:uppercase}
.pack .sub{color:var(--muted);font-size:.92rem}
.pack ul{list-style:none;display:grid;gap:8px;margin:10px 0 18px;flex:1}
.pack li{padding-left:22px;position:relative;font-size:.97rem}
.pack li::before{content:"✦";position:absolute;left:0;color:var(--accent);font-size:.7rem;top:.35em}
.badge{position:absolute;top:-12px;right:24px;background:var(--accent);color:#0a0a0b;font:700 .72rem var(--body);text-transform:uppercase;letter-spacing:.1em;padding:5px 12px;border-radius:999px}
.note{color:var(--muted);font-size:.9rem;margin-top:18px}

.steps{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.steps li{counter-increment:s;border-top:2px solid var(--line);padding-top:22px}
.steps li::before{content:"0" counter(s);font:700 .85rem var(--display);color:var(--accent)}
.steps b{display:block;font:800 1.4rem var(--display);text-transform:uppercase;margin:8px 0}
.steps p{color:var(--muted);font-size:.95rem}

/* ============ FILM / VIDEO ============ */
.film{position:relative;border-radius:var(--radius);overflow:hidden;background:#000;cursor:pointer;box-shadow:0 30px 80px -30px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.08);transition:transform .4s,box-shadow .4s}
.film:hover{transform:translateY(-4px);box-shadow:0 40px 90px -30px var(--accent),0 0 0 1px rgba(255,255,255,.18)}
.film video{display:block;width:100%;height:100%;object-fit:cover}
.film::after{content:"▶";position:absolute;right:16px;top:16px;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;padding-left:3px;font-size:.8rem;background:rgba(255,255,255,.16);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.25);transition:.3s}
.film:hover::after{background:var(--accent);color:#000}
.slate{position:absolute;left:14px;bottom:14px;padding:8px 14px;border-radius:12px;font:600 .72rem var(--body);letter-spacing:.1em;text-transform:uppercase;display:grid;gap:2px}
.slate b{font:700 .9rem var(--display);letter-spacing:0;text-transform:none}
.film.portrait{aspect-ratio:9/16}
.film.wide{aspect-ratio:1.11}
.trio{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:18px;align-items:stretch}
.trio .film{aspect-ratio:auto;min-height:420px}
.spot{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding-block:60px}
.spot.flip .film{order:2}
.spot .film.portrait{max-width:380px;width:100%;justify-self:center}
.spot-text h2{margin:10px 0 16px}
.spot-text p{max-width:520px;margin-bottom:18px}
.tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.tags li{padding:6px 14px;border:1px solid var(--line);border-radius:999px;font-size:.82rem;color:var(--muted)}

.caps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.cap{border-radius:var(--radius);padding:24px;transition:transform .3s,border-color .3s}
.cap:hover{transform:translateY(-5px);border-color:rgba(255,255,255,.3)}
.cap b{font:700 .8rem var(--display);color:var(--accent);letter-spacing:.1em}
.cap h3{font-size:1.1rem;margin:10px 0 8px}
.cap p{color:var(--muted);font-size:.9rem;line-height:1.5}
.tools{margin-top:26px;color:var(--muted);font-size:.9rem}
.tools span{color:var(--accent);text-transform:uppercase;letter-spacing:.14em;font-weight:600;font-size:.72rem;margin-right:12px}

/* feature banner */
.feature{border-radius:28px;padding:clamp(28px,5vw,60px);display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center;overflow:hidden}
.feature h2{margin-bottom:16px}
.feature .muted{margin-bottom:24px;max-width:520px}
.feature-art{position:relative;height:240px}
.feature-art span{position:absolute;border-radius:20px;background:linear-gradient(135deg,var(--accent),#6b4fa3);box-shadow:0 20px 60px -10px var(--accent);animation:float 6s ease-in-out infinite alternate}
.feature-art span:nth-child(1){width:55%;height:70%;left:5%;top:15%;transform:rotate(-8deg)}
.feature-art span:nth-child(2){width:45%;height:55%;right:5%;top:0;opacity:.7;background:linear-gradient(135deg,#e0276f,var(--accent));animation-delay:-2s}
.feature-art span:nth-child(3){width:35%;height:40%;right:20%;bottom:0;opacity:.5;background:linear-gradient(135deg,#46e0ff,#6b4fa3);animation-delay:-4s}
@keyframes float{to{translate:0 -14px;rotate:3deg}}
.feature-art.photo{display:block;height:300px;border-radius:20px;background:var(--img) center/cover;box-shadow:0 30px 70px -25px var(--accent),0 0 0 1px rgba(255,255,255,.15);transition:transform .4s}
.feature-art.photo:hover{transform:scale(1.03) rotate(-1deg)}

.cta-band{text-align:center;display:grid;justify-items:center;gap:30px}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.shot{position:relative;aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;background:var(--img,none) center/cover,var(--g);display:flex;align-items:flex-end;padding:14px;transition:transform .4s}
.shot[data-img]{cursor:zoom-in}
.shot:hover{transform:scale(1.02)}
.frame img{max-width:100%;max-height:88vh;border-radius:12px}
.shot figcaption{padding:6px 12px;border-radius:10px;font-size:.78rem}

/* lavori feed */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px}
.chip{padding:8px 18px;border-radius:999px;color:var(--fg);font:500 .9rem var(--body);cursor:pointer}
.chip.on{background:var(--accent);color:#0a0a0b;border-color:var(--accent)}
.feed{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.work{position:relative;aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;display:flex;align-items:flex-end;padding:18px;isolation:isolate;background:var(--img,none) center/cover,var(--g);transition:transform .4s,opacity .3s}
.work.hide{display:none}
.work:hover{transform:translateY(-4px)}
.work .cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.work::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(0,0,0,.65),transparent 55%)}
.work .meta{padding:10px 16px;border-radius:14px}
.work small{text-transform:uppercase;letter-spacing:.14em;font-size:.66rem;color:#fff;opacity:.85;font-weight:600}
.work h3{font-size:1.1rem;margin-top:2px}
.work .play{position:absolute;top:16px;right:16px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:.75rem;padding-left:3px;transition:.3s}
.work:hover .play{background:var(--accent);color:#000}
.work.soon{cursor:default}
.work.soon .play{display:none}
.work.soon::before{content:attr(data-soon);position:absolute;top:16px;right:16px;font:600 .7rem var(--body);text-transform:uppercase;letter-spacing:.12em;padding:5px 12px;border-radius:999px;background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.2)}

/* faq */
.faq details{border-bottom:1px solid var(--line);padding:22px 0}
.faq summary{cursor:pointer;font:700 1.15rem var(--display);list-style:none;display:flex;justify-content:space-between;gap:20px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--accent);font-size:1.5rem;line-height:1;transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{color:var(--muted);margin-top:12px;max-width:700px}

/* contatti */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.channels{margin:26px 0}
.info{list-style:none;display:grid;gap:6px;color:var(--muted)}
.info a:hover{color:var(--accent)}
form.glass{border-radius:var(--radius);padding:32px;display:grid;gap:18px}
label{display:grid;gap:6px;font-size:.85rem;color:var(--muted)}
input,select,textarea{background:rgba(9,7,14,.55);border:1px solid rgba(255,255,255,.14);color:var(--fg);border-radius:12px;padding:13px 14px;font:inherit;font-size:1rem}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
.check{display:flex;align-items:center;gap:10px}
.check input{width:auto;accent-color:var(--accent)}
.check a{text-decoration:underline}
.hp{position:absolute;left:-9999px}
.status{font-size:.95rem;min-height:1.4em}
.status.ok{color:#5fd38d}.status.err{color:#ff7a7a}

/* footer */
footer{border-top:1px solid var(--line);padding:60px 0 30px;color:var(--muted);font-size:.92rem;margin-top:40px}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1.4fr;gap:40px}
.foot-grid h4{font:700 .75rem var(--body);text-transform:uppercase;letter-spacing:.16em;color:var(--fg);margin-bottom:14px}
.foot-grid>div{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.foot-grid .logo{margin-bottom:12px}
footer a:hover{color:var(--fg)}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line);font-size:.85rem}

/* impostazioni */
.settings{position:fixed;left:18px;bottom:18px;z-index:60}
.gear{width:46px;height:46px;border-radius:50%;color:var(--fg);font-size:1.2rem;cursor:pointer}
.panel{position:absolute;bottom:58px;left:0;width:230px;border-radius:var(--radius);padding:18px;display:grid;gap:14px;font-size:.85rem;background:rgba(19,15,29,.8)}
.panel[hidden]{display:none}
.panel p{color:var(--muted)}
.swatches{display:flex;gap:8px}
.swatches button{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer}
.swatches button.on{border-color:#fff}
.reset{background:none;border:1px solid var(--line);color:var(--muted);border-radius:8px;padding:6px;cursor:pointer}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:260;background:rgba(0,0,0,.93);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:grid;place-items:center;padding:20px}
.lightbox[hidden]{display:none}
.frame{width:min(1100px,100%);max-height:88vh;display:grid;place-items:center}
.frame iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:12px}
.frame video{max-width:100%;max-height:88vh;border-radius:12px;background:#000}
.close{position:absolute;top:16px;right:22px;background:none;border:0;color:#fff;font-size:2.6rem;cursor:pointer;line-height:1}

/* reveal con rack focus */
.reveal{opacity:0;transform:translateY(26px);filter:blur(8px);transition:opacity .8s,transform .8s,filter .8s}
.reveal.in{opacity:1;transform:none;filter:none}

/* ============ INTRO ANIMATA ============ */
.intro{display:none;--r:clamp(105px,30vmin,210px);--is:clamp(44px,9vmin,74px);--ring:clamp(150px,30vmin,250px)}
.intro-on .intro{display:block;position:fixed;inset:0;z-index:400;overflow:hidden}
.intro-on{overflow:hidden}
.intro-on .bars,.intro-done .bars{display:none}
.intro .half{position:absolute;left:0;right:0;height:50.2%;background:#09070e;transition:transform 1s cubic-bezier(.76,0,.24,1) .2s;z-index:0}
.intro .half.top{top:0;background:radial-gradient(70% 140% at 50% 100%,#1b0f2e,#09070e)}
.intro .half.bottom{bottom:0;background:radial-gradient(70% 140% at 50% 0%,#1b0f2e,#09070e)}
.intro .half.top::after,.intro .half.bottom::after{content:"";position:absolute;left:0;right:0;height:2px;background:var(--accent);box-shadow:0 0 30px 6px var(--accent);opacity:0;transition:opacity .2s}
.intro .half.top::after{bottom:0}.intro .half.bottom::after{top:0}
.intro.open .half.top{transform:translateY(-101%)}
.intro.open .half.bottom{transform:translateY(101%)}
.intro.open .half::after{opacity:1}
.intro .stage,.intro .hud{transition:opacity .35s}
.intro.open .stage,.intro.open .hud{opacity:0}
.intro .stage{position:absolute;inset:0;z-index:1;display:grid;place-items:center}
.intro .stage>*{grid-area:1/1}
.intro .vignette{position:absolute;inset:0;background:radial-gradient(60% 60% at 50% 50%,rgba(208,75,192,.16),transparent 70%),repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 4px);animation:fadein .6s both}
@keyframes fadein{from{opacity:0}}
.intro .xhair{position:absolute;background:rgba(255,255,255,.18);animation:xh 1.9s both}
.intro .xhair.h{left:0;right:0;top:50%;height:1px;transform-origin:center}
.intro .xhair.v{top:0;bottom:0;left:50%;width:1px}
@keyframes xh{0%{transform:scale(0);opacity:0}15%{opacity:1;transform:scale(1)}78%{opacity:1}100%{opacity:0}}

/* conto alla rovescia stile leader */
.leader{position:relative;width:var(--ring);height:var(--ring);animation:lead 1.9s both}
@keyframes lead{0%{opacity:0;transform:scale(.7)}12%{opacity:1;transform:scale(1)}78%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.25)}}
.leader svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:rgba(255,255,255,.55);stroke-width:1.2}
.leader svg .ticks{stroke-width:6;stroke-dasharray:1.2 9.2;stroke:rgba(255,255,255,.4)}
.sweep{position:absolute;inset:8%;border-radius:50%;background:conic-gradient(from 0deg,transparent 62%,color-mix(in srgb,var(--accent) 70%,transparent));animation:sw .5s .35s linear 3}
@keyframes sw{to{transform:rotate(360deg)}}
.count{position:absolute;inset:0;display:grid;place-items:center;font:800 calc(var(--ring)*.5)/1 var(--display)}
.count span{grid-area:1/1;opacity:0;animation:num .45s both}
.count span:nth-child(1){animation-delay:.35s}.count span:nth-child(2){animation-delay:.8s}.count span:nth-child(3){animation-delay:1.25s}
@keyframes num{0%{opacity:0;transform:scale(1.5)}12%{opacity:1;transform:scale(1)}85%{opacity:1}100%{opacity:0;transform:scale(.85)}}

/* icone in orbita */
.orbit{position:absolute;left:50%;top:50%;width:0;height:0;animation:ospin 1.8s .15s cubic-bezier(.4,0,.2,1) both}
@keyframes ospin{to{transform:rotate(200deg)}}
.ico{position:absolute;left:0;top:0;width:0;height:0;animation:fly 1.7s calc(.15s + var(--i)*.06s) cubic-bezier(.3,.7,.2,1) both}
@keyframes fly{
  0%{transform:rotate(var(--a)) translateY(calc(var(--r)*-3.2)) scale(.3);opacity:0}
  30%{transform:rotate(var(--a)) translateY(calc(var(--r)*-1)) scale(1);opacity:1}
  78%{transform:rotate(var(--a)) translateY(calc(var(--r)*-1)) scale(1);opacity:1}
  100%{transform:rotate(var(--a)) translateY(0) scale(0);opacity:0}}
.ico svg{position:absolute;width:var(--is);height:var(--is);left:calc(var(--is)/-2);top:calc(var(--is)/-2);color:var(--accent);fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 8px var(--accent));animation:uspin 1.8s .15s cubic-bezier(.4,0,.2,1) both}
@keyframes uspin{from{transform:rotate(calc(var(--a)*-1))}to{transform:rotate(calc(var(--a)*-1 - 200deg))}}
.stick{transform-box:view-box;transform-origin:8px 28px;animation:clap .25s 1.05s ease-in both}
@keyframes clap{from{transform:rotate(-24deg)}to{transform:rotate(0)}}

/* flash + rivelazione logo */
.flash{position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,#fff 0,var(--accent) 22%,transparent 62%);opacity:0;animation:fl .6s 1.7s ease-out both;mix-blend-mode:screen}
@keyframes fl{0%{opacity:0}18%{opacity:.95}100%{opacity:0}}
.reveal-logo{position:relative;display:grid;justify-items:center;gap:10px;text-align:center;opacity:0;animation:appear 0s 1.85s forwards}
@keyframes appear{to{opacity:1}}
.reveal-logo img{height:clamp(120px,26vmin,240px);width:auto;clip-path:circle(0% at 50% 50%);animation:iris .75s 1.85s cubic-bezier(.2,.8,.2,1) forwards,glitch .8s 1.85s steps(1) forwards,glow 2s 2.65s ease-in-out infinite alternate}
@keyframes iris{to{clip-path:circle(75% at 50% 50%)}}
@keyframes glitch{
  0%{filter:drop-shadow(-7px 0 #00e5ff) drop-shadow(7px 0 #ff2e93);translate:0 0}
  20%{filter:drop-shadow(5px 0 #00e5ff) drop-shadow(-5px 0 #ff2e93);translate:-5px 2px}
  40%{filter:drop-shadow(-4px 0 #00e5ff) drop-shadow(4px 0 #ff2e93);translate:6px -2px}
  60%{filter:drop-shadow(3px 0 #00e5ff) drop-shadow(-3px 0 #ff2e93);translate:-2px 0}
  80%{filter:drop-shadow(0 0 22px var(--accent));translate:0 0}
  100%{filter:drop-shadow(0 0 22px var(--accent));translate:0 0}}
@keyframes glow{from{filter:drop-shadow(0 0 14px var(--accent))}to{filter:drop-shadow(0 0 34px var(--accent))}}
.reveal-logo .iris{position:absolute;left:50%;top:38%;width:clamp(180px,42vmin,380px);translate:-50% -50%;fill:none;stroke:var(--accent);stroke-width:1.5;opacity:0;animation:ring .9s 1.85s ease-out both}
@keyframes ring{0%{opacity:1;transform:scale(.2) rotate(0)}100%{opacity:0;transform:scale(1.6) rotate(60deg)}}
.reveal-logo .name{font:800 clamp(1rem,3.2vmin,1.5rem) var(--display);text-transform:uppercase;letter-spacing:.7em;margin-right:-.7em;opacity:0;animation:name 1s 2.25s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes name{from{opacity:0;letter-spacing:.9em}to{opacity:1;letter-spacing:.32em}}
.reveal-logo .tag{font:500 clamp(.8rem,2.2vmin,1rem) var(--body);color:var(--muted);letter-spacing:.12em;text-transform:uppercase;opacity:0;animation:fadein .6s 2.7s forwards;animation-fill-mode:forwards}
.reveal-logo .tag{animation-name:tagin}
@keyframes tagin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* HUD */
.hud{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:center;gap:20px;padding:22px max(20px,calc((100% - 1200px)/2))}
.hud .prog{flex:1;height:2px;background:rgba(255,255,255,.12);border-radius:2px;overflow:hidden}
.hud .prog i{display:block;height:100%;width:100%;background:var(--accent);box-shadow:0 0 12px var(--accent);transform-origin:left;animation:prog 3.7s linear both}
@keyframes prog{from{transform:scaleX(0)}}
.skip-intro{padding:8px 18px;border-radius:999px;color:var(--fg);font:600 .8rem var(--body);cursor:pointer;opacity:0;animation:fadein .4s .5s forwards}

/* ingresso hero dopo l'intro */
.intro-done .hero-inner>*{animation:rise .9s cubic-bezier(.2,.8,.2,1) both}
.intro-done .hero-inner>*:nth-child(2){animation-delay:.1s}.intro-done .hero-inner>*:nth-child(3){animation-delay:.2s}.intro-done .hero-inner>*:nth-child(4){animation-delay:.3s}
@keyframes rise{from{opacity:0;transform:translateY(34px);filter:blur(10px)}}
.no-anim *,.no-anim *::before,.no-anim *::after{animation:none!important;transition:none!important}
.no-anim .reveal{opacity:1;transform:none;filter:none}
.no-anim .bars{display:none}
.no-anim .intro{display:none!important}
.no-anim{scroll-behavior:auto}

@media(max-width:1000px){
  .pill{display:none}
  .menu-btn{display:flex}
  .rec{display:none}
}
@media(max-width:900px){
  .cards,.feed,.gallery{grid-template-columns:1fr 1fr}
  .packs,.contact,.feature,.spot,.foot-grid{grid-template-columns:minmax(0,1fr)}
  .spot{gap:30px}
  .spot.flip .film{order:0}
  .steps,.caps{grid-template-columns:1fr 1fr}
  .list li{grid-template-columns:44px 1fr}
  .list p{grid-column:2}
  .contact{gap:40px}
  .trio{grid-template-columns:1fr 1fr}
  .trio .film.wide{grid-column:span 2;order:-1;min-height:0;aspect-ratio:1.11}
  .feature-art{height:180px}
}
@media(max-width:680px){
  body{font-size:16px}
  .section{padding:64px 0}
  .hide-m{display:none}
  .cards,.gallery,.steps,.caps,.trio{grid-template-columns:minmax(0,1fr)}
  .feed{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .work{aspect-ratio:4/5;padding:10px;border-radius:14px}
  .work .meta{padding:7px 10px;border-radius:11px}
  .work h3{font-size:.86rem;line-height:1.2}
  .work small{font-size:.58rem;letter-spacing:.1em}
  .work .play{top:9px;right:9px;width:32px;height:32px;font-size:.62rem}
  .trio .film.wide{grid-column:auto}
  .trio .film.portrait{max-width:340px;justify-self:center;width:100%;aspect-ratio:9/16;min-height:0}
  form.glass{padding:22px}
  .page-hero{padding-top:130px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;filter:none}
  .bars{display:none}
}

/* partner */
.partner{border-radius:28px;padding:clamp(28px,5vw,56px);display:grid;gap:14px;justify-items:start}
.partner h2{margin:0}
.partner .muted{max-width:560px;margin-bottom:10px}

@media(max-height:700px){.overlay{padding-top:92px;padding-bottom:14px;gap:12px}.overlay nav{gap:7px}.overlay nav a{padding:9px 20px;border-radius:18px}.ov-top{top:84px}.vf .tl,.vf .tr{top:78px}.ov-foot .btn{padding:.5rem 1rem}}

html.leaving body{opacity:0;filter:blur(6px);transition:opacity .28s,filter .28s}

.btn{white-space:nowrap}
@media(max-width:1240px){.rec{display:none}}
@media(max-width:1120px){.nav-right .hide-m{display:none}}
.logo span{white-space:nowrap}
.rec{transition:opacity .3s}
.menu-open .nav .rec{opacity:0}


/* ============ SELETTORE LINGUA ============ */
.lang{display:flex;gap:2px;padding:4px;border-radius:999px;font:600 .72rem var(--menu);letter-spacing:.1em}
.lang a{padding:6px 10px;border-radius:999px;color:var(--muted);transition:color .25s,background .25s}
.lang a:hover{color:#fff}
.lang a.on{color:#0a0a0b;background:var(--accent)}
.lang-ov{margin-right:auto}
.nav .logo img{height:46px}

/* ============ PULSANTE PARTNER ============ */
.partner-btn{display:inline-flex;align-items:center;gap:14px;margin:4px 0 26px;padding:15px 26px;border-radius:999px;font:600 1rem var(--body);color:var(--fg);border-color:rgba(255,255,255,.28);
  background:linear-gradient(135deg,rgba(208,75,192,.3),rgba(255,255,255,.04));transition:transform .25s,box-shadow .25s,border-color .25s}
.partner-btn i{font-style:normal;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--accent);color:#0a0a0b;transition:transform .3s}
.partner-btn:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 14px 34px -14px var(--accent)}
.partner-btn:hover i{transform:translateX(5px)}
form.glass.pulse{animation:formpulse 1.5s ease-out}
@keyframes formpulse{0%,100%{box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 18px 50px -22px #000}40%{box-shadow:0 0 0 2px var(--accent),0 0 70px -4px var(--accent)}}

/* ============ MAPPA 3D ============ */
.map3d{position:relative}
.map-stage{position:relative;height:clamp(340px,46vw,540px);border-radius:28px;overflow:hidden;perspective:1000px;background:#0b0813;border:1px solid rgba(255,255,255,.14);box-shadow:0 40px 90px -30px rgba(0,0,0,.85),inset 0 1px 0 rgba(255,255,255,.22);isolation:isolate}
.map-plane{position:absolute;inset:-38% -22%;transform-style:preserve-3d;transform:rotateX(0) rotateZ(0) scale(1.15);transform-origin:50% 50%;opacity:0;transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .9s}
.map3d.live .map-plane{opacity:1;transform:rotateX(var(--rx,56deg)) rotateZ(var(--rz,-7deg)) scale(1.15);transition:transform .9s cubic-bezier(.2,.8,.2,1),opacity 1s}
.map-plane iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none;filter:invert(.93) hue-rotate(255deg) saturate(1.7) brightness(.9) contrast(1.05)}
.map-tint{position:absolute;inset:0;pointer-events:none;background:radial-gradient(70% 70% at 50% 50%,rgba(208,75,192,.22),rgba(9,7,14,.55));mix-blend-mode:color}
.map-grid{position:absolute;inset:0;pointer-events:none;background-image:repeating-linear-gradient(0deg,rgba(208,75,192,.1) 0 1px,transparent 1px 56px),repeating-linear-gradient(90deg,rgba(208,75,192,.1) 0 1px,transparent 1px 56px)}
.map-stage::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,var(--bg) 0,rgba(9,7,14,.55) 22%,transparent 46%),radial-gradient(90% 80% at 50% 55%,transparent 55%,rgba(9,7,14,.7))}
.map-pin{position:absolute;left:50%;top:52%;width:0;height:0;z-index:3;pointer-events:none}
.pin-svg{position:absolute;width:54px;height:72px;left:-27px;top:-72px;fill:var(--accent);stroke:#fff;stroke-width:2.5;filter:drop-shadow(0 16px 14px rgba(0,0,0,.65)) drop-shadow(0 0 22px var(--accent));animation:pindrop 1.1s .5s cubic-bezier(.3,1.5,.5,1) both,pinbob 3s 1.8s ease-in-out infinite}
.pin-svg circle{fill:#fff;stroke:none}
@keyframes pindrop{from{transform:translateY(-140px) scaleY(1.25);opacity:0}to{transform:none;opacity:1}}
@keyframes pinbob{50%{transform:translateY(-8px)}}
.map-pin .ring{position:absolute;left:-60px;top:-22px;width:120px;height:44px;border-radius:50%;border:2px solid var(--accent);opacity:0;animation:pinring 2.8s 1.4s ease-out infinite}
.map-pin .ring.r2{animation-delay:2.8s}
@keyframes pinring{0%{transform:scale(.15);opacity:.95}100%{transform:scale(1.7);opacity:0}}
.map-label{position:absolute;left:50%;top:-146px;transform:translateX(-50%);padding:9px 18px;border-radius:14px;white-space:nowrap;display:grid;text-align:center;line-height:1.35;animation:fadein .8s 1.2s both}
.map-label b{font:700 .95rem var(--display)}
.map-label small{color:var(--muted);font-size:.78rem}
.map-link{position:absolute;inset:0;z-index:4;cursor:pointer;border-radius:inherit}
.map-link:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
.map-stage:hover .pin-svg{filter:drop-shadow(0 16px 14px rgba(0,0,0,.65)) drop-shadow(0 0 34px var(--accent))}
.map-actions{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;margin-top:16px;font-size:.92rem}
.map-actions a{color:var(--accent);font-weight:600}
.map-actions a:hover{text-decoration:underline}
@media(max-width:680px){.map-label{top:-132px;padding:7px 14px}.map-stage{height:380px}}

.partner-btn{white-space:normal;text-align:left;max-width:100%;line-height:1.3}
.partner-btn span{min-width:0}
h1,h2,h3,.steps b,.card h3,.cap h3,.pack h3,.list h3{overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto}
@media(max-width:680px){.steps b{font-size:clamp(1.05rem,5.2vw,1.4rem)}}

.lang-top{margin-left:4px}
@media(max-width:1000px){.nav .lang-top{display:none}}
.lang-ov{margin-right:auto}

/* ---- mappa 3D con canvas (sostituisce la versione con iframe) ---- */
.map-stage{perspective:none;background:radial-gradient(80% 70% at 50% 60%,#241437,#0b0813)}
.map-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .9s}
.map3d.live .map-canvas{opacity:1}
.map3d.nomap .map-canvas{display:none}
.map-pin{top:52%}
.map-attr{position:absolute;right:14px;bottom:10px;z-index:5;font-size:.68rem;color:rgba(255,255,255,.6)}
.map-attr a{text-decoration:underline}
.map-stage::after{background:linear-gradient(180deg,var(--bg) 0,rgba(9,7,14,.5) 14%,transparent 34%),radial-gradient(95% 85% at 50% 58%,transparent 62%,rgba(9,7,14,.75))}

form.glass{min-width:0}
.check{flex-wrap:wrap;overflow-wrap:anywhere}
.contact>*{min-width:0}

@media(max-width:400px){h2{font-size:clamp(1.3rem,7vw,1.8rem)}.feature{padding:24px 20px}}

/* ============ ICONE ACCOUNT / CARRELLO ============ */
.hicon{position:relative;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--fg);flex:none}
.hicon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hicon:hover{color:var(--accent)}
.hicon .cnt{position:absolute;top:-3px;right:-3px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--accent);color:#0a0a0b;font:700 .68rem/19px var(--body);text-align:center}
.pill a{padding:9px 16px}
@media(max-width:1180px){.pill a{padding:9px 12px;font-size:.84rem}}
@media(max-width:460px){.nav-right{gap:8px}.hicon{width:40px;height:40px}}

/* ============ CATALOGO NOLEGGI ============ */
.shop-note{margin:-0.6rem 0 1.6rem;max-width:640px}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:18px}
.pcard{border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}
.pmedia{height:190px;display:grid;place-items:center;background:radial-gradient(70% 90% at 50% 100%,color-mix(in srgb,var(--accent) 38%,transparent),transparent 70%),linear-gradient(160deg,#1c1230,#0e0919);overflow:hidden}
.pmedia svg{width:84px;height:84px;fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 14px color-mix(in srgb,var(--accent) 60%,transparent))}
.pmedia img{width:100%;height:100%;object-fit:cover}
.pbody{padding:22px;display:flex;flex-direction:column;gap:12px;flex:1}
.pbody p{font-size:.93rem}
.pprice{display:flex;align-items:baseline;gap:8px;margin-top:auto}
.pprice b{font:800 1.6rem var(--display)}
.pprice span{color:var(--muted);font-size:.85rem}
.pbuy{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.stepper{display:flex;align-items:center;border:1px solid rgba(255,255,255,.18);border-radius:999px;overflow:hidden;background:rgba(9,7,14,.45)}
.stepper button{width:38px;height:42px;background:none;border:0;color:var(--fg);font-size:1.15rem;cursor:pointer}
.stepper button:hover{color:var(--accent)}
.stepper input{width:42px;border:0;background:none;text-align:center;padding:0;border-radius:0;-moz-appearance:textfield}
.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none}
.pform{display:grid;grid-template-columns:1.3fr 1fr .8fr;gap:10px}
.pform .sf span{font-size:.72rem}
.pform input,.pform select{padding:10px 10px;font-size:.92rem;min-width:0}
@media(max-width:420px){.pform{grid-template-columns:1fr 1fr}.pform .sf:first-child{grid-column:span 2}}
.pmsg{min-height:1.2em;font-size:.85rem}
.pmsg.ok{color:#5fd38d}.pmsg.err{color:#ff9a9a}.pmsg a{text-decoration:underline}
.feature.loyalty{grid-template-columns:1.4fr .6fr}
.gifthint{display:inline-block;margin-top:10px;padding:8px 14px;border-radius:12px;background:rgba(255,255,255,.06);font-size:.9rem;color:var(--muted)}
.gifthint:empty{display:none}
.gifthint.on{background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--fg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 55%,transparent)}
.cap-art{display:grid;place-items:center;gap:6px}
.cap-art svg{width:150px;fill:none;stroke:var(--accent);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 18px color-mix(in srgb,var(--accent) 60%,transparent));animation:float 6s ease-in-out infinite alternate}
.cap-art b{font:800 2rem var(--display)}
@media(max-width:900px){.feature.loyalty{grid-template-columns:1fr}.cap-art svg{width:110px}}

/* ============ CARRELLO ============ */
.cart-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:24px;align-items:start}
.cart-lines{display:grid;gap:12px}
.cline{border-radius:var(--radius);padding:18px 20px;display:grid;grid-template-columns:1fr auto auto 34px;gap:16px;align-items:center}
.linfo{display:grid;gap:3px;min-width:0}
.linfo b{font-family:var(--display);font-size:1.05rem}
.lctl{display:flex;align-items:center;gap:10px}
.lctl input[type=number]{width:70px}
.lctl.room{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:300px}
.lctl.room input{padding:9px;font-size:.88rem;min-width:0}
.lctl.room .sf span{font-size:.7rem}
.lsum{font:700 1.05rem var(--display);white-space:nowrap}
.lrm{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:none;color:var(--muted);cursor:pointer}
.lrm:hover{color:#ff9a9a;border-color:#ff9a9a}
@media(max-width:1000px){.cart-grid{grid-template-columns:1fr}}
@media(max-width:620px){.cline{grid-template-columns:1fr auto;gap:12px}.lctl,.lctl.room{grid-column:1/-1;min-width:0}.lsum{grid-column:1}.lrm{grid-row:1;grid-column:2}}
.cart-side{border-radius:var(--radius);padding:24px;display:grid;gap:16px;position:sticky;top:96px}
@media(max-width:1000px){.cart-side{position:static}}
.sgrp{display:grid;gap:10px}
.sgrp .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sh{font:700 .95rem var(--display)}
.radio{display:flex;align-items:center;gap:10px;color:var(--fg);font-size:.95rem;cursor:pointer}
.radio input{width:18px;height:18px;accent-color:var(--accent);padding:0}
.tot{display:flex;justify-content:space-between;align-items:baseline;padding-top:14px;border-top:1px solid var(--line)}
.tot strong{font:800 1.7rem var(--display)}
.small{font-size:.85rem}
.sform{display:grid;gap:12px}
.sf{display:grid;gap:6px;font-size:.82rem;color:var(--muted)}
.smsg{min-height:1.2em;font-size:.88rem}.smsg.err{color:#ff9a9a}.smsg.ok{color:#5fd38d}
.stabs{display:flex;gap:6px;margin-bottom:14px}
.stabs button{flex:1;padding:10px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);color:var(--muted);font:600 .9rem var(--body);cursor:pointer}
.stabs button.on{background:var(--accent);border-color:var(--accent);color:#0a0a0b}
.needlogin{font-size:.9rem}
.linkbtn{background:none;border:0;color:var(--accent);cursor:pointer;font:inherit;text-decoration:underline}
.cart-empty,.cart-done,.acc-login{border-radius:var(--radius);padding:36px;display:grid;gap:16px;justify-items:start;max-width:640px}
.cart-done{justify-items:center;text-align:center;margin-inline:auto}
.okmark{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#0a0a0b;font-size:2rem;font-weight:800}
.onum b{font:800 1.3rem var(--display)}

/* ============ AREA CLIENTI ============ */
.acc-head{border-radius:var(--radius);padding:24px;display:grid;grid-template-columns:1fr minmax(220px,320px) auto;gap:24px;align-items:center;margin-bottom:34px}
@media(max-width:900px){.acc-head{grid-template-columns:1fr}}
.acc-head h2{margin:0;font-size:1.5rem;text-transform:none}
.loy{display:grid;gap:8px}
.bar{height:10px;border-radius:999px;background:rgba(255,255,255,.1);overflow:hidden}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#ff8ad9);border-radius:inherit;transition:width .8s}
.osec{margin-bottom:38px}
.osec h2{font-size:1.2rem;margin-bottom:16px}
.olist{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:16px}
.ocard{border-radius:var(--radius);padding:20px;display:grid;gap:12px;align-content:start}
.ocard header{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.ocard header small{margin-left:auto}
.ocard ul{list-style:none;display:grid;gap:4px;font-size:.93rem}
.ocard ul li::before{content:"✦";color:var(--accent);margin-right:8px;font-size:.7rem}
.odel{display:grid;gap:4px;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.05);font-size:.88rem}
.odel b{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent)}
.ocard footer{display:flex;justify-content:flex-end}
.st{padding:3px 12px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.04em;background:rgba(255,255,255,.1)}
.st-richiesta{background:rgba(255,200,90,.18);color:#ffd27a}
.st-confermata{background:rgba(90,170,255,.18);color:#8fc4ff}
.st-in_corso{background:color-mix(in srgb,var(--accent) 25%,transparent);color:#fff}
.st-conclusa{background:rgba(95,211,141,.18);color:#6fe0a0}
.st-annullata{background:rgba(255,120,120,.16);color:#ff9a9a}

/* ---- selettore lingua: in basso a sinistra, solo su computer ---- */
.nav .lang-top{position:fixed;left:18px;bottom:18px;margin:0;z-index:60;height:46px;align-items:center}
@media(max-width:1000px){.nav .lang-top{display:none}}

/* ---- pagine senza titolo: il contenuto parte subito sotto la barra ---- */
.shop-top{padding-top:112px;padding-bottom:50px}
@media(max-width:680px){.shop-top{padding-top:96px}}

/* ---- area utente compatta ---- */
.acc-top{border-radius:var(--radius);padding:16px 22px;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,1.3fr) auto;gap:22px;align-items:center}
@media(max-width:900px){.acc-top{grid-template-columns:1fr;gap:14px}}
.who{display:grid;gap:2px;min-width:0}.who b{font:700 1.15rem var(--display)}.who small{overflow:hidden;text-overflow:ellipsis}
.acc-login{margin-inline:auto}
.acc-list{max-height:calc(100svh - 430px);min-height:200px;overflow:auto;padding:2px 6px 6px 0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}
@media(max-width:900px){.acc-list{max-height:none}}
.acc-list .olist{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.acc-list .ocard{padding:16px;gap:10px}
.acc-list .empty{padding:24px 6px}
.personalize{margin-top:14px;display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;padding:12px 20px;border-radius:999px}
@media(max-width:700px){.personalize{border-radius:22px}}
.plab{font-size:.82rem;color:var(--muted)}

/* ---- le tre voci: una linea di vetro liquido come il menu ---- */
.tabs-glass{position:relative;display:flex;gap:4px;padding:6px;border-radius:999px;margin:14px 0;overflow-x:auto;scrollbar-width:none;width:max-content;max-width:100%}
.tabs-glass::-webkit-scrollbar{display:none}
.tabs-glass button{position:relative;z-index:1;flex:none;display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;border:0;background:none;color:#cfcade;font:500 .88rem var(--menu);letter-spacing:.05em;cursor:pointer;white-space:nowrap;transition:color .25s}
.tabs-glass button:hover,.tabs-glass button.on{color:#fff}
.tabs-glass .n{min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:rgba(255,255,255,.14);display:grid;place-items:center;font-size:.72rem}
.tabs-glass .sel{position:absolute;top:6px;bottom:6px;left:var(--x,6px);width:var(--w,0);border-radius:999px;pointer-events:none;z-index:0;
  background:rgba(208,75,192,.4);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 62%,transparent),color-mix(in srgb,var(--accent) 22%,transparent));
  -webkit-backdrop-filter:blur(10px) saturate(190%);backdrop-filter:blur(10px) saturate(190%);border:1px solid rgba(255,255,255,.38);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 -8px 14px rgba(255,255,255,.07),0 10px 26px -10px var(--accent);
  transition:left .6s cubic-bezier(.34,1.45,.5,1),width .6s cubic-bezier(.34,1.45,.5,1)}
.tabs-glass .sel::after{content:"";position:absolute;inset:1px 8px auto;height:46%;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.5),transparent);opacity:.55}

/* ---- barra fedelta': elisir che riempie un'ampolla di vetro ---- */
.loy{display:grid;gap:8px;min-width:0}
.loy .lh{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.elixir{position:relative;height:32px;border-radius:999px;overflow:hidden;border:1px solid rgba(255,255,255,.26);background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,.03));
  box-shadow:inset 0 3px 8px rgba(0,0,0,.55),inset 0 -2px 0 rgba(255,255,255,.12),0 0 26px -8px color-mix(in srgb,var(--accent) 65%,transparent)}
.liq{position:absolute;left:0;top:0;bottom:0;width:var(--p,0%);transition:width 2.2s cubic-bezier(.22,1.15,.36,1);
  background:linear-gradient(180deg,rgba(255,255,255,.42),transparent 48%),linear-gradient(90deg,color-mix(in srgb,var(--accent) 62%,#000),var(--accent));
  filter:saturate(1.3) drop-shadow(0 0 10px color-mix(in srgb,var(--accent) 80%,transparent))}
.liq::before,.liq::after{content:"";position:absolute;top:0;bottom:0;width:20px;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='48' viewBox='0 0 20 48'%3E%3Cpath d='M0 0H10C17 8 3 16 10 24S17 40 10 48H0Z'/%3E%3C/svg%3E") repeat-y 0 0/20px 48px;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='48' viewBox='0 0 20 48'%3E%3Cpath d='M0 0H10C17 8 3 16 10 24S17 40 10 48H0Z'/%3E%3C/svg%3E") repeat-y 0 0/20px 48px}
.liq::after{left:calc(100% - 4px);background:var(--accent);animation:waveY 1.9s linear infinite}
.liq::before{left:calc(100% - 11px);background:rgba(255,255,255,.55);animation:waveY 3.1s linear infinite reverse}
@keyframes waveY{to{-webkit-mask-position:0 48px;mask-position:0 48px}}
.bub{position:absolute;bottom:-6px;width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.75);opacity:0;animation:bubRise 3.2s ease-in infinite}
.bub.b1{left:12%}.bub.b2{left:30%;width:4px;height:4px;animation-delay:1.1s}.bub.b3{left:52%;width:6px;height:6px;animation-delay:.6s}.bub.b4{left:73%;animation-delay:1.9s}.bub.b5{left:90%;width:4px;height:4px;animation-delay:2.4s}
@keyframes bubRise{0%{transform:translateY(0) scale(.6);opacity:0}15%{opacity:.95}100%{transform:translateY(-36px) scale(1.15);opacity:0}}
.shine{position:absolute;left:10px;right:10px;top:4px;height:7px;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.55),transparent);pointer-events:none}

@media(min-width:1001px){footer{padding-bottom:64px}}
@media(max-width:520px){.tabs-glass{width:100%;gap:2px}.tabs-glass button{flex:1 0 auto;justify-content:center;padding:9px 8px;font-size:.68rem;gap:5px;letter-spacing:.02em}.tabs-glass .n{min-width:18px;height:18px;font-size:.64rem;padding:0 4px}}
@media(max-width:520px){.tabs-glass .n{display:none}.tabs-glass button{padding:9px 6px}}

/* ---- impostazioni nel pannello utente ---- */
.set-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:16px;align-items:start}
@media(max-width:900px){.set-grid{grid-template-columns:1fr}}
.set-card{border-radius:var(--radius);padding:20px 22px}
.set-card h3{font:600 .78rem var(--menu);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}
.set-card h3.sp{margin-top:22px}
.set-lang{display:inline-flex;font-size:.85rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14)}
.set-lang a{padding:8px 16px}
.set-form{display:grid;gap:12px}
.set-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:600px){.set-form .row2{grid-template-columns:1fr}}
.set-form .btn,.set-form .btn-glass{justify-self:start}
.personalize.inset{margin:0;padding:0;border:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0}
.personalize.inset::before,.personalize.inset::after{display:none}
.personalize[hidden]{display:none}
.acc-wrap>.personalize:not(.inset){margin-top:14px}
@media(max-width:900px){.tabs-glass button{padding:10px 12px;font-size:.8rem;letter-spacing:.03em}}
.acc-list:has(.set-grid){max-height:none;overflow:visible}

/* ---- pulsante in vetro liquido ---- */
.btn-glass{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;overflow:hidden;cursor:pointer;color:#fff;font:600 .95rem var(--body);letter-spacing:.02em;padding:.95rem 1.9rem;border-radius:999px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 58%,transparent),color-mix(in srgb,var(--accent) 20%,transparent));
  -webkit-backdrop-filter:blur(14px) saturate(190%);backdrop-filter:blur(14px) saturate(190%);border:1px solid rgba(255,255,255,.4);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65),inset 0 -10px 18px rgba(255,255,255,.07),0 14px 34px -14px var(--accent);
  transition:transform .5s cubic-bezier(.34,1.56,.5,1),box-shadow .3s}
.btn-glass>*{position:relative;z-index:1}
.btn-glass::before{content:"";position:absolute;inset:1px 10px auto;height:48%;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.5),transparent);opacity:.6;pointer-events:none}
.btn-glass::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;transform:skewX(-20deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transition:left .8s ease;pointer-events:none}
.btn-glass:hover{transform:translateY(-2px) scale(1.04);box-shadow:inset 0 1px 0 rgba(255,255,255,.75),inset 0 -10px 18px rgba(255,255,255,.1),0 18px 40px -12px var(--accent)}
.btn-glass:hover::after{left:130%}
.btn-glass:active{transform:scale(.95,1.07);transition-duration:.12s}
.btn-glass:disabled{opacity:.6;cursor:wait}
.btn-glass:focus-visible{outline:2px solid #fff;outline-offset:3px}

/* ---- pagina 404: tv a tubo catodico ---- */
.e404-main{min-height:100svh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(26px,5vw,70px);align-items:center;padding:110px max(20px,calc((100% - 1200px)/2)) 60px}
@media(max-width:900px){.e404-main{grid-template-columns:1fr;padding-top:96px;gap:30px}}
.crt-wrap{display:grid;place-items:center;padding:0 0 14px}
.crt{position:relative;width:min(100%,640px);padding-top:56px}
/* antenna */
.crt .ant{position:absolute;top:0;left:50%;width:4px;height:84px;border-radius:4px;background:linear-gradient(90deg,#8e8a9c,#e6e3f0 50%,#6f6b7e);transform-origin:50% 100%;z-index:0;top:-28px}
.crt .ant::after{content:"";position:absolute;top:-4px;left:-3px;width:10px;height:10px;border-radius:50%;background:#d8d4e6}
.crt .a1{transform:translateX(-50%) rotate(-32deg)}.crt .a2{transform:translateX(-50%) rotate(26deg)}
/* mobile del televisore */
.crt-body{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 15%;gap:3.2%;padding:3.6%;border-radius:26px;
  background:linear-gradient(160deg,#3a3548 0%,#221f2d 55%,#17141f 100%);
  box-shadow:inset 0 2px 0 rgba(255,255,255,.18),inset 0 -6px 14px rgba(0,0,0,.55),0 40px 70px -26px rgba(0,0,0,.9),0 0 90px -30px var(--accent)}
.crt-screen{position:relative;aspect-ratio:4/3;overflow:hidden;container-type:inline-size;border-radius:9% / 11%;background:#05040a;isolation:isolate;
  box-shadow:0 0 0 5px #0d0b13,inset 0 0 70px rgba(0,0,0,.95),inset 0 0 22px rgba(0,0,0,.8),0 0 40px -6px color-mix(in srgb,var(--accent) 55%,transparent);
  animation:crtOn 1s cubic-bezier(.2,.8,.2,1) both}
@keyframes crtOn{0%{transform:scale(1,.01);filter:brightness(4)}45%{transform:scale(1,.01);filter:brightness(4)}100%{transform:none;filter:none}}
.crt-video{position:absolute;inset:-3%;width:106%;height:106%;object-fit:cover;filter:saturate(1.5) contrast(1.15) brightness(.85) hue-rotate(-12deg) drop-shadow(2px 0 0 rgba(255,0,70,.55)) drop-shadow(-2px 0 0 rgba(0,230,255,.5));animation:crtJit 5.5s steps(1) infinite;z-index:0}
.crt-noise{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;mix-blend-mode:screen;opacity:.2;z-index:1;animation:crtNoise 3s steps(1) infinite}
.crt-lines{position:absolute;inset:0;z-index:2;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.34) 0 1px,transparent 1px 3px),radial-gradient(ellipse at center,transparent 52%,rgba(0,0,0,.72) 100%)}
.crt-lines::after{content:"";position:absolute;left:0;right:0;height:22%;top:-25%;background:linear-gradient(180deg,transparent,rgba(255,255,255,.14),transparent);animation:tvroll 5.2s linear infinite}
.crt-glare{position:absolute;inset:0;z-index:3;pointer-events:none;background:radial-gradient(120% 60% at 22% 4%,rgba(255,255,255,.2),transparent 48%)}
@keyframes crtJit{0%,88%,100%{transform:none}89%{transform:translate(-9px,2px) skewX(3deg)}91%{transform:translate(8px,-3px)}93%{transform:translate(-4px,0) scaleY(1.04)}95%{transform:none}}
@keyframes crtNoise{0%,86%,100%{opacity:.14}87%,92%{opacity:.6}}
@keyframes tvroll{to{top:125%}}
/* scritte a schermo */
.crt-osd{position:absolute;inset:0;z-index:4;display:grid;grid-template-rows:auto 1fr;padding:6.5% 8%;color:#fff;font-family:var(--menu);text-shadow:2px 0 rgba(255,0,70,.7),-2px 0 rgba(0,230,255,.7),0 0 12px rgba(0,0,0,.9)}
.osd-top{display:flex;justify-content:space-between;font:700 3cqw var(--menu);letter-spacing:.18em}
.osd-top b{color:#66ff9c}
.osd-mid{display:grid;place-content:center;justify-items:center;gap:clamp(6px,1.6vw,14px);text-align:center}
.osd-404{position:relative;font:800 29cqw/.9 var(--display);letter-spacing:-.03em;animation:osdG 3.2s steps(1) infinite}
.osd-404::before,.osd-404::after{content:attr(data-text);position:absolute;inset:0;mix-blend-mode:screen;opacity:.0}
.osd-404::before{color:#ff2b6d;transform:translate(-4px,0);clip-path:inset(0 0 55% 0)}
.osd-404::after{color:#18e6ff;transform:translate(4px,0);clip-path:inset(55% 0 0 0)}
@keyframes osdG{0%,88%,100%{transform:none}90%{transform:translate(-5px,1px)}92%{transform:translate(6px,-1px)}}
.osd-sig{display:inline-block;padding:.35em .9em;background:rgba(0,0,0,.72);border:1px solid rgba(255,255,255,.4);font:700 4.4cqw var(--menu);letter-spacing:.3em;animation:tvBlink 1.1s steps(1) infinite}
@keyframes tvBlink{50%{opacity:0}}
/* pannello comandi */
.crt-panel{display:flex;flex-direction:column;align-items:center;gap:12%;padding:10% 0;border-radius:14px;background:linear-gradient(180deg,#2a2636,#1a1723);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset 0 0 18px rgba(0,0,0,.6)}
.crt-panel .knob{width:64%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#d9d5e8,#6c667c 60%,#3b3647);box-shadow:0 5px 8px rgba(0,0,0,.6),inset 0 -3px 5px rgba(0,0,0,.4);position:relative}
.crt-panel .knob::after{content:"";position:absolute;left:50%;top:10%;width:7%;height:32%;margin-left:-3.5%;border-radius:3px;background:#1a1723;transform-origin:50% 150%;transform:rotate(38deg)}
.crt-panel .knob.k2::after{transform:rotate(-55deg)}
.crt-panel .grille{display:grid;gap:5px;width:62%;margin-top:auto}
.crt-panel .grille b{display:block;height:3px;border-radius:2px;background:#0c0a12;box-shadow:0 1px 0 rgba(255,255,255,.1)}
.crt-panel .led{width:9px;height:9px;border-radius:50%;background:#ff3d57;box-shadow:0 0 10px #ff3d57;animation:tvBlink 2.2s steps(1) infinite}
.crt .foot{position:absolute;bottom:-12px;width:14%;height:16px;border-radius:0 0 8px 8px;background:#14111b;z-index:0}
.crt .f1{left:9%}.crt .f2{right:9%}
/* testi accanto alla tv */
.e404-slate{font:600 .78rem var(--menu);letter-spacing:.2em;color:var(--muted);margin:0 0 6px}
.e404-slate b{color:var(--accent)}
.e404-copy h2{font-size:clamp(1.7rem,4vw,2.8rem);text-transform:uppercase;margin:6px 0 10px}
.e404-kick{font:600 .9rem var(--menu);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 14px}
.e404-text{max-width:520px;margin:0 0 26px}
.e404-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
@media(prefers-reduced-motion:reduce){.crt-screen,.crt-video,.crt-noise,.crt-lines::after,.osd-404,.osd-sig,.crt-panel .led{animation:none}}

/* ---- riga voci: ordini a sinistra, Impostazioni in una pillola di vetro staccata ---- */
.tabs-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin:14px 0}
.tabs-row .tabs-glass{margin:0}
.tabs-glass .sel{transition:left .6s cubic-bezier(.34,1.45,.5,1),width .6s cubic-bezier(.34,1.45,.5,1),opacity .3s}
@media(max-width:520px){.tabs-row{flex-direction:column;align-items:stretch}.tabs-row .tabs-solo{width:100%}}

/* ---- newsletter nel footer ---- */
.news{align-items:stretch!important}
.news p{margin:0 0 4px}
.news-form{display:grid;gap:10px;width:100%;max-width:440px}
.news-row{display:flex;gap:6px;padding:5px;border-radius:999px}
.news-row input{flex:1;min-width:0;background:none;border:0;border-radius:999px;padding:10px 16px;color:var(--fg)}
.news-row input:focus{outline:none}.news-row:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.news-row .btn-glass{padding:.6rem 1.3rem;font-size:.9rem;flex:none}
.news-ok{font-size:.8rem;color:var(--muted);align-items:flex-start;line-height:1.35}
.news-ok input{margin-top:3px}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.sform .news-ok,.set-form .news-ok{font-size:.88rem}

/* ---- menu a cascata sotto "Servizi" ---- */
.pill .dd{position:relative;z-index:1;display:flex;align-items:center;border-radius:999px}
.pill .dd .dd-main{padding-right:6px}
.pill .dd-main::after{content:"";position:absolute;left:20px;right:6px;bottom:6px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s ease;opacity:.8}
.pill .dd-main:hover::after,.pill .dd-main:focus-visible::after{transform:scaleX(1)}
.pill .dd-tog{display:grid;place-items:center;width:26px;height:26px;margin-right:8px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#cfcade;cursor:pointer;transition:background .25s,color .25s}
.pill .dd-tog svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}
.pill .dd-tog:hover,.pill .dd.on .dd-tog{background:rgba(255,255,255,.18);color:#fff}
.pill .dd.open .dd-tog svg,.pill .dd:hover .dd-tog svg{transform:rotate(180deg)}
.pill .dd.on .dd-main{color:#fff}
/* menu telefono: sotto "Servizi" le tre voci come piccole pillole */
.overlay nav .ov-sub{display:flex;flex-wrap:wrap;gap:8px;margin:-2px 0 0 58px}
.overlay nav .ov-sub a{display:block;grid-template-columns:none;padding:9px 16px;border-radius:999px;font:600 .8rem var(--menu);letter-spacing:.12em;text-transform:uppercase;color:#e7e2f5}
.overlay nav .ov-sub a[aria-current=page]{color:var(--accent)}
@media(min-width:1001px){.overlay nav .ov-sub{margin-left:70px}}

/* ---- menu unico: sotto "Servizi" una parte della pillola si scioglie verso il basso, sempre lo stesso vetro ---- */
.pill{flex-wrap:wrap;align-content:flex-start;row-gap:0;border-radius:28px}
.pill .sel{bottom:auto;height:36px}
.pill.melting{border-color:transparent;box-shadow:none}
.pill .pill-edge{position:absolute;left:-1px;top:-1px;width:calc(100% + 2px);height:calc(100% + 2px);pointer-events:none;overflow:visible;display:none;z-index:2}
.pill.melting .pill-edge{display:block}
.pill .dd-sub{position:absolute;left:var(--tl,0);top:var(--R,50px);width:var(--tw,210px);visibility:hidden;pointer-events:none;z-index:1}
.pill.melting .dd-sub{visibility:visible;pointer-events:auto}
.dd-sub-in{display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:12px 8px 10px;white-space:nowrap}
.dd-sub-in a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 16px;border-radius:999px;font:500 .86rem var(--menu);letter-spacing:.07em;color:#d8d3e8;opacity:0;transform:translateY(-6px) scale(.97);filter:blur(5px);transform-origin:0 50%;transition:opacity .12s,transform .12s,filter .12s,color .25s,background .25s}
.pill.dd-open .dd-sub-in a{opacity:1;transform:none;filter:none;transition:opacity .4s ease,transform .55s cubic-bezier(.2,.9,.3,1),filter .4s ease,color .25s,background .25s;transition-delay:calc(.1s + var(--i,0)*.045s),calc(.1s + var(--i,0)*.045s),calc(.1s + var(--i,0)*.045s),0s,0s}
.dd-sub-in a:hover,.dd-sub-in a:focus-visible{color:#fff;background:rgba(255,255,255,.12);outline:none}
.dd-sub-in a em{font-style:normal;color:var(--accent);transition:transform .3s}
.dd-sub-in a:hover em{transform:translateX(4px)}
.dd-sub-in a[aria-current=page]:not(.all){color:var(--accent)}
.pill .dd.open .dd-tog svg,.pill.dd-open .dd-tog svg{transform:rotate(180deg)}
@media(min-width:1001px){.nav{align-items:flex-start}.nav .logo{margin-top:1px}.nav-right{min-height:48px}}
@media(max-width:1000px){.pill .dd-sub,.pill .pill-edge{display:none}}
@media(prefers-reduced-motion:reduce){.dd-sub-in a{transition:none}.pill.dd-open .dd-sub-in a{transition:none;opacity:1;transform:none;filter:none}}

/* ---- telefono: menu a tutto schermo, pagina bloccata, piu' leggero ---- */
html{background:#09070e}
.foot-grid .logo{z-index:auto}
html.menu-open{overflow:hidden;scrollbar-width:none}
html.menu-open::-webkit-scrollbar{display:none}
body.menu-lock{position:fixed;left:0;right:0;width:100%;overflow:hidden}
html.menu-still main,html.menu-still footer{visibility:hidden}
.overlay{scrollbar-width:none}
.overlay::-webkit-scrollbar{display:none}
@supports (height:100lvh){
  .overlay{height:100lvh;bottom:auto}
  body::before{height:100lvh;bottom:auto}
}
.overlay{padding-bottom:calc(28px + env(safe-area-inset-bottom,0px))}
@media(max-width:1000px){
  .overlay{justify-content:flex-start;-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);background:rgba(9,7,14,.86);contain:paint}
  .overlay nav{margin-top:auto}
  .overlay .ov-foot{margin-bottom:auto}
  .ov-blob{animation:none;filter:blur(46px)}
  .overlay nav a.glass{-webkit-backdrop-filter:none;backdrop-filter:none;background:linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,.06))}
  .overlay .lang.glass{-webkit-backdrop-filter:none;backdrop-filter:none}
}/* telefono: il menu deve stare tutto nello schermo anche con le barre di Safari */
@media(max-width:1000px){
  .overlay{padding-top:84px;gap:12px;padding-left:16px;padding-right:16px}
  .ov-top{top:76px}
  .overlay nav{gap:8px}
  .overlay nav a{padding:clamp(9px,1.9svh,15px) 20px;border-radius:20px}
  .overlay nav a span{font-size:clamp(1rem,min(5.4vw,3.2svh),1.6rem)}
  .overlay nav .ov-sub{margin:-2px 0 0 52px;gap:6px}
  .overlay nav .ov-sub a{padding:7px 12px;font-size:.7rem;letter-spacing:.1em}
  .ov-foot{gap:10px}
}

.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.shop-top .sec-head h1{font-size:clamp(1.8rem,4.4vw,3.2rem)}
@media(max-width:400px){.shop-top .sec-head h1{font-size:clamp(1.3rem,7vw,1.8rem)}}

.link-btn{justify-self:start;background:none;border:0;padding:6px 0;color:var(--muted);font:inherit;font-size:.9rem;text-decoration:underline;text-underline-offset:3px;cursor:pointer;transition:color .2s}
.link-btn:hover,.link-btn:focus-visible{color:var(--accent)}
.sform .ftitle{font-size:1.2rem;margin:0}.sform .fnote{margin:0;font-size:.92rem}

/* ---- pagina Spot pubblicitari ---- */
.hero-cta{margin-top:26px}
.seo-intro p{max-width:760px;margin-bottom:1.1rem}
.zones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.zone{border-radius:var(--radius);padding:clamp(22px,3vw,34px);display:grid;gap:12px;align-content:start}
.zone h3{margin:0;font-size:1.5rem}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.chips li{padding:6px 14px;border:1px solid var(--line);border-radius:999px;font-size:.85rem;color:var(--muted);background:rgba(255,255,255,.03)}
@media(max-width:800px){.zones{grid-template-columns:minmax(0,1fr)}}

.seo-lead{max-width:760px;margin-bottom:1.6rem}
.fairs-tags{margin-top:1.6rem}

/* ---- Servizi: ogni voce si apre per leggere la descrizione ---- */
.list.acc li{display:block;padding:0}
.list.acc li:hover{padding-left:0}
.list.acc summary{display:grid;grid-template-columns:60px minmax(0,1fr) auto;gap:20px;align-items:baseline;padding:26px 0;cursor:pointer;list-style:none;transition:padding .3s}
.list.acc summary::-webkit-details-marker{display:none}
.list.acc summary::after{content:"+";color:var(--accent);font-size:1.7rem;line-height:1;transition:transform .35s cubic-bezier(.3,.9,.3,1)}
.list.acc details[open] summary::after{transform:rotate(45deg)}
.list.acc summary:hover{padding-left:16px}
.list.acc summary:hover h3,.list.acc details[open] summary h3{color:var(--accent)}
.list.acc summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}
.list.acc .acc-b{padding:0 0 28px 80px;max-width:820px}
.list.acc details[open] .acc-b{animation:accIn .4s cubic-bezier(.2,.8,.2,1)}
.list.acc .acc-b p{display:inline;color:var(--muted)}
.list.acc .acc-b .inl{margin-left:6px}
@keyframes accIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media(max-width:680px){.list.acc summary{grid-template-columns:36px minmax(0,1fr) auto;gap:12px}.list.acc .acc-b{padding-left:48px}}
@media(prefers-reduced-motion:reduce){.list.acc details[open] .acc-b{animation:none}}
