/* Chapter two: paper, rose gold and a birthday that responds. */
:root{--ink:#642b43;--rose:#a42f62;--gold:#a0743d}body{background:#fff8f0;color:var(--ink)}[hidden]{display:none!important}.eyebrow,.edition{font-size:11px;letter-spacing:2.2px;color:#784657}.controls{top:18px;right:22px;bottom:auto;left:auto;transform:none;padding:4px;gap:2px;background:#fffaf1ed;border-color:#e5c7b7;box-shadow:0 4px 20px #9c685817}.controls button{width:44px;height:44px;min-height:44px;padding:10px;font-size:17px;display:grid;place-items:center}.controls svg{width:23px;height:23px}.controls button[aria-pressed=true]{background:none}#music .sound-off,#music.muted .sound-waves{display:none}#music.muted .sound-off{display:block}#motion{font-size:13px;color:#876055;border-left:1px solid #efdcd0;border-radius:0 25px 25px 0}.controls button:focus-visible{outline-offset:2px}.cover{background:radial-gradient(ellipse at 35% 32%,#fffdfa 0,transparent 55%),radial-gradient(ellipse at 90% 75%,#ffe6dd,transparent 50%),#fff0e5;padding-top:45px;min-height:830px}.cover h1{color:#6f314c;font-size:clamp(40px,4.3vw,64px);margin-top:30px}.cover h1 em{color:#a43165}.intro-note{color:#784658;font-size:14px}.halo{border-color:#d7b59c55}.cover .halo-a{animation:halo-breathe 13s ease-in-out infinite}.cover .halo-b{animation:halo-breathe 18s ease-in-out infinite reverse}.envelope{filter:drop-shadow(0 22px 25px #8a394b3b)}.envelope-back{background:#a9436b}.envelope-front{background:linear-gradient(145deg,#d57697,#b74976)}.envelope-front:after{background:linear-gradient(130deg,#e998b3,#d7789c)}.flap{background:linear-gradient(160deg,#e8a0b9,#bd577e)}.seal{background:radial-gradient(circle at 30% 20%,#f2d0ac,#bb8461);border-color:#f6d6b5;color:#fffaf4;text-shadow:0 1px 1px #8a534a;box-shadow:0 4px 9px #71373755}.letter{background:linear-gradient(120deg,#fffcf5,#fff3e6);border-color:#dfbd9f;color:#6c3448;box-shadow:0 0 0 7px #fff9f0 inset,0 20px 60px #6b2d401c}.letter-top{font-size:8px;letter-spacing:1.8px}.letter-name{font-size:49px;margin:10px 0}.letter-bottom{font-size:8px;letter-spacing:1.2px}#letter-words{font-size:18px;line-height:1.5;max-width:270px;min-height:55px}.letter.reading{width:min(350px,calc(100vw - 48px))!important;height:315px!important;padding:30px 24px}.letter.reading .letter-top{font-size:9px}.letter.reading .letter-name{font-size:64px;margin:15px 0}.letter.reading #letter-words{font-size:22px;min-height:75px}.letter.reading .letter-bottom{margin-top:20px;font-size:8px}.letter.reading:before{content:'';position:absolute;inset:12px;border:1px solid #b8865b66;pointer-events:none}.cover-blooms svg{color:#df91ad}.cover-blooms svg:nth-child(2){color:#f0bda6}.cover-blooms svg:nth-child(3){color:#e09dad}.text-action{font:italic 25px 'Playfair Display';background:none;border:0;padding:10px 12px;min-height:48px;text-decoration:none;color:#843b54;display:inline-flex;gap:20px;align-items:center;justify-content:center}.text-action span{font:24px 'DM Sans';transition:transform .3s}.text-action:hover span{transform:translate(4px,-3px)}#open-hint{font:italic 25px 'Playfair Display';text-decoration:underline;text-decoration-color:#d396a6;text-underline-offset:9px}#mail-stage{margin-top:5px;height:320px}.cover-date{margin-top:20px;color:#723148;display:flex;flex-direction:column;gap:5px;letter-spacing:1px}.cover-date strong{font:23px 'Playfair Display';font-weight:400}.cover-date span{font-size:13px;letter-spacing:1.5px}#letter-scrim{position:fixed;inset:0;z-index:75;background:#fff5e8a8;backdrop-filter:blur(9px)}.letter-continue{position:fixed;left:50%;top:calc(48% + 185px);transform:translateX(-50%);z-index:85;background:none;border:0;white-space:nowrap;color:#8a3d57;font:italic 24px 'Playfair Display';padding:15px 10px;min-height:52px;text-decoration:underline;text-underline-offset:8px;text-decoration-color:#ba8791}.letter-continue span{display:inline-block;margin-left:12px;animation:continue-arrow 1.7s ease-in-out infinite}.letter-continue:focus-visible{outline-offset:4px}.mote{background:#fffdf6;box-shadow:0 0 12px 4px #fff8;opacity:.8}.glint{position:absolute;left:var(--x);top:var(--y);color:#d1a16c;width:var(--size);height:var(--size);animation:twinkle var(--d) ease-in-out infinite;animation-delay:var(--delay);opacity:0}.petal{position:absolute;left:var(--x);top:-30px;width:9px;height:15px;background:linear-gradient(140deg,#ffc8cdcc,#db85975c);border-radius:75% 5% 75% 15%;animation:petal-fall var(--d) linear infinite;animation-delay:var(--delay)}
/* Separate wings hinge in 3D. Flight direction belongs to the outer path. */
.butterfly{perspective:600px;transform-style:preserve-3d;pointer-events:none}.butterfly-model{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(25deg);filter:drop-shadow(0 7px 5px #6d3d492b)}.wing,.butterfly-body{position:absolute;inset:0;background:url('assets/butterfly-watercolor.png') center/contain no-repeat;backface-visibility:visible}.wing-left{clip-path:inset(0 50% 0 0);transform-origin:50% 50%;animation:wing-left .55s ease-in-out infinite alternate}.wing-right{clip-path:inset(0 0 0 50%);transform-origin:50% 50%;animation:wing-right .55s ease-in-out infinite alternate}.butterfly-body{clip-path:inset(0 46% 0 46%);transform:translateZ(1px)}.flying .wing{animation-duration:.14s}.resting .wing{animation-duration:1.7s}.startled .wing{animation-duration:.075s}.messenger{width:105px;height:105px;top:-48px;left:calc(100% - 57px);z-index:8}.scene-butterfly{position:absolute;width:105px;height:105px;top:90px;right:8%;z-index:5}.footer-butterfly{position:relative;width:105px;height:105px;margin:0 auto 35px}
nav{background:#fff8f0;padding-right:150px}nav a{color:#8a3d57}nav button{font-size:12px}.hero{background:radial-gradient(ellipse at 50% 45%,#fff9ed 10%,transparent 65%),linear-gradient(#ffe5e7,#ffefe4);min-height:1120px;padding-top:60px}.hero-light{position:absolute;inset:0;background:radial-gradient(ellipse at 20% 20%,#fff9d6aa,transparent 40%);animation:light-shift 10s ease-in-out infinite alternate}.hero h2{font-size:clamp(125px,14vw,185px);color:#a63161;margin-top:8px}#blur-copy{font-size:25px;margin-top:20px}.anniversary{position:relative;width:380px;height:400px;margin:0 auto 15px;perspective:900px}.anniversary-ring{position:absolute;inset:25px 14px 20px;border:1px solid #bb855a88;border-radius:50%;box-shadow:0 0 0 12px #fff8eb66,0 0 0 13px #cda08344;transform:rotate(-12deg)}.anniversary-ring:after{content:'';position:absolute;inset:15px;border:1px dashed #bd855c80;border-radius:50%}.foil-one{font:bold 300px/.98 'Playfair Display';position:relative;z-index:2;color:#c07d52;background:linear-gradient(115deg,#91502e 5%,#d8a46e 25%,#fff0c3 36%,#bb7849 46%,#f1d4a4 57%,#96532f 76%,#e8bc81 90%);background-size:180% 100%;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(2px 4px 0 #af6c43) drop-shadow(8px 14px 9px #a05c552b);transform:rotate(-5deg);animation:foil-shine 8s ease-in-out infinite}.anniversary-ribbon{position:absolute;z-index:4;bottom:46px;left:14px;right:14px;background:linear-gradient(110deg,#b44c73,#d9859f,#b84d75);color:#fff7e9;font-size:11px;letter-spacing:2px;padding:9px 20px;box-shadow:0 8px 20px #923b5321;clip-path:polygon(0 0,100% 0,96% 50%,100% 100%,0 100%,4% 50%);transform:rotate(-4deg)}.anniversary-ribbon em{font:45px 'Parisienne';letter-spacing:0;color:#fffaf0;margin-left:10px}.anniversary-flowers svg{position:absolute;width:100px;height:100px;bottom:20px;left:-5px;color:#d983a7;z-index:3;filter:drop-shadow(0 5px 5px #7d4d4122)}.anniversary-flowers svg:nth-child(2){width:65px;height:65px;left:60px;bottom:0;color:#ecc294}.anniversary-flowers svg:nth-child(3){left:auto;right:-10px;bottom:90px;color:#eaa1b5;width:85px;height:85px}.anniversary-flowers svg:nth-child(4){left:25px;bottom:160px;width:45px;height:45px;color:#cda073}.anniversary-star{position:absolute;color:#b77b42;width:28px;height:28px;animation:twinkle 4s infinite;z-index:5}.star-a{right:0;top:80px}.star-b{left:8px;top:95px;width:16px;animation-delay:1s}.star-c{right:95px;top:12px;width:18px;animation-delay:2s}.hero-note{font-size:17px}.hero-note em{font-size:26px}.hero-flowers svg{color:#e6b3a0;bottom:8%;}.hero-flowers svg:nth-child(2){color:#e7a2b7;bottom:3%}.hero-flowers svg:nth-child(3){color:#f2cfa6;bottom:-100px}.scroll-cue{margin:28px auto 0;gap:3px;width:max-content;max-width:90%;font-size:12px}.cue-butterfly{width:80px;height:65px;position:relative;transform:rotate(35deg)}.scroll-cue .cue-label{font:13px 'DM Sans';animation:none}.scroll-cue .cue-arrow{font:22px 'DM Sans';animation:bob 2s infinite}.journey,.journey-stage{background:#fff0e5}.journey-stage .eyebrow{font-size:11px}.journey-text em{color:#a53162}.growing-garden svg{color:#dc8ca6}.growing-garden svg:nth-child(2n){color:#e4b47d}.growing-garden svg:nth-child(3){color:#edb6be}.journey-hint{font-size:10px;color:#784657;background:#fffcf4c9}.wish-garden{background:linear-gradient(#fff1e4,#fff8ed 60%,#ffe8e6);padding:85px 20px 75px}.wish-garden h2{font-size:clamp(46px,5.3vw,72px);margin-bottom:22px}.wish-garden .game-instruction{font-size:15px;color:#784657}.game-progress{display:flex;justify-content:center;gap:25px;align-items:center;margin:27px auto 0;position:relative;z-index:4}.game-progress>span{font-size:12px;display:flex;align-items:center;gap:7px}.game-progress i{width:8px;height:8px;border:1px solid #b28c7c;border-radius:50%;display:inline-block;transition:background .3s}.game-progress .done i{background:#aa4969;border-color:#aa4969;box-shadow:0 0 0 4px #eebcbd66}.game-progress b{font-size:11px;font-weight:500;border-left:1px solid #cfae99;padding-left:20px}.party-stage{height:340px;max-width:600px;margin:10px auto 0;position:relative;perspective:800px}.party-halo{position:absolute;width:300px;height:300px;left:calc(50% - 150px);top:10px;border-radius:50%;background:radial-gradient(circle,#fff9d5aa,transparent 70%)}.cake{position:absolute;width:230px;height:165px;left:calc(50% - 115px);bottom:30px;filter:drop-shadow(0 18px 10px #ac775e1c)}.cake-top{position:absolute;height:65px;width:180px;left:25px;top:0;border-radius:50% 50% 8px 8px/25% 25% 10% 10%;background:linear-gradient(90deg,#eaa8b5,#ffe2dc 40%,#efbbbe 80%);box-shadow:inset 0 10px #fff4df,inset 0 14px #efcab2;z-index:3}.cake-top span{position:absolute;inset:18px 0 0;font:35px 'Parisienne';color:#ab5c64}.cake-bottom{position:absolute;inset:48px 0 20px;border-radius:12px 12px 25px 25px/10px 10px 15px 15px;background:linear-gradient(90deg,#d7929f,#f8c7ce 40%,#dfa0ad);border-top:15px solid #fff3df;display:flex;justify-content:space-evenly;align-items:center}.cake-bottom i{width:12px;height:12px;border-radius:50%;background:#fff1d2;box-shadow:0 18px 0 -3px #b8756d}.cake-plate{position:absolute;bottom:0;left:-20px;right:-20px;height:23px;border-radius:50%;background:linear-gradient(#fffaf1,#ddbfa1);z-index:4;box-shadow:0 3px 0 #bf9269}.candle{position:absolute;bottom:155px;left:calc(50% - 30px);width:60px;height:100px;z-index:5;border:0;background:none;padding:0;opacity:.25;transition:opacity .5s;cursor:default}.candle:disabled{opacity:.25}.candle-one{display:block;font:bold 82px/1 'Playfair Display';background:repeating-linear-gradient(125deg,#fff1d0 0 7px,#c18161 7px 12px);background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(1px 1px #bc7e58)}.flame{position:absolute;left:calc(50% - 8px);width:16px;height:27px;top:-13px;border-radius:70% 15% 70% 50%;background:radial-gradient(ellipse at 55% 75%,#fffbe5 0 18%,#ffe293 28%,#edab5c 70%);transform:rotate(-20deg);opacity:0;box-shadow:0 0 20px 8px #ffe3a16e;animation:flame 1.2s ease-in-out infinite alternate}.has-candle .candle{opacity:1}.has-candle .flame{opacity:1}.party-ready .candle{cursor:pointer}.party-ready .candle:after{content:'';position:absolute;inset:-15px -10px;border:1px solid #c8886266;border-radius:50%;animation:candle-hint 2s infinite}.party-done .flame{opacity:0}.party-done .candle:after{display:none}.party-done .candle{opacity:1}.smoke{position:absolute;left:27px;top:-16px;width:3px;height:40px;border-radius:50%;background:linear-gradient(transparent,#8f7a6770);filter:blur(2px);opacity:0}.party-flowers{position:absolute;bottom:5px;left:15%;right:15%;display:flex;justify-content:center;gap:0;align-items:flex-end;z-index:6;pointer-events:none}.party-flowers svg{width:70px;height:70px;color:#c9668f;transform:scale(0);transform-origin:50% 100%;transition:transform .8s cubic-bezier(.2,1.5,.4,1)}.party-flowers svg:nth-child(even){width:50px;height:50px;color:#e2b477}.party-flowers svg:nth-child(3){color:#e898b3;width:80px;height:80px}.has-flowers .party-flowers svg{transform:scale(1) rotate(12deg)}.party-balloons{position:absolute;inset:0;pointer-events:none}.balloon{position:absolute;width:65px;height:85px;border-radius:50% 50% 46% 46%;background:radial-gradient(circle at 30% 25%,#fff7e9b0,transparent 28%),linear-gradient(130deg,#e5a2b9,#c66d91);opacity:0;transform:translateY(70px) scale(.5);transition:opacity .7s,transform 1.2s cubic-bezier(.2,1,.3,1);box-shadow:inset -10px -8px 20px #a74f7022}.balloon:after{content:'';position:absolute;left:50%;top:100%;height:110px;width:16px;border-left:1px solid #bf9d85;border-radius:50%;transform:rotate(-7deg)}.balloon-a{left:10%;top:45px;rotate:-12deg}.balloon-b{left:20%;top:15px;width:50px;height:65px;background:radial-gradient(circle at 30% 25%,#fff9e8b0,transparent 25%),#e7bf90;rotate:10deg}.balloon-c{right:8%;top:40px;rotate:14deg;background:radial-gradient(circle at 30% 25%,#fff9e8a0,transparent 25%),#e3b6cc}.balloon-d{right:19%;top:5px;rotate:-8deg;width:48px;height:62px}.has-balloons .balloon{opacity:1;transform:translateY(0) scale(1);animation:balloon-sway 5s 1.2s ease-in-out infinite alternate}.has-balloons .balloon:nth-child(even){animation-delay:1.8s}.party-bunting{position:absolute;top:0;left:15%;right:15%;display:flex;justify-content:space-between;border-bottom:1px solid #cba071;padding-bottom:8px;border-radius:0 0 50% 50%;opacity:0;transform:translateY(-12px);transition:opacity .6s,transform .6s}.party-bunting i{width:25px;height:35px;background:#e39ab4;clip-path:polygon(0 0,100% 0,50% 100%);transform:translateY(12px)}.party-bunting i:nth-child(even){background:#d9b07e;transform:translateY(18px)}.party-ready .party-bunting{opacity:1;transform:none}.birthday-banner{position:absolute;z-index:7;top:75px;left:50%;transform:translateX(-50%) rotate(-5deg);width:310px;background:#fff9eaf0;border:1px solid #d0a67f;box-shadow:0 15px 40px #8e536126;padding:15px 12px;border-radius:3px}.birthday-banner span{font:italic 23px 'Playfair Display';display:block}.birthday-banner strong{font:58px 'Parisienne';display:block;color:#a92d5e}.wish-flowers{gap:42px;margin:0 auto 10px}.wish-flower{width:125px;padding:8px}.wish-flower svg{height:88px;width:88px;transition:transform .4s}.wish-flower span{font-size:13px;font-weight:500;margin-top:4px;color:#70394b}.wish-flower small{display:block;font-size:11px;color:#8a655a;margin-top:4px}.wish-flower[aria-pressed=true] svg{transform:scale(.82);filter:saturate(.75)}.wish-flower[aria-pressed=true] small{color:#9a3c5e}#wish-message{font-size:23px;min-height:60px;max-width:650px;line-height:1.5;margin:15px auto 0;color:#833d54}#keepsake{margin:15px auto 0;padding:22px 15px;border-top:1px solid #c7988144;max-width:550px}#keepsake>p{font-size:14px}#keepsake .text-action{font-size:22px}#replay-party{display:block;margin:10px auto 0;font-size:12px}#wish-flight .butterfly{position:absolute;width:90px;height:90px;z-index:9}
.details{background:radial-gradient(ellipse at 60% 20%,#fff5d8,transparent 55%),linear-gradient(#ffe8e6,#f8e3d3);padding:90px 20px 75px}.details h2{margin:22px 0 45px;font-size:clamp(48px,5.7vw,78px)}.event-ticket{position:relative;max-width:650px;margin:auto;background:#fffaf0;border:1px solid #c59a76;border-radius:160px 160px 7px 7px;padding:40px 42px 0;box-shadow:12px 20px 0 #cd9b8418,0 25px 50px #82544b14;transform:rotate(-2deg)}.event-ticket:before{content:'';position:absolute;inset:12px;border:1px solid #d9b491;border-radius:150px 150px 0 0;pointer-events:none}.ticket-ribbon{position:relative;font-size:10px;letter-spacing:2.5px;padding:12px 0;color:#936348}.ticket-top{display:grid;grid-template-columns:1fr 1fr;padding:18px 0 30px;gap:30px;align-items:center}.ticket-date{display:flex;flex-direction:column;gap:8px;border-right:1px solid #d9bda1;padding-right:20px}.ticket-date>span{font-size:11px;letter-spacing:1.5px;color:#7d493f}.ticket-date>strong{font:140px/.95 'Playfair Display';color:#9c3c5c;letter-spacing:-8px}.ticket-hour{display:flex;align-items:center;flex-direction:column;gap:10px}.ticket-hour>strong{font:35px 'Playfair Display';white-space:nowrap}.ticket-hour small{font-size:22px}.ticket-hour>span{font-size:9px;letter-spacing:1px}.clock-face{width:92px;height:92px;border-radius:50%;border:1px solid #b5845f;position:relative;background:repeating-conic-gradient(#b78668 0deg 1deg,transparent 1deg 30deg);box-shadow:0 0 0 5px #ead3b833 inset}.clock-face:before{content:'';position:absolute;inset:8px;border-radius:50%;background:#fffaf0}.clock-face i{position:absolute;left:50%;top:50%;height:2px;background:#a76051;transform-origin:0 50%;border-radius:2px}.clock-hour{width:22px;transform:rotate(30deg)}.clock-minute{width:31px;transform:rotate(-90deg)}.clock-face b{position:absolute;width:6px;height:6px;left:calc(50% - 3px);top:calc(50% - 3px);border-radius:50%;background:#9d4c52}.venue-link{position:relative;display:flex;justify-content:center;align-items:center;gap:20px;text-decoration:none;padding:25px 10px 20px;border-top:1px solid #d7b393;border-bottom:1px solid #d7b393;color:#793b4c;background:#fff2e840;transition:background .3s}.venue-link:hover{background:#f8e1d9}.venue-link>span{display:flex;flex-direction:column;gap:7px;text-align:left}.venue-link strong{font:34px 'Playfair Display'}.venue-link small{font-size:12px}.venue-link em{font:italic 19px 'Playfair Display';text-underline-offset:5px;text-decoration:underline}.venue-pin{width:36px;height:45px;flex-shrink:0;color:#b16b6b}.calendar-link{position:relative;display:flex;align-items:center;justify-content:center;gap:18px;min-height:65px;font:italic 20px 'Playfair Display';text-decoration:none}.calendar-link span{font:25px 'DM Sans'}.ticket-perforation{border-top:1px dashed #bd987c;margin:0 -42px}.ticket-perforation:before,.ticket-perforation:after{content:'';position:absolute;bottom:49px;width:18px;height:18px;border-radius:50%;background:#f7e1d2;border:1px solid #c59a76}.ticket-perforation:before{left:-10px}.ticket-perforation:after{right:-10px}.ticket-footer{font-size:9px;letter-spacing:1.4px;padding:22px 0;display:flex;justify-content:space-around}.ticket-footer span{font-size:14px}.countdown-wrap{max-width:650px;margin:60px auto 0}#countdown-title{font-size:28px;margin:0 0 30px}.countdown{gap:16px;margin:0 auto 25px;perspective:800px}.countdown>span{width:100px;min-width:0;display:block;position:relative}.countdown b{display:block;background:linear-gradient(#fff8ed 49.5%,#dcbba5 50%,#fff4e8 50.5%);border:1px solid #cdac8c;border-radius:8px;font:53px/1.5 'Playfair Display';color:#8d3854;box-shadow:0 4px 0 #d7b99e50;transform-origin:50% 50%;backface-visibility:hidden}.countdown small{font-size:9px;letter-spacing:1.6px;display:block;margin-top:13px;color:#754b40}.countdown-caption{font-size:14px}.countdown-caption em{font-family:'Playfair Display';font-size:19px}.details .scene-butterfly{right:calc(50% - 365px);top:310px;width:125px;height:125px}.rsvp{display:block;text-align:center;background:radial-gradient(ellipse at 50% 60%,#fff4e2,transparent 60%),#f8dddf;padding:85px 20px}.rsvp h2{font-size:clamp(46px,5vw,70px);margin:23px 0 40px}.family-pass{position:relative;max-width:440px;margin:auto;padding:32px 25px 25px;background:#fff8ed;box-shadow:0 25px 35px #944d5b1c;outline:1px solid #c99b79;outline-offset:-13px;border-radius:3px;transform:rotate(2deg)}.pass-eyebrow{font-size:9px;letter-spacing:2px}.pass-name{font:82px 'Parisienne';color:#a63d61;margin:10px 0 0}.family-pass>p{font:italic 20px 'Playfair Display'}.confirm-seal{display:flex;position:relative;width:155px;height:155px;margin:28px auto 17px;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;background:radial-gradient(circle at 30% 20%,#d78399,#a64165 80%);border:7px double #e7a4b4;box-shadow:0 7px 0 #8e3b58,0 15px 25px #a240652c,inset 0 0 15px #f5b7ba60;color:#fff4e7;text-decoration:none;transform:rotate(-7deg);transition:transform .3s,box-shadow .3s}.confirm-seal:hover{transform:rotate(0) scale(1.04);box-shadow:0 4px 0 #8e3b58,0 20px 30px #a240653a}.confirm-seal svg{width:26px;height:26px;color:#ffe5ce;margin-bottom:4px}.confirm-seal>span{font:22px/1.1 'Playfair Display'}.confirm-seal i{position:absolute;bottom:10px;right:26px;font-style:normal;font-size:17px}.family-pass>.pass-caption{font:12px 'DM Sans';color:#82534b;margin:25px 0}.pass-date{display:block;padding-top:20px;border-top:1px dashed #ccaa91;font-size:9px;letter-spacing:1px}.rsvp-note{font-size:14px;margin:30px auto 0}.rsvp .scene-butterfly{top:55%;left:calc(50% - 350px);right:auto}footer{background:#fff2e6;padding-top:45px}footer>span{color:#a23d5c}footer small{font-size:11px}.paused .journey-stage{min-height:800px}.paused .party-ready .candle:after{opacity:1}.paused .foil-one{background-position:45% 50%}.animated-title em{display:inline-block}.quiet{font-size:13px}.cover #skip{z-index:86}
@keyframes wing-left{from{transform:rotateY(-12deg)}to{transform:rotateY(-72deg)}}@keyframes wing-right{from{transform:rotateY(12deg)}to{transform:rotateY(72deg)}}@keyframes twinkle{0%,100%{opacity:.08;transform:scale(.5) rotate(0)}50%{opacity:.8;transform:scale(1.1) rotate(20deg)}}@keyframes petal-fall{0%{transform:translate3d(0,-30px,0) rotate(0);opacity:0}10%{opacity:.6}90%{opacity:.6}100%{transform:translate3d(130px,110vh,0) rotate(300deg);opacity:0}}@keyframes halo-breathe{50%{transform:scale(1.08) rotate(5deg);opacity:.4}}@keyframes foil-shine{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes light-shift{to{transform:translateX(12%) scale(1.15)}}@keyframes continue-arrow{50%{transform:translateX(8px)}}@keyframes flame{to{transform:rotate(-12deg) scale(.88,1.08)}}@keyframes candle-hint{0%{transform:scale(.85);opacity:.7}100%{transform:scale(1.1);opacity:0}}@keyframes balloon-sway{to{translate:8px -9px;rotate:5deg}}
@media(max-width:600px){.controls{right:12px;top:12px;bottom:auto;left:auto;transform:none;padding:2px}.controls button{width:40px;height:44px;padding:9px}.controls svg{width:21px}.cover{min-height:850px;padding-top:90px}.edition{font-size:10px;letter-spacing:1.5px}.cover h1{font-size:39px;margin-top:25px}.intro-note{font-size:13px;max-width:275px}.cover-blooms svg:nth-child(3){top:37%}#mail-stage{height:300px;margin-top:12px}#open-hint{font-size:24px}.cover-date{margin-top:24px}.cover-date strong{font-size:24px}.cover-date span{font-size:13px}.messenger{width:92px;height:92px;left:calc(100% - 55px);top:-44px}.letter-top{font-size:7px;letter-spacing:1px}.letter-bottom{font-size:7px;letter-spacing:.7px}.letter-name{font-size:42px}#letter-words{font-size:16px}.letter.reading{height:310px!important}.letter.reading .letter-name{font-size:58px}.letter.reading #letter-words{font-size:21px}.letter-continue{font-size:24px;top:calc(48% + 185px)}nav{padding:15px 112px 12px 20px}nav button{font-size:10px;max-width:100px;line-height:1.4}nav a{font-size:29px}nav a span{display:none}.hero{min-height:1040px;padding-top:45px}.hero h2{font-size:136px;margin-top:10px}.hero>.eyebrow{font-size:9px;max-width:285px;margin:auto;line-height:1.8}#blur-copy{font-size:22px;margin-top:22px}.anniversary{width:290px;height:330px;margin-top:12px}.anniversary-ring{inset:22px 10px 25px}.foil-one{font-size:245px}.anniversary-ribbon{bottom:40px;left:8px;right:8px;font-size:10px;padding:8px 10px}.anniversary-ribbon em{font-size:38px}.anniversary-flowers svg{width:75px;height:75px;bottom:12px;left:0}.anniversary-flowers svg:nth-child(2){width:45px;height:45px;left:65px}.anniversary-flowers svg:nth-child(3){width:60px;height:60px;right:0;bottom:90px}.anniversary-flowers svg:nth-child(4){left:20px;bottom:130px;width:35px;height:35px}.hero-note{font-size:16px}.hero-note em{font-size:25px}.scroll-cue{margin-top:30px}.hero-flowers svg:nth-child(3){bottom:-110px}.eyebrow{font-size:9px;letter-spacing:1.3px}.journey-stage .eyebrow{font-size:10px}.journey-hint{bottom:25px;font-size:9px}.journey-stage{padding-top:80px}.journey-text p{font-size:42px}.wish-garden,.details,.rsvp{padding:70px 20px}.wish-garden h2{font-size:45px;margin-top:18px}.wish-garden .game-instruction{font-size:14px;max-width:290px;margin:auto}.game-progress{gap:15px;margin-top:23px}.game-progress>span{font-size:11px;gap:5px}.game-progress b{padding-left:12px;font-size:10px}.party-stage{height:325px;margin-top:20px}.cake{width:200px;left:calc(50% - 100px);height:150px;bottom:25px}.cake-top{width:160px;left:20px;height:60px}.cake-bottom{top:45px}.candle{bottom:140px}.party-flowers{left:5%;right:5%;bottom:2px}.party-flowers svg{width:60px;height:60px}.party-flowers svg:nth-child(3){width:70px;height:70px}.balloon{width:47px;height:62px}.balloon-a{left:0;top:75px}.balloon-b{left:10%;width:38px;height:52px;top:35px}.balloon-c{right:0;top:75px}.balloon-d{right:10%;top:30px;width:37px;height:50px}.party-bunting{left:6%;right:6%;top:0}.party-bunting i{width:20px;height:25px}.birthday-banner{width:275px;top:90px}.birthday-banner span{font-size:20px}.birthday-banner strong{font-size:50px}.wish-flowers{gap:10px;margin-top:10px}.wish-flower{width:100px;padding:5px}.wish-flower svg{width:75px;height:75px}.wish-flower span{font-size:13px}.wish-flower small{font-size:11px}#wish-message{font-size:21px;min-height:75px;margin-top:20px}#keepsake{padding-left:0;padding-right:0}#keepsake>p{font-size:13px}#keepsake .text-action{font-size:21px}.scene-butterfly{width:75px;height:75px;right:-8px;top:10px}.details .scene-butterfly{right:-5px;top:245px;width:90px;height:90px}.details h2{font-size:52px;margin-bottom:40px}.event-ticket{padding:35px 20px 0;border-radius:110px 110px 5px 5px;transform:rotate(-1.5deg)}.event-ticket:before{inset:8px;border-radius:102px 102px 0 0}.ticket-ribbon{font-size:8px;letter-spacing:1.8px}.ticket-top{gap:12px;padding:16px 0 25px}.ticket-date{padding-right:12px;gap:8px}.ticket-date>strong{font-size:105px;letter-spacing:-5px}.ticket-date>span{font-size:9px;letter-spacing:.8px}.ticket-hour>strong{font-size:29px}.ticket-hour small{font-size:17px}.ticket-hour>span{font-size:7px;letter-spacing:.6px}.clock-face{width:68px;height:68px}.clock-hour{width:17px}.clock-minute{width:23px}.venue-link{gap:12px;padding:22px 0}.venue-pin{width:28px;height:37px}.venue-link strong{font-size:29px}.venue-link small{font-size:11px;line-height:1.6;max-width:215px}.venue-link em{font-size:19px}.calendar-link{font-size:19px;min-height:62px}.ticket-perforation{margin:0 -20px}.ticket-footer{font-size:7px;letter-spacing:.8px;padding:20px 0}.ticket-perforation:before,.ticket-perforation:after{bottom:44px}.countdown-wrap{margin-top:50px}#countdown-title{font-size:26px;max-width:270px;margin:0 auto 25px;line-height:1.3}.countdown{gap:9px;max-width:340px}.countdown>span{width:25%}.countdown b{font-size:36px;border-radius:5px;line-height:1.6}.countdown small{font-size:8px;letter-spacing:.6px;margin-top:10px}.countdown-caption{font-size:12px}.countdown-caption em{font-size:17px}.rsvp h2{font-size:44px;margin-bottom:35px}.family-pass{padding:30px 20px 25px;max-width:330px}.pass-name{font-size:76px}.family-pass>p{font-size:18px}.confirm-seal{width:145px;height:145px}.rsvp .scene-butterfly{left:auto;right:-12px;top:51%;width:85px;height:85px}.pass-eyebrow{font-size:8px;letter-spacing:1.3px}.pass-date{font-size:8px;letter-spacing:.5px}.rsvp-note{font-size:13px}footer{padding-bottom:70px}footer small{font-size:10px}.footer-butterfly{width:90px;height:90px;margin-bottom:20px}.paused .journey-stage{padding-bottom:190px}.paused .journey-text p{font-size:29px}}
.flame{top:5px}.smoke{top:5px}.wish-flower:nth-child(2){color:#d5ad82}.wish-flower:nth-child(3){color:#dc92aa}
.paused *{transition:none!important}@media(max-width:600px){.controls button{width:44px}.venue-link small{font-size:12px}}
@media(prefers-reduced-motion:reduce){.butterfly-model{transform:rotateX(15deg)}.wing-left{transform:rotateY(-15deg)}.wing-right{transform:rotateY(15deg)}}
