:root{--color-bg-start: #fdf6ec;--color-bg-end: #f3ead6;--color-gold: #b8975a;--color-rose: #c98a7d;--color-rose-ink: #9c4a52;--color-gold-ink: #7d5f2a;--color-ink: #2b2b2b;--font-display: "Playfair Display", Georgia, serif;--font-script: "Great Vibes", "Playfair Display", cursive;--font-serif: "Cormorant Garamond", Georgia, serif;--font-body: "Nunito", "Segoe UI", sans-serif;--section-padding: clamp(3rem, 8vw, 6rem) 1.5rem}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background-color:var(--color-bg-start);background-image:radial-gradient(ellipse at 50% 0%,rgba(255,255,255,.7) 0%,transparent 60%),radial-gradient(circle at 15% 25%,rgba(201,138,125,.08) 0%,transparent 45%),radial-gradient(circle at 85% 65%,rgba(184,149,90,.09) 0%,transparent 50%),linear-gradient(180deg,#fdf8f2,#fbf3e6,#f7ebe0 60%,#f4e4d4);color:var(--color-ink);font-family:var(--font-serif);font-size:clamp(1.06rem,3.2vw,1.18rem);line-height:1.7}input,textarea,select,button,label,legend,.countdown-label,.form-status,.cover-eyebrow,.hero-eyebrow,.letter-to,.hero-guest-to,.event-datetime,.scripture-ref{font-family:var(--font-body)}h1,h2,h3{font-family:var(--font-display);font-weight:600;margin:0 0 1rem}.ink-section h2{font-family:var(--font-script);font-weight:400;font-size:clamp(2.5rem,9vw,3.4rem);line-height:1.25;color:#7a2e38;margin-bottom:1.75rem}.ink-section h2:after{content:"";display:block;width:96px;height:1px;margin:.6rem auto 0;background:linear-gradient(90deg,transparent,var(--color-gold),transparent)}.ink-section h3{font-family:var(--font-display);font-size:clamp(1.15rem,3.8vw,1.35rem);letter-spacing:.04em}.ink-section{position:relative;isolation:isolate;min-height:100vh;padding:var(--section-padding);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden}.parallax-layer{position:absolute;z-index:-1;top:-20%;right:-10%;bottom:-20%;left:-10%;background:radial-gradient(circle at 25% 20%,rgba(184,149,90,.16),transparent 55%),radial-gradient(circle at 75% 75%,rgba(201,138,125,.14),transparent 55%),radial-gradient(circle at 50% 50%,rgba(255,250,240,.5),transparent 65%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,transparent 32%,#000 50%,transparent 68%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,transparent 32%,#000 50%,transparent 68%,transparent 100%);pointer-events:none}.petal-sky{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;overflow:hidden;pointer-events:none}.section-petal{position:absolute;pointer-events:none;filter:drop-shadow(0 2px 3px rgba(120,40,50,.18))}.section-motif{position:absolute;bottom:1.25rem;left:50%;transform:translate(-50%);width:28px;height:28px;opacity:.35;pointer-events:none}.section-motif path{fill:none;stroke:var(--color-gold);stroke-width:1.2;stroke-linecap:round}.reveal{opacity:0}.reveal-word{display:inline-block}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0%;background:linear-gradient(90deg,var(--color-gold),var(--color-rose));z-index:250;pointer-events:none;transition:width .1s linear}#music-toggle{position:fixed;top:1rem;left:1rem;z-index:200;isolation:isolate;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--color-gold);border-radius:50%;cursor:pointer}.music-icon{width:18px;height:18px;fill:none;stroke:var(--color-gold);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.music-icon-slash{opacity:0}#music-toggle.is-muted .music-icon-slash{opacity:1}@media (prefers-reduced-motion: no-preference){.music-icon-slash{transition:opacity .2s ease}}.cover{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:3.5rem 1rem 1.5rem}.cover-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(60% 45% at 18% 22%,rgba(214,146,140,.4),transparent 70%),radial-gradient(55% 45% at 84% 78%,rgba(247,196,168,.45),transparent 70%),radial-gradient(45% 40% at 62% 30%,rgba(222,186,122,.3),transparent 70%),radial-gradient(ellipse at 50% 42%,#fffaf4,#fbeee4 38%,#f3dbd0 72%,#e8c7bb)}.cover-aurora{position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;opacity:.85}.aurora-blob{position:absolute;border-radius:50%;will-change:transform}.blob-rose{width:42vmax;height:42vmax;top:6%;left:-4%;background:radial-gradient(circle,rgba(236,186,176,.5),rgba(236,186,176,.18) 45%,transparent 72%);animation:auroraDriftA 22s ease-in-out infinite alternate}.blob-peach{width:38vmax;height:38vmax;bottom:2%;right:-6%;background:radial-gradient(circle,rgba(252,216,190,.55),rgba(252,216,190,.2) 45%,transparent 72%);animation:auroraDriftB 26s ease-in-out infinite alternate}.blob-gold{width:30vmax;height:30vmax;top:32%;left:38%;background:radial-gradient(circle,rgba(240,215,165,.45),rgba(240,215,165,.15) 45%,transparent 72%);animation:auroraDriftC 18s ease-in-out infinite alternate}@keyframes auroraDriftA{0%{transform:translate(0) scale(1)}to{transform:translate(9vmax,6vmax) scale(1.12)}}@keyframes auroraDriftB{0%{transform:translate(0) scale(1.1)}to{transform:translate(-14vmax,-10vmax) scale(.95)}}@keyframes auroraDriftC{0%{transform:translate(-6vmax,4vmax) scale(.9)}to{transform:translate(8vmax,-6vmax) scale(1.2)}}.cover-vignette{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 45%,transparent 55%,rgba(120,60,55,.16) 100%)}.cover-grain{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.35;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.45 0 0 0 0 0.3 0 0 0 0 0.28 0 0 0 0.12 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.cover-sparkle{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff6e3;box-shadow:0 0 8px 2px #f0cd96bf;pointer-events:none}.cover-bloom{position:absolute;z-index:5;top:50%;left:50%;width:160vmax;height:160vmax;margin:-80vmax 0 0 -80vmax;border-radius:50%;background:radial-gradient(circle,#fdf8f2,#fdf8f2 45%,#fdf8f2d9 55%,#fdf8f200 70%);opacity:0;transform:scale(.15);pointer-events:none}.cover-stage{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:clamp(.9rem,2.6vh,1.6rem);cursor:pointer;user-select:none;-webkit-user-select:none;text-align:center}.cover-heading{display:flex;flex-direction:column;align-items:center}.cover-eyebrow{font-size:clamp(.68rem,1.8vw,.78rem);letter-spacing:.32em;text-transform:uppercase;color:#a86a62;font-weight:600;margin:0 0 .1rem}.cover-names{font-family:"Great Vibes",var(--font-display);font-weight:400;font-size:clamp(1.5rem,6.2vw,2.2rem);font-size:8.6cqw;line-height:1.25;margin:0;padding:0 .15em;white-space:nowrap;background:linear-gradient(100deg,#8a6a33,#bf9a58 34%,#96733a 54%,#caa868 76%,#8a6a33);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 .5px 0 rgba(255,246,235,.65)) drop-shadow(0 -.5px 0 rgba(112,52,46,.4))}.envelope-wrapper{position:relative;animation:envelopeFloat 6s ease-in-out infinite alternate}@keyframes envelopeFloat{0%{transform:translateY(0) rotate(-.4deg)}to{transform:translateY(-8px) rotate(.4deg)}}.cover.is-opening .envelope-wrapper{animation-play-state:paused}.envelope{position:relative;container-type:inline-size;width:min(560px,88vw,calc((100svh - 13rem)*1.5));min-width:240px;aspect-ratio:3 / 2;perspective:1400px;transition:transform .5s cubic-bezier(.2,.8,.2,1)}.cover-stage:hover .envelope{transform:translateY(-4px) scale(1.012)}.envelope-back,.envelope-front{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.envelope-back{z-index:1}.envelope-front{z-index:4;filter:drop-shadow(0 16px 20px rgba(110,50,45,.26)) drop-shadow(0 4px 6px rgba(110,50,45,.16))}.envelope-flap{position:absolute;z-index:5;top:0;left:0;width:100%;height:60.5%;transform-origin:50% 0;transform-style:preserve-3d;will-change:transform}.flap-face{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:visible}.flap-inside{transform:rotateY(180deg)}.flap-names{position:absolute;top:9%;left:18%;right:18%;display:flex;flex-direction:column;align-items:center;gap:.2em;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(.5px);pointer-events:none}.flap-crest{width:62%;height:auto;fill:none;stroke:#a9834a;stroke-width:1;stroke-linecap:round;opacity:.75}.envelope-body{position:absolute;z-index:3;left:5%;right:5%;top:6%;bottom:4%;visibility:hidden;padding:5px;border-radius:4px;background:#fffcf7;box-shadow:0 2px 10px #5a28231f;will-change:transform}.letter-frame{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;padding:4% 6%;border:1px solid rgba(184,151,90,.55);outline:1px solid rgba(184,151,90,.25);outline-offset:-5px;border-radius:2px;background:radial-gradient(ellipse at 50% 20%,#fff,#fdf5ec)}.letter-logo{width:16%;height:auto;margin-bottom:.35rem}.letter-to,.letter-place{margin:0;color:#8d5e3a}.letter-to{font-size:clamp(.56rem,2vw,.8rem);letter-spacing:.2em;text-transform:uppercase;font-weight:600}.letter-place{font-family:var(--font-display);font-style:italic;font-size:clamp(.72rem,2.5vw,1rem)}.letter-name{font-family:"Great Vibes",var(--font-display);font-size:clamp(1.75rem,7.6vw,2.9rem);line-height:1.35;color:#6e2a35;margin:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.envelope-seal{--seal: clamp(56px, 13vw, 78px);--seal: 15cqw;position:absolute;z-index:6;top:calc(57% - var(--seal) / 2);left:calc(50% - var(--seal) / 2);width:var(--seal);height:var(--seal);display:flex;align-items:center;justify-content:center;will-change:transform,opacity}.seal-sprig{position:absolute;z-index:-1;width:200%;height:200%;top:-50%;left:-50%;transform:rotate(-8deg);filter:drop-shadow(0 1px 1px rgba(80,40,30,.3))}.seal-wax{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;filter:drop-shadow(0 4px 6px rgba(60,10,20,.45));transition:filter .4s ease}.cover-stage:hover .seal-wax{filter:drop-shadow(0 4px 6px rgba(60,10,20,.45)) drop-shadow(0 0 12px rgba(255,210,170,.7))}.cover-seal-logo{position:relative;width:62%;height:auto;filter:drop-shadow(0 1px 0 rgba(40,5,12,.7)) drop-shadow(0 -1px 0 rgba(255,230,190,.35))}.cover-footer{display:flex;flex-direction:column;align-items:center;gap:.7rem}.envelope-address{position:absolute;z-index:4;left:12%;right:12%;bottom:5%;display:flex;flex-direction:column;align-items:center;gap:.15rem;pointer-events:none}.cover-date{font-family:var(--font-serif);font-size:clamp(.62rem,2.1vw,.8rem);font-size:max(11px,3cqw);letter-spacing:.06em;font-weight:500;font-style:italic;color:#7c4a44;opacity:.9;margin:0}.cover-open-btn{position:relative;overflow:hidden;background:linear-gradient(135deg,#9a3d4a,#7a2e38 55%,#5e1f2a);color:#fff5ea;border:1px solid rgba(233,196,140,.7);border-radius:999px;padding:.65rem 2rem;font-family:var(--font-body);font-size:clamp(.85rem,2.2vw,.95rem);font-weight:600;letter-spacing:.08em;cursor:pointer;box-shadow:0 6px 18px #7a2e3859,inset 0 1px #fff3;transition:box-shadow .35s ease,background .35s ease}.cover-open-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(110deg,transparent 30%,rgba(255,236,205,.45) 50%,transparent 70%);transform:translate(-120%);animation:btnSheen 4.5s ease-in-out 1.5s infinite;pointer-events:none}@keyframes btnSheen{0%,55%{transform:translate(-120%)}to{transform:translate(120%)}}.cover-open-btn:not(:disabled):hover,.cover-open-btn:not(:disabled):focus-visible{background:linear-gradient(135deg,#a8485a,#8a3542 55%,#6a2431);box-shadow:0 8px 24px #7a2e3873,0 0 0 3px #e9c48c59;outline:none}.cover-open-btn:disabled{cursor:default}@media (prefers-reduced-motion: reduce){.aurora-blob,.envelope-wrapper,.cover-open-btn:before{animation:none!important}}.event-map-link:after,.calendar-link:after{content:"";position:absolute;top:-8px;right:-12px;bottom:-8px;left:-12px;border-radius:999px;background:radial-gradient(circle,var(--color-rose) 0%,transparent 70%);opacity:0;transform:scale(.5);pointer-events:none;z-index:-1}@media (prefers-reduced-motion: no-preference){.event-map-link:after,.calendar-link:after{transition:opacity .35s ease,transform .35s ease}}.event-map-link:hover:after,.event-map-link:focus-visible:after,.calendar-link:hover:after,.calendar-link:focus-visible:after{opacity:.3;transform:scale(1)}.countdown{display:flex;gap:1.5rem;justify-content:center;margin-top:1.5rem}.countdown-unit{display:flex;flex-direction:column;align-items:center;gap:.15rem;min-width:3.9rem;padding:.6rem .5rem .5rem;border:1px solid rgba(184,151,90,.5);border-radius:10px;background:linear-gradient(170deg,#fffdf9d9,#faf0e6b3);box-shadow:0 6px 16px #783c3214}.countdown-value{display:inline-block;font-family:var(--font-display);font-size:clamp(1.75rem,5vw,2.5rem);color:var(--color-gold);perspective:200px}.countdown-value-inner{display:inline-block;transform-style:preserve-3d}.countdown-label{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink)}.countdown-arrived{font-family:var(--font-display);font-size:clamp(1.25rem,4vw,1.75rem);color:var(--color-rose-ink)}.hero-logo{width:clamp(190px,42vw,300px);height:auto;margin-bottom:.5rem}.hero-eyebrow{letter-spacing:.2em;text-transform:uppercase;font-size:.85rem;color:var(--color-rose-ink);opacity:0}.hero-names{font-family:"Great Vibes",var(--font-display);font-weight:400;font-size:clamp(3.2rem,12vw,6rem);line-height:1.15;color:#7a2e38;opacity:0}.hero-line{width:min(200px,40vw);height:10px;margin:.5rem 0 1rem}.hero-line path{fill:none;stroke:var(--color-gold);stroke-width:2;stroke-dasharray:200;stroke-dashoffset:200}.hero-date{color:var(--color-ink);letter-spacing:.05em;opacity:0}.hero-guest{margin-top:.75rem;opacity:0}.hero-guest-to{margin:0;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:#8d5e3a}.hero-guest-name{margin:.1rem 0 0;font-family:"Great Vibes",var(--font-display);font-size:clamp(1.9rem,7vw,2.6rem);line-height:1.3;color:#6e2a35}.hero-guest[hidden]{display:none}.hero-particle{position:absolute;border-radius:50%;background:var(--color-gold);opacity:0}.day-of{position:relative;margin:1.25rem auto .5rem;width:100%;max-width:24rem;padding:1.5rem 1.5rem 1.35rem;display:flex;flex-direction:column;align-items:center;gap:.35rem;border:1px solid var(--color-gold);border-radius:12px;background:linear-gradient(170deg,#fffdf9f2,#faefe5f2);box-shadow:0 10px 28px #783c321f}.day-of[hidden]{display:none}.day-of p{margin:0}.day-of-eyebrow{font-family:var(--font-body);font-size:.72rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--color-rose-ink)}.day-of-eyebrow:empty{display:none}.day-of-title{font-family:var(--font-script);font-size:clamp(1.9rem,7vw,2.4rem);line-height:1.25;color:#7a2e38}.day-of-detail{color:#4f3431}.day-of-later{font-style:italic;font-size:.92em;color:#6b4a45}.day-of-later[hidden],.day-of-directions[hidden]{display:none}.day-of-directions{margin-top:.6rem;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 1.75rem;border-radius:999px;border:1px solid rgba(233,196,140,.7);background:linear-gradient(135deg,#9a3d4a,#7a2e38 55%,#5e1f2a);color:#fff5ea;font-family:var(--font-body);font-weight:600;letter-spacing:.06em;text-decoration:none;box-shadow:0 6px 18px #7a2e384d}.event-badge{display:table;margin:0 auto .6rem;padding:.2rem .75rem;border-radius:999px;font-family:var(--font-body);font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#fff5ea;background:#7a2e38}.event-card.is-next .event-badge{color:#7a2e38;background:#c98a7d2e;border:1px solid rgba(122,46,56,.35)}.event-card.is-now .event-card-tilt{box-shadow:0 0 0 3px #7a2e382e,0 12px 32px #783c3229}.hero-hashtag{margin-top:1rem;font-size:.9rem;letter-spacing:.03em;color:var(--color-rose-ink)}.hero-hashtag strong{font-family:var(--font-display);color:var(--color-gold-ink);font-weight:600;letter-spacing:.05em}.scripture-figure{max-width:40rem;margin:0;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.scripture-ornament{width:120px;height:24px}.scripture-ornament path{fill:none;stroke:var(--color-gold);stroke-width:1.2;stroke-linecap:round}.scripture-text{margin:0;font-family:var(--font-display);font-style:italic;font-size:clamp(1.25rem,4.2vw,1.9rem);line-height:1.6;color:#5e2a32}.scripture-ref{font-size:.8rem;letter-spacing:.3em;text-transform:uppercase;font-weight:600;color:var(--color-gold-ink)}.intro-couple{display:flex;gap:3rem;flex-wrap:wrap;justify-content:center;margin:2rem 0}.card-corner{position:absolute;width:46px;height:46px;fill:none;stroke:var(--color-gold);stroke-width:1.2;stroke-linecap:round;opacity:.55;pointer-events:none}.card-corner-tl{top:8px;left:8px}.card-corner-br{right:8px;bottom:8px;transform:rotate(180deg)}.event-icon{width:clamp(38px,9vw,46px);height:clamp(38px,9vw,46px);fill:none;stroke:var(--color-gold);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.feature-card{position:relative;width:100%;max-width:26rem;margin:1.25rem 0 .5rem;padding:2.25rem 2rem;display:flex;flex-direction:column;align-items:center;gap:1rem;border:1px solid var(--color-gold);border-radius:12px;background:linear-gradient(170deg,#fffdf9eb,#faf0e6eb);box-shadow:0 10px 30px #783c321a}.feature-card:after{content:"";position:absolute;top:7px;right:7px;bottom:7px;left:7px;border:1px solid rgba(184,151,90,.35);border-radius:8px;pointer-events:none}.feature-card-logo{width:clamp(90px,26vw,120px);height:auto}.feature-card .placeholder-text{margin:0}.event-venue{font-weight:600}.event-address{margin-top:-.4rem;max-width:22rem;font-size:.88rem;line-height:1.5;opacity:.8}.event-card{width:100%;max-width:28rem;margin:1rem 0}.event-card-tilt{position:relative;border:1px solid var(--color-gold);border-radius:12px;background:linear-gradient(170deg,#fffdf9f2,#faefe5f2);box-shadow:0 12px 32px #783c321f;perspective:1200px}.event-card-content{position:relative;transform-style:preserve-3d;padding:2rem 2rem 1.75rem;text-align:center}.event-card-content:after{content:"";position:absolute;top:7px;right:7px;bottom:7px;left:7px;border:1px solid rgba(184,151,90,.35);border-radius:8px;pointer-events:none}.event-card-content>h3{margin:.25rem 0 .75rem}.event-card-content>h3{font-family:var(--font-display);font-size:clamp(1.2rem,4.2vw,1.45rem);letter-spacing:.02em;margin:.4rem 0 .9rem}.event-venue{font-size:1.12em}.event-card-content p{margin:.35rem 0}.event-map-link{position:relative;isolation:isolate;display:inline-flex;align-items:center;min-height:44px;padding:0 .25rem;margin-top:.5rem;color:var(--color-rose-ink);text-decoration:none;border-bottom:1px solid var(--color-rose)}.calendar-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:1rem}.calendar-link{position:relative;isolation:isolate;display:inline-flex;align-items:center;min-height:44px;font-family:var(--font-body);font-size:.8rem;color:var(--color-gold-ink);background:transparent;border:1px solid var(--color-gold);border-radius:999px;padding:.4rem .9rem;text-decoration:none;cursor:pointer}.calendar-link[hidden]{display:none}.placeholder-text{color:var(--color-rose-ink);font-style:italic}.gallery-grid{columns:2;column-gap:.55rem;max-width:62rem;width:100%}@media (min-width: 700px){.gallery-grid{columns:3;column-gap:.75rem}}@media (min-width: 1040px){.gallery-grid{columns:4}}.gallery-note{margin-top:-.75rem;margin-bottom:1.5rem}.gallery-frame{position:relative;break-inside:avoid;width:100%;margin:0 0 .55rem;border:1px solid rgba(255,250,242,.85);border-radius:12px;overflow:hidden;background:#f3e3da;box-shadow:0 8px 20px #6e322d24;cursor:zoom-in}@media (min-width: 700px){.gallery-frame{margin-bottom:.75rem}}.gallery-frame img{display:block;width:100%;height:100%;object-fit:cover}.gallery-frame:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.3;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.42 0 0 0 0 0.28 0 0 0 0 0.24 0 0 0 0.11 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none}@media (prefers-reduced-motion: no-preference){.gallery-frame{transition:transform .3s ease,box-shadow .3s ease}}@media (hover: hover) and (pointer: fine){.gallery-frame:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 14px 30px #6e322d38}}.gallery-frame:active{transform:scale(.97)}.gallery-frame{cursor:zoom-in}@media (max-width: 699px){.gallery-frame:nth-child(n+7){display:none}}.gallery-frame:nth-child(9n+1){aspect-ratio:3 / 4}.gallery-frame:nth-child(9n+2){aspect-ratio:1 / 1}.gallery-frame:nth-child(9n+3){aspect-ratio:4 / 5}.gallery-frame:nth-child(9n+4){aspect-ratio:4 / 3}.gallery-frame:nth-child(9n+5){aspect-ratio:1 / 1}.gallery-frame:nth-child(9n+6){aspect-ratio:3 / 4}.gallery-frame:nth-child(9n+7){aspect-ratio:2 / 3}.gallery-frame:nth-child(9n+8){aspect-ratio:5 / 4}.gallery-frame:nth-child(9n+9){aspect-ratio:4 / 5}.gallery-frame:focus-visible{outline:2px solid var(--color-rose);outline-offset:3px}.gallery-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#3c1a1cd1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.gallery-lightbox[hidden]{display:none}.gallery-lightbox-figure{margin:0;max-width:min(900px,92vw);max-height:86vh;display:flex;flex-direction:column;align-items:center;gap:.75rem}.gallery-lightbox-figure img{max-width:100%;max-height:78vh;border:2px solid var(--color-gold);border-radius:6px;background:#f3e3da;box-shadow:0 24px 60px #00000073}.gallery-lightbox-figure figcaption{font-family:var(--font-display);font-style:italic;color:#f7e6da}.gallery-lightbox-close{position:absolute;top:1rem;right:1rem;width:2.5rem;height:2.5rem;font-size:1.5rem;line-height:1;color:#f7e6da;background:transparent;border:1px solid rgba(233,196,140,.7);border-radius:50%;cursor:pointer}.gallery-lightbox-close:hover,.gallery-lightbox-close:focus-visible{background:#e9c48c2e}.invite-form{position:relative;display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:26rem;padding:1.75rem 1.5rem;text-align:left;border:1px solid var(--color-gold);border-radius:12px;background:linear-gradient(170deg,#fffdf9f2,#faefe5f2);box-shadow:0 12px 32px #783c321f}.invite-form[hidden]{display:none}.invite-form label,.invite-form legend{font-size:.85rem;letter-spacing:.06em;color:#6b4a45}.invite-form input[type=text],.invite-form input[type=number],.invite-form textarea{padding:.65rem .85rem;border:1px solid rgba(184,151,90,.45);border-radius:8px;font-family:var(--font-body);font-size:1rem;color:#4a3b36;background:#fffdf8;box-shadow:inset 0 1px 3px #78463712;outline:none}.invite-form input::placeholder,.invite-form textarea::placeholder{color:#a08f86}.invite-form input[type=text]:focus,.invite-form input[type=number]:focus,.invite-form textarea:focus{border-color:var(--color-rose);box-shadow:inset 0 1px 3px #7846370d,0 0 0 3px #c98a7d33}.invite-form input[type=radio]{accent-color:#7a2e38}.invite-form fieldset{border:none;padding:0;display:flex;flex-wrap:wrap;gap:.25rem 1.5rem}.invite-form fieldset label{display:flex;align-items:center;gap:.5rem;min-height:44px;cursor:pointer}.invite-form button{align-self:center;margin-top:.35rem;background:linear-gradient(135deg,#9a3d4a,#7a2e38 55%,#5e1f2a);color:#fff5ea;border:1px solid rgba(233,196,140,.7);border-radius:999px;padding:.65rem 2rem;font-weight:600;letter-spacing:.06em;cursor:pointer;font-family:var(--font-body);box-shadow:0 6px 18px #7a2e384d}.invite-form button:disabled{opacity:.6;cursor:default}.invite-form button.is-sending{position:relative;overflow:hidden;opacity:1;cursor:progress}.invite-form button.is-sending:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(110deg,transparent 30%,rgba(255,236,205,.4) 50%,transparent 70%);transform:translate(-120%);pointer-events:none}.invite-form button.is-sending:after{content:"";display:inline-block;width:1.4em;height:.8em;margin-left:.5em;vertical-align:-.05em;background:radial-gradient(circle,currentColor 45%,transparent 50%) 0 100% / .4em .4em no-repeat,radial-gradient(circle,currentColor 45%,transparent 50%) 50% 100% / .4em .4em no-repeat,radial-gradient(circle,currentColor 45%,transparent 50%) 100% 100% / .4em .4em no-repeat}@media (prefers-reduced-motion: no-preference){.invite-form button.is-sending:before{animation:btnSheenFast 1.4s ease-in-out infinite}.invite-form button.is-sending:after{animation:sendingDots 1.2s ease-in-out infinite}}@keyframes btnSheenFast{0%{transform:translate(-120%)}to{transform:translate(120%)}}@keyframes sendingDots{0%,80%,to{background-position:0 100%,50% 100%,100% 100%}20%{background-position:0 0,50% 100%,100% 100%}40%{background-position:0 100%,50% 0,100% 100%}60%{background-position:0 100%,50% 100%,100% 0}}@media (prefers-reduced-motion: no-preference){.invite-form button{transition:background .35s ease,box-shadow .35s ease}}.invite-form button:not(:disabled):hover,.invite-form button:not(:disabled):focus-visible{background:linear-gradient(135deg,#a8485a,#8a3542 55%,#6a2431);box-shadow:0 8px 24px #7a2e386b,0 0 0 3px #e9c48c59}.thanks-panel{position:relative;width:100%;max-width:26rem;padding:2rem 1.75rem;display:flex;flex-direction:column;align-items:center;gap:.6rem;text-align:center;border:1px solid var(--color-gold);border-radius:12px;background:linear-gradient(170deg,#fffdf9f2,#faefe5f2);box-shadow:0 12px 32px #783c321f}.thanks-panel[hidden]{display:none}.thanks-mark{width:46px;height:46px;fill:none;stroke:var(--color-gold);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.thanks-name{font-family:var(--font-script);font-size:clamp(1.8rem,7vw,2.4rem);line-height:1.25;color:#7a2e38;margin:0}.thanks-note{margin:0;color:#5f4a45}.wish-echo{position:relative;width:100%;margin:.5rem 0 .25rem;padding:1.1rem 1.25rem 1rem;border-radius:8px;background:#fffaf3;border:1px dashed rgba(184,151,90,.55);font-family:var(--font-serif);font-style:italic;font-size:1.05rem;line-height:1.6;color:#5f3a3a;text-align:center;white-space:pre-line;overflow-wrap:anywhere;transform:rotate(-.6deg);box-shadow:0 6px 14px #783c3214}.wish-echo:before,.wish-echo:after{font-family:var(--font-script);font-style:normal;font-size:2rem;line-height:0;color:var(--color-gold);vertical-align:-.45em}.wish-echo:before{content:"“";margin-right:.15em}.wish-echo:after{content:"”";margin-left:.1em}.thanks-again{margin-top:.35rem;padding:.35rem .5rem;min-height:44px;background:none;border:none;font-family:var(--font-body);font-size:.85rem;color:var(--color-rose-ink);text-decoration:underline;cursor:pointer}.honeypot-field{position:absolute;left:-9999px}.form-status{min-height:1.5rem;display:flex;align-items:center;gap:.5rem}.form-status:empty{min-height:0;margin:-.75rem 0 0}.form-status.loading,.form-status.success,.form-status.error{padding:.65rem 1rem;border-radius:8px;font-size:.9rem}.form-status.loading{color:var(--color-ink);background:#b8955a14;border:1px solid rgba(184,149,90,.4)}.form-status.loading{position:relative;overflow:hidden}.form-status.loading:before{content:"♥";flex-shrink:0;color:var(--color-rose);font-size:1rem;line-height:1}.form-status.loading:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--color-gold),var(--color-rose),transparent);background-size:50% 100%;background-repeat:no-repeat;background-position:50% 0}@media (prefers-reduced-motion: no-preference){.form-status.loading:before{animation:form-status-heartbeat 1.1s ease-in-out infinite}.form-status.loading:after{animation:form-status-progress 1.6s ease-in-out infinite}}@keyframes form-status-heartbeat{0%,60%,to{transform:scale(1)}15%{transform:scale(1.3)}30%{transform:scale(.95)}45%{transform:scale(1.2)}}@keyframes form-status-progress{0%{background-position:-100% 0}to{background-position:200% 0}}.form-status.success{color:var(--color-ink);background:#b8955a1f;border:1px solid var(--color-gold)}.form-status.success:before{content:"✓";flex-shrink:0;color:var(--color-gold);font-weight:700}.form-status.error{color:#a3242f;background:#a3242f14;border:1px solid rgba(163,36,47,.4)}.form-status.error:before{content:"!";flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#a3242f;color:#fff;font-size:.7rem;font-weight:700}.guestbook-wall{display:grid;gap:1rem;max-width:32rem;width:100%;margin-top:2rem}.guestbook-card{border-left:3px solid var(--color-rose);padding:.75rem 1rem;text-align:left;background:#fff6;border-radius:0 8px 8px 0}.guestbook-card strong{display:block;color:var(--color-gold);font-family:var(--font-display)}.closing{min-height:60vh}.closing-signoff{font-family:var(--font-display);font-style:italic;color:#6b4a45;margin:2rem 0 0}.closing h2{font-family:"Great Vibes",var(--font-display);font-weight:400;font-size:clamp(2.6rem,9vw,4rem);line-height:1.2;color:#7a2e38;margin-top:.25rem}@media (max-width: 480px){.intro-couple{flex-direction:column;gap:1.5rem}.invite-form fieldset{flex-direction:column;gap:.5rem}.countdown{gap:.75rem}.countdown-unit{min-width:3.1rem;padding:.5rem .35rem .4rem}.event-card-content{padding:1.25rem 1.5rem}}
