:root{--color-ivory:#faf7f2;--color-ivory-warm:#f5f0e8;--color-gold:#c9a962;--color-gold-muted:#d4bc82;--color-gold-light:#c9a96226;--color-navy:#1a2332;--color-charcoal:#3d3d3d;--color-charcoal-muted:#6b6560;--font-serif:"Cormorant Garamond", "Georgia", "Times New Roman", serif;--font-sans:"Jost", "Helvetica Neue", "Arial", sans-serif;--shadow-soft:0 4px 24px #1a23320f;--shadow-medium:0 8px 32px #1a233214;font-family:var(--font-sans);color:var(--color-charcoal);background-color:var(--color-ivory);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--color-ivory);background-image:radial-gradient(ellipse at 20% 0%, var(--color-gold-light) 0%, transparent 50%), radial-gradient(ellipse at 80% 100%, #c9a96214 0%, transparent 45%);min-width:320px;margin:0;overflow-x:hidden}#root{width:100%;min-height:100dvh}h1,h2,h3,p{margin:0}a{color:inherit}img{max-width:100%;height:auto;display:block}button{font-family:inherit}.envelope-intro{z-index:200;background-color:var(--color-ivory);justify-content:center;align-items:center;padding:clamp(1rem,4vw,2.5rem);display:flex;position:fixed;inset:0;overflow:hidden}.envelope-intro__paper{background-color:var(--color-ivory);pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E"),radial-gradient(at 50% 20%,#c9a9620f 0%,#0000 55%);position:absolute;inset:0}.envelope-intro__border{pointer-events:none;position:absolute;inset:clamp(.75rem,3vw,1.75rem)}.envelope-intro__border-line{background:linear-gradient(90deg, transparent, var(--color-gold-muted) 20%, var(--color-gold) 50%, var(--color-gold-muted) 80%, transparent);opacity:.32;position:absolute}.envelope-intro__border-line--top,.envelope-intro__border-line--bottom{height:1px;left:8%;right:8%}.envelope-intro__border-line--top{top:0}.envelope-intro__border-line--bottom{bottom:0}.envelope-intro__border-line--left,.envelope-intro__border-line--right{background:linear-gradient(180deg, transparent, var(--color-gold-muted) 20%, var(--color-gold) 50%, var(--color-gold-muted) 80%, transparent);width:1px;top:8%;bottom:8%}.envelope-intro__border-line--left{left:0}.envelope-intro__border-line--right{right:0}.envelope-intro__motifs{pointer-events:none;color:var(--color-gold);position:absolute;inset:0}.envelope-intro__lotus{opacity:.28;width:clamp(2rem,7vw,3.25rem);height:clamp(2rem,7vw,3.25rem);position:absolute}.envelope-intro__lotus--tl{top:clamp(.75rem,3vw,1.5rem);left:clamp(.25rem,2vw,1rem)}.envelope-intro__lotus--tr{top:clamp(.75rem,3vw,1.5rem);right:clamp(.25rem,2vw,1rem);transform:scaleX(-1)}.envelope-intro__flourish{opacity:.32;width:clamp(1.5rem,5vw,2.5rem);height:clamp(1.5rem,5vw,2.5rem);position:absolute}.envelope-intro__flourish--tl{top:clamp(1.25rem,4vw,2rem);left:clamp(.75rem,3vw,1.5rem)}.envelope-intro__flourish--tr{top:clamp(1.25rem,4vw,2rem);right:clamp(.75rem,3vw,1.5rem);transform:scaleX(-1)}.envelope-intro__content{z-index:1;text-align:center;flex-direction:column;align-items:center;width:100%;max-width:min(28rem,94vw);display:flex;position:relative}.envelope-intro__monogram-ring{background:radial-gradient(circle at 50% 35%,#ffffff8c 0%,#0000 65%),radial-gradient(circle,#f5efe4cc 0%,#f8f4ec66 100%);border:1px solid #c9a96280;border-radius:50%;justify-content:center;align-items:center;width:clamp(3rem,13vw,4rem);height:clamp(3rem,13vw,4rem);margin-bottom:clamp(.625rem,2vw,.875rem);transition:opacity .55s .15s;display:flex;box-shadow:0 2px 10px #1a23320d,inset 0 1px #fff9}.envelope-intro__monogram{font-family:var(--font-serif);letter-spacing:.16em;color:var(--color-gold);font-size:clamp(.9375rem,4vw,1.25rem);font-weight:400}.envelope-intro__subtitle{font-family:var(--font-sans);letter-spacing:.38em;color:var(--color-charcoal-muted);margin:0 0 clamp(1rem,3vw,1.5rem);font-size:clamp(.5625rem,2.4vw,.6875rem);font-weight:400;transition:opacity .55s .15s}.envelope-intro__envelope-wrap{perspective:1200px;justify-content:center;width:min(90vw,21.5rem);max-width:100%;margin-bottom:clamp(1rem,3vw,1.5rem);display:flex;overflow:visible}.envelope-intro__envelope{aspect-ratio:16.5/9.5;border-radius:2px;width:100%;transition:transform .75s cubic-bezier(.4,0,.2,1) 2.2s,opacity .65s 2.35s;position:relative;overflow:hidden;transform:translateZ(0);box-shadow:0 8px 32px #1a23321c,0 3px 8px #1a23320f}.envelope-intro--opening .envelope-intro__envelope{overflow:visible}.envelope-intro__envelope-back{z-index:0;background:linear-gradient(165deg,#faf6ef 0%,#ebe3d4 55%,#e4dac8 100%);border-radius:2px;position:absolute;inset:0}.envelope-intro__envelope-body{z-index:2;pointer-events:none;background:linear-gradient(165deg,#f8f3ea 0%,#ebe3d4 50%,#e6dcc9 100%);border:1px solid #c9a96261;border-radius:2px;transition:opacity .45s .25s;position:absolute;inset:0;box-shadow:inset 0 1px #ffffff80}.envelope-intro__envelope-side{z-index:3;pointer-events:none;width:50%;position:absolute;inset:0}.envelope-intro__envelope-side--left{background:linear-gradient(118deg,#f0ebe1f2 0%,#e8dfd08c 48%,#0000 72%);left:0}.envelope-intro__envelope-side--right{background:linear-gradient(242deg,#f0ebe1f2 0%,#e8dfd08c 48%,#0000 72%);right:0}.envelope-intro__envelope-front{clip-path:polygon(0 0,50% 12%,100% 0,100% 100%,0 100%);z-index:4;background:linear-gradient(#f7f2e8 0%,#ede5d6 100%);border:1px solid #c9a96252;border-top:none;height:48%;position:absolute;inset:auto 0 0;box-shadow:inset 0 1px #fff6,0 -1px #c9a9621f}.envelope-intro__envelope-flap{transform-origin:top;width:100%;height:56%;transform-style:preserve-3d;z-index:5;pointer-events:none;transition:transform .9s cubic-bezier(.45,.05,.25,1),z-index 0s .45s;position:absolute;inset:0 0 auto}.envelope-intro__envelope-flap-face{clip-path:polygon(0 0,50% 100%,100% 0);backface-visibility:hidden;background:linear-gradient(#f2ece0 0%,#e8dfd0 100%);border:1px solid #c9a96261;border-bottom:none;position:absolute;inset:0;box-shadow:0 2px 8px #1a23320f}.envelope-intro__seal{z-index:1;width:clamp(3.25rem,12vw,4.5rem);height:clamp(3.25rem,12vw,4.5rem);font-family:var(--font-serif);letter-spacing:.08em;color:var(--color-gold);transform-origin:50%;pointer-events:none;background:radial-gradient(circle at 40% 35%,#faf6ef 0%,#e5dcc9 100%);border:1px solid #c9a9627a;border-radius:50%;justify-content:center;align-items:center;font-size:clamp(.5625rem,2.4vw,.6875rem);transition:opacity .5s .12s,transform .5s .12s;display:flex;position:absolute;top:calc(60% + clamp(1.5625rem,3.5vw,2.1875rem));left:50%;transform:translate(-50%,-50%)translateZ(2px);box-shadow:0 3px 10px #1a23321a,0 1px 3px #1a23320f,inset 0 1px #ffffff8c}.envelope-intro__envelope-card{z-index:1;opacity:0;visibility:hidden;height:74%;transform-style:preserve-3d;background:linear-gradient(#fcf9f4 0%,#f5efe4 100%);border:1px solid #c9a96240;flex-direction:column;justify-content:center;align-items:center;gap:clamp(.25rem,1.2vw,.4rem);padding:clamp(.5rem,2vw,.875rem);transition:transform 1.2s cubic-bezier(.22,1,.36,1) .6s,z-index 0s 1.05s,opacity .45s .55s,visibility 0s linear .55s;display:flex;position:absolute;top:10%;left:7%;right:7%;transform:translateY(0)scale(1);box-shadow:0 3px 16px #1a233214,inset 0 1px #ffffffb3}.envelope-intro__card-monogram{font-family:var(--font-serif);letter-spacing:.14em;color:var(--color-gold);font-size:clamp(.8125rem,3.2vw,1rem)}.envelope-intro__card-subtitle{font-family:var(--font-sans);letter-spacing:.32em;color:var(--color-charcoal-muted);font-size:clamp(.4375rem,1.8vw,.5625rem)}.envelope-intro__card-couple{font-family:var(--font-serif);letter-spacing:.12em;color:var(--color-navy);font-size:clamp(.6875rem,2.8vw,.8125rem)}.envelope-intro__card-date{font-family:var(--font-sans);letter-spacing:.16em;color:var(--color-charcoal-muted);font-size:clamp(.4375rem,1.8vw,.5625rem)}.envelope-intro__couple-display{font-family:var(--font-serif);letter-spacing:.16em;color:var(--color-navy);margin:0 0 clamp(1.125rem,3vw,1.5rem);font-size:clamp(.8125rem,3.6vw,1rem);font-weight:400;transition:opacity .55s .15s}.envelope-intro__btn{min-width:min(12.5rem,88vw);max-width:100%;min-height:2.875rem;font-family:var(--font-sans);letter-spacing:.28em;color:var(--color-navy);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #c9a96299;justify-content:center;align-items:center;padding:.75rem 1.5rem;font-size:clamp(.625rem,2.5vw,.6875rem);font-weight:400;transition:background-color .45s,color .45s,border-color .45s,box-shadow .45s,transform .45s,opacity .55s 50ms;display:inline-flex}.envelope-intro__btn:hover:not(:disabled),.envelope-intro__btn:focus-visible:not(:disabled){border-color:var(--color-gold);background-color:#c9a96214;transform:scale(1.02);box-shadow:0 0 18px #c9a96238}.envelope-intro__btn:disabled{cursor:default}.envelope-intro__btn:focus-visible{outline:2px solid var(--color-gold);outline-offset:3px}.envelope-intro--opening .envelope-intro__monogram-ring,.envelope-intro--opening .envelope-intro__subtitle,.envelope-intro--opening .envelope-intro__couple-display{opacity:0}.envelope-intro--opening .envelope-intro__btn{opacity:0;pointer-events:none;transform:scale(.98)}.envelope-intro--opening .envelope-intro__envelope-body{opacity:0}.envelope-intro--opening .envelope-intro__envelope-flap{z-index:1;transition:transform .9s cubic-bezier(.45,.05,.25,1),z-index;transform:rotateX(-168deg)}.envelope-intro--opening .envelope-intro__seal{opacity:0}.envelope-intro--opening .envelope-intro__envelope-card{opacity:1;visibility:visible;z-index:6;transition:transform 1.2s cubic-bezier(.22,1,.36,1) .6s,z-index 0s 1.05s,opacity .45s .55s,visibility linear;transform:translateY(calc(-118% - .65rem))scale(1.03)translateZ(16px)}.envelope-intro--opening .envelope-intro__envelope{opacity:0;transform:translateZ(0)}.envelope-intro--opening,.envelope-intro--fade{animation:.7s 2.3s forwards envelope-fade-out}.envelope-intro--fade{animation-duration:.45s;animation-delay:.1s}@keyframes envelope-fade-out{to{opacity:0;visibility:hidden;pointer-events:none}}@media (width<=480px){.envelope-intro__envelope-wrap{width:min(92vw,21.5rem)}.envelope-intro--opening .envelope-intro__envelope-card{transform:translateY(calc(-122% - .5rem))scale(1.025)translateZ(12px)}}@media (width<=320px){.envelope-intro{padding:.875rem}.envelope-intro__envelope-wrap{width:88vw}.envelope-intro__btn{letter-spacing:.2em;min-width:100%;padding-inline:1rem}.envelope-intro__monogram-ring{width:2.75rem;height:2.75rem}.envelope-intro__monogram{letter-spacing:.12em;font-size:.875rem}.envelope-intro__couple-display{letter-spacing:.12em}.envelope-intro--opening .envelope-intro__envelope-card{transform:translateY(calc(-125% - .45rem))scale(1.02)translateZ(10px)}}@media (prefers-reduced-motion:reduce){.envelope-intro__envelope-flap,.envelope-intro__envelope-card,.envelope-intro__envelope-body,.envelope-intro__envelope,.envelope-intro__btn,.envelope-intro__monogram-ring,.envelope-intro__subtitle,.envelope-intro__couple-display{transition:none}.envelope-intro--opening .envelope-intro__envelope{overflow:visible}.envelope-intro--opening .envelope-intro__envelope-body{opacity:0}.envelope-intro--opening .envelope-intro__envelope-card{opacity:1;visibility:visible;transform:translateY(calc(-118% - .65rem))scale(1.02)}.envelope-intro--opening .envelope-intro__envelope-flap,.envelope-intro--opening .envelope-intro__envelope{opacity:0;transform:none}.envelope-intro--opening,.envelope-intro--fade{opacity:0;visibility:hidden;pointer-events:none;animation:none}}.heart-intro{z-index:200;width:100%;height:100dvh;min-height:100dvh;padding:max(1.25rem, env(safe-area-inset-top)) max(1.25rem, env(safe-area-inset-right)) max(1.5rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left));box-sizing:border-box;justify-content:center;align-items:center;animation:.55s both heart-intro-in,1s 3.1s forwards heart-intro-out;display:flex;position:fixed;inset:0;overflow:hidden}.heart-intro__paper{background-color:var(--color-ivory);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E"), radial-gradient(ellipse at 50% 20%, var(--color-gold-light) 0%, transparent 55%);pointer-events:none;position:absolute;inset:0}.heart-intro__stage{z-index:1;aspect-ratio:320/300;place-items:center;width:min(78vw,420px);display:grid;position:relative}.heart-intro__svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.heart-intro__path{fill:none;stroke:var(--color-navy);stroke-width:1.2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:2s cubic-bezier(.4,0,.2,1) both heart-draw}.heart-intro__names{z-index:1;flex-direction:column;align-items:center;margin:0;padding:.4rem 0 .8rem;display:flex;position:relative}.heart-intro__name{font-family:var(--font-serif);letter-spacing:.12em;color:var(--color-navy);opacity:0;font-size:clamp(1.75rem,8vw,2.65rem);font-weight:400;line-height:1.1}.heart-intro__name--bride{animation:.8s cubic-bezier(.22,1,.36,1) .8s both heart-name-in}.heart-intro__amp{font-family:var(--font-serif);color:var(--color-gold);opacity:0;margin:.12rem 0 .28rem;font-size:clamp(1.25rem,4.8vw,1.75rem);font-style:italic;font-weight:400;line-height:1;animation:.75s cubic-bezier(.22,1,.36,1) 1.2s both heart-name-in}.heart-intro__name--groom{animation:.8s cubic-bezier(.22,1,.36,1) 1.5s both heart-name-in}@keyframes heart-intro-in{0%{opacity:0}to{opacity:1}}@keyframes heart-intro-out{to{opacity:0;visibility:hidden;pointer-events:none}}@keyframes heart-draw{to{stroke-dashoffset:0}}@keyframes heart-name-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=374px){.heart-intro__name{letter-spacing:.08em}}@media (prefers-reduced-motion:reduce){.heart-intro,.heart-intro--reduced{animation:.3s both heart-intro-in,.45s 1.15s forwards heart-intro-out}.heart-intro__path,.heart-intro__name,.heart-intro__amp{opacity:1;stroke-dashoffset:0;animation:none;transform:none}}.music-player{z-index:100;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#faf7f2eb;border:1px solid #c9a96259;border-radius:2rem;align-items:center;gap:.5rem;padding:.375rem;display:flex;position:fixed;bottom:clamp(1rem,4vw,1.5rem);right:clamp(1rem,4vw,1.5rem)}.music-player__btn{color:var(--color-navy);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:2rem;align-items:center;gap:.5rem;padding:.5rem .875rem;transition:background-color .3s;display:flex}.music-player__btn:hover,.music-player__btn:focus-visible{background-color:#c9a9621f}.music-player__btn:focus-visible{outline:2px solid var(--color-gold);outline-offset:2px}.music-player__icon{width:1rem;height:1rem;color:var(--color-gold);display:flex}.music-player__icon--playing{animation:1.4s ease-in-out infinite music-pulse}.music-player__icon svg{width:100%;height:100%}.music-player__label{font-family:var(--font-sans);letter-spacing:.18em;text-transform:uppercase;font-size:.625rem;font-weight:500}.music-player__mute{width:2.25rem;height:2.25rem;color:var(--color-charcoal-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background-color .3s,color .3s;display:flex}.music-player__mute svg{width:1rem;height:1rem}.music-player__mute:hover,.music-player__mute:focus-visible{color:var(--color-navy);background-color:#c9a9621f}.music-player__mute:focus-visible{outline:2px solid var(--color-gold);outline-offset:2px}@keyframes music-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.92)}}@media (width<=320px){.music-player__label{display:none}.music-player__btn{padding:.5rem}}@media (prefers-reduced-motion:reduce){.music-player__icon--playing{animation:none}}.hero{box-sizing:border-box;justify-content:center;align-items:center;min-height:100dvh;padding:clamp(2.5rem,8vw,4.5rem) clamp(1.25rem,5vw,3rem);display:flex;position:relative;overflow:hidden}.hero__frame{pointer-events:none;position:absolute;inset:clamp(1rem,4vw,2.5rem)}.hero__frame-line{background:linear-gradient(90deg, transparent, var(--color-gold-muted) 20%, var(--color-gold) 50%, var(--color-gold-muted) 80%, transparent);opacity:.45;position:absolute}.hero__frame-line--top,.hero__frame-line--bottom{height:1px;left:10%;right:10%}.hero__frame-line--top{top:0}.hero__frame-line--bottom{bottom:0}.hero__frame-line--left,.hero__frame-line--right{background:linear-gradient(180deg, transparent, var(--color-gold-muted) 20%, var(--color-gold) 50%, var(--color-gold-muted) 80%, transparent);width:1px;top:10%;bottom:10%}.hero__frame-line--left{left:0}.hero__frame-line--right{right:0}.hero__motifs{pointer-events:none;color:var(--color-gold);position:absolute;inset:0}.hero__lotus{opacity:.55;width:clamp(3.5rem,12vw,5.5rem);height:clamp(3.5rem,12vw,5.5rem);position:absolute}.hero__lotus--tl{top:clamp(.5rem,3vw,1.5rem);left:clamp(.25rem,2vw,1rem);transform:rotate(-15deg)}.hero__lotus--tr{top:clamp(.5rem,3vw,1.5rem);right:clamp(.25rem,2vw,1rem);transform:scaleX(-1)rotate(-15deg)}.hero__lotus--bl{bottom:clamp(.5rem,3vw,1.5rem);left:clamp(.25rem,2vw,1rem);transform:rotate(165deg)}.hero__lotus--br{bottom:clamp(.5rem,3vw,1.5rem);right:clamp(.25rem,2vw,1rem);transform:scaleX(-1)rotate(165deg)}.hero__flourish{width:clamp(2.5rem,8vw,4rem);height:clamp(2.5rem,8vw,4rem);position:absolute}.hero__flourish--tl{top:clamp(.75rem,2.5vw,1.25rem);left:clamp(.5rem,2vw,1rem)}.hero__flourish--tr{top:clamp(.75rem,2.5vw,1.25rem);right:clamp(.5rem,2vw,1rem);transform:scaleX(-1)}.hero__flourish--bl{bottom:clamp(.75rem,2.5vw,1.25rem);left:clamp(.5rem,2vw,1rem);transform:scaleY(-1)}.hero__flourish--br{bottom:clamp(.75rem,2.5vw,1.25rem);right:clamp(.5rem,2vw,1rem);transform:scale(-1)}.hero__content{z-index:1;text-align:center;flex-direction:column;align-items:center;width:100%;max-width:36rem;display:flex;position:relative}.hero__families{font-family:var(--font-sans);letter-spacing:.35em;color:var(--color-charcoal-muted);margin:0 0 clamp(1.25rem,3.5vw,1.75rem);font-size:clamp(.625rem,2.8vw,.75rem);font-weight:400;line-height:1.6}.hero__family{font-family:var(--font-sans);letter-spacing:.12em;color:var(--color-charcoal);margin:0 0 clamp(.75rem,2.5vw,1rem);font-size:clamp(.6875rem,2.8vw,.8125rem);font-style:italic;font-weight:400;line-height:1.6}.hero__family:last-of-type{margin-bottom:clamp(1rem,3vw,1.5rem)}.hero__names{flex-direction:column;align-items:center;gap:clamp(.125rem,1vw,.375rem);margin:0 0 clamp(.75rem,2.5vw,1rem);padding:0;display:flex}.hero__name{font-family:var(--font-serif);letter-spacing:.12em;color:var(--color-navy);font-size:clamp(2.75rem,12vw,4.5rem);font-weight:400;line-height:1.1}.hero__amp{font-family:var(--font-serif);color:var(--color-gold);margin:clamp(.125rem,1vw,.375rem) 0;font-size:clamp(1.5rem,5vw,2rem);font-style:italic;font-weight:400;line-height:1}.hero__request{font-family:var(--font-sans);letter-spacing:.28em;color:var(--color-charcoal-muted);max-width:22rem;margin:0 0 clamp(1.5rem,4vw,2.25rem);font-size:clamp(.625rem,2.8vw,.75rem);font-weight:400;line-height:1.7}.hero__divider{align-items:center;gap:.75rem;width:min(12rem,60vw);margin-bottom:clamp(1.25rem,3.5vw,2rem);display:flex}.hero__divider-line{background:linear-gradient(90deg, transparent, var(--color-gold-muted) 30%, var(--color-gold) 50%, var(--color-gold-muted) 70%, transparent);opacity:.6;flex:1;height:1px}.hero__divider-diamond{background:var(--color-gold);opacity:.7;flex-shrink:0;width:6px;height:6px;transform:rotate(45deg)}.hero__date{font-family:var(--font-sans);letter-spacing:.22em;color:var(--color-navy);margin:0 0 clamp(1rem,3vw,1.5rem);font-size:clamp(.875rem,3.5vw,1.0625rem);font-weight:500}.hero__venue{margin:0 0 clamp(2rem,5vw,2.75rem)}.hero__venue-name{font-family:var(--font-sans);letter-spacing:.22em;color:var(--color-navy);margin:0 0 .375rem;font-size:clamp(.75rem,3vw,.9375rem);font-weight:500}.hero__venue-location{font-family:var(--font-sans);letter-spacing:.16em;color:var(--color-charcoal);text-transform:uppercase;margin:0;font-size:clamp(.6875rem,2.8vw,.8125rem);font-weight:400}.hero__cta{min-width:12.5rem;min-height:3rem;font-family:var(--font-sans);letter-spacing:.28em;color:var(--color-navy);border:1px solid var(--color-gold);box-shadow:var(--shadow-soft);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;justify-content:center;align-items:center;padding:.875rem 2rem;font-size:clamp(.6875rem,2.8vw,.75rem);font-weight:500;text-decoration:none;transition:background-color .4s,color .4s,box-shadow .4s,transform .3s;display:inline-flex}.hero__cta:hover,.hero__cta:focus-visible{background-color:var(--color-gold);color:var(--color-ivory);box-shadow:0 6px 28px #c9a96240}.hero__cta:active{transform:scale(.98)}.hero__cta:focus-visible{outline:2px solid var(--color-gold);outline-offset:3px}.hero__animate{opacity:0;animation:.9s cubic-bezier(.22,1,.36,1) forwards hero-enter;transform:translateY(12px)}.hero__animate--1{animation-delay:.1s}.hero__animate--2{animation-delay:.2s}.hero__animate--3{animation-delay:.35s}.hero__animate--4{animation-delay:.5s}.hero__animate--5{animation-delay:.65s}.hero__animate--6{animation-delay:.8s}.hero__animate--7{animation-delay:.95s}.hero__animate--8{animation-delay:1.1s}@keyframes hero-enter{to{opacity:1;transform:translateY(0)}}@media (width<=430px){.hero__lotus{opacity:.4}.hero__flourish{opacity:.7}}@media (width<=320px){.hero{padding-inline:1rem}.hero__name{letter-spacing:.08em}.hero__families,.hero__request{letter-spacing:.22em}.hero__cta{min-width:100%;max-width:16rem}}@media (prefers-reduced-motion:reduce){.hero__animate{opacity:1;animation:none;transform:none}}.section{padding:clamp(3.5rem,10vw,5.5rem) clamp(1.25rem,5vw,3rem)}.section--warm{background-color:var(--color-ivory-warm);border-top:1px solid #c9a96233}.section--ivory{background-color:var(--color-ivory);border-top:1px solid #c9a96226}.section__inner{text-align:center;max-width:36rem;margin:0 auto}.section__inner--wide{max-width:56rem}.section__ornament{align-items:center;gap:.75rem;width:min(10rem,50vw);margin:0 auto clamp(1.25rem,3.5vw,1.75rem);display:flex}.section__ornament-line{background:linear-gradient(90deg, transparent, var(--color-gold-muted) 30%, var(--color-gold) 50%, var(--color-gold-muted) 70%, transparent);opacity:.6;flex:1;height:1px}.section__ornament-diamond{background:var(--color-gold);opacity:.7;flex-shrink:0;width:5px;height:5px;transform:rotate(45deg)}.section__title{font-family:var(--font-sans);letter-spacing:.32em;color:var(--color-navy);margin:0 0 clamp(1.25rem,3.5vw,2rem);font-size:clamp(.6875rem,2.8vw,.8125rem);font-weight:500}.section__text{font-family:var(--font-serif);color:var(--color-charcoal);margin:0;font-size:clamp(1.125rem,4vw,1.375rem);font-style:italic;font-weight:400;line-height:1.75}.section__btn{min-width:12.5rem;min-height:3rem;font-family:var(--font-sans);letter-spacing:.22em;color:var(--color-navy);border:1px solid var(--color-gold);box-shadow:var(--shadow-soft);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;justify-content:center;align-items:center;padding:.875rem 2rem;font-size:clamp(.6875rem,2.8vw,.75rem);font-weight:500;text-decoration:none;transition:background-color .4s,color .4s,box-shadow .4s,transform .3s;display:inline-flex}.section__btn:hover,.section__btn:focus-visible{background-color:var(--color-gold);color:var(--color-ivory);box-shadow:0 6px 28px #c9a96240}.section__btn:active{transform:scale(.98)}.section__btn:focus-visible{outline:2px solid var(--color-gold);outline-offset:3px}.section__fade-in{opacity:0;animation:.9s cubic-bezier(.22,1,.36,1) forwards section-enter;transform:translateY(16px)}@keyframes section-enter{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.section__fade-in{opacity:1;animation:none;transform:none}}.countdown{background-color:var(--color-ivory-warm);border-top:1px solid #c9a96233;padding:clamp(3.5rem,10vw,5.5rem) clamp(1.25rem,5vw,3rem)}.countdown__inner{text-align:center;max-width:36rem;margin:0 auto}.countdown__date{font-family:var(--font-sans);letter-spacing:.22em;color:var(--color-charcoal-muted);margin:0 0 clamp(2rem,5vw,3rem);font-size:clamp(.6875rem,2.8vw,.8125rem);font-weight:400}.countdown__grid{justify-content:center;align-items:center;gap:0;display:flex}.countdown__unit{flex-direction:column;flex:1;align-items:center;gap:.5rem;min-width:0;padding:clamp(.5rem,2vw,.875rem) clamp(.75rem,3vw,1.25rem);display:flex}.countdown__unit:not(:last-child){border-right:1px solid #c9a96247}.countdown__value{font-family:var(--font-serif);letter-spacing:.04em;color:var(--color-navy);font-variant-numeric:tabular-nums;font-size:clamp(1.75rem,7vw,2.75rem);font-weight:400;line-height:1}.countdown__label{font-family:var(--font-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--color-charcoal-muted);font-size:clamp(.5625rem,2.2vw,.6875rem);font-weight:400}.countdown__complete{font-family:var(--font-serif);color:var(--color-gold);letter-spacing:.06em;margin:0;font-size:clamp(1.25rem,4vw,1.75rem);font-style:italic}@media (width<=320px){.countdown__unit{padding:.5rem .375rem}.countdown__label{letter-spacing:.1em;font-size:.5rem}.countdown__value{font-size:1.5rem}}.invitation__quote{max-width:28rem;margin:0 auto}.wedding-day__date{font-family:var(--font-sans);letter-spacing:.22em;color:var(--color-navy);margin:0 0 .75rem;font-size:clamp(.875rem,3.5vw,1.0625rem);font-weight:500}.wedding-day__time{font-family:var(--font-serif);letter-spacing:.06em;color:var(--color-charcoal);margin:0;font-size:clamp(1.25rem,4.5vw,1.625rem);font-style:italic;font-weight:400}.poruwa{position:relative;overflow:hidden}.poruwa__motifs{pointer-events:none;color:var(--color-gold);position:absolute;inset:0}.poruwa__lotus{opacity:.28;width:clamp(3rem,10vw,5rem);height:clamp(3rem,10vw,5rem);position:absolute}.poruwa__lotus--left{bottom:clamp(1rem,4vw,2rem);left:clamp(.5rem,3vw,1.5rem);transform:rotate(165deg)}.poruwa__lotus--right{bottom:clamp(1rem,4vw,2rem);right:clamp(.5rem,3vw,1.5rem);transform:scaleX(-1)rotate(165deg)}.poruwa__inner{z-index:1;position:relative}.poruwa__heritage{pointer-events:none;opacity:.06;width:min(18rem,80vw);height:min(18rem,80vw);color:var(--color-gold);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.poruwa__composition{max-width:22rem;margin:0 auto;padding:clamp(.5rem,2vw,1rem) 0}.poruwa__time{font-family:var(--font-serif);letter-spacing:.06em;color:var(--color-navy);margin:0 0 .5rem;font-size:clamp(1.75rem,6vw,2.25rem);font-weight:400}.poruwa__date{font-family:var(--font-sans);letter-spacing:.22em;color:var(--color-charcoal-muted);margin:0 0 1.25rem;font-size:clamp(.6875rem,2.8vw,.8125rem);font-weight:400}.poruwa__divider{align-items:center;gap:.75rem;width:min(10rem,60vw);margin:0 auto 1.25rem;display:flex}.poruwa__divider-line{background:linear-gradient(90deg, transparent, var(--color-gold-muted) 30%, var(--color-gold) 50%, var(--color-gold-muted) 70%, transparent);opacity:.6;flex:1;height:1px}.poruwa__divider-diamond{background:var(--color-gold);flex-shrink:0;width:5px;height:5px;transform:rotate(45deg)}.poruwa__venue{font-family:var(--font-serif);letter-spacing:.18em;color:var(--color-navy);margin:0 0 .375rem;font-size:clamp(.875rem,3.5vw,1.0625rem);font-weight:400}.poruwa__hall{font-family:var(--font-sans);letter-spacing:.2em;color:var(--color-charcoal);margin:0;font-size:clamp(.6875rem,2.8vw,.8125rem);font-weight:400}.venue{position:relative;overflow:hidden}.venue__motifs{pointer-events:none;color:var(--color-gold);position:absolute;inset:0}.venue__lotus{opacity:.3;width:clamp(3rem,10vw,4.5rem);height:clamp(3rem,10vw,4.5rem);position:absolute}.venue__lotus--left{top:clamp(1.5rem,5vw,2.5rem);left:clamp(.5rem,3vw,1.5rem)}.venue__lotus--right{bottom:clamp(1.5rem,5vw,2.5rem);right:clamp(.5rem,3vw,1.5rem);transform:scaleX(-1)rotate(180deg)}.venue__inner{z-index:1;position:relative}.venue__composition{margin-bottom:clamp(1.75rem,4vw,2.5rem)}.venue__name{font-family:var(--font-serif);letter-spacing:.14em;color:var(--color-navy);margin:0 0 .375rem;font-size:clamp(1.75rem,7vw,2.5rem);font-weight:400}.venue__hall{font-family:var(--font-sans);letter-spacing:.24em;color:var(--color-charcoal);margin:0 0 clamp(1.25rem,3.5vw,1.75rem);font-size:clamp(.75rem,3vw,.875rem);font-weight:400}.venue__divider{align-items:center;gap:.75rem;width:min(10rem,55vw);margin:0 auto clamp(1.25rem,3.5vw,1.75rem);display:flex}.venue__divider-line{background:linear-gradient(90deg, transparent, var(--color-gold-muted) 30%, var(--color-gold) 50%, var(--color-gold-muted) 70%, transparent);opacity:.55;flex:1;height:1px}.venue__divider-diamond{background:var(--color-gold);opacity:.65;flex-shrink:0;width:5px;height:5px;transform:rotate(45deg)}.venue__address{font-family:var(--font-serif);color:var(--color-charcoal-muted);flex-direction:column;gap:.375rem;margin:0;font-size:clamp(1rem,3.5vw,1.1875rem);font-style:normal;line-height:1.65;display:flex}.venue__maps-btn{margin-top:.25rem}.rsvp__deadline{text-align:center;flex-direction:column;align-items:center;gap:.5rem;max-width:24rem;margin:0 auto clamp(1.5rem,4vw,2.25rem);display:flex}.rsvp__deadline-line{font-family:var(--font-serif);letter-spacing:.22em;color:var(--color-charcoal-muted);font-size:clamp(.5625rem,2.2vw,.6875rem);font-weight:400;line-height:1.65}.rsvp__deadline-date{font-family:var(--font-serif);letter-spacing:.14em;color:var(--color-navy);font-size:clamp(.875rem,3.2vw,1rem);font-weight:400}.rsvp__form{text-align:left;flex-direction:column;gap:clamp(1.25rem,3.5vw,1.75rem);max-width:24rem;margin:0 auto;display:flex}.rsvp__field{border:none;flex-direction:column;gap:.5rem;margin:0;padding:0;display:flex}.rsvp__label{font-family:var(--font-sans);letter-spacing:.2em;color:var(--color-navy);font-size:clamp(.5625rem,2.2vw,.6875rem);font-weight:500}.rsvp__input,.rsvp__textarea{width:100%;font-family:var(--font-sans);color:var(--color-charcoal);background:var(--color-ivory-warm);appearance:none;border:1px solid #c9a96259;border-radius:0;padding:.875rem 1rem;font-size:1rem;transition:border-color .3s,box-shadow .3s}.rsvp__input:focus,.rsvp__textarea:focus{border-color:var(--color-gold);outline:none;box-shadow:0 0 0 2px #c9a96226}.rsvp__textarea{resize:vertical;min-height:6rem}.rsvp__options{flex-direction:column;gap:.625rem;display:flex}.rsvp__option{font-family:var(--font-sans);letter-spacing:.06em;color:var(--color-charcoal);cursor:pointer;align-items:center;gap:.75rem;font-size:clamp(.8125rem,3vw,.875rem);display:flex}.rsvp__option input{width:1rem;height:1rem;accent-color:var(--color-gold);flex-shrink:0}.rsvp__submit{align-self:center;width:100%;max-width:16rem;margin-top:.5rem}.rsvp__confirmation{max-width:24rem;margin:0 auto}.rsvp__error{font-family:var(--font-sans);color:#8b4513;letter-spacing:.02em;margin:.25rem 0 0;font-size:.8125rem}.rsvp__input:disabled{opacity:.65;cursor:not-allowed}.rsvp-modal{z-index:300;justify-content:center;align-items:center;padding:clamp(1rem,4vw,2rem);display:flex;position:fixed;inset:0}.rsvp-modal__backdrop{cursor:pointer;background:#1a23326b;border:none;padding:0;position:absolute;inset:0}.rsvp-modal__panel{z-index:1;text-align:center;background:var(--color-ivory);width:min(100%,22rem);box-shadow:var(--shadow-medium);border:1px solid #c9a96273;padding:clamp(1.5rem,4vw,2rem);position:relative}.rsvp-modal__title{font-family:var(--font-sans);letter-spacing:.28em;color:var(--color-navy);margin:0 0 .875rem;font-size:clamp(.6875rem,2.8vw,.8125rem);font-weight:500}.rsvp-modal__message{font-family:var(--font-serif);color:var(--color-charcoal);margin:0 0 1.25rem;font-size:clamp(1rem,3.6vw,1.125rem);font-style:italic;line-height:1.65}.rsvp-modal__close{min-width:8rem}@media (width<=320px){.rsvp__input,.rsvp__textarea{font-size:16px}}.footer__closing{font-family:var(--font-sans);letter-spacing:.32em;color:var(--color-charcoal-muted);margin:0 0 1rem;font-size:clamp(.625rem,2.8vw,.75rem);font-weight:400}.footer__couple{font-family:var(--font-serif);letter-spacing:.12em;color:var(--color-navy);margin:0 0 .75rem;font-size:clamp(1.5rem,5.5vw,2rem);font-weight:400}.footer__date{font-family:var(--font-sans);letter-spacing:.22em;color:var(--color-charcoal-muted);margin:0;font-size:clamp(.6875rem,2.8vw,.8125rem);font-weight:400}.app{width:100%;min-height:100dvh}.app__main{width:100%}
