/* The Peekaboos. Self-contained: no external fonts, scripts or images. */
:root{
  --ink:#2a1a7a;        /* deep purple-navy: outlines and text */
  --navy:#140d3b;
  --pink:#d10f78; --blue:#1760d6; --green:#0b7f40; --orange:#c24e00; --purple:#6a22e0;
  --yellow:#ffd23f; --cream:#fff3c4; --sky:#bfe8ff; --mint:#e4f8ec;
  --head:"Arial Rounded MT Bold","Chalkboard SE","Nunito","Avenir Next Rounded",ui-rounded,"Trebuchet MS",system-ui,sans-serif;
  --body:ui-rounded,"SF Pro Rounded","Nunito","Avenir Next","Segoe UI",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;font-family:var(--body);font-size:1.125rem;line-height:1.55;color:var(--ink);background:var(--navy);-webkit-text-size-adjust:100%}
body.has-np{padding-bottom:120px}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue)}
[hidden]{display:none!important}
.wrap{width:min(1180px,92%);margin-inline:auto}
.narrow{width:min(900px,92%)}
.skip{position:absolute;left:-999px;top:8px;background:var(--yellow);color:var(--ink);padding:10px 16px;border-radius:12px;font-weight:700;z-index:100}
.skip:focus{left:8px}
:focus-visible{outline:4px solid var(--ink);outline-offset:3px;box-shadow:0 0 0 8px var(--yellow)}

