/* Effetto bollicine: attivato soltanto dopo conferme reali via BeerTheme.celebrate() */
.celebration { position: fixed; inset: 0; z-index: 30; display: grid; place-items: center; padding: 20px; isolation: isolate; }
.celebration-backdrop { position: absolute; inset: 0; background: rgba(5, 24, 14, .82); backdrop-filter: blur(8px); }
.celebration-card { position: relative; z-index: 2; text-align: center; isolation: isolate; width: min(100%, 500px); overflow: hidden; border: 2px solid rgba(237,186,94,.65); border-radius: 32px; padding: 57px 24px 39px; background: radial-gradient(circle at 50% 110%, #E8A02D, transparent 57%), linear-gradient(135deg, #235139 0%, #0D2419 65%); color: #fff3cf; box-shadow: 0 40px 110px rgba(0,0,0,.35), inset 0 0 45px rgba(242,187,102,.1); animation: beer-pop-in .4s cubic-bezier(.21,.82,.34,1.1) both; }
.celebration-card::before { content: ''; position: absolute; z-index: -1; inset: 0; opacity: .35; background: radial-gradient(circle at 17% 60%,#FFEEAF 0 3px,transparent 4px),radial-gradient(circle at 86% 35%,#FFF2C8 0 4px,transparent 5px),radial-gradient(circle at 65% 80%,#FFE6A7 0 6px,transparent 7px); }
.celebration-foam { position: absolute; z-index: -1; bottom: -65px; left: 0; right: 0; height: 240px; background: url('../assets/foam-wave.svg') bottom/cover no-repeat; opacity: .58; }
.celebration-close { position: absolute; top: 15px; right: 15px; color: #f7db9a; background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.14); }
.celebration-cap { display: block; height: 122px; width: 122px; margin: 0 auto 12px; filter: drop-shadow(0 12px 13px rgba(0,0,0,.3)); animation: cap-arrive .55s .05s both; }
.celebration .eyebrow { color: #e9c27c; }
.celebration h2 { margin: 8px 0 10px; color: #fff5d8; font-size: clamp(36px,5vw,50px); }
.celebration p { max-width: 330px; margin: 0 auto 14px; font-size: 14px; color: #f8e6c0; }
.order-reference { font-size: 12px; letter-spacing: .15em; color: #fbd38b; font-weight: 800; margin-bottom: 24px; }
.celebration-action { background: #fff4dd; color: var(--beer-pine-900); min-width: 195px; }
.celebration-action:hover { background: white; }
.celebration-bubbles { position: absolute; z-index: 3; inset: 0; pointer-events: none; overflow: hidden; }
.beer-bubble { position: absolute; bottom: -50px; left: var(--x); width: var(--size); height: var(--size); border-radius: 50%; border: 1px solid rgba(255,229,159,.8); background: radial-gradient(circle at 25% 24%,rgba(255,255,240,.94) 0 5%,rgba(255,239,188,.2) 20%,rgba(255,203,103,.08) 55%,rgba(255,211,136,.4) 95%); box-shadow: inset -2px -3px 5px rgba(185,121,26,.12),0 0 12px rgba(248,204,113,.16); opacity: 0; animation: bubble-float var(--duration) var(--delay) cubic-bezier(.36,.2,.65,.82) forwards; }
@keyframes bubble-float { 0% { transform: translate3d(0, 0, 0) scale(.65); opacity: 0; } 12% { opacity: .9; } 65% { opacity: .75; } 100% { transform: translate3d(var(--sway), -110vh, 0) scale(1.2); opacity: 0; } }
@keyframes beer-pop-in { from { transform: translateY(22px) scale(.95); opacity: 0; } to { transform: translateY(0) scale(1); opacity: 1; } }
@keyframes cap-arrive { from { transform: translateY(-25px) rotate(-25deg) scale(.6); opacity: 0; } to { transform: translateY(0) rotate(0) scale(1); opacity: 1; } }
@media(prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } .beer-bubble { display: none; } }
