.wedding-page{--wine:#652b38;--gold:#a47c3b;--ink:#372b2d;--paper:#faf7f1;--muted:#796b67;background:var(--paper);color:var(--ink);font-family:var(--font-jakarta),sans-serif;overflow:clip;font-size:16px;line-height:1.7}.wedding-page *{box-sizing:border-box}.wedding-page a,.wedding-page button{-webkit-tap-highlight-color:transparent}.wedding-dialog :focus-visible,.wedding-page a:focus-visible,.wedding-page button:focus-visible{outline:2px solid #a47c3b;outline-offset:5px}.wedding-page button{cursor:pointer}.wedding-dialog button:disabled,.wedding-page button:disabled{cursor:wait;opacity:.65}.wedding-dialog h2,.wedding-dialog h3,.wedding-page h1,.wedding-page h2,.wedding-page h3{font-family:var(--font-cormorant),Georgia,serif;font-weight:400;line-height:1.1}.wedding-page h2{font-size:clamp(2.75rem,4.3vw,4.4rem)}.wedding-page p{margin:0}.wedding-dialog svg,.wedding-page svg{flex-shrink:0}.wedding-page a{text-decoration:none}.w-skip{position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:14px}.w-skip:focus{top:10px}.wedding-header{height:98px;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #a47c3b26;position:relative;z-index:2}.wedding-brand{font-family:var(--font-cormorant),Georgia,serif;font-size:29px;font-weight:600;letter-spacing:-1px}.wedding-brand span{color:var(--gold)}.header-caption{font-size:11px;letter-spacing:3px;color:var(--muted)}.header-rsvp{display:flex;align-items:center;gap:15px;min-height:44px;font-size:13px;color:var(--wine);border-bottom:1px solid #652b3860;background:none}.wedding-hero{position:relative;max-width:1920px;margin:auto;min-height:760px;height:calc(100svh - 98px);max-height:1080px;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:55px 9% 110px;background:radial-gradient(ellipse at 74% 49%,#ebdec666,transparent 48%),linear-gradient(115deg,#faf7f1,#f5eee3 90%)}.hero-editorial{position:relative;z-index:2}.w-eyebrow{font-size:11px;letter-spacing:3px;font-weight:500;color:var(--gold);line-height:1.6}.hero-editorial .w-eyebrow{display:flex;align-items:center;gap:13px}.hero-editorial .w-eyebrow>span{width:30px;height:1px;background:var(--gold)}.hero-editorial h1{font-size:clamp(4.4rem,6.1vw,7.8rem);letter-spacing:-3px;margin:26px 0 25px;display:flex;flex-direction:column;align-items:flex-start}.hero-editorial h1>span{overflow-wrap:anywhere;max-width:100%}.hero-editorial h1 em{font-family:var(--font-cormorant),serif;font-weight:400;color:var(--gold);font-size:.6em;line-height:1.05;padding-left:1.25em}.hero-invitation{color:var(--muted);font-size:16px;line-height:1.9}.hero-date{display:flex;align-items:center;gap:20px;margin:30px 0 8px;letter-spacing:1px;font-size:14px;text-transform:uppercase}.hero-date i{width:4px;height:4px;background:var(--gold);border-radius:50%}.hero-place{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.hero-side-note{position:absolute;right:30px;top:43%;writing-mode:vertical-rl;letter-spacing:4px;font-size:10px;color:#9b8667}.hero-scroll{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:16px;color:var(--muted);font-size:12px;letter-spacing:1px}.hero-orbit{position:absolute;pointer-events:none;border:1px solid #aa854128;border-radius:50%;width:650px;height:800px;right:4%;top:2%}.hero-orbit,.orbit-two{transform:rotate(25deg)}.orbit-two{width:720px;height:920px;right:1%;top:-5%}.gold-dust{position:absolute;inset:0;overflow:hidden;pointer-events:none}.gold-dust i{position:absolute;width:3px;height:3px;background:#b99347;border-radius:50%;opacity:.35;animation:w-drift calc(8s + var(--i)*.5s) ease-in-out infinite alternate;animation-delay:calc(var(--i)*-.7s)}.envelope-stage{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:120px;perspective:1200px;min-width:0}.envelope-halo{position:absolute;inset:15% -5% 0;background:radial-gradient(ellipse,#c8a97020,transparent 65%);pointer-events:none}.envelope-dedication{font-family:var(--font-cormorant),Georgia,serif;font-size:24px;font-style:italic;color:#8a765d;padding-bottom:44px;position:relative}.envelope-button{width:min(100%,460px);aspect-ratio:1.5;position:relative;transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) rotate(-6deg);transition:transform .5s ease;transform-style:preserve-3d;background:none;border:0;padding:0;isolation:isolate;filter:drop-shadow(0 30px 30px #59422c25)}.envelope-back{position:absolute;inset:0;background:#e7d4b8;border:1px solid #cab18e;border-radius:5px;box-shadow:inset 0 0 70px #a0784130}.envelope-front{position:absolute;inset:0;background:linear-gradient(145deg,#f8eedc,#e5d0af);clip-path:polygon(0 0,50% 60%,100% 0,100% 100%,0 100%);z-index:3;border-radius:4px}.envelope-front:after{content:"";position:absolute;inset:0;background:linear-gradient(33deg,transparent 49.7%,#b89c6d50 50%,transparent 50.4%),linear-gradient(-33deg,transparent 49.7%,#b89c6d40 50%,transparent 50.4%)}.envelope-flap{position:absolute;inset:0;background:linear-gradient(170deg,#f8efdd,#d8be99);clip-path:polygon(0 0,100% 0,50% 59%);transform-origin:top;z-index:4;transition:transform 1.05s ease,z-index 0s .5s;backface-visibility:visible;filter:drop-shadow(0 4px 4px #63432915)}.envelope-letter{position:absolute;inset:12px 18px 12px;background:#fffaf0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;border:1px solid #d0b583;outline:1px solid #d0b58366;outline-offset:-9px;box-shadow:0 3px 15px #6a472d15;transition:transform 1s ease .6s;z-index:2;color:#84693c;font-size:12px}.letter-monogram{font-family:var(--font-cormorant),serif;font-style:italic;font-size:47px;line-height:1}.letter-date{font-size:11px;letter-spacing:2px}.envelope-seal{position:absolute;left:50%;top:53%;transform:translate(-50%,-50%) translateZ(6px);width:78px;height:78px;border-radius:45% 50% 44% 48%;background:conic-gradient(from 40deg,#b78a42,#e5c777,#a87530,#e7ca83,#b48639,#c9a24e);box-shadow:0 6px 12px #7a512c55,inset 0 0 0 3px #c9a65c,inset 0 0 0 6px #9b722e66;z-index:5;display:grid;place-items:center;transition:opacity .35s,transform .55s}.envelope-seal:before{content:"";position:absolute;inset:10px;border:1px solid #8d662c88;border-radius:50%;box-shadow:0 1px 1px #fff4bf}.envelope-seal span{font-family:var(--font-cormorant),serif;font-style:italic;color:#704719;font-size:23px;text-shadow:0 1px #f7e1a3}.envelope-open-label{display:flex;align-items:center;gap:10px;margin-top:55px;font-size:12px;letter-spacing:.2px;color:var(--wine);min-height:44px;background:transparent}.sound-hint{font-size:11px;color:#8f8171;margin-top:1px}.envelope-opened .envelope-flap{transform:rotateX(180deg);z-index:1}.envelope-opened .envelope-seal{opacity:0;transform:translate(-50%,-50%) scale(1.25)}.envelope-opened .envelope-letter{transform:translateY(-37%)}.envelope-opened .envelope-button{transform:rotate(0)}.wedding-rings{position:absolute;top:-55px;right:-24px;width:260px;height:200px;pointer-events:none;transform:rotate(12deg)}.ring-canvas{width:100%;height:100%}.ring-canvas canvas{width:100%!important;height:100%!important}.rings-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.rings-fallback i{width:70px;height:82px;border:7px solid #c6a256;border-radius:50%;box-shadow:inset 2px 2px 3px #fff2cc,3px 3px 5px #795e3930;transform:rotate(-30deg)}.rings-fallback i+i{margin-left:-25px;transform:rotate(35deg)}.is-hidden{visibility:hidden}.w-section{padding:100px 7%;position:relative;scroll-margin-top:30px}.section-heading{text-align:center}.w-section .w-eyebrow{margin-bottom:16px}.invitation-letter{text-align:center;max-width:900px;margin:auto;outline:none;padding-top:90px;padding-bottom:90px}.w-flourish{font-family:Georgia,serif;font-size:55px;color:#ac8a50;margin-bottom:8px}.invitation-copy{max-width:640px;margin:26px auto!important;font-family:var(--font-cormorant),Georgia,serif;font-size:26px;line-height:1.7;color:#746158}.letter-signature{font-size:12px;letter-spacing:.5px;color:#887a70}.letter-couple{display:block;margin-top:18px;font-family:var(--font-cormorant),serif;font-size:32px}.letter-couple i{color:var(--gold);padding:0 8px}.countdown-section{text-align:center;color:#fcf7e9;background:#582635;overflow:hidden;padding-top:70px;padding-bottom:70px}.countdown-section:after,.countdown-section:before{content:"";position:absolute;width:500px;height:500px;border:1px solid #d6b27823;border-radius:50%;top:-140px;pointer-events:none}.countdown-section:before{left:-260px}.countdown-section:after{right:-260px}.countdown-section .w-eyebrow{color:#d2b279}.countdown{display:flex;justify-content:center;gap:58px;margin:32px 0 38px}.countdown>div{display:flex;flex-direction:column;position:relative;min-width:105px}.countdown>div+div:before{content:":";font-size:28px;color:#d9ba7a80;position:absolute;left:-32px;top:12px}.countdown strong{font-family:var(--font-cormorant),Georgia,serif;font-size:78px;line-height:1.1;font-weight:400;font-variant-numeric:tabular-nums}.countdown span{font-size:11px;letter-spacing:2px;margin-top:8px;text-transform:uppercase;color:#ddcaca}.w-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:14px 25px;font-family:var(--font-jakarta),sans-serif;font-size:13px;font-weight:500;line-height:1.5;transition:background .2s,transform .2s;border-radius:3px;text-decoration:none}.w-button:hover{transform:translateY(-2px)}.w-primary{background:#652b38;color:#fff9ef;border:1px solid #652b38}.w-primary:hover{background:#4d1c29}.w-outline{border:1px solid #b8975e66;color:#745a35;background:transparent}.countdown-section .w-outline{border-color:#c2a06466;color:#efdabb}.timeline-section{max-width:1400px;margin:auto}.w-timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:60px;gap:35px;text-align:center;position:relative}.w-timeline:before{content:"";position:absolute;top:32px;left:12%;right:12%;height:1px;background:#daceb6}.timeline-item{position:relative}.timeline-icon{width:65px;height:65px;background:var(--paper);border:1px solid #daceb6;display:grid;place-items:center;border-radius:50%;color:var(--gold);margin:0 auto 22px;position:relative}.timeline-item time{color:var(--wine);font-size:14px;font-weight:500}.timeline-item h3{font-size:29px;margin:12px 0}.timeline-item p{font-size:13px;line-height:1.8;color:var(--muted);max-width:240px;margin:auto}.venue-section{background:#f0e9dc;padding-top:75px;padding-bottom:75px}.venue-card{max-width:1150px;margin:auto;display:grid;grid-template-columns:1fr 1fr;background:#fcfaf5;box-shadow:0 15px 60px #55402908}.venue-visual{position:relative;min-height:460px;overflow:hidden;background:#382723}.venue-visual img{width:100%;height:100%;position:absolute;inset:0;-o-object-fit:cover;object-fit:cover;filter:brightness(.72) saturate(.6)}.venue-visual>span{position:absolute;z-index:1;left:0;right:0;bottom:45px;text-align:center;letter-spacing:4px;font-size:11px;color:#fff3d5}.venue-image-frame{position:absolute;inset:20px;border:1px solid #f4dbaa80}.venue-content{padding:58px 46px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.venue-content h2{font-size:clamp(2.8rem,3.6vw,4rem);overflow-wrap:anywhere}.venue-subtitle{font-family:var(--font-cormorant),serif;font-style:italic;font-size:24px;color:var(--muted);margin-bottom:28px!important}.venue-detail{display:flex;gap:12px;font-size:13px;color:#71645a;margin-top:12px!important}.venue-content .w-button{margin-top:32px}.venue-note{font-size:11px;color:#91816d;margin-top:15px!important}.rsvp-section{text-align:center;padding-top:95px;padding-bottom:100px;background:linear-gradient(#faf7f1ed,#faf7f1f5),url(https://images.unsplash.com/photo-1594734415578-00fc9540929b?auto=format&fit=crop&w=1200&q=70) 50%/cover}.rsvp-heart{color:var(--gold);margin:0 auto 22px}.rsvp-section h2{margin-bottom:22px}.rsvp-section p:not(.w-eyebrow){color:var(--muted);font-size:15px}.rsvp-section .w-button{margin-top:30px}.wedding-footer{text-align:center;padding:45px 24px 30px;border-top:1px solid #c6ad852e}.footer-monogram{font-family:var(--font-cormorant),serif;font-style:italic;font-size:45px;color:var(--gold)}.wedding-footer>p{font-size:13px;color:var(--muted);margin:8px 0 18px}.wedding-share{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 25px}.wedding-share a,.wedding-share button{min-height:44px;display:flex;gap:8px;align-items:center;font-size:12px;color:#745a35;background:none}.wedding-footer .share-feedback{min-height:20px;font-size:12px}.footer-brand{font-family:var(--font-cormorant),serif;font-size:20px;display:flex;align-items:center;justify-content:center;gap:5px}.texture-credit{display:block;font-size:10px;color:#8c7b6f;margin-top:14px}.floating-audio{position:fixed;bottom:24px;right:28px;z-index:10;gap:12px;pointer-events:none}.audio-toggle,.floating-audio{display:flex;align-items:center}.audio-toggle{pointer-events:auto;width:58px;height:58px;border-radius:50%;background:#fcfaf4ec;border:1px solid #c8ad7855;backdrop-filter:blur(8px);box-shadow:0 4px 25px #35221615;color:#795739;justify-content:center;gap:5px}.audio-waves{display:none;align-items:center;gap:2px;height:18px}.audio-waves i{width:2px;height:8px;background:currentColor;animation:w-wave .9s ease-in-out infinite alternate}.audio-waves i:nth-child(2){animation-delay:-.6s;height:15px}.audio-waves i:nth-child(3){animation-delay:-.3s;height:11px}.is-playing .audio-waves{display:flex}.audio-feedback:not(:empty){max-width:240px;background:#fffaf2;padding:10px 14px;border:1px solid #d9cbb7;border-radius:8px;font-size:12px}.wedding-dialog{border:1px solid #d6c4a3;border-radius:7px;background:#fcfaf5;color:#372b2d;padding:36px;width:calc(100% - 32px);max-width:530px;max-height:calc(100dvh - 40px);overflow-y:auto;box-shadow:0 30px 100px #1c101640;font-family:var(--font-jakarta),sans-serif}.wedding-dialog::backdrop{background:#21171bcc;backdrop-filter:blur(6px)}.wedding-dialog h2{font-size:38px;text-align:center;padding:0 14px}.w-icon{width:44px;height:44px;display:grid;place-items:center;color:#6b5756;border-radius:50%;background:transparent}.dialog-close{position:absolute;right:6px;top:6px}.dialog-ornament{text-align:center;color:#b18e51;font-size:30px;margin-bottom:6px}.dialog-description{font-size:14px;text-align:center;color:#7a6a60;line-height:1.8;margin-top:20px}.dialog-actions{display:flex;flex-direction:column;gap:12px;margin-top:25px}.location-symbol{display:grid;place-items:center;margin:24px auto;color:#9c7a3e;background:#f3ebdb;width:100px;height:100px;border:1px solid #d8c5a0;border-radius:50%}.rsvp-form>p:first-child{font-size:13px;text-align:center;color:#887369;margin:14px 0 24px}.rsvp-form legend,.rsvp-form>label{display:block;font-size:13px;font-weight:500;margin:18px 0 8px}.rsvp-form small{font-size:11px;font-weight:400;color:#827169}.rsvp-form input:not([type=radio]),.rsvp-form select,.rsvp-form textarea{display:block;width:100%;background:#fffdf8;border:1px solid #d8cbb7;border-radius:4px;padding:12px 14px;font-size:16px;color:#3d3030;min-height:48px}.rsvp-form textarea{resize:vertical}.rsvp-form fieldset{border:0;padding:0}.attendance-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.attendance-options label{position:relative}.attendance-options input{position:absolute;opacity:0;width:1px;height:1px}.attendance-options span{display:flex;align-items:center;justify-content:center;gap:6px;min-height:50px;padding:10px 6px;border:1px solid #d8cbb7;border-radius:4px;font-size:12px;cursor:pointer}.attendance-options input:checked+span{background:#652b380b;border-color:#652b38;color:#652b38}.attendance-options input:focus-visible+span{outline:2px solid #a47c3b;outline-offset:3px}.rsvp-form .rsvp-privacy{font-size:11px;line-height:1.7;color:#8c786d;margin:16px 0}.rsvp-form .w-button{width:100%;margin-top:8px}.form-error{color:#a52a39;font-size:13px;margin:12px 0}.rsvp-success{text-align:center;padding:30px 0 15px}.rsvp-success>span{display:grid;place-items:center;width:68px;height:68px;background:#eaf0e5;color:#49633d;border-radius:50%;margin:0 auto 22px}.rsvp-success h3{font-size:32px;margin-bottom:18px}.rsvp-success p{font-size:14px;line-height:1.8;color:#78675e}.w-spin{animation:w-spin 1s linear infinite}@keyframes w-drift{to{transform:translate(12px,-24px);opacity:.7}}@keyframes w-wave{to{height:4px}}@keyframes w-spin{to{transform:rotate(1turn)}}@media(min-width:1600px){.wedding-hero{padding-left:13%;padding-right:12%}.envelope-button{width:510px}.envelope-dedication{font-size:28px}.wedding-rings{width:300px;height:230px;top:-105px;right:-10px}}@media(max-width:1050px){.wedding-hero{padding-left:6%;padding-right:6%}.hero-editorial h1{font-size:clamp(3.7rem,6.8vw,6.3rem)}.hero-side-note{display:none}.envelope-button{width:360px}.envelope-dedication{font-size:20px}.wedding-rings{right:-5px;width:200px}.venue-content{padding:36px 28px}.w-timeline{gap:20px}.w-section{padding-left:5%;padding-right:5%}}@media(max-width:700px){.wedding-header{height:74px;padding:0 22px}.wedding-brand{font-size:25px}.header-caption{display:none}.header-rsvp{font-size:12px;gap:8px}.wedding-hero{display:flex;flex-direction:column;height:auto;max-height:none;min-height:calc(100svh - 74px);padding:42px 22px 75px;text-align:center;gap:12px}.hero-editorial{width:100%}.hero-editorial .w-eyebrow{justify-content:center;font-size:9px;letter-spacing:2.5px}.hero-editorial h1{font-size:clamp(3.5rem,14vw,5rem);letter-spacing:-1.7px;align-items:center;margin:16px 0 15px;line-height:.98}.hero-editorial h1 em{font-size:.55em;padding:4px 0;line-height:.8}.hero-invitation{font-size:13px;line-height:1.8}.hero-date{gap:13px;margin:19px 0 4px}.hero-date,.hero-place{justify-content:center;font-size:11px}.envelope-stage{padding-top:25px;width:100%;max-width:365px;margin-top:15px}.envelope-dedication{font-size:18px;padding-bottom:28px}.envelope-button{width:81%;max-width:300px}.envelope-seal{width:59px;height:59px}.envelope-seal span{font-size:18px}.envelope-letter{gap:7px;font-size:10px;inset:9px 12px}.letter-monogram{font-size:31px}.letter-date{font-size:9px}.envelope-open-label{font-size:11px;gap:8px;margin-top:27px}.envelope-open-label svg{width:14px}.sound-hint{font-size:10px}.wedding-rings{width:140px;height:105px;top:-39px;right:-12px}.hero-scroll{bottom:19px;font-size:10px;white-space:nowrap;gap:8px}.hero-scroll svg{height:12px}.hero-orbit{width:420px;height:510px;right:-65px;top:28%;border-color:#aa85411c}.orbit-two{width:510px;height:630px;right:-100px;top:23%}.w-section{padding:65px 24px}.w-eyebrow{font-size:9px;letter-spacing:2.2px}.wedding-page h2{font-size:42px}.invitation-copy{font-size:23px;line-height:1.6;margin:24px auto!important}.letter-signature{font-size:11px}.letter-couple{font-size:28px}.countdown{gap:22px;margin:28px 0 30px}.countdown>div{min-width:50px}.countdown strong{font-size:48px}.countdown span{font-size:9px;letter-spacing:1px}.countdown>div+div:before{font-size:20px;left:-15px;top:3px}.w-button{font-size:12px;min-height:50px;padding:13px 20px}.w-timeline{grid-template-columns:1fr;text-align:left;margin-top:36px;gap:30px}.w-timeline:before{left:27px;top:0;bottom:30px;height:auto;width:1px}.timeline-item{padding-left:83px;min-height:85px}.timeline-icon{position:absolute;left:0;top:0;width:55px;height:55px}.timeline-item h3{font-size:26px;margin:7px 0}.timeline-item p{margin:0;max-width:none;font-size:13px}.timeline-item time{font-size:12px}.venue-section{padding:32px 20px}.venue-card{grid-template-columns:1fr}.venue-visual{min-height:285px}.venue-content{padding:32px 26px}.venue-content h2{font-size:42px}.venue-subtitle{margin-bottom:16px!important}.venue-detail{font-size:12px}.venue-content .w-button{width:100%;margin-top:24px}.rsvp-section p:not(.w-eyebrow){font-size:14px;max-width:280px;margin:auto}.rsvp-section .w-button{margin-top:25px}.wedding-footer{padding-bottom:90px}.floating-audio{right:16px;bottom:calc(16px + env(safe-area-inset-bottom))}.audio-toggle{width:50px;height:50px}.audio-feedback:not(:empty){max-width:220px}.wedding-dialog{padding:28px 23px;max-height:calc(100dvh - 24px)}.wedding-dialog h2{font-size:32px}.attendance-options{gap:7px}.attendance-options span{font-size:11px}.rsvp-form legend,.rsvp-form>label{font-size:12px}}@media(prefers-reduced-motion:reduce){html:has(.wedding-page){scroll-behavior:auto!important}.wedding-dialog *,.wedding-page *,.wedding-page :after,.wedding-page :before{animation:none!important;transition:none!important;scroll-behavior:auto!important}.gold-dust{display:none}.envelope-button{transform:none!important}}