
  :root{
    color-scheme:only light;
    --navy:#101f49;
    --navy-deep:#0b1738;
    --paper:#ffffff;
    --mist:#f5f8fc;
    --ink:#1d2b4f;
    --ink-soft:#4a5878;
    --pink:#f0568c;
    --orange:#f49e1f;
    --green:#2fae4a;
    --teal:#23b5c8;
    --blue:#2d6be4;
    --purple:#9c7be8;
    --red:#e63946;
    --coral:#e77c6f;
    --gold:#e2b04a;
    --sage:#a8bf7a;
    --lav:#a58fd8;
    --skyteal:#6fcde0;
    --radius:18px;
    --display:'Playfair Display', Georgia, serif;
    --body:'Nunito', 'Segoe UI', sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth;background:#ffffff}
  body{
    overflow-x:hidden;
    font-family:var(--body);
    color:var(--ink);
    background:var(--paper);
    line-height:1.65;
    font-size:17px;
  }
  h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.2}
  h2{font-size:clamp(1.7rem,3.5vw,2.4rem);letter-spacing:.02em}
  h3{font-size:1.15rem;letter-spacing:.02em}
  p{max-width:62ch}
  img{max-width:100%}
  a{color:var(--blue)}
  :focus-visible{outline:3px solid var(--teal);outline-offset:3px;border-radius:4px}

  /* ============ NAV ============ */
  .nav{
    position:sticky;top:0;z-index:50;
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid #e6ecf5;
  }
  .nav-inner{
    max-width:1100px;margin:0 auto;
    display:flex;align-items:center;justify-content:space-between;
    padding:.7rem 1.25rem;
  }
  .nav-logo{
    font-family:var(--display);font-weight:700;font-size:1.05rem;
    color:var(--navy);text-decoration:none;letter-spacing:.03em;
    display:flex;align-items:center;gap:.5rem;
  }
  .nav-logo svg{flex:none}
  .nav-links{display:flex;gap:1.4rem;list-style:none;align-items:center}
  .nav-links a{
    color:var(--ink);text-decoration:none;font-weight:700;font-size:.92rem;
  }
  .nav-links a:hover{color:var(--blue)}
  .nav-cta{
    background:var(--pink);color:#fff !important;
    padding:.45rem 1rem;border-radius:999px;
  }
  .nav-cta:hover{background:#d9407a;color:#fff !important}
  .nav-toggle{display:none;background:none;border:none;font-size:1.6rem;color:var(--navy);cursor:pointer;padding:.25rem .5rem}
  @media (max-width:760px){
    .nav-toggle{display:block}
    .nav-links{
      position:absolute;left:0;right:0;top:100%;
      flex-direction:column;gap:0;background:#fff;
      border-bottom:1px solid #e6ecf5;
      display:none;padding:.5rem 0 1rem;
    }
    .nav-links.open{display:flex}
    .nav-links li{width:100%;text-align:center}
    .nav-links a{display:block;padding:.7rem 1rem}
    .nav-cta{margin:0 auto;display:inline-block;padding:.5rem 1.4rem}
  }

  /* ============ HERO ============ */
  .hero{
    background:var(--navy);
    color:#fff;
    text-align:center;
    padding:3.4rem 1.25rem 0;
    overflow:hidden;
    position:relative;
  }
  .hero-logo{max-width:640px;margin:0 auto}
  .logo-mark{position:relative;display:inline-block;padding-top:2.2rem}
  .sun{position:absolute;top:0;left:-6%;width:clamp(38px,7vw,58px);animation:sunspin 40s linear infinite}
  @keyframes sunspin{to{transform:rotate(360deg)}}
  .birds{position:absolute;top:.6rem;left:50%;transform:translateX(-50%);width:clamp(48px,9vw,76px);opacity:.9}
  .hero-title{
    font-family:var(--display);
    font-weight:600;
    font-size:clamp(2.5rem,7.5vw,4.4rem);
    letter-spacing:.14em;
    text-transform:uppercase;
    color:#fff;
    position:relative;z-index:1;
  }
  .wave-under{
    display:block;
    width:min(600px,96%);
    margin:-.9rem auto .6rem;
    height:64px;
    overflow:visible;
  }
  .wave-track{
    animation:drift 8s ease-in-out infinite alternate;
  }
  @keyframes drift{
    from{transform:translateX(0)}
    to{transform:translateX(-22px)}
  }
  .hero-sub{
    font-family:var(--display);
    font-weight:700;
    font-size:clamp(1.9rem,6vw,3.1rem);
    letter-spacing:.22em;
    margin-right:-.22em;
    word-break:keep-all;
  }
  .hero-sub span{display:inline-block;animation:pop .6s cubic-bezier(.34,1.56,.64,1) both}
  .hero-sub span:nth-child(1){color:var(--coral);animation-delay:.05s}
  .hero-sub span:nth-child(2){color:var(--gold);animation-delay:.12s}
  .hero-sub span:nth-child(3){color:var(--sage);animation-delay:.19s}
  .hero-sub span:nth-child(4){color:var(--gold);animation-delay:.26s}
  .hero-sub span:nth-child(5){color:var(--teal);animation-delay:.33s}
  .hero-sub span:nth-child(6){color:var(--blue);animation-delay:.40s}
  .hero-sub span:nth-child(7){color:var(--lav);animation-delay:.47s}
  .hero-sub span:nth-child(8){color:var(--pink);animation-delay:.54s}
  @keyframes pop{
    from{opacity:0;transform:translateY(14px) scale(.85)}
    to{opacity:1;transform:none}
  }
  .hero-motto{
    display:flex;align-items:center;justify-content:center;gap:.9rem;
    margin-top:1rem;
  }
  .motto-line{height:1px;width:clamp(30px,7vw,70px);background:rgba(255,255,255,.5)}
  .motto-text{
    font-family:var(--body);font-weight:700;
    font-size:clamp(.72rem,1.8vw,.88rem);
    letter-spacing:.34em;margin-right:-.34em;
    color:#e8eefb;
  }
  .motto-text i{font-style:normal;color:var(--pink)}
  .hero-tag{
    font-style:italic;
    margin-top:1.1rem;
    font-size:clamp(1.05rem,2.6vw,1.3rem);
    color:#cdd8f2;
    margin:1.1rem auto .5rem;
  }
  .hero-desc{
    color:#aebbdd;
    max-width:46ch;
    margin:0 auto 1.3rem;
    font-size:1rem;
  }
  .btn{
    display:inline-block;
    font-family:var(--body);
    font-weight:800;
    text-decoration:none;
    border-radius:999px;
    padding:.8rem 1.9rem;
    font-size:1rem;
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  }
  .btn:hover{transform:translateY(-2px)}
  .btn-pink{background:var(--pink);color:#fff;box-shadow:0 6px 18px rgba(240,86,140,.35)}
  .btn-pink:hover{background:#d9407a}
  .btn-navy{background:var(--navy);color:#fff}
  .btn-navy:hover{background:var(--navy-deep)}
  .btn-outline{border:2px solid var(--navy);color:var(--navy)}
  .btn-outline:hover{background:var(--navy);color:#fff}
  .hero-bottom-wave{display:block;width:calc(100% + 2.5rem);margin-left:-1.25rem;margin-bottom:-1px;margin-top:2.2rem}

  /* ============ SECTIONS ============ */
  section{padding:2.9rem 1.25rem;background:var(--paper)}
  .inner{max-width:1000px;margin:0 auto}
  .eyebrow{
    font-family:var(--display);
    font-weight:700;
    font-size:.8rem;
    letter-spacing:.28em;
    text-transform:uppercase;
    display:inline-block;
    margin-bottom:.75rem;
  }
  .divider{
    display:block;
    width:110px;height:16px;
    margin:1rem 0 1.6rem;
  }
  .center{text-align:center}
  .center p{margin-left:auto;margin-right:auto}
  .center .divider{margin-left:auto;margin-right:auto}

  /* welcome */
  #about .eyebrow{color:var(--teal)}

  /* open play */
  #play{background:var(--mist)}
  #play .eyebrow{color:var(--blue)}
  .play-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:.85rem;
    margin:1.5rem 0 1.6rem;
    text-align:left;
  }
  .play-card{
    background:#fff;
    border-radius:var(--radius);
    padding:1rem 1.1rem;
    border:1px solid #e4ebf5;
    display:flex;gap:.9rem;align-items:flex-start;
  }
  .play-card .dot{
    flex:none;width:38px;height:38px;border-radius:50%;
    display:grid;place-items:center;color:#fff;font-size:1.05rem;
  }
  .play-card p{font-size:.95rem;color:var(--ink-soft);margin-top:.15rem}
  .c-pink{background:var(--pink)} .c-orange{background:var(--orange)}
  .c-green{background:var(--green)} .c-teal{background:var(--teal)}
  .c-blue{background:var(--blue)} .c-purple{background:var(--purple)}

  /* pricing */
  .price-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:1rem;
    margin:0 0 2.2rem;
  }
  .price-card{
    background:#fff;
    border:1.5px solid #e4ebf5;
    border-radius:var(--radius);
    padding:1.2rem 1.2rem;
    text-align:center;
  }
  .price-card.featured{border-color:var(--pink);box-shadow:0 8px 24px rgba(240,86,140,.12)}
  .price-card h3{font-size:.95rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
  .price-amount{
    font-family:var(--display);font-weight:700;
    font-size:2.2rem;line-height:1.1;margin:.5rem 0 .2rem;
  }
  .price-card:nth-child(1) .price-amount{color:var(--teal)}
  .price-card:nth-child(2) .price-amount{color:var(--blue)}
  .price-card:nth-child(3) .price-amount{color:var(--pink)}
  .price-note{font-size:.9rem;color:var(--ink-soft)}

  /* parties */
  #parties .eyebrow{color:var(--pink)}
  .party-wrap{
    display:grid;grid-template-columns:1.1fr .9fr;gap:2.2rem;align-items:center;
  }
  @media (max-width:800px){.party-wrap{grid-template-columns:1fr;gap:2rem}}
  .party-art{
    background:var(--navy);
    border-radius:24px;
    padding:1.6rem;
    text-align:center;
  }
  .party-art svg{width:100%;max-width:340px}

  /* memberships */
  #members{background:var(--navy);color:#fff}
  #members .eyebrow{color:var(--orange)}
  #members h2{color:#fff}
  #members p{color:#c3cfec}
  .perks{
    display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;
    margin:1.6rem 0 2rem;list-style:none;
  }
  .perks li{
    font-family:var(--display);font-weight:700;font-size:.85rem;
    letter-spacing:.04em;
    border:1.5px solid rgba(255,255,255,.35);
    border-radius:999px;padding:.4rem 1rem;
  }
  .perks li:nth-child(1){border-color:var(--pink);color:#ffd3e3}
  .perks li:nth-child(2){border-color:var(--orange);color:#ffe3b3}
  .perks li:nth-child(3){border-color:var(--teal);color:#c8f2f7}

  /* faq */
  #faq .eyebrow{color:var(--green)}
  .faq-list{margin-top:1.8rem;display:grid;gap:.9rem}
  details{
    border:1.5px solid #e4ebf5;
    border-radius:var(--radius);
    background:#fff;
    overflow:hidden;
  }
  summary{
    cursor:pointer;
    font-weight:800;
    padding:1rem 1.3rem;
    list-style:none;
    display:flex;justify-content:space-between;align-items:center;gap:1rem;
  }
  summary::-webkit-details-marker{display:none}
  summary .mark{
    font-family:var(--display);font-weight:700;color:var(--teal);
    transition:transform .2s ease;flex:none;
  }
  details[open] summary .mark{transform:rotate(45deg)}
  details p{padding:0 1.3rem 1.1rem;color:var(--ink-soft)}
  details:nth-child(1) summary .mark{color:var(--pink)}
  details:nth-child(2) summary .mark{color:var(--orange)}
  details:nth-child(3) summary .mark{color:var(--green)}

  /* contact */
  #contact{background:var(--mist)}
  #contact .eyebrow{color:var(--purple)}
  .contact-grid{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
    gap:1rem;margin-top:2rem;text-align:left;
  }
  .contact-card{
    background:#fff;border:1px solid #e4ebf5;border-radius:var(--radius);
    padding:1.2rem 1.3rem;
  }
  .contact-card h3{font-size:.95rem;margin-bottom:.3rem}
  .contact-card p, .contact-card a{font-size:.95rem;color:var(--ink-soft);text-decoration:none;word-break:break-word}
  .contact-card a:hover{color:var(--blue)}
  .contact-card h3 span{margin-right:.4rem}

  /* footer */
  footer{
    background:var(--navy);color:#9fb0d8;
    text-align:center;padding:2.2rem 1.25rem 2.6rem;
    font-size:.9rem;
  }
  footer .foot-logo{
    font-family:var(--display);font-weight:700;color:#fff;
    font-size:1.05rem;letter-spacing:.04em;display:block;margin-bottom:.4rem;
  }
  footer .foot-rainbow span{font-family:var(--display);font-weight:700}
  .fr1{color:var(--coral)} .fr2{color:var(--gold)} .fr3{color:var(--sage)}
  .fr4{color:var(--gold)} .fr5{color:var(--teal)} .fr6{color:var(--blue)}
  .fr7{color:var(--lav)} .fr8{color:var(--pink)}

  /* party booking form */
    .form-card{
    background:#fff;
    border:1.5px solid #e4ebf5;
    border-radius:24px;
    padding:1.6rem 1.4rem;
    margin-top:1.5rem;
    text-align:left;
  }
  .form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1.1rem 1.2rem;
  }
  @media (max-width:640px){.form-grid{grid-template-columns:1fr}}
  .field{display:flex;flex-direction:column;gap:.35rem}
  .field.full{grid-column:1 / -1}
  .field label{font-weight:800;font-size:.9rem}
  .field label small{font-weight:600;color:var(--ink-soft)}
  .field input,.field select,.field textarea{
    font-family:var(--body);
    font-size:1rem;
    color:var(--ink);
    border:1.5px solid #d7e0ee;
    border-radius:12px;
    padding:.65rem .85rem;
    background:#fff;
  }
  .field textarea{resize:vertical;min-height:110px}
  .field input:focus,.field select:focus,.field textarea:focus{
    outline:none;border-color:var(--teal);
    box-shadow:0 0 0 3px rgba(35,181,200,.18);
  }
  /* party date calendar */
  .cal{
    border:1.5px solid #d7e0ee;border-radius:16px;
    padding:1rem;background:#fff;max-width:420px;
  }
  .cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}
  .cal-title{font-family:var(--display);font-weight:700;font-size:1.05rem}
  .cal-nav{
    background:var(--mist);border:none;border-radius:10px;
    width:34px;height:34px;font-size:1.3rem;line-height:1;
    color:var(--navy);cursor:pointer;transition:background .15s ease;
  }
  .cal-nav:hover:not(:disabled){background:#e2eaf6}
  .cal-nav:disabled{opacity:.35;cursor:default}
  .cal-week{
    display:grid;grid-template-columns:repeat(7,1fr);
    font-size:.7rem;font-weight:800;letter-spacing:.04em;
    color:var(--ink-soft);text-align:center;margin-bottom:.3rem;
  }
  .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem}
  .cal-day{
    aspect-ratio:1;display:grid;place-items:center;
    font-size:.9rem;font-weight:700;border-radius:10px;
    border:none;background:none;font-family:var(--body);color:var(--ink);
  }
  .cal-day.open{
    background:#e6f7fa;color:#0e7f93;cursor:pointer;
    transition:transform .12s ease,background .12s ease;
  }
  .cal-day.open:hover{background:var(--teal);color:#fff;transform:scale(1.07)}
  .cal-day.off{color:#c3ccdc;background:var(--mist)}
  .cal-day.sel{background:var(--pink);color:#fff;box-shadow:0 4px 12px rgba(240,86,140,.4)}
  .cal-legend{
    display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;
    font-size:.75rem;color:var(--ink-soft);margin-top:.8rem;
  }
  .cal-legend .lg{
    display:inline-block;width:11px;height:11px;border-radius:4px;
    margin-right:.35rem;vertical-align:-1px;
  }
  .lg-open{background:#e6f7fa;border:1px solid #9adcE8}
  .lg-off{background:var(--mist);border:1px solid #dfe6f0}
  .lg-sel{background:var(--pink)}
  .cal-picked{
    text-align:center;font-size:.9rem;font-weight:800;
    margin-top:.6rem;color:var(--ink-soft);
  }
  .cal-picked.has{color:var(--pink)}
  @media (max-width:640px){
    .cal{max-width:100%;padding:.8rem}
    .cal-day{font-size:.85rem}
  }

  .addon-checks{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
    gap:.45rem;
  }
  .check{
    display:flex;align-items:center;gap:.6rem;
    background:var(--mist);border:1.5px solid transparent;border-radius:12px;
    padding:.55rem .8rem;font-size:.9rem;font-weight:700;cursor:pointer;
    transition:border-color .15s ease,background .15s ease;
  }
  .check:hover{background:#eaf1fa}
  .check:has(input:checked){border-color:var(--teal);background:#e6f7fa}
  .check input{accent-color:var(--teal);width:17px;height:17px;flex:none}
  @media (max-width:640px){.addon-checks{grid-template-columns:1fr}}

  .form-hint{
    font-size:.85rem;color:var(--ink-soft);
    margin-top:1rem;
  }
  .form-actions{margin-top:1.4rem;text-align:center}
  .btn-submit{border:none;cursor:pointer;font-size:1.05rem}
  .day-pill-note{
    display:inline-block;
    font-family:var(--display);font-weight:700;font-size:.8rem;
    letter-spacing:.06em;
    background:#fff;
    border:1.5px solid var(--orange);
    color:#b06f05;
    border-radius:999px;
    padding:.35rem .95rem;
    margin-top:.9rem;
  }

  /* at-a-glance info strip */
  .info-strip{background:#fff;border-bottom:1px solid #eef2f8;padding:1.1rem 1.25rem}
  .info-strip-inner{
    max-width:1050px;margin:0 auto;
    display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));
    gap:.8rem;
  }
  .info-item{
    display:flex;align-items:center;gap:.75rem;
    text-decoration:none;color:var(--ink);
    font-size:.86rem;line-height:1.35;
    padding:.55rem .7rem;border-radius:14px;
    transition:background .15s ease;
  }
  .info-item:hover{background:var(--mist)}
  .info-item strong{font-size:.95rem}
  .info-item u{text-decoration-color:var(--teal)}
  .info-ico{
    flex:none;width:40px;height:40px;border-radius:50%;
    display:grid;place-items:center;font-size:1.1rem;color:#fff;
  }
  .i-teal{background:var(--teal)} .i-blue{background:var(--blue)}
  .i-orange{background:var(--orange)} .i-pink{background:var(--pink)}

  /* hero quick-action buttons */
  .quick-row{
    display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;
    margin-top:.4rem;
  }
  .quick-btn{
    font-weight:800;font-size:.95rem;text-decoration:none;color:#fff;
    padding:.7rem 1.4rem;border-radius:999px;
    transition:transform .15s ease,filter .15s ease;
  }
  .quick-btn:hover{transform:translateY(-2px);filter:brightness(1.08)}
  .q-teal{background:var(--teal)}
  .q-orange{background:var(--orange)}
  .q-blue{background:var(--blue)}
  .q-pink{background:var(--pink);box-shadow:0 6px 18px rgba(240,86,140,.35)}
  @media (max-width:520px){
    .quick-row{gap:.5rem}
    .quick-btn{padding:.6rem 1rem;font-size:.88rem}
  }

  /* hours panel */
  .hours-panel{
    background:#fff;border:1.5px solid #e4ebf5;border-radius:24px;
    padding:1.4rem 1.3rem;margin:1.5rem 0 1.1rem;text-align:left;
  }
  .hours-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.4rem}
  .hours-day h3{font-size:1rem;margin-bottom:.4rem}
  .hours-day h3 span{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.5rem}
  .hours-day p{font-size:.95rem;color:var(--ink-soft);margin:0}
  .hours-day ul{list-style:none;margin-top:.5rem;display:grid;gap:.3rem}
  .hours-day li{
    font-size:.9rem;color:var(--ink-soft);
    background:var(--mist);border-radius:10px;padding:.4rem .7rem;
  }
  .hours-day li strong{color:var(--ink)}
  .pkg-grid{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
    gap:1rem;margin:1.6rem 0 .4rem;text-align:left;align-items:start;
  }
  .pkg-card{
    background:#fff;border:1.5px solid #e4ebf5;border-radius:20px;
    padding:1.4rem 1.3rem;position:relative;
    transition:transform .25s ease,box-shadow .25s ease;
  }
  .pkg-card:hover{transform:translateY(-5px);box-shadow:0 12px 26px rgba(16,31,73,.1)}
  .pkg-card.featured{border-color:var(--teal);box-shadow:0 8px 24px rgba(35,181,200,.14)}
  .pkg-badge{
    position:absolute;top:-12px;left:50%;transform:translateX(-50%);
    background:var(--teal);color:#fff;font-weight:800;font-size:.72rem;
    letter-spacing:.08em;text-transform:uppercase;
    border-radius:999px;padding:.25rem .8rem;white-space:nowrap;
  }
  .pkg-card h3{font-size:1.25rem;text-align:center}
  .pkg-price{
    font-family:var(--display);font-weight:700;font-size:1.9rem;
    text-align:center;margin:.4rem 0 0;
  }
  .pkg-tax{display:block;text-align:center;font-size:.8rem;color:var(--ink-soft);margin-bottom:.9rem}
  .pkg-card:nth-child(1) .pkg-price{color:var(--teal)}
  .pkg-card:nth-child(2) .pkg-price{color:var(--blue)}
  .pkg-card:nth-child(3) .pkg-price{color:var(--pink)}
  .pkg-card ul{list-style:none;display:grid;gap:.35rem}
  .pkg-card li{
    font-size:.92rem;color:var(--ink-soft);
    padding-left:1.4rem;position:relative;
  }
  .pkg-card li::before{
    content:'🌊';position:absolute;left:0;top:0;font-size:.8rem;
  }
  .pkg-card li.plus{font-weight:700;color:var(--ink)}
  .pkg-card li.plus::before{content:'✨'}
  .addons-panel{
    background:#fff;border:1.5px solid #e4ebf5;border-radius:20px;
    padding:1.4rem 1.3rem;margin:1rem 0 1.6rem;
  }
  .addons-list{
    list-style:none;display:flex;flex-wrap:wrap;justify-content:center;
    gap:.5rem;max-width:820px;margin:0 auto;
  }
  .fine-print{
    text-align:center;font-size:.85rem;color:var(--ink-soft);
    margin:1rem auto 0;padding-top:.9rem;border-top:1px dashed #e4ebf5;
  }
  .addons-list li{
    display:flex;align-items:center;gap:.7rem;
    background:var(--mist);border-radius:12px;padding:.6rem .9rem;
    font-size:.92rem;
  }
  .addons-list li strong{font-family:var(--display);font-size:1.05rem;color:var(--blue)}
  @media (max-width:640px){
    .addons-panel{padding:1.1rem .9rem}
    .addons-list{grid-template-columns:1fr}
  }
  .party-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;text-align:left}
  .slot-day h3{font-size:1rem;margin-bottom:.5rem}
  .slot-day h3 span{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.5rem}
  .slot-day ul{list-style:none;display:grid;gap:.35rem}
  .slot-day li{background:var(--mist);border-radius:10px;padding:.45rem .7rem;font-size:.92rem;color:var(--ink-soft)}
  .hours-list{list-style:none;display:grid;gap:.45rem;max-width:560px;margin:0 auto}
  .hours-list li{
    display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
    background:var(--mist);border-radius:12px;padding:.55rem .9rem;
    font-size:.95rem;flex-wrap:wrap;
  }
  .hours-list li strong{font-family:var(--display);letter-spacing:.03em}
  .hours-list li span{color:var(--ink-soft);text-align:right}
  .closed-tag{
    display:inline-block;font-family:var(--display);font-weight:700;
    font-size:.85rem;letter-spacing:.06em;color:var(--red);
    border:1.5px solid var(--red);border-radius:999px;padding:.25rem .8rem;
  }

  /* section transition waves */
  .sec-wave{display:block;width:100%;height:40px;margin-bottom:-1px;margin-top:-1px}
  .sec-wave path{}
  section{padding-top:2.6rem}
  section[id],[id="book"],[id="hours"],[id="pricing"]{scroll-margin-top:76px}

  /* sections that host floating bubbles */
  .has-bubbles{position:relative;overflow:hidden}
  .has-bubbles > .inner{position:relative;z-index:1}
  .bubbles-soft .bubble{border-color:rgba(255,255,255,.18)}
  .bubbles-soft .bubble::after{background:rgba(255,255,255,.18)}

  /* soft ripple pulse behind the hero button */
  .btn-ripple{position:relative}
  .btn-ripple::before{
    content:'';position:absolute;inset:0;border-radius:999px;
    box-shadow:0 0 0 0 rgba(240,86,140,.55);
    animation:ripple 2.6s ease-out infinite;
    pointer-events:none;
  }
  @keyframes ripple{
    0%{box-shadow:0 0 0 0 rgba(240,86,140,.45)}
    70%{box-shadow:0 0 0 16px rgba(240,86,140,0)}
    100%{box-shadow:0 0 0 0 rgba(240,86,140,0)}
  }

  /* little fish swimming across the hero */
  .fish{
    position:absolute;top:34%;left:-80px;
    width:52px;opacity:.5;pointer-events:none;
    animation:swim 26s linear infinite;
  }
  .fish.f2{top:62%;width:34px;animation-duration:34s;animation-delay:9s;opacity:.35}
  @keyframes swim{
    0%{transform:translateX(-80px)}
    49.9%{transform:translateX(calc(100vw + 80px)) scaleX(1)}
    50%{transform:translateX(calc(100vw + 80px)) scaleX(-1)}
    99.9%{transform:translateX(-80px) scaleX(-1)}
    100%{transform:translateX(-80px) scaleX(1)}
  }
  .fish path, .fish circle{fill:none;stroke:#ffffff;stroke-width:2.5;stroke-linecap:round}
  .fish .eye{fill:#ffffff;stroke:none}

  /* gentle float for the party artwork panel */
  .party-art{animation:bob 7s ease-in-out infinite}

  /* ============ ANIMATIONS ============ */
  /* rising bubbles in the hero */
  .bubbles{position:absolute;inset:0;pointer-events:none;overflow:hidden}
  .bubble{
    position:absolute;bottom:-40px;
    border:2px solid rgba(255,255,255,.25);
    border-radius:50%;
    animation:rise linear infinite;
  }
  .bubble::after{ /* little highlight */
    content:'';position:absolute;top:18%;left:20%;
    width:25%;height:25%;border-radius:50%;
    background:rgba(255,255,255,.25);
  }
  @keyframes rise{
    0%{transform:translateY(0) translateX(0);opacity:0}
    10%{opacity:1}
    90%{opacity:1}
    100%{transform:translateY(-110vh) translateX(24px);opacity:0}
  }
  .bubble:nth-child(1){left:8%;width:14px;height:14px;animation-duration:14s;animation-delay:0s}
  .bubble:nth-child(2){left:18%;width:22px;height:22px;animation-duration:18s;animation-delay:3s}
  .bubble:nth-child(3){left:32%;width:10px;height:10px;animation-duration:12s;animation-delay:6s}
  .bubble:nth-child(4){left:55%;width:16px;height:16px;animation-duration:16s;animation-delay:1.5s}
  .bubble:nth-child(5){left:70%;width:26px;height:26px;animation-duration:20s;animation-delay:5s}
  .bubble:nth-child(6){left:82%;width:12px;height:12px;animation-duration:13s;animation-delay:8s}
  .bubble:nth-child(7){left:92%;width:18px;height:18px;animation-duration:17s;animation-delay:2s}
  .bubble:nth-child(8){left:44%;width:8px;height:8px;animation-duration:11s;animation-delay:9s}

  /* gentle bob, like floating on water */
  @keyframes bob{
    0%,100%{transform:translateY(0) rotate(0deg)}
    50%{transform:translateY(-8px) rotate(1.5deg)}
  }
  .balloon{animation:bob 4s ease-in-out infinite;transform-origin:center bottom}
  .balloon.b2{animation-delay:1.2s;animation-duration:4.6s}
  .balloon.b3{animation-delay:2.1s;animation-duration:5.2s}

  /* confetti twinkle */
  @keyframes twinkle{
    0%,100%{opacity:1;transform:scale(1)}
    50%{opacity:.35;transform:scale(.7)}
  }
  .confetti{animation:twinkle 3s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
  .confetti.c2{animation-delay:.6s}
  .confetti.c3{animation-delay:1.2s}
  .confetti.c4{animation-delay:1.8s}
  .confetti.c5{animation-delay:2.4s}
  .confetti.c6{animation-delay:.9s}

  /* section wave dividers drift like the hero wave */
  .divider path{animation:squiggle 5s ease-in-out infinite alternate}
  @keyframes squiggle{
    from{transform:translateX(0)}
    to{transform:translateX(-12px)}
  }
  .divider{overflow:visible}

  /* scroll-in reveal */
  .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
  .reveal.in{opacity:1;transform:none}

  /* playful hover lifts */
  .play-card,.price-card,.contact-card{transition:transform .25s ease,box-shadow .25s ease}
  .play-card:hover,.contact-card:hover{transform:translateY(-5px);box-shadow:0 10px 24px rgba(16,31,73,.08)}
  .price-card:hover{transform:translateY(-5px) rotate(-.5deg);box-shadow:0 12px 26px rgba(16,31,73,.1)}
  .play-card:hover .dot{animation:bob 1.6s ease-in-out infinite}
  .perks li{transition:transform .2s ease}
  .perks li:hover{transform:translateY(-3px) rotate(-1deg)}

  /* wave emoji in nav logo gets a tiny sway */
  .nav-logo svg{animation:sway 6s ease-in-out infinite;transform-origin:center}
  @keyframes sway{
    0%,100%{transform:translateX(0)}
    50%{transform:translateX(3px)}
  }

  /* membership modal */
  .modal-overlay{
    position:fixed;inset:0;z-index:100;
    background:rgba(16,31,73,.55);backdrop-filter:blur(3px);
    display:grid;place-items:center;padding:1rem;
  }
  .modal-overlay[hidden]{display:none}
  .modal-card{
    background:#fff;border-radius:22px;
    padding:1.8rem 1.5rem;max-width:440px;width:100%;
    position:relative;max-height:90vh;overflow:auto;
    animation:modalIn .3s cubic-bezier(.34,1.4,.64,1) both;
  }
  @keyframes modalIn{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}
  .modal-close{
    position:absolute;top:.7rem;right:.9rem;
    background:none;border:none;font-size:1.7rem;line-height:1;
    color:var(--ink-soft);cursor:pointer;padding:.2rem;
  }
  .modal-close:hover{color:var(--pink)}
  @media (prefers-reduced-motion:reduce){.modal-card{animation:none}}

  .nav-links a.current{color:var(--pink)}

  /* ===== faint decorative ocean motifs (desktop side margins only) ===== */
  .motif{position:relative}
  .motif::before,.motif::after{
    content:"";position:absolute;pointer-events:none;
    background-repeat:no-repeat;background-size:contain;
    opacity:.06;z-index:0;
  }
  .motif > *{position:relative;z-index:1}
  /* fish tucked on the left */
  .motif-fish::before{
    background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2060%2034%22%20fill%3D%22none%22%20stroke%3D%22%2523101f49%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M54%2017%20Q42%204%2026%209%20Q12%2013%207%2017%20Q12%2021%2026%2025%20Q42%2030%2054%2017%20Z%22/%3E%3Cpath%20d%3D%22M7%2017%20L1%2010%20M7%2017%20L1%2024%22/%3E%3Ccircle%20cx%3D%2245%22%20cy%3D%2214%22%20r%3D%221.6%22%20fill%3D%22%2523101f49%22/%3E%3C/svg%3E");
    width:66px;height:38px;left:2.5%;top:22%;
    transform:rotate(-8deg);
  }
  /* wave curl on the right */
  .motif-fish::after{
    background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2080%2030%22%20fill%3D%22none%22%20stroke%3D%22%252323b5c8%22%20stroke-width%3D%222.5%22%20stroke-linecap%3D%22round%22%3E%3Cpath%20d%3D%22M2%2020%20q%2010%20-12%2020%200%20t%2020%200%20t%2020%200%20t%2016%200%22/%3E%3Cpath%20d%3D%22M60%2020%20Q64%206%2076%204%20Q68%208%2068%2014%20Q68%2020%2078%2020%22/%3E%3C/svg%3E");
    width:90px;height:34px;right:2.5%;bottom:16%;
  }
  /* bubbles rising, both sides */
  .motif-bubbles::before{
    background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2040%2090%22%20fill%3D%22none%22%20stroke%3D%22%252323b5c8%22%20stroke-width%3D%222%22%3E%3Ccircle%20cx%3D%2214%22%20cy%3D%2276%22%20r%3D%226%22/%3E%3Ccircle%20cx%3D%2226%22%20cy%3D%2254%22%20r%3D%224%22/%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2234%22%20r%3D%225%22/%3E%3Ccircle%20cx%3D%2224%22%20cy%3D%2214%22%20r%3D%223%22/%3E%3C/svg%3E");
    width:40px;height:90px;left:3%;bottom:10%;
    opacity:.05;
  }
  .motif-bubbles::after{
    background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2060%2034%22%20fill%3D%22none%22%20stroke%3D%22%2523101f49%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M54%2017%20Q42%204%2026%209%20Q12%2013%207%2017%20Q12%2021%2026%2025%20Q42%2030%2054%2017%20Z%22/%3E%3Cpath%20d%3D%22M7%2017%20L1%2010%20M7%2017%20L1%2024%22/%3E%3Ccircle%20cx%3D%2245%22%20cy%3D%2214%22%20r%3D%221.6%22%20fill%3D%22%2523101f49%22/%3E%3C/svg%3E");
    width:54px;height:31px;right:3%;top:20%;
    transform:scaleX(-1) rotate(6deg);opacity:.05;
  }
  @media (max-width:960px){
    .motif::before,.motif::after{display:none}
  }

  /* ============ COMPACT MOBILE LAYOUT ============ */
  @media (max-width:640px){
    body{font-size:15.5px}
    section{padding:2rem 1rem}
    h2{font-size:1.5rem}
    .divider{margin:.7rem auto 1rem;width:90px}
    .eyebrow{font-size:.72rem;margin-bottom:.4rem}

    /* hero */
    .hero{padding:2rem 1rem 0}
    .logo-mark{padding-top:1.8rem}
    .sun{left:-2%}
    .hero-title{letter-spacing:.1em}
    .wave-under{height:48px;margin:-.6rem auto .4rem}
    .hero-motto{margin-top:.7rem}
    .hero-tag{margin-top:.8rem;font-size:1rem}
    .hero-desc{font-size:.9rem;margin-bottom:1rem}
    .hero-bottom-wave{margin-top:1.4rem;height:42px}
    .quick-row{gap:.45rem}
    .quick-btn{padding:.55rem .85rem;font-size:.82rem}
    .fish{display:none}

    /* info strip: tight 2x2 grid */
    .info-strip{padding:.7rem .8rem}
    .info-strip-inner{grid-template-columns:1fr 1fr;gap:.35rem}
    .info-item{padding:.4rem .3rem;font-size:.74rem;gap:.5rem;line-height:1.3}
    .info-item strong{font-size:.8rem}
    .info-ico{width:30px;height:30px;font-size:.85rem}

    /* cards & panels */
    .play-grid{gap:.6rem;margin:1rem 0 1.2rem}
    .play-card{padding:.8rem .9rem}
    .play-card .dot{width:32px;height:32px;font-size:.9rem}
    .play-card p{font-size:.88rem}
    .price-grid{grid-template-columns:1fr 1fr;gap:.6rem}
    .price-card{padding:.9rem .6rem}
    .price-card.featured{grid-column:1 / -1}
    .price-amount{font-size:1.7rem}
    .pkg-grid{gap:1.1rem;margin-top:1.2rem}
    .pkg-card{padding:1.1rem 1rem}
    .party-wrap{gap:1.4rem;margin-bottom:1.6rem !important}
    .party-art{max-width:270px;margin:0 auto}
    .hours-panel{padding:1.1rem .9rem}
    .hours-list li{font-size:.86rem;padding:.45rem .7rem}
    .addons-panel{
    background:#fff;border:1.5px solid #e4ebf5;border-radius:20px;
    padding:1.4rem 1.3rem;margin:1rem 0 1.6rem;
  }
  .addons-list{
    list-style:none;display:flex;flex-wrap:wrap;justify-content:center;
    gap:.5rem;max-width:820px;margin:0 auto;
  }
  .fine-print{
    text-align:center;font-size:.85rem;color:var(--ink-soft);
    margin:1rem auto 0;padding-top:.9rem;border-top:1px dashed #e4ebf5;
  }
  .addons-list li{
    display:flex;align-items:center;gap:.7rem;
    background:var(--mist);border-radius:12px;padding:.6rem .9rem;
    font-size:.92rem;
  }
  .addons-list li strong{font-family:var(--display);font-size:1.05rem;color:var(--blue)}
  @media (max-width:640px){
    .addons-panel{padding:1.1rem .9rem}
    .addons-list{grid-template-columns:1fr}
  }
  .party-slots{grid-template-columns:1fr;gap:.8rem}
    .slot-day ul{grid-template-columns:1fr 1fr;gap:.35rem}
    .slot-day li{font-size:.85rem;text-align:center}
    .form-card{padding:1.2rem .95rem}
    .field input,.field select,.field textarea{padding:.6rem .7rem;font-size:.95rem}
    .contact-grid{grid-template-columns:1fr 1fr;gap:.6rem}
    .contact-card{padding:.85rem .9rem}
    .contact-card p,.contact-card a{font-size:.84rem}
    .perks{gap:.4rem}
    .perks li{font-size:.75rem;padding:.3rem .75rem}
    .sec-wave{height:26px}
    details summary{padding:.8rem 1rem;font-size:.92rem}
    details p{padding:0 1rem .9rem;font-size:.9rem}
    footer{padding:1.6rem 1rem 2rem;font-size:.8rem}
  }
  @media (max-width:380px){
    .slot-day ul{grid-template-columns:1fr}
    .contact-grid{grid-template-columns:1fr}
  }

  @media (prefers-reduced-motion:reduce){
    .bubble,.balloon,.confetti,.divider path,.nav-logo svg,
    .play-card:hover .dot,.btn-ripple::before,.fish,.party-art,.sun{animation:none !important}
    .reveal{opacity:1;transform:none;transition:none}
    .play-card,.price-card,.contact-card,.perks li{transition:none}
    .play-card:hover,.price-card:hover,.contact-card:hover,.perks li:hover{transform:none}
    .wave-track{animation:none}
    .hero-sub span{animation:none;opacity:1;transform:none}
    .btn{transition:none}
    html{scroll-behavior:auto}
  }

  /* footer page navigation */
  .foot-nav{
    text-align:center;
    padding:2.2rem 1.25rem .4rem;
    background:var(--navy);
  }
  .foot-nav .btn{margin:.25rem}
  /* rainbow CTA buttons (match the PLAYROOM letters) */
  .btn-c1{background:var(--coral);color:#fff}
  .btn-c1:hover{filter:brightness(1.08)}
  .btn-c2{background:var(--gold);color:#3a2c05}
  .btn-c2:hover{filter:brightness(1.06)}
  .btn-c3{background:var(--teal);color:#fff}
  .btn-c3:hover{filter:brightness(1.08)}
  .btn-c4{background:var(--blue);color:#fff}
  .btn-c4:hover{filter:brightness(1.08)}
  .btn-c5{background:var(--lav);color:#fff}
  .btn-c5:hover{filter:brightness(1.08)}
  .btn-c6{background:var(--pink);color:#fff}
  .btn-c6:hover{filter:brightness(1.08)}
  .btn-row .btn{box-shadow:0 5px 14px rgba(16,31,73,.12)}
  .btn-white{background:#fff;color:var(--navy)}
  .btn-white:hover{background:#e8eefb}
  .btn-ghost{border:2px solid rgba(255,255,255,.5);color:#fff}
  .btn-ghost:hover{background:rgba(255,255,255,.12)}
  .admission-note{
    display:none;text-align:center;font-size:.88rem;font-weight:700;
    color:var(--ink-soft);margin-top:.7rem;
  }
  .admission-note.show{display:block}

  .waiver-text h3{font-size:1rem;margin:1.1rem 0 .3rem;color:var(--navy)}
  .waiver-text p{font-size:.92rem;color:var(--ink-soft);max-width:none}
  .waiver-agree a{font-weight:800}

  /* ===== mobile alignment fixes ===== */
  @media (max-width:640px){
    /* business hours: day label gets a fixed lane, times align left and wrap cleanly */
    .hours-list li{
      justify-content:flex-start;align-items:flex-start;flex-wrap:nowrap;gap:.6rem;
    }
    .hours-list li strong{flex:0 0 6.4rem}
    .hours-list li span{flex:1;text-align:left}

    /* CTA button groups: stack neatly instead of squeezing side by side */
    section p > .btn{
      display:block;width:max-content;max-width:100%;
      margin:.45rem auto !important;
      white-space:normal;text-align:center;
      padding:.65rem 1.3rem;font-size:.92rem;
    }
    .foot-nav .btn{
      display:block;width:max-content;max-width:100%;
      margin:.45rem auto;padding:.6rem 1.2rem;font-size:.9rem;
    }
  }

  /* uniform CTA button rows */
  .btn-row{
    display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;
    margin-top:1.8rem;
  }
  .btn-row .btn{margin:0}
  @media (max-width:640px){
    .btn-row{flex-direction:column;align-items:center;gap:.55rem}
  }

  /* staff hub */
  .staff-grid{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
    gap:1rem;margin-top:2rem;
  }
  .staff-card{
    background:#fff;border:1.5px solid #e4ebf5;border-radius:18px;
    padding:1.4rem 1.2rem;text-decoration:none;color:var(--ink);
    display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center;
    transition:transform .2s ease,box-shadow .2s ease;
  }
  .staff-card:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(16,31,73,.1)}
  .staff-card strong{font-size:1rem}
  .staff-card small{font-size:.82rem;color:var(--ink-soft)}
  .staff-ico{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:1.4rem;color:#fff}
  .ref-grid{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
    gap:1rem;margin-top:2rem;text-align:left;
  }
  .ref-card{background:#fff;border:1.5px solid #e4ebf5;border-radius:16px;padding:1.1rem 1.2rem}
  .ref-card h3{font-size:1.05rem;margin-bottom:.6rem}
  .ref-card h3 small{font-size:.75rem;color:var(--ink-soft);font-weight:400}
  .ref-card ul{list-style:none;display:grid;gap:.35rem}
  .ref-card li{font-size:.9rem;color:var(--ink-soft)}
  .ref-card li strong{color:var(--ink)}
  .staff-note{
    background:#fff;border:1.5px solid #e4ebf5;border-radius:16px;
    padding:1.2rem 1.3rem;margin-top:1.6rem;text-align:center;
  }

  .deposit-row{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}
  .deposit-row .btn{margin:0;font-size:.9rem}
  @media (max-width:640px){.deposit-row{flex-direction:column;align-items:center}}
