/*
 * Coleção Neon: pista de dança que acende.
 * Cores: --t-cover (fundo) --t-paper (vidro escuro dos cartões) --t-accent / --t-accent-2 (neon)
 *        --t-petal / --t-petal2 / --t-leaf (aurora e confete) --t-line (núcleo branco do neon)
 */
.inv-neon{--x-radius:20px;--x-btn-radius:14px;--x-title:var(--f-display);--glow:1;background:var(--t-backdrop);color:var(--t-cover-ink)}
.inv-neon.fx-glow--soft{--glow:.55}
@property --ang{syntax:'<angle>';inherits:false;initial-value:0deg}

/* ---------- Pista ---------- */
.club{position:fixed;z-index:0;top:0;bottom:0;left:50%;width:min(100%,480px);transform:translateX(-50%);overflow:hidden;background:var(--t-cover)}
.club-img{position:absolute;inset:-4%;background:none;filter:brightness(.75) saturate(1.2);animation:pump 3.6s ease-in-out infinite}
@keyframes pump{50%{scale:1.025}}
.aurora{position:absolute;inset:-20%;filter:blur(60px);opacity:.75;mix-blend-mode:screen}
.aurora i{position:absolute;width:60%;aspect-ratio:1;border-radius:50%;animation:drift 16s ease-in-out infinite alternate}
.aurora i:nth-child(1){background:var(--t-petal);left:0;top:5%}
.aurora i:nth-child(2){background:var(--t-petal2);right:0;top:35%;animation-duration:20s;animation-delay:-5s}
.aurora i:nth-child(3){background:var(--t-leaf);left:20%;bottom:0;animation-duration:24s;animation-delay:-9s;opacity:.6}
@keyframes drift{0%{transform:translate(0,0)}50%{transform:translate(20%,15%)}100%{transform:translate(-15%,-10%)}}
.lasers{position:absolute;inset:0;mix-blend-mode:screen;pointer-events:none}
.lasers img{position:absolute;inset:-10%;width:120%;height:120%;object-fit:cover;animation:sway 9s ease-in-out infinite alternate,strobe 3.6s ease-in-out infinite}
@keyframes sway{from{transform:rotate(-3deg) scale(1.02)}to{transform:rotate(3deg) scale(1.06)}}
@keyframes strobe{0%,100%{opacity:.85}50%{opacity:.55}}
.lasers i{position:absolute;top:-10%;width:3px;height:140%;transform-origin:50% 0;background:linear-gradient(180deg,var(--t-accent),transparent 80%);box-shadow:0 0 12px 2px var(--t-accent);opacity:.55;animation:laser 6s ease-in-out infinite alternate}
.lasers i:nth-child(1){left:8%;animation-duration:5s}
.lasers i:nth-child(2){left:30%;background:linear-gradient(180deg,var(--t-accent-2),transparent 80%);box-shadow:0 0 12px 2px var(--t-accent-2);animation-delay:-2s}
.lasers i:nth-child(3){right:30%;animation-duration:7s;animation-delay:-4s}
.lasers i:nth-child(4){right:8%;background:linear-gradient(180deg,var(--t-accent-2),transparent 80%);box-shadow:0 0 12px 2px var(--t-accent-2);animation-duration:5.5s}
@keyframes laser{from{transform:rotate(-28deg)}to{transform:rotate(28deg)}}
.club-veil{position:absolute;inset:0;background:radial-gradient(90% 60% at 50% 30%,transparent,rgba(0,0,0,.55))}
/* Apagado até o interruptor */
.is-closed .club{filter:brightness(.08) saturate(.2)}
.is-opening .club{animation:powerOn 1.6s steps(1) forwards}
@keyframes powerOn{0%{filter:brightness(.1)}10%{filter:brightness(1)}14%{filter:brightness(.15)}22%{filter:brightness(1)}26%{filter:brightness(.3)}34%,100%{filter:none}}

