/* Consistent arcade cabinet: supplied brands and illustrated assets remain authoritative. */
:root{color-scheme:dark}body{background:#05050b}#app{padding:18px;gap:22px;background:radial-gradient(ellipse at 50% 8%,#2a153d 0,transparent 55%),linear-gradient(135deg,#12080e,#080812 55%,#17071a)}
.cabinet{height:calc(100dvh - 36px);width:auto;max-width:100%;max-height:none;border:2px solid #736075;border-radius:22px;box-shadow:0 0 0 5px #110e17,0 0 0 6px #ffffff16,0 24px 80px #000,0 0 90px #d5277020}
canvas{image-rendering:auto}.rail{border-radius:18px;box-shadow:0 20px 60px #0009}.railHead{background:#08080fe8}.overlay{padding:20px 20px 30px;overflow-y:auto;align-items:safe center;background:linear-gradient(180deg,#0d081ae8,#07060ef8 55%,#0d081cf5)}
.menuPanel{max-width:440px}.menuPanel h1{font-size:52px;letter-spacing:-.06em;color:#fff;text-shadow:3px 3px #b52163,0 0 32px #f7c95c35}.badge{border-radius:6px;letter-spacing:.17em;background:#f7c95c12;border-color:#f7c95c40;color:#f7c95c;font-size:9px}.sub{font-size:10px;letter-spacing:.18em}.musicBadge,.deluxeTag,.audioHint,.campaignFoot{font-size:8px}.musicBadge{display:none}.deluxeTag{margin:8px 0;color:#f7c95c99}
.storyStrip{gap:4px;margin:9px 0}.storyStrip div{font-size:9px;padding:5px}.nickname{padding:9px 12px;font-size:13px;border-radius:8px;background:#171020}.emailConsent{font-size:9px;margin-top:6px}.campaignStatus{margin:9px 0}.campaignClock,.campaignNotice,.lastWinner{padding:7px}.campaignNotice{display:none}.campaignClock strong{font-size:14px}.campaignClock small,.lastWinner small{font-size:8px}.lastWinner strong{font-size:13px}.weeklyPrizes{margin-top:7px}.weeklyPrizes div{padding:7px 3px}.weeklyPrizes span{font-size:9px}.weeklyPrizes strong{font-size:8px}
.selectGrid{gap:9px;margin-top:9px}.selectCard{min-height:155px;padding:8px;border-radius:12px;background:linear-gradient(140deg,#251422,#0c0913 65%);border:1px solid #5a3d5c}.selectCard.selected{border:1px solid #f7c95c;box-shadow:0 0 0 2px #f7c95c18,0 5px 26px #f7c95c10}.selectCard img{height:31px}.selectAvatar{height:77px}.charThumb{width:77px;height:77px;border:0;background-color:transparent;border-radius:8px;box-shadow:none}.selectCard b{font-size:16px}.selectCard span{font-size:9px}
.startBtn{padding:12px;margin-top:10px;border-radius:9px;letter-spacing:.06em;font-size:15px;background:linear-gradient(120deg,#ffdd8d,#f7bc4d 60%,#df752d);box-shadow:0 8px 30px #f7c95c18}.note{font-size:8px}.controlHelp{color:#f7c95c;opacity:1}.hudBox{background:#09080fe8;border-radius:8px}.lbl{font-size:8px;color:#d9b9d2}.val{font-size:18px}.stage{font-size:9px;border-radius:7px;background:#09080fe8}.quick{top:58px}.musicStatus{font-size:8px}.message{font-size:22px;background:#08060bdd;border-radius:12px;padding:12px;border:1px solid #ffffff20}
.controls{bottom:12px;gap:5px}.ctrlGroup{gap:4px}.ctrl{width:44px;height:48px;border-radius:10px;font-size:14px;background:linear-gradient(#252035e8,#110d1de8);box-shadow:0 3px 0 #0008,inset 0 1px #ffffff12}.ctrl.jump{width:57px;font-size:10px}.ctrl.attack{width:49px;background:linear-gradient(#bd2879,#78184d);font-size:10px}.ctrl.pressed,.ctrl:active{transform:translateY(2px);filter:brightness(1.4)}.claim{font-size:14px;overflow-wrap:anywhere}.resultScore{font-size:46px}.ranking{max-height:160px;overflow:auto}
@media(max-width:960px){#app{display:flex;flex-direction:column;gap:7px;padding:7px}.center{flex:1;min-height:0}.cabinet{height:100%;max-height:100%;max-width:100%;aspect-ratio:9/16;width:auto}.rail{flex:0 0 55px;min-height:55px;width:100%;border-radius:9px}.posterCaption{padding:4px 8px;bottom:4px;background:#08050dc9;left:auto;min-width:145px}.posterCaption b{font-size:11px}.posterCaption small,.posterCaption em{display:none}.poster img{object-fit:cover;object-position:center 35%}.railHead{display:flex;right:auto;left:8px;top:4px;width:110px;height:45px;background:#08050ddb}.railHead img{max-height:30px}.overlay{padding:14px}.menuPanel{max-width:350px}.menuPanel h1{font-size:37px}.selectCard{min-height:125px}.selectAvatar{height:56px}.charThumb{width:57px;height:57px;transform:none}.selectCard img{height:25px}.selectCard b{font-size:13px}.storyStrip,.deluxeTag{display:none}.campaignStatus{margin:6px 0}.campaignClock strong{font-size:12px}.nickname{font-size:12px;padding:7px 10px}.startBtn{padding:10px}.ctrl{width:36px;height:44px}.ctrl.jump{width:45px}.ctrl.attack{width:39px}.controls{left:10px;right:10px}.hud{left:12px;right:12px;gap:5px}.hudBox{padding:5px 6px}.val{font-size:14px}.stage{padding:7px 6px;font-size:7px}.quick{top:48px}.qbtn{width:28px;height:28px}.musicStatus{display:none}}
@media(max-height:700px){.menuPanel h1{font-size:30px}.badge{font-size:8px}.selectCard{min-height:110px}.selectAvatar{height:45px}.charThumb{height:45px}.weeklyPrizes{display:none}.note{font-size:8px}.campaignClock small{display:none}.overlay{align-items:flex-start}.menuPanel{margin:auto}.sub{margin:7px 0}.emailConsent{font-size:8px}}
@media(prefers-reduced-motion:reduce){.poster{transition:none}.cabinet{animation:none!important}}
/* Night club title screen: shared hero artwork and a clean club choice. */
#menu.welcome{padding:22px;background:radial-gradient(ellipse at 15% 20%,#0b74892c,transparent 48%),radial-gradient(ellipse at 90% 65%,#d9269630,transparent 50%),linear-gradient(170deg,#0b1020,#080411 65%);align-items:safe center}
#menu .welcomePanel{position:relative;width:100%;max-width:420px;border:0;background:none;box-shadow:none;padding:0;margin:auto;text-align:center}
.welcomeEyebrow{display:flex;align-items:center;justify-content:center;gap:12px;font-size:9px;font-weight:800;letter-spacing:.25em;color:#b3c9df}.welcomeEyebrow span{font-size:8px;letter-spacing:0;border:1px solid #ffffff35;padding:2px 5px;border-radius:4px}
#menu .welcomeTitle{display:flex;justify-content:center;gap:10px;margin:16px 0 4px;font:900 italic clamp(43px,8.5vh,72px)/.95 Impact,'Arial Black',system-ui;letter-spacing:-.025em;text-align:center;text-shadow:none;transform:skew(-3deg)}
#menu .welcomeTitle span{position:static;line-height:1;font-size:inherit;letter-spacing:inherit}.titleClub{color:#f1feff;text-shadow:0 0 3px #fff,0 0 16px #23cbea80,3px 4px 0 #083347}.titleClimb{color:#ffa5e6;text-shadow:0 0 3px #ff6acc,0 0 24px #ff37bf88,3px 4px 0 #4f093f}
.nightHero{position:relative;width:100%;aspect-ratio:3/2;margin:14px 0 4px;border:1px solid #b64ba96b;border-radius:16px;overflow:hidden;background:#100820;box-shadow:0 0 28px #b9299826,0 12px 28px #0006}.nightHero>img{display:block;width:100%;height:auto;object-fit:contain}
.welcomePrompt{margin:13px 0 9px;font-size:9px;font-weight:700;letter-spacing:.2em;color:#93b3ca}.welcomeCharacters{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}
#menu .selectCard{position:relative;height:74px;min-height:0;border:1px solid #49516388;border-radius:12px;padding:8px 13px;background:linear-gradient(140deg,#19223499,#0f0b1cbb);box-shadow:none;display:flex;align-items:center;gap:12px;overflow:visible;transition:border-color .2s,box-shadow .2s}
#menu .selectCard .clubLogo{height:47px;width:65px;margin:0;object-fit:contain;filter:drop-shadow(0 2px 2px #0008)}#menu .selectCard[data-char="welly"] .clubLogo{height:54px;width:58px}.fighterName{font-size:12px!important;font-weight:900;color:#e5f8ff;letter-spacing:.08em}.selectionDot{position:absolute;right:8px;top:8px;width:5px;height:5px;border-radius:50%;background:#506074}
#menu .selectCard.selected{border-color:#52d9ed;box-shadow:inset 0 0 22px #4fe2f10a,0 0 15px #25b6d213}#menu .selectCard[data-char="welly"].selected{border-color:#fa63c1;box-shadow:inset 0 0 22px #fb5ec30a,0 0 15px #fa42b71a}.selectCard.selected .selectionDot{background:#90f4ff;box-shadow:0 0 7px #90f4ff}#menu .selectCard.selected:after{content:none}.prizeTeaser{margin:13px 0 15px;color:#a9b2c6;font-size:11px;line-height:1.6}.prizeTeaser strong{color:#f6d9f4;font-weight:600}
.startBtn{position:relative;border:1px solid #f686de;border-radius:9px;background:linear-gradient(120deg,#6b38b1,#b72391 60%,#e841b2);color:#fff5fc;box-shadow:0 0 0 3px #fc6ece0b,0 0 24px #d637a938,inset 0 1px #ffd4ef6b;letter-spacing:.15em;font-size:13px;font-weight:900;transition:filter .2s,transform .2s}.startBtn:hover{filter:brightness(1.15)}.startBtn:active{transform:translateY(1px)}
#menu .welcomeCTA{width:100%;display:flex;align-items:center;justify-content:space-between;padding:15px 20px;margin:0;color:#fff;background:linear-gradient(110deg,#443dcc,#ae259a 65%,#e442ae);border-radius:9px;box-shadow:0 0 0 3px #d73fad0e,0 0 28px #a337a137,inset 0 1px #ffffff49}.welcomeCTA span{font-size:14px}.weeklyDetails{margin-top:13px;font-size:9px;color:#899ab5}.weeklyDetails summary{cursor:pointer;list-style:none}.weeklyDetails summary:after{content:' ＋';color:#c795dc}.weeklyDetails[open] summary:after{content:' −'}.welcomeWeekly{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px;text-align:left;border-top:1px solid #ffffff12;padding-top:12px}.welcomeWeekly span,.welcomeWeekly small{display:block;font-size:8px;color:#899ab5;line-height:1.5}.welcomeWeekly strong{display:block;margin:5px 0;color:#ead5f4;font-size:12px}
.playerStep{text-align:left}.backBtn{background:none;border:0;padding:0;margin:0 0 25px;color:#a2cbe2;font-size:11px;cursor:pointer}.playerStep .welcomeEyebrow{justify-content:flex-start}.playerStep h2{font-size:36px;line-height:1.08;letter-spacing:-.03em;color:#f1e9fc;margin:16px 0 26px}.fieldLabel{display:block;font-size:9px;color:#9baccc;letter-spacing:.13em;margin:16px 0 7px}.playerStep .nickname{padding:12px;font-size:12px;border:1px solid #666081;border-radius:8px;background:#111328;color:#fff}.playerStep .nickname:focus{border-color:#f96dca;outline:1px solid #f96dca33}.playerStep .emailConsent{font-size:10px;color:#b8b6cf;line-height:1.6;margin:13px 0}.playerStep .welcomeCTA{margin-top:24px!important}.welcomeControls{font-size:10px;text-align:center;line-height:1.7;color:#849cb7;margin:18px 0 10px}.playerStep #readyNote{font-size:10px;text-align:center;color:#a0aec8;min-height:26px}
@media(max-height:650px){#menu.welcome{padding:16px}#menu .welcomeTitle{font-size:42px;margin-top:12px}.nightHero{margin-top:10px}#menu .selectCard{height:63px;padding:6px 11px}.welcomePrompt{margin:10px 0 7px}.prizeTeaser{margin:9px 0 11px;font-size:10px}#menu .welcomeCTA{padding:13px 16px}.weeklyDetails{margin-top:10px}.playerStep h2{font-size:29px;margin-bottom:20px}.playerStep .emailConsent{margin:10px 0;font-size:9px}}
@media(prefers-reduced-motion:reduce){.startBtn,.selectCard{transition:none}}
/* One-finger play: movement guides pass all touches to the canvas. */
#game{touch-action:none}.touchHint{display:none;pointer-events:none}
@media(max-width:960px),(pointer:coarse){
 .controls{left:12px;right:12px;bottom:max(8px,env(safe-area-inset-bottom));pointer-events:none}
 .controls .directionButtons{display:grid;grid-template-columns:42px 42px 42px;grid-template-rows:42px 42px 42px;gap:2px;opacity:.65;pointer-events:none}
 .directionButtons .ctrl{width:42px;height:42px;pointer-events:none;border:1px solid #ffffff35;background:#080b1525;box-shadow:none;border-radius:12px;color:#ffffffa0}
 .directionButtons .ctrl:nth-child(1){grid-column:1;grid-row:2}.directionButtons .ctrl:nth-child(2){grid-column:3;grid-row:2}.directionButtons .ctrl:nth-child(3){grid-column:2;grid-row:1}.directionButtons .ctrl:nth-child(4){grid-column:2;grid-row:3}
 .directionButtons .ctrl.pressed{color:#aaffd7;background:#4affaf30;border-color:#4affaf80;transform:none}
 .touchHint{display:block;position:absolute;right:0;bottom:18px;max-width:53%;font-size:10px;line-height:1.6;color:#e1fff1;text-shadow:0 2px 4px #000}.touchHint small{font-size:9px}
 .welcomeControls{font-size:0}.welcomeControls:after{content:'DRAG in any direction · DIAGONAL to walk + climb · LADDERS are safe';font-size:11px;line-height:1.8}
}

/* Full-screen event breaks replace rails while a run is in progress. */
#app.gameFocus{grid-template-columns:minmax(0,1fr)}#app.gameFocus .rail{display:none}
.eventBanner{position:fixed;inset:0;z-index:1000;background:radial-gradient(ellipse at top,#341237,#07040dfc 70%);padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));align-items:center;justify-content:center;overflow:auto}
.eventPanel{width:min(100%,850px);height:100%;max-height:1000px;display:flex;flex-direction:column;gap:10px;min-height:0;text-align:center}
.eventHeading{flex-shrink:0}.eventHeading span{font-size:10px;color:#f7c95c;letter-spacing:.24em}.eventHeading h2{font-size:clamp(16px,3vw,26px);margin:5px 0}
.eventImage{display:block;min-height:0;flex:1;width:100%;object-fit:contain;border-radius:12px;background:#09060d}
.eventActions{display:flex;gap:12px;flex-shrink:0}.eventActions>*{flex:1;padding:16px 10px;border:1px solid #ffffff60;border-radius:13px;color:#fff;font-weight:800;font-size:14px;text-decoration:none;background:#21192e;cursor:pointer}.eventActions a{background:linear-gradient(120deg,#952bec,#e6208f);box-shadow:0 0 22px #e6208f33}.eventActions>*:focus-visible{outline:3px solid #80ffe0;outline-offset:3px}
#eventNote{font-size:11px;color:#d8c9df;margin:0;flex-shrink:0}
@media(max-height:420px){.eventPanel{gap:4px}.eventHeading h2{font-size:14px;margin:0}.eventHeading span,#eventNote{display:none}.eventActions>*{padding:10px}}

/* Central nightclub play button. */
#menu :is(#continueBtn,#playBtn){width:min(86%,310px);min-height:66px;margin:19px auto 18px;padding:14px 26px;display:flex;justify-content:center;align-items:center;gap:14px;border:2px solid transparent;border-radius:999px;background:linear-gradient(115deg,#28154e,#681c80 55%,#b02791) padding-box,linear-gradient(115deg,#77edff,#b78aff 45%,#ff78d8) border-box;box-shadow:0 5px 0 #1b0b30,0 10px 28px #0008,0 0 24px #c640bf55,inset 0 1px 12px #ffc6fb25;isolation:isolate;overflow:hidden;transition:transform .18s,box-shadow .18s,filter .18s}
#menu :is(#continueBtn,#playBtn):before{content:'';position:absolute;inset:2px 10px 50%;border-radius:999px 999px 60% 60%;background:linear-gradient(#ffffff20,#ffffff02);pointer-events:none;z-index:-1}
#menu :is(#continueBtn,#playBtn) .playIcon{display:grid;place-items:center;flex:0 0 31px;width:31px;height:31px;padding-left:2px;border-radius:50%;border:1px solid #d1fbff85;background:#96eaff15;color:#c5ffff;font-size:13px;text-shadow:0 0 9px #5defff;box-shadow:0 0 13px #72ddff22}
#menu :is(#continueBtn,#playBtn) .playLabel{font-size:17px;font-weight:950;letter-spacing:.16em;color:#fff;text-shadow:0 0 12px #ffa0ef80}
#menu :is(#continueBtn,#playBtn):hover{transform:translateY(-2px);filter:brightness(1.13);box-shadow:0 7px 0 #1b0b30,0 12px 28px #0008,0 0 32px #d748c77a,inset 0 1px 12px #ffc6fb25}
#menu :is(#continueBtn,#playBtn):active{transform:translateY(3px);box-shadow:0 2px 0 #1b0b30,0 0 20px #d748c75a}
#menu :is(#continueBtn,#playBtn):focus-visible{outline:3px solid #b0f8ff;outline-offset:5px}
@media(max-height:650px){#menu :is(#continueBtn,#playBtn){min-height:58px;margin:14px auto;padding:10px 20px}}
@media(prefers-reduced-motion:reduce){#menu :is(#continueBtn,#playBtn){transition:none}}

/* Compact, expandable sprite showcase; follows the selected Andi/Welly card. */
.characterShowcase{width:100%;margin:8px 0 2px;border:1px solid #7d428866;border-radius:12px;background:linear-gradient(120deg,#110d20dd,#201127dd);overflow:hidden;text-align:left}
.characterShowcase>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:34px;padding:7px 10px;color:#e7d8f3;font-size:8px;font-weight:900;letter-spacing:.12em;cursor:pointer;list-style:none}
.characterShowcase>summary::-webkit-details-marker{display:none}.characterShowcase>summary:after{content:'＋';margin-left:auto;color:#fa86d4;font-size:12px}
.characterShowcase[open]>summary:after{content:'−'}.characterShowcase .showcaseCount{color:#a9bad1;font-size:7px;letter-spacing:.08em;white-space:nowrap}
.poseGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:8px;border-top:1px solid #ffffff12}
#menu[data-club="andi"] .posesWelly,#menu[data-club="welly"] .posesAndi{display:none}
.poseCard{min-width:0;min-height:105px;margin:0;padding:4px 4px 5px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #ffffff12;border-radius:9px;background:radial-gradient(ellipse at 50% 80%,#5a1d632b,transparent 70%),linear-gradient(145deg,#111326,#0a0915)}
.poseCard img{display:block;width:100%;height:83px;object-fit:contain;filter:drop-shadow(0 2px 7px #f229bf22)}
.poseCard figcaption{padding-top:3px;color:#c8bad9;font-size:7px;font-weight:900;letter-spacing:.12em}
#menu[data-club="andi"] .poseCard{border-color:#c8374238}#menu[data-club="welly"] .poseCard{border-color:#dd3ca838}
@media(max-width:380px){.poseGrid{gap:4px;padding:6px}.poseCard{min-height:92px}.poseCard img{height:71px}.characterShowcase>summary{font-size:7px}}
@media(prefers-reduced-motion:reduce){.poseCard img{filter:none}}

#stage{font-size:clamp(10px,1.6vw,13px);font-weight:900;letter-spacing:.1em;color:#ecfaff;border:1px solid #76dfff55;background:linear-gradient(110deg,#112337e8,#27132fe8);text-shadow:0 0 10px #67d9ff55}

/* Club links live only in the opening screen; no advertising rails. */
#app{grid-template-columns:minmax(0,1fr)}
.clubSiteLinks{display:flex;justify-content:center;gap:10px;margin:0 auto 20px;width:100%;max-width:360px}
.clubSiteLinks a{flex:1;min-height:44px;display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 14px;border-radius:12px;border:1px solid #efb75565;background:linear-gradient(135deg,#392115,#120d18);color:#ffdc99;text-decoration:none;font-size:11px;font-weight:900;letter-spacing:.12em;box-shadow:inset 0 1px 0 #ffffff12,0 0 16px #e4992020;transition:filter .18s,transform .18s}
.clubSiteLinks a.clubSiteWellcum{border-color:#f35cbe70;background:linear-gradient(135deg,#391531,#120d18);color:#ffa4e1;box-shadow:inset 0 1px 0 #ffffff12,0 0 16px #f35cbe20}
.clubSiteLinks a:hover{filter:brightness(1.25);transform:translateY(-1px)}.clubSiteLinks a:focus-visible{outline:2px solid #a0f4ff;outline-offset:3px}.clubSiteLinks a span{font-size:14px}
@media(max-height:650px){.clubSiteLinks{margin-bottom:14px}}
@media(prefers-reduced-motion:reduce){.clubSiteLinks a{transition:none}}

/* Opening party scene: gentle dance beat, moving disco beams, glints and a champagne toast. */
.partyScene{isolation:isolate;perspective:900px;box-shadow:0 0 28px #b9299840,0 12px 28px #0008}
.partyArtwork{position:relative;z-index:0;transform-origin:50% 73%;animation:partyDance 2.8s ease-in-out infinite;will-change:transform;backface-visibility:hidden}
.partyLights{position:absolute;z-index:1;inset:-22%;pointer-events:none;opacity:.7;background:linear-gradient(112deg,transparent 37%,#15d9ff00 42%,#33dfff49 47%,#15d9ff00 52%,transparent 58%),linear-gradient(68deg,transparent 39%,#ff29c000 45%,#ff36d264 50%,#ff29c000 55%,transparent 62%);mix-blend-mode:screen;animation:discoSweep 4.6s ease-in-out infinite alternate}
.partyScene:after{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,transparent 42%,#fc41d31a 100%);animation:clubPulse 1.8s ease-in-out infinite alternate}
.partyGlints{position:absolute;z-index:3;inset:0;overflow:hidden;pointer-events:none}
.partyGlints i{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);border-radius:50%;background:#fff9db;box-shadow:0 0 5px 2px #fff,0 0 12px 4px var(--glow);opacity:0;animation:glint 2.4s ease-in-out var(--delay) infinite}
.partyGlints i:nth-child(1){--x:9%;--y:28%;--s:3px;--glow:#40eaff;--delay:.1s}.partyGlints i:nth-child(2){--x:22%;--y:13%;--s:2px;--glow:#ff39d1;--delay:1s}.partyGlints i:nth-child(3){--x:35%;--y:38%;--s:3px;--glow:#ffd766;--delay:.55s}.partyGlints i:nth-child(4){--x:48%;--y:17%;--s:2px;--glow:#42eaff;--delay:1.6s}.partyGlints i:nth-child(5){--x:63%;--y:31%;--s:3px;--glow:#ff35c9;--delay:.8s}.partyGlints i:nth-child(6){--x:79%;--y:16%;--s:2px;--glow:#ffd766;--delay:1.35s}.partyGlints i:nth-child(7){--x:92%;--y:37%;--s:3px;--glow:#48eaff;--delay:.25s}.partyGlints i:nth-child(8){--x:15%;--y:69%;--s:2px;--glow:#ff40c8;--delay:1.8s}.partyGlints i:nth-child(9){--x:29%;--y:83%;--s:3px;--glow:#ffe078;--delay:1.1s}.partyGlints i:nth-child(10){--x:52%;--y:72%;--s:2px;--glow:#41eaff;--delay:.4s}.partyGlints i:nth-child(11){--x:72%;--y:81%;--s:3px;--glow:#ff40ca;--delay:1.45s}.partyGlints i:nth-child(12){--x:87%;--y:65%;--s:2px;--glow:#ffdb68;--delay:.7s}
.champagneToast{position:absolute;z-index:4;left:50%;bottom:3%;width:74px;height:62px;transform:translateX(-50%);pointer-events:none;filter:drop-shadow(0 0 7px #ffc85380);animation:toastCelebrate 3.6s ease-in-out infinite}
.toastFlute{position:absolute;bottom:5px;width:17px;height:25px;border:1px solid #ffe9ae;border-top:0;border-radius:3px 3px 8px 8px;background:linear-gradient(0deg,#e09a18c9 0 38%,#ffe58980 39% 48%,#ffffff12 49%);transform-origin:50% 90%}
.toastFlute:before{content:"";position:absolute;left:-2px;top:0;width:19px;height:4px;border:1px solid #fff2ca;border-radius:50%}.toastFlute:after{content:"";position:absolute;left:7px;bottom:-8px;width:1px;height:8px;background:#ffe9ae;box-shadow:-4px 8px 0 1px #ffe9ae}.toastFlute i{position:absolute;left:4px;top:8px;width:3px;height:3px;border-radius:50%;background:#fff6c3;box-shadow:6px 6px #fff6c3,2px 12px #fff6c3;animation:bubbleFizz 1.4s linear infinite}
.fluteLeft{left:15px;transform:rotate(-16deg);animation:clinkLeft 3.6s ease-in-out infinite}.fluteRight{right:15px;transform:rotate(16deg);animation:clinkRight 3.6s ease-in-out infinite}
.champagneToast>b{position:absolute;left:50%;top:1px;transform:translateX(-50%);font:900 7px/1 system-ui,sans-serif;letter-spacing:.14em;color:#fff3ac;text-shadow:0 0 8px #ffb82e;animation:cheersGlow 1.8s ease-in-out infinite alternate}
.toastBubble{position:absolute;bottom:20px;left:var(--bx);width:3px;height:3px;border-radius:50%;background:#fff4ae;box-shadow:0 0 5px #ffdb70;opacity:0;animation:toastBubbles 1.8s linear var(--bd) infinite}.toastBubble:nth-of-type(3){--bx:10px;--bd:0s}.toastBubble:nth-of-type(4){--bx:23px;--bd:.35s}.toastBubble:nth-of-type(5){--bx:35px;--bd:.7s}.toastBubble:nth-of-type(6){--bx:48px;--bd:1.05s}.toastBubble:nth-of-type(7){--bx:17px;--bd:1.4s}.toastBubble:nth-of-type(8){--bx:43px;--bd:.2s}.toastBubble:nth-of-type(9){--bx:28px;--bd:.9s}.toastBubble:nth-of-type(10){--bx:55px;--bd:1.25s}
@keyframes partyDance{0%,100%{transform:translateY(0) rotateX(0) scale(1)}25%{transform:translateY(-2px) rotateX(.35deg) scale(1.004)}50%{transform:translateY(0) rotateX(0) scale(1)}75%{transform:translateY(1px) rotateX(-.25deg) scale(1.002)}}
@keyframes discoSweep{0%{transform:translateX(-5%) rotate(-2deg);filter:hue-rotate(0deg);opacity:.4}100%{transform:translateX(5%) rotate(2deg);filter:hue-rotate(35deg);opacity:.9}}
@keyframes clubPulse{from{opacity:.25}to{opacity:.9}}
@keyframes glint{0%,100%{opacity:0;transform:scale(.35)}35%,58%{opacity:.95;transform:scale(1.35)}72%{opacity:.15;transform:scale(.6)}}
@keyframes toastCelebrate{0%,72%,100%{transform:translateX(-50%) translateY(0)}78%{transform:translateX(-50%) translateY(-5px)}84%{transform:translateX(-50%) translateY(1px)}}
@keyframes clinkLeft{0%,70%,100%{transform:rotate(-16deg)}78%,88%{transform:rotate(2deg)}}@keyframes clinkRight{0%,70%,100%{transform:rotate(16deg)}78%,88%{transform:rotate(-2deg)}}
@keyframes cheersGlow{from{opacity:.58}to{opacity:1;text-shadow:0 0 11px #fff3a0,0 0 18px #ffb82e}}
@keyframes bubbleFizz{0%,100%{opacity:.35;transform:translateY(4px)}50%{opacity:1;transform:translateY(-4px)}}@keyframes toastBubbles{0%{opacity:0;transform:translateY(0) scale(.6)}15%{opacity:.9}100%{opacity:0;transform:translateY(-40px) scale(1.3)}}
@media(prefers-reduced-motion:reduce){.partyArtwork,.partyLights,.partyScene:after,.partyGlints i,.champagneToast,.fluteLeft,.fluteRight,.toastFlute i,.champagneToast>b,.toastBubble{animation:none!important}.partyLights,.partyScene:after,.partyGlints{opacity:.3}.champagneToast{opacity:.85}}
