Today's Hours: 10:00 AM–6:00 PM

Today's Hours: 10:00 AM–6:00 PM

Limited Time Offer, Ends Sunday 6/21/26! Save up to 35% on Season Passes!

Attractions

The very best water park attractions in California!

Spend the day discovering our fun-filled, 40+ attractions! From mild to wild, we’ve got a little something for everyone to enjoy. Float down the Lazy River, make a splash in Thunder Bay Wave Pool, or for a thrill, you can speed down Bombs Away or Daredevil Drop!

RED, WHITE, & SPLASH SALE!

40% off for our red white and splash sale

Limited Time Offer:

Save Up to 40% On Season Passes!

Valid Thru 7/6!

*Additional Restrictions May Apply

(() => { const canvas = document.getElementById("hero-fireworks"); if(!canvas) return; const ctx = canvas.getContext("2d"); function resize(){ canvas.width = canvas.offsetWidth; canvas.height = canvas.offsetHeight; } resize(); window.addEventListener("resize", resize); const fireworks = []; const particles = []; const colors = [ "#ff2d2d", "#ffffff", "#2563eb" ]; class Firework{ constructor(){ this.x = Math.random()*canvas.width; this.y = canvas.height + 20; this.targetY = Math.random()*(canvas.height*0.45)+40; this.speed = Math.random()*4+7; this.angle = (Math.random()-0.5)*1.1; this.color = colors[Math.floor(Math.random()*colors.length)]; this.exploded = false; } update(){ this.x += Math.sin(this.angle)*this.speed; this.y -= this.speed; this.speed *= .992; if(this.y <= this.targetY){ this.explode(); this.exploded = true; } } draw(){ ctx.beginPath(); ctx.moveTo(this.x,this.y); ctx.lineTo(this.x,this.y+18); ctx.strokeStyle=this.color; ctx.lineWidth=2; ctx.shadowBlur=12; ctx.shadowColor=this.color; ctx.stroke(); } explode(){ const count = 80 + Math.random()*50; for(let i=0;i{ fw.update(); fw.draw(); if(fw.exploded){ fireworks.splice(index,1); } }); particles.forEach((p,index)=>{ p.update(); p.draw(); if(p.life<=0){ particles.splice(index,1); } }); ctx.globalAlpha=1; requestAnimationFrame(animate); } animate(); })();