/* Water is procedural CSS. Artwork stays opaque; only its exterior has alpha. */
.beach-intro{background:radial-gradient(ellipse 80% 38% at 50% 12%,#086b7440,transparent 78%),linear-gradient(#042831,#031e27 80%)}
.beach-intro:before{background:none}
.ocean-surface{position:absolute;inset:0 0 auto;height:1450px;max-height:100%;overflow:hidden;pointer-events:none;z-index:-1;isolation:isolate;mask-image:linear-gradient(#000 0 68%,transparent)}
.ocean-surface:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 40% 18% at 50% 7%,#47d5d335,transparent 85%),radial-gradient(ellipse 60% 23% at 50% 34%,#00899525,transparent 80%)}
.ocean-caustics{position:absolute;inset:-110px -15% 0;perspective:600px;opacity:.42;mask-image:radial-gradient(ellipse 70% 60% at 50% 30%,#000 20%,transparent 90%)}
.ocean-caustics i{position:absolute;inset:0;transform-origin:50% 30%;filter:blur(.7px);mix-blend-mode:screen;background-image:repeating-radial-gradient(ellipse at 40% 48%,transparent 0 30px,#74e5e054 31px 32px,transparent 35px 65px),repeating-radial-gradient(ellipse at 65% 60%,transparent 0 48px,#a2eade35 50px 51px,transparent 55px 84px);background-size:230px 170px,340px 250px;background-position:0 0,65px 40px;transform:rotateX(32deg) rotateZ(-8deg) scale(1.15);animation:caustic-drift 22s ease-in-out infinite alternate}
.ocean-caustics i:nth-child(2){inset:80px -10% 0;background-size:315px 215px,210px 310px;opacity:.65;filter:blur(1.2px);animation-name:caustic-counter;animation-duration:29s;animation-delay:-12s}
.ocean-caustics i:nth-child(3){inset:0 -5% 20%;background-size:430px 260px,290px 210px;opacity:.35;filter:blur(2px);animation-duration:34s;animation-delay:-17s}
.ocean-shimmer{position:absolute;inset:40px -10% auto;height:700px;opacity:.3;transform:perspective(550px) rotateX(62deg);background:repeating-linear-gradient(174deg,transparent 0 36px,#a8f2e540 37px,transparent 39px 65px);mask-image:radial-gradient(ellipse 35% 75% at center,#000,transparent);animation:surface-breathe 14s ease-in-out infinite alternate}
.ocean-brand{position:relative;isolation:isolate;width:min(100%,355px);margin:15px auto 22px;padding:18px 17px 26px}
.ocean-brand .beach-logo{position:relative;width:100%;margin:0;border:0;border-radius:0;box-shadow:none;object-fit:contain;filter:drop-shadow(0 15px 13px #001a2860);animation:brand-buoy 7s ease-in-out infinite}
.brand-ripple{position:absolute;z-index:-1;left:3%;right:3%;bottom:2%;height:32%;border-radius:50%;background:radial-gradient(ellipse,#66ddd43b,transparent 68%);filter:blur(2px)}
.brand-ripple:before,.brand-ripple:after{content:"";position:absolute;inset:0;border:1px solid #8bebda65;border-radius:50%;box-shadow:0 0 10px #77e9db15;animation:brand-wake 6s ease-out infinite}
.brand-ripple:after{animation-delay:-3s}
.beach-content{padding-top:27px;padding-bottom:12px}.beach-copy{text-align:center}.beach-copy h1 em{color:#d2ecad}
.effects-control{display:flex;justify-content:center;margin:12px auto 0}
#effects-toggle{font:inherit;font-size:11px;color:#acd0d1;border:0;border-radius:20px;background:transparent;padding:7px 12px;min-height:30px;cursor:pointer}
#effects-toggle:before{content:"Ⅱ";display:inline-block;width:16px;margin-right:3px}#effects-toggle[aria-pressed="false"]:before{content:"▷"}#effects-toggle:hover{color:#f0fae8;background:#b4e2db0b}#effects-toggle:focus-visible{outline:2px solid #c9e9af;outline-offset:2px}
.podium-art{position:relative;isolation:isolate;width:min(100%,365px);margin-inline:auto;overflow:visible}
.podium-celebrate{position:relative;z-index:1;display:block;width:100%;border:0;padding:10px 4px;background:none;border-radius:50%;cursor:pointer;transform:translate3d(var(--podium-x,0px),var(--podium-y,0px),0);transition:transform .3s ease-out;-webkit-tap-highlight-color:transparent}
.podium-art .podium-celebrate img{display:block;width:100%;height:auto;margin:auto;object-fit:contain;border:0;border-radius:0;mask-image:none;opacity:1;mix-blend-mode:normal;filter:drop-shadow(0 12px 15px #001a2740)}
.podium-celebrate:focus-visible{outline:2px solid #cfe8a5;outline-offset:3px}.podium-celebrate:hover{filter:brightness(1.04)}
.podium-glow{position:absolute;z-index:-1;inset:12% -5% -6%;border-radius:50%;background:radial-gradient(ellipse at 50% 64%,#50cdb827,transparent 69%);pointer-events:none;transition:opacity .3s,transform .4s}
.podium-art.is-celebrating .podium-glow{transform:scale(1.15);opacity:.85}
.confetti{position:absolute;inset:-9% -7% -7%;overflow:hidden;pointer-events:none;mask-image:linear-gradient(#000 0 75%,transparent);contain:paint}
.confetti-back{z-index:0}.confetti-front{z-index:2}.confetti i{position:absolute;top:-12%;left:var(--x);display:block;width:var(--size);height:calc(var(--size) * 1.7);background:var(--color);border-radius:1px;opacity:0}
.is-celebrating .confetti i{animation:confetti-fall var(--time) cubic-bezier(.18,.48,.46,.95) var(--delay) both}
.confetti-back i{filter:blur(.3px)}.confetti i:nth-child(4n){border-radius:50%;height:var(--size)}
.reward-explanation,.reward-explanation .prize-note{text-align:center}.reward-detail{text-align:center}.reward-explanation .text-link{max-width:100%}
.hero-sticker,.hero-sticker a,.hero-sticker img{overflow:visible}.hero-sticker a{display:block}.hero-sticker img{object-fit:contain;clip-path:none;mask-image:none;padding:0;filter:drop-shadow(0 10px 16px #00151d33)}
dialog img{object-fit:contain;clip-path:none;mask-image:none;border:0}
.site-header,.sponsors-top{background-color:#052b3240}.how,.community,footer{position:relative;text-align:center}.section-heading{justify-content:center}.section-heading .eyebrow{margin-inline:auto}.footer-top{justify-content:center;gap:22px}footer nav{justify-content:center}
@keyframes caustic-drift{from{transform:rotateX(32deg) rotateZ(-8deg) translate3d(-2%,-1%,0) scale(1.15)}to{transform:rotateX(39deg) rotateZ(-3deg) translate3d(3%,2%,0) scale(1.23)}}
@keyframes caustic-counter{from{transform:rotateX(35deg) rotateZ(12deg) translate3d(2%,0,0) scale(1.2)}to{transform:rotateX(30deg) rotateZ(5deg) translate3d(-3%,3%,0) scale(1.12)}}
@keyframes surface-breathe{from{opacity:.13;transform:perspective(550px) rotateX(62deg) translateY(-12px)}to{opacity:.3;transform:perspective(550px) rotateX(64deg) translateY(12px)}}
@keyframes brand-buoy{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes brand-wake{0%{opacity:0;transform:scale(.65)}20%{opacity:.6}100%{opacity:0;transform:scale(1.55)}}
@keyframes confetti-fall{0%{opacity:0;transform:translate3d(0,-15px,0) rotate(0) rotateY(0)}10%{opacity:.9}80%{opacity:.8}100%{opacity:0;transform:translate3d(var(--drift),340px,0) rotate(var(--turn)) rotateY(540deg)}}
.effects-paused .ocean-caustics i,.effects-paused .ocean-shimmer,.effects-paused .beach-logo,.effects-paused .brand-ripple:before,.effects-paused .brand-ripple:after{animation-play-state:paused}
.effects-paused .confetti i{animation:none;opacity:0}.effects-paused .podium-celebrate{transform:none;transition:none}
@media(max-width:760px){.ocean-brand{width:min(100%,320px);margin-top:6px;margin-bottom:16px;padding:16px 14px 23px}.beach-content{padding-top:22px}.ocean-caustics{inset:-100px -65% 0;opacity:.3}.ocean-surface{height:1650px}.podium-art{width:min(100%,325px)}.podium-celebrate{padding:10px 5px}.reward-explanation .prize-note{text-align:center}.section-heading .eyebrow{margin-inline:auto}.footer-top{display:block}}
@media(prefers-reduced-motion:reduce){.ocean-caustics i,.ocean-shimmer,.ocean-brand .beach-logo,.brand-ripple:before,.brand-ripple:after{animation:none}.confetti i{animation:none!important;opacity:0!important}.podium-celebrate,.podium-glow{transition:none;transform:none!important}.ocean-caustics{opacity:.22}}
