body{margin:0;background:#070304}
a{color:#FF8FA3}a:hover{color:#FFC2CD}
.cb-root *{box-sizing:border-box}
.cb-in{width:100%;height:52px;padding:0 16px;border-radius:12px;border:1px solid rgba(255,214,222,.16);background:rgba(255,255,255,.04);color:#F6E7EA;font:500 16px Montserrat,system-ui,sans-serif;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}
.cb-in::placeholder{color:rgba(246,231,234,.38)}
.cb-in:focus{border-color:#FF2E4D;background:rgba(255,46,77,.06);box-shadow:0 0 0 3px rgba(255,46,77,.18),0 0 22px rgba(255,46,77,.25)}
.cb-check{appearance:none;-webkit-appearance:none;flex:none;width:22px;height:22px;margin:1px 0 0;border-radius:6px;border:1.5px solid rgba(255,214,222,.35);background:transparent;cursor:pointer;display:grid;place-content:center;transition:all .2s}
.cb-check:checked{background:#FF2E4D;border-color:#FF2E4D;box-shadow:0 0 14px rgba(255,46,77,.6)}
.cb-check:checked::after{content:"";width:10px;height:6px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
.cb-btn{transition:transform .15s,box-shadow .25s,background .25s}
.cb-btn:hover{box-shadow:0 0 0 1px #FF2E4D,0 0 34px rgba(255,46,77,.55);background:#B0173E}
.cb-btn:active{transform:scale(.98)}
.cb-card{transition:border-color .2s,box-shadow .2s,background .2s}

.beam{position:absolute;top:-40px;left:50%;width:300px;height:calc(100% + 40px);margin-left:-150px;background:linear-gradient(180deg,rgba(255,190,202,.42),rgba(255,60,92,.14) 55%,rgba(255,46,77,0));clip-path:polygon(40% 0,60% 0,100% 100%,0 100%);filter:blur(16px);opacity:0;animation:beamIn 1.3s ease .05s forwards,beamPulse 7s ease-in-out 1.5s infinite}
@keyframes beamIn{to{opacity:1}}
@keyframes beamPulse{0%,100%{opacity:1}50%{opacity:.6}}
.smoke{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(205,22,60,.55),rgba(205,22,60,0) 68%);filter:blur(26px);opacity:0;animation:smokeIn 1.8s ease .2s forwards,drift 16s ease-in-out 0s infinite alternate}
.smoke.s2{animation-duration:1.8s,19s;animation-delay:.35s,0s}
.smoke.s3{animation-duration:1.8s,23s;animation-delay:.5s,0s}
@keyframes smokeIn{to{opacity:1}}
@keyframes drift{0%{transform:translate(0,0) scale(1)}50%{transform:translate(30px,-14px) scale(1.12)}100%{transform:translate(-26px,10px) scale(.94)}}
.ring{position:absolute;left:50%;bottom:calc(var(--rb) + env(safe-area-inset-bottom,0px));width:var(--rw);height:calc(var(--rw) * .18);margin-left:calc(var(--rw) / -2);border-radius:50%;border:1.5px solid rgba(255,110,132,.75);box-shadow:0 0 18px rgba(255,46,77,.55),inset 0 0 20px rgba(255,46,77,.35);opacity:0;transform:scale(.25);animation:ringIn 1.1s cubic-bezier(.2,.8,.2,1) 1.25s forwards,ringPulse 5s ease-in-out 2.4s infinite}
.ring.r2{width:calc(var(--rw) * .7333);margin-left:calc(var(--rw) * -.36667);height:calc(var(--rw) * .12667);bottom:calc(var(--rb) + var(--rw) * .02667 + env(safe-area-inset-bottom,0px));border-color:rgba(255,110,132,.35);animation-delay:1.4s,2.6s}
@keyframes ringIn{to{opacity:1;transform:scale(1)}}
@keyframes ringPulse{0%,100%{box-shadow:0 0 18px rgba(255,46,77,.55),inset 0 0 20px rgba(255,46,77,.35)}50%{box-shadow:0 0 34px rgba(255,46,77,.85),inset 0 0 30px rgba(255,46,77,.5)}}
.floor{position:absolute;left:0;right:0;bottom:0;height:200px;background:radial-gradient(ellipse 60% 55% at 50% 78%,rgba(255,46,77,.32),rgba(255,46,77,0) 70%);opacity:0;animation:smokeIn 1.2s ease 1.2s forwards}

.picto{display:block;width:var(--picto);height:auto;overflow:visible;filter:drop-shadow(0 0 3px rgba(255,46,77,.95)) drop-shadow(0 0 14px rgba(255,46,77,.55));animation:breathe 4.5s ease-in-out 2s infinite}
@keyframes breathe{0%,100%{filter:drop-shadow(0 0 3px rgba(255,46,77,.95)) drop-shadow(0 0 14px rgba(255,46,77,.55))}50%{filter:drop-shadow(0 0 6px rgba(255,46,77,1)) drop-shadow(0 0 32px rgba(255,46,77,.8))}}
.np{fill:#FFE6EB;fill-opacity:0;stroke:#FF4A64;stroke-width:.9;stroke-linejoin:round;stroke-dasharray:220;stroke-dashoffset:220;animation:draw 1s cubic-bezier(.65,0,.35,1) .15s forwards,ignite .6s linear 1.1s forwards}
.np.p2{animation-delay:.24s,1.15s}.np.p3{animation-delay:.2s,1.1s}.np.p4{animation-delay:.28s,1.15s}.np.p5{animation-delay:.12s,1.1s}.np.p6{animation-delay:.22s,1.15s}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes ignite{0%{fill-opacity:0}8%{fill-opacity:.85}12%{fill-opacity:.05}20%{fill-opacity:1}24%{fill-opacity:.25}34%{fill-opacity:.25}42%{fill-opacity:1}100%{fill-opacity:1;stroke-opacity:.35}}
.face{transform-box:fill-box;transform-origin:center;animation:faceIn 1s cubic-bezier(.16,.84,.24,1) .12s both}
.face.fl{--fx:-16px;--fy:11px}.face.fr{--fx:16px;--fy:11px}.face.ft{--fx:0px;--fy:-18px}
@keyframes faceIn{from{transform:translate(var(--fx),var(--fy));opacity:0}to{transform:translate(0,0);opacity:1}}
.flick{animation:flick 9s linear 4s infinite}
@keyframes flick{0%,93%,100%{opacity:1}94%{opacity:.35}95%{opacity:1}96.5%{opacity:.5}97.5%{opacity:1}}

.wm{display:block;width:100%;max-width:100%;height:auto;overflow:visible;filter:drop-shadow(0 0 10px rgba(255,90,118,.45))}
.wl{fill:#F7E8EB;transform-box:fill-box;opacity:0;animation:letter .7s cubic-bezier(.2,.8,.2,1) both}
.w1{animation-delay:1.4s}.w2{animation-delay:1.45s}.w3{animation-delay:1.5s}.w4{animation-delay:1.55s}.w5{animation-delay:1.65s}.w6{animation-delay:1.7s}.w7{animation-delay:1.75s}.w8{animation-delay:1.8s}.w9{animation-delay:1.85s}
@keyframes letter{from{opacity:0;transform:translateY(12px);filter:blur(7px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
.club{fill:#F7E8EB;opacity:0;animation:clubIn .9s ease 2s forwards}
@keyframes clubIn{from{opacity:0}to{opacity:.92}}
.rise{opacity:0;animation:rise .7s cubic-bezier(.2,.8,.2,1) both}
.d1{animation-delay:2.2s}.d2{animation-delay:2.35s}.d3{animation-delay:2.5s}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.bob{animation:bob 2s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
.okdraw{stroke-dasharray:60;stroke-dashoffset:60;animation:draw .9s cubic-bezier(.65,0,.35,1) .25s forwards}
.okring{stroke-dasharray:200;stroke-dashoffset:200;animation:draw 1.1s cubic-bezier(.65,0,.35,1) 0s forwards}
.okpop{animation:rise .8s cubic-bezier(.2,.8,.2,1) both}
@media (prefers-reduced-motion: reduce){
.beam,.smoke,.ring,.floor,.picto,.np,.face,.flick,.wl,.club,.rise,.bob,.okdraw,.okring,.okpop{animation:none !important}
.beam,.smoke,.ring,.floor,.wl,.rise,.okpop{opacity:1}.club{opacity:.92}
.ring{transform:scale(1)}.np{stroke-dashoffset:0;fill-opacity:1;stroke-opacity:.35}.okdraw,.okring{stroke-dashoffset:0}
}
/* stili del prototipo spostati dagli attributi style in classi */
html{scroll-behavior:smooth}
.cb-root{width:100%;min-height:100vh;background:#070304;color:#F6E7EA;font-family:Montserrat,system-ui,sans-serif;overflow:hidden}
.hero{--h:1svh;--w:1vw;--rw:clamp(240px,calc(77 * var(--w)),420px);--rb:58px;--pt:clamp(36px,calc(7 * var(--h)),96px);--pb:clamp(20px,calc(4 * var(--h)),56px);--gap:clamp(12px,calc(2.9 * var(--h)),34px);--km:clamp(0px,calc(1.2 * var(--h)),12px);--picto:clamp(96px,min(calc(15 * var(--h)),calc(30 * var(--w))),150px);--wmw:clamp(260px,calc(37 * var(--h)),360px);position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden;border-bottom:1px solid rgba(149,19,51,.6);background:radial-gradient(ellipse 90% 70% at 50% 35%,#2A0710 0%,#120306 55%,#070304 100%)}
.smoke.sm1{width:360px;height:220px;left:-120px;bottom:130px}
.smoke.sm2{width:380px;height:240px;right:-150px;bottom:140px}
.smoke.sm3{width:420px;height:200px;left:10%;bottom:40px}
#intro{height:100%}
.frame{position:absolute;top:max(14px,env(safe-area-inset-top,0px));right:max(14px,env(safe-area-inset-right,0px));bottom:max(14px,env(safe-area-inset-bottom,0px));left:max(14px,env(safe-area-inset-left,0px));border:1px solid rgba(149,19,51,.85);border-radius:4px;pointer-events:none}
.hero-in{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top,0px) + var(--pt)) max(28px,calc(env(safe-area-inset-right,0px) + 12px)) calc(env(safe-area-inset-bottom,0px) + var(--rb) + var(--rw) * .18 + var(--pb)) max(28px,calc(env(safe-area-inset-left,0px) + 12px));gap:var(--gap)}
.picto-btn{background:none;border:0;padding:8px;cursor:pointer;min-width:44px;min-height:44px;-webkit-tap-highlight-color:transparent}
.picto-btn:focus-visible{outline:1px solid rgba(255,110,132,.6);outline-offset:4px;border-radius:8px}
.wm-wrap{position:relative;width:var(--wmw);max-width:100%;overflow:visible;padding:6px 0}
.kicker{margin:var(--km) 0 0;font-size:12px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:#E8B9C3;text-align:center}
.cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 30px;border-radius:999px;border:1px solid rgba(255,110,132,.6);background:rgba(149,19,51,.35);color:#FFF3F5;font-size:14px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.cta:hover{color:#FFF3F5}
.arrow{margin-top:6px}
.lista{position:relative;max-width:480px;margin:0 auto;padding:56px 20px 40px}
.head{display:flex;flex-direction:column;gap:8px;margin-bottom:28px}
.eyebrow{margin:0;font-size:12px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:#FF8FA3}
.h1{margin:0;font-family:Marcellus,serif;font-weight:400;font-size:34px;line-height:1.15;color:#F7E8EB}
.lead{margin:0;font-size:15px;line-height:1.6;color:#CFAFB7}
.form{display:flex;flex-direction:column;gap:22px}
.serate{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;min-width:0}
.legend{padding:0;margin-bottom:10px;font-size:13px;font-weight:600;color:#F6E7EA}
.cb-card{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:72px;padding:14px 18px;border-radius:14px;cursor:pointer;font-family:Montserrat,system-ui,sans-serif;border:1px solid rgba(255,214,222,.14);background:rgba(255,255,255,.03);color:inherit}
.cb-card.on{border:1px solid #FF2E4D;background:rgba(255,46,77,.08);box-shadow:0 0 24px rgba(255,46,77,.22)}
.card-txt{display:flex;flex-direction:column;gap:4px;text-align:left}
.card-nome{font-family:Marcellus,serif;font-size:19px;color:#F7E8EB;overflow-wrap:anywhere}
.card-data{font-size:13px;color:#CFAFB7}
.card-info{font-size:12px;line-height:1.5;color:#B8949D}
.card-dx{flex:none;display:flex;align-items:center;gap:12px}
.card-eta{flex:none;padding:4px 10px;border-radius:999px;border:1px solid #FF2E4D;font-family:Montserrat,system-ui,sans-serif;font-size:11px;font-weight:600;letter-spacing:.1em;line-height:1.4;color:#F7E8EB}
.dot{flex:none;width:20px;height:20px;border-radius:50%;border:1.5px solid rgba(255,214,222,.35)}
.cb-card.on .dot{border:6px solid #FF2E4D;box-shadow:0 0 12px rgba(255,46,77,.8)}
/* modulo dei dati: compare solo dopo la scelta della serata */
.dati{display:flex;flex-direction:column;gap:22px;min-width:0}
.dati.apre{overflow:hidden}
.dati-head{display:flex;flex-direction:column;gap:6px;padding-top:6px}
.riepilogo{margin:0;font-family:Montserrat,system-ui,sans-serif;font-size:13px;line-height:1.5;color:#CFAFB7;overflow-wrap:anywhere}
.field-box{display:flex;flex-direction:column;gap:8px;min-width:0}
.err-campo{margin:0;font-size:13px;font-weight:500;line-height:1.45;color:#FF8FA3}
.cb-in[aria-invalid="true"]{border-color:#FF2E4D}
.row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.field{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600}
.consensi{display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,214,222,.1)}
.consenso{display:flex;gap:12px;align-items:flex-start;min-height:44px;font-size:13px;line-height:1.55;color:#E6CCD2;cursor:pointer}
.obbl{color:#FF8FA3;font-weight:600}
.alert{margin:0;padding:12px 14px;border-radius:10px;background:rgba(255,46,77,.1);border:1px solid rgba(255,46,77,.45);color:#FFC2CD;font-size:14px;line-height:1.5}
.submit{min-height:56px;border:0;border-radius:14px;background:#951333;color:#FFFFFF;font-family:Montserrat,system-ui,sans-serif;font-size:15px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;box-shadow:0 10px 30px rgba(149,19,51,.45)}
.submit:disabled{opacity:.7;cursor:wait}
.trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.vuoto{margin:0;padding:18px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,214,222,.1);font-size:15px;line-height:1.6;color:#CFAFB7}
.ok{display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px;padding:24px 8px 12px}
.ok-svg{filter:drop-shadow(0 0 6px rgba(255,46,77,.9)) drop-shadow(0 0 22px rgba(255,46,77,.5))}
.h2{margin:0;font-family:Marcellus,serif;font-weight:400;font-size:32px;line-height:1.2;color:#F7E8EB}
.again{margin-top:8px;min-height:48px;padding:0 24px;border-radius:999px;border:1px solid rgba(255,214,222,.25);background:transparent;color:#F6E7EA;font-family:Montserrat,system-ui,sans-serif;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.foot{border-top:1px solid rgba(149,19,51,.5);padding:32px 20px 40px}
.foot-in{max-width:480px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}
.foot-picto{opacity:.9}
.foot-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 22px;font-size:13px}
.foot-nav a{display:inline-flex;align-items:center;min-height:44px}
.foot-soc{margin:0;max-width:100%;font-size:12px;line-height:1.7;color:#B8949D;overflow-wrap:anywhere}
@supports not (height:1svh){.hero{--h:1vh}}
@supports (width:1cqw){.hero{container-type:size;--h:1cqh;--w:1cqw}}
@media (orientation:landscape) and (max-height:500px){.hero{min-height:0;height:100vh;height:100svh;--picto:clamp(64px,calc(20 * var(--h)),150px);--wmw:clamp(200px,calc(55 * var(--h)),360px);--gap:clamp(6px,calc(2.2 * var(--h)),20px);--km:0px;--pt:clamp(10px,calc(3 * var(--h)),30px);--pb:clamp(8px,calc(2 * var(--h)),20px);--rb:clamp(22px,calc(6 * var(--h)),58px);--rw:clamp(160px,calc(50 * var(--h)),300px)}}
[hidden]{display:none !important}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
