@font-face{font-family:Fraunces;src:url('assets/fonts/fraunces.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'DM Sans';src:url('assets/fonts/dm-sans.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'DM Sans';src:url('assets/fonts/dm-sans-semibold.ttf') format('truetype');font-weight:600 800;font-style:normal;font-display:swap}
:root{--cream:#f7f3e8;--forest:#304e3c;--brown:#74533b;--sage:#e6eadf;--ink:#394737;--muted:#66705b;--line:#cbd2bf;--gold:#b59356;--serif:Fraunces,Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:28px}
body{margin:0;background:var(--cream);color:var(--ink);font:400 16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
/* Decorative foliage may reach the page edge without widening the canvas. */
main{overflow:clip}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:5;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%236f6344' filter='url(%23n)' opacity='.7' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
a{color:inherit;text-underline-offset:5px}
button,a{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible{outline:3px solid #ac703b;outline-offset:6px;border-radius:3px}
img{display:block;max-width:100%;height:auto}
svg{display:block}
.svg-definitions{position:absolute;width:0;height:0;overflow:hidden}
.wrap{width:min(1160px,calc(100% - 112px));margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:10px;left:10px;padding:10px 18px;background:var(--forest);color:var(--cream);transform:translateY(-160%);z-index:20}
.skip-link:focus{transform:translateY(0)}
.site-header{height:102px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #304e3c20}
.wordmark{display:flex;align-items:center;gap:11px;text-decoration:none;font-family:var(--serif);font-size:25px;letter-spacing:-.8px;color:var(--forest)}
.wordmark svg{width:26px;height:26px;transform:rotate(-14deg)}
.wordmark-dot{color:var(--brown)}
nav{display:flex;align-items:center;gap:35px;font-size:13px;font-weight:600}
nav a{text-decoration:none}
.nav-details:hover{text-decoration:underline}
.nav-rsvp{border:1px solid #304e3c5c;border-radius:100px;padding:9px 20px;display:flex;align-items:center;gap:16px;transition:background .2s}
.nav-rsvp:hover{background:#e4e8da}
.hero{display:grid;grid-template-columns:1fr 1.04fr;align-items:center;gap:55px;padding-block:72px 90px}
.hero-copy{padding-bottom:8px}
.eyebrow{font-size:10px;line-height:1.6;font-weight:600;letter-spacing:2.1px;margin:0 0 25px;color:var(--brown)}
.hero .eyebrow{display:flex;align-items:center;gap:12px;font-size:9px;letter-spacing:1.75px}
.little-line{width:26px;height:1px;background:var(--brown);flex:none}
h1,h2,p{margin-top:0}
h1{font-family:var(--serif);font-weight:500;line-height:.91;letter-spacing:-6px;margin-bottom:26px;color:var(--forest)}
.birthday-name{font:500 27px/1.3 var(--serif);letter-spacing:-.8px;margin:0 0 18px;color:var(--brown)}
.birthday-name span{display:inline-block;background:#e5e9d3;border-radius:50% 40% 45% 40%;padding:0 6px 3px;transform:rotate(-5deg)}
.our-little{display:block;font-size:clamp(38px,4.5vw,61px);line-height:1.15;letter-spacing:-2.5px;margin-bottom:3px}
.explorer{display:block;position:relative;width:fit-content;font-size:clamp(47px,6.4vw,89px);line-height:1.1;letter-spacing:-4px;color:var(--brown)}
.explorer::after{content:'';position:absolute;bottom:-5px;left:3px;right:3px;height:9px;border:3px solid #becb9c;border-top:0;border-radius:0 0 65% 80%;transform:rotate(-2deg)}
.title-star{position:absolute;top:-2px;right:-27px;color:var(--gold);font:32px/1 Georgia,serif;letter-spacing:0;animation:sun-turn 18s linear infinite}
.hero-description{font-size:16px;line-height:1.8;color:#68705e;margin-bottom:27px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:52px;padding:13px 26px;border-radius:100px;text-decoration:none;font-size:13px;font-weight:600;line-height:1.5;transition:transform .2s,background .2s,box-shadow .2s}
.button svg{width:20px;height:20px;flex:none}
.button:hover{transform:translateY(-3px);box-shadow:0 6px 16px #172c2520}
.button-green{background:var(--forest);color:var(--cream)}
.button-green:hover{background:#223d2e}
.hero-date{font-size:10px;letter-spacing:1.4px;font-weight:600;color:var(--brown);margin:23px 0 0}
.hero-date span{padding-inline:9px;color:var(--gold)}
.hero-portrait{position:relative;width:100%;max-width:490px;justify-self:end}
.portrait-arch{position:relative;border-radius:250px 250px 18px 18px;overflow:hidden;outline:1px solid #9a926c66;outline-offset:12px;background:#d8c4a6}
.portrait-arch img{width:100%;aspect-ratio:.704;object-fit:cover;object-position:center 53%}
.hero-leaves{position:absolute;width:155px;height:220px;color:#758366;z-index:2;pointer-events:none}
.top-leaves{right:-57px;top:-28px;transform:rotate(31deg);width:119px;height:166px}
.bottom-leaves{left:-76px;bottom:-22px;transform:rotate(-25deg)}
.birthday-seal{position:absolute;right:-29px;bottom:30px;width:118px;height:118px;z-index:3;background:#e6e4c9;color:var(--forest);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;outline:1px dashed #667354;outline-offset:-8px;transform:rotate(12deg);box-shadow:1px 5px 15px #55452b12}
.birthday-seal span{font-size:7px;letter-spacing:1.4px;font-weight:600;line-height:2.2}
.birthday-seal strong{font:500 48px/.95 var(--serif);margin:3px 0}
.photo-note{font:500 15px var(--serif);color:var(--brown);text-align:center;margin:25px 0 -12px;transform:rotate(-3deg)}
.adventure-band{display:flex;align-items:center;justify-content:center;gap:48px;padding:24px 20px;background:#e1e6d5;border-block:1px solid #bcc6ab6b;color:#526544;font-family:var(--serif);font-size:21px}
.adventure-band svg{width:16px;height:18px;transform:rotate(-16deg);color:#889776}
.celebration-section{background:#edf0e5;padding:104px 0 108px;overflow:hidden}
.celebration{display:grid;grid-template-columns:.95fr 1fr;gap:105px;align-items:center}
.memory{position:relative;width:100%;max-width:422px;margin-left:14px}
.memory-photo{position:relative;background:#fcfaf2;padding:13px 13px 0;margin:0;transform:rotate(-4deg);box-shadow:0 10px 35px #495f3620}
.memory-photo img{width:100%;aspect-ratio:.77;object-fit:cover;object-position:center 65%}
.memory-photo figcaption{text-align:center;color:var(--brown);font:500 17px var(--serif);padding:25px 0 28px}
.photo-tape{position:absolute;width:117px;height:34px;background:#b6bb967e;z-index:2;top:-13px;left:calc(50% - 55px);transform:rotate(-9deg);clip-path:polygon(0 5%,98% 0,95% 15%,100% 32%,96% 49%,100% 62%,94% 75%,98% 96%,2% 100%,5% 83%,0 72%,5% 55%,1% 38%,5% 24%)}
.memory-leaves{position:absolute;bottom:-40px;right:-46px;width:100px;height:166px;color:#778364;transform:rotate(35deg)}
.celebration-copy .eyebrow{margin-bottom:17px}
h2{font:500 clamp(40px,4vw,55px)/1.08 var(--serif);letter-spacing:-2.1px;color:var(--forest);margin-bottom:24px}
h2 em{font-style:normal;color:var(--brown)}
.celebration-copy>p:not(.eyebrow):not(.celebration-footnote){max-width:400px;font-size:14px;line-height:1.85;color:#617058;margin-bottom:29px}
.event-details{border-top:1px solid var(--line)}
.event-row{display:flex;gap:21px;align-items:flex-start;padding:19px 0;border-bottom:1px solid var(--line)}
.detail-icon{display:block;padding-top:7px;color:#6b795b}
.detail-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.detail-label{display:block;font-size:8px;letter-spacing:1.8px;font-weight:600;color:#6b755e;margin-bottom:4px}
.event-row strong{display:block;font-size:16px;font-weight:600;line-height:1.55}
.directions-link{display:inline-flex;align-items:center;gap:13px;font-size:12px;color:var(--brown);padding:9px 0 1px}
.celebration-footnote{font-family:var(--serif);font-size:17px;color:var(--brown);margin:26px 0 0}
.rsvp-section{position:relative;overflow:hidden;background:var(--forest);color:var(--cream);text-align:center;padding:38px 28px 68px}
.rsvp-section::before{content:'';position:absolute;top:-8px;left:0;width:100%;height:15px;background:radial-gradient(circle at 10px 0,#edf0e5 10px,transparent 10.5px);background-size:20px 16px}
.rsvp-inner{position:relative;z-index:1}
.safari-friends{width:270px;height:auto;margin:0 auto 24px}
.rsvp-section .eyebrow{color:#cad5b6;font-size:9px;letter-spacing:2px;margin-bottom:16px}
.rsvp-section h2{font-size:57px;color:var(--cream);margin-bottom:20px}
.rsvp-section h2 em{color:#ced9b5}
.rsvp-section p:not(.eyebrow):not(.rsvp-note){font-size:14px;line-height:1.9;color:#e1e5d7;margin-bottom:26px}
.button-cream{background:var(--cream);color:var(--forest);gap:12px;padding-inline:24px}
.button-cream>span[aria-hidden]{margin-left:12px}
.button-cream:hover{background:#e2e8d3}
.rsvp-note{font-size:10px;letter-spacing:.3px;color:#c6d0b8;margin:17px 0 0}
.extra-guests{max-width:480px;margin:0 auto 28px;padding:19px 24px;border:1px dashed #aabd956b;border-radius:20px;background:#ffffff08}
.extra-guests strong{display:block;color:#e5eaca;font:500 18px/1.4 var(--serif);margin-bottom:9px}
.rsvp-section .extra-guests p{font-size:12px!important;line-height:1.8!important;margin:0!important}
.qr-details{max-width:330px;margin:26px auto 0}
.qr-details summary{cursor:pointer;font-size:11px;color:#d4dfbf;text-underline-offset:5px;padding:9px;list-style:none}
.qr-details summary::-webkit-details-marker{display:none}
.qr-details summary:hover{text-decoration:underline}
.qr-details summary:focus-visible{outline:2px solid #d4dfbf;outline-offset:4px;border-radius:8px}
.qr-details summary span{display:inline-block;font-size:19px;vertical-align:middle;margin-left:7px}
.qr-card{background:#f7f3e8;border-radius:22px;padding:20px;margin-top:10px;color:var(--forest)}
.qr-card a{display:block;width:222px;max-width:100%;margin:auto;border-radius:9px;overflow:hidden}
.qr-card img{width:100%}
.rsvp-section .qr-card p{color:var(--forest)!important;font-size:11px!important;line-height:1.7!important;margin:13px 0 0!important}
.rsvp-leaf{position:absolute;width:220px;height:320px;color:#71926b;opacity:.23}
.rsvp-leaf-left{left:0;bottom:5px;transform:rotate(10deg)}
.rsvp-leaf-right{right:-22px;top:20px;transform:rotate(175deg)}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:28px;color:var(--brown)}
.site-footer span:first-child{font:500 15px var(--serif)}
.site-footer span:last-child{font-size:8px;letter-spacing:1.3px}
.site-footer svg{width:20px;height:22px;color:#8c977a;transform:rotate(-12deg)}
@media(min-width:1500px){.hero{padding-top:84px;padding-bottom:100px}}
@media(max-width:1100px){.wrap{width:calc(100% - 88px)}.hero{gap:40px;padding-block:65px 78px}.hero .eyebrow{font-size:8px;letter-spacing:1.2px;gap:7px}.little-line{width:18px}.birthday-name{font-size:32px}.wild,.one{font-size:105px}.hero-description{font-size:14px}.hero-leaves.top-leaves{right:-36px;width:100px}.birthday-seal{right:-20px;width:104px;height:104px}.adventure-band{gap:28px;font-size:18px}.celebration{gap:66px}.celebration-section{padding-block:90px}.celebration h2{font-size:43px}.event-row strong{font-size:14px}.memory{margin-left:4px}}
@media(max-width:760px){.wrap{width:calc(100% - 48px)}.site-header{height:79px}.wordmark{font-size:22px;gap:8px}.wordmark svg{width:22px;height:22px}.nav-details{display:none}.nav-rsvp{padding:8px 14px;font-size:11px;gap:12px}.hero{grid-template-columns:1fr;gap:48px;padding-block:39px 61px;text-align:center}.hero-copy{padding:0}.hero .eyebrow{justify-content:center;font-size:8px;letter-spacing:1.4px;margin-bottom:18px}.little-line{display:none}.birthday-name{font-size:30px;margin-bottom:10px}.wild,.one{display:inline;font-size:clamp(64px,13vw,100px);letter-spacing:-4px;line-height:1.1}.wild{margin-right:8px}.title-star{display:none}h1{margin-bottom:17px}.hero-description{font-size:14px;line-height:1.7;margin-bottom:21px}.hero-description br:last-child{display:none}.hero-description{max-width:280px;margin-inline:auto}.button{min-height:50px}.hero-date{font-size:8px;letter-spacing:1.1px;margin-top:18px}.hero-portrait{max-width:360px;width:calc(100% - 28px);justify-self:center}.portrait-arch{outline-offset:9px}.portrait-arch img{aspect-ratio:.79;object-position:center 39%}.top-leaves{right:-35px;top:-24px!important;width:85px!important;height:125px}.bottom-leaves{left:-40px;bottom:0;width:100px;height:160px}.birthday-seal{width:91px;height:91px;right:-22px;bottom:34px}.birthday-seal span{font-size:6px;letter-spacing:1px}.birthday-seal strong{font-size:37px}.photo-note{font-size:14px;margin-top:22px}.adventure-band{gap:22px;padding-block:20px;font-size:16px}.adventure-band span:last-child,.adventure-band svg:last-of-type{display:none}.adventure-band svg{width:13px;height:15px}.celebration-section{padding:65px 0 70px}.celebration{grid-template-columns:1fr;gap:52px}.celebration-copy{grid-row:1;max-width:430px;margin-inline:auto;width:100%}.celebration-copy .eyebrow{font-size:9px}.celebration h2{font-size:43px}.celebration-copy>p:not(.eyebrow):not(.celebration-footnote){max-width:360px}.event-row{padding-block:17px;gap:18px}.event-row strong{font-size:15px}.celebration-footnote{font-size:17px}.memory{max-width:300px;justify-self:center;margin-left:0}.memory-photo{padding:10px 10px 0}.memory-photo img{aspect-ratio:.84;object-position:center 61%}.memory-photo figcaption{font-size:15px;padding:21px 0 23px}.memory-leaves{right:-27px;bottom:-27px;width:82px;height:132px}.rsvp-section{padding:33px 24px 54px}.safari-friends{width:230px;margin-bottom:24px}.rsvp-section h2{font-size:45px}.rsvp-section .eyebrow{font-size:8px;letter-spacing:1.3px}.rsvp-section p:not(.eyebrow):not(.rsvp-note){font-size:13px}.rsvp-leaf{width:140px;height:230px}.rsvp-leaf-left{left:-40px;bottom:0}.rsvp-leaf-right{right:-35px;top:20px}.site-footer{flex-direction:column;gap:15px;padding-block:28px}.site-footer svg{order:-1;width:17px;height:18px}.site-footer span:first-child{font-size:14px}.site-footer span:last-child{font-size:7px}}
@media(max-width:380px){.wrap{width:calc(100% - 40px)}.wordmark{font-size:20px}.nav-rsvp{padding:7px 12px}.hero{padding-top:32px}.wild,.one{font-size:61px}.hero .eyebrow{font-size:7px;letter-spacing:1.2px}.adventure-band{gap:15px;font-size:14px}.adventure-band span:nth-of-type(3),.adventure-band svg:nth-of-type(2){display:none}.celebration h2{font-size:40px}.event-row strong{font-size:14px}.memory{width:calc(100% - 26px)}.rsvp-section h2{font-size:42px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
@media print{body::before,.site-header,.adventure-band,.rsvp-leaf,.hero-leaves,.memory-leaves,.button,.directions-link{display:none}.wrap{width:95%}.hero{padding:20px 0;grid-template-columns:1fr 1fr}.hero-portrait{max-width:240px}.wild,.one{font-size:80px}.celebration-section{padding:25px 0}.celebration{grid-template-columns:1fr 1fr;gap:35px}.memory{max-width:230px}.rsvp-section{background:white;color:var(--ink);padding:20px}.rsvp-section h2,.rsvp-section h2 em,.rsvp-section p{color:var(--ink)!important}.safari-friends{width:150px}.site-footer{padding:15px 0}}

/* A little more storybook: soft shapes, playful details, and unhurried motion. */
.hero{padding-top:65px;padding-bottom:82px}
.hero h1{margin-bottom:24px}
.hero .birthday-label{display:inline-block;background:#ece5d1;border:1px dashed #b9a784;border-radius:13px 17px 13px 18px;padding:8px 12px;transform:rotate(-2deg);font-size:8px;letter-spacing:1.2px;margin-bottom:22px}
.hero-description{font-size:14px;line-height:1.8;margin-bottom:18px}
.hero-date{font-size:8px;letter-spacing:1px;margin-top:19px}
.hero-copy{animation:welcome-in .85s cubic-bezier(.2,.7,.3,1) both}
.birthday-balloons{position:absolute;width:108px;height:171px;left:-45px;top:-30px;z-index:2;overflow:visible;animation:balloon-drift 7s ease-in-out infinite;transform-origin:center bottom}
.balloon-one,.balloon-two{transform-box:fill-box;transform-origin:bottom center;animation:balloon-tilt 5.5s ease-in-out infinite}
.balloon-two{animation-delay:-2s}
.portrait-sparkle{position:absolute;color:var(--gold);z-index:3;line-height:1;animation:twinkle 4.5s ease-in-out infinite}
.sparkle-one{right:2px;top:22px;font-size:40px}
.sparkle-two{left:-27px;bottom:180px;font-size:30px;animation-delay:-2s}
.top-leaves{--leaf-angle:31deg;animation:leaf-sway 8s ease-in-out infinite;transform-origin:bottom center}
.bottom-leaves{--leaf-angle:-25deg;animation:leaf-sway 9s ease-in-out infinite;transform-origin:bottom center;animation-delay:-3s}
.memory-leaves{--leaf-angle:35deg;animation:leaf-sway 8s ease-in-out infinite;transform-origin:bottom center}
.birthday-seal{animation:seal-wiggle 9s ease-in-out infinite}
.photo-note{font-size:13px}
.countdown{margin:0 0 23px;width:min(330px,100%)}
.countdown-heading{font:500 15px/1.5 var(--serif);color:var(--forest);margin:0 0 10px}
.countdown-clock{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:6px;align-items:center}
.countdown-unit{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:73px;background:#e6ebd9;border:1px solid #becbab;border-radius:17px 20px 15px 19px;padding:8px 5px 7px;box-shadow:0 3px 0 #c7d2b5}
.countdown-unit:nth-of-type(2n){background:#eee1cc;border-color:#d7bd96;box-shadow:0 3px 0 #dec6a5;border-radius:20px 15px 19px 16px}
.countdown-unit [data-count]{display:block;font:600 28px/1.1 var(--sans);font-variant-numeric:tabular-nums;color:var(--forest);min-width:2ch;text-align:center}
.countdown-label{font-size:8px;letter-spacing:.8px;color:#596948;margin-top:5px}
.countdown-colon{font:500 19px var(--serif);color:#9f8d65;align-self:start;padding-top:15px}
.countdown-note{font-size:9px;color:#6b715e;margin:12px 0 0;letter-spacing:.4px}
.countdown-status{font:500 21px/1.4 var(--serif);color:var(--brown);margin:8px 0 0}
.countdown-status:empty{display:none}
.friends-section{position:relative;background:#f7f3e8;padding:76px 0 66px;text-align:center;border-top:1px dashed #bcc6ab}
.friends-section .eyebrow{margin-bottom:13px}
.friends-section h2{font-size:43px;margin-bottom:15px}
.friends-intro{color:var(--muted);font-size:13px;max-width:400px;margin:0 auto 37px}
.animal-crew{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px;align-items:start}
.animal-friend{font-family:var(--sans);border:0;background:none;padding:0;color:var(--forest);min-width:0;display:flex;flex-direction:column;align-items:center;position:relative}
button.animal-friend{cursor:pointer;touch-action:manipulation}
button.animal-friend:focus-visible{border-radius:24px;outline-offset:8px}
.animal-blob{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;background:#e8ebda;border-radius:45% 55% 47% 53%/52% 42% 58% 48%;transition:background .3s,scale .3s;position:relative}
.animal-friend:nth-child(even) .animal-blob{background:#eee2ce;border-radius:56% 44% 53% 47%/45% 56% 44% 55%}
.animal-blob svg{width:85%;height:90%;overflow:visible;animation:animal-bob 6s ease-in-out infinite;transform-origin:50% 100%}
.animal-friend:nth-child(2n) svg{animation-delay:-2s}
.animal-friend:nth-child(3n) svg{animation-delay:-4s}
button.animal-friend:hover .animal-blob{background:#dbe5c9;scale:1.04}
.animal-name{font:500 19px/1.3 var(--serif);margin-top:15px}
.animal-trait{font-size:9px;color:var(--brown);margin-top:4px}
.animal-greeting{display:flex;align-items:center;justify-content:center;min-height:65px;max-width:500px;margin:33px auto 0;padding:14px 22px;background:#ede6d4;border:1px dashed #c3b28e;border-radius:20px;font:500 17px/1.5 var(--serif);color:var(--brown)}
.rsvp-section::before{background:radial-gradient(circle at 10px 0,var(--cream) 10px,transparent 10.5px);background-size:20px 16px}
.safari-friends{animation:animal-bob 7s ease-in-out infinite}
[data-reveal]{transition:opacity .8s ease,translate .8s cubic-bezier(.2,.7,.3,1)}
.reveal-pending{opacity:0;translate:0 22px}
.motion-toggle{position:fixed;right:16px;bottom:16px;z-index:10;display:flex;align-items:center;gap:7px;min-height:36px;padding:7px 12px;font:600 10px/1.4 var(--sans);color:var(--forest);background:#f7f3e8f2;border:1px solid #9fab8b;border-radius:30px;box-shadow:0 2px 12px #304e3c15;cursor:pointer;backdrop-filter:blur(6px)}
.motion-icon{font-size:18px;line-height:1}
.motion-toggle:disabled{cursor:default}
.site-footer{padding-bottom:56px}
@keyframes welcome-in{from{opacity:0;translate:0 15px}to{opacity:1;translate:0 0}}
@keyframes balloon-drift{0%,100%{translate:0 0;rotate:-4deg}50%{translate:3px -10px;rotate:3deg}}
@keyframes balloon-tilt{0%,100%{rotate:-3deg}50%{rotate:4deg}}
@keyframes twinkle{0%,100%{opacity:.55;scale:.85;rotate:-8deg}50%{opacity:1;scale:1.08;rotate:10deg}}
@keyframes leaf-sway{0%,100%{transform:rotate(var(--leaf-angle))}50%{transform:rotate(calc(var(--leaf-angle) + 5deg))}}
@keyframes seal-wiggle{0%,100%{transform:rotate(12deg)}50%{transform:rotate(6deg)}}
@keyframes sun-turn{to{rotate:360deg}}
@keyframes animal-bob{0%,100%{translate:0 0;rotate:-1deg}50%{translate:0 -5px;rotate:1deg}}
@media(max-width:1100px){.hero .birthday-name{font-size:24px}.hero .birthday-label{font-size:7px;letter-spacing:.8px;padding:7px 9px}.birthday-balloons{width:87px;height:145px;left:-28px;top:-27px}.animal-crew{gap:14px}.animal-name{font-size:17px}.animal-trait{font-size:8px}.friends-section h2{font-size:39px}}
@media(max-width:760px){.nav-animals{display:none}.hero{padding-top:34px;padding-bottom:61px;gap:44px}.hero .birthday-label{font-size:7px;letter-spacing:.9px;margin-bottom:21px}.hero h1{margin-bottom:19px}.our-little{font-size:38px;letter-spacing:-2px;margin-bottom:0}.explorer{font-size:64px;letter-spacing:-3px;margin-inline:auto}.explorer .title-star{display:block;font-size:25px;right:-22px;top:1px}.hero .birthday-name{font-size:23px;margin-bottom:17px}.hero-description{font-size:13px;margin-bottom:19px;max-width:290px}.countdown{margin:0 auto 23px;max-width:300px}.countdown-heading{font-size:14px}.countdown-unit{min-height:70px}.countdown-unit [data-count]{font-size:25px}.countdown-note{font-size:8px}.hero-date{font-size:7px;letter-spacing:.65px}.birthday-balloons{width:82px;height:142px;left:-24px;top:-26px}.sparkle-one{font-size:28px;top:8px;right:-1px}.sparkle-two{font-size:22px;left:-18px;bottom:145px}.photo-note{font-size:12px;max-width:260px;margin-inline:auto}.friends-section{padding:58px 0 50px}.friends-section h2{font-size:36px}.friends-section .eyebrow{font-size:8px;letter-spacing:1.4px}.friends-intro{font-size:12px;max-width:270px;margin-bottom:28px}.animal-crew{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 15px}.animal-blob{max-width:145px}.animal-name{font-size:18px;margin-top:12px}.animal-trait{font-size:8px;line-height:1.5;max-width:90px}.animal-greeting{margin-top:29px;font-size:15px;min-height:73px;padding:12px 18px}.motion-toggle{right:10px;bottom:10px;min-height:34px;font-size:9px;padding:7px 11px}.site-footer{padding-bottom:58px}}
@media(max-width:380px){.our-little{font-size:34px}.explorer{font-size:54px}.hero .birthday-name{font-size:21px}.hero .birthday-label{font-size:6px;letter-spacing:.8px}.hero-date{font-size:6px;letter-spacing:.65px}.countdown-clock{gap:4px}.countdown-unit [data-count]{font-size:24px}.friends-section h2{font-size:31px}.animal-crew{gap:25px 12px}.animal-name{font-size:16px}.animal-trait{font-size:7px}}
html[data-motion="off"]{scroll-behavior:auto}
html[data-motion="off"] *,html[data-motion="off"] *::before,html[data-motion="off"] *::after{animation:none!important;transition:none!important}
html[data-motion="off"] .reveal-pending{opacity:1;translate:none}
@media(prefers-reduced-motion:reduce){.reveal-pending{opacity:1;translate:none}}
@media print{.motion-toggle,.birthday-balloons,.portrait-sparkle,.countdown,.friends-section{display:none}.reveal-pending{opacity:1;translate:none}*,*::before,*::after{animation:none!important}}
