@font-face{font-family:Fusion Pixel CN;src:url(/assets/fonts/fusion-pixel-cn.woff2)format("woff2");font-display:swap;font-style:normal;font-weight:400}:root{--ink:#563725;--cream:#fff2c9;--paper:#fff7d9;--green:#5f963f;--deep-green:#315f35;--gold:#f2b64b;--coral:#d96d55;--pixel-shadow:0 4px 0 #523825, 0 7px 0 #3120153d;--pixel-font:"Fusion Pixel CN", monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;background:#183847}body{color:var(--ink);font-family:var(--pixel-font);font-synthesis:none;font-kerning:none;letter-spacing:.04em;text-rendering:optimizespeed;-webkit-font-smoothing:none;background:#e8d9a5;margin:0;font-size:16px;font-weight:400;overflow:hidden}button,a{font:inherit}button{color:inherit}h1,h2,h3,strong,b,time{font-family:var(--pixel-font);font-weight:400}.invitation{scroll-behavior:smooth;scroll-snap-type:y mandatory;overscroll-behavior-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-width:none;background:#86c96f;width:100%;max-width:520px;height:100svh;margin:0 auto;scroll-padding-block:1px;overflow:hidden auto;box-shadow:0 0 80px #00000073}.invitation::-webkit-scrollbar{display:none}.chapter{isolation:isolate;scroll-snap-align:start;scroll-snap-stop:always;flex-direction:column;align-items:center;width:100%;height:100svh;min-height:100svh;padding:72px 24px;display:flex;position:relative;overflow:hidden}.petal-rain{z-index:45;pointer-events:none;width:min(100vw,520px);position:fixed;inset:0 auto 0 50%;overflow:hidden;transform:translate(-50%)}.petal-rain i{opacity:.82;background:linear-gradient(135deg,#ffd0c8 0 25%,#f28c91 26% 57%,#cf4e69 58% 100%);border:1px solid #79304373;border-radius:85% 18% 82% 16%;width:10px;height:14px;animation:12s linear infinite rose-fall;position:absolute;top:-16vh;box-shadow:2px 2px #7b2e3d33}.petal-rain i:first-child{animation-duration:11s;animation-delay:-2s;left:4%}.petal-rain i:nth-child(2){width:8px;height:11px;animation-duration:14s;animation-delay:-8s;left:11%}.petal-rain i:nth-child(3){animation-duration:12.5s;animation-delay:-5s;left:18%}.petal-rain i:nth-child(4){width:12px;height:16px;animation-duration:15s;animation-delay:-10s;left:25%}.petal-rain i:nth-child(5){animation-duration:13s;animation-delay:-1s;left:32%}.petal-rain i:nth-child(6){width:8px;height:12px;animation-duration:10.5s;animation-delay:-7s;left:39%}.petal-rain i:nth-child(7){animation-duration:16s;animation-delay:-11s;left:46%}.petal-rain i:nth-child(8){width:12px;height:15px;animation-duration:12s;animation-delay:-4s;left:53%}.petal-rain i:nth-child(9){animation-duration:14.5s;animation-delay:-9s;left:60%}.petal-rain i:nth-child(10){width:8px;height:11px;animation-duration:11.5s;animation-delay:-3s;left:67%}.petal-rain i:nth-child(11){animation-duration:15.5s;animation-delay:-12s;left:74%}.petal-rain i:nth-child(12){width:12px;height:16px;animation-duration:13.5s;animation-delay:-6s;left:81%}.petal-rain i:nth-child(13){animation-duration:10s;animation-delay:-.5s;left:88%}.petal-rain i:nth-child(14){width:8px;height:12px;animation-duration:16s;animation-delay:-8.5s;left:95%}.petal-rain i:nth-child(15){animation-duration:17s;animation-delay:-13s;left:15%}.petal-rain i:nth-child(16){width:7px;height:10px;animation-duration:15s;animation-delay:-6.5s;left:43%}.petal-rain i:nth-child(17){animation-duration:18s;animation-delay:-14s;left:71%}.petal-rain i:nth-child(18){width:11px;height:15px;animation-duration:12.8s;animation-delay:-4.5s;left:91%}.heart-burst{z-index:70;pointer-events:none;width:min(100vw,520px);position:fixed;inset:0 auto 0 50%;overflow:hidden;transform:translate(-50%)}.heart-burst i{color:#f49a9b;font:normal 20px var(--pixel-font);opacity:0;text-shadow:2px 2px #713b4233,0 0 9px #ffdbbeb3;animation:2.8s cubic-bezier(.16,.68,.25,1) forwards pixel-heart-burst;animation-delay:var(--d,0s);position:absolute;top:58%;left:50%}.heart-burst i:nth-child(3n){color:#ffc3b5}.heart-burst i:nth-child(3n+1){color:#f39aa8}.heart-burst i:nth-child(3n+2){color:#ffe0ba}.heart-burst i:first-child{--x:-205px;--y:-320px;--s:.9;--r:-28deg;--d:20ms}.heart-burst i:nth-child(2){--x:-145px;--y:-410px;--s:1.2;--r:18deg;--d:.12s}.heart-burst i:nth-child(3){--x:-78px;--y:-365px;--s:.75;--r:-12deg;--d:.2s}.heart-burst i:nth-child(4){--x:-25px;--y:-455px;--s:1.05;--r:25deg;--d:60ms}.heart-burst i:nth-child(5){--x:42px;--y:-390px;--s:.82;--r:-18deg;--d:.18s}.heart-burst i:nth-child(6){--x:105px;--y:-440px;--s:1.18;--r:30deg;--d:.1s}.heart-burst i:nth-child(7){--x:178px;--y:-345px;--s:.95;--r:-24deg;--d:.24s}.heart-burst i:nth-child(8){--x:215px;--y:-260px;--s:.7;--r:18deg;--d:40ms}.heart-burst i:nth-child(9){--x:-225px;--y:-160px;--s:1.15;--r:32deg;--d:.16s}.heart-burst i:nth-child(10){--x:-162px;--y:-225px;--s:.72;--r:-20deg;--d:.28s}.heart-burst i:nth-child(11){--x:-94px;--y:-185px;--s:1.3;--r:14deg;--d:80ms}.heart-burst i:nth-child(12){--x:88px;--y:-210px;--s:1.1;--r:-16deg;--d:.26s}.heart-burst i:nth-child(13){--x:155px;--y:-165px;--s:.78;--r:24deg;--d:.14s}.heart-burst i:nth-child(14){--x:225px;--y:-95px;--s:1.22;--r:-30deg;--d:.22s}.heart-burst i:nth-child(15){--x:-210px;--y:-35px;--s:.85;--r:16deg;--d:.3s}.heart-burst i:nth-child(16){--x:-142px;--y:45px;--s:1.25;--r:-22deg;--d:.1s}.heart-burst i:nth-child(17){--x:-70px;--y:125px;--s:.7;--r:26deg;--d:.2s}.heart-burst i:nth-child(18){--x:-18px;--y:185px;--s:1.08;--r:-14deg;--d:40ms}.heart-burst i:nth-child(19){--x:52px;--y:140px;--s:.88;--r:20deg;--d:.24s}.heart-burst i:nth-child(20){--x:118px;--y:88px;--s:1.3;--r:-26deg;--d:.12s}.heart-burst i:nth-child(21){--x:190px;--y:25px;--s:.76;--r:18deg;--d:.28s}.heart-burst i:nth-child(22){--x:-118px;--y:-300px;--s:1.35;--r:-18deg;--d:.34s}.heart-burst i:nth-child(23){--x:132px;--y:-305px;--s:1;--r:24deg;--d:.32s}.heart-burst i:nth-child(24){--x:12px;--y:-285px;--s:.8;--r:-10deg;--d:.38s}@keyframes rose-fall{0%{transform:translateY(-12vh)rotate(0)}24%{transform:translate(22px,24vh)rotate(115deg)}49%{transform:translate(-15px,51vh)rotate(235deg)}74%{transform:translate(19px,78vh)rotate(360deg)}to{transform:translate(-9px,118vh)rotate(520deg)}}.chapter-nav{z-index:50;gap:9px;display:grid;position:fixed;top:50%;right:max(10px,50vw - 240px);transform:translateY(-50%)}.chapter-nav a{background:#ffffff8c;border:1px solid #472d1f99;width:8px;height:8px;box-shadow:1px 1px #00000040}.chapter-nav a:hover,.chapter-nav a:focus-visible{background:#ffe17d;transform:scale(1.35)}.music-control{z-index:52;top:max(14px,env(safe-area-inset-top));color:#fff4c8;cursor:pointer;background:#4d3a28e6;border:3px solid #4c3426;align-items:center;gap:7px;min-width:74px;height:38px;padding:4px 9px 4px 6px;display:flex;position:fixed;left:max(12px,50vw - 238px);box-shadow:inset 0 0 0 2px #b37b4a,3px 4px #251d1547}.music-control span{color:#ffe28a;transform-origin:50%;background:#6b4931;border:2px solid #d19a59;place-items:center;width:24px;height:24px;font-size:18px;line-height:1;display:grid}.music-control b{letter-spacing:.06em;font-size:13px}.music-control.is-playing span{animation:1.35s ease-in-out infinite music-pulse}.music-control.is-muted{opacity:.78}.music-control.is-muted span{color:#f6c1ad;animation:none}.music-control:active{transform:translateY(2px);box-shadow:inset 0 0 0 2px #b37b4a,1px 2px #251d1547}.music-control:focus-visible{outline-offset:3px;outline:3px solid #ffe28a}.section-heading{z-index:3;text-align:center;margin-bottom:28px;position:relative}.section-heading h2{letter-spacing:.08em;text-shadow:0 2px #fff5cc;margin:7px 0 8px;font-size:clamp(28px,8vw,40px)}.section-heading p{letter-spacing:.06em;opacity:.94;margin:0;font-size:16px;line-height:1.55}.section-heading.light{color:#fff3cf}.section-heading.light h2{text-shadow:0 3px #69402d}.tiny-label,.eyebrow{font-family:var(--pixel-font);letter-spacing:.14em;font-size:14px;font-weight:400;line-height:1.45}.hero{color:#4b3627;text-align:center;background:linear-gradient(#fff3bf0a,#264d2b14),url(/assets/farm-topdown-lite.webp) 50%/cover no-repeat;justify-content:center}.hero:before{content:"";z-index:-1;background:linear-gradient(#fff7ca0f 0 27%,#fff7ca26 35% 57%,#1b3e1f14 100%);position:absolute;inset:0}.hero:after{content:none}.hero .sky-decor{display:none}.hero-married-sign{z-index:3;top:max(48px,calc(env(safe-area-inset-top) + 40px));image-rendering:auto;filter:drop-shadow(4px 6px #3e2e1b38);pointer-events:none;width:min(68%,260px);height:auto;animation:4.8s ease-in-out infinite hero-sign-sway;position:absolute;left:50%;transform:translate(-50%)}.season-tag{color:#fff6ce;font:800 13px var(--pixel-font);letter-spacing:.1em;background:#5a8e46;border:3px solid #3d6136;padding:8px 11px 6px;position:absolute;top:24px;box-shadow:inset 0 0 0 2px #8fc466}.hero-copy{z-index:3;margin-top:-6svh;padding:4px 8px;position:relative}.hero-copy:before{content:none}.eyebrow{background:#fff7cfe0;border:2px solid #6f543b;margin:0 0 12px;padding:6px 12px;display:inline-block;box-shadow:3px 3px #48312040}.hero h1{color:#fff5cd;font-family:var(--pixel-font);text-shadow:1px 0 #72432e,-1px 0 #72432e,0 1px #72432e,0 -1px #72432e,2px 3px #3d6e3d;justify-content:center;align-items:center;gap:7px;margin:0;font-size:clamp(34px,10.5vw,54px);display:flex}.hero h1 i{color:#ee735d;font:normal 22px var(--pixel-font);animation:1.7s infinite heartbeat}.english{font:900 14px var(--pixel-font);letter-spacing:.13em;margin:10px 0 0}.couple-scene{z-index:3;filter:drop-shadow(0 5px #3a48233d);justify-content:center;align-items:flex-end;width:230px;height:150px;margin:11px 0 2px;display:flex;position:relative}.pixel-person{width:72px;height:108px;image-rendering:pixelated;transform-origin:bottom;background-image:url(/assets/wedding-outfits.png);background-repeat:no-repeat;background-size:216px 1080px;animation:3.2s ease-in-out infinite idle-breathe}.couple-scene .pixel-person{z-index:4;position:relative}.bride{background-position:0 0}.groom{background-position:0 -648px;animation-delay:-1.1s}.heart-pop{color:#ef6f62;text-shadow:2px 2px #fff0be;z-index:5;align-self:flex-start;margin:36px -13px 0;font-size:20px;animation:2.4s ease-in-out infinite float}.couple-spark{z-index:5;color:#ffe58b;background:currentColor;width:6px;height:6px;animation:1.8s steps(3,end) infinite couple-twinkle;position:absolute;box-shadow:-8px 0 0 -2px,8px 0 0 -2px,0 -8px 0 -2px,0 8px 0 -2px}.spark-one{top:16px;left:45px}.spark-two{animation-delay:-.9s;top:42px;right:42px}.sdv-flower-basket{z-index:3;width:48px;height:96px;image-rendering:pixelated;filter:drop-shadow(3px 5px #342d1c3d);background:url(/assets/sdv-flower-basket.png) 50%/contain no-repeat;animation:3.6s ease-in-out infinite alternate basket-breathe;position:absolute;bottom:0}.basket-left{left:2px}.basket-right{animation-delay:-1.8s;right:2px}.hero-butterfly{z-index:5;background:#ffd66f;width:7px;height:7px;animation:4.6s ease-in-out infinite alternate butterfly-drift;position:absolute;box-shadow:-7px -3px #f19a83,7px -3px #f19a83}.butterfly-one{top:38px;left:-2px}.butterfly-two{animation-delay:-2.3s;top:72px;right:-3px;scale:.8}.hero-glimmers{z-index:2;pointer-events:none;position:absolute;inset:-7px -15px 8px}.hero-glimmers i{background:#fff0a2;width:5px;height:5px;animation:2.8s ease-in-out infinite alternate hero-glow;position:absolute;box-shadow:0 0 7px #ffe478}.hero-glimmers i:first-child{top:15%;left:10%}.hero-glimmers i:nth-child(2){animation-delay:-.8s;top:48%;left:23%}.hero-glimmers i:nth-child(3){animation-delay:-1.5s;top:5%;left:50%}.hero-glimmers i:nth-child(4){animation-delay:-2s;top:36%;right:18%}.hero-glimmers i:nth-child(5){animation-delay:-2.4s;top:67%;right:5%}.wood-sign{z-index:4;color:#fff1bd;min-width:220px;box-shadow:inset 0 0 0 3px #c58a55,var(--pixel-shadow);background:#94603d;border:4px solid #573b28;gap:3px;padding:13px 22px 11px;display:grid;position:relative}.wood-sign:before,.wood-sign:after{content:"";background:#63412d;width:5px;height:20px;position:absolute;top:-18px}.wood-sign:before{left:32px}.wood-sign:after{right:32px}.wood-sign strong{font:900 23px var(--pixel-font);letter-spacing:.08em}.wood-sign span{letter-spacing:.09em;font-size:15px}.pet-lane{z-index:2;pointer-events:none;height:82px;position:absolute;bottom:61px;left:0;right:0;overflow:hidden}.roaming-pet{will-change:transform;width:48px;height:48px;position:absolute;left:0}.roaming-pet i{width:48px;height:48px;image-rendering:pixelated;will-change:background-position;background-repeat:no-repeat;animation:.72s linear infinite pet-steps;display:block}.dog-pet i{background-image:url(/assets/dog.png);background-position:0 -48px;background-size:192px 432px}.cat-pet i{background-image:url(/assets/cat.png);background-position:0 -48px;background-size:192px 384px}.cat-tabby{animation:15.5s linear -2s infinite pet-roam;bottom:2px}.cat-tabby i{filter:sepia(.72)saturate(1.45)hue-rotate(-12deg)brightness(1.03)contrast(1.08)}.cat-tuxedo{animation:18.5s linear -10s infinite pet-roam;bottom:27px}.cat-tuxedo i{filter:grayscale()contrast(1.75)brightness(.72)}.cat-lihua{animation:20.5s linear -13.5s infinite pet-roam;bottom:10px}.cat-lihua i{filter:sepia(.6)saturate(.8)hue-rotate(4deg)brightness(.64)contrast(1.3)}.dog-black{animation:17s linear -4.5s infinite pet-roam;bottom:31px}.dog-black i{filter:grayscale()brightness(.38)contrast(1.55)}.dog-gray{animation:22s linear -16s infinite pet-roam;bottom:5px}.dog-gray i{filter:grayscale()brightness(.82)contrast(1.2)}.scroll-cue{z-index:4;color:#fffbd8;box-shadow:none;text-align:center;letter-spacing:.06em;text-shadow:1px 0 #365c32,-1px 0 #365c32,0 1px #365c32,0 -1px #365c32,2px 3px #365c32;background:0 0;border:0;gap:1px;padding:2px 4px;font-size:18px;font-weight:700;line-height:1.35;text-decoration:none;display:grid;position:absolute;bottom:25px}.scroll-cue b{font-size:27px;line-height:.8;animation:1.2s infinite bob}.chapter-cue{color:#fff5cf;text-shadow:1px 0 #513729,-1px 0 #513729,0 1px #513729,0 -1px #513729,2px 3px #513729;bottom:12px}.sun{background:#ffe47c;width:58px;height:58px;position:absolute;top:11%;right:11%;box-shadow:0 0 0 8px #ffea893d}.cloud{opacity:.9;background:#eefcff;width:55px;height:18px;animation:13s linear infinite alternate cloud;position:absolute;box-shadow:18px -10px #eefcff,38px 0 #eefcff}.cloud-one{top:22%;left:3%}.cloud-two{animation-duration:17s;top:34%;right:18%;transform:scale(.7)}.mountain{clip-path:polygon(0 100%,0 70%,12% 70%,12% 57%,25% 57%,25% 43%,38% 43%,38% 28%,50% 28%,50% 18%,61% 18%,61% 34%,72% 34%,72% 52%,84% 52%,84% 68%,100% 68%,100% 100%);opacity:.75;background:#6d9d70;width:190px;height:92px;position:absolute;top:38%}.mountain:after{content:"";clip-path:polygon(0 100%,0 55%,15% 55%,15% 30%,30% 30%,30% 58%,44% 58%,44% 18%,57% 18%,57% 47%,70% 47%,70% 28%,84% 28%,84% 56%,100% 56%,100% 100%);background:#557f59;position:absolute;inset:35% 0 0}.mountain-one{left:-42px}.mountain-two{opacity:.62;top:40%;right:-62px;transform:scale(.85)}.farmland-row{background:repeating-linear-gradient(90deg,#d7a74d 0 12px,#e3bc62 12px 24px,#8eb84e 24px 31px);border-top:3px solid #527b3b;border-bottom:3px solid #537f3c;height:13px;position:absolute;left:0;right:0}.row-one{top:54%}.row-two{opacity:.75;top:61%}.farmhouse-sprite{width:104px;height:92px;image-rendering:pixelated;filter:drop-shadow(3px 5px #2a372333);background:url(/assets/farmhouses.png) -11px -201px/190px 302px no-repeat;position:absolute;top:45%;left:8%}.pixel-tree{background:#4a7438;border:4px solid #35542d;width:34px;height:58px;position:absolute;top:44%;box-shadow:-12px 12px #5a893f,12px 12px #5a893f,-7px -8px #6c9b48,7px -8px #6c9b48}.pixel-tree:after{content:"";background:#755035;width:7px;height:22px;position:absolute;top:45px;left:11px}.tree-one{right:11%}.tree-two{top:47%;right:28%;transform:scale(.7)}.farm-fence{filter:drop-shadow(0 3px #3d432540);background:linear-gradient(#9a6338 0 6px,#0000 6px 20px,#9a6338 20px 26px,#0000 26px),repeating-linear-gradient(90deg,#0000 0 32px,#74462f 32px 39px,#0000 39px 68px);height:34px;position:absolute;top:67%;left:0;right:0}.field-path{z-index:-1;clip-path:polygon(40% 0,60% 0,92% 100%,8% 100%);opacity:.9;background:#c7aa64;width:46%;height:43%;position:absolute;bottom:-6%;left:50%}.wildflowers{color:#fff0a0;letter-spacing:.3em;text-shadow:2px 2px #4a813e;opacity:.9;font-size:17px;position:absolute;bottom:18%;left:0;right:0}.story{background:linear-gradient(#fff7da0a,#2f5d2c12),url(/assets/garden-topdown-lite.webp) 50%/cover no-repeat;justify-content:center}.story:before{content:"";background:linear-gradient(#18372340,#274a2752 45%,#1e3e2240);position:absolute;inset:0}.story .section-heading{color:#fff4cf;width:min(100%,390px);box-shadow:none;background:0 0;border:0;margin-bottom:20px;padding:0}.story .section-heading h2{text-shadow:2px 0 #4f3526,-2px 0 #4f3526,0 2px #4f3526,0 -2px #4f3526,3px 4px #262b1b80}.story .section-heading h2,.date-section .section-heading h2{white-space:nowrap;letter-spacing:.03em;font-size:clamp(26px,7.5vw,34px)}.story .section-heading p{color:#fff8dd;text-shadow:1px 0 #4f3526,-1px 0 #4f3526,0 1px #4f3526,0 -1px #4f3526,2px 2px #4f3526}.story .section-heading .tiny-label{color:#ffe18b;text-shadow:2px 2px #4f3526}.story:after,.place:after,.rsvp-section:after{content:"";z-index:1;pointer-events:none;filter:drop-shadow(0 0 5px #ffd85f);background:#ffe787;width:5px;height:5px;animation:5.6s ease-in-out infinite alternate firefly-wander;position:absolute;top:14%;left:7%;box-shadow:72px 105px #fff2a8,286px 42px #ffd967,390px 215px #fff0a0,145px 415px #ffdc67,338px 565px #fff2a8,38px 680px #ffd967}.paper-card{z-index:2;background:var(--paper);border:4px solid #a16f3f;width:100%;position:relative;box-shadow:inset 0 0 0 3px #f0c978,6px 7px #43422338}.story-card{text-align:center;padding:30px 22px 24px}.opening-mark{color:#dc8b55;font:60px var(--pixel-font);margin:0;position:absolute;top:-11px;left:18px}.story-card>p:nth-child(2){font-family:var(--pixel-font);margin:0 0 25px;font-size:17px;line-height:1.9}.timeline{text-align:left;display:grid}.timeline article{border-top:2px dashed #d7ae6b;grid-template-columns:78px 1fr;gap:12px;padding:15px 0;display:grid}.timeline article>span{color:#8f5d3a;font:900 14px var(--pixel-font);line-height:1.45}.timeline h3{margin:0 0 5px;font-size:17px}.timeline p{color:#654532;margin:0;font-size:14px;line-height:1.55}.mail-quest{z-index:3;width:min(100%,370px);position:relative}.mail-game-scene{pointer-events:none;height:112px;margin-bottom:-14px;position:relative}.pixel-mailbox{z-index:3;width:77px;height:112px;box-shadow:none;image-rendering:pixelated;filter:drop-shadow(5px 7px #2b311c3d);background:url(/assets/pixel-mailbox-online.png) bottom/100% 100% no-repeat;border:0;padding:0;position:absolute;bottom:-4px;left:50%;transform:translate(-50%)}.pixel-mailbox:before,.pixel-mailbox:after,.pixel-mailbox i{display:none}.flying-envelope{z-index:4;color:#d45f55;width:48px;height:34px;font:900 17px var(--pixel-font);background:#fff1c8;border:4px solid #76513a;place-items:center;transition:transform .85s cubic-bezier(.22,.9,.3,1.14),opacity .5s;animation:2.2s ease-in-out infinite envelope-wiggle;display:grid;position:absolute;bottom:41px;left:calc(50% - 24px);box-shadow:4px 4px #30331e33}.flying-envelope:before,.flying-envelope:after{content:"";background:#d3a66f;width:24px;height:4px;position:absolute;top:4px}.flying-envelope:before{left:1px;rotate:28deg}.flying-envelope:after{right:1px;rotate:-28deg}.mail-quest.is-open .flying-envelope{opacity:0;transform:translate(105px,-92px)rotate(18deg)scale(.7)}.pixel-bird{z-index:2;filter:drop-shadow(2px 2px #5b4939);border-top:5px solid #fff3c7;width:20px;height:10px;animation:5s linear infinite bird-fly;position:absolute}.pixel-bird:before,.pixel-bird:after{content:"";background:#fff3c7;width:10px;height:5px;position:absolute;top:-6px}.pixel-bird:before{left:0;transform:rotate(-25deg)}.pixel-bird:after{right:0;transform:rotate(25deg)}.bird-one{top:19px;left:6%}.bird-two{animation-delay:-2.7s;top:43px;right:8%;transform:scale(.75)}.invitation-letter{text-align:left;padding:24px 23px 20px;overflow:hidden}.invitation-letter:before{content:"";pointer-events:none;border:2px dashed #d4a35e;position:absolute;inset:9px}.letter-stamp{color:#fff2c9;background:#c75f58;border:3px solid #7d4337;place-items:center;width:39px;height:39px;animation:2.2s ease-in-out infinite stamp-beat;display:grid;position:absolute;top:17px;right:18px;transform:rotate(7deg)}.letter-greeting{color:#815139;font-weight:900;margin:0 54px 12px 0!important}.invitation-letter>p{z-index:1;margin:0 0 14px;font-size:17px;line-height:1.75;position:relative}.quest-list{z-index:1;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0 15px;display:grid;position:relative}.quest-list span{color:#654532;text-align:center;background:#f5d998;border:2px solid #b77b42;gap:4px;padding:8px 3px;font-size:13px;display:grid}.quest-list b{color:#b65147;font:900 14px var(--pixel-font)}.open-mail-button{z-index:2;color:#fff4cc;width:100%;font:900 15px var(--pixel-font);letter-spacing:.06em;background:#b95c4f;border:3px solid #653b30;padding:11px 8px;display:block;position:relative;overflow:visible;box-shadow:inset 0 0 0 2px #df8166,3px 4px #47302233}.mail-button-flash{z-index:5;pointer-events:none;width:1px;height:1px;position:absolute;inset:50% auto auto 50%}.mail-button-flash i{opacity:0;background:#fff0a2;width:6px;height:6px;animation:.82s steps(5,end) forwards mail-click-spark;position:absolute;top:0;left:0;box-shadow:0 0 8px #ffd564}.mail-button-flash i:first-child{--mx:-128px;--my:-47px}.mail-button-flash i:nth-child(2){--mx:-62px;--my:-61px;animation-delay:50ms}.mail-button-flash i:nth-child(3){--mx:8px;--my:-59px;animation-delay:.1s}.mail-button-flash i:nth-child(4){--mx:113px;--my:-43px;animation-delay:40ms}.mail-button-flash i:nth-child(5){--mx:128px;--my:38px;animation-delay:.12s}.mail-button-flash i:nth-child(6){--mx:53px;--my:58px;animation-delay:70ms}.mail-button-flash i:nth-child(7){--mx:-33px;--my:61px;animation-delay:.14s}.mail-button-flash i:nth-child(8){--mx:-122px;--my:34px;animation-delay:90ms}.mail-quest.is-open .invitation-letter{animation:.7s cubic-bezier(.2,.88,.28,1.12) letter-received,4.2s ease-in-out .7s infinite text-group-float}.mail-quest.is-open .open-mail-button{background:#6e8a4d;box-shadow:inset 0 0 0 2px #a9bf6c,3px 4px #47302233}.farm-sprites{z-index:3;justify-content:space-around;align-items:flex-end;width:100%;height:75px;margin-top:-7px;display:flex}.junimo-sprite,.chicken-sprite,.duck-sprite,.pig-sprite,.rabbit-sprite,.hut-sprite{image-rendering:pixelated;background-repeat:no-repeat}.junimo-sprite{background-image:url(/assets/junimo.png);background-position:0 0;background-size:384px 384px;width:48px;height:48px;animation:1.7s infinite hop}.chicken-sprite{background-image:url(/assets/chicken.png);background-position:0 0;background-size:192px 336px;width:48px;height:48px;animation:5.5s ease-in-out infinite chicken-walk}.duck-sprite{background-image:url(/assets/duck.png);background-position:0 0;background-size:128px 224px;width:32px;height:32px;animation:1.4s steps(4,end) infinite animal-peck}.pig-sprite{background-image:url(/assets/pig.png);background-position:0 -48px;background-size:192px 240px;width:48px;height:48px;animation:3.6s ease-in-out infinite pig-waddle}.farm-sprites .chicken-sprite,.farm-sprites .pig-sprite{animation:.9s step-end infinite animal-idle-48}.farm-sprites .duck-sprite{animation:.82s step-end infinite animal-idle-32}.flower-row{color:#fff1a6;text-shadow:2px 2px #57913c;transform-origin:bottom;font-size:23px;animation:2.8s ease-in-out infinite alternate flower-sway}.date-section{background:linear-gradient(#ffdb8f08,#5c331d14),url(/assets/orchard-topdown-lite.webp) 50%/cover no-repeat;justify-content:center}.date-section:before{content:"";background:linear-gradient(#272b1f29,#432a1b3d);position:absolute;inset:0}.date-section .section-heading{width:min(100%,390px);box-shadow:none;background:0 0;border:0;margin-bottom:22px;padding:0}.date-section .section-heading h2{text-shadow:2px 0 #583b2b,-2px 0 #583b2b,0 2px #583b2b,0 -2px #583b2b,3px 4px #2b1f1685}.date-section .section-heading .tiny-label{color:#ffe59b;text-shadow:2px 2px #5b3d2d}.calendar-card{z-index:3;background:#fff4d2;border:5px solid #6e4630;width:min(100%,360px);position:relative;box-shadow:inset 0 0 0 3px #e2ab58,8px 9px #2d2d233b}.calendar-top{color:#fff2ca;font:900 15px var(--pixel-font);letter-spacing:.11em;background:#bd654f;border-bottom:4px solid #6e4630;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.calendar-top b{font-size:21px}.calendar-body{padding:17px}.weekday{color:#76513d;text-align:center;letter-spacing:0;border-bottom:2px dashed #d9b984;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;padding-bottom:11px;font-size:14px;display:grid}.weekday span{place-items:center;min-width:0;display:grid}.calendar-grid{font:900 15px var(--pixel-font);font-variant-numeric:tabular-nums;text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px 4px;padding-top:12px;display:grid}.calendar-grid span{aspect-ratio:1;place-items:center;display:grid}.wedding-day{isolation:isolate;aspect-ratio:1;color:#fff6d2;width:100%;font:900 15px var(--pixel-font);text-shadow:2px 2px #8d3f3c;cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:relative}.wedding-day:before{content:"";z-index:-1;clip-path:polygon(11.11% 0,33.33% 0,33.33% 11.11%,66.66% 11.11%,66.66% 0,88.88% 0,88.88% 11.11%,100% 11.11%,100% 50%,88.88% 50%,88.88% 62.5%,77.77% 62.5%,77.77% 75%,66.66% 75%,66.66% 87.5%,55.55% 87.5%,55.55% 100%,44.44% 100%,44.44% 87.5%,33.33% 87.5%,33.33% 75%,22.22% 75%,22.22% 62.5%,11.11% 62.5%,11.11% 50%,0 50%,0 11.11%,11.11% 11.11%);filter:drop-shadow(0 0 #f2a65f)drop-shadow(3px 3px #a1423c);background:#d85f56;width:42px;height:38px;animation:2.2s steps(2,end) infinite calendar-heart-pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.date-heart-flash{z-index:4;pointer-events:none;position:absolute;inset:0}.date-heart-flash i{opacity:0;background:#fff0a0;width:5px;height:5px;animation:.78s steps(5,end) forwards date-click-spark;position:absolute;top:50%;left:50%;box-shadow:0 0 7px #ffe36e}.date-heart-flash i:first-child{--sx:-31px;--sy:-28px}.date-heart-flash i:nth-child(2){--sx:0px;--sy:-38px;animation-delay:40ms}.date-heart-flash i:nth-child(3){--sx:31px;--sy:-27px;animation-delay:80ms}.date-heart-flash i:nth-child(4){--sx:39px;--sy:1px;animation-delay:.12s}.date-heart-flash i:nth-child(5){--sx:28px;--sy:29px;animation-delay:50ms}.date-heart-flash i:nth-child(6){--sx:-2px;--sy:38px;animation-delay:.1s}.date-heart-flash i:nth-child(7){--sx:-32px;--sy:27px;animation-delay:.14s}.date-heart-flash i:nth-child(8){--sx:-39px;--sy:0px;animation-delay:70ms}.date-note{z-index:3;color:#fff7d5;letter-spacing:.07em;background:#354f40;border:3px solid #263b30;margin:18px 0 0;padding:10px 14px;font-size:15px;line-height:1.45;box-shadow:inset 0 0 0 1px #6f8a70}.date-treasure{cursor:pointer;min-width:290px;font-family:var(--pixel-font);align-items:center;gap:11px;display:flex;position:relative}.date-treasure i{background:#bb6c38;border:3px solid #5d3c2b;flex:0 0 42px;width:42px;height:28px;display:block;position:relative;box-shadow:inset 0 0 0 2px #e8a74f}.date-treasure i:before{content:"";transform-origin:0 100%;background:#d8893f;border:3px solid #5d3c2b;height:16px;transition:transform .55s cubic-bezier(.2,.9,.3,1.12);position:absolute;top:-14px;left:-3px;right:-3px}.date-treasure i:after{content:"";background:#f4cf62;border:2px solid #6a452d;width:7px;height:9px;position:absolute;top:6px;left:15px}.date-treasure.is-found{background:#5c7544;border-color:#344a34;box-shadow:inset 0 0 0 2px #93ab61,0 0 14px #ffda6a7a}.date-treasure.is-found i:before{transform:rotate(-42deg)translate(-2px,-3px)}.date-sparkles{z-index:5;pointer-events:none;width:210px;height:90px;position:absolute;bottom:78px;left:50%;transform:translate(-50%)}.date-sparkles i{color:#ffe285;font:900 19px var(--pixel-font);text-shadow:2px 2px #714531;animation:1.8s ease-in-out infinite date-loot;position:absolute}.date-sparkles i:first-child{bottom:8px;left:8%}.date-sparkles i:nth-child(2){animation-delay:-.4s;top:4px;left:33%}.date-sparkles i:nth-child(3){animation-delay:-.8s;bottom:18px;right:27%}.date-sparkles i:nth-child(4){animation-delay:-1.1s;top:13px;right:5%}.rabbit-sprite{z-index:2;background-image:url(/assets/rabbit.png);background-position:0 0;background-size:192px 240px;width:48px;height:48px;animation:2.6s ease-in-out infinite rabbit-hop;position:absolute;bottom:45px;right:8%}.date-section .rabbit-sprite{animation:.88s step-end infinite animal-idle-48}.hill-scene{background:radial-gradient(at 20% 100%,#3f6945 0 45%,#0000 46%),radial-gradient(at 80% 110%,#34583f 0 50%,#0000 51%);height:120px;position:absolute;bottom:0;left:0;right:0}.date-section .hill-scene{display:none}.hut-sprite{background-image:url(/assets/junimo-hut.png);background-position:0 0;background-size:304px 96px;width:72px;height:72px;position:absolute;bottom:14px;right:16%}.place{background:linear-gradient(#ffdea408,#53431f14),url(/assets/festival-topdown-lite.webp) 50%/cover no-repeat;padding:88px 20px 44px}.place .section-heading{margin-bottom:14px}.place .address-card{margin-top:12px;padding:14px}.place .schedule{margin-top:15px}.place .schedule article{margin-bottom:12px}.place .dress-code{margin-top:0;padding:9px 14px}.place:before{content:"";background:linear-gradient(#21311d47,#2a3a1d57 50%,#23351e4d);position:absolute;inset:0}.place .section-heading{color:#fff3cc;width:min(100%,390px);box-shadow:none;background:0 0;border:0;padding:0}.place .section-heading h2{text-shadow:2px 0 #523727,-2px 0 #523727,0 2px #523727,0 -2px #523727,3px 4px #2b1f1685;white-space:nowrap;letter-spacing:.02em;font-size:clamp(23px,6.4vw,30px)}.place .section-heading p{color:#fff9df;text-shadow:1px 0 #523727,-1px 0 #523727,0 1px #523727,0 -1px #523727,2px 2px #523727}.place .section-heading .tiny-label{color:#ffe08a;text-shadow:2px 2px #523727}.address-card{grid-template-columns:auto 1fr;align-items:center;gap:9px 13px;padding:19px;display:grid}.map-pin{background:#d86f55;border:3px solid #7c4937;justify-content:center;align-items:center;width:44px;height:44px;padding:0;animation:2.4s ease-in-out infinite pin-hop;display:flex}.map-pin i{border:3px solid #fff2c3;width:15px;height:15px;display:block;position:relative}.map-pin i:before,.map-pin i:after{content:"";background:#fff2c3;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-pin i:before{width:27px;height:3px}.map-pin i:after{width:3px;height:27px}.venue-heading{min-width:0}.address-card small{letter-spacing:.1em;font-size:14px}.address-card h3{white-space:nowrap;letter-spacing:.02em;margin:3px 0 0;font-size:21px;font-stretch:100%;transform:none}.address-card .venue-address{white-space:nowrap;letter-spacing:0;text-align:center;grid-column:1/-1;width:100%;margin:0;font-size:min(15px,3.44828vw - 2.48276px);line-height:1.45;transform:none}.venue-address span{padding:0;display:inline}.address-actions{grid-column:1/-1;gap:7px;display:grid}.address-card button{color:#fff0c0;cursor:pointer;background:#5e8a45;border:3px solid #3d5c34;min-height:46px;padding:12px 10px;font-size:15px;font-weight:800;box-shadow:inset 0 0 0 2px #8eb962}.address-card button.copy-address{color:#fff4d0;background:#a9654d;border-color:#6d4233;box-shadow:inset 0 0 0 2px #d8946b}.address-card button:active{translate:0 2px}.schedule{z-index:3;width:100%;margin-top:30px;position:relative}.place .schedule{box-shadow:none;background:0 0;border:0;padding:0}.schedule:before{content:"";border-left:3px dashed #b27f4d;position:absolute;top:15px;bottom:15px;left:76px}.place .schedule:before{filter:drop-shadow(1px 1px #654633);border-color:#f3c274;top:15px;bottom:15px;left:76px}.schedule article{grid-template-columns:60px 18px 1fr;align-items:start;gap:8px;margin:0 0 22px;display:grid}.schedule time{color:#6d3d2d;font:900 16px var(--pixel-font);padding-top:2px}.schedule-dot{z-index:2;background:#e87855;border:3px solid #fff1c5;width:14px;height:14px;margin-top:2px;animation:1.9s steps(2,end) infinite quest-pulse;box-shadow:0 0 0 2px #8c5c3e}.schedule article:nth-child(2) .schedule-dot{animation-delay:-.45s}.schedule article:nth-child(3) .schedule-dot{animation-delay:-.9s}.schedule article:nth-child(4) .schedule-dot{animation-delay:-1.35s}.schedule h3{margin:0 0 3px;font-size:17px}.schedule p{color:#5f422e;margin:0;font-size:14px;line-height:1.45}.place .schedule time,.place .schedule h3,.place .schedule p{color:#fff5d5;text-shadow:1px 0 #553a2a,-1px 0 #553a2a,0 1px #553a2a,0 -1px #553a2a,2px 2px #553a2a}.dress-code{z-index:2;text-align:center;background:#fff7d6eb;border:2px dashed #a67647;margin:6px 0 0;padding:11px 15px;font-size:14px;line-height:1.55}.guest-lane{z-index:2;pointer-events:none;width:100%;height:68px;margin-top:10px;position:relative;overflow:hidden}.festival-dancer,.festival-worker,.dancing-guest{width:32px;height:64px;animation:1.35s steps(3,end) infinite alternate guest-dance;position:absolute;bottom:0}.festival-dancer i,.festival-worker i,.dancing-guest i{width:32px;height:64px;image-rendering:pixelated;background-repeat:no-repeat;animation:.88s linear infinite guest-steps;display:block}.guest-purple i{background-image:url(/assets/guest-purple.png);background-size:128px}.guest-gold i{background-image:url(/assets/guest-gold.png);background-size:128px}.guest-red i{background-image:url(/assets/guest-red.png);background-size:128px}.guest-green i{background-image:url(/assets/guest-green.png);background-size:128px}.guest-brown i{background-image:url(/assets/guest-brown.png);background-size:128px}.guest-blue i{background-image:url(/assets/guest-blue.png);background-size:128px}.festival-dancer:first-child{left:2%}.festival-dancer:nth-child(2){animation-delay:-.3s;left:19%}.festival-dancer:nth-child(3){animation-delay:-.7s;left:36%}.festival-dancer:nth-child(4){animation-delay:-1s;left:53%}.festival-dancer:nth-child(5){animation-delay:-.5s;left:70%}.festival-dancer:nth-child(6){animation-delay:-1.2s;left:87%}.festival-dancer.alt i,.festival-worker.alt i,.dancing-guest.alt i{background-position-y:-64px}.festival-worker:first-child{left:1%}.festival-worker:nth-child(2){left:22%}.festival-worker:nth-child(3){left:45%}.festival-worker:nth-child(4){left:68%}.festival-worker:nth-child(5){left:89%}.festival-worker:after{content:"";z-index:3;pointer-events:none;position:absolute}.worker-flowers:after{background:#f19a91;border-bottom:5px solid #6d914d;width:15px;height:12px;top:31px;left:20px;box-shadow:5px -5px #ffe28a,-5px -3px #f6c0d4}.worker-table:after{background:#be7943;border:3px solid #68412e;width:48px;height:8px;bottom:3px;left:-8px;box-shadow:5px 12px 0 -2px #68412e,35px 12px 0 -2px #68412e}.worker-music:after{content:"♪";color:#ffe188;font:900 19px var(--pixel-font);text-shadow:2px 2px #5b3c2b;animation:1.6s steps(4,end) infinite note-float;top:9px;left:24px}.worker-lantern:after{background:#ffd868;border:2px solid #744630;width:11px;height:15px;top:24px;left:21px;box-shadow:0 0 9px #ffd45d}.worker-welcome:after{content:"♥";color:#ffdd7f;font:900 16px var(--pixel-font);text-shadow:2px 2px #6d4530;top:10px;left:23px}.worker-animal:after{background:#f1d59d;border:2px solid #654534;width:18px;height:13px;bottom:0;left:-15px;box-shadow:3px -5px 0 -1px #f1d59d}.festival-game-scene{z-index:3;width:100%;height:176px;margin-top:12px;position:relative;overflow:hidden}.festival-flags{z-index:1;border-top:3px solid #6f4a31;justify-content:space-around;height:20px;display:flex;position:absolute;top:8px;left:3%;right:3%;transform:rotate(-1deg)}.festival-flags i{clip-path:polygon(0 0,100% 0,100% 72%,50% 100%,0 72%);background:#e97858;border:2px solid #6f4730;width:18px;height:16px;margin-top:-1px;animation:2.1s ease-in-out infinite alternate flag-wave;box-shadow:2px 2px #362a1c38}.festival-flags i:nth-child(2),.festival-flags i:nth-child(6){background:#f2bd54;animation-delay:-.4s}.festival-flags i:nth-child(3),.festival-flags i:nth-child(7){background:#8dbb73;animation-delay:-.8s}.festival-flags i:nth-child(4){background:#b888bb;animation-delay:-1.2s}.celebration-guests{z-index:6;margin:0;position:absolute;top:39px;left:0;right:0;overflow:visible}.festival-note{z-index:2;color:#ffe49b;text-shadow:2px 2px #5f4130;font-size:24px;animation:2.4s ease-in-out infinite note-float;position:absolute}.note-one{top:41px;left:8%}.note-two{animation-delay:-1.1s;top:54px;right:7%}.party-animals-row{z-index:3;filter:drop-shadow(0 4px #30301b38);justify-content:space-between;align-items:flex-end;height:48px;display:flex;position:absolute;bottom:0;left:7%;right:7%}.party-animals-row .junimo-sprite{animation:1.25s infinite hop}.party-animals-row .duck-sprite{animation:1.1s steps(4,end) infinite animal-peck}.party-animals-row .pig-sprite{animation:2.4s steps(4,end) infinite pig-waddle}.party-animals-row .chicken-sprite{animation:3.8s steps(4,end) infinite chicken-walk}.bus-boarding-scene{z-index:3;pointer-events:none;width:100%;height:158px;margin-top:18px;position:relative;overflow:visible}.bus-art-window{z-index:1;aspect-ratio:1316/675;filter:drop-shadow(0 5px #312d2142);width:min(62vw,300px);height:auto;position:absolute;bottom:5px;left:37%;overflow:visible}.bus-art-window img{width:100%;max-width:none;height:auto;image-rendering:pixelated;position:absolute;top:0;left:0}.boarding-queue{z-index:3;height:74px;position:absolute;bottom:9px;left:3%;right:61%;transform:translateY(18px)}.boarding-guest{transform-origin:bottom;width:32px;height:64px;animation:1.65s steps(3,end) infinite boarding-step;position:absolute;bottom:0}.boarding-guest i{width:32px;height:64px;image-rendering:pixelated;background-position:0 0;background-repeat:no-repeat;display:block}.boarding-guest:first-child{animation-delay:-.1s;left:0}.boarding-guest:nth-child(2){animation-delay:-.45s;left:23%}.boarding-guest:nth-child(3){animation-delay:-.8s;left:46%}.boarding-guest:nth-child(4){animation-delay:-1.15s;left:69%}.boarding-guest:nth-child(5){animation-delay:-1.5s;left:92%}.rsvp-section{color:#fff1bd;text-align:center;background:linear-gradient(#06142e08,#0511251f),url(/assets/night-topdown-lite.webp) 50%/cover no-repeat;justify-content:center;min-height:105svh}.rsvp-section .night-ground{display:none}.rsvp-section .stars{display:block}.rsvp-section .lanterns{display:flex}.stars{z-index:1;color:#ffdf7d;width:100%;font-size:21px;animation:2.8s ease-in-out infinite alternate twinkle;position:absolute;top:7%}.lanterns{z-index:1;border-top:2px solid #ffe08ea6;justify-content:space-around;display:flex;position:absolute;top:17%;left:0;right:0;transform:rotate(-2deg)}.lanterns i{transform-origin:50% -8px;background:#ffe18b;width:7px;height:10px;animation:3.2s ease-in-out infinite alternate lantern-sway,2.4s steps(4,end) infinite lantern-glow;box-shadow:0 0 14px #ffd65b}.lanterns i:nth-child(2){animation-delay:-1.4s,-.55s}.lanterns i:nth-child(3){animation-delay:-.6s,-1.45s}.lanterns i:nth-child(4){animation-delay:-2.1s,-.2s}.lanterns i:nth-child(5){animation-delay:-1s,-1.85s}.rsvp-content{z-index:3;position:relative}.rsvp-content h2{color:#fff5c9;text-shadow:3px 3px #754a35;letter-spacing:.08em;margin:10px 0 13px;font-size:38px}.rsvp-content>p{font-size:16px;line-height:1.75}.rsvp-panel{color:#563b2c;background:#f8e7b1;border:5px solid #6b4630;width:min(100%,340px);margin:28px auto;padding:22px;box-shadow:inset 0 0 0 3px #d6aa61,7px 8px #07171c4d}.rsvp-panel span{letter-spacing:.06em;margin-bottom:14px;font-size:14px;line-height:1.45;display:block}.rsvp-panel button{color:#fff5cd;cursor:pointer;background:#cf654e;border:3px solid #784130;width:100%;padding:14px 10px;font-size:16px;font-weight:900;transition:all .18s;position:relative;overflow:visible;box-shadow:inset 0 0 0 2px #ec9971,0 4px #593628}.rsvp-panel .rsvp-button-label{z-index:2;font:inherit;letter-spacing:inherit;margin:0;display:block;position:relative}.rsvp-button-flash{z-index:4;pointer-events:none;width:1px;height:1px;inset:50% auto auto 50%;margin:0!important;position:absolute!important}.rsvp-button-flash i{opacity:0;background:#fff2a4;width:6px;height:6px;animation:.95s steps(6,end) forwards invite-click-spark;position:absolute;top:0;left:0;box-shadow:0 0 8px #ffd66d}.rsvp-button-flash i:first-child{--rx:-145px;--ry:-72px}.rsvp-button-flash i:nth-child(2){--rx:-92px;--ry:-96px;animation-delay:40ms}.rsvp-button-flash i:nth-child(3){--rx:-35px;--ry:-82px;animation-delay:.1s}.rsvp-button-flash i:nth-child(4){--rx:32px;--ry:-88px;animation-delay:60ms}.rsvp-button-flash i:nth-child(5){--rx:94px;--ry:-66px;animation-delay:.13s}.rsvp-button-flash i:nth-child(6){--rx:142px;--ry:-20px;animation-delay:30ms}.rsvp-button-flash i:nth-child(7){--rx:116px;--ry:48px;animation-delay:.11s}.rsvp-button-flash i:nth-child(8){--rx:44px;--ry:76px;animation-delay:70ms}.rsvp-button-flash i:nth-child(9){--rx:-54px;--ry:72px;animation-delay:.14s}.rsvp-button-flash i:nth-child(10){--rx:-132px;--ry:38px;animation-delay:80ms}.invite-screen-flash{z-index:69;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 57%,#fff4b56b,#ffda9b24 30%,#0000 68%);width:min(100vw,520px);animation:1.05s ease-out forwards invite-soft-flash;position:fixed;inset:0 auto 0 50%;transform:translate(-50%)}.rsvp-panel button:active{transform:translateY(3px);box-shadow:inset 0 0 0 2px #ec9971,0 1px #593628}.rsvp-panel button.confirmed{background:#5c8c53;border-color:#355c38}.signature{font-family:var(--pixel-font);margin-top:30px;font-size:23px!important}.signature small{letter-spacing:.13em;font-size:14px}.dance-floor{z-index:2;pointer-events:none;height:68px;position:absolute;bottom:4%;left:5%;right:5%}.dancing-guest:first-child{left:0}.dancing-guest:nth-child(2){animation-delay:-.6s;left:22%}.dancing-guest:nth-child(3){animation-delay:-.9s;left:44%}.dancing-guest:nth-child(4){animation-delay:-.3s;left:66%}.dancing-guest:nth-child(5){animation-delay:-1.1s;left:88%}.final-dance-floor{z-index:4;filter:drop-shadow(0 4px #05121a4d);bottom:6%}.final-dance-floor .party-walker{animation:5.5s steps(8,end) infinite party-walk}.final-dance-floor .party-walker:last-child{animation-direction:reverse}.final-dance-floor .party-toast{animation:1.9s steps(3,end) infinite toast-cheer}.final-dance-floor .party-toast:after{content:"";background:#ffd977;border:2px solid #f6eee0;width:7px;height:10px;position:absolute;top:25px;left:24px;box-shadow:0 -5px 0 -2px #f6eee0}.final-dance-floor .party-chat{animation:2.3s steps(3,end) infinite alternate chat-sway}.final-dance-floor .party-chat:nth-child(3):after{content:"…";color:#fff1bd;font:900 14px var(--pixel-font);position:absolute;top:-7px;left:25px}.final-dance-floor .party-musician{animation:1.2s steps(4,end) infinite worker-music}.final-dance-floor .party-musician:after{content:"♫";color:#ffe184;font:900 19px var(--pixel-font);text-shadow:2px 2px #553a35;animation:1.6s steps(4,end) infinite note-float;position:absolute;top:-5px;left:24px}.festival-workers .festival-worker,.final-dance-floor .dancing-guest{transform-origin:bottom;animation:2.5s ease-in-out infinite alternate character-sway!important}.festival-workers .festival-worker:nth-child(2),.final-dance-floor .dancing-guest:nth-child(2){animation-delay:-.5s!important}.festival-workers .festival-worker:nth-child(3),.final-dance-floor .dancing-guest:nth-child(3){animation-delay:-1.1s!important}.festival-workers .festival-worker:nth-child(4),.final-dance-floor .dancing-guest:nth-child(4){animation-delay:-1.6s!important}.festival-workers .festival-worker:nth-child(5),.final-dance-floor .dancing-guest:nth-child(5){animation-delay:-2s!important}.festival-workers .festival-worker i,.final-dance-floor .dancing-guest i{background-position:0 0!important;animation:none!important}.party-pixels{z-index:2;pointer-events:none;position:absolute;inset:10% 0 8%;overflow:hidden}.party-pixels i{background:#ffd56f;border:1px solid #4c332561;width:7px;height:9px;animation:5.2s linear infinite party-confetti;position:absolute;top:-10%}.party-pixels i:nth-child(3n){background:#f58f83}.party-pixels i:nth-child(3n+1){background:#ffe3a1}.party-pixels i:nth-child(3n+2){background:#b896ca}.party-pixels i:first-child{animation-delay:-.3s;left:5%}.party-pixels i:nth-child(2){animation-delay:-2.1s;left:12%}.party-pixels i:nth-child(3){animation-delay:-1.2s;left:19%}.party-pixels i:nth-child(4){animation-delay:-3.5s;left:27%}.party-pixels i:nth-child(5){animation-delay:-.8s;left:34%}.party-pixels i:nth-child(6){animation-delay:-2.8s;left:41%}.party-pixels i:nth-child(7){animation-delay:-1.7s;left:48%}.party-pixels i:nth-child(8){animation-delay:-3.8s;left:55%}.party-pixels i:nth-child(9){animation-delay:-.5s;left:62%}.party-pixels i:nth-child(10){animation-delay:-2.4s;left:69%}.party-pixels i:nth-child(11){animation-delay:-1.4s;left:76%}.party-pixels i:nth-child(12){animation-delay:-3.1s;left:83%}.party-pixels i:nth-child(13){animation-delay:-.9s;left:90%}.party-pixels i:nth-child(14){animation-delay:-2.7s;left:96%}.party-pixels i:nth-child(15){animation-delay:-4s;left:23%}.party-pixels i:nth-child(16){animation-delay:-1.9s;left:72%}.night-ground{clip-path:polygon(0 38%,18% 25%,36% 42%,55% 18%,75% 40%,100% 21%,100% 100%,0 100%);background:linear-gradient(#2e5b42,#193a31);height:24%;position:absolute;inset:auto 0 0}.night-ground span{background:#183126;width:8px;height:24px;position:absolute;bottom:28px;box-shadow:8px 7px #183126,-7px 10px #183126}.night-ground span:first-child{left:17%}.night-ground span:nth-child(2){left:54%;transform:scale(1.4)}.night-ground span:nth-child(3){right:12%;transform:scale(.8)}footer{z-index:6;color:#eee2b5;text-align:center;letter-spacing:.06em;pointer-events:none;background:#142731d6;place-items:center;height:55px;margin-top:-55px;padding:0 15px;font-size:13px;display:grid;position:relative}:where(.music-control,.season-tag,.hero-copy,.wood-sign,.scroll-cue,.section-heading,.paper-card,.calendar-card,.date-note,.schedule,.dress-code,.rsvp-content,footer){will-change:translate;animation:4.2s ease-in-out infinite text-group-float}:where(.season-tag,.section-heading,.schedule,.rsvp-content){animation-delay:-.8s}:where(.wood-sign,.paper-card,.date-note,.dress-code,footer){animation-delay:-2s}:where(.music-control,.calendar-card,.scroll-cue){animation-delay:-3.1s}@keyframes heartbeat{50%{transform:scale(1.28)}}@keyframes float{50%{transform:translateY(-8px)}}@keyframes bob{50%{transform:translateY(5px)}}@keyframes cloud{to{transform:translate(20px)}}@keyframes hop{50%{transform:translateY(-7px)}}@keyframes twinkle{to{opacity:.55}}@keyframes drift{to{transform:translate(11px,8px)rotate(135deg)}}@keyframes idle-breathe{50%{transform:translateY(-2px)}}@keyframes chicken-walk{0%,to{transform:translate(-18px)scaleX(1)}48%{transform:translate(22px)scaleX(1)}52%{transform:translate(22px)scaleX(-1)}96%{transform:translate(-18px)scaleX(-1)}}@keyframes flower-sway{to{transform:rotate(2deg)translateY(-2px)}}@keyframes calendar-heart-pulse{50%{filter:drop-shadow(0 0 #ffd77a)drop-shadow(3px 3px #a1423c);transform:translate(-50%,-50%)scale(1.1)}}@keyframes pin-hop{50%{transform:translateY(-5px)}}@keyframes quest-pulse{50%{background:#ffd36b;box-shadow:0 0 0 3px #fff1c5,0 0 10px #ffd86d}}@keyframes lantern-sway{to{transform:rotate(8deg)translateY(2px)}}@keyframes lantern-glow{0%,to{opacity:.68;background:#f6b95d;box-shadow:0 0 5px #ffc14b9e}38%{opacity:1;background:#fff0a4;box-shadow:0 0 10px #ffe078,0 0 20px #ffd252b3}68%{opacity:.82;background:#ffd773;box-shadow:0 0 8px #ffd150bf}}@keyframes firefly-wander{to{opacity:.45;transform:translate(13px,-9px)}}@keyframes pet-steps{0%,24.99%{background-position-x:0}25%,49.99%{background-position-x:-48px}50%,74.99%{background-position-x:-96px}75%,to{background-position-x:-144px}}@keyframes pet-roam{0%{transform:translate(0,0)scaleX(1)}45%{transform:translate(calc(min(100vw,520px) - 48px))scaleX(1)}50%{transform:translate(calc(min(100vw,520px) - 48px))scaleX(-1)}95%{transform:translate(0,0)scaleX(-1)}to{transform:translate(0,0)scaleX(1)}}@keyframes basket-breathe{to{translate:0 -3px;rotate:1deg}}@keyframes hero-sign-sway{0%,to{transform:translate(-50%)rotate(-.7deg)}50%{transform:translate(-50%,-4px)rotate(.7deg)}}@keyframes couple-twinkle{0%,to{opacity:.25;scale:.65}50%{opacity:1;scale:1.15}}@keyframes mailbox-received{45%{translate:0 -8px;scale:1.06}}@keyframes butterfly-drift{to{translate:10px -9px;rotate:8deg}}@keyframes hero-glow{0%{opacity:.3;scale:.75}to{opacity:1;scale:1.25}}@keyframes pet-cross-left{0%{transform:translate(-58px)}to{transform:translate(calc(100% + 520px))}}@keyframes pet-cross-right{0%{transform:translate(calc(100% + 520px))scaleX(-1)}to{transform:translate(-58px)scaleX(-1)}}@keyframes animal-peck{to{background-position-x:-128px}}@keyframes pig-waddle{50%{transform:translate(14px)}}@keyframes rabbit-hop{45%{transform:translateY(-10px)}55%{transform:translateY(-10px)}}@keyframes guest-steps{0%,24.9%{background-position-x:0}25%,49.9%{background-position-x:-32px}50%,74.9%{background-position-x:-64px}75%,to{background-position-x:-96px}}@keyframes guest-dance{to{transform:translateY(-7px)rotate(3deg)}}@keyframes music-pulse{50%{color:#fff7cf;background:#9a6840;transform:scale(.86)}}@keyframes text-group-float{0%,to{translate:0}50%{translate:0 -4px}}@keyframes pixel-heart-burst{0%{opacity:0;transform:translate(-50%,-50%)scale(.25)rotate(0)}14%{opacity:.9}62%{opacity:.72}to{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(var(--s)) rotate(var(--r))}}@keyframes date-click-spark{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)}20%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--sx)),calc(-50% + var(--sy))) scale(.45)}}@keyframes invite-click-spark{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)}18%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--rx)),calc(-50% + var(--ry))) scale(.5)}}@keyframes invite-soft-flash{0%{opacity:0}18%{opacity:1}to{opacity:0}}@keyframes mail-click-spark{0%{opacity:0;transform:translate(-50%,-50%)scale(.25)}20%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--mx)),calc(-50% + var(--my))) scale(.45)}}@keyframes animal-idle-48{0%,49.99%{background-position-x:0}50%,to{background-position-x:-48px}}@keyframes animal-idle-32{0%,49.99%{background-position-x:0}50%,to{background-position-x:-32px}}@keyframes flag-wave{to{transform:skew(7deg)}}@keyframes note-float{50%{translate:0 -8px;rotate:8deg}}@keyframes party-confetti{0%{opacity:0;translate:0 -8vh;rotate:0deg}12%{opacity:.85}to{opacity:0;translate:18px 92vh;rotate:540deg}}@keyframes envelope-wiggle{50%{translate:0 -5px;rotate:-3deg}}@keyframes mail-flag{to{transform:rotate(-8deg)translateY(-3px)}}@keyframes bird-fly{0%{translate:-24px 4px}48%{translate:42px -8px}52%{scale:-1 1}to{translate:-24px 4px;scale:-1 1}}@keyframes stamp-beat{50%{transform:rotate(-5deg)scale(1.12)}}@keyframes letter-received{50%{transform:translateY(-8px)scale(1.02)}}@keyframes date-loot{0%,to{opacity:.35;translate:0 5px}50%{opacity:1;translate:0 -9px}}@keyframes worker-walk{0%,to{translate:-10px}50%{translate:14px}51%{scale:-1 1}}@keyframes worker-lift{50%{translate:0 -4px;rotate:-3deg}}@keyframes worker-music{25%{translate:-2px -3px;rotate:-3deg}75%{translate:2px;rotate:3deg}}@keyframes worker-wave{50%{translate:0 -3px;rotate:5deg}}@keyframes worker-crouch{50%{translate:0 5px;scale:1 .92}}@keyframes party-walk{0%,to{translate:-9px}50%{translate:10px}}@keyframes toast-cheer{50%{translate:0 -7px;rotate:4deg}}@keyframes chat-sway{to{translate:3px;rotate:2deg}}@keyframes character-sway{0%{translate:-2px;rotate:-1.5deg}to{translate:2px -2px;rotate:1.5deg}}@keyframes boarding-step{0%,to{transform:translate(0)}35%{transform:translate(3px,-2px)}70%{transform:translate(6px)}}@media (width>=521px){body{padding:0}.invitation{border-left:5px solid #432f25;border-right:5px solid #432f25}.chapter{height:100svh;min-height:100svh}}@media (height<=720px){.chapter{padding-top:44px;padding-bottom:36px}.section-heading{margin-bottom:14px}.section-heading h2{font-size:28px}.section-heading p{font-size:15px}.story .section-heading{margin-bottom:9px;padding:0}.mail-game-scene{height:78px;margin-bottom:-8px}.pixel-mailbox{transform-origin:bottom;transform:translate(-50%)scale(.78)}.flying-envelope{transform:scale(.84)}.invitation-letter{padding:19px 17px 15px}.invitation-letter>p{margin-bottom:9px;font-size:15px;line-height:1.5}.quest-list{margin:8px 0 10px}.quest-list span{padding:6px 2px;font-size:13px}.open-mail-button{padding:8px}.farm-sprites{height:42px}.date-section .section-heading{margin-bottom:14px;padding:0}.calendar-body{padding:15px}.weekday{padding-bottom:9px}.calendar-grid{gap:6px 4px;padding-top:10px}.date-note{margin-top:14px}.place{padding:54px 16px 22px}.place .section-heading{margin-bottom:3px;padding:0}.place .section-heading h2{font-size:clamp(22px,6.1vw,28px)}.place .address-card{margin-top:8px;padding:6px}.place .address-card .venue-address{line-height:1.35}.place .address-actions{gap:5px}.place .address-card button{min-height:42px;padding:9px 7px}.festival-game-scene{height:120px;margin-top:2px}.celebration-guests{top:25px}.party-animals-row{height:43px;bottom:-3px;transform:scale(.86)}.bus-boarding-scene{height:118px;margin-top:12px}.bus-art-window{width:min(47vw,220px);height:auto;bottom:3px;left:38%}.boarding-queue{bottom:0}.scroll-cue{font-size:16px;bottom:14px}.scroll-cue b{font-size:23px}.chapter-cue{bottom:4px}.rsvp-panel{margin:16px auto;padding:15px}.final-dance-floor{bottom:5%;transform:scale(.9)}}@media (prefers-reduced-motion:reduce){.petal-rain{display:none}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
