/* TERRAINVITE · Birthday 05 · Play Planet */
.birthday-play-planet{
  --bpp-cream:#FFF8E8;--bpp-cream2:#FFF4D9;--bpp-ink:#27304A;--bpp-coral:#FF5D73;
  --bpp-yellow:#FFB72B;--bpp-mint:#5CCB9B;--bpp-blue:#56A8FF;--bpp-purple:#8D6BE8;
  --bpp-orange:#FF8A3D;--bpp-aqua:#63D6D0;--bpp-white:#fff;--bpp-muted:#69738F;
  background:var(--bpp-cream);color:var(--bpp-ink);font-family:"Noto Sans","DM Sans",sans-serif;overflow:hidden;
}
.birthday-play-planet *{box-sizing:border-box}
.birthday-play-planet .invite-body{background:var(--bpp-cream);color:var(--bpp-ink);overflow:hidden}
.birthday-play-planet .bpp-decor{display:block;pointer-events:none;user-select:none}
.birthday-play-planet h1,.birthday-play-planet h2,.birthday-play-planet strong{font-family:"Rubik Mono One","Noto Sans",sans-serif}
.birthday-play-planet .bpp-kicker,.birthday-play-planet .bpp-eyebrow,.birthday-play-planet .bpp-final-system,.birthday-play-planet .bpp-station-index{
  font-family:"Noto Sans",sans-serif;font-weight:800;letter-spacing:.12em;text-transform:uppercase
}

