:root{--pink:#f3d7df;--paper:#fffcf9;--ink:#713b4c;--rose:#a94e6b;--muted:#8d6f76}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:15px;line-height:1.7}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;font:inherit}button:focus-visible,a:focus-visible{outline:3px solid #a94e6b;outline-offset:5px}a{color:inherit}button{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:400;line-height:1.05}h2{font-size:clamp(42px,5vw,66px);margin-bottom:24px}h2 em{font-weight:400}p{margin-bottom:20px}.eyebrow,.section-label{font-size:10px;text-transform:uppercase;letter-spacing:3px;line-height:1.8}.section-label{margin-bottom:24px;color:var(--rose)}.signature{font:32px Parisienne,cursive}.fine{font-size:11px;color:var(--muted)}[hidden]{display:none!important}
#envelope-screen{min-height:100svh;display:grid;place-items:center;background-color:#f9e9ed;background-image:repeating-linear-gradient(0deg,transparent 0 40px,#ce889a0c 40px 80px),repeating-linear-gradient(90deg,transparent 0 40px,#ce889a0c 40px 80px);overflow:hidden;position:relative;padding:60px 20px}.cover-content{text-align:center;width:min(100%,480px);z-index:2}.cover-content h1{font:clamp(58px,10vw,86px)/1 Parisienne,cursive;margin:28px 0 18px}.cover-note{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:21px}.envelope{display:block;width:100%;height:275px;margin:75px auto 26px;border:0;padding:0;background:none;position:relative;perspective:1000px;filter:drop-shadow(0 20px 22px #79425325);transition:transform .5s}.envelope:hover{transform:translateY(-5px)}.envelope-back{position:absolute;inset:0;background:#e2b1c0;border-radius:5px}.flap{position:absolute;inset:0;background:linear-gradient(#eac1cd,#e0b0bf);clip-path:polygon(0 0,100% 0,50% 62%);transform-origin:top;z-index:4;transition:transform .85s}.envelope-front{position:absolute;inset:0;background:linear-gradient(31deg,#e8becc 49.5%,transparent 50%),linear-gradient(-31deg,#efd0da 49.5%,transparent 50%);z-index:3;border-radius:5px}.letter{position:absolute;inset:16px 25px;background:#fffaf2;color:var(--rose);padding:34px 0;font:38px Parisienne,cursive;transition:transform .9s .35s;z-index:2;box-shadow:0 0 10px #69405215}.letter small{display:block;font:9px 'DM Sans',sans-serif;letter-spacing:3px;margin-top:15px}.seal{display:grid;place-items:center;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:76px;height:76px;background:linear-gradient(135deg,#b8738b,#995570);color:#fff0e6;border-radius:48% 52% 49% 51%;box-shadow:inset 0 0 0 5px #ffffff14,0 5px 9px #82455d35;z-index:5;font:40px Parisienne,cursive;transition:opacity .25s}.opening .flap{transform:rotateX(180deg)}.opening .letter{transform:translateY(-90px)}.opening .seal{opacity:0}.text-button{border:0;background:none;font-size:12px;letter-spacing:.7px;padding:14px;text-decoration:underline;text-underline-offset:6px}.cover-footer{font-size:9px;letter-spacing:2.5px;margin:35px 0 0}.cover-flower{position:absolute;font-size:240px;color:#d497a731;line-height:1;transform:rotate(15deg)}.f1{left:-50px;bottom:-50px}.f2{right:-65px;top:-45px;font-size:320px}
header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100% - 1050px)/2));background:#fffcf9f5;border-bottom:1px solid #a94e6b15;position:sticky;top:0;z-index:10;backdrop-filter:blur(12px)}.monogram{text-decoration:none;font:27px 'Cormorant Garamond',serif;white-space:nowrap}.monogram span{font-size:15px;margin:0 6px}nav{display:flex;gap:28px}nav a{font-size:11px;text-decoration:none}nav a:hover{color:var(--rose);text-decoration:underline}.section{padding:100px 24px;position:relative}.hero{background-color:#f6e0e6;background-image:repeating-linear-gradient(0deg,transparent 0 32px,#b76d8420 32px 64px),repeating-linear-gradient(90deg,transparent 0 32px,#b76d8420 32px 64px);text-align:center;padding:64px 24px}.hero-card{max-width:720px;margin:auto;background:#fff;border-radius:360px 360px 8px 8px;padding:28px 25px 42px;outline:1px solid #d997ac;outline-offset:-12px}.hero .eyebrow{margin-bottom:4px}.hero h1{font:clamp(52px,8vw,80px)/1 Parisienne,cursive;margin:3px 0 10px;color:#9e3d59}.bow-art{width:190px;aspect-ratio:360/270;margin:0 auto 10px;position:relative;overflow:hidden}.bow-art img{position:absolute;width:299.7%;max-width:none;left:-102.8%;top:-5.5%}.bunny-art{width:270px;max-width:90%;aspect-ratio:480/225;overflow:hidden;position:relative;margin:0 auto 22px;background:#fff}.bunny-art img{position:absolute;width:224.8%;max-width:none;left:-62.5%;top:-217.8%}.baby-name{font:clamp(42px,7vw,62px)/1.15 Parisienne,cursive;color:#a5415d;margin:18px 0}.heart-rule{font-size:23px;display:flex;gap:15px;align-items:center;justify-content:center;margin:18px 0}.heart-rule:before,.heart-rule:after{content:'';width:65px;height:1px;background:#dba1b3}.hero-date{font:22px 'Cormorant Garamond',serif}.scroll-link{text-decoration:none;font-size:11px;letter-spacing:.6px}.scroll-link span{display:block;font-size:22px;margin-top:12px}.side-caption{position:absolute;right:25px;top:50%;writing-mode:vertical-rl;font-size:9px;letter-spacing:4px}
.details{text-align:center;max-width:1100px;margin:auto}.intro{color:var(--muted);font-size:14px}.event-details{display:flex;justify-content:center;gap:60px;align-items:stretch;margin:55px auto;max-width:740px}.event-details>div:not(.detail-divider){flex:1}.event-details h3{font-size:29px;margin:14px 0}.event-details p{font-size:13px}.event-details small{font-size:11px;color:var(--muted)}.detail-divider{width:1px;background:#eacbd5}.pill{display:inline-block;border:1px solid #b67489;padding:12px 26px;border-radius:30px;text-decoration:none;font-size:11px;letter-spacing:1px;background:transparent}.pill:hover{background:#f6e4e9}.solid{background:var(--rose);color:white;border-color:var(--rose)}.solid:hover{background:#903d58}.date-count{display:flex;justify-content:center;gap:18px;align-items:center;padding:25px 0 8px}.date-count>span{font:88px/1 'Cormorant Garamond',serif}.date-count>div{text-align:left;font:24px/1.2 'Cormorant Garamond',serif}.baby-section{background:#f6e5ea;display:flex;align-items:center;justify-content:center;gap:100px}.baby-copy{max-width:500px}.baby-copy p{font-size:14px}.baby-copy .signature{font-size:30px;margin-top:35px}.photo-keepsake{width:310px;max-width:100%;flex-shrink:0;background:#fff9f6;padding:18px 18px 14px;box-shadow:0 18px 40px #8c4b631c;transform:rotate(3deg);position:relative;text-align:center}.photo-ribbon{position:absolute;left:50%;top:-35px;transform:translateX(-50%);font-size:60px;color:#a95c79;z-index:2;line-height:1}.photo-frame{position:relative;overflow:hidden;aspect-ratio:448/524;background:#241510}.photo-frame img{position:absolute;width:210%;max-width:none;left:-54.2%;top:-125.2%}.photo-frame.second{aspect-ratio:475/540}.photo-frame.second img{width:198.1%;left:-48.4%;top:-120.2%}.photo-keepsake>p{font:25px Parisienne,cursive;margin:16px 0 8px}.photo-buttons{display:flex;justify-content:center;gap:10px}.photo-buttons button{border:0;border-bottom:1px solid transparent;background:none;padding:8px 13px;font-size:10px;color:#a17b89}.photo-buttons button[aria-pressed=true]{border-color:var(--rose);color:var(--rose)}.gifts{text-align:center;background:#fff}.gift-inner{max-width:650px;margin:auto;border:1px solid #ebced8;padding:60px 30px;border-radius:240px 240px 4px 4px}.gifts p{font-size:14px;color:var(--muted)}.tiny-bow{font-size:50px;margin:24px 0 -10px;color:#ba7a91}.rsvp{text-align:center;background:#fbf0f3}.rsvp>p{font-size:14px;color:var(--muted)}.rsvp-note{max-width:450px;margin:35px auto 15px;padding:28px 22px;background:#fffaf8;border:1px solid #ead1da}.note-heart{font-size:28px}.rsvp-note h3{font-size:25px;margin:12px 0}.rsvp-note p{font-size:12px;color:var(--muted);margin:0}footer{text-align:center;background:white;padding:70px 20px 30px}footer h2{font-size:43px;margin:15px 0}footer .signature{margin-bottom:20px}footer .fine{margin:35px 0 0}dialog{border:0;padding:0;max-width:min(540px,92vw);max-height:90svh;background:#fff}dialog::backdrop{background:#39202bcc;backdrop-filter:blur(5px)}dialog img{width:100%;display:block}dialog button{position:sticky;top:10px;float:right;margin:10px 10px -60px 0;z-index:2;width:42px;height:42px;border-radius:50%;border:1px solid #c5889c;background:#fff;color:var(--rose);font-size:28px}.enter{animation:reveal 1s ease both}@keyframes reveal{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@media(max-width:760px){header{height:66px;padding:0 18px}nav{gap:16px}nav a{font-size:10px}.section{padding:70px 22px}.hero{padding:38px 17px}.hero-card{padding:25px 18px 30px}.bow-art{width:150px}.hero h1{font-size:54px}.hero .eyebrow{font-size:9px;letter-spacing:1.8px}.hero .baby-name{font-size:43px}.side-caption{display:none}.event-details{gap:22px}.event-details h3{font-size:25px}.baby-section{flex-direction:column;gap:60px;text-align:center}.baby-copy{max-width:400px}.photo-keepsake{width:280px}.gift-inner{padding:55px 18px 30px}.envelope{height:225px;max-width:390px}.letter{font-size:32px}.cover-content{max-width:390px}.cover-content h1{font-size:64px}.seal{width:66px;height:66px}.cover-note{font-size:19px}}@media(max-width:370px){nav{gap:11px}.event-details{flex-direction:column;gap:28px}.detail-divider{width:60px;height:1px;margin:auto}.hero .baby-name{font-size:37px}.envelope{height:195px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
/* A continuous gingham garden, from envelope to closing note. */
html{scroll-padding-top:24px;background:#faedf0}body{background-color:#faedf0;background-image:linear-gradient(90deg,#d892a21b 50%,transparent 50%),linear-gradient(#d892a21b 50%,transparent 50%);background-size:64px 64px}.is-covered{overflow:hidden}.hero,.baby-section,.gifts,footer{background:transparent}.details,.baby-section,.gifts,footer{max-width:1000px;margin-inline:auto}.details{background:radial-gradient(ellipse,#fffaf6ed 0%,#fffaf699 50%,transparent 72%)}.hero-card{background:#fffcf6e8;border:1px solid #e2b5c2;outline-color:#d69aae;box-shadow:0 16px 60px #8341590c}.side-caption{display:none}.gift-inner{background:#fffaf4c9;box-shadow:0 10px 35px #83526709}.photo-keepsake{background:#fffaf7}.bunny-art{background:transparent;mix-blend-mode:multiply;transform-origin:50% 85%;animation:bunny-hop 5s ease-in-out infinite}.bunny-art img{mix-blend-mode:multiply}@keyframes bunny-hop{0%,40%,100%{transform:translateY(0) rotate(0)}48%{transform:translateY(-10px) rotate(-2deg)}56%{transform:translateY(0) rotate(1deg)}64%{transform:translateY(-5px) rotate(2deg)}72%{transform:translateY(0) rotate(0)}}
/* Ribbon pieces replace the clipped image and text-symbol bows. */
.bow-art{width:190px;aspect-ratio:190/140;overflow:visible;margin:0 auto 18px}.ribbon-bow{position:relative;display:block;width:190px;height:140px;filter:drop-shadow(0 5px 5px #82445a19)}.ribbon-bow i{display:block;position:absolute;background:linear-gradient(135deg,#f6c5d0 8%,#d3849e 58%,#efb2c3 85%);border:1px solid #c57c9466}.ribbon-bow .loop{width:83px;height:60px;top:14px;box-shadow:inset 0 5px 12px #fff5,inset 0 -6px 9px #8d405a13}.ribbon-bow .loop.left{left:10px;border-radius:55% 70% 30% 40%;transform:rotate(18deg)}.ribbon-bow .loop.right{right:10px;border-radius:70% 55% 40% 30%;transform:rotate(-18deg)}.ribbon-bow .tail{width:37px;height:92px;top:42px;clip-path:polygon(0 0,100% 0,94% 100%,50% 83%,0 100%);transform-origin:top}.ribbon-bow .tail.left{left:73px;transform:rotate(23deg)}.ribbon-bow .tail.right{right:73px;transform:rotate(-23deg)}.ribbon-bow .knot{width:29px;height:38px;left:81px;top:34px;border-radius:40%;background:linear-gradient(90deg,#c47a92,#f3bdcd 48%,#bc718b);box-shadow:0 2px 5px #80455822}.photo-ribbon{width:110px;height:81px;top:-49px;font-size:initial}.photo-ribbon .ribbon-bow{transform:scale(.58);transform-origin:top left}.tiny-bow{width:95px;height:70px;margin:30px auto 0}.tiny-bow .ribbon-bow{transform:scale(.5);transform-origin:top left}
/* The flap folds back, the real invitation rises, then the cover dissolves. */
#envelope-screen{position:fixed;inset:0;z-index:30;min-height:100svh;height:100svh;overflow:auto;background-color:#faedf0;background-image:linear-gradient(90deg,#d892a21b 50%,transparent 50%),linear-gradient(#d892a21b 50%,transparent 50%);background-size:64px 64px;transition:opacity .75s ease,visibility .75s}.departing{opacity:0;pointer-events:none}.cover-content{padding:20px 0}.envelope{isolation:isolate;perspective:1200px}.envelope:hover{transform:none}.envelope .letter{inset:auto;bottom:12px;left:12%;width:76%;height:240px;overflow:hidden;padding:0;border-radius:7px;background:#fff;transform:translateY(0);transition:transform 1s cubic-bezier(.22,.7,.2,1) .65s;z-index:2}.letter img{width:100%;height:auto;display:block}.letter-caption{position:absolute;bottom:0;left:0;right:0;background:#fff8f3e8;font:27px Parisienne,cursive;padding:8px}.flap{backface-visibility:visible;transition:transform .65s ease,z-index 0s .3s}.opening .flap{transform:rotateX(-180deg);z-index:1}.opening .letter{transform:translateY(-155px)}.opening .seal{opacity:0}.opening{pointer-events:none}.cover-content h1,.cover-note,.cover-content>.eyebrow{transition:opacity .4s}.cover-content:has(.opening) h1,.cover-content:has(.opening)>.eyebrow,.cover-content:has(.opening) .cover-note{opacity:0}.cover-content:has(.opening) #open-text{opacity:0}.hero{padding-top:48px}.photo-buttons button{min-width:44px;min-height:44px}footer .bunny-art{margin-bottom:30px}
@media(max-width:760px){.hero{padding:35px 16px}.bow-art{width:160px;height:118px;aspect-ratio:auto}.bow-art .ribbon-bow{transform:scale(.84);transform-origin:top left}.baby-section{gap:75px;padding-top:80px}.envelope .letter{height:190px}.opening .letter{transform:translateY(-135px)}.cover-content h1{margin-top:10px}.envelope{margin-top:65px}.section{overflow:visible}.details,.gifts{padding-inline:20px}}
@media(prefers-reduced-motion:reduce){.bunny-art{animation:none}#envelope-screen{transition:none}}
/* Two keepsakes rise out of the envelope; everything stays in this document. */
#envelope-screen{position:relative;inset:auto;height:auto;min-height:100svh;overflow:hidden;padding:48px 20px 35px;transition:none}.cover-content{width:min(100%,640px);padding:0}.cover-content h1{font-size:68px;margin:12px 0}.cover-content .cover-note{margin-bottom:8px}.envelope-scene{position:relative;height:420px;width:100%;margin:6px auto 0}.envelope-scene .envelope{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:min(440px,90%);height:230px;margin:0;z-index:2}.envelope-scene .envelope:hover{transform:translateX(-50%)}.surprise-polaroid{display:block;position:absolute;top:12px;left:50%;width:210px;margin-left:-105px;padding:12px 12px 0;background:#fffefa;color:#954462;text-decoration:none;box-shadow:0 14px 28px #703c5a26;border:1px solid #f4e5e7;z-index:4;opacity:0;transform:translate(0,190px) scale(.55);transition:transform 1s cubic-bezier(.22,.8,.3,1) .55s,opacity .3s .5s;transform-origin:50% 100%}.surprise-polaroid .photo-frame{display:block;margin:0;aspect-ratio:448/500}.surprise-polaroid .photo-frame.second{aspect-ratio:475/530}.hand-caption{display:flex;align-items:center;justify-content:center;min-height:73px;padding:9px 2px 12px;font:25px/1.06 'Patrick Hand','Comic Sans MS',cursive;text-align:center}.photos-out .polaroid-one{opacity:1;transform:translate(-108px,0) rotate(-11deg)}.photos-out .polaroid-two{opacity:1;transform:translate(108px,-3px) rotate(10deg);transition-delay:.7s,.6s}.photos-out .surprise-polaroid:hover{filter:brightness(1.03);box-shadow:0 16px 35px #703c5a40}.photos-out .surprise-polaroid:focus-visible{outline:3px solid #b3537a;outline-offset:5px}.photo-hint{display:flex;align-items:center;justify-content:center;gap:8px;margin:6px auto 0;color:#bd5880;font:27px/1.1 'Patrick Hand','Comic Sans MS',cursive;transform:rotate(-4deg)}.photo-hint svg{width:65px;height:60px;flex-shrink:0;transform:rotate(-22deg)}.photo-hint>span:last-child{font-size:37px}.cover-footer{margin-top:22px}.cover-content:has(.opening) h1,.cover-content:has(.opening)>.eyebrow,.cover-content:has(.opening) .cover-note{opacity:1}#welcome{scroll-margin-top:15px}.cover-flower{pointer-events:none}
@media(max-width:760px){#envelope-screen{padding-top:36px}.cover-content{max-width:580px}.cover-content h1{font-size:58px}.envelope-scene{height:380px}.envelope-scene .envelope{width:88%;height:195px}.surprise-polaroid{width:170px;margin-left:-85px;padding:9px 9px 0;top:20px}.photos-out .polaroid-one{transform:translate(-78px,0) rotate(-10deg)}.photos-out .polaroid-two{transform:translate(78px,0) rotate(10deg)}.hand-caption{min-height:65px;font-size:23px}.photo-hint{font-size:25px}.cover-note{font-size:18px}}
@media(max-width:380px){.surprise-polaroid{width:145px;margin-left:-72.5px}.photos-out .polaroid-one{transform:translate(-65px,10px) rotate(-9deg)}.photos-out .polaroid-two{transform:translate(65px,10px) rotate(9deg)}.hand-caption{font-size:21px;min-height:65px}.envelope-scene{height:345px}.envelope-scene .envelope{height:175px}.photo-hint{font-size:23px}.cover-content h1{font-size:52px}}
@media(prefers-reduced-motion:reduce){.surprise-polaroid{transition:none}}
/* Storybook sections arrive as the guest explores the invitation. */
.scroll-chapter{transition:opacity 900ms ease,transform 1000ms cubic-bezier(.2,.75,.25,1);will-change:transform,opacity}.scroll-chapter.awaiting{opacity:0;transform:translateY(65px)}.baby-section.scroll-chapter.awaiting{transform:translateY(50px) scale(.96)}.gifts.scroll-chapter.awaiting{transform:translateY(65px) rotate(-1.5deg)}.scroll-chapter.arrived{opacity:1;transform:none}.scroll-chapter.arrived .section-label{animation:chapter-title .9s ease both}.scroll-chapter.arrived .photo-keepsake{animation:keepsake-arrives 1.25s ease both}@keyframes chapter-title{from{letter-spacing:5px;opacity:0}to{letter-spacing:3px;opacity:1}}@keyframes keepsake-arrives{from{transform:translateY(25px) rotate(-6deg);opacity:0}to{transform:translateY(0) rotate(3deg);opacity:1}}
#bunny-companion{position:fixed;bottom:12px;left:var(--bunny-x,18px);z-index:15;width:88px;height:144px;transition:left .16s linear;pointer-events:none}#wave-bunny{position:absolute;bottom:0;left:0;width:88px;height:124px;padding:0;border:0;background:transparent;pointer-events:auto;cursor:pointer;filter:drop-shadow(0 3px 3px #70405018)}.walking-bunny{display:block;position:absolute;inset:0;transform-origin:50% 90%;animation:bunny-waddle .48s ease-in-out infinite;animation-play-state:paused}.bunny-shadow{position:absolute;width:57px;height:8px;border-radius:50%;bottom:1px;left:16px;background:#91546c20}.bunny-head{position:absolute;width:60px;height:51px;top:33px;left:14px;border-radius:48%;background:radial-gradient(circle at 35% 25%,#fffaf0,#ead5c1);box-shadow:inset -3px -3px 5px #b9977720;z-index:3}.bunny-ear{position:absolute;width:17px;height:47px;top:0;background:#eedbc9;border:5px solid #fff0df;border-radius:65% 65% 40% 40%;z-index:2}.bunny-ear-left{left:23px;transform:rotate(-15deg)}.bunny-ear-right{left:49px;transform:rotate(16deg)}.bunny-head i{position:absolute}.eye{width:5px;height:7px;background:#614638;border-radius:50%;top:23px}.eye-left{left:17px}.eye-right{right:17px}.cheek{width:11px;height:6px;background:#eca6b077;border-radius:50%;top:31px}.cheek-left{left:7px}.cheek-right{right:7px}.nose{width:7px;height:5px;background:#bb7a89;border-radius:50% 50% 65% 65%;top:33px;left:27px}.bunny-body{position:absolute;width:43px;height:45px;left:23px;top:71px;border-radius:46%;background:linear-gradient(110deg,#fff2e3,#e9d1b9)}.bunny-diaper{position:absolute;left:24px;top:91px;width:41px;height:21px;border-radius:5px 5px 45% 45%;background:linear-gradient(#f7d7e0,#dda2b6);z-index:2}.bunny-diaper:after{content:'♡';font:14px Georgia;color:#ac5c7b;position:absolute;left:14px;top:1px}.bunny-arm{position:absolute;width:14px;height:29px;top:76px;background:#f5e3d0;border-radius:50%;transform-origin:top}.bunny-arm-left{left:15px;transform:rotate(15deg)}.bunny-arm-right{right:15px;transform:rotate(-15deg)}.bunny-foot{position:absolute;width:23px;height:14px;top:107px;border-radius:50%;background:#f0d9c2;border-bottom:3px solid #deb8a1;z-index:4;animation:bunny-step .48s ease-in-out infinite;animation-play-state:paused}.bunny-foot-left{left:18px}.bunny-foot-right{right:18px;animation-delay:-.24s}.bunny-hairbow{position:absolute;left:45px;top:25px;color:#ba6084;font:28px/1 Georgia;z-index:4;transform:rotate(15deg)}.walking .walking-bunny,.walking .bunny-foot{animation-play-state:running}.bunny-speech{position:absolute;bottom:125px;left:35px;width:155px;background:#fff9f3e8;border:1px solid #efcfda;border-radius:20px 20px 20px 2px;padding:5px 10px;font:17px/1.2 'Patrick Hand',cursive;color:#a25272;opacity:0;transition:opacity .5s;pointer-events:none}.hello .bunny-speech{opacity:1}.bunny-kiss{position:absolute;right:0;top:12px;color:#c7698b;font-size:28px;opacity:0}.hello .bunny-kiss{animation:hello-heart 1.3s ease-out}.hello .bunny-arm-right{animation:bunny-wave .3s ease-in-out 5}.hello .walking-bunny{animation-play-state:running}footer{padding-bottom:150px}@keyframes bunny-waddle{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-5px) rotate(3deg)}}@keyframes bunny-step{0%,100%{transform:translateY(0) rotate(-12deg)}50%{transform:translateY(-7px) rotate(15deg)}}@keyframes bunny-wave{0%,100%{transform:rotate(-100deg)}50%{transform:rotate(-135deg)}}@keyframes hello-heart{0%{opacity:0;transform:translateY(8px) scale(.6)}30%{opacity:1}100%{opacity:0;transform:translateY(-30px) scale(1.2)}}
@media(max-width:760px){#bunny-companion{transform:scale(.78);transform-origin:bottom left;bottom:8px}.scroll-chapter.awaiting{transform:translateY(40px)}}
@media(prefers-reduced-motion:reduce){.scroll-chapter,.scroll-chapter.awaiting{opacity:1;transform:none;transition:none}.walking-bunny,.bunny-foot,.bunny-kiss,.bunny-arm-right{animation:none!important}#bunny-companion{transition:none}}
