:root{color:#203529;background:#e8e5da;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--paper: #fffdf6;--soft: rgba(255, 253, 246, .72);--line: rgba(155, 143, 118, .3);--ink: #203529;--muted: #64745f;--olive: #b99d55;--sage: #9fca84;--forest: #4fa768;--pine: #2f6040;--page-start: #f5f2e9;--page-mid: #e8e5da;--page-end: #d9d5c9;--hero-overlay-start: rgba(248, 246, 238, .64);--hero-overlay-end: rgba(232, 228, 216, .56);--hero-detail: rgba(255, 253, 246, .72);--stripe-a: #e8e5da;--stripe-b: #f5f2e9}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--page-mid)}button,input,textarea{font:inherit}.page{position:relative;isolation:isolate;min-height:100vh;overflow:hidden;background:linear-gradient(180deg,#f5f2e929,#d9d5c933),url(/wedding-floral-background.png) center top / cover fixed,linear-gradient(145deg,var(--page-start) 0%,var(--page-mid) 52%,var(--page-end) 100%);transition:background .22s ease}.page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:radial-gradient(circle,rgba(255,255,255,.22) 0 1px,transparent 1.6px),linear-gradient(115deg,transparent 0 47%,rgba(255,255,255,.2) 47% 48%,transparent 48% 100%);background-size:38px 38px,220px 220px;opacity:.46;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.55),transparent 72%);mask-image:linear-gradient(180deg,rgba(0,0,0,.55),transparent 72%)}.page--ready .reveal{opacity:0;filter:blur(8px);transform:translateY(34px) scale(.985);transition:opacity .9s ease,filter .9s ease,transform .9s cubic-bezier(.2,.78,.2,1);transition-delay:var(--reveal-delay, 0ms);will-change:opacity,filter,transform}.page--ready .reveal--title{transform:translateY(42px) scale(.94);transform-origin:center}.page--ready .reveal--frame{transform:scale(.96)}.page--ready .reveal--panel,.page--ready .reveal--card{transform:translateY(42px) scale(.97)}.page--ready .reveal.is-visible{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}.butterflies{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;overflow:hidden;pointer-events:none}.butterfly{position:absolute;width:62px;height:54px;opacity:.78;filter:drop-shadow(0 12px 18px rgba(70,62,48,.18));transform-origin:center;animation:butterfly-wander-one 18s ease-in-out infinite}.butterfly__body{position:absolute;top:13px;left:50%;z-index:2;width:5px;height:30px;border-radius:999px;background:linear-gradient(180deg,#7a6b43,#3d4c31);transform:translate(-50%)}.butterfly__body:before,.butterfly__body:after{content:"";position:absolute;top:-10px;width:14px;height:14px;border-top:1px solid rgba(61,76,49,.82);border-radius:50%}.butterfly__body:before{right:1px;transform:rotate(-34deg)}.butterfly__body:after{left:1px;transform:rotate(34deg)}.butterfly__wing{position:absolute;z-index:1;transform-origin:center right;background:radial-gradient(circle at 58% 36%,rgba(255,255,255,.78) 0 4px,transparent 5px),radial-gradient(circle at 28% 68%,rgba(185,157,85,.24) 0 3px,transparent 4px),linear-gradient(135deg,#fff5daf5,#e5b27ee6 54%,#8fab6fd1);border:1px solid rgba(116,101,73,.16);animation:wing-left .52s ease-in-out infinite alternate}.butterfly__wing--upper-left{top:1px;left:4px;width:28px;height:30px;border-radius:88% 24% 76% 34%;transform:rotate(-24deg) skewY(7deg)}.butterfly__wing--lower-left{top:26px;left:11px;width:22px;height:24px;border-radius:72% 26% 84% 38%;transform:rotate(28deg) skewY(-8deg);background:radial-gradient(circle at 54% 34%,rgba(255,255,255,.64) 0 3px,transparent 4px),linear-gradient(145deg,#ffebc6eb,#c59365d1)}.butterfly__wing--upper-right,.butterfly__wing--lower-right{transform-origin:center left;animation-name:wing-right}.butterfly__wing--upper-right{top:1px;right:4px;width:28px;height:30px;border-radius:24% 88% 34% 76%;transform:rotate(24deg) skewY(-7deg)}.butterfly__wing--lower-right{top:26px;right:11px;width:22px;height:24px;border-radius:26% 72% 38% 84%;transform:rotate(-28deg) skewY(8deg);background:radial-gradient(circle at 46% 34%,rgba(255,255,255,.64) 0 3px,transparent 4px),linear-gradient(215deg,#ffebc6eb,#c59365d1)}.butterfly--one{top:14%;left:12%;animation-duration:19s}.butterfly--two{top:38%;left:68%;scale:.82;opacity:.66;animation-delay:-7s;animation-duration:24s;animation-name:butterfly-wander-two}.butterfly--three{top:68%;left:22%;scale:.68;opacity:.58;animation-delay:-13s;animation-duration:21s;animation-name:butterfly-wander-three}.butterfly--four{top:28%;left:78%;scale:.9;opacity:.72;animation-delay:-4s;animation-duration:23s;animation-name:butterfly-wander-four}.butterfly--five{top:78%;left:58%;scale:.74;opacity:.54;animation-delay:-17s;animation-duration:27s;animation-name:butterfly-wander-five}.butterfly--six{top:52%;left:8%;scale:.6;opacity:.5;animation-delay:-20s;animation-duration:20s;animation-name:butterfly-wander-six}@keyframes butterfly-wander-one{0%{translate:0 0;rotate:0deg}18%{translate:9vw 11vh;rotate:6deg}36%{translate:23vw 1vh;rotate:-5deg}58%{translate:13vw -12vh;rotate:4deg}78%{translate:-7vw -4vh;rotate:-6deg}to{translate:0 0;rotate:0deg}}@keyframes butterfly-wander-two{0%{translate:0 0;rotate:0deg}16%{translate:-12vw -7vh;rotate:-5deg}34%{translate:-24vw 9vh;rotate:6deg}55%{translate:-8vw 18vh;rotate:-4deg}76%{translate:7vw 5vh;rotate:5deg}to{translate:0 0;rotate:0deg}}@keyframes butterfly-wander-three{0%{translate:0 0;rotate:0deg}20%{translate:14vw -10vh;rotate:5deg}42%{translate:29vw 6vh;rotate:-6deg}64%{translate:11vw 17vh;rotate:4deg}82%{translate:-6vw 5vh;rotate:-4deg}to{translate:0 0;rotate:0deg}}@keyframes butterfly-wander-four{0%{translate:0 0;rotate:0deg}19%{translate:-10vw 13vh;rotate:5deg}39%{translate:-31vw 2vh;rotate:-6deg}61%{translate:-20vw -16vh;rotate:4deg}83%{translate:4vw -8vh;rotate:-5deg}to{translate:0 0;rotate:0deg}}@keyframes butterfly-wander-five{0%{translate:0 0;rotate:0deg}17%{translate:-18vw -9vh;rotate:-4deg}38%{translate:-5vw -23vh;rotate:6deg}58%{translate:13vw -7vh;rotate:-5deg}81%{translate:4vw 12vh;rotate:5deg}to{translate:0 0;rotate:0deg}}@keyframes butterfly-wander-six{0%{translate:0 0;rotate:0deg}21%{translate:17vw -14vh;rotate:4deg}44%{translate:34vw -2vh;rotate:-5deg}66%{translate:24vw 18vh;rotate:6deg}84%{translate:6vw 10vh;rotate:-4deg}to{translate:0 0;rotate:0deg}}@keyframes wing-left{0%{scale:.54 1}to{scale:1.08 .96}}@keyframes wing-right{0%{scale:.54 1}to{scale:1.08 .96}}.hero{position:relative;min-height:92vh;display:grid;place-items:center;padding:80px 24px 48px;border-bottom:1px solid var(--line);background:linear-gradient(var(--hero-overlay-start),var(--hero-overlay-end))}.hero__ornament{position:absolute;top:24px;right:24px;bottom:24px;left:24px;border:1px solid rgba(185,157,85,.38);pointer-events:none}.hero__ornament:before,.hero__ornament:after{content:"";position:absolute;width:148px;height:148px;border-color:#b99d5575;pointer-events:none}.hero__ornament:before{top:14px;left:14px;border-top:1px solid rgba(185,157,85,.46);border-left:1px solid rgba(185,157,85,.46);border-radius:96px 0 0}.hero__ornament:after{right:14px;bottom:14px;border-right:1px solid rgba(185,157,85,.46);border-bottom:1px solid rgba(185,157,85,.46);border-radius:0 0 96px}.hero__florals{display:none}.flower,.petal{position:absolute;display:block;opacity:.82}.flower{width:116px;height:116px;border-radius:50%;background:radial-gradient(circle at center,rgba(185,157,85,.48) 0 9px,transparent 10px),radial-gradient(ellipse at 50% 18%,rgba(245,184,153,.72) 0 20px,transparent 21px),radial-gradient(ellipse at 82% 50%,rgba(255,226,193,.72) 0 20px,transparent 21px),radial-gradient(ellipse at 50% 82%,rgba(236,196,176,.72) 0 20px,transparent 21px),radial-gradient(ellipse at 18% 50%,rgba(255,232,204,.72) 0 20px,transparent 21px);filter:drop-shadow(0 20px 36px rgba(132,88,76,.12))}.flower--one{top:15%;left:max(18px,8vw);transform:rotate(-18deg)}.flower--two{right:max(12px,9vw);bottom:18%;width:92px;height:92px;transform:rotate(16deg);opacity:.68}.flower--three{top:12%;right:17%;width:58px;height:58px;transform:rotate(36deg);opacity:.48}.petal{width:22px;height:38px;border-radius:999px 999px 999px 0;background:linear-gradient(160deg,#fff6ebeb,#edab9194);box-shadow:0 12px 22px #84584c1a}.petal--one{top:22%;left:27%;transform:rotate(28deg)}.petal--two{top:68%;left:13%;transform:rotate(-34deg)}.petal--three{top:28%;right:28%;transform:rotate(64deg)}.petal--four{right:13%;bottom:31%;transform:rotate(-18deg)}.hero__content{position:relative;z-index:1;width:min(880px,100%);text-align:center}.eyebrow{margin:0 0 14px;color:var(--olive);font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}h1,h2,h3,p{overflow-wrap:anywhere}h1{margin:0;color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:clamp(3.3rem,11vw,8.5rem);font-weight:400;line-height:.95;letter-spacing:0;text-shadow:0 14px 34px rgba(76,110,62,.16)}h2{margin:0;color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:clamp(2.1rem,5vw,4.2rem);font-weight:400;line-height:1.05;letter-spacing:0}h3{margin:0 0 8px;font-size:1.08rem}.hero__date{margin:24px 0 0;color:var(--olive);font-size:clamp(1.25rem,3vw,2rem);font-weight:700}.section{position:relative;width:min(1120px,calc(100% - 40px));margin:0 auto;padding:96px 0}.section:before{content:"";position:absolute;top:34px;left:50%;width:min(280px,52vw);height:18px;transform:translate(-50%);background:radial-gradient(circle at 50% 50%,rgba(185,157,85,.46) 0 4px,transparent 5px),linear-gradient(90deg,transparent,rgba(185,157,85,.34),transparent);background-size:18px 18px,100% 1px;background-position:center,center;background-repeat:no-repeat;opacity:.72}.section--soft{width:100%;padding:96px max(20px,calc((100vw - 1120px)/2));background:linear-gradient(135deg,#fffdf6c2,#efebdea8);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.invitation{min-height:68vh;display:grid;place-items:center;text-align:center}.invitation__content{width:min(720px,100%);padding:18px 20px}.invitation h2{margin-bottom:28px;text-transform:uppercase;font-size:clamp(2.4rem,6vw,4.6rem);line-height:.92}.invitation p{width:min(680px,100%);margin:0 auto;color:color-mix(in srgb,var(--muted) 86%,#8f8370);font-size:clamp(1.38rem,3vw,1.9rem);line-height:1.5}.invitation p+p{margin-top:34px}.location{display:grid;grid-template-columns:minmax(320px,1fr) minmax(260px,360px);gap:56px;align-items:center}.location{grid-template-columns:minmax(280px,.78fr) minmax(480px,640px)}.location p,.timeline p{color:var(--muted);line-height:1.75}.section__header{margin-bottom:38px}.schedule__header{display:block;text-align:center}.schedule__header p:not(.eyebrow){margin:0;color:var(--muted);font-size:1.05rem;line-height:1.7}.timeline{display:grid;grid-template-columns:minmax(0,760px);justify-content:center;gap:18px}.timeline__item{position:relative;display:grid;grid-template-columns:156px 1fr;gap:18px;align-items:center;min-height:150px;padding:18px 20px;overflow:hidden;border:1px solid color-mix(in srgb,var(--line) 78%,white);background:linear-gradient(135deg,#fffdf6db,#e8e4d89e),radial-gradient(circle at 95% 8%,rgba(185,157,85,.14),transparent 10rem);box-shadow:0 18px 44px #544e3e1f;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.timeline__item:before{content:"";position:absolute;top:0;bottom:0;left:0;width:4px;background:linear-gradient(180deg,var(--olive),var(--forest))}.timeline__media{position:relative;width:100%;aspect-ratio:3 / 2;overflow:hidden;border:1px solid color-mix(in srgb,var(--line) 70%,white);box-shadow:0 12px 28px #544e3e1f}.timeline__image{width:100%;height:100%;display:block;object-fit:cover}.timeline__media--animated .timeline__image{animation:guests-photo-pan 8s ease-in-out infinite alternate;transform-origin:center}.timeline__media--animated:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(110deg,transparent 0 34%,rgba(255,255,255,.42) 44%,transparent 56% 100%),radial-gradient(circle at 72% 18%,rgba(255,255,255,.38),transparent 28%);mix-blend-mode:screen;opacity:0;transform:translate(-120%);animation:guests-photo-shine 4.8s ease-in-out infinite;pointer-events:none}.timeline__media--animated:after{content:"";position:absolute;inset:auto 14px 12px auto;z-index:2;width:46px;height:46px;border-radius:50%;background:radial-gradient(circle,rgba(255,253,246,.94) 0 4px,transparent 5px),radial-gradient(circle,rgba(185,157,85,.6) 0 13px,transparent 14px);opacity:.82;animation:guests-photo-pulse 2.4s ease-in-out infinite;pointer-events:none}@keyframes guests-photo-pan{0%{transform:scale(1.04) translate3d(-2%,1%,0)}to{transform:scale(1.14) translate3d(3%,-2%,0)}}@keyframes guests-photo-shine{0%,42%{opacity:0;transform:translate(-120%)}58%{opacity:.82}to{opacity:0;transform:translate(120%)}}@keyframes guests-photo-pulse{0%,to{transform:scale(.9);opacity:.48}50%{transform:scale(1.08);opacity:.86}}.timeline__content{min-width:0;display:grid;gap:12px}.timeline__content span{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--olive);font-size:.68rem;font-weight:800;background:var(--paper)}.timeline time{display:inline;color:var(--olive);font-size:inherit;font-weight:800;white-space:nowrap}.timeline__item h3{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.45rem,2.7vw,2.15rem);font-weight:400;line-height:1.12}.location__map{width:min(100%,640px);min-height:420px;justify-self:end;overflow:hidden;border:1px solid color-mix(in srgb,var(--line) 78%,white);background:#fffdf6d1;box-shadow:0 24px 52px #544e3e24;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.location__map iframe{display:block;width:100%;height:420px;border:0}.location__map a{display:flex;min-height:54px;align-items:center;justify-content:center;padding:14px 18px;border-top:1px solid var(--line);color:var(--muted);font-weight:700;text-decoration:none;background:var(--paper)}.location__map a:hover{color:var(--olive)}.footer{padding:34px 20px;color:var(--muted);text-align:center;border-top:1px solid var(--line);background:#fffdf6c2;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.footer p{margin:0}@media(max-width:760px){html{scroll-snap-type:y mandatory}.page{background:linear-gradient(180deg,#f5f2e929,#d9d5c933),url(/wedding-floral-background.png) center top / cover scroll,linear-gradient(145deg,var(--page-start) 0%,var(--page-mid) 52%,var(--page-end) 100%)}.butterfly{scale:.62;opacity:.58}.butterfly--three,.butterfly--five,.butterfly--six{display:none}.hero{min-height:100svh;place-items:center;padding:72px 18px 44px;scroll-snap-align:start;scroll-snap-stop:always}h1{font-size:clamp(3rem,17vw,5.8rem)}.hero__date{margin-top:18px}.hero__ornament{top:14px;right:14px;bottom:14px;left:14px}.hero__ornament:before,.hero__ornament:after{width:82px;height:82px}.flower--one{top:6%;left:-34px;transform:scale(.72) rotate(-18deg)}.flower--two{right:-26px;bottom:10%;transform:scale(.7) rotate(16deg)}.flower--three,.petal--three{display:none}.petal--one{top:17%;left:18%}.petal--two{top:78%}.petal--four{right:8%;bottom:22%}.location{grid-template-columns:1fr}.location__map{justify-self:stretch}.section,.section--soft{width:100%;min-height:100svh;padding:68px 20px;scroll-snap-align:start;scroll-snap-stop:always}.invitation,.schedule,.location{display:grid;align-content:center}.schedule__header,.timeline{grid-template-columns:1fr}.timeline__item{grid-template-columns:92px 1fr;gap:12px;min-height:auto;padding:12px 14px 12px 18px}.timeline__image{max-height:none}.timeline__item h3{font-size:clamp(1.12rem,5.5vw,1.45rem)}.footer{scroll-snap-align:start}.timeline__item:nth-child(5){grid-column:auto}}@media(max-width:420px){.location__map iframe{height:280px}}@media(prefers-reduced-motion:reduce){.page--ready .reveal{opacity:1;filter:none;transform:none;transition:none}.butterfly,.butterfly__wing,.timeline__media--animated .timeline__image,.timeline__media--animated:before,.timeline__media--animated:after{animation:none}.butterfly{display:none}}
