:root{
  --blue:#12a4ea; --yellow:#ffd20a; --pink:#f536a6; --ink:#111217;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Nunito,sans-serif;color:var(--ink);background:#fff}
img{display:block;width:100%}
a{text-decoration:none;color:inherit}
h1,h2,h3{font-family:Fredoka,sans-serif;margin:0 0 14px;line-height:1.03}
p{margin:0 0 18px;line-height:1.55}
.wrap{width:min(1180px,calc(100% - 38px));margin:auto}
.topbar{position:sticky;top:0;z-index:50;background:#fff;box-shadow:0 8px 28px rgba(0,0,0,.08)}
.nav{height:98px;display:flex;align-items:center;gap:28px}
.logo img{width:148px;max-height:85px;object-fit:contain}
nav{display:flex;gap:22px;margin-left:auto;font-size:.82rem;font-weight:900;text-transform:uppercase}
nav a:hover,nav .active{color:var(--pink)}
.pill{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 23px;border-radius:999px;font-size:.8rem;font-weight:1000;text-transform:uppercase;transition:.2s;border:0}
.pill:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.18)}
.pink{background:var(--pink);color:#fff}.yellow{background:var(--yellow)}.blue{background:var(--blue);color:#fff}
.hero{height:660px;position:relative;overflow:hidden;color:#fff}
.hero-bg{position:absolute;inset:0;height:100%;object-fit:cover}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.80),rgba(0,0,0,.42) 54%,rgba(0,0,0,.08))}
.hero-inner{position:relative;z-index:2;height:100%;display:flex;align-items:center}
.hero-copy{max-width:620px;padding-bottom:60px}
.hero h1{font-size:clamp(3.2rem,6.4vw,6.2rem)}
.hero h1 span,.gallery-copy span,.party span,.center-title span,.family span{color:var(--pink)}
.hero p{font-size:1.12rem;max-width:560px}
.cta-row{display:flex;gap:14px}
.white-wave{position:absolute;bottom:-70px;left:-4%;width:108%;height:150px;background:#fff;border-radius:50% 50% 0 0/52% 42% 0 0}
.how{padding:90px 0 80px;position:relative}
.center-title{text-align:center;margin-bottom:45px}
.center-title h2,.gallery-copy h2,.family h2,.membership h2,.party h2,.reviews h2,.visit h2{font-size:clamp(2.4rem,4.2vw,4rem)}
.center-title p{font-weight:900}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;text-align:center}
.steps article{position:relative;padding:5px 12px}
.steps b{position:absolute;top:86px;left:50%;transform:translateX(-50%);width:34px;height:34px;border-radius:50%;background:var(--pink);color:#fff;display:grid;place-items:center;border:4px solid white}
.blob{width:108px;height:98px;margin:0 auto 27px;display:grid;place-items:center;font-size:2.2rem;border-radius:45% 55% 47% 53%/52% 42% 58% 48%}
.splat{position:absolute;width:155px;height:155px;border-radius:44% 56% 38% 62%/55% 40% 60% 45%}
.splat:before,.splat:after{content:"";position:absolute;background:inherit;border-radius:50%}
.splat:before{width:30px;height:30px;right:-25px;top:18px}.splat:after{width:20px;height:20px;left:-18px;bottom:28px}
.s-blue{background:var(--blue)}.s-yellow{background:var(--yellow)}
.splat-left{left:-70px;top:100px}.splat-right{right:-70px;bottom:30px}
.studio-gallery{padding:70px 0 85px}
.gallery-top{display:grid;grid-template-columns:.8fr 1.15fr .72fr;gap:18px;align-items:stretch}
.gallery-copy{display:flex;flex-direction:column;justify-content:center;padding-right:22px}
.gallery-copy .pill{align-self:flex-start}
.img-card{margin:0;border-radius:13px;overflow:hidden;background:#eee;box-shadow:0 13px 34px rgba(0,0,0,.12)}
.img-card img{height:100%;object-fit:cover}
.gallery-top .img-card{height:330px}
.gallery-bottom{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:18px}
.gallery-bottom .img-card{height:245px}
.family{padding:65px 0;position:relative}
.family-grid{display:grid;grid-template-columns:1.25fr .9fr;gap:55px;align-items:center}
.family-points{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:35px}
.family-points article{text-align:center;padding:12px}
.family-points article+article{border-left:1px solid #ddd}
.family-points article>div{font-size:2.4rem}
.family-image{margin:0;height:330px;border-radius:34px;overflow:hidden}.family-image img{height:100%;object-fit:cover}
.pink-splash,.yellow-splash{position:absolute;width:115px;height:160px;border-radius:44% 56% 38% 62%/55% 40% 60% 45%}
.pink-splash{left:-50px;top:60px;background:var(--pink)}.yellow-splash{left:-50px;top:55px;background:var(--yellow)}
.membership{background:var(--blue);color:#fff}
.membership-grid{display:grid;grid-template-columns:1fr 1.35fr;min-height:385px}
.membership-photo{margin:0;overflow:hidden}.membership-photo img{height:100%;object-fit:cover}
.membership-copy{padding:65px}
.membership-copy ul{padding:0;list-style:none;margin:22px 0 28px}
.membership-copy li{margin:10px 0;font-weight:800}.membership-copy li:before{content:"✓";margin-right:9px;color:#fff}
.party{padding:70px 0}
.party-grid{display:grid;grid-template-columns:.82fr 1.25fr;gap:48px;align-items:center}
.party-img{height:310px}
.reviews{padding:65px 0 0;position:relative;background:#f7f7f7}
.review-layout{display:grid;grid-template-columns:1fr 260px;gap:20px;align-items:end}
.review-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding-bottom:55px}
.review-cards article{background:#fff;border-radius:14px;padding:26px;text-align:center;box-shadow:0 8px 22px rgba(0,0,0,.08)}
.stars{color:#ffbd00;font-size:1.25rem;letter-spacing:.1em}
.review-kid{height:300px;margin:0;overflow:hidden;border-radius:120px 120px 0 0}.review-kid img{height:100%;object-fit:cover}
.visit{background:var(--blue);color:#fff;padding:60px 0}
.visit-grid{display:grid;grid-template-columns:.78fr .82fr 1.2fr;gap:22px;align-items:center;position:relative}
.map{height:270px;border-radius:28px;background:
 linear-gradient(90deg,rgba(255,255,255,.28) 1px,transparent 1px) 0 0/35px 35px,
 linear-gradient(rgba(255,255,255,.28) 1px,transparent 1px) 0 0/35px 35px,#d7ead8;display:grid;place-items:center}
.map span{font-size:3.2rem}
.storefront{height:295px}
.directions{position:absolute;right:130px;bottom:-18px}
footer{background:#111;color:#fff;padding:70px 0 26px}
.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr 1.2fr;gap:45px}
.footer-brand img{width:160px;margin-bottom:18px}.footer-grid a{display:block;color:#d7d7d7;margin:7px 0}.footer-grid p{color:#aaa}
.footer-grid input{width:100%;height:46px;border-radius:999px;border:1px solid #555;background:#181818;color:#fff;padding:0 16px;margin-bottom:12px}
.copyright{border-top:1px solid #333;margin-top:45px;padding-top:20px;text-align:center;color:#888;font-size:.85rem}
@media(max-width:980px){
 nav{display:none}.hero{height:600px}.steps{grid-template-columns:repeat(2,1fr)}
 .gallery-top{grid-template-columns:1fr 1fr}.gallery-copy{grid-column:1/-1}
 .family-grid,.party-grid{grid-template-columns:1fr}.membership-grid{grid-template-columns:1fr}
 .membership-photo{height:340px}.review-layout{grid-template-columns:1fr}.review-kid{display:none}
 .visit-grid{grid-template-columns:1fr 1fr}.visit-copy{grid-column:1/-1}.directions{position:static}
 .footer-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:680px){
 .nav{height:80px}.logo img{width:112px}.nav>.pill{margin-left:auto}
 .hero{height:590px}.hero h1{font-size:3.4rem}.hero-shade{background:rgba(0,0,0,.58)}
 .steps,.gallery-top,.gallery-bottom,.family-points,.review-cards,.visit-grid,.footer-grid{grid-template-columns:1fr}
 .gallery-top .img-card,.gallery-bottom .img-card{height:280px}
 .family-points article+article{border-left:0;border-top:1px solid #ddd}
 .membership-copy{padding:50px 24px}.party-img{height:280px}
 .cta-row{flex-direction:column}.cta-row .pill{width:100%}
}