/* ---------- Header ---------- */
.top{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px max(4%,16px);background:linear-gradient(90deg,#4f2bd6 0%,#8a3cf0 50%,#d93f9f 100%);border-bottom:5px solid transparent;border-image:linear-gradient(90deg,#ff3b4e,#ff9a1f,#ffd23f,#2fd16a,#2f8bff,#a15bff) 1}
.brand img{height:84px;width:auto;margin:-2px 0}
.top nav{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
.top nav a{font-family:var(--head);font-size:1.05rem;color:#fff;text-decoration:none;padding:10px 18px;border-radius:999px;border:3px solid #fff;box-shadow:0 4px 0 rgba(20,13,59,.45)}
.top nav a:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(20,13,59,.45)}
.n1{background:var(--pink)}.n2{background:var(--blue)}.n3{background:var(--green)}.n4{background:var(--orange)}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;color:#fff;padding:0 0 60px;
  background:radial-gradient(900px 420px at 85% 100%,#7a35e8 0%,transparent 60%),radial-gradient(800px 420px at 5% 100%,#d10f78 0%,transparent 55%),linear-gradient(180deg,#140d3b,#2f1a8a)}
.hero-banner{position:relative;z-index:1;margin:0;line-height:0}
.hero-banner img{width:100%;height:auto;display:block;aspect-ratio:1916/821}
.hero-body{position:relative;z-index:1;text-align:center;padding-top:34px}
.kicker{font-family:var(--head);font-size:1.4rem;color:var(--yellow);margin:0 0 6px}
.lead{font-size:1.6rem;line-height:1.35;margin:0 auto 26px;max-width:30ch}
.btns{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:12px 28px;font-family:var(--head);font-size:1.2rem;line-height:1.1;color:#fff;text-decoration:none;border:4px solid #fff;border-radius:999px;box-shadow:0 6px 0 rgba(0,0,0,.4);cursor:pointer}
.btn:active{transform:translateY(4px);box-shadow:0 2px 0 rgba(0,0,0,.4)}
.btn-play{background:var(--pink)}
.btn-band{background:var(--blue)}
.btn-peek{background:var(--orange);font-size:1.05rem}
.btn-spot{background:var(--green);width:100%}
.float{position:absolute;z-index:0;font-size:3rem;line-height:1;opacity:.9;animation:bob 5s ease-in-out infinite}
.f1{left:7%;bottom:34%;color:#ff9a1f}.f2{right:9%;bottom:30%;color:var(--yellow);font-size:2.2rem;animation-delay:-1s}
.f3{right:4%;bottom:4%;color:#5be08a;animation-delay:-2s}.f4{left:5%;bottom:8%;color:#7fc4ff;animation-delay:-3s;font-size:2rem}
.f5{left:22%;bottom:10%;color:#ff7fc1;animation-delay:-1.5s}.f6{left:16%;bottom:44%;color:var(--yellow);font-size:2rem;animation-delay:-2.5s}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-14px) rotate(8deg)}}
.rainbow{height:16px;background:linear-gradient(90deg,#ff3b4e 0 16.6%,#ff9a1f 0 33.3%,#ffd23f 0 50%,#2fd16a 0 66.6%,#2f8bff 0 83.3%,#a15bff 0)}

/* ---------- Sections ---------- */
.section{position:relative;padding:72px 0 120px;border-radius:0 0 0 0}
.section + .section{margin-top:-52px;border-radius:52px 52px 0 0}
.title{font-family:var(--head);font-size:clamp(2.4rem,6.8vw,5rem);line-height:1.05;margin:0 0 12px;text-align:center;font-weight:400}
.title .w{display:inline-block;white-space:nowrap}
.title i{display:inline-block;font-style:normal;-webkit-text-stroke:.12em var(--ink);paint-order:stroke fill;
  text-shadow:0 .05em 0 var(--ink),0 .09em 0 var(--ink),0 .15em .1em rgba(20,13,59,.35);transform-origin:50% 80%}
.title i:nth-child(odd){transform:rotate(-4deg) translateY(.02em)}
.title i:nth-child(even){transform:rotate(3deg) translateY(-.03em)}
.title i:nth-child(3n){transform:rotate(-2deg) translateY(-.05em) scale(1.07)}
.title i.k0{color:#ff4d6d}.title i.k1{color:#ff9a1f}.title i.k2{color:#ffd23f}.title i.k3{color:#3ddc84}
.title i.k4{color:#3aa0ff}.title i.k5{color:#b266ff}.title i.k6{color:#ff5cc8}
.title::before,.title::after{content:"\2605";display:inline-block;font-size:.5em;vertical-align:.35em;margin:0 .25em;color:var(--yellow);
  -webkit-text-stroke:.1em var(--ink);paint-order:stroke fill;text-shadow:0 .06em 0 var(--ink);animation:twinkle 2.4s ease-in-out infinite}
.title::after{animation-delay:-1.2s}
@keyframes twinkle{0%,100%{transform:scale(1) rotate(-8deg)}50%{transform:scale(1.25) rotate(10deg)}}
.sub{text-align:center;font-size:1.3rem;margin:0 0 40px}

.band{background:radial-gradient(circle,rgba(255,255,255,.55) 3px,transparent 4px) 0 0/38px 38px,linear-gradient(180deg,#7fd6ff,#a9e6ff)}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.card{background:#fff;border:6px solid var(--c);border-radius:30px;overflow:hidden;box-shadow:0 10px 0 var(--c);display:flex;flex-direction:column}
.card img{width:100%;aspect-ratio:1/1;object-fit:cover;background:var(--c)}
.card-body{padding:18px 20px 22px;display:flex;flex-direction:column;flex:1}
.card h3{font-family:var(--head);font-size:2rem;line-height:1;margin:0 0 6px;color:var(--c)}
.who{font-weight:800;margin:0 0 10px;font-size:1rem;color:#4a3c8f}
.card p{margin:0 0 14px}
.card-body > p:nth-of-type(2){flex:1}
.say{font:inherit;font-family:var(--head);font-size:1.05rem;color:#fff;background:var(--c);border:3px solid var(--c);border-radius:999px;padding:12px 16px;min-height:52px;cursor:pointer;box-shadow:0 4px 0 rgba(0,0,0,.3)}
.say:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(0,0,0,.3)}
.bubble{position:relative;margin:14px 0 0;padding:0;font-weight:800;font-size:1.1rem;line-height:1.3;color:var(--ink);background:#fff7cf;border:3px solid var(--c);border-radius:18px;max-height:0;opacity:0;overflow:hidden;transition:max-height .25s,opacity .25s,padding .25s}
.bubble.on{max-height:140px;opacity:1;padding:12px 14px}
.card-tia{--c:var(--pink)}.card-buddy{--c:var(--blue)}.card-roxy{--c:var(--purple)}.card-mac{--c:var(--orange)}

.songs{background:linear-gradient(180deg,#5a2bd8,#7a35e8);color:#fff}
.songs .sub{color:#fff}
.songs-grid{display:grid;grid-template-columns:minmax(260px,360px) 1fr;gap:40px;align-items:start}
.album{position:sticky;top:104px;text-align:center}
.album img{border:8px solid #fff;border-radius:28px;box-shadow:0 0 0 6px var(--yellow),0 20px 50px rgba(0,0,0,.4);margin-bottom:26px}
.tiny{font-size:.95rem;margin:10px 0 0;opacity:.95}
.tracks{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.track{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:16px;background:#fff;color:var(--ink);padding:10px 14px 10px 10px;border-radius:24px;border:5px solid var(--tc,#fff);box-shadow:0 6px 0 rgba(0,0,0,.25)}
.track img{width:64px;height:88px;object-fit:cover;border-radius:14px}
.meta strong{display:block;font-family:var(--head);font-size:1.3rem;line-height:1.15;font-weight:400}
.meta span{display:block;font-size:1rem;color:#4a3c8f}
.t1{--tc:#ff7fc1}.t2{--tc:#7fc4ff}.t3{--tc:#ffb347}.t4{--tc:#7be0a0}.t5{--tc:#c9a2ff}.t6{--tc:#ffe066}.t7{--tc:#ff8f8f}.t8{--tc:#9fb4ff}
.play{display:inline-flex;align-items:center;gap:10px;min-height:56px;min-width:128px;justify-content:center;padding:10px 20px;font-family:var(--head);font-size:1.1rem;color:#fff;background:var(--pink);border:4px solid var(--ink);border-radius:999px;cursor:pointer;box-shadow:0 4px 0 rgba(0,0,0,.35)}
.play:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(0,0,0,.35)}
.ico{display:inline-block;width:0;height:0;border-style:solid;border-width:10px 0 10px 17px;border-color:transparent transparent transparent currentColor}
.track.playing{border-color:var(--yellow);box-shadow:0 0 0 5px var(--yellow),0 6px 0 rgba(0,0,0,.25);animation:pulse 1.4s ease-in-out infinite}
.track.playing .play{background:var(--green)}
.track.playing .ico,.np.playing #np-toggle .ico{width:18px;height:20px;border:0;background:linear-gradient(90deg,currentColor 0 36%,transparent 0 64%,currentColor 0)}
@keyframes pulse{50%{transform:scale(1.015)}}

.watch{background:radial-gradient(circle,rgba(255,255,255,.6) 3px,transparent 4px) 0 0/38px 38px,linear-gradient(180deg,#ffc9e6,#ffe0f1)}
.video{border:8px solid #fff;border-radius:30px;overflow:hidden;box-shadow:0 0 0 6px var(--blue),0 22px 50px rgba(20,40,120,.35);background:#000;aspect-ratio:16/9}
.video video{width:100%;height:100%;display:block;object-fit:contain}

.grownups{background:var(--mint)}
.big{font-size:1.35rem;text-align:center;max-width:46ch;margin:0 auto 30px}
.uses{list-style:none;padding:0;margin:0 0 34px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.uses li{background:#fff;border:4px solid var(--uc);border-radius:22px;padding:14px 18px}
.uses strong{display:block;font-family:var(--head);font-weight:400;font-size:1.2rem;color:var(--uc)}
.uses span{font-size:1.02rem}
.u1{--uc:var(--pink)}.u2{--uc:var(--blue)}.u3{--uc:var(--green)}.u4{--uc:var(--orange)}.u5{--uc:var(--purple)}
.promise{background:#fff;border:4px dashed var(--green);border-radius:26px;padding:22px 26px;text-align:center}
.promise h3{font-family:var(--head);font-weight:400;font-size:1.5rem;margin:0 0 6px;color:var(--green)}
.promise p{margin:0}
.hello{text-align:center;font-size:1.3rem;margin:32px 0 0;font-weight:800}
.hello a{color:var(--pink)}

/* ---------- Footer ---------- */
.foot{background:var(--navy);color:#fff;text-align:center;margin-top:-52px;border-radius:52px 52px 0 0;position:relative;padding-bottom:36px;overflow:hidden}
.foot .rainbow{margin-bottom:34px}
.foot-logo{width:min(340px,80%);margin:0 auto 14px}
.foot p{margin:6px 0}
.foot a{color:var(--yellow)}

/* ---------- Now playing ---------- */
.np{position:fixed;left:50%;bottom:12px;transform:translateX(-50%);z-index:60;width:min(760px,calc(100% - 20px));display:flex;align-items:center;gap:14px;background:#fff;color:var(--ink);padding:10px 14px;border:5px solid var(--ink);border-radius:26px;box-shadow:0 0 0 5px var(--yellow),0 14px 40px rgba(0,0,0,.45)}
.np img{width:52px;height:72px;object-fit:cover;border-radius:12px;flex:none}
.np-main{flex:1;min-width:0}
.np-title{font-family:var(--head);font-size:1.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.np-row{display:flex;align-items:center;gap:12px}
.np-btn{flex:none;width:52px;height:52px;display:grid;place-items:center;color:#fff;background:var(--pink);border:4px solid var(--ink);border-radius:50%;cursor:pointer}
.np-time{font-weight:800;font-variant-numeric:tabular-nums;min-width:3.2em;text-align:right}
.np-close{flex:none;font:inherit;font-weight:800;color:var(--ink);background:#fff;border:3px solid var(--ink);border-radius:999px;padding:10px 16px;min-height:48px;cursor:pointer}
#np-seek{flex:1;min-width:0;height:34px;accent-color:var(--pink)}

/* ---------- Surprise pop-up ---------- */
.peeker{position:fixed;bottom:0;left:50%;z-index:70;width:clamp(150px,22vw,230px);pointer-events:none;visibility:hidden;transform:translate(-50%,105%);transition:transform .35s cubic-bezier(.3,1.6,.5,1),visibility 0s .4s}
.peeker.up{visibility:visible;transform:translate(-50%,6%);transition-delay:0s}
.peeker img{border:6px solid var(--yellow);border-bottom:0;border-radius:34px 34px 0 0;box-shadow:0 0 0 4px var(--ink)}
.peeker .boo{position:absolute;left:50%;bottom:100%;width:max-content;max-width:min(260px,90vw);transform:translateX(-50%) rotate(-3deg);margin:0 0 -6px;text-align:center;line-height:1.05;font-family:var(--head);font-size:1.35rem;color:var(--yellow);-webkit-text-stroke:.14em var(--ink);paint-order:stroke fill}

/* ---------- Scroll reveal (only when JS is on) ---------- */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .5s ease,transform .5s ease}
.js .reveal.in{opacity:1;transform:none}

/* ---------- Privacy page ---------- */
.doc{background:var(--cream);padding:56px 0 90px}
.doc .wrap{max-width:820px}
.doc h1{font-family:var(--head);font-weight:400;font-size:clamp(2.2rem,6vw,3.4rem);margin:0 0 6px;color:var(--purple)}
.doc h2{font-family:var(--head);font-weight:400;font-size:1.6rem;margin:34px 0 8px;color:var(--pink)}
.doc .updated{font-weight:800;color:#4a3c8f;margin:0 0 24px}
.doc ul{padding-left:1.2em}
.doc li{margin:6px 0}
.doc .back{display:inline-block;margin-bottom:24px;font-weight:800}

.doc.center{text-align:center}
.doc .buddy{width:min(240px,60%);margin:0 auto 14px;border:6px solid var(--yellow);border-radius:34px;box-shadow:0 0 0 4px var(--ink)}
.doc .big{margin:0 auto 24px}

/* ---------- Responsive ---------- */
@media (max-width:1050px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){
  .hero{padding-bottom:48px}
  .lead{font-size:1.4rem}
  .songs-grid{grid-template-columns:1fr}
  .album{position:static;max-width:340px;margin:0 auto}
}
@media (max-width:700px){
  .top{position:static;flex-direction:column;gap:6px;padding:8px 12px 14px}
  .brand img{height:62px;margin:-2px 0}
  .top nav{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:420px}
  .top nav a{padding:10px 8px;font-size:1rem;text-align:center}
  .hero-body{padding-top:24px}
  html{scroll-padding-top:12px}
  .cards{grid-template-columns:1fr;max-width:440px;margin-inline:auto}
  .track{grid-template-columns:52px 1fr;gap:12px}
  .track img{width:52px;height:72px}
  .track .play{grid-column:1 / -1;width:100%}
  .btn{width:100%}
  .np{gap:10px;padding:10px 12px}
  .np img{display:none}
  .np-time{display:none}
  .np-close{padding:8px 14px}
  .float{font-size:1.8rem;opacity:.55}
  .f1,.f2,.f6{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .float,.track.playing,.title::before,.title::after{animation:none}
  .js .reveal{opacity:1;transform:none;transition:none}
  .peeker{transition:opacity .2s,visibility 0s .2s;opacity:0}
  .peeker.up{opacity:1;transform:translate(-50%,6%);transition-delay:0s}
  .bubble{transition:none}
}