/* ---------- Interruptor ---------- */
.inv-neon .cover{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;cursor:pointer;transition:opacity .6s ease 1.2s}
.inv-neon .cover.is-gone{display:none}
.cv-kicker{margin:0;font-family:var(--f-display);font-size:12px;letter-spacing:.4em;text-transform:uppercase;color:color-mix(in srgb,var(--t-cover-ink) 70%,transparent)}
.cv-for{margin:0;font-family:var(--f-script);font-size:34px;color:var(--t-cover-ink)}
.switch{position:relative;width:88px;height:150px;margin:18px 0 6px;padding:0;border:0;border-radius:18px;background:linear-gradient(180deg,#2a2630,#141118);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 20px 40px -10px rgba(0,0,0,.8),0 0 0 6px #1b1820,0 0 0 7px rgba(255,255,255,.06)}
.knob{position:absolute;left:14px;right:14px;top:14px;height:58px;border-radius:12px;background:linear-gradient(180deg,#3a3542,#221e28);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 8px 12px -4px rgba(0,0,0,.8);transition:top .25s cubic-bezier(.5,1.6,.5,1),background .3s}
.knob::after{content:"";position:absolute;left:50%;top:50%;width:26px;height:4px;margin:-2px 0 0 -13px;border-radius:2px;background:var(--t-accent);box-shadow:0 0 10px 2px var(--t-accent);animation:led 1.6s ease-in-out infinite}
@keyframes led{50%{opacity:.35}}
.cv-hint{margin:0;font-family:var(--f-display);font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--t-accent);text-shadow:0 0 12px var(--t-accent)}
.cover.is-open{opacity:0;pointer-events:none}
.cover.is-open .knob{top:78px}

/* ---------- Letreiro ---------- */
.page{position:relative;z-index:1}
.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:calc(50px + env(safe-area-inset-top)) 14px 50px}
.pre{margin:0;font-family:var(--f-display);font-size:13px;letter-spacing:.5em;text-transform:uppercase;color:var(--t-cover-ink)}
.xv{margin:-6px 0 -18px;font-family:var(--f-display);font-weight:800;font-size:clamp(110px,36vw,170px);line-height:1;color:transparent;-webkit-text-stroke:2px var(--t-accent-2);
  filter:drop-shadow(0 0 calc(6px * var(--glow)) var(--t-accent-2)) drop-shadow(0 0 calc(22px * var(--glow)) var(--t-accent-2));opacity:.9}
.sign{position:relative;margin:0 0 18px;font-family:var(--f-script);font-weight:400;font-size:clamp(50px,15vw,78px);line-height:1.1;color:#fff;white-space:nowrap}
.sign .w{display:inline-block;white-space:nowrap}
.sign .w > span{display:inline-block;color:color-mix(in srgb,var(--t-line) 80%,var(--t-accent));
  text-shadow:0 0 2px #fff,0 0 calc(8px * var(--glow)) var(--t-accent),0 0 calc(22px * var(--glow)) var(--t-accent),0 0 calc(46px * var(--glow)) var(--t-accent);
  animation:buzz 7s linear calc(var(--i) * -.9s) infinite}
@keyframes buzz{0%,96%,100%{opacity:1}97%{opacity:.4}98%{opacity:1}98.6%{opacity:.6}}
.is-closed .xv{opacity:.08;text-shadow:none;filter:none}
/* Apagado: tubos de vidro sem luz (contorno discreto), não texto cinza */
.is-closed .sign .w > span{animation:none;opacity:1;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.3);text-shadow:none}
.is-closed .xv{opacity:1;-webkit-text-stroke-color:rgba(255,255,255,.13)}
.is-opening .sign .w > span{animation:ignite .9s steps(1) calc(.5s + var(--i) * .07s) both,buzz 7s linear 3s infinite}
.is-opening .xv{animation:igniteXv 1.2s steps(1) .3s both}
@keyframes ignite{0%{opacity:.25;text-shadow:none}20%{opacity:1}30%{opacity:.25;text-shadow:none}45%,100%{opacity:1}}
@keyframes igniteXv{0%{opacity:.08;filter:none}25%{opacity:.9}35%{opacity:.1;filter:none}50%,100%{opacity:.9}}
.led{margin:0 0 14px;padding:8px 16px;border-radius:10px;font-family:var(--f-display);font-size:20px;font-weight:600;letter-spacing:.2em;color:var(--t-accent);background:color-mix(in srgb,var(--t-cover) 78%,transparent);border:1.5px solid var(--t-accent);box-shadow:0 0 calc(14px * var(--glow)) color-mix(in srgb,var(--t-accent) 60%,transparent),inset 0 0 calc(12px * var(--glow)) color-mix(in srgb,var(--t-accent) 40%,transparent);text-shadow:0 0 10px var(--t-accent)}
.led i{font-style:normal;opacity:.75;margin:0 4px}
.eq{display:flex;align-items:flex-end;gap:4px;height:34px;margin:0 0 18px}
.eq i{width:6px;border-radius:3px;background:linear-gradient(0deg,var(--t-accent),var(--t-accent-2));box-shadow:0 0 8px var(--t-accent);animation:eq .9s ease-in-out infinite alternate}
.eq i:nth-child(2){animation-duration:.6s}.eq i:nth-child(3){animation-duration:1.1s}.eq i:nth-child(4){animation-duration:.7s}.eq i:nth-child(5){animation-duration:1s}.eq i:nth-child(6){animation-duration:.55s}.eq i:nth-child(7){animation-duration:.8s}
@keyframes eq{from{height:18%}to{height:100%}}
.chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.chips a{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border-radius:12px;color:var(--t-cover-ink);text-decoration:none;font-family:var(--f-display);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;background:rgba(255,255,255,.06);border:1px solid color-mix(in srgb,var(--t-accent-2) 60%,transparent);box-shadow:0 0 12px -2px color-mix(in srgb,var(--t-accent-2) 70%,transparent);backdrop-filter:blur(6px)}

/* ---------- Cartões com borda de neon ---------- */
.stack{padding:0 16px calc(40px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:20px}
.panel{--x-ink:var(--t-ink);--x-muted:var(--t-muted);--x-line:color-mix(in srgb,var(--t-ink) 16%,transparent);position:relative;isolation:isolate;padding:26px 20px;text-align:center;color:var(--t-ink);border-radius:var(--x-radius);scroll-margin-top:20px;
  background:color-mix(in srgb,var(--t-paper) 78%,transparent);-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%)}
.panel::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;padding:1.5px;
  background:conic-gradient(from var(--ang),var(--t-accent),var(--t-accent-2),var(--t-leaf),var(--t-accent));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
  animation:spinBorder 6s linear infinite;filter:drop-shadow(0 0 calc(6px * var(--glow)) var(--t-accent))}
@keyframes spinBorder{to{--ang:360deg}}
.p-kicker{margin:0 0 4px;font-family:var(--f-display);font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--t-accent)}
.p-title{margin:0 0 16px;font-family:var(--f-script);font-weight:400;font-size:clamp(40px,12vw,52px);line-height:1.05;color:#fff;text-shadow:0 0 calc(12px * var(--glow)) var(--t-accent-2)}
.msg{margin:0;font-size:16px;line-height:1.7;color:var(--t-muted)}
.sign-off{margin:10px 0 18px;font-family:var(--f-script);font-size:26px;color:var(--t-ink)}
.panel .countdown{margin-top:8px}
.panel .cd-u b{color:var(--t-accent);text-shadow:0 0 12px var(--t-accent)}
.loc-name{margin:0 0 4px;font-family:var(--f-display);font-size:18px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.loc-addr{margin:0;font-size:15px;line-height:1.6;color:var(--t-muted)}
.loc-when{margin:12px 0 18px;font-size:15px}
.inv-neon .pill{background:var(--t-accent);color:var(--t-on-accent);box-shadow:0 0 calc(18px * var(--glow)) color-mix(in srgb,var(--t-accent) 70%,transparent)}
.inv-neon .pill--line{background:transparent;color:var(--t-accent);box-shadow:inset 0 0 0 1.5px var(--t-accent),0 0 12px -4px var(--t-accent)}
.inv-neon .gifts .pill{background:rgba(255,255,255,.04);color:var(--t-ink);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--t-accent-2) 50%,transparent)}
.inv-neon .brand{margin:0;text-align:center;font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.6}