/* HERO */
.bpp-hero{position:relative;min-height:100svh;isolation:isolate;overflow:hidden;background:
  radial-gradient(circle at 76% 18%,rgba(255,183,43,.26),transparent 24%),
  radial-gradient(circle at 14% 38%,rgba(86,168,255,.22),transparent 28%),
  linear-gradient(180deg,#EAF7FF 0 53%,#FFF4D9 53% 100%)}
.bpp-hero-sky{position:absolute;inset:0;z-index:-6;background-image:
  linear-gradient(rgba(39,48,74,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(39,48,74,.035) 1px,transparent 1px);background-size:46px 46px;mask-image:linear-gradient(180deg,#000 0 72%,transparent)}
.bpp-playground{position:absolute;z-index:-4;left:-7vw;bottom:-3vw;width:min(1060px,96vw);opacity:.95;filter:drop-shadow(0 16px 30px rgba(39,48,74,.06))}
.bpp-clouds{position:absolute;z-index:-5;top:2vh;right:-8vw;width:min(560px,58vw);opacity:.72}
.bpp-stars{position:absolute;z-index:-2;top:10vh;left:42%;width:340px;opacity:.55;animation:bpp-float-stars 7s ease-in-out infinite}
.bpp-confetti{position:absolute;z-index:-2;inset:7vh 6vw auto auto;width:330px;opacity:.42;animation:bpp-confetti-float 9s ease-in-out infinite}
.bpp-hero-shell{position:relative;width:min(1180px,calc(100% - 48px));min-height:100svh;margin:auto;display:grid;grid-template-columns:minmax(0,.9fr) minmax(380px,.78fr);align-items:center;gap:clamp(34px,6vw,84px);padding:70px 0 78px}
.bpp-hero-copy{position:relative;z-index:5;min-width:0;padding:24px 0}
.bpp-eyebrow{display:inline-flex;align-items:center;min-height:36px;padding:8px 14px;border:3px solid var(--bpp-ink);border-radius:999px;background:#fff;box-shadow:5px 5px 0 var(--bpp-yellow);font-size:10px;line-height:1.15;color:var(--bpp-ink)}
.bpp-name{margin:20px 0 12px;font-family:"Rubik Mono One","Noto Sans",sans-serif!important;font-weight:400;font-size:clamp(62px,8.4vw,112px);line-height:.88;letter-spacing:-.055em;text-transform:uppercase;max-width:10ch;overflow-wrap:normal;word-break:normal;color:var(--bpp-ink);text-shadow:6px 6px 0 #fff}
.bpp-name-medium{font-size:clamp(54px,7.2vw,96px);max-width:11.2ch}.bpp-name-compact{font-size:clamp(46px,6.2vw,82px);max-width:12.5ch}.bpp-name-tight{font-size:clamp(38px,5.3vw,68px);max-width:14ch}
.bpp-age-badge{display:inline-grid;grid-template-columns:auto auto;align-items:center;gap:8px;padding:10px 16px 11px;border:4px solid var(--bpp-ink);border-radius:26px 26px 10px 26px;background:var(--bpp-coral);color:#fff;box-shadow:7px 7px 0 var(--bpp-ink);transform:rotate(-2deg)}
.bpp-age-badge strong{font-size:42px;line-height:.9;color:#fff}.bpp-age-badge span{font-weight:900;font-size:11px;letter-spacing:.1em}
.bpp-hero-text{max-width:570px;margin:24px 0 0;font-size:15px;line-height:1.75;color:#46516d;font-weight:600}
.bpp-hero-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.bpp-hero-meta>*{display:inline-flex;align-items:center;min-height:34px;padding:7px 11px;border:2px solid rgba(39,48,74,.18);border-radius:999px;background:rgba(255,255,255,.8);font-size:10px;color:var(--bpp-ink)}
.bpp-hero-meta strong{font-family:"Noto Sans",sans-serif}
.bpp-photo-stage{position:relative;justify-self:end;width:min(480px,100%);aspect-ratio:.86;z-index:3}
.bpp-photo-arch{position:absolute;inset:0 8% 12%;overflow:hidden;border:10px solid #fff;border-radius:48% 48% 30px 30px;background:#DDF7EF;box-shadow:0 25px 60px rgba(39,48,74,.16),10px 10px 0 var(--bpp-blue);outline:4px solid var(--bpp-ink);outline-offset:-2px}
.bpp-photo-arch img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top;transform-origin:center}.bpp-photo-placeholder{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(160deg,#8ED9CA,#56A8FF);color:#fff;font:400 130px/1 "Rubik Mono One","Noto Sans",sans-serif}
.bpp-hero-ballpit{position:absolute;z-index:4;left:-5%;bottom:-1%;width:72%;filter:drop-shadow(0 14px 12px rgba(39,48,74,.12))}
.bpp-hero-trampoline{position:absolute;z-index:4;right:-12%;bottom:5%;width:42%;transform:rotate(5deg);animation:bpp-trampoline 6.8s ease-in-out infinite}
.bpp-floating-ball{position:absolute;z-index:5;width:20px;height:20px;border:4px solid var(--bpp-ink);border-radius:50%;box-shadow:3px 3px 0 #fff}.bpp-ball-a{right:4%;top:24%;background:var(--bpp-yellow);animation:bpp-ball-float 6.4s ease-in-out infinite}.bpp-ball-b{left:3%;top:39%;width:16px;height:16px;background:var(--bpp-purple);animation:bpp-ball-float 7.2s .9s ease-in-out infinite reverse}
.bpp-chevron{position:absolute;z-index:8;left:50%;bottom:max(22px,env(safe-area-inset-bottom));transform:translateX(-50%);color:var(--bpp-ink)}

/* shared sections */
.bpp-section{position:relative;padding:84px 22px;background:var(--bpp-cream)}
.bpp-section:nth-of-type(even){background:var(--bpp-cream2)}
.bpp-section-title{width:min(980px,100%);margin:0 auto 30px;text-align:center}.bpp-section-title h2{margin:8px 0 0;font-size:clamp(32px,6vw,62px);line-height:.98;letter-spacing:-.045em}.bpp-kicker{display:block;font-size:10px;color:var(--bpp-coral)}
.bpp-reveal{--reveal-delay:0ms}
.bpp-reveal.ti-pending{opacity:0;transform:translateY(16px);transition:opacity .65s cubic-bezier(.22,.75,.2,1) var(--reveal-delay),transform .65s cubic-bezier(.22,.75,.2,1) var(--reveal-delay)}
.bpp-reveal.is-visible{opacity:1;transform:none}

/* invitation ticket */
.bpp-intro{padding-top:96px;padding-bottom:96px}
.bpp-ticket{position:relative;width:min(970px,100%);min-height:330px;margin:auto;padding:48px 44px;display:grid;grid-template-columns:1fr 210px;align-items:center;gap:26px;border:4px solid var(--bpp-ink);border-radius:40px 18px 40px 18px;background:#fff;box-shadow:14px 14px 0 var(--bpp-blue);overflow:hidden}
.bpp-ticket:before,.bpp-ticket:after{content:"";position:absolute;top:50%;width:38px;height:38px;border:4px solid var(--bpp-ink);border-radius:50%;background:var(--bpp-cream);transform:translateY(-50%)}.bpp-ticket:before{left:-23px}.bpp-ticket:after{right:-23px}
.bpp-ticket-art{position:absolute;right:-40px;top:-25px;width:330px;opacity:.12;transform:rotate(7deg)}
.bpp-ticket-copy{position:relative;z-index:2;max-width:650px}.bpp-ticket-copy h2{margin:10px 0 16px;font-size:clamp(32px,5vw,58px);line-height:.98}.bpp-ticket-copy p{margin:0;max-width:620px;font-size:16px;line-height:1.8;color:#566079}.bpp-ticket-copy small{display:inline-flex;margin-top:22px;padding:8px 12px;border-radius:999px;background:var(--bpp-mint);font-size:9px;font-weight:900;letter-spacing:.12em}
.bpp-ticket-wristband{position:relative;z-index:2;width:190px;justify-self:end;transform:rotate(7deg)}
.bpp-ticket-reveal.ti-pending{clip-path:inset(0 50% 0 50% round 40px);opacity:.6;transform:none}.bpp-ticket-reveal.is-visible{clip-path:inset(0 0 0 0 round 40px);transition:clip-path .8s cubic-bezier(.2,.8,.2,1),opacity .45s}

/* date */
.bpp-date-ticket{width:min(930px,100%);margin:auto;padding:42px 46px;border:4px solid var(--bpp-ink);border-radius:34px;background:var(--bpp-yellow);box-shadow:12px 12px 0 #fff;position:relative;overflow:hidden}
.bpp-date-ticket:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 0 50%,var(--bpp-cream) 0 18px,transparent 19px),radial-gradient(circle at 100% 50%,var(--bpp-cream) 0 18px,transparent 19px);pointer-events:none}
.bpp-date-grid{display:grid;grid-template-columns:1.2fr .55fr .8fr;align-items:end;gap:18px;margin-top:18px}.bpp-date-day{display:flex;align-items:flex-end;gap:16px}.bpp-date-day strong{font-size:clamp(84px,13vw,150px);line-height:.75}.bpp-date-day span{font-size:clamp(24px,4vw,42px);font-weight:900;text-transform:uppercase;line-height:1}.bpp-date-year{align-self:center;font:900 clamp(24px,4vw,42px)/1 "Noto Sans",sans-serif;writing-mode:vertical-rl;transform:rotate(180deg);opacity:.72}.bpp-date-time{padding:24px;border:3px solid var(--bpp-ink);border-radius:30px;background:#fff;text-align:center}.bpp-date-time small{display:block;font-size:9px;font-weight:900;letter-spacing:.12em}.bpp-date-time strong{display:block;margin-top:5px;font-size:clamp(34px,5vw,54px)}

/* countdown soft play */
.bpp-countdown-section{background:#EAF7FF!important;overflow:hidden}.bpp-countdown-wrap{position:relative;width:min(1040px,100%);margin:auto;padding:50px 28px 60px}.bpp-countdown-heading{text-align:center;margin-bottom:28px;font:900 clamp(24px,4vw,42px)/1.1 "Rubik Mono One","Noto Sans",sans-serif}
.bpp-countdown-wrap .countdown{position:relative;z-index:3;width:min(880px,100%);margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.bpp-countdown-wrap .countdown div{min-height:170px;padding:22px 10px;display:grid;place-content:center;text-align:center;border:4px solid var(--bpp-ink);background:#fff!important;box-shadow:8px 8px 0 rgba(39,48,74,.12)}
.bpp-countdown-wrap .countdown div:nth-child(1){border-radius:42px 42px 16px 16px;background:#FFDCE2!important}.bpp-countdown-wrap .countdown div:nth-child(2){border-radius:50%;background:#FFF0B9!important}.bpp-countdown-wrap .countdown div:nth-child(3){border-radius:20px 50px 20px 50px;background:#DDF7EF!important}.bpp-countdown-wrap .countdown div:nth-child(4){border-radius:34px;background:#E9E1FF!important}
.bpp-countdown-wrap .countdown strong{font-size:clamp(44px,6vw,68px);line-height:.9}.bpp-countdown-wrap .countdown span{margin-top:8px;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.bpp-countdown-wrap.is-visible .countdown div{animation:bpp-soft-pop .62s cubic-bezier(.2,1.45,.35,1) both}.bpp-countdown-wrap.is-visible .countdown div:nth-child(2){animation-delay:.07s}.bpp-countdown-wrap.is-visible .countdown div:nth-child(3){animation-delay:.14s}.bpp-countdown-wrap.is-visible .countdown div:nth-child(4){animation-delay:.21s}
.bpp-countdown-slide{position:absolute;z-index:1;left:-55px;bottom:-22px;width:210px;opacity:.86;transform:rotate(-8deg)}.bpp-countdown-blocks{position:absolute;z-index:1;right:-32px;bottom:-25px;width:250px;opacity:.86}

/* location */
.bpp-venue{background:#DDF7EF!important}.bpp-map-card{width:min(1020px,100%);margin:auto;display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1fr);gap:44px;align-items:center;padding:32px;border:4px solid var(--bpp-ink);border-radius:50px;background:#fff;box-shadow:14px 14px 0 var(--bpp-mint)}
.bpp-map-visual{position:relative;padding:10px}.bpp-map-visual:after{content:"";position:absolute;width:24px;height:24px;border-radius:50% 50% 50% 0;background:var(--bpp-coral);left:53%;top:41%;transform:rotate(-45deg);box-shadow:0 0 0 6px #fff,0 0 0 10px var(--bpp-ink)}.bpp-map-visual img{width:100%}
.bpp-map-copy h2{margin:10px 0 13px;font-size:clamp(36px,5.5vw,66px);line-height:.96}.bpp-map-copy p{margin:0;color:#59637b;font-size:15px;line-height:1.7}.bpp-button{display:inline-flex;align-items:center;gap:9px;margin-top:20px;padding:13px 18px;border:3px solid var(--bpp-ink);border-radius:999px;background:var(--bpp-blue);color:#fff;text-decoration:none;font-weight:900;box-shadow:5px 5px 0 var(--bpp-ink);transition:transform .2s ease,box-shadow .2s ease}.bpp-button:hover{transform:translateY(-2px);box-shadow:7px 7px 0 var(--bpp-ink)}.bpp-button:active{transform:scale(.98)}

/* program route */
.bpp-program{background:#FFF8E8!important}.bpp-program-shell{width:min(980px,100%);margin:auto}.bpp-route{position:relative;min-height:620px;margin-top:18px;padding:20px 0}.bpp-route-line{position:absolute;left:50%;top:0;width:120px;height:100%;transform:translateX(-50%);overflow:visible}.bpp-route-track,.bpp-route-draw{fill:none;stroke-linecap:round;stroke-width:8}.bpp-route-track{stroke:#DCEBFA;stroke-dasharray:1 20}.bpp-route-draw{stroke:var(--bpp-blue);stroke-dasharray:1200;stroke-dashoffset:1200}.bpp-route.is-visible .bpp-route-draw{animation:bpp-route-draw 1.8s cubic-bezier(.2,.8,.2,1) .2s forwards}
.bpp-stations{position:relative;z-index:2;display:grid;gap:22px}.bpp-station{position:relative;width:44%;min-height:128px;padding:22px 118px 20px 22px;border:4px solid var(--bpp-ink);border-radius:30px;background:#fff;box-shadow:7px 7px 0 rgba(39,48,74,.1)}.bpp-station:nth-child(even){justify-self:end;padding:22px 22px 20px 118px}.bpp-station:nth-child(4n+1){background:#FFDCE2}.bpp-station:nth-child(4n+2){background:#FFF0B9}.bpp-station:nth-child(4n+3){background:#DDF7EF}.bpp-station:nth-child(4n+4){background:#E9E1FF}.bpp-station-index{display:block;font-size:8px;color:#6B7590}.bpp-station strong{display:block;margin:8px 0 5px;font-size:24px}.bpp-station p{margin:0;font-weight:800;line-height:1.35}.bpp-station .bpp-decor{position:absolute;right:12px;bottom:8px;width:98px;height:86px;object-fit:contain}.bpp-station:nth-child(even) .bpp-decor{left:12px;right:auto}

/* gallery play windows — V18 robust direct-media layout */
.bpp-gallery{background:#EAF7FF!important}
.bpp-gallery-shell{width:min(1060px,100%);margin-inline:auto;min-width:0}
.bpp-gallery-grid{width:100%;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start;justify-items:stretch}
.bpp-window{position:relative;display:block;width:100%;min-width:0;min-height:0;margin:0;overflow:hidden;border:5px solid var(--bpp-ink);background:#fff;box-shadow:9px 9px 0 rgba(39,48,74,.1);isolation:isolate}
.bpp-window>img{display:block;width:100%;max-width:none;height:auto;min-height:0;object-fit:cover;object-position:center top}
.bpp-gallery-1{grid-template-columns:minmax(0,1fr);max-width:780px;margin-inline:auto}.bpp-gallery-1 .bpp-window{border-radius:48% 48% 34px 34px}
.bpp-gallery-2 .bpp-window-1{border-radius:48% 48% 28px 28px}.bpp-gallery-2 .bpp-window-2{border-radius:34px 34px 48% 48%}
.bpp-gallery-3 .bpp-window-1{grid-column:1/-1;width:min(760px,100%);justify-self:center;border-radius:48% 48% 32px 32px}.bpp-gallery-3 .bpp-window-2{border-radius:28px 70px 28px 28px}.bpp-gallery-3 .bpp-window-3{border-radius:28px 28px 70px 28px}
.bpp-gallery-4 .bpp-window-1{border-radius:48% 48% 28px 28px}.bpp-gallery-4 .bpp-window-2{border-radius:28px 72px 28px 28px}.bpp-gallery-4 .bpp-window-3{border-radius:28px 28px 28px 72px}.bpp-gallery-4 .bpp-window-4{border-radius:32px}
/* Play Planet intentionally uses figure > img so the shared TERRAINVITE gallery-orientation system can detect portrait/landscape/square media. */
/* hosts / dress / contact */
.bpp-hosts{background:#FFF4D9!important}.bpp-hosts-card,.bpp-dress-card,.bpp-contact-card{position:relative;width:min(820px,100%);margin:auto;padding:44px 34px;text-align:center;border:4px solid var(--bpp-ink);border-radius:42px;background:#fff;box-shadow:10px 10px 0 var(--bpp-yellow);overflow:hidden}.bpp-hosts-card h2,.bpp-dress-card h2,.bpp-contact-card h2{margin:10px 0 0;font-size:clamp(32px,5vw,56px);line-height:1}.bpp-hosts-hat{position:absolute;left:-15px;bottom:-24px;width:120px;transform:rotate(-10deg)}.bpp-hosts-stars{position:absolute;right:-25px;top:-14px;width:170px;opacity:.55}.bpp-dress-card{background:#DDF7EF;box-shadow:10px 10px 0 var(--bpp-mint)}.bpp-dress-card p{margin:16px auto 0;max-width:620px;line-height:1.75;color:#556079}.bpp-dress-icon{width:140px;margin:0 auto 18px}.bpp-contact-card{background:#E9E1FF;box-shadow:10px 10px 0 var(--bpp-purple)}.bpp-contact-card a,.bpp-contact-card p{display:inline-block;margin-top:18px;color:var(--bpp-ink);font-weight:900;font-size:clamp(19px,3vw,28px);text-decoration:none}

/* final */
.bpp-final{position:relative;min-height:86svh;display:grid;place-items:center;padding:72px 22px;overflow:hidden;background:linear-gradient(180deg,#FFF4D9,#EAF7FF)}
.bpp-final-inner{position:relative;z-index:3;width:min(900px,100%);text-align:center;padding:70px 22px 110px}.bpp-final-system{display:inline-block;padding:8px 13px;border:3px solid var(--bpp-ink);border-radius:999px;background:#fff;font-size:9px;box-shadow:4px 4px 0 var(--bpp-yellow)}.bpp-final-accent{display:block;margin:24px 0 0;font-size:clamp(32px,6vw,60px);color:var(--bpp-coral)}.bpp-final-inner h2{margin:16px auto 0;max-width:14ch;font-size:clamp(32px,6vw,66px);line-height:1}.bpp-final-inner .bpp-name{margin:26px auto 0;max-width:none;text-align:center;font-size:clamp(44px,7vw,82px);text-shadow:5px 5px 0 #fff}.bpp-final-maze{position:absolute;z-index:-2;left:50%;bottom:-90px;width:min(980px,120vw);transform:translateX(-50%);opacity:.18}.bpp-final-slide{position:absolute;z-index:-1;right:-35px;bottom:10px;width:220px;opacity:.7}.bpp-final-confetti{position:absolute;z-index:-1;left:50%;top:6%;width:min(600px,90vw);transform:translateX(-50%);opacity:.55;animation:bpp-confetti-float 8s ease-in-out infinite}

/* motion */
@keyframes bpp-float-stars{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(8px) rotate(2deg)}}
@keyframes bpp-confetti-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(8px) rotate(1deg)}}
@keyframes bpp-trampoline{0%,100%{transform:rotate(5deg) scale(1)}50%{transform:rotate(5deg) scale(1.025)}}
@keyframes bpp-ball-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes bpp-soft-pop{0%{opacity:0;transform:scale(.9) translateY(8px)}70%{transform:scale(1.025)}100%{opacity:1;transform:none}}
@keyframes bpp-route-draw{to{stroke-dashoffset:0}}

/* desktop medium */
@media(max-width:980px){
  .bpp-hero-shell{grid-template-columns:1fr;gap:22px;padding:38px 0 70px}.bpp-photo-stage{order:1;justify-self:center;width:min(520px,88vw);aspect-ratio:1.02}.bpp-hero-copy{order:2;text-align:center}.bpp-name{max-width:none;margin-inline:auto}.bpp-age-badge{margin-inline:auto}.bpp-hero-meta{justify-content:center}.bpp-hero-text{margin-inline:auto}.bpp-playground{width:115vw;left:-28vw;opacity:.56}.bpp-map-card{grid-template-columns:1fr}.bpp-map-visual{max-width:520px;margin:auto}.bpp-map-copy{text-align:center}.bpp-ticket{grid-template-columns:1fr}.bpp-ticket-wristband{position:absolute;right:24px;bottom:18px;width:150px;opacity:.35}.bpp-date-grid{grid-template-columns:1fr 1fr}.bpp-date-time{grid-column:1/-1}.bpp-date-year{writing-mode:horizontal-tb;transform:none;align-self:end;text-align:right}.bpp-countdown-wrap .countdown{grid-template-columns:repeat(2,1fr);max-width:560px}
}

/* mobile first target 390 */
@media(max-width:640px){
  .bpp-hero{min-height:auto}.bpp-hero-shell{width:calc(100% - 24px);min-height:100svh;padding:18px 0 64px;gap:14px;align-content:start}.bpp-photo-stage{width:100%;height:min(47svh,410px);aspect-ratio:auto}.bpp-photo-arch{inset:0 6% 12%;border-width:7px;border-radius:46% 46% 24px 24px;outline-width:3px;box-shadow:8px 8px 0 var(--bpp-blue),0 18px 36px rgba(39,48,74,.14)}.bpp-hero-ballpit{left:-2%;bottom:-3%;width:70%}.bpp-hero-trampoline{right:-7%;bottom:4%;width:38%}.bpp-clouds{width:75vw;right:-20vw}.bpp-stars{top:7vh;left:-8vw;width:220px}.bpp-confetti{top:14vh;right:-30vw;width:270px}.bpp-playground{width:150vw;left:-55vw;bottom:25vh;opacity:.28}.bpp-hero-copy{padding:0 5px;text-align:left}.bpp-eyebrow{font-size:8px;padding:7px 10px;box-shadow:4px 4px 0 var(--bpp-yellow)}.bpp-name{font-size:clamp(40px,12.6vw,60px);line-height:.93;max-width:none;margin:15px 0 10px;text-shadow:4px 4px 0 #fff}.bpp-name-medium{font-size:clamp(36px,11vw,52px)}.bpp-name-compact{font-size:clamp(31px,9.8vw,46px)}.bpp-name-tight{font-size:clamp(26px,8.1vw,38px)}.bpp-age-badge{padding:8px 12px;border-width:3px;box-shadow:5px 5px 0 var(--bpp-ink)}.bpp-age-badge strong{font-size:32px}.bpp-age-badge span{font-size:9px}.bpp-hero-text{font-size:13px;line-height:1.65;margin-top:16px}.bpp-hero-meta{justify-content:flex-start;margin-top:12px}.bpp-hero-meta>*{min-height:30px;font-size:8.5px;padding:6px 9px}
  .bpp-section{padding:58px 14px}.bpp-section-title{margin-bottom:20px}.bpp-section-title h2{font-size:clamp(28px,8vw,38px)}
  .bpp-ticket{min-height:0;padding:28px 20px 92px;border-width:3px;border-radius:28px 14px 28px 14px;box-shadow:8px 8px 0 var(--bpp-blue)}.bpp-ticket-copy h2{font-size:clamp(27px,8vw,38px)}.bpp-ticket-copy p{font-size:14px;line-height:1.7}.bpp-ticket-wristband{right:10px;bottom:8px;width:130px}.bpp-ticket-art{width:240px}.bpp-ticket-copy small{font-size:8px}
  .bpp-date-ticket{padding:28px 20px;border-width:3px;border-radius:28px;box-shadow:8px 8px 0 #fff}.bpp-date-grid{grid-template-columns:1fr auto;gap:12px}.bpp-date-day{gap:10px}.bpp-date-day strong{font-size:clamp(68px,20vw,92px)}.bpp-date-day span{font-size:clamp(20px,6vw,28px);max-width:7ch}.bpp-date-year{font-size:22px}.bpp-date-time{grid-column:1/-1;padding:18px;border-width:3px}.bpp-date-time strong{font-size:38px}
  .bpp-countdown-wrap{padding:32px 0 40px}.bpp-countdown-heading{font-size:clamp(21px,6.5vw,30px);margin-bottom:20px}.bpp-countdown-wrap .countdown{grid-template-columns:1fr 1fr;gap:10px;width:min(350px,100%)}.bpp-countdown-wrap .countdown div{min-height:136px;border-width:3px;box-shadow:6px 6px 0 rgba(39,48,74,.1)}.bpp-countdown-wrap .countdown strong{font-size:clamp(36px,11vw,48px)}.bpp-countdown-wrap .countdown span{font-size:8px}.bpp-countdown-slide{width:130px;left:-40px;bottom:-8px;opacity:.52}.bpp-countdown-blocks{width:150px;right:-45px;bottom:-10px;opacity:.52}
  .bpp-map-card{padding:18px;border-width:3px;border-radius:30px;box-shadow:8px 8px 0 var(--bpp-mint);gap:18px}.bpp-map-visual{padding:0}.bpp-map-copy h2{font-size:clamp(30px,9vw,42px)}.bpp-map-copy p{font-size:13px}.bpp-button{font-size:12px;border-width:3px}
  .bpp-route{min-height:0;padding:8px 0}.bpp-route-line{left:28px;width:56px}.bpp-stations{gap:16px}.bpp-station,.bpp-station:nth-child(even){width:calc(100% - 56px);justify-self:end;padding:18px 82px 18px 18px;min-height:108px;border-width:3px;border-radius:24px}.bpp-station:nth-child(even){padding:18px 18px 18px 82px}.bpp-station strong{font-size:20px}.bpp-station p{font-size:13px}.bpp-station .bpp-decor{width:70px;height:65px}.bpp-station-index{font-size:7px}
  .bpp-gallery-shell{width:100%;min-width:0}.bpp-gallery-grid,.bpp-gallery-1,.bpp-gallery-2,.bpp-gallery-3,.bpp-gallery-4{width:100%;max-width:none;grid-template-columns:minmax(0,1fr);grid-template-rows:auto;gap:12px;margin:0}.bpp-gallery-grid .bpp-window,.bpp-gallery-3 .bpp-window-1{grid-column:1/-1;grid-row:auto;width:100%;max-width:100%;min-width:0;min-height:0;justify-self:stretch;border-width:4px;box-shadow:7px 7px 0 rgba(39,48,74,.09)}.bpp-gallery-grid .bpp-window:nth-child(1){border-radius:46% 46% 24px 24px}.bpp-gallery-grid .bpp-window:nth-child(2){border-radius:28px 64px 28px 28px}.bpp-gallery-grid .bpp-window:nth-child(3){border-radius:28px 28px 64px 28px}.bpp-gallery-grid .bpp-window:nth-child(4){border-radius:30px}.bpp-gallery-grid .bpp-window>img{width:100%;max-width:none;min-width:0;display:block}
  .bpp-hosts-card,.bpp-dress-card,.bpp-contact-card{padding:32px 20px;border-width:3px;border-radius:28px;box-shadow:8px 8px 0 var(--bpp-yellow)}.bpp-dress-card{box-shadow:8px 8px 0 var(--bpp-mint)}.bpp-contact-card{box-shadow:8px 8px 0 var(--bpp-purple)}.bpp-hosts-card h2,.bpp-dress-card h2,.bpp-contact-card h2{font-size:clamp(28px,8vw,38px)}.bpp-hosts-hat{width:88px}.bpp-hosts-stars{width:120px}.bpp-dress-icon{width:110px}
  .bpp-final{min-height:78svh;padding:50px 14px}.bpp-final-inner{padding:54px 5px 95px}.bpp-final-accent{font-size:clamp(28px,8vw,42px)}.bpp-final-inner h2{font-size:clamp(28px,8vw,42px)}.bpp-final-inner .bpp-name{font-size:clamp(34px,9.5vw,48px);text-shadow:4px 4px 0 #fff}.bpp-final-slide{width:150px;right:-50px}.bpp-final-maze{width:150vw}.bpp-final-confetti{width:95vw}
}
@media(max-width:390px){.bpp-name{font-size:clamp(36px,12vw,50px)}.bpp-name-medium{font-size:clamp(32px,10.4vw,44px)}.bpp-name-compact{font-size:clamp(28px,9.1vw,38px)}.bpp-name-tight{font-size:clamp(24px,7.6vw,32px)}.bpp-station,.bpp-station:nth-child(even){width:calc(100% - 46px)}}

@media(prefers-reduced-motion:reduce){
  .birthday-play-planet *{scroll-behavior:auto!important}
  .bpp-stars,.bpp-confetti,.bpp-hero-trampoline,.bpp-floating-ball,.bpp-final-confetti,.bpp-countdown-wrap.is-visible .countdown div,.bpp-route.is-visible .bpp-route-draw{animation:none!important}
  .bpp-route-draw{stroke-dashoffset:0!important}
  .birthday-play-planet .bpp-reveal,.birthday-play-planet .bpp-reveal.ti-pending,.birthday-play-planet .bpp-ticket-reveal.ti-pending{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}
}
