@font-face{font-family:Lilita;src:url('assets/lilita-one.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Fredoka;src:url('assets/fredoka-medium.ttf') format('truetype');font-weight:500;font-display:swap}
:root{--ink:#29254a;--paper:#fff9ef;--coral:#ed5747;--yellow:#ffda50;--purple:#7753ad;--pink:#f8bad2;--blue:#d6eff8;--night:#252142;--heading:Lilita,'Arial Rounded MT Bold',sans-serif;--body:Fredoka,'Trebuchet MS',sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--paper);color:var(--ink);font:500 18px/1.5 var(--body);-webkit-font-smoothing:antialiased;overflow-x:clip}
main{overflow-x:clip}
body,h1,h2,h3,p,dl,dd{margin:0}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button{font:inherit;color:inherit;cursor:pointer}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto;user-select:none}
h1,h2,h3{font-family:var(--heading);font-weight:400;line-height:1.02;letter-spacing:-.015em}
h2{font-size:clamp(3.25rem,6.5vw,6.25rem)}
button:focus-visible,a:focus-visible{outline:3px solid var(--purple);outline-offset:7px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:20px;top:-100px;z-index:100;background:white;border:2px solid var(--ink);border-radius:12px;padding:12px}
.skip-link:focus{top:12px}
#celebration{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:30}
.progress{position:fixed;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--coral),var(--yellow),var(--purple));z-index:40;transform:scaleX(0);transform-origin:left}
.nav{position:fixed;inset:16px 28px auto;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:12px;pointer-events:none}
.wordmark{font:400 1.15rem/.95 var(--heading);padding:10px 14px;background:rgba(255,249,239,.93);border:1px solid #29254a12;border-radius:16px;pointer-events:auto}
.wordmark span{display:block;color:var(--coral);font-size:1.55rem}
.nav-actions{display:flex;align-items:center;gap:8px;pointer-events:auto}
.nav-link,.motion-toggle{border:1px solid #29254a25;border-radius:30px;background:rgba(255,249,239,.93);padding:12px 16px;line-height:1.2;font-size:.875rem;min-height:44px}
.nav-link{background:var(--ink);border-color:var(--ink);color:white}
.motion-toggle span{color:#6b499e}
.scene{position:relative;isolation:isolate}
.eyebrow{font-size:.875rem;letter-spacing:.14em;text-transform:uppercase;line-height:1.45}
.section-copy{font-size:1.2rem;line-height:1.5;margin-top:22px}
.hero{text-align:center;padding:126px 24px 45px;min-height:100svh;overflow:clip}
.hero>.eyebrow{color:#716b79}
.hero h1{position:relative;z-index:2;margin-top:18px}
.little{display:block;font-size:clamp(1.8rem,3.2vw,3.1rem);color:var(--purple);margin-bottom:2px}
.wonder{position:relative;display:inline-block;font-size:clamp(5.2rem,11vw,9.6rem);color:var(--coral);line-height:.98;letter-spacing:-.015em;text-shadow:0 5px 0 #f9c9b8}
.title-star{position:absolute;font-family:var(--body);font-size:.29em;right:-.7em;top:8%;color:var(--yellow);text-shadow:none;animation:star-turn 12s linear infinite}
.turning{font-size:1rem;letter-spacing:.2em;text-transform:uppercase;margin-top:20px}
.hero-stage{position:relative;height:370px;width:min(780px,100%);margin:8px auto 0}
.number-parallax{position:absolute;inset:-16px 0 0;translate:0 var(--parallax-y,0px);pointer-events:none}
.number{font:400 390px/1 var(--heading);color:var(--purple);text-shadow:7px 8px 0 #e0ccea;transform:rotate(-7deg);animation:number-pop 950ms cubic-bezier(.2,1.5,.45,1) both}
.number::before{content:'';position:absolute;z-index:-1;width:290px;height:290px;border-radius:50%;background:var(--yellow);left:50%;top:48%;transform:translate(-50%,-50%)}
.hero-friend{position:absolute;width:175px;translate:0 var(--parallax-y,0px);z-index:3;animation:friend-pop 850ms cubic-bezier(.2,1.5,.4,1) both}
.hero-friend.sunshine{top:5px;left:8%;--delay:160ms;rotate:-8deg}
.hero-friend.sparkle{top:2px;right:8%;--delay:280ms;rotate:8deg}
.hero-friend.tickle{bottom:-4px;left:0;--delay:400ms;rotate:-8deg;width:200px}
.hero-friend.bump{bottom:-3px;right:2%;--delay:520ms;rotate:9deg}
.hero-friend{animation-delay:var(--delay)}
.character{display:block;position:relative;width:100%;border:0;background:none;padding:0;line-height:1;border-radius:35%;transform-origin:center 85%}
.reaction{display:block;transform-origin:50% 80%}
.character img{width:100%;filter:drop-shadow(0 8px 1px #29254a12);transform-origin:50% 85%}
[data-friend=sunshine] img{animation:sway 4.2s ease-in-out infinite}
[data-friend=sparkle] img{animation:float 3.8s ease-in-out infinite;animation-delay:-1s}
[data-friend=tickle] img{animation:tickle-idle 5.2s ease-in-out infinite;animation-delay:-.7s}
[data-friend=bump] img{animation:bump-idle 5.7s ease-in-out infinite;animation-delay:-2s}
.character.reacting img{animation-play-state:paused}
[data-friend=sunshine].reacting .reaction{animation:happy-hop 800ms ease both}
[data-friend=sparkle].reacting .reaction{animation:twirl 950ms cubic-bezier(.3,.9,.4,1) both}
[data-friend=tickle].reacting .reaction{animation:tickle-giggle 800ms ease both}
[data-friend=bump].reacting .reaction{animation:stumble 1000ms ease both}
.speech{position:absolute;left:50%;top:-18px;translate:-50% -100%;padding:10px 14px;border-radius:16px;background:white;border:2px solid var(--ink);white-space:nowrap;font-size:.875rem;box-shadow:3px 3px 0 #29254a18;opacity:0;scale:.8;transition:opacity .16s,scale .2s;pointer-events:none;z-index:5}
.speech::after{content:'';position:absolute;width:10px;height:10px;bottom:-7px;left:46%;background:white;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);rotate:45deg}
.reacting .speech{opacity:1;scale:1}
.orbit-star{position:absolute;font-size:44px;line-height:1;color:var(--coral);animation:star-turn 18s linear infinite;pointer-events:none}
.orbit-star.one{left:27%;top:28px;color:var(--pink);font-size:34px}
.orbit-star.two{right:26%;bottom:30px}
.hero-footer{position:relative;z-index:4;margin-top:30px}
.tagline{font:400 clamp(1.65rem,3vw,2.4rem)/1.2 var(--heading)}
.tap-hint{font-size:.95rem;margin-top:10px;color:#736679}
.scroll-cue{display:inline-flex;align-items:center;gap:12px;margin-top:25px;min-height:44px;font-size:.9rem}
.scroll-cue span{display:grid;place-items:center;width:32px;height:32px;border:1px solid #29254a40;border-radius:50%;animation:cue-bob 2s ease-in-out infinite}
.paper-bits{position:absolute;inset:0;pointer-events:none;z-index:-1}
.paper-bits i{position:absolute;width:8px;height:19px;background:var(--coral);rotate:25deg;animation:paper-drift 7s ease-in-out infinite}
.paper-bits i:nth-child(1){left:8%;top:15%;background:var(--yellow)}
.paper-bits i:nth-child(2){left:21%;top:39%;height:10px;border-radius:50%;background:var(--pink);animation-delay:-1s}
.paper-bits i:nth-child(3){right:12%;top:24%;rotate:-30deg;animation-delay:-3s}
.paper-bits i:nth-child(4){left:5%;top:65%;rotate:70deg;background:#acd4ef;animation-delay:-4s}
.paper-bits i:nth-child(5){right:5%;top:68%;background:var(--purple);animation-delay:-5s}
.paper-bits i:nth-child(6){left:32%;top:82%;width:10px;height:10px;border-radius:50%;background:var(--yellow);animation-delay:-2s}
.paper-bits i:nth-child(7){right:28%;top:45%;rotate:45deg;background:var(--pink)}
.paper-bits i:nth-child(8){right:12%;top:86%;background:var(--coral);animation-delay:-6s}
.ribbon{position:relative;overflow:hidden;background:var(--yellow);padding:18px 0;z-index:4;border-block:2px solid var(--ink);rotate:-2deg;scale:1.03;margin:30px 0 -1px}
.ribbon div{display:flex;align-items:center;gap:30px;width:max-content;white-space:nowrap;font:400 1.6rem/1 var(--heading);animation:marquee 32s linear infinite}
.ribbon span{color:var(--coral);font-size:1.8rem}
.friends{text-align:center;padding:110px 24px 95px;background:var(--blue);overflow:clip}
.friends h2{margin-top:18px}
.friends h2 span{color:#367bb4}
.crew{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;max-width:1100px;margin:65px auto 0}
.friend-portrait{position:relative;padding:8px;max-width:230px;isolation:isolate;margin:0 auto}
.friend-portrait .halo{position:absolute;inset:17%;border-radius:50%;z-index:-1;background:#ffe998;rotate:10deg}
.sparkle .halo{background:#dcc6f1;border-radius:43% 56% 46% 54%;rotate:-10deg}
.tickle .halo{background:#ffcbac;border-radius:43% 51% 45% 46%}
.bump .halo{background:#a8d7f5}
.friend h3{font-size:1.35rem;margin-top:12px;line-height:1.1}
.friend p{font-size:1rem;margin-top:8px;color:#46516d}
.friends-doodle{position:absolute;right:7%;top:11%;color:#60a9d5;font-size:70px;animation:star-turn 30s linear infinite;z-index:-1}
.details{padding:110px max(24px,calc((100% - 1050px)/2));background:#f9c2d3;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;overflow:clip}
.details-heading{position:relative}
.details h2{margin-top:20px;font-size:clamp(3.4rem,5.8vw,5.8rem)}
.details h2 span{color:#aa3e68}
.details-star{display:block;font-size:60px;color:#aa3e68;margin:22px 0 0 20px;width:60px;animation:star-turn 20s linear infinite}
.invitation{position:relative;background:var(--paper);padding:38px 32px 35px;border-radius:18px;border:2px solid var(--ink);box-shadow:9px 10px 0 #b7668a;rotate:3deg}
.ticket-label{font-size:.75rem;letter-spacing:.11em;display:block;padding-bottom:22px;border-bottom:2px dashed #29254a30}
.invitation h3{font-size:2.6rem;margin:24px 0;color:#ae4367}
.invitation dl>div{padding:15px 0;border-bottom:1px solid #29254a23;display:grid;grid-template-columns:52px 1fr;gap:15px}
.invitation dt{font-size:.875rem;color:#736078}
.invitation dd{font-size:1rem;line-height:1.4}
.invitation.entered dl>div{animation:rise-in .55s ease both;animation-delay:160ms}
.invitation.entered dl>div:nth-child(2){animation-delay:260ms}
.invitation.entered dl>div:nth-child(3){animation-delay:360ms}
.invitation>p{font-size:1rem;margin-top:24px;padding-right:80px}
.ticket-stamp{position:absolute;right:22px;bottom:19px;font:400 .85rem/1.2 var(--heading);text-align:center;color:#ae4367;border:2px solid #ae4367;border-radius:50%;padding:14px 9px;rotate:-14deg}
.wish{height:190svh;background:var(--night);color:var(--paper)}
.wish-stage{position:sticky;top:0;min-height:100svh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:104px 20px 38px;overflow:clip}
.wish .eyebrow{color:#d3c2df}
.wish h2{font-size:clamp(3.2rem,5.6vw,5.5rem);margin-top:17px;position:relative;z-index:2}
.wish h2 span{color:var(--yellow)}
.wish-instruction{font-size:1rem;margin-top:20px;color:#d3c2df;line-height:1.45}
.cake{position:relative;width:260px;height:245px;margin:20px auto 0;flex-shrink:0;isolation:isolate}
.cake-glow{position:absolute;z-index:-1;inset:-80px -65px -20px;background:radial-gradient(ellipse,#f6b65328,transparent 67%);transition:opacity .7s}
.cake.all-out .cake-glow{opacity:0}
.cake-body{position:absolute;left:16px;right:16px;height:114px;bottom:29px;background:repeating-linear-gradient(90deg,#f5a9bc 0 23px,#f9bfd0 23px 46px);border:3px solid #16152d;border-radius:20px 20px 25px 25px;box-shadow:inset 0 -13px 0 #e884a230}
.icing{position:absolute;inset:-16px -3px auto;height:46px;background:#fff0cc;border:3px solid #16152d;border-radius:50% 50% 15px 15px/42% 42% 16px 16px}
.icing::after{content:'';position:absolute;top:32px;left:28px;width:17px;height:19px;border-radius:0 0 10px 10px;background:#fff0cc;box-shadow:50px -3px 0 2px #fff0cc,123px 0 0 #fff0cc}
.cake-number{display:block;font:400 60px/1 var(--heading);color:#b63565;text-align:center;position:relative;top:39px}
.cake-plate{position:absolute;bottom:18px;left:0;width:100%;height:23px;background:#baabdf;border:3px solid #16152d;border-radius:50%;z-index:-1}
.candles{position:absolute;display:flex;gap:29px;left:53px;bottom:146px;z-index:2}
.candle{position:relative;width:17px;height:50px;border:2px solid #16152d;border-radius:5px 5px 3px 3px;background:repeating-linear-gradient(-35deg,#8bd9d2 0 7px,#eafff3 7px 13px)}
.candle:nth-child(even){background:repeating-linear-gradient(-35deg,#ccb1ef 0 7px,#f9efff 7px 13px)}
.wick{position:absolute;top:-9px;left:6px;width:2px;height:8px;background:#e9d9c0}
.flame{position:absolute;bottom:57px;left:-1px;width:17px;height:29px;border-radius:65% 35% 48% 52%/70% 50% 50% 30%;background:#ffbd45;transform-origin:50% 100%;box-shadow:0 0 13px #ffc451a0,0 0 32px #ffa34b60;animation:flicker 780ms ease-in-out infinite alternate;animation-delay:calc(var(--i)*-170ms);transition:opacity .23s,scale .23s}
.flame::after{content:'';position:absolute;bottom:1px;left:5px;width:7px;height:15px;border-radius:50%;background:#fff4b1}
.candle.out .flame{opacity:0;scale:.2 0}
.smoke{position:absolute;bottom:56px;left:4px;width:10px;height:17px;border:2px solid #e1dced;border-right:0;border-bottom:0;border-radius:50%;opacity:0;pointer-events:none}
.candle.out .smoke{animation:smoke-rise 1.8s ease-out both}
.wish-status{font-size:1.05rem;min-height:1.6em;position:relative;z-index:2}
.pill{display:inline-flex;align-items:center;justify-content:center;gap:22px;border:2px solid var(--ink);border-radius:40px;padding:16px 25px;background:var(--yellow);color:var(--ink);box-shadow:0 5px 0 #151129;font-size:1.1rem;line-height:1.3;transition:transform .2s,box-shadow .2s}
.pill:hover{transform:translateY(-3px);box-shadow:0 8px 0 #151129}
.pill:active{transform:translateY(3px);box-shadow:0 2px 0 #151129}
.pill span{font-size:1.4rem;line-height:1}
.wish-button{margin-top:22px}
.wish .pill:focus-visible{outline-color:var(--yellow)}
.wish-footnote{font-size:.8rem;color:#beb2cf;margin-top:26px}
.night-stars{position:absolute;inset:0;z-index:-1;pointer-events:none}
.night-stars span{position:absolute;color:#ebc665;font-size:30px;animation:twinkle 3.8s ease-in-out infinite}
.night-stars span:nth-child(1){left:12%;top:18%}
.night-stars span:nth-child(2){right:10%;top:27%;font-size:55px;animation-delay:-1s}
.night-stars span:nth-child(3){left:18%;top:59%;font-size:22px;animation-delay:-2s}
.night-stars span:nth-child(4){right:14%;top:74%;animation-delay:-3s}
.night-stars span:nth-child(5){left:7%;top:85%;font-size:17px}
.night-stars span:nth-child(6){right:30%;top:13%;font-size:19px;animation-delay:-1.7s}
.closing{background:#e6e0f4;text-align:center;padding:100px 24px 55px;overflow:clip}
.closing h2{margin-top:20px}
.closing h2 span{color:var(--purple)}
.closing-friends{display:flex;align-items:flex-end;justify-content:center;margin:40px auto 24px;max-width:600px}
.closing-friends img{width:25%;animation:sway 4s ease-in-out infinite;transform-origin:bottom center}
.closing-friends img:nth-child(even){animation-delay:-2s}
.closing-note{margin-top:40px;color:#625274;font-size:.95rem}
.entrance{animation:rise-in 700ms ease both;animation-delay:var(--delay,0ms)}
.js .reveal{opacity:0;transform:translate(var(--from,0px),34px) scale(.97);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1);transition-delay:var(--delay,0ms)}
.js .reveal.entered{opacity:1;transform:none}
.js .scene:not(.in-view) *,body.page-hidden *{animation-play-state:paused!important}
html[data-motion=off] *{animation:none!important;transition:none!important}
html[data-motion=off]{scroll-behavior:auto}
html[data-motion=off] .reveal,html[data-motion=off] .entrance,html[data-motion=off] .hero-friend{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
html[data-motion=off] [data-depth]{translate:none!important}
html[data-motion=off] .ribbon div{animation:none}
html[data-motion=off] .character img,html[data-motion=off] .reaction{animation:none!important;transform:none!important}
html[data-motion=off] .smoke,html[data-motion=off] .flame{animation:none!important}
html[data-motion=off] .wish{height:auto}
html[data-motion=off] .wish-stage{position:relative;min-height:850px}
html[data-motion=off] .pill{transition:none}

@keyframes rise-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes friend-pop{from{opacity:0;transform:translateY(60px) scale(.3)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes number-pop{0%{transform:rotate(-16deg) scale(.4);opacity:0}75%{transform:rotate(-3deg) scale(1.06);opacity:1}100%{transform:rotate(-7deg) scale(1)}}
@keyframes sway{0%,100%{transform:rotate(-4deg) translateY(0)}50%{transform:rotate(4deg) translateY(-8px)}}
@keyframes float{0%,100%{transform:translateY(2px) rotate(-3deg)}50%{transform:translateY(-16px) rotate(4deg)}}
@keyframes tickle-idle{0%,55%,100%{transform:rotate(0)}65%{transform:rotate(-5deg) scale(1.03,.98)}75%{transform:rotate(5deg)}85%{transform:rotate(-3deg)}}
@keyframes bump-idle{0%,60%,100%{transform:rotate(0)}70%{transform:rotate(8deg)}78%{transform:rotate(-5deg)}86%{transform:rotate(3deg)}}
@keyframes happy-hop{0%,100%{transform:translateY(0) scale(1)}20%{transform:scale(1.08,.9)}50%{transform:translateY(-40px) rotate(-8deg)}75%{transform:translateY(0) scale(1.1,.85)}}
@keyframes twirl{0%{transform:rotate(0) scale(1)}45%{transform:rotate(190deg) scale(1.12)}100%{transform:rotate(360deg) scale(1)}}
@keyframes tickle-giggle{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-13deg) scale(1.06,.93)}40%,80%{transform:rotate(13deg) scale(.95,1.05)}}
@keyframes stumble{0%,100%{transform:rotate(0)}25%{transform:translateX(9px) rotate(23deg)}45%{transform:translateX(-6px) rotate(-12deg)}70%{transform:rotate(8deg)}85%{transform:rotate(-4deg)}}
@keyframes star-turn{to{transform:rotate(360deg)}}
@keyframes cue-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
@keyframes paper-drift{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-14px) rotate(30deg)}}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes flicker{from{transform:rotate(-7deg) scale(.92,1.03)}to{transform:rotate(7deg) scale(1.04,.93)}}
@keyframes smoke-rise{0%{opacity:0;transform:translate(0,0) scale(.7)}20%{opacity:.65}100%{opacity:0;transform:translate(13px,-65px) scale(2.4)}}
@keyframes twinkle{0%,100%{opacity:.35;transform:scale(.85)}50%{opacity:.95;transform:scale(1.1)}}

@media(min-width:1450px){.hero{padding-top:135px}.hero-stage{height:400px}.number{font-size:425px}}
@media(max-width:760px){
  .nav{inset:12px 15px auto}.wordmark{font-size:.85rem;padding:9px 11px}.wordmark span{font-size:1.25rem}
  .nav-link,.motion-toggle{font-size:.875rem;padding:10px 12px}.nav-actions{gap:6px}
  .hero{padding:111px 20px 30px}.eyebrow{font-size:.8rem;letter-spacing:.1em}.hero h1{margin-top:18px}
  .hero-stage{height:295px;margin-top:13px;max-width:470px}.number{font-size:320px;text-shadow:5px 6px 0 #e0ccea}.number::before{width:220px;height:220px}
  .hero-friend{width:125px}.hero-friend.sunshine{left:0;top:2px}.hero-friend.sparkle{right:0;top:-5px;width:115px}
  .hero-friend.tickle{left:-5px;bottom:-3px;width:147px}.hero-friend.bump{right:-4px;bottom:-3px;width:128px}
  .hero-friend.sunshine .speech,.hero-friend.tickle .speech{left:10px;translate:0 -100%}
  .hero-friend.sparkle .speech,.hero-friend.bump .speech{right:10px;left:auto;translate:0 -100%}
  .orbit-star.one{left:30%;top:10px;font-size:27px}.orbit-star.two{right:27%;bottom:13px;font-size:32px}
  .hero-footer{margin-top:29px}.tap-hint{font-size:.9rem}.scroll-cue{margin-top:15px}.ribbon{padding:14px 0;margin-top:14px}.ribbon div{font-size:1.25rem;gap:22px}
  .friends{padding:85px 20px 75px}.friends-doodle{right:3%;top:11%;font-size:40px}
  .crew{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 18px;margin-top:37px}.friend-portrait{max-width:185px}.friend h3{font-size:1.17rem;margin-top:8px}.friend p{font-size:.95rem;margin-top:7px}
  .details{padding:80px 26px;grid-template-columns:1fr;gap:32px}.details-heading{text-align:center}.details-star{position:relative;font-size:44px;margin:18px auto 0}
  .invitation{max-width:430px;width:100%;margin:0 auto;padding:30px 24px;rotate:2deg}.invitation h3{font-size:2.5rem}.ticket-stamp{right:15px;font-size:.75rem}
  .wish-stage{padding-top:105px;padding-bottom:35px}.wish h2{font-size:3.3rem}.wish-instruction{font-size:1rem;margin-top:16px}.cake{margin-top:15px}
  .night-stars span:nth-child(1){left:6%;top:24%}.night-stars span:nth-child(2){right:5%;top:38%;font-size:34px}.night-stars span:nth-child(3){left:7%;top:61%}.night-stars span:nth-child(4){right:7%;top:78%;font-size:22px}
  .closing{padding:80px 20px 42px}.closing-friends{margin-top:30px}.closing h2{font-size:3.7rem}
}
@media(max-width:370px){
  .nav{inset-inline:10px}.nav-link,.motion-toggle{padding-inline:10px;font-size:.8rem}.wordmark{font-size:.8rem}.wordmark span{font-size:1.12rem}
  .hero{padding-inline:16px}.wonder{font-size:4.55rem}.little{font-size:1.7rem}.hero>.eyebrow{font-size:.72rem}.hero-stage{height:270px}
  .hero-friend.sunshine{width:108px}.hero-friend.sparkle{width:100px}.hero-friend.tickle{width:130px}.hero-friend.bump{width:112px}.number{font-size:290px}
  .hero-footer{margin-top:22px}.tagline{font-size:1.5rem}.section-copy{font-size:1.1rem}.friend h3{font-size:1.07rem}.crew{gap:28px 10px}
  .invitation{padding:28px 20px}.ticket-stamp{font-size:.7rem;padding:12px 7px;right:9px}.invitation>p{font-size:.95rem}
}
@media(max-height:760px) and (min-width:600px){.wish-stage{padding-top:80px}.wish h2{font-size:3.2rem}.wish-instruction{margin-top:10px}.cake{scale:.8;height:210px;margin-top:0}.wish-footnote{margin-top:15px}}
@media(max-height:760px) and (max-width:599px){
  .wish-stage{padding:85px 18px 25px}.wish h2{font-size:2.7rem;margin-top:10px}.wish-instruction{margin-top:10px}
  .cake{scale:.75;height:170px;margin-top:14px}.wish-status{font-size:1rem}.wish-button{margin-top:14px;padding:12px 22px}.wish-footnote{display:none}
}
@media(max-height:620px) and (max-width:599px){.wish-stage{padding-top:77px}.wish h2{font-size:2.2rem}.cake{scale:.6;height:125px;margin-top:20px}.wish-instruction{font-size:.95rem}}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]){scroll-behavior:auto}html:not([data-motion=on]) *{animation:none!important;transition:none!important}html:not([data-motion=on]) .reveal,html:not([data-motion=on]) .entrance,html:not([data-motion=on]) .hero-friend{opacity:1!important;transform:none!important}}