/* ---------- Confete ---------- */
.confetti{position:fixed;inset:0;z-index:35;pointer-events:none;overflow:hidden}
.confetti i{position:absolute;top:-20px;width:8px;height:14px;border-radius:2px;animation:confetti var(--d) cubic-bezier(.3,.6,.5,1) var(--dl) forwards}
@keyframes confetti{from{transform:translate(0,0) rotate(0)}to{transform:translate(var(--mx),110vh) rotate(var(--r));opacity:.9}}
.is-closed .hero > :not(.sign):not(.xv),.is-closed .stack{opacity:0}
.is-closed .inv-neon .cover,.inv-neon.is-closed .cover{background:rgba(0,0,0,.6)}
.is-opening .hero > :not(.sign):not(.xv){animation:neonIn .8s ease 1.4s both}
@keyframes neonIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.inv-neon .cover{justify-content:flex-end;padding-bottom:calc(8svh + env(safe-area-inset-bottom));gap:10px}
.inv-neon .switch{width:74px;height:124px}
.inv-neon .knob{height:46px}
.inv-neon .cover.is-open .knob{top:64px}
.sign{display:block;width:max-content;max-width:none;margin-left:auto;margin-right:auto}
.hero{transition:transform 1.1s cubic-bezier(.2,.7,.2,1) .2s}
.is-closed .hero{transform:translateY(calc(var(--lift,0px) * -1))}
.sign.is-wrap{width:auto;max-width:100%;white-space:normal;line-height:1.05;text-wrap:balance}
