:root{--rose:#d97794;--rose2:#bb5d7b;--blush:#f8dce5;--cream:#fff8ef;--butter:#ffe5a2;--sage:#8ea680;--sage2:#60715d;--sky:#b8e2ef;--ink:#574038;--brown:#8b614c;--white:#fff;--shadow:0 24px 60px #5a3a302b}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--cream);color:var(--ink);margin:0;font-family:DM Sans,Arial,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default}img{max-width:100%;display:block}h1,h2,h3,blockquote{font-family:Fraunces,Georgia,serif}.eyebrow{letter-spacing:.16em;text-transform:uppercase;font-size:.72rem;font-weight:800}.brown{color:#966149!important}.gold{color:#ffe5a4!important}.artFallback{color:#bd6682;background:linear-gradient(145deg,#f8dce5,#fff3d4);place-items:center;width:100%;height:100%;font-size:clamp(2rem,6vw,4rem);display:grid}.floatingFlowers{pointer-events:none;z-index:8;position:absolute;inset:0;overflow:hidden}.floatingFlowers i{background:#f8abc5b8;border-radius:70% 20%;width:11px;height:17px;animation:8s linear infinite flowerFall;position:absolute;top:-25px;box-shadow:0 0 10px #ffffff80}@keyframes flowerFall{to{opacity:.1;transform:translate(60px,110vh)rotate(390deg)}}.dreamOpening{z-index:1000;background:linear-gradient(#bee7f1 0 52%,#dbe6b5 52% 68%,#a9c37d 68% 100%);transition:opacity .55s,visibility .55s;position:fixed;inset:0;overflow:hidden}.dreamOpening--gone{opacity:0;visibility:hidden;pointer-events:none}.openingSky{background:linear-gradient(#a9d9ec,#f8e9d2);position:absolute;inset:0 0 42%}.openingSun{aspect-ratio:1;background:radial-gradient(circle,#fff8c9 0 38%,#ffe6a0 39% 58%,#ffe6a014 70%);border-radius:50%;width:min(220px,22vw);position:absolute;top:9%;right:9%;box-shadow:0 0 65px #ffdc878c}.openingCloud{background:#ffffffb8;border-radius:999px;width:180px;height:36px;position:absolute}.openingCloud:before,.openingCloud:after{content:"";background:inherit;border-radius:50%;position:absolute;bottom:0}.openingCloud:before{width:62px;height:62px;left:28px}.openingCloud:after{width:78px;height:78px;right:22px}.cloudA{top:18%;left:6%;transform:scale(.78)}.cloudB{top:24%;right:30%;transform:scale(.55)}.openingMeadow{pointer-events:none;position:absolute;inset:0}.hill{clip-path:polygon(0 65%,14% 45%,26% 60%,40% 38%,53% 59%,68% 40%,82% 61%,100% 45%,100% 100%,0 100%);height:40%;position:absolute;bottom:7%;left:-5%;right:-5%}.hillBack{opacity:.82;background:#c6d49e;bottom:21%}.hillFront{background:#94b36f}.flowerPatch{z-index:4;color:#ef88a8;letter-spacing:.16em;text-shadow:32px -7px #ffe5a2,64px 4px #cf8bb0,96px -3px #fff3b2;font-size:26px;position:absolute}.fp1{bottom:8%;left:4%}.fp2{bottom:11%;right:5%;transform:scale(.9)}.openingCopy{z-index:20;width:min(500px,42vw);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffaf1d1;border:1px solid #ffffffa6;border-radius:28px;padding:28px 30px;position:absolute;top:50%;left:6vw;transform:translateY(-50%)}.openingKicker{color:#a65c74;letter-spacing:.14em;font-size:.7rem;font-weight:900;display:block}.openingCopy>small{color:#7f665c;margin:12px 0 2px;font-weight:800;display:block}.openingCopy h1{color:#b65f7c;letter-spacing:-.045em;margin:0;font-size:clamp(4.3rem,8vw,7.5rem);line-height:.88}.openingAge{color:#8d5263;background:#f8dfe5;border-radius:999px;align-items:center;gap:8px;margin-top:12px;padding:8px 13px;display:inline-flex}.openingAge strong{font-size:1.65rem}.openingAge span{letter-spacing:.12em;font-size:.7rem;font-weight:900}.openingCopy p{color:#664e45;max-width:390px;margin:17px 0 20px;line-height:1.65}.openingCopy button{color:#fff;background:linear-gradient(#df8da5,#c26784);border:0;border-radius:17px;flex-direction:column;align-items:center;width:100%;padding:16px 20px;transition:transform .2s,filter .2s;display:flex;box-shadow:0 7px #9e4f68,0 16px 32px #7e465833}.openingCopy button:not(:disabled):hover{filter:brightness(1.02);transform:translateY(-2px)}.openingCopy button strong{letter-spacing:.07em;font-size:.92rem}.openingCopy button span{opacity:.85;margin-top:3px;font-size:.72rem}.openingArt{z-index:16;width:min(58vw,820px);height:92vh;position:absolute;bottom:0;right:2vw}.girlCutout,.ponyCutout{background:#fff;border:10px solid #ffffffdb;position:absolute;overflow:hidden;box-shadow:0 28px 55px #563c3026}.girlCutout{border-radius:180px 180px 38px 38px;width:45%;height:72%;bottom:1%;left:3%;transform:rotate(-3deg)}.ponyCutout{border-radius:42% 42% 28px 28px;width:54%;height:62%;bottom:5%;right:0;transform:rotate(2deg)}.girlCutout img,.ponyCutout img{object-fit:cover;width:100%;height:100%}.girlCutout img{object-position:center 22%}.ponyCutout img{object-position:center}.artRibbon{z-index:18;width:74px;height:74px;box-shadow:var(--shadow);background:#fff2df;border-radius:50%;place-items:center;font-size:2.3rem;display:grid;position:absolute;top:24%;left:46%;transform:rotate(-8deg)}.openingReveal{z-index:32;opacity:0;pointer-events:none;background:radial-gradient(circle,#fff9ef 0 20%,#fff9effc 34%,#f6dae3fa 63%,#d27794f7 100%);border-radius:50%;width:150vmax;height:150vmax;transition:transform 1.05s cubic-bezier(.2,.75,.2,1),opacity .22s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.dreamOpening--opening .openingReveal{opacity:1;transform:translate(-50%,-50%)scale(1)}.dreamOpening--opening .openingCopy{animation:.68s forwards copyAway}@keyframes copyAway{to{opacity:0;transform:translate(-32px,-50%)scale(.97)}}.openingWelcome{z-index:40;color:#a85f76;max-width:90vw;box-shadow:var(--shadow);text-align:center;background:#fff9ef;border-radius:19px;padding:16px 22px;font-weight:900;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.invite{display:none}.invite--visible{display:block}.hero{color:#5d433a;background:linear-gradient(#cae8ee 0 48%,#f5dfc4 48% 58%,#b3ca8d 58%);min-height:100svh;position:relative;overflow:hidden}.heroBackdrop{background:radial-gradient(circle at 73% 25%,#fff4c1b3,#0000 28%),linear-gradient(90deg,#fffaf0db,#fffaf01f 56%);position:absolute;inset:0}.topbar{z-index:20;justify-content:space-between;align-items:center;padding:24px 6vw;font-weight:800;display:flex;position:relative}.topbar div{gap:18px;font-size:.82rem;display:flex}.brand{color:#a45e75}.heroCopy{z-index:16;flex-direction:column;justify-content:center;width:min(610px,48vw);min-height:calc(100svh - 80px);margin-left:7vw;padding:7vh 0 12vh;display:flex;position:relative}.heroCopy .eyebrow{color:#a45f74}.heroCopy h2{letter-spacing:-.04em;margin:12px 0 18px;font-size:clamp(3.5rem,6.5vw,6.1rem);line-height:.9}.heroCopy h2 span{color:#bd6682;display:block}.heroCopy p{color:#684f46;max-width:540px;line-height:1.8}.heroActions{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.primaryAction,.secondaryAction{border-radius:14px;padding:14px 18px;font-weight:900}.primaryAction{color:#fff;background:#d47491}.secondaryAction{background:#ffffff94;border:1px solid #b77a8b}.heroCharacter,.heroPony{z-index:12;box-shadow:var(--shadow);background:#fff;border:8px solid #ffffffe0;position:absolute;overflow:hidden}.heroCharacter{border-radius:170px 170px 26px 26px;width:min(25vw,360px);height:69vh;bottom:3vh;right:27vw;transform:rotate(-3deg)}.heroPony{border-radius:42% 42% 26px 26px;width:min(31vw,440px);height:57vh;bottom:7vh;right:3vw;transform:rotate(3deg)}.heroCharacter img,.heroPony img{object-fit:cover;width:100%;height:100%}.heroCharacter img{object-position:center 20%}.heroBadge{z-index:18;color:#a25e73;width:112px;height:112px;box-shadow:var(--shadow);background:#fff1db;border-radius:50%;place-items:center;display:grid;position:absolute;top:12vh;right:5vw;transform:rotate(5deg)}.heroBadge strong{font-size:2.5rem}.heroBadge span{letter-spacing:.1em;text-align:center;max-width:76px;font-size:.62rem;font-weight:900}.eventSection,.gallerySection,.gameSection{padding:100px 6vw}.eventSection{background:#fff8ee}.sectionHeading{text-align:center;max-width:760px;margin:0 auto 48px}.sectionHeading .eyebrow{color:#b2677c}.sectionHeading h2{margin:12px 0 14px;font-size:clamp(2.8rem,6vw,5rem);line-height:1}.sectionHeading p{color:#7d675e;line-height:1.7}.sectionHeading.light{color:#fff}.sectionHeading.light h2{color:#fff6ed}.sectionHeading.light .eyebrow{color:#ffd4df}.sectionHeading.light p{color:#fff0e8}.detailGrid{grid-template-columns:repeat(3,1fr);gap:16px;max-width:1080px;margin:auto;display:grid}.detailCard{text-align:center;background:#fff;border:1px solid #f0dfd2;border-radius:26px;flex-direction:column;justify-content:center;align-items:center;min-height:235px;padding:30px;display:flex;box-shadow:0 15px 35px #5a3c2e14}.detailCard.featured{background:#f8e0e7}.detailCard svg{color:#c36d86;margin-bottom:13px}.detailCard small{letter-spacing:.12em;font-size:.7rem;font-weight:900}.detailCard h3{margin:10px 0 8px;font-size:1.9rem}.detailCard p{color:#7b665d;margin:0}.countdown{grid-template-columns:repeat(4,1fr);gap:12px;max-width:720px;margin:38px auto 0;display:grid}.countdownUnit{text-align:center;background:#fff;border-radius:18px;padding:18px;box-shadow:0 12px 28px #54382c14}.countdownUnit strong{color:#bd657f;font-size:2rem;display:block}.countdownUnit span{text-transform:uppercase;font-size:.7rem;font-weight:900}.storySection{color:#fff;background:#6f8b71;grid-template-columns:1.05fr .95fr;min-height:720px;display:grid}.storyVisual{background:radial-gradient(circle at 50% 35%,#eef1d6,#a9c38b 65%,#71876d);position:relative;overflow:hidden}.storyGirl,.storyPony{box-shadow:var(--shadow);background:#fff;border:7px solid #ffffffe0;position:absolute;overflow:hidden}.storyGirl{border-radius:170px 170px 28px 28px;width:49%;height:76%;bottom:7%;left:8%;transform:rotate(-4deg)}.storyPony{border-radius:42% 42% 28px 28px;width:49%;height:60%;bottom:10%;right:6%;transform:rotate(4deg)}.storyGirl img,.storyPony img{object-fit:cover;width:100%;height:100%}.storyLabel{z-index:9;color:#9c5f72;letter-spacing:.09em;white-space:nowrap;background:#fff5e9;border-radius:999px;padding:11px 15px;font-size:.68rem;font-weight:900;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.storyCopy{flex-direction:column;justify-content:center;padding:78px 8vw;display:flex}.storyCopy h2{margin:14px 0 20px;font-size:clamp(2.8rem,5vw,4.7rem);line-height:.98}.storyCopy p{color:#f5eee7;line-height:1.8}.storyCopy blockquote{color:#ffe4de;margin:24px 0;font-size:2rem;line-height:1.25}.signature{font-weight:800}.gallerySection{background:#8e6975}.galleryGrid{grid-template-rows:repeat(2,300px);grid-template-columns:1.35fr 1fr;gap:16px;max-width:1080px;margin:auto;display:grid}.galleryGrid figure{background:#fff;border-radius:28px;margin:0;position:relative;overflow:hidden}.galleryGrid .galleryGirl{grid-row:1/3}.galleryGrid img{object-fit:cover;width:100%;height:100%}.galleryGrid .artFallback{height:100%}.galleryGrid figcaption{color:#845867;background:#fff8f0f0;border-radius:999px;padding:10px 13px;font-weight:800;position:absolute;bottom:16px;left:16px}.gameSection{color:#fff;background:linear-gradient(#607861,#455a49)}.gameShell{background:#fff;border:5px solid #fff;border-radius:30px;max-width:1080px;margin:auto;overflow:hidden;box-shadow:0 30px 70px #1f2d224d}.gameTop{color:#825968;background:#f7e8e5;justify-content:space-between;gap:12px;padding:14px 18px;font-size:.78rem;font-weight:900;display:flex}.farmScene{background:#b8e0ea;height:560px;position:relative;overflow:hidden}.gameSky{background:linear-gradient(#afe0ed,#eef5dc);position:absolute;inset:0 0 45%}.gameHill{clip-path:polygon(0 58%,14% 38%,28% 61%,41% 34%,55% 57%,69% 36%,82% 58%,100% 40%,100% 100%,0 100%);height:40%;position:absolute;bottom:0;left:-5%;right:-5%}.gameHill.one{background:#aac68c;bottom:14%}.gameHill.two{background:#7fa366}.gameBarn{background:#e99ca8;border-radius:14px;width:170px;height:125px;position:absolute;bottom:18%;right:9%;box-shadow:inset 0 0 0 6px #f3bdc5}.gameBarn:before{content:"";clip-path:polygon(50% 0,100% 100%,0 100%);background:#8d6350;height:68px;position:absolute;top:-57px;left:-14px;right:-14px}.gameBarn span{font-size:.6rem;font-weight:900;position:absolute;top:16px;left:50%;transform:translate(-50%)}.gameTree{background:#9a6e4e;border-radius:15px;width:42px;height:170px;position:absolute;bottom:18%;left:8%}.gameTree:before{content:"";background:#75a06d;border-radius:50%;width:165px;height:125px;position:absolute;top:-55px;left:-64px}.gameFence{border-top:10px solid #dfbd91;border-bottom:10px solid #dfbd91;height:55px;position:absolute;bottom:12%;left:0;right:0}.ribbon{z-index:7;background:#fff5f1f0;border:0;border-radius:50%;place-items:center;width:52px;height:52px;font-size:1.7rem;animation:1.7s ease-in-out infinite ribbonPulse;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 8px 18px #41302838}.ribbon.found{opacity:.25;pointer-events:none}.ribbon.collecting{opacity:.7;animation:none;transform:translate(-50%,-50%)scale(.86)}@keyframes ribbonPulse{50%{transform:translate(-50%,-50%)scale(1.08)}}.gameAvatar{z-index:9;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;transform:translate(-50%,-50%)}.gameAvatar div{border:4px solid #fff;border-radius:50%;width:72px;height:72px;overflow:hidden;box-shadow:0 10px 22px #2c271e40}.gameAvatar img{object-fit:cover;width:100%;height:100%}.gameAvatar span{color:#845865;background:#fff;border-radius:999px;padding:5px 9px;font-size:.68rem;font-weight:900}.gameCelebration{z-index:12;color:#9b5e6d;box-shadow:var(--shadow);background:#fff2ed;border-radius:18px;padding:14px 18px;font-weight:900;position:absolute;top:12%;left:50%;transform:translate(-50%)}.gameStatus{color:#68544b;background:#fff;align-items:center;gap:14px;padding:18px;display:flex}.gameStatus>div{font-size:1.8rem}.gameStatus p{flex:1;margin:0;line-height:1.55}.gameStatus button{color:#7d5360;background:#ead3cf;border:0;border-radius:12px;padding:10px 13px;font-weight:800}.locationSection{background:#f3e2d6;justify-content:space-between;align-items:center;gap:20px;padding:70px 8vw;display:flex}.locationSection h2{margin:8px 0;font-size:clamp(2.4rem,4vw,4rem)}.locationSection p{color:#80685b;margin:0}.locationSection>a{color:#fff;background:#8b5d69;border-radius:14px;align-items:center;gap:8px;padding:14px 18px;font-weight:800;display:flex}.rsvpSection{background:linear-gradient(135deg,#f6dce4,#e8d9b9);place-items:center;min-height:760px;padding:90px 5vw;display:grid;position:relative;overflow:hidden}.rsvpDecor{opacity:.72;border-radius:48% 0 0;width:min(43vw,560px);height:86vh;position:absolute;bottom:-7vh;right:-3vw;overflow:hidden}.rsvpDecor img,.rsvpDecor .artFallback{object-fit:cover;width:100%;height:100%}.rsvpCard{z-index:2;width:min(980px,92vw);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fff8f1f0;border-radius:30px;grid-template-columns:1fr 1fr;gap:36px;padding:38px;display:grid;position:relative}.rsvpCopy h2{margin:12px 0 16px;font-size:clamp(2.5rem,5vw,4.2rem);line-height:1}.rsvpCopy p{line-height:1.7}.rsvpCopy ul{padding:0;line-height:2;list-style:none}.rsvpForm{gap:14px;display:grid}.rsvpForm label{gap:7px;font-weight:800;display:grid}.rsvpForm label span{color:#8b7468;font-weight:500}.rsvpForm input,.rsvpForm select,.rsvpForm textarea{color:#4c382f;background:#fffdf9;border:1px solid #dcc9bf;border-radius:12px;width:100%;padding:12px}.confirmButton{color:#fff;background:#bf6b82;border:0;border-radius:14px;padding:15px;font-weight:900}.rsvpSuccess{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.rsvpSuccess svg{color:#bd6c82;width:42px;height:42px}.rsvpSuccess h3{font-size:2rem}.rsvpSuccess button{color:#7e5260;background:#ecd4da;border:0;border-radius:12px;padding:10px 14px;font-weight:800}.closingSection{color:#fff;background:#6d8270;grid-template-columns:1fr 1fr;min-height:680px;display:grid;position:relative;overflow:hidden}.closingArt{background:#e8efd6;position:relative}.closingArt>img,.closingArt>.artFallback{object-fit:cover;box-shadow:var(--shadow);border:8px solid #ffffffdb;position:absolute}.closingArt>img:first-child,.closingArt>.artFallback:first-child{border-radius:160px 160px 24px 24px;width:49%;height:78%;top:8%;left:7%;transform:rotate(-4deg)}.closingArt>img:last-child,.closingArt>.artFallback:last-child{border-radius:42% 42% 24px 24px;width:51%;height:57%;bottom:7%;right:4%;transform:rotate(4deg)}.closingCopy{flex-direction:column;justify-content:center;padding:70px 8vw;display:flex}.closingCopy h2{margin:12px 0 16px;font-size:clamp(2.8rem,5vw,4.8rem);line-height:1}.closingCopy p{color:#edf4e9}.closingCopy a{color:#7a5862;background:#fff;border-radius:12px;align-self:flex-start;margin-top:10px;padding:12px 16px;font-weight:800}footer{color:#eaded5;background:#493a34;justify-content:space-between;gap:20px;padding:24px 6vw;font-size:.8rem;display:flex}footer small{opacity:.75}@media (max-width:900px){.openingCopy{width:44vw;left:5vw}.openingArt{width:62vw;right:-4vw}.heroCopy{width:53vw}.heroCharacter{width:28vw;right:28vw}.heroPony{width:34vw}.storySection,.closingSection{grid-template-columns:1fr}.storyVisual,.closingArt{min-height:610px}.rsvpCard{grid-template-columns:1fr}.rsvpDecor{opacity:.24}.detailGrid{grid-template-columns:1fr}.galleryGrid{grid-template-rows:420px 260px 260px;grid-template-columns:1fr}.galleryGrid .galleryGirl{grid-row:auto}.locationSection{flex-direction:column;align-items:flex-start}}@media (max-width:700px){.dreamOpening{height:100svh;min-height:100svh}.openingSun{width:150px;top:5%;right:-5%}.openingCloud{opacity:.55}.openingArt{width:94vw;height:48vh;inset:1.5vh auto auto 50%;transform:translate(-50%)}.girlCutout{border-width:6px;width:47%;height:75%;left:1%}.ponyCutout{border-width:6px;width:55%;height:61%;right:0}.artRibbon{width:52px;height:52px;font-size:1.55rem;top:28%;left:44%}.openingCopy{border-radius:21px;width:auto;padding:18px 16px;inset:auto 12px 12px;transform:none}.openingKicker{font-size:.64rem}.openingCopy>small{margin:8px 0 0}.openingCopy h1{font-size:3.75rem}.openingAge{margin-top:7px;padding:6px 10px}.openingAge strong{font-size:1.4rem}.openingCopy p{margin:10px 0 12px;font-size:.86rem;line-height:1.45}.openingCopy button{padding:13px 16px}.dreamOpening--opening .openingCopy{animation:.55s forwards mobileCopyAway}@keyframes mobileCopyAway{to{opacity:0;transform:translateY(24px)}}.openingWelcome{padding:14px 18px;font-size:.88rem}.topbar{padding:18px 16px}.topbar div{display:none}.hero{min-height:100svh}.heroCopy{width:auto;margin:0;padding:90px 18px 48vh}.heroCopy h2{font-size:clamp(3rem,14vw,3.65rem)}.heroCharacter{border-width:5px;width:46vw;height:44vh;bottom:3vh;left:5%;right:auto}.heroPony{border-width:5px;width:50vw;height:38vh;bottom:5vh;right:3%}.heroBadge{width:86px;height:86px;top:84px;right:16px}.eventSection,.gallerySection,.gameSection{padding:78px 16px}.sectionHeading h2{font-size:3rem}.countdown{grid-template-columns:repeat(2,1fr)}.storyVisual{min-height:520px}.storyCopy{padding:68px 20px}.storyCopy h2{font-size:3rem}.gameTop{font-size:.66rem}.farmScene{height:420px}.gameBarn{width:118px;height:88px}.gameTree{transform-origin:bottom;transform:scale(.75)}.gameStatus{flex-wrap:wrap;align-items:flex-start}.gameStatus p{min-width:65%}.locationSection{padding:60px 20px}.rsvpSection{padding:70px 14px}.rsvpCard{padding:24px 18px}.closingArt{min-height:500px}.closingCopy{padding:64px 20px}footer{text-align:center;flex-direction:column}}@media (max-width:700px) and (max-height:720px){.openingArt{height:41vh;top:1vh}.openingCopy{padding:13px 14px;bottom:8px}.openingKicker{font-size:.58rem}.openingCopy>small{margin-top:5px;font-size:.72rem}.openingCopy h1{font-size:3rem}.openingAge{margin-top:5px;padding:5px 9px}.openingAge strong{font-size:1.2rem}.openingCopy p{display:none}.openingCopy button{margin-top:9px;padding:11px 13px}.openingCopy button strong{font-size:.8rem}.openingCopy button span{font-size:.65rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
