@import "https://fonts.googleapis.com/css2?family=Allura&family=Be+Vietnam+Pro:wght@300;400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap";
:root{--cream:#f3f1e9;--paper:#faf8ef;--ink:#26351f;--muted:#aab49e;--leaf:#4e6437;--deep-leaf:#203316;--soft-leaf:#dce5d4;--rose:#f55374;--gold:#e5d5a7}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:#e9eef4;margin:0;font-family:Be Vietnam Pro,sans-serif}button,a{font:inherit}img{max-width:100%;display:block}main{background:var(--deep-leaf);max-width:440px;min-height:100vh;margin:0 auto;overflow:hidden;box-shadow:0 0 38px #11241324}[data-reveal]{opacity:1;animation:.76s cubic-bezier(.2,.8,.2,1) revealAuto;animation-delay:var(--reveal-delay,0s);transition:opacity .76s,transform .76s cubic-bezier(.2,.8,.2,1),filter .76s;transition-delay:var(--reveal-delay,0s);filter:blur();transform:translateY(0)scale(1)}[data-reveal].is-visible{opacity:1;filter:blur();transform:translateY(0)scale(1)}.section-pad{padding:72px 38px}.hero{color:#fff;background-position:50%;background-size:cover;align-items:end;min-height:100svh;padding:28px 24px 72px;animation:1.6s both heroWake;display:grid;position:relative}.hero:before,.just-married:before,footer:before{content:"";background:linear-gradient(#1526111f,#152611c7);position:absolute;inset:0}.music-pill{z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#20331673;border:1px solid #ffffff6b;border-radius:999px;align-items:center;gap:8px;padding:10px 14px;animation:.9s .45s both floatIn;display:inline-flex;position:absolute;top:22px;right:22px}.hero-copy{z-index:1;text-align:center;max-width:760px;margin:0 auto;position:relative}.hero-copy .eyebrow{animation:.78s .24s both titleRise}.hero-copy h1{animation:.88s .38s both titleRise}.hero-copy .date{animation:.88s .54s both titleRise}.eyebrow{color:var(--leaf);text-transform:uppercase;margin:0 0 14px;font-size:.78rem;font-weight:700}.spaced{color:#fff4df;letter-spacing:.22em}h1,h2,h3{margin:0;font-family:Playfair Display,serif;font-weight:600}h1{text-shadow:0 12px 36px #0000005c;font-size:clamp(3.4rem,16vw,6rem);line-height:.92}.date{margin:22px 0 0;font-size:clamp(1.1rem,3vw,1.7rem);font-weight:600}.intro{isolation:isolate;text-align:center;background:var(--deep-leaf);color:#fff;min-height:100svh;position:relative}.intro:before,.intro:after{content:"";z-index:-1;border:1.4px solid #d8e6c838;border-radius:46% 54% 47% 53%;width:280px;height:280px;animation:9s ease-in-out infinite alternate botanicalDrift;position:absolute;transform:rotate(26deg)}.intro:before{top:-82px;right:-122px}.intro:after{opacity:.55;bottom:18%;left:-178px}.floral-line{z-index:-1;opacity:.24;background-image:radial-gradient(at 62% 12%,#0000 35%,#deeccecc 36%,#0000 37%),radial-gradient(at 76% 30%,#0000 34%,#deeccecc 35%,#0000 36%),radial-gradient(at 42% 26%,#0000 33%,#deeccecc 34%,#0000 35%),radial-gradient(at 82% 62%,#0000 38%,#deecceb3 39%,#0000 40%),linear-gradient(130deg,#0000 52%,#deeccecc 53%,#0000 54%);width:260px;height:230px;animation:8s ease-in-out infinite alternate floralFloat;position:absolute;top:0;right:0}.intro-heading{margin:12px auto 48px}.intro-heading h2{color:#fff;text-transform:uppercase;max-width:330px;margin:0 auto;font-family:Playfair Display,serif;font-size:clamp(1.85rem,8.4vw,2.55rem);font-weight:700;line-height:1.25}.intro-heading span{transform-origin:top;background:#ffffffd1;width:2px;height:40px;margin:18px auto;animation:1.8s ease-in-out infinite alternate lineGlow;display:block}.intro-heading p{color:#fff;max-width:270px;margin:0 auto;font-family:Playfair Display,serif;font-size:1.05rem;font-weight:700;line-height:1.28}.script{color:var(--rose);margin:0;font-family:Allura,cursive;font-size:clamp(2.8rem,8vw,5rem)}.invite h2,.timeline h2,.memories h2,.giftbook h2{max-width:720px;margin:8px auto 34px;font-size:clamp(2rem,9vw,3.25rem);line-height:1.08}.couple-grid{grid-template-columns:1fr;gap:44px;display:grid}.person-card{transition:transform .42s;position:relative}.person-card:hover{transform:translateY(-6px)}.person-card img{aspect-ratio:1/1.28;object-fit:cover;object-position:center;border-radius:18px;width:100%;transition:transform .7s,filter .7s;box-shadow:0 20px 48px #00000042}.person-card:hover img{filter:saturate(1.05);transform:scale(1.025)}.person-card:after{content:"";pointer-events:none;background:linear-gradient(#0000,#151914b3);border-radius:0 0 18px 18px;height:40%;position:absolute;bottom:104px;left:0;right:0}.person-overlay{z-index:1;color:#fff;text-align:center;text-shadow:0 6px 18px #0000006b;position:absolute;bottom:128px;left:18px;right:18px}.person-overlay span{margin-bottom:-4px;font-family:Allura,cursive;font-size:clamp(2.4rem,13vw,3.8rem);line-height:1;display:block}.person-overlay h3,.names{color:#fff;font-family:Allura,cursive;font-size:clamp(2.6rem,13vw,4rem);line-height:1}.person-family{color:#fff;min-height:104px;padding:20px 8px 0}.person-family p{color:var(--gold);margin:0 0 8px;font-weight:600}.person-family strong{margin-top:8px;font-weight:500;display:block}.invite{text-align:center;background:linear-gradient(180deg, var(--deep-leaf), var(--leaf));color:#fff}.monogram{color:var(--gold);align-items:center;gap:14px;margin-bottom:24px;font-family:Playfair Display,serif;font-size:2rem;animation:2.4s ease-in-out infinite softPulse;display:inline-flex}.names span{color:var(--gold);margin:0 12px;font-family:Playfair Display,serif;font-size:1.2rem;display:inline-block}.calendar{border-top:1px solid #ffffff57;border-bottom:1px solid #ffffff57;grid-template-columns:1fr auto auto;align-items:center;gap:18px;margin:28px 0 16px;padding:20px 26px;display:inline-grid}.calendar strong,.calendar span{display:block}.calendar .day{color:#fff;font-family:Playfair Display,serif;font-size:4.8rem;line-height:.9}.calendar .month{color:var(--gold);font-weight:700;line-height:1.1}.lunar{color:#ffffffc2}.venue{text-align:left;background:#ffffff1a;border:1px solid #ffffff2e;align-items:flex-start;gap:14px;max-width:650px;margin:30px auto 20px;padding:22px;display:flex}.venue p{color:#ffffffc2;margin:6px 0 0}.map-button,.rsvp,.gift-panel button,.guestbook button{background:var(--leaf);color:#fff;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:9px;min-height:46px;padding:0 22px;text-decoration:none;transition:transform .22s,box-shadow .22s,background .22s;display:inline-flex}.map-button:hover,.rsvp:hover,.gift-panel button:hover,.guestbook button:hover{transform:translateY(-2px);box-shadow:0 10px 24px #101e0d38}.just-married{color:#fff;text-align:center;background-position:50%;background-size:cover;background-attachment:fixed;place-items:center;min-height:620px;display:grid;position:relative}.house-feature{background-position:top}.just-married div,footer p,footer span{z-index:1;position:relative}.just-married p,.just-married h2{font-family:Allura,cursive}.just-married p{margin:0;font-size:4.6rem}.just-married h2{margin:-26px 0 0;font-size:clamp(5rem,18vw,12rem);font-weight:400}.just-married span{text-transform:uppercase;font-size:1.2rem}.countdown{text-align:center;background:var(--leaf);color:#fff}.countdown .eyebrow{color:#efe2bf}.count-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;max-width:720px;margin:0 auto 28px;display:grid}.count-grid div{background:#ffffff14;border:1px solid #ffffff38;padding:22px 10px;transition:transform .26s,background .26s}.count-grid div:hover{background:#ffffff24;transform:translateY(-4px)}.count-grid strong{font-family:Playfair Display,serif;font-size:clamp(2rem,6vw,4.2rem);display:block}.count-grid span{color:#efe2bf}.rsvp{background:var(--rose)}.timeline{background:var(--deep-leaf);color:#fff;text-align:center}.timeline-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;display:grid}.timeline-list article{min-height:190px;color:var(--ink);background:#f1eadf;border:1px solid #e5d5a738;padding:28px 18px;position:relative}.timeline-icon{width:54px;height:54px;color:var(--rose);background:#fff;border-radius:50%;place-items:center;margin:0 auto 18px;animation:2.6s ease-in-out infinite softPulse;display:grid}.timeline-list strong{color:var(--leaf);font-size:1.25rem}.timeline-list p{margin:10px 0 0}.timeline-list article>span{color:#34463e1a;font-family:Playfair Display,serif;font-size:3.2rem;position:absolute;bottom:8px;right:14px}.memories{background:linear-gradient(180deg, var(--leaf), var(--deep-leaf));color:#fff;text-align:center}.gallery{columns:4 210px;column-gap:14px}.gallery img{break-inside:avoid;aspect-ratio:4/5;object-fit:cover;border-radius:16px;width:100%;margin:0 0 14px;transition:transform .52s,filter .52s}.gallery img:hover{filter:brightness(1.06)saturate(1.06);transform:scale(1.025)}.house-gallery img:nth-child(2n){aspect-ratio:1;object-position:center top}.house-gallery img:nth-child(3n){aspect-ratio:3/4;object-position:center bottom}.giftbook{background:var(--deep-leaf);grid-template-columns:1fr;gap:24px;display:grid}.gift-panel,.guestbook{background:var(--paper);border:1px solid #e5d5a73d;padding:34px}.gift-panel{flex-direction:column;justify-content:center;align-items:flex-start;display:flex}.gift-panel h2,.guestbook h2{margin:14px 0 10px}.gift-panel p,.guestbook p{color:var(--muted)}.guestbook form{gap:12px;display:grid}input,textarea{width:100%;color:var(--ink);font:inherit;background:#fbf6ee;border:1px solid #34463e2e;padding:14px 16px}textarea{resize:vertical;min-height:120px}footer{color:#fff;text-align:center;background-position:50%;background-size:cover;place-content:center;gap:20px;min-height:520px;padding:60px 22px;display:grid;position:relative}footer p{max-width:700px;margin:0;font-family:Allura,cursive;font-size:clamp(3rem,10vw,6rem);line-height:.95}footer span{font-family:Playfair Display,serif;font-size:1.4rem}.floating-gift{z-index:10;background:var(--rose);color:#fff;border-radius:50%;place-items:center;width:52px;height:52px;transition:transform .22s;animation:2.6s ease-in-out infinite keyFloat;display:grid;position:fixed;bottom:22px;right:max(18px,50vw - 202px);box-shadow:0 12px 28px #141b1147}.floating-gift:hover{transform:translateY(-4px)rotate(-8deg)}@keyframes heroWake{0%{background-position:50% 44%}to{background-position:50%}}@keyframes revealAuto{0%{opacity:1;filter:blur();transform:translateY(28px)scale(.98)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes titleRise{0%{opacity:0;filter:blur(5px);transform:translateY(26px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes floatIn{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}@keyframes botanicalDrift{0%{transform:rotate(22deg)translate(0,0)}to{transform:rotate(30deg)translate(8px,10px)}}@keyframes floralFloat{0%{transform:translate(0,0)rotate(0)}to{transform:translate(-10px,12px)rotate(-3deg)}}@keyframes lineGlow{0%{opacity:.58;transform:scaleY(.78)}to{opacity:1;transform:scaleY(1.08)}}@keyframes softPulse{0%,to{transform:scale(1)}50%{transform:scale(1.055)}}@keyframes keyFloat{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-8px)rotate(-5deg)}}@media (max-width:760px){.section-pad{padding:58px 38px}.hero{padding:24px 18px 64px}.music-pill{top:16px;right:16px}.calendar{grid-template-columns:1fr auto auto;width:100%;padding:18px 10px}.calendar .day{font-size:4.1rem}.just-married{min-height:520px}.count-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;filter:none;transform:none}}@media (max-width:420px){.section-pad{padding-left:38px;padding-right:38px}.intro-heading{margin-top:0}}
