:root{--forest:#555a42;--forest-mid:#555a42;--text-mid:#555a42;--forest-rgb:85, 90, 66;--text-light:#bbb284;--text-light-rgb:187, 178, 132;--pink-accent:#bbb284;--pink-accent-rgb:187, 178, 132;--pink-hover:#7c7f5f;--gold:#e2d4ab;--gold-rgb:226, 212, 171;--cream:#fbf7ee;--white:#fbf7ee;--white-rgb:251, 247, 238;--cream-2:#f3edde;--cream-2-rgb:243, 237, 222;--blue:#bfced3;--blue-rgb:191, 206, 211;--blue-light:#dee2de;--blue-light-rgb:222, 226, 222;--olive:#9e9b70;--olive-rgb:158, 155, 112;--blue-grey:#9aa8a8;--blue-grey-rgb:154, 168, 168;--shadow-soft:0 12px 40px rgba(var(--forest-rgb), .08)}
@font-face{font-family:Mervyn;src:url(/font/mervyn.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}:root{--font-names:"Great Vibes", cursive;--font-script:"Yellowtail", cursive;--font-serif:"Bodoni Moda", Georgia, serif;--font-sans:"Poppins", sans-serif;--font-script-light:"Great Vibes", cursive}
:root{--paper-texture:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.79  0 0 0 0 0.66  0 0 0 0 0.30  0 0 0 0.045 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)'/%3E%3C/svg%3E")}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{scroll-behavior:smooth;width:100%}body{background-color:var(--cream);color:var(--forest);font-family:var(--font-serif);width:100%;max-width:100%;overflow-x:hidden}body:before{content:"";z-index:-1;pointer-events:none;opacity:.45;background:url(/images/site-bg.jpg) 50%/cover no-repeat;position:fixed;inset:0}#countdown-section,#venue-section,#dresscode-section,#petals-section,#rsvp-section,#compliments-section,#programme-section,#garden-section,.story-section{background:0 0!important}.reveal{opacity:0;transition:opacity .7s ease-out,transform .7s ease-out;transform:translateY(20px)}.reveal.revealed{opacity:1;transform:translateY(0)}.reveal-delay-1{transition-delay:.1s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:.8s both fadeIn}.global-btn{width:100%;max-width:320px;font-family:var(--font-sans);letter-spacing:.25em;text-transform:uppercase;color:var(--forest);background:var(--pink-accent);border:1px solid var(--pink-accent);cursor:pointer;border-radius:30px;justify-content:center;align-items:center;gap:.5rem;margin:0 auto;padding:1rem 2rem;font-size:.7rem;font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex}.global-btn:hover{background:var(--pink-hover);border-color:var(--pink-hover);box-shadow:0 8px 20px rgba(var(--pink-accent-rgb), .4);transform:translateY(-2px)}.global-btn:active{transform:translateY(0)}#entry-gate{z-index:9999;background:var(--cream) url(/images/site-bg.jpg) center / cover no-repeat;-webkit-user-select:none;user-select:none;transition:opacity 2s cubic-bezier(.45,0,.55,1);position:fixed;inset:0}#entry-gate.fade-out{opacity:0;pointer-events:none}#entry-gate.show-hint{cursor:pointer}#entry-gate video{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .8s;position:absolute;inset:0}#entry-gate.is-ready video{opacity:1}#entry-loader{z-index:2;pointer-events:none;justify-content:center;align-items:center;transition:opacity .6s;display:flex;position:absolute;inset:0}#entry-gate.is-ready #entry-loader{opacity:0}.loader-ring{border:1.5px solid rgba(var(--olive-rgb), .2);border-top-color:var(--olive);border-radius:50%;width:34px;height:34px;animation:.9s linear infinite loaderSpin}@keyframes loaderSpin{to{transform:rotate(360deg)}}#entry-hint{left:50%;bottom:max(2.5rem, env(safe-area-inset-bottom));z-index:3;font-family:var(--font-sans);letter-spacing:.35em;text-transform:uppercase;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:nowrap;opacity:0;pointer-events:none;background:#00000047;border:1px solid #ffffff73;border-radius:999px;margin:0;padding:.6rem 1.4rem;font-size:.68rem;transition:opacity .8s;position:absolute;transform:translate(-50%)}#entry-gate.show-hint #entry-hint{opacity:1;animation:2.4s ease-in-out 1.2s infinite hintPulse}#entry-hint{display:none}@keyframes hintPulse{0%,to{opacity:.6}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.loader-ring{animation-duration:2.4s}#entry-gate.show-hint #entry-hint{animation:none}}#audio-btn{background:var(--pink-accent);border:2px solid rgba(var(--white-rgb),.4);width:52px;height:52px;color:var(--forest);cursor:pointer;z-index:900;border-radius:50%;justify-content:center;align-items:center;transition:transform .25s;display:flex;position:fixed;bottom:1.5rem;left:1.5rem;box-shadow:0 4px 20px #00000026}#audio-btn:hover{background:var(--pink-hover);transform:scale(1.08)}#audio-btn svg{width:22px;height:22px}#main-content{width:100%;max-width:100%;display:none}#main-content.visible{display:block}#hero{height:var(--hero-h,100svh);min-height:var(--hero-h,100svh);max-height:var(--hero-h,100svh);background:var(--cream);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}@supports not (height:100svh){#hero{height:var(--hero-h,100vh);min-height:var(--hero-h,100vh);max-height:var(--hero-h,100vh)}}#hero-bg-image{--hero-photo-shift:10%;left:0;top:var(--hero-photo-shift);object-fit:cover;object-position:center bottom;z-index:1;width:100%;height:100%;position:absolute}#hero:before{content:"";z-index:2;pointer-events:none;background:linear-gradient(to bottom, var(--cream) 0%, var(--cream) 30%, rgba(var(--white-rgb), .8) 40%, rgba(var(--white-rgb), 0) 54%);position:absolute;inset:0}.hero-content{z-index:3;text-align:center;opacity:0;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;height:100%;padding:clamp(2rem,7svh,4rem) 1.5rem 1.5rem;transition:opacity .3s ease-out;display:flex;position:relative}.hero-content.visible{opacity:1}.hero-meta{border-bottom:1.5px solid rgba(var(--forest-rgb), .35);grid-template-columns:1fr 1fr;gap:1rem;width:min(100%,340px);padding-bottom:.5rem;display:grid}.hero-meta-item{flex-direction:column;align-items:center;gap:.1rem;display:flex}.hero-meta-value{font-family:var(--font-serif);color:var(--forest);font-size:clamp(1.05rem,4.6vw,1.35rem);line-height:1.2}.hero-meta-label{font-family:var(--font-serif);color:var(--forest);opacity:.85;font-size:clamp(.95rem,4vw,1.15rem);line-height:1.2}.hero-couple{font-family:var(--font-names);color:var(--forest);margin:0 0 .75rem;font-size:clamp(2.7rem,12.5vw,3.9rem);line-height:1}.hero-couple-name{display:block}.hero-couple-amp{margin:.1em 0;font-size:.6em;display:block}.hero-headline{font-family:var(--font-serif);color:var(--forest);margin:clamp(.25rem,1svh,.75rem) 0 clamp(1.5rem,4.5svh,2.25rem);font-size:clamp(1rem,4.3vw,1.3rem);font-weight:400;line-height:1.2}.hero-subline{font-family:var(--font-serif);color:var(--forest);opacity:.9;margin:0;font-size:clamp(1rem,4.4vw,1.25rem);line-height:1.4}.scroll-cue{z-index:3;color:var(--cream);filter:drop-shadow(0 1px 3px rgba(var(--forest-rgb), .8));opacity:.9;flex-direction:column;align-items:center;gap:.3rem;animation:2s infinite scrollBounce;display:flex;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%)}.hero-cta{font-family:var(--font-sans);letter-spacing:.35em;text-transform:uppercase;color:inherit;margin:0;font-size:.65rem;font-weight:600}@keyframes scrollBounce{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(6px)}}#countdown-section{text-align:center;padding:clamp(3.5rem,9vw,5.5rem) 1.25rem;position:relative;overflow:visible}.countdown-inner{z-index:5;max-width:420px;margin:0 auto;position:relative}.countdown-frame{aspect-ratio:892/714;background:url(/images/countdown-frame.png) 50%/contain no-repeat;flex-direction:column;justify-content:center;align-items:center;width:100%;padding:2.5rem 2rem 2rem;display:flex;position:relative}.countdown-title{font-family:var(--font-script);color:var(--forest);margin-bottom:.5rem;font-size:clamp(2.4rem,8vw,3.5rem);line-height:1}.countdown-until{font-family:var(--font-sans);letter-spacing:.28em;text-transform:uppercase;color:var(--forest-mid);margin-bottom:1.75rem;font-size:.58rem}.countdown-grid{justify-content:center;align-items:center;width:100%;max-width:300px;display:flex}.cd-col{flex-direction:column;flex:1;align-items:center;padding:0 .5rem;display:flex}.cd-col+.cd-col{border-left:1px solid rgba(var(--forest-rgb),.15)}.cd-num{font-family:var(--font-serif);color:var(--forest);font-size:clamp(2.2rem,8vw,3rem);font-weight:600;line-height:1}.cd-label{font-family:var(--font-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--text-mid);margin-top:.4rem;font-size:.52rem}#petals-section{justify-content:center;align-items:center;padding:1.5rem 1rem;display:flex;position:relative;overflow:hidden}.love-section{justify-content:center;align-items:center;width:100%;padding:20px;display:flex;position:relative}.wreath-stage{justify-content:center;align-items:center;width:min(430px,80vw);height:min(430px,80vw);display:flex;position:relative}.wreath-img{object-fit:contain;opacity:0;transform-origin:50%;mix-blend-mode:multiply;pointer-events:none;-webkit-user-select:none;user-select:none;filter:hue-rotate(-30deg)saturate(.8);width:100%;height:100%;position:absolute;inset:0}.wreath-center{z-index:10;text-align:center;opacity:0;flex-direction:column;justify-content:center;align-items:center;width:46%;display:flex;position:relative}.love-eyebrow{letter-spacing:.26em;text-transform:uppercase;color:var(--gold);opacity:.85;font-size:.54rem;font-weight:500;font-family:var(--font-sans);margin-bottom:8px}.love-btn{cursor:pointer;background:0 0;border:none;outline:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:16px 24px 14px;transition:transform .3s cubic-bezier(.34,1.56,.64,1);display:inline-flex;position:relative}.love-btn:hover{transform:scale(1.06)}.btn-ring{border:.8px solid rgba(var(--gold-rgb),.5);pointer-events:none;border-radius:50%;transition:border-color .4s;position:absolute;inset:0}.btn-ring-inner{border:.5px solid rgba(var(--gold-rgb),.25);pointer-events:none;border-radius:50%;transition:border-color .4s;position:absolute;inset:6px}.btn-rose-icon{width:24px;height:24px;filter:drop-shadow(0 2px 6px rgba(var(--forest-rgb),.2));margin-bottom:4px;transition:transform .4s}.love-btn:hover .btn-rose-icon{transform:scale(1.15)}.btn-label{letter-spacing:.06em;color:var(--forest);white-space:nowrap;font-size:clamp(.65rem,1.7vw,.78rem);font-style:italic;font-weight:600;line-height:1.3}.btn-shimmer{background:linear-gradient(110deg, var(--forest) 0%, var(--gold) 40%, var(--forest) 80%);-webkit-text-fill-color:transparent;background-size:220%;-webkit-background-clip:text;animation:5s ease-in-out infinite shimmer}@keyframes shimmer{0%,to{background-position:0%}50%{background-position:100%}}.btn-sublabel{font-family:var(--font-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--forest-mid);margin-top:2px;font-size:.48rem;font-weight:400}.btn-ripple{background:rgba(var(--gold-rgb),.3);pointer-events:none;border-radius:50%;animation:.7s ease-out forwards ripple-out;position:absolute;transform:scale(0)}@keyframes ripple-out{to{opacity:0;transform:scale(5)}}.love-counter{background:var(--pink-accent);width:20px;height:20px;font-family:var(--font-sans);color:var(--forest);opacity:0;z-index:20;border-radius:50%;justify-content:center;align-items:center;font-size:.54rem;font-weight:600;display:flex;position:absolute;top:-8px;right:-8px;transform:scale(0)}.wreath-stage.blessed .wreath-img{filter:hue-rotate(-30deg) saturate(.8) drop-shadow(0 0 18px rgba(var(--gold-rgb),.2))}.story-section{height:calc(100vh + var(--stack-count,5) * 70vh);position:relative}.story-sticky{flex-direction:column;justify-content:flex-start;align-items:center;height:100dvh;padding-top:clamp(2.5rem,8vh,4.5rem);display:flex;position:sticky;top:0;overflow:hidden}.story-bg-text{pointer-events:none;opacity:.05;z-index:0;flex-direction:column;justify-content:center;gap:.5em;display:flex;position:absolute;inset:0;transform:rotate(-4deg)scale(1.2)}.story-bg-text span{font-family:var(--font-script);color:var(--forest);white-space:nowrap;font-size:clamp(4rem,10vw,8rem);line-height:1}.story-bg-text span:nth-child(2n){color:var(--gold);transform:translate(-10%)}.stack-text{z-index:10;text-align:center;flex-shrink:0;width:100%;max-width:460px;padding:0 1.5rem;position:relative}.story-eyebrow{font-family:var(--font-sans);letter-spacing:.45em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem;font-size:.7rem}.story-title{font-family:var(--font-script);color:var(--forest);margin-bottom:.75rem;font-size:clamp(2.6rem,7vw,3.6rem);line-height:1}.stack-caption{font-family:var(--font-script);color:var(--forest-mid);font-size:clamp(1.4rem,4vw,1.8rem);transition:opacity .4s,transform .4s}.story-hint{z-index:10;font-family:var(--font-sans);letter-spacing:.3em;color:var(--text-light);text-transform:uppercase;margin-top:auto;padding-bottom:clamp(1.25rem,4vh,2rem);font-size:.62rem;animation:2s ease-in-out infinite hintPulse;position:relative}.photo-stack{z-index:3;flex-shrink:0;width:min(260px,70vw);height:min(360px,46vh);margin:1rem auto 0;position:relative}.stack-card{transform:translateY(120vh) rotate(calc(var(--r) * 2)) scale(.9);will-change:transform;justify-content:center;align-items:center;transition:transform 1.7s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;inset:0}.stack-card:first-child{--r:-3deg;z-index:1}.stack-card:nth-child(2){--r:2.5deg;z-index:2}.stack-card:nth-child(3){--r:-2deg;z-index:3}.stack-card:nth-child(4){--r:1.5deg;z-index:4}.stack-card:nth-child(5){--r:-1.5deg;z-index:5}.stack-card.is-active{transform:translateY(0) rotate(var(--r)) scale(1)}.stack-card.is-stacked{transform:translateY(calc(var(--d,0) * -5px)) rotate(calc(var(--r) * .4)) scale(calc(1 - var(--d,0) * .025))}.pcard{background:var(--white);box-shadow:0 30px 60px -20px rgba(var(--forest-rgb),.2), 0 12px 24px -6px rgba(var(--forest-rgb),.1);border:1px solid rgba(var(--cream-2-rgb),.6);width:100%;height:100%;padding:12px 12px 48px;position:relative}.pcard:before{content:"";background:linear-gradient(180deg, rgba(var(--gold-rgb),.5), rgba(var(--gold-rgb),.25));border:1px solid rgba(var(--gold-rgb),.2);z-index:3;width:65px;height:20px;position:absolute;top:-10px;left:50%;transform:translate(-50%)rotate(-2deg)}.pcard img{object-fit:cover;filter:sepia(.06)saturate(1.1)contrast(1.05);width:100%;height:100%;display:block}@media (prefers-reduced-motion:reduce){.stack-card{opacity:0;transition:opacity .3s;transform:none!important}.stack-card.is-active,.stack-card.is-stacked{opacity:1}}.ornament-divider{justify-content:center;align-items:center;gap:12px;max-width:240px;margin:1.5rem auto;display:flex}.ornament-divider .line{background:linear-gradient(90deg, transparent, var(--gold), transparent);flex:1;height:1px}.ornament-divider .diamond{background:var(--gold);width:7px;height:7px;transform:rotate(45deg)}.flower-pop{opacity:0;justify-content:center;margin-bottom:.75rem;transition:opacity .6s,transform .9s cubic-bezier(.34,1.56,.64,1);display:flex;transform:scale(.3)rotate(-25deg)}.flower-pop.bloom{opacity:1;transform:scale(1)rotate(0)}@media (prefers-reduced-motion:reduce){.flower-pop{transition:opacity .4s;transform:none}.flower-pop.bloom{transform:none}}#dresscode-section{width:100%;padding:1rem 0 3.5rem;position:relative;overflow:hidden}.dresscode-stage{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:46rem;margin:0 auto;padding:clamp(2.5rem,8vw,4rem) clamp(1rem,4vw,1.5rem) 0;display:flex}.dresscode-eyebrow{font-family:var(--font-sans);letter-spacing:.35em;text-transform:uppercase;color:var(--gold);margin:0 0 .5rem;font-size:.6rem}.dresscode-title{font-family:var(--font-script);color:var(--forest);margin:0;font-size:clamp(2.8rem,12vw,4.5rem);line-height:1}.dresscode-line{background:var(--gold);width:clamp(2.5rem,12vw,3.5rem);height:2px;margin:clamp(1rem,4vw,1.5rem) auto;display:block}.dresscode-text{font-family:var(--font-serif);color:var(--forest);letter-spacing:.02em;margin:0;font-size:clamp(1.35rem,6vw,2.2rem);font-style:italic;font-weight:500;line-height:1.25}.dresscode-swatches{justify-content:center;margin:clamp(1.25rem,5vw,1.75rem) 0 0;padding:0;list-style:none;display:flex}.dresscode-swatches li{aspect-ratio:1;border:2px solid var(--cream);width:clamp(1.9rem,8vw,2.4rem);box-shadow:0 3px 8px rgba(var(--forest-rgb), .12);border-radius:50%;margin-left:-.35rem}.dresscode-swatches li:first-child{margin-left:0}#invite-section{position:relative;overflow:hidden}.invite-flowers{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.invite-flowers.is-top{margin-bottom:0}.invite-flowers.is-bottom{margin-top:0}.invite-inner{z-index:3;text-align:center;max-width:540px;margin:0 auto;padding:clamp(.5rem,2vw,1.5rem) 1.5rem;position:relative}.invite-verse{color:var(--text-mid);font-size:clamp(1.02rem,3.6vw,1.22rem);font-style:italic;line-height:1.55}.invite-ref{font-family:var(--font-sans);letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-top:.6rem;font-size:.6rem;display:block}.invite-parents{color:var(--forest);margin-top:clamp(1.5rem,5vw,2.25rem);font-size:clamp(1.05rem,3.6vw,1.25rem)}.invite-text{color:var(--text-mid);margin-top:.65rem;font-size:clamp(.98rem,3.4vw,1.12rem);line-height:1.6}.invite-names{font-family:var(--font-names);color:var(--forest);flex-direction:column;align-items:center;gap:.5rem;margin:clamp(1.25rem,4vw,1.75rem) 0 0;font-size:clamp(2.6rem,10.5vw,5rem);font-weight:400;line-height:1.2;display:flex}.invite-name-parents{font-family:var(--font-serif);color:var(--text-mid);margin-top:.15rem;font-size:clamp(.95rem,3.2vw,1.08rem);line-height:1.5;display:block}.invite-weds{font-family:var(--font-serif);color:var(--text-light);margin:.5rem 0;font-size:clamp(1rem,3.4vw,1.2rem);font-style:italic;display:block}.invite-bride-parents{color:var(--text-mid);margin-top:clamp(1.25rem,4vw,1.75rem);font-size:clamp(.95rem,3.2vw,1.08rem)}.invite-bride-parents+.invite-bride-parents{margin-top:.5rem}.invite-rule{justify-content:center;align-items:center;gap:12px;max-width:280px;margin:clamp(1.5rem,5vw,2.25rem) auto clamp(1.25rem,4vw,1.75rem);display:flex}.invite-rule .l{background:linear-gradient(90deg, transparent, var(--gold), transparent);flex:1;height:1px}.invite-rule .d{background:var(--gold);width:6px;height:6px;transform:rotate(45deg)}#venue-section{width:100%;padding:clamp(2rem,6vw,3rem) 0 0;position:relative;overflow:hidden}.venue-stage{background:url(/images/venue-oval-bg.png) 50%/100% 100% no-repeat;width:100%;margin:0 auto;position:relative}.venue-aspect{aspect-ratio:941/1672;width:100%;position:relative}.venue-text-overlay{justify-content:center;align-items:center;padding:26% 3.5rem 30%;display:flex;position:absolute;inset:0}.venue-text-inner{text-align:center;width:100%;max-width:20rem}.venue-title{font-family:var(--font-script);color:var(--forest);margin-bottom:.5rem;font-size:clamp(2rem,6.5vw,2.6rem);line-height:1.15}.venue-line{background:rgba(var(--gold-rgb), .45);width:2.5rem;height:1px;margin:.75rem auto;display:block}.venue-sub{font-family:var(--font-sans);letter-spacing:.35em;text-transform:uppercase;color:var(--forest-mid);margin-bottom:1.1rem;font-size:clamp(.58rem,2.2vw,.68rem)}.venue-name{font-family:var(--font-script);color:var(--forest);white-space:normal;overflow-wrap:break-word;word-wrap:break-word;margin-bottom:.35rem;font-size:clamp(1.5rem,5vw,1.9rem);line-height:1.2}.venue-city{font-family:var(--font-sans);letter-spacing:.35em;text-transform:uppercase;color:var(--forest-mid);white-space:normal;overflow-wrap:break-word;word-wrap:break-word;margin-bottom:1rem;font-size:clamp(.58rem,2.2vw,.68rem)}.venue-datetime{color:var(--forest);flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem .65rem;margin-bottom:.75rem;display:flex}.venue-date{font-size:clamp(.85rem,3.2vw,.95rem);font-style:italic;line-height:1.35}.venue-time-dot{color:var(--gold);font-size:.9rem}.venue-time{font-family:var(--font-script);white-space:nowrap;font-size:clamp(1.2rem,4vw,1.4rem)}.venue-address{color:var(--forest-mid);font-size:clamp(.72rem,2.6vw,.85rem);line-height:1.55}.venue-illustration{pointer-events:none;width:82%;max-width:720px;position:absolute;bottom:6%;left:50%;transform:translate(-50%)}.venue-location{text-align:center;padding:clamp(2rem,6vw,3rem) 1.5rem clamp(1rem,4vw,1.5rem)}.venue-location-title{font-family:var(--font-script);color:var(--forest);margin:0;font-size:clamp(2.2rem,8vw,2.8rem);line-height:1.15}.venue-location-name{font-family:var(--font-serif);color:var(--forest);margin:0;font-size:clamp(1.2rem,5vw,1.6rem);line-height:1.3}.venue-location-city{margin:.5rem 0 0}.venue-photo{width:78%;max-width:30rem;margin:0 auto}.venue-photo img{aspect-ratio:6/5;object-fit:cover;object-position:center 55%;-webkit-mask-composite:source-in;width:100%;display:block;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 14% 86%,#0000 100%),linear-gradient(#0000 0%,#000 18% 62%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 14% 86%,#0000 100%),linear-gradient(#0000 0%,#000 18% 62%,#0000 100%);-webkit-mask-composite:source-in;mask-composite:intersect}.venue-actions{flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:2rem 1.5rem 2.5rem;display:flex}@media (min-width:641px){.venue-stage{max-width:42rem}.venue-actions{flex-direction:row}}#programme-section{text-align:center;padding:clamp(3.5rem,9vw,5.5rem) 1.25rem clamp(3rem,8vw,5rem)}.programme-eyebrow{font-family:var(--font-serif);letter-spacing:.38em;text-transform:uppercase;color:var(--olive);margin:0 0 .6rem;font-size:.68rem;font-weight:500}.programme-title{font-family:var(--font-script);color:var(--forest);margin:0;font-size:clamp(2.6rem,10vw,3.4rem);line-height:1.05}.sched-day{max-width:24rem;margin:0 auto}.sched-day+.sched-day{margin-top:clamp(2.25rem,8vw,3rem)}.sched-day-eyebrow{font-family:var(--font-serif);letter-spacing:.34em;text-transform:uppercase;color:var(--olive);margin:0;font-size:.62rem;font-weight:500}.sched-day-name{font-family:var(--font-script-light);color:var(--forest);margin:.25rem 0 .3rem;font-size:clamp(1.9rem,8vw,2.3rem);font-weight:400;line-height:1.15}.sched-day-date{font-family:var(--font-serif);letter-spacing:.03em;text-transform:uppercase;color:var(--forest-mid);margin:0;font-size:clamp(.82rem,3.5vw,.95rem);font-weight:400}.sched-list{margin:clamp(1.25rem,5vw,1.75rem) 0 0;padding:0;list-style:none}.sched-item{text-align:left;grid-template-columns:1fr 2rem 1.6fr;display:grid}.sched-item.is-plain{text-align:center;display:block}.sched-time{text-align:right;padding-top:.3rem}.sched-time-main{font-family:var(--font-serif);letter-spacing:.04em;color:var(--olive);font-size:clamp(1.05rem,4.4vw,1.2rem);font-weight:400;line-height:1;display:block}.sched-time-period{font-family:var(--font-serif);letter-spacing:.25em;text-transform:uppercase;color:var(--forest-mid);margin-top:.35rem;font-size:.55rem;display:block}.sched-rail{min-height:4.5rem;position:relative}.sched-rail:before{content:"";background:var(--olive);width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.sched-item:first-child .sched-rail:before{background:linear-gradient(to bottom, transparent, var(--olive) 1rem);top:-.5rem}.sched-item:last-child .sched-rail:before{background:linear-gradient(to bottom, var(--olive), transparent)}.sched-item:only-child .sched-rail:before{background:linear-gradient(to bottom, transparent, var(--olive) 12%, var(--olive) 70%, transparent)}.sched-rail:after{content:"";background:var(--olive);width:7px;height:7px;box-shadow:0 0 0 5px rgba(var(--olive-rgb), .25);border-radius:50%;position:absolute;top:.45rem;left:50%;transform:translate(-50%)}.sched-body{padding:0 0 clamp(1.25rem,5vw,1.75rem) .35rem}.sched-title{font-family:var(--font-serif);color:var(--forest);margin:0 0 .35rem;font-size:clamp(1.05rem,4.4vw,1.2rem);font-style:italic;font-weight:400;line-height:1.25}.sched-note{font-family:var(--font-serif);letter-spacing:.16em;text-transform:uppercase;color:var(--forest-mid);margin:0;font-size:.6rem;font-weight:400;line-height:1.7}.sched-location{font-family:var(--font-serif);letter-spacing:.14em;text-transform:uppercase;color:var(--forest-mid);margin:.55rem 0 0;font-size:.6rem;font-style:italic;font-weight:500;line-height:1.6}#garden-section{justify-content:center;padding:clamp(2rem,6vw,3.5rem) 0;display:flex}#garden-section .garden-wrap{width:100%;max-width:700px;position:relative}#garden-section .garden-bg{aspect-ratio:3/4;background-image:url(/images/garden-bg.png);background-position:top;background-size:cover;border-radius:8px 8px 0 0;width:100%;position:relative;overflow:hidden}#garden-section .garden-title{text-align:center;pointer-events:none;z-index:10;padding:26px 20px 0;position:absolute;top:0;left:0;right:0}#garden-section .garden-title h2{font-family:var(--font-script);color:var(--forest);text-shadow:0 0 18px rgba(var(--white-rgb),.95),0 1px 10px rgba(var(--white-rgb),.85);font-size:clamp(26px,6.5vw,42px)}#garden-section .garden-title p{font-family:var(--font-sans);letter-spacing:.26em;text-transform:uppercase;color:var(--forest-mid);text-shadow:0 0 14px rgba(var(--white-rgb),.95);margin-top:8px;font-size:.6rem}#garden-section .flower-canvas{pointer-events:none;z-index:5;height:72%;position:absolute;bottom:0;left:0;right:0}#garden-section .planted-flower{pointer-events:all;cursor:pointer;transform-origin:bottom;--card-scale:1;flex-direction:column;align-items:center;display:flex;position:absolute}#garden-section .planted-flower.show-card{z-index:12}#garden-section .planted-flower.new-bloom{animation:.85s cubic-bezier(.34,1.56,.64,1) forwards gdBloomUp}@keyframes gdBloomUp{0%{opacity:0;transform:scale(.1)}60%{opacity:1}to{opacity:1;transform:scale(1)}}#garden-section .planted-flower img{filter:drop-shadow(0 3px 8px #00000038);pointer-events:none;-webkit-user-select:none;user-select:none;width:clamp(42px,8vw,68px);height:auto;transition:transform .25s cubic-bezier(.34,1.56,.64,1);display:block}#garden-section .planted-flower:hover img{transform:scale(1.18)rotate(-5deg)}#garden-section .wish-card{box-sizing:border-box;background:rgba(var(--white-rgb), .98);border:1px solid var(--gold);text-align:center;opacity:0;pointer-events:none;z-index:50;white-space:normal;word-break:break-word;width:210px;max-width:calc(100vw - 2rem);min-height:88px;transform:translateX(calc(-50% + var(--card-shift-x,0px))) translateY(8px) scale(var(--card-scale,1));transform-origin:bottom;border-radius:10px;padding:14px 16px;transition:opacity .2s,transform .2s;position:absolute;bottom:calc(100% + 10px);left:50%;box-shadow:0 10px 28px #00000029}#garden-section .planted-flower:hover .wish-card,#garden-section .planted-flower.show-card .wish-card{opacity:1;transform:translateX(calc(-50% + var(--card-shift-x,0px))) translateY(0) scale(var(--card-scale,1))}#garden-section .wish-card:after{content:"";top:100%;left:calc(50% + var(--arrow-shift-x,0px));border:6px solid #0000;border-top-color:var(--gold);margin-top:-1px;position:absolute;transform:translate(-50%)}#garden-section .wish-card:before{content:"";top:100%;left:calc(50% + var(--arrow-shift-x,0px));border:6px solid #0000;border-top-color:rgba(var(--white-rgb),.98);z-index:1;margin-top:-2px;position:absolute;transform:translate(-50%)}#garden-section .wish-name{color:var(--forest);letter-spacing:.03em;font-size:17px;font-weight:600;line-height:1.25}#garden-section .wish-msg{font-family:var(--font-sans);color:var(--forest-mid);margin-top:6px;font-size:13px;line-height:1.5}#garden-section .form-section{border:1px solid rgba(var(--gold-rgb),.2);background:0 0;border-top:none;border-radius:0 0 8px 8px;padding:26px 24px 32px}#garden-section .form-header{text-align:center;margin-bottom:22px}#garden-section .form-header h3{color:var(--forest);letter-spacing:.04em;font-size:clamp(17px,4vw,22px);font-style:italic}#garden-section .flower-count{font-family:var(--font-sans);color:var(--gold);letter-spacing:.15em;text-transform:uppercase;margin-top:6px;font-size:10px}#garden-section .form-row{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px;display:grid}#garden-section .field label{font-family:var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--forest-mid);margin-bottom:7px;font-size:.55rem;display:block}#garden-section .field input{border:1px solid rgba(var(--forest-rgb),.2);width:100%;font-size:1rem;font-family:var(--font-serif);background:var(--white);color:var(--forest);border-radius:4px;outline:none;padding:11px 14px;transition:all .2s}#garden-section .field input:focus{border-color:var(--forest);box-shadow:0 0 0 3px rgba(var(--forest-rgb),.1)}#garden-section .field input.error{border-color:#d06050;animation:.38s gdShake}#garden-section .hint{text-align:center;color:var(--text-light);margin-top:15px;font-size:1rem;font-style:italic}@media (max-width:460px){#garden-section .form-row{grid-template-columns:1fr;gap:10px}}#rsvp-section,#compliments-section{text-align:center;padding:clamp(2.5rem,8vw,4rem) 1.25rem clamp(3rem,8vw,4.5rem)}.rsvp-inner-box{background:var(--white);max-width:480px;box-shadow:0 16px 48px rgba(var(--forest-rgb),.06);border:1px solid rgba(var(--gold-rgb),.3);z-index:1;border-radius:8px;margin:0 auto;padding:clamp(2.5rem,6vw,4rem) clamp(1.5rem,4vw,3rem);position:relative}.events-eyebrow{font-family:var(--font-sans);letter-spacing:.35em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem;font-size:.6rem;display:block}.events-title{font-family:var(--font-script);color:var(--forest);margin-bottom:.3rem;font-size:clamp(3rem,9vw,4.5rem);line-height:1.1}.orn{justify-content:center;align-items:center;gap:10px;max-width:160px;margin:.6rem auto 1.5rem;display:flex}.orn .line{background:linear-gradient(90deg, transparent, var(--gold), transparent);flex:1;max-width:70px;height:1px}.orn .diamond{background:var(--gold);width:5px;height:5px;transform:rotate(45deg)}.rsvp-form-wrap{text-align:left;margin-top:1.5rem;position:relative}.rsvp-field{margin-bottom:1.25rem}.rsvp-label{font-family:var(--font-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--forest);margin-bottom:.4rem;font-size:.55rem;font-weight:500;display:block}.rsvp-input,.rsvp-select,.rsvp-textarea{width:100%;font-family:var(--font-serif);color:var(--forest);background:rgba(var(--white-rgb),.65);border:1px solid rgba(var(--forest-rgb),.2);-webkit-appearance:none;border-radius:4px;outline:none;padding:.75rem 1rem;font-size:1.05rem;transition:border-color .3s}.rsvp-input:focus,.rsvp-select:focus,.rsvp-textarea:focus{border-color:var(--forest);box-shadow:0 0 0 3px rgba(var(--forest-rgb),.1)}.rsvp-textarea{resize:vertical;min-height:80px}.wish-letter{transform-origin:50% 100%;position:relative}.wish-letter-paper{background-color:rgba(var(--white-rgb),.85);background-image:repeating-linear-gradient(to bottom, transparent 0, transparent 31px, rgba(var(--gold-rgb),.35) 31px, rgba(var(--gold-rgb),.35) 32px);border:1px solid rgba(var(--gold-rgb),.4);box-shadow:0 1px 0 rgba(var(--white-rgb),.9) inset, 0 8px 18px rgba(var(--forest-rgb),.1), 3px 3px 0 -1px rgba(var(--white-rgb),.9), 3px 3px 0 0 rgba(var(--gold-rgb),.3);background-position:0 2.9rem;border-radius:3px;padding:.9rem 1.2rem 2.6rem;transition:transform .9s,box-shadow .9s;position:relative}.wish-letter-paper:before{content:"";pointer-events:none;background:#c85a5a40;width:1px;position:absolute;top:0;bottom:0;left:2.1rem}.wish-letter-salutation{font-family:var(--font-script);color:var(--forest);font-size:1.5rem;line-height:2rem;display:block}.wish-letter-body{resize:none;width:100%;min-height:96px;font-family:var(--font-script);color:var(--forest-mid,var(--forest));-webkit-appearance:none;background:0 0;border:0;outline:none;margin:0;padding:0 0 0 1.1rem;font-size:1.25rem;line-height:32px;display:block}.wish-letter-body::placeholder{color:var(--text-light);opacity:.8}.wish-letter-sign{font-family:var(--font-script);color:var(--forest);opacity:.75;font-size:1.15rem;position:absolute;bottom:.7rem;right:1.3rem}.wish-letter-paper:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(var(--gold-rgb),.15), 0 10px 22px rgba(var(--forest-rgb),.12)}.wish-letter-hint{text-align:center;font-family:var(--font-serif);color:var(--text-light);margin:.6rem 0 0;font-size:.8rem;font-style:italic}.wish-letter.is-released{pointer-events:none;animation:1.4s ease-in .9s forwards letter-fly}.wish-letter.is-released .wish-letter-paper{box-shadow:0 6px 14px rgba(var(--forest-rgb),.2);transform:scaleY(.42)}.wish-letter.is-released .wish-letter-body,.wish-letter.is-released .wish-letter-salutation,.wish-letter.is-released .wish-letter-sign{opacity:0;transition:opacity .4s}@keyframes letter-fly{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(-300px)rotate(6deg)scale(.4)}}@media (prefers-reduced-motion:reduce){.wish-letter.is-released{animation:1s .9s forwards letter-fade}.wish-letter-paper{transition:none;animation:none}@keyframes letter-fade{to{opacity:0}}}.rsvp-radio-group{gap:1.5rem;margin-top:.3rem;display:flex}.rsvp-radio-label{color:var(--text-mid);cursor:pointer;align-items:center;gap:.4rem;font-size:1.05rem;display:flex}.rsvp-radio-label input[type=radio],.rsvp-radio-label input[type=checkbox]{accent-color:var(--forest);width:16px;height:16px}#compliments-section{padding-bottom:.5rem}.cc-flowers{pointer-events:none;-webkit-user-select:none;user-select:none;width:calc(100% + 2.5rem);max-width:none;height:auto;margin:1.5rem -1.25rem 0;display:block}.cc-card{text-align:center;background:var(--paper-texture), radial-gradient(ellipse at 50% 0%, #fff 0%, var(--white) 65%);border:1px solid rgba(var(--olive-rgb), .5);max-width:330px;box-shadow:0 16px 36px -16px rgba(var(--forest-rgb), .32), 0 3px 10px rgba(var(--forest-rgb), .06);border-radius:4px;margin:1.5rem auto 0;padding:2.4rem 1.75rem 2rem;position:relative}.cc-card:before{content:"";pointer-events:none;border:1px solid rgba(var(--olive-rgb), .35);border-radius:2px;position:absolute;inset:7px}.cc-corner{fill:none;width:30px;height:30px;stroke:var(--olive);stroke-width:1.2px;stroke-linecap:round;opacity:.8;pointer-events:none;position:absolute}.cc-corner circle{fill:var(--olive);stroke:none}.cc-tl{top:11px;left:11px}.cc-tr{top:11px;right:11px;transform:scaleX(-1)}.cc-bl{bottom:11px;left:11px;transform:scaleY(-1)}.cc-br{bottom:11px;right:11px;transform:scale(-1)}.cc-seal{z-index:1;background:radial-gradient(circle at 34% 30%, #a3a67f 0%, var(--pink-hover) 45%, var(--forest) 100%);width:44px;height:44px;box-shadow:0 6px 14px rgba(var(--forest-rgb), .35), inset 0 -3px 6px #00000038, inset 0 2px 3px #ffffff40;color:var(--gold);border-radius:50%;justify-content:center;align-items:center;font-size:1rem;line-height:1;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%,-50%)}.cc-seal:before{content:"";border:1px solid rgba(var(--gold-rgb), .55);border-radius:50%;position:absolute;inset:4px}.cc-eyebrow{font-family:var(--font-sans);letter-spacing:.35em;text-transform:uppercase;color:var(--olive);margin-bottom:.4rem;font-size:.55rem;display:block}.cc-title{font-family:var(--font-script);color:var(--forest);margin:0;font-size:clamp(2rem,7vw,2.4rem);font-weight:400;line-height:1.1}.cc-from{font-family:var(--font-serif);letter-spacing:.12em;color:var(--olive);margin:.2rem 0 0;font-size:.85rem;font-style:italic}.cc-card .orn{max-width:120px;margin:.6rem auto .9rem}.cc-card .orn .line{background:linear-gradient(90deg, transparent, var(--olive), transparent)}.cc-card .orn .diamond{background:var(--olive)}.cc-names{margin:0;padding:0;list-style:none}.cc-name{font-family:var(--font-serif);letter-spacing:.04em;color:var(--forest);font-size:clamp(1.2rem,4.2vw,1.4rem);font-style:italic;font-weight:500;line-height:1.45}.cc-sep{color:var(--olive);opacity:.85;margin:.05rem 0;font-size:.5rem}.rsvp-success{color:var(--forest);text-align:center;margin-top:1.5rem;font-size:1.15rem;font-style:italic;display:none}#footer-section{padding:clamp(2rem,5vw,3rem) 1rem clamp(2.5rem,6vw,3.5rem);display:block;position:relative;overflow:hidden}.footer-stage{width:100%;max-width:42rem;margin:0 auto;position:relative}.footer-frame-img{width:100%;height:auto;display:block}.footer-overlay{text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;padding:16% 16% 0;display:flex;position:absolute;inset:0}#footer-section .footer-names{font-family:var(--font-names);color:var(--forest);font-size:clamp(2.6rem,10vw,4.2rem);line-height:1.08;display:block}#footer-section .footer-amp{font-family:var(--font-serif);color:var(--gold);margin:.05rem 0;font-size:clamp(1.8rem,7vw,3rem);display:block}#footer-section .footer-divider{opacity:.8;justify-content:center;align-items:center;gap:.9rem;margin:1.1rem 0 0;display:flex}#footer-section .footer-divider div{background:var(--gold);width:48px;height:1px}#footer-section .footer-divider span{color:var(--forest);font-size:.8rem}#footer-section .footer-thanks{color:var(--text-mid);margin-top:.8rem;padding:0 1rem;font-size:clamp(.75rem,2.5vw,.92rem);font-style:italic}.footer-credit{font-family:var(--font-sans);letter-spacing:.2em;color:var(--text-light);text-transform:uppercase;text-align:center;margin-top:clamp(2.5rem,6vw,3.5rem);font-size:.72rem}.footer-credit a{color:var(--forest-mid);text-underline-offset:3px;font-weight:600;text-decoration:underline}.footer-credit a:hover{color:var(--gold)}#petal-canvas,#petals-canvas{pointer-events:none;z-index:800;width:100vw;height:100vh;display:block;position:fixed;inset:0}#petal-canvas.is-showering{z-index:10000}
