:root{--night:#06121d;--navy:#0b202d;--gold:#cdb17e;--gold-light:#ead8b4;--cream:#f5edde;--muted:#b6bec2;--line:rgba(205,177,126,.25);--sans:'Manrope',Arial,sans-serif;--serif:'Cormorant Garamond',Georgia,serif;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--night)}body{font:400 14px/1.8 var(--sans);color:var(--cream);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}button{color:inherit}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button svg,.button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button{border:0}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.05}h2{font-size:clamp(44px,5.5vw,76px);letter-spacing:-.035em;margin:16px 0 24px}h2 em{color:var(--gold-light);font-weight:400}h3{font-size:30px}::selection{background:var(--gold);color:var(--night)}:focus-visible{outline:2px solid var(--gold-light);outline-offset:5px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.environment{position:fixed;inset:0;overflow:hidden;pointer-events:none}.sky{position:absolute;inset:0;background:radial-gradient(ellipse at 70% 35%,#23485655,transparent 55%),linear-gradient(#061320,#0e252f 60%,#07121b)}.moon{position:absolute;top:14%;right:24%;width:76px;height:76px;border-radius:50%;background:radial-gradient(circle at 38% 35%,#ece3c9,#cfbea0);box-shadow:0 0 70px 26px #e9d5a915,0 0 160px 65px #a4c9cf0b;opacity:.6}.moon:after{content:'';position:absolute;inset:2px;background:radial-gradient(circle at 30% 60%,#52605a22 2%,transparent 10%),radial-gradient(circle at 62% 27%,#52605a22 2%,transparent 17%);border-radius:50%}#journey,#dust{position:absolute;inset:0;width:100%;height:100%}#journey{opacity:.85;transition:opacity .7s}#dust{z-index:2}.scene-veil{position:absolute;inset:0;background:linear-gradient(90deg,#06121df2 0%,#06121dc9 32%,#06121d42 67%,#06121d38),linear-gradient(0deg,#06121d 0%,transparent 24%,transparent 82%,#06121d90);transition:opacity .7s}.grain{position:absolute;inset:0;opacity:.035;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='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.6' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}.frame-corner{position:absolute;width:50px;height:50px;border-top:1px solid var(--line);border-left:1px solid var(--line);z-index:3}.frame-corner:after{content:'✧';position:absolute;top:-11px;left:-6px;color:var(--gold);font-size:16px}.top-left{top:22px;left:22px}.top-right{top:22px;right:22px;transform:rotate(90deg)}.bottom-left{bottom:22px;left:22px;transform:rotate(-90deg)}.bottom-right{bottom:22px;right:22px;transform:rotate(180deg)}
.eyebrow{font:500 10px/1.6 var(--sans);letter-spacing:.23em;color:var(--gold);text-transform:uppercase}.tiny-line{display:inline-block;width:30px;height:1px;background:var(--gold);vertical-align:middle;margin-right:12px}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:15px 24px;min-height:50px;font:600 11px/1.6 var(--sans);letter-spacing:.05em;border:1px solid var(--gold);transition:background .25s,box-shadow .25s,transform .25s}.button:hover{transform:translateY(-2px);box-shadow:0 8px 30px #0003}.primary{background:linear-gradient(120deg,#e3cc9f,#c1a16a);color:#11202a;border-color:#e0c693}.primary:hover{background:#f0dab1}.outline{background:#0b202a65;color:var(--gold-light)}.outline:hover{background:#cdb17e18}.text-link{display:inline-flex;align-items:center;gap:24px;padding:10px 0;background:transparent;border-bottom:1px solid var(--line);font:500 11px/1.8 var(--sans);color:var(--gold-light)}.text-link span{font-size:22px;transition:transform .25s}.text-link:hover span{transform:translate(3px,-3px)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:#081b2880;transition:background .25s,color .25s;color:var(--gold-light)}.icon-button:hover,.icon-button[aria-pressed=true]{background:#cdb17e20;border-color:#cdb17e88}
.cover{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;perspective:1400px;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,#07131c20,#06121d90);transition:opacity .5s}.cover-door{position:absolute;inset-block:0;width:50%;background-color:#071725ed;background-image:repeating-linear-gradient(45deg,transparent,transparent 29px,#cdb17e06 30px,#cdb17e06 31px,transparent 32px),radial-gradient(ellipse at 100% 50%,#173244a0,transparent 70%);transition:transform 1.8s cubic-bezier(.65,0,.2,1),opacity 1.8s;backface-visibility:hidden}.cover-door:before{content:'';position:absolute;inset:24px;border:1px solid var(--line)}.cover-door:after{content:'';position:absolute;inset:34px;border:1px solid #cdb17e10}.door-left{left:0;transform-origin:left center;border-right:1px solid #cdb17e80}.door-right{right:0;transform-origin:right center}.cover-content{z-index:1;width:min(90%,760px);padding:30px 20px;transition:opacity .45s,transform .6s}.crest{margin:0 auto 20px;filter:drop-shadow(0 0 18px #d0b17e20)}.cover .crest{animation:crest-breathe 5s ease-in-out infinite}.cover-names{font-size:clamp(64px,8.8vw,112px);line-height:1.2;margin:17px 0 20px;letter-spacing:-.04em}.cover-names span{font-style:italic;color:var(--gold);font-size:.65em;padding:0 6px}.date-rule{display:flex;align-items:center;justify-content:center;gap:20px;font-size:10px;letter-spacing:.23em;color:var(--gold-light)}.date-rule>span{width:50px;height:1px;background:var(--line)}.guest{margin:34px auto 27px}.guest p{font-size:11px;color:var(--muted);line-height:1.9}.guest strong{display:block;font:400 27px/1.7 var(--serif);color:var(--gold-light);max-height:92px;overflow:auto;overflow-wrap:anywhere}.cover .button{min-width:220px}.cover-footnote{font-size:8px;letter-spacing:.28em;color:#b0b7b0;margin-top:26px}.cover-coordinate{position:absolute;bottom:44px;font-size:8px;letter-spacing:.16em;color:var(--gold);z-index:1}.cover-coordinate span{margin-left:24px;color:var(--muted)}.cover.is-opening .cover-content{opacity:0;transform:translateZ(70px) scale(1.08);pointer-events:none}.cover.is-opening .door-left{transform:rotateY(-92deg);opacity:0}.cover.is-opening .door-right{transform:rotateY(92deg);opacity:0}.cover.is-opening .cover-coordinate{opacity:0}.cover.is-opening{pointer-events:none;background:transparent}
.invitation{position:fixed;inset:0;opacity:0;transition:opacity .9s}.is-open .invitation{opacity:1}.site-header{position:absolute;top:0;left:0;right:0;height:102px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(30px,5.7vw,90px);z-index:5}.brand{display:flex;align-items:center;gap:13px}.brand>span{font-size:9px;letter-spacing:.19em}.brand i{font:italic 16px var(--serif);color:var(--gold);padding:0 3px}.header-date{position:absolute;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:.18em;color:var(--gold-light)}.header-date span{font-size:8px;color:var(--muted);margin-left:20px;letter-spacing:.2em}.header-actions{display:flex;gap:9px}.chapters{position:absolute;inset:105px clamp(45px,8.5vw,140px) 156px}.chapter{height:100%;width:100%;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#cdb17e55 transparent;overscroll-behavior:contain;opacity:1;transition:opacity .35s,filter .35s;outline:none}.chapter-inner{width:100%;max-width:1180px;min-height:100%;margin:auto;align-content:center;padding:22px 10px 28px}.body-copy{color:var(--muted);font-size:13px;line-height:2}.hero-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:70px;align-items:center}.hero-names{font-size:clamp(85px,10.5vw,148px);line-height:.8;margin:37px 0 32px;letter-spacing:-.055em}.hero-names .ampersand{font-size:.47em;font-style:italic;color:var(--gold);margin-left:10px;vertical-align:middle}.hero-names em{font-weight:400}.hero-description{color:var(--muted);font-size:12px;line-height:2}.wedding-date{display:flex;align-items:center;gap:20px;margin:26px 0 18px}.date-day{font:400 56px/1 var(--serif);color:var(--gold-light);padding-right:20px;border-right:1px solid var(--line)}.wedding-date strong{display:block;font:500 10px/1.7 var(--sans);letter-spacing:.14em;color:var(--gold-light)}.wedding-date div>span{display:block;font-size:10px;color:var(--muted);margin-top:5px}.hero-visual{position:relative;max-width:390px;width:100%;justify-self:center;padding:10px 20px 15px}.portrait-arch{position:relative;border-radius:49% 49% 2px 2px;aspect-ratio:.7;outline:1px solid #cdb17e75;outline-offset:9px;overflow:hidden;box-shadow:0 15px 75px #0005}.portrait-arch img{width:100%;height:100%;object-fit:cover;object-position:center 45%;filter:saturate(.8) brightness(.89)}.portrait-gradient{position:absolute;inset:0;background:linear-gradient(0deg,#081a27bd,transparent 35%,transparent 80%,#06121d30)}.photo-caption{position:absolute;bottom:24px;left:0;right:0;text-align:center;font-size:7px;letter-spacing:.19em;color:var(--gold-light)}.photo-seal{position:absolute;right:-13px;bottom:57px;width:104px;height:104px;border-radius:50%;border:1px solid #dbc09280;outline:1px solid #dbc09230;outline-offset:5px;background:#0a1d29e6;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 8px 30px #0004;animation:seal-float 7s ease-in-out infinite}.photo-seal>span{font-size:6px;letter-spacing:.17em;color:var(--gold)}.photo-seal b{font:400 30px/1.6 var(--serif)}.photo-seal i{font-size:22px;color:var(--gold)}.orbit{position:absolute;top:6%;left:-13%;width:125%;height:82%;border:1px solid #cdb17e1a;border-radius:50%;pointer-events:none;transform:rotate(-28deg)}.orbit-two{transform:rotate(27deg);width:118%;left:-8%;height:95%;top:1%;border-style:dashed;opacity:.65}.orbit-one:before{content:'✦';position:absolute;top:22%;left:4%;font-size:24px;color:var(--gold);animation:crest-breathe 4s ease-in-out infinite}.visual-note{position:absolute;top:45%;right:-53px;writing-mode:vertical-rl;font-size:7px;letter-spacing:.22em;color:var(--gold)}
.centered-layout{text-align:center;max-width:680px;display:flex;flex-direction:column;align-items:center;justify-content:center}.chapter-ornament{margin-bottom:23px;opacity:.8}.centered-layout h2{margin-bottom:24px}.greeting{font:400 27px/1.4 var(--serif);color:var(--gold-light)}.gold-divider{display:flex;align-items:center;gap:22px;color:var(--gold);width:180px;margin:21px 0}.gold-divider:before,.gold-divider:after{content:'';flex:1;height:1px;background:var(--line)}.prose{font-size:13px;line-height:2.1;color:#c9cdd0;max-width:600px}.signature{font-size:10px;color:var(--muted);margin-top:24px}.signature span{font:italic 25px/1.8 var(--serif);color:var(--gold-light)}.section-heading{text-align:center;margin-bottom:28px}.section-heading h2{margin:10px 0 0}.couple-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:30px;align-items:center;max-width:940px;margin:auto}.person{display:grid;grid-template-columns:minmax(110px,190px) 1fr;gap:22px;align-items:center}.person-photo{padding:5px;border:1px solid #cdb17e75;border-radius:100px 100px 3px 3px;background:transparent;aspect-ratio:.65;width:100%;overflow:hidden}.person-photo img{height:100%;width:100%;object-fit:cover;border-radius:100px 100px 0 0;transition:transform .7s}.photo-button{position:relative}.photo-button:hover img{transform:scale(1.045)}.person h3{font-size:30px;margin:12px 0 16px}.person div>p:not(.eyebrow){font-size:10px;line-height:1.9;color:var(--muted)}.person .eyebrow{font-size:8px}.couple-amp{font:italic 60px var(--serif);color:var(--gold);opacity:.7}
.event-layout,.location-layout,.gift-layout,.rsvp-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.events{display:grid;gap:15px}.event-card{position:relative;border:1px solid var(--line);background:linear-gradient(120deg,#102735e6,#0a1b2880);padding:27px 30px}.event-card:after{content:'';position:absolute;inset:6px;border:1px solid #cdb17e0d;pointer-events:none}.event-number{position:absolute;right:23px;top:20px;font:italic 40px var(--serif);color:#cdb17e33}.event-card .eyebrow{font-size:8px}.event-card h3{font-size:36px;margin:10px 0 13px}.event-time{font:400 24px/1.5 var(--serif);color:var(--gold-light)}.event-time small{font:9px var(--sans);letter-spacing:.08em}.event-card>p:last-of-type{font-size:10px;color:var(--muted)}.event-flower{position:absolute;bottom:24px;right:26px;font-size:33px;color:var(--gold);opacity:.6}.countdown{display:flex;align-items:flex-start;gap:18px;margin:32px 0}.countdown>div{min-width:42px;text-align:center}.countdown b{font:400 46px/1 var(--serif);color:var(--gold-light);font-variant-numeric:tabular-nums}.countdown div>span{display:block;margin-top:8px;font-size:7px;letter-spacing:.2em;color:var(--muted)}.countdown i{color:#cdb17e50;font:26px var(--serif);padding-top:8px}
.venue{display:flex;align-items:flex-start;gap:17px;margin:28px 0}.venue h3{font-size:27px;margin-bottom:10px}.venue p{font-size:11px;color:var(--muted);line-height:1.9}.venue-icon{font:40px/1 var(--serif);color:var(--gold)}.small-note{font-size:9px;color:var(--muted);margin-top:14px}.map-frame{border:1px solid var(--line);padding:9px;background:#0c2532}.map-art{height:300px;position:relative;overflow:hidden;background:repeating-linear-gradient(0deg,transparent,transparent 55px,#d6d6b309 56px,#d6d6b309 57px),repeating-linear-gradient(90deg,transparent,transparent 55px,#d6d6b309 56px,#d6d6b309 57px),#102b37}.map-road{position:absolute;height:14px;background:#47606a;border:4px solid #263f49;width:150%;transform:rotate(-25deg);top:40%;left:-25%}.r2{transform:rotate(63deg);top:50%;left:-40%;height:11px}.r3{transform:rotate(0);top:74%;height:10px}.map-river{position:absolute;left:70%;top:-20%;height:160%;width:50px;border-radius:50%;border-left:18px solid #36808a66;transform:rotate(22deg)}.map-label{position:absolute;font-size:9px;letter-spacing:.2em;color:#98b2b3}.label-one{top:30px;right:30px}.label-two{bottom:35px;left:20px;font-size:8px;opacity:.5}.map-pin{position:absolute;left:50%;top:30%;transform:translateX(-50%);font-size:48px;color:var(--gold-light);text-shadow:0 0 35px #e9cb8b;animation:seal-float 4s ease-in-out infinite}.map-destination{position:absolute;top:55%;left:50%;transform:translateX(-50%);width:235px;text-align:center;background:#081d2beb;border:1px solid var(--line);padding:13px 15px;font:22px/1.2 var(--serif);box-shadow:0 12px 35px #0003}.map-destination small{display:block;font:8px var(--sans);color:var(--muted);margin-top:10px}.map-bottom{display:flex;justify-content:space-between;padding:17px 8px 8px;font-size:7px;letter-spacing:.15em;color:var(--gold)}.map-disclaimer{text-align:center;font-size:8px;color:var(--muted);padding:7px 0 3px}
.gallery-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:25px}.gallery-heading h2{font-size:clamp(40px,4.5vw,65px);margin:10px 0 0}.gallery-heading>p{font-size:10px;color:var(--muted);line-height:1.9}.gallery-heading>p span{color:var(--gold);font-size:9px}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.gallery-photo{height:clamp(110px,19dvh,180px);overflow:hidden;padding:0;background:var(--navy);border:1px solid #cdb17e30}.gallery-photo:first-child{border-radius:100px 0 0 0}.gallery-photo:nth-child(4){border-radius:0 100px 0 0}.gallery-photo img{width:100%;height:100%;object-fit:cover;object-position:center 38%;transition:transform .7s,filter .5s;filter:saturate(.75)}.gallery-photo:hover img{filter:saturate(1)}.gallery-photo>span{position:absolute;bottom:9px;right:11px;font-size:8px;color:var(--gold-light);text-shadow:0 0 6px #000;pointer-events:none}
.gift-lotus{margin-top:36px;opacity:.55}.bank-list{display:grid;gap:20px}.bank-card{position:relative;padding:24px 28px;background:radial-gradient(ellipse at 100% 0,#3b4e5544,transparent 60%),linear-gradient(120deg,#152f3d,#0a1d2a);border:1px solid #cdb17e55;box-shadow:0 10px 40px #0002;overflow:hidden}.bank-card:before{content:'';position:absolute;width:180px;height:180px;border:1px solid #cdb17e15;border-radius:50%;right:-60px;bottom:-90px;box-shadow:0 0 0 17px #cdb17e03,0 0 0 18px #cdb17e0a;pointer-events:none}.bank-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.bank-top b{font:italic 600 25px/1.2 var(--serif);color:var(--gold-light)}.bank-top span{font-size:6px;letter-spacing:.2em;color:var(--muted)}.account-number{font:400 25px/1.6 var(--sans);letter-spacing:.1em;color:var(--gold-light);font-variant-numeric:tabular-nums}.bank-card>p:not(.account-number){font-size:10px;color:var(--muted)}.copy-button{display:flex;align-items:center;gap:8px;background:transparent;font-size:9px;color:var(--gold);padding:16px 0 0;min-height:40px}.copy-button svg{width:14px;height:14px}.rsvp-note{display:flex;align-items:center;gap:15px;border-top:1px solid var(--line);padding-top:23px;margin-top:28px}.rsvp-note>span{font-size:35px;color:var(--gold)}.rsvp-note p{font-size:10px;color:var(--muted)}.rsvp-form{display:grid;gap:19px;padding:30px;border:1px solid var(--line);background:linear-gradient(130deg,#102633e8,#0b1d2bbd)}.rsvp-form label{display:grid;gap:8px;font-size:10px;color:var(--gold-light)}.rsvp-form label>span{display:contents;color:var(--muted)}input,select,textarea{width:100%;min-width:0;padding:12px 13px;border:1px solid #cdb17e30;background:#06172490;border-radius:0;color:var(--cream);font-size:12px;line-height:1.6;transition:border-color .2s}input::placeholder,textarea::placeholder{color:#b4babc80}select{min-height:45px}textarea{resize:vertical;min-height:85px;max-height:200px}input:focus,select:focus,textarea:focus{border-color:var(--gold)}.form-row{display:grid;grid-template-columns:1.4fr 1fr;gap:15px}.form-caption{font-size:8px;color:var(--muted);text-align:center;line-height:1.7;margin-top:-8px}.closing .crest{height:87px;width:73px;margin-bottom:20px}.closing h2{font-size:clamp(60px,7vw,96px);margin:13px 0 22px}.closing-salam{font-size:10px;color:var(--muted);margin-top:20px}.closing-names{font:400 40px/1.6 var(--serif);margin:17px 0 5px}.closing-names i{color:var(--gold);font-size:.8em}
.journey-footer{position:absolute;bottom:40px;left:clamp(40px,5.7vw,90px);right:clamp(40px,5.7vw,90px);height:80px;display:grid;grid-template-columns:195px 1fr 175px;gap:40px;align-items:center;z-index:6;border-top:1px solid #cdb17e15;padding-top:15px}.journey-context .eyebrow{font-size:7px;letter-spacing:.18em}.journey-context>p{font-size:9px;color:var(--muted);margin-top:7px}.journey-context #chapter-number{font-size:13px;color:var(--gold-light)}.context-separator{color:#cdb17e66;margin:0 6px}#chapter-place{display:block;font-size:9px;color:var(--muted);margin-top:2px}.timeline{height:65px;position:relative;align-self:end;user-select:none}.timeline-rail{position:absolute;height:1px;top:20px;left:21px;right:21px;background:#cdb17e35}#timeline-progress{height:1px;background:var(--gold-light);width:0;box-shadow:0 0 8px #e0c591;transition:width 1s ease}.timeline-stops{position:relative;display:flex;justify-content:space-between;height:100%;gap:0}.timeline-stop{display:flex;flex-direction:column;align-items:center;position:relative;min-width:42px;min-height:50px;padding:16px 2px 0;background:transparent;color:#9ca8ae;font-size:7px;letter-spacing:.02em}.timeline-stop:before{content:'';display:block;width:7px;height:7px;border:1px solid #9e8e70;background:#0b202b;transform:rotate(45deg);margin-bottom:14px;transition:box-shadow .35s,background .35s,transform .35s}.timeline-stop[aria-current=step]{color:var(--gold-light)}.timeline-stop[aria-current=step]:before{background:var(--gold-light);transform:rotate(45deg) scale(1.35);box-shadow:0 0 17px #f4d79980}.timeline-stop.is-visited:before{background:#977e53}.timeline-stop:hover{color:var(--gold-light)}.timeline-stop:hover:before{box-shadow:0 0 12px #f4d79977}.journey-controls{display:flex;gap:10px;align-items:center;justify-content:end}.step-button{height:42px;min-width:42px;display:flex;justify-content:center;align-items:center;gap:18px;background:transparent;border:1px solid var(--line);color:var(--gold-light);transition:background .2s}.step-button:disabled{opacity:.25}.step-button:not(:disabled):hover{background:#cdb17e15;border-color:#cdb17e70}.next-button{font-size:9px;padding:0 13px}.step-button svg{width:18px}.journey-hint{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);font-size:7px;color:#a9b2b590;white-space:nowrap;letter-spacing:.07em;transition:opacity .4s}.journey-hint span{margin-left:8px;color:var(--gold)}.travel-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity .3s;z-index:4;text-align:center}.travel-overlay .travel-label{font-size:8px;letter-spacing:.3em;color:var(--gold);margin-bottom:12px}#travel-destination{font:italic 45px var(--serif);text-shadow:0 3px 30px #000}.travel-overlay i{display:block;height:1px;background:var(--gold);width:50px;margin-top:24px;transform:scaleX(.1)}.is-traveling .travel-overlay{opacity:1}.is-traveling .travel-overlay i{animation:travel-line 1.7s ease-in-out infinite}.is-traveling .chapter{opacity:0;filter:blur(6px);pointer-events:none}.is-traveling .scene-veil{opacity:.38}.is-traveling #journey{opacity:1}
.lightbox{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;padding:35px 75px;margin:0;border:0;background:#041019f5;color:var(--cream);overflow:hidden}.lightbox::backdrop{background:#041019ed}.lightbox[open]{display:flex;align-items:center;justify-content:center;animation:content-arrive .3s ease}.lightbox figure{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;gap:13px}.lightbox figure img{max-width:100%;max-height:calc(100% - 36px);width:auto;height:auto;object-fit:contain;box-shadow:0 0 60px #0005}.lightbox figcaption{font-size:10px;color:var(--gold-light);text-align:center}.lightbox-close{position:absolute;right:24px;top:20px;z-index:2}.lightbox-prev,.lightbox-next{position:absolute;top:calc(50% - 21px);z-index:2;font:32px var(--serif)}.lightbox-prev{left:20px}.lightbox-next{right:20px}.toast{position:fixed;left:50%;bottom:150px;max-width:calc(100% - 40px);transform:translate(-50%,15px);padding:13px 24px;border:1px solid var(--line);background:#102634f5;box-shadow:0 8px 35px #0005;z-index:40;opacity:0;pointer-events:none;color:var(--gold-light);font-size:11px;text-align:center;transition:opacity .25s,transform .25s}.toast.is-visible{opacity:1;transform:translate(-50%,0)}.noscript{position:fixed;inset:0;z-index:100;background:var(--night);display:grid;place-content:center;text-align:center;padding:25px;gap:25px}
@keyframes crest-breathe{50%{filter:drop-shadow(0 0 25px #cdb17e55);opacity:.72}}@keyframes seal-float{50%{translate:0 -7px}}@keyframes content-arrive{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}@keyframes travel-line{0%,100%{transform:scaleX(.1);opacity:.3}50%{transform:scaleX(1);opacity:1}}
@media(min-width:1600px){.hero-visual{max-width:440px}.chapters{inset-block:120px 180px}.hero-layout{gap:110px}}
@media(max-width:1100px){.chapters{inset-inline:60px}.hero-layout{gap:40px}.hero-visual{max-width:320px}.hero-names{font-size:112px}.event-layout,.location-layout,.gift-layout,.rsvp-layout{gap:40px}.person{grid-template-columns:1fr;text-align:center;gap:17px}.person-photo{max-width:160px;justify-self:center;aspect-ratio:.85}.person h3{font-size:27px;margin:8px 0}.person div>p:not(.eyebrow){font-size:9px}.couple-grid{max-width:600px}.section-heading{margin-bottom:16px}.journey-footer{grid-template-columns:145px 1fr 145px;gap:15px}.journey-controls{gap:6px}.next-button{gap:8px;padding:0 10px}.gallery-heading>p{max-width:160px}.event-card{padding:23px}.rsvp-form{padding:23px}.account-number{font-size:22px}}
@media(max-width:760px){.frame-corner{width:24px;height:24px}.top-left,.top-right{top:12px}.top-left,.bottom-left{left:12px}.top-right,.bottom-right{right:12px}.bottom-left,.bottom-right{bottom:12px}.moon{top:18%;right:12%;width:54px;height:54px}.site-header{height:76px;padding:0 26px}.brand{gap:8px}.brand img{width:33px;height:33px}.brand>span{font-size:7px}.header-date{display:none}.icon-button{width:38px;height:38px}.header-actions{gap:7px}.chapters{inset:85px 26px 170px}.chapter-inner{padding:14px 2px 22px}.hero-layout{grid-template-columns:1.1fr 1fr;gap:20px}.hero-names{font-size:clamp(66px,12.5vw,96px);margin:26px 0 24px}.hero-copy .eyebrow{font-size:7px;letter-spacing:.16em}.tiny-line{width:14px;margin-right:5px}.hero-description{font-size:10px}.hero-visual{max-width:240px;padding:6px 10px 10px}.portrait-arch{outline-offset:5px;aspect-ratio:.6}.photo-caption{font-size:5px;bottom:16px;letter-spacing:.1em}.photo-seal{width:71px;height:71px;right:-9px;bottom:32px}.photo-seal b{font-size:23px}.photo-seal>span{font-size:4px}.photo-seal i{font-size:15px}.visual-note{right:-18px;font-size:5px}.wedding-date{gap:12px;margin:22px 0 14px}.date-day{font-size:41px;padding-right:12px}.wedding-date strong{font-size:8px;letter-spacing:.07em}.wedding-date div>span{font-size:8px;max-width:120px}.hero-copy .text-link{font-size:8px;gap:10px}.journey-footer{left:26px;right:26px;bottom:32px;height:120px;grid-template-columns:1fr 1fr;gap:0;padding-top:12px}.journey-context{align-self:start}.journey-context .eyebrow{font-size:6px}.journey-context>p{margin-top:3px}#chapter-place{display:inline;margin-left:10px;font-size:8px}.journey-controls{align-self:start}.step-button{height:37px;min-width:37px}.next-button{font-size:8px;min-width:112px}.timeline{grid-column:1/-1;grid-row:2;align-self:end;height:54px}.timeline-rail{left:19px;right:19px;top:16px}.timeline-stop{padding-top:12px;min-width:38px;font-size:6px}.timeline-stop:before{margin-bottom:11px}.journey-hint{bottom:14px;font-size:6px}.event-layout,.location-layout,.gift-layout,.rsvp-layout{gap:28px}.event-layout h2,.location-layout h2,.gift-layout h2,.rsvp-layout h2{font-size:46px}.body-copy{font-size:11px}.event-card{padding:20px 18px}.event-card h3{font-size:30px}.event-time{font-size:22px}.event-card .eyebrow{font-size:6px}.event-card>p:last-of-type{font-size:8px}.event-number{font-size:30px;right:15px}.event-flower{font-size:25px;bottom:18px;right:17px}.countdown{gap:9px;margin:24px 0}.countdown>div{min-width:32px}.countdown b{font-size:36px}.countdown i{font-size:20px;padding-top:5px}.countdown div>span{font-size:6px}.button{padding:13px 17px;font-size:10px;gap:15px;min-height:46px}.prose{font-size:12px}.map-art{height:260px}.venue h3{font-size:24px}.venue p{font-size:10px}.venue{gap:10px}.gallery-heading{gap:12px}.gallery-heading h2{font-size:43px}.gallery-heading>p{font-size:8px;max-width:130px}.gallery-heading>p span{font-size:7px}.gallery-grid{gap:9px}.gallery-photo{height:clamp(100px,18dvh,160px)}.bank-card{padding:20px}.bank-top span{font-size:5px}.account-number{font-size:19px}.rsvp-form{padding:20px;gap:15px}.rsvp-note p{font-size:8px}.form-row{gap:10px}.rsvp-form label{font-size:9px}.form-caption{font-size:7px}}
@media(max-width:540px){.chapters{inset:76px 25px 164px}.hero-layout{display:flex;flex-direction:column-reverse;gap:17px;text-align:center;justify-content:center}.hero-visual{width:148px;padding:5px 10px 10px}.portrait-arch{aspect-ratio:.91;border-radius:48% 48% 0 0}.portrait-arch img{object-position:center 35%}.photo-caption,.visual-note,.orbit-two{display:none}.photo-seal{width:52px;height:52px;bottom:15px;right:-13px;outline-offset:3px}.photo-seal b{font-size:17px}.photo-seal>span{font-size:3px}.photo-seal i{font-size:11px}.orbit-one{height:110%;top:-3%;width:138%;left:-20%}.orbit-one:before{font-size:17px;top:17%;left:1%}.hero-names{font-size:80px;line-height:.83;margin:18px 0 16px}.hero-names br{display:none}.hero-names .ampersand{font-size:.45em;margin:0 3px}.hero-names em{font-size:.92em}.hero-copy .eyebrow{font-size:6px;letter-spacing:.19em}.hero-description{font-size:10px;line-height:1.9}.wedding-date{justify-content:center;margin:17px 0 7px;text-align:left}.date-day{font-size:34px}.wedding-date strong{font-size:8px}.wedding-date div>span{font-size:8px;max-width:none}.hero-copy .text-link{font-size:8px;gap:21px;padding:7px 0}.hero-copy{width:100%}.scene-veil{background:linear-gradient(0deg,#06121df2 0%,#06121d90 55%,#06121d4d 100%)}h2{font-size:49px;margin:10px 0 20px}.eyebrow{font-size:7px;letter-spacing:.2em}.centered-layout{padding-inline:7px}.chapter-ornament{width:65px;height:43px;margin-bottom:17px}.greeting{font-size:23px}.gold-divider{margin:17px 0}.prose{font-size:11px;line-height:2}.signature{margin-top:20px;font-size:9px}.signature span{font-size:22px}.section-heading{margin-bottom:22px}.section-heading h2{font-size:43px}.couple-grid{gap:13px;grid-template-columns:1fr 22px 1fr}.person{gap:12px}.person-photo{max-width:126px;aspect-ratio:.78;padding:4px}.person h3{font-size:25px;margin:7px 0 10px}.person div>p:not(.eyebrow){font-size:8px;line-height:1.8}.person .eyebrow{font-size:6px}.couple-amp{font-size:34px}.event-layout,.location-layout,.gift-layout,.rsvp-layout{display:flex;flex-direction:column;align-items:stretch;gap:23px;justify-content:center}.event-layout>div:first-child{text-align:center}.event-layout h2,.location-layout h2,.gift-layout h2,.rsvp-layout h2{font-size:45px;margin:8px 0 15px}.event-layout h2 br,.location-layout h2 br,.rsvp-layout h2 br{display:none}.body-copy{font-size:10px;line-height:1.9}.countdown{justify-content:center;gap:17px;margin:20px 0}.countdown b{font-size:37px}.countdown div>span{font-size:6px}.events{grid-template-columns:1fr 1fr;gap:11px}.event-card{padding:20px 13px}.event-number{font-size:25px;top:11px;right:10px;opacity:.5}.event-card h3{font-size:27px;margin:10px 0}.event-time{font-size:20px;white-space:nowrap}.event-time small{font-size:7px}.event-card>p:last-of-type{font-size:7px}.event-flower{display:none}.event-card .eyebrow{font-size:5px;letter-spacing:.15em}.location-layout>div:first-child{text-align:center}.venue{justify-content:center;text-align:left;margin:16px 0}.venue h3{font-size:23px;margin-bottom:7px}.venue p{font-size:9px}.venue-icon{font-size:32px}.small-note{font-size:8px;margin-top:10px}.map-frame{width:100%;padding:6px}.map-art{height:175px}.map-destination{width:210px;padding:9px 13px;font-size:19px;top:53%}.map-destination small{font-size:7px;margin-top:6px}.map-pin{top:13%;font-size:40px}.map-label{font-size:7px}.label-one{right:16px;top:15px}.label-two{left:15px;bottom:17px;font-size:6px}.map-bottom{font-size:6px;padding:10px 7px 3px}.map-disclaimer{font-size:6px;padding-top:6px}.gallery-heading{display:block;text-align:center;margin-bottom:19px}.gallery-heading h2{font-size:43px}.gallery-heading>p{max-width:none;margin-top:12px;font-size:9px}.gallery-heading>p br{display:none}.gallery-heading>p span{display:block;font-size:7px}.gallery-grid{grid-template-columns:repeat(4,1fr);gap:7px}.gallery-photo{height:clamp(100px,19dvh,160px)}.gallery-photo:first-child{border-radius:50px 0 0 0}.gallery-photo:nth-child(4){border-radius:0 50px 0 0}.gallery-photo>span{font-size:6px;bottom:6px;right:6px}.gift-layout>div:first-child{text-align:center}.gift-lotus{display:none}.bank-list{gap:13px;max-width:360px;width:100%;margin:0 auto}.bank-card{padding:16px 22px}.bank-top{margin-bottom:8px}.bank-top b{font-size:23px}.bank-top span{font-size:5px}.account-number{font-size:22px;line-height:1.5}.bank-card>p:not(.account-number){font-size:9px}.copy-button{padding-top:9px;font-size:8px;min-height:32px}.rsvp-layout{gap:18px}.rsvp-layout>div:first-child{text-align:center}.rsvp-layout .body-copy{font-size:9px}.rsvp-note{display:none}.rsvp-form{max-width:390px;width:100%;margin:auto;gap:13px;padding:20px}.rsvp-form label{font-size:8px;gap:6px}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{font-size:16px;padding:9px 10px;line-height:1.4}.rsvp-form input::placeholder,.rsvp-form textarea::placeholder{font-size:11px}.rsvp-form textarea{min-height:64px;max-height:120px}.rsvp-form select{font-size:11px;min-height:40px}.rsvp-form .button{font-size:9px;min-height:42px;padding:11px}.form-caption{font-size:6px;margin-top:-5px}.closing .crest{height:75px;width:63px}.closing .eyebrow{font-size:6px;letter-spacing:.14em}.closing h2{font-size:65px}.closing-salam{font-size:8px}.closing-names{font-size:36px;margin-top:20px}.closing .text-link{font-size:9px}.cover-names{font-size:66px}.cover .crest{width:80px;height:96px}.cover-content{padding:20px 9px}.cover-coordinate{bottom:28px;font-size:6px}.cover-coordinate span{margin-left:12px}.cover-footnote{font-size:6px;letter-spacing:.22em}.guest{margin:27px auto 24px}.guest p{font-size:10px}.cover .button{min-width:200px}.date-rule{font-size:8px;gap:15px}.date-rule>span{width:26px}.date-rule p{font-size:8px}.toast{bottom:169px;font-size:10px;padding:12px 18px}.lightbox{padding:65px 35px}.lightbox-prev{left:5px}.lightbox-next{right:5px}.lightbox-prev,.lightbox-next{width:32px;height:38px;background:#06121d90}.lightbox-close{top:16px;right:15px}.lightbox figcaption{font-size:9px}.journey-context>p{font-size:8px}#chapter-place{display:block;margin:0;font-size:7px}.journey-footer{left:23px;right:23px;bottom:calc(25px + env(safe-area-inset-bottom));height:118px}.journey-hint{bottom:calc(8px + env(safe-area-inset-bottom));font-size:5px}.timeline-stop{min-width:30px;font-size:5px;letter-spacing:0}.timeline-rail{left:15px;right:15px}.travel-overlay #travel-destination{font-size:35px}.travel-label{font-size:7px!important}}
@media(max-height:740px) and (max-width:540px){.chapters{inset-block:68px 148px}.hero-visual{width:120px}.hero-layout{gap:12px}.hero-names{font-size:69px;margin:15px 0}.hero-description{font-size:9px}.hero-copy .eyebrow{font-size:5px}.hero-copy .text-link{font-size:7px}.hero-copy .wedding-date{margin:11px 0 5px}.wedding-date div>span{font-size:7px}.hero-copy .date-day{font-size:29px}.journey-footer{height:105px;bottom:calc(23px + env(safe-area-inset-bottom))}.timeline{height:48px}.chapter-inner{padding-block:11px 20px}.event-layout,.location-layout,.gift-layout,.rsvp-layout{gap:17px}.rsvp-layout h2{font-size:40px;margin-bottom:9px}.rsvp-layout .body-copy{font-size:8px}.rsvp-form{padding:16px;gap:10px}.rsvp-form input{padding-block:8px}.form-caption{font-size:6px}.rsvp-form textarea{min-height:54px}.centered-layout .prose{font-size:10px}.chapter-ornament{height:35px;margin-bottom:11px}.centered-layout h2{font-size:43px;margin-bottom:17px}.greeting{font-size:21px}.gold-divider{margin:13px 0}.signature{margin-top:15px}.section-heading{margin-bottom:15px}.section-heading h2{font-size:39px}.person-photo{max-width:110px}.person h3{font-size:23px}.map-art{height:145px}.map-pin{font-size:35px}.map-bottom{padding-top:6px}.bank-card{padding:14px 20px}.copy-button{padding-top:6px}.bank-list{gap:10px}.bank-top{margin-bottom:4px}.account-number{font-size:20px}.gift-layout .body-copy{font-size:9px}.gallery-photo{height:18dvh}.closing .crest{height:57px;margin-bottom:15px}.closing h2{font-size:56px}.closing-names{font-size:30px;margin-top:15px}.closing-salam{font-size:7px}.cover .crest{height:78px;margin-bottom:13px}.cover-names{font-size:58px;margin:11px 0 15px}.guest{margin:22px auto}.cover-footnote{margin-top:20px}}
@media(max-height:580px){.cover{overflow-y:auto;justify-content:flex-start}.cover-content{padding-top:35px}.cover-coordinate{display:none}.chapters{inset-block:70px 135px}.site-header{height:65px}.hero-visual{max-width:200px}.hero-names{font-size:75px}.chapter-inner{align-content:start}.hero-layout{align-items:center}.journey-footer{bottom:20px;height:100px}.journey-hint{bottom:5px}.event-layout,.location-layout,.gift-layout,.rsvp-layout{align-items:start}.centered-layout{justify-content:flex-start;padding-top:20px}.lightbox{padding-block:20px}}
body.reduced-motion *,body.reduced-motion *:before,body.reduced-motion *:after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}body.reduced-motion .orbit{display:none}
@media(prefers-reduced-motion:reduce){body:not(.full-motion) *,body:not(.full-motion) *:before,body:not(.full-motion) *:after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.moon{animation:moon-glow 11s ease-in-out infinite}.orbit-one{animation:orbit-drift 18s ease-in-out infinite}.orbit-two{animation:orbit-drift-reverse 22s ease-in-out infinite}.frame-corner:after{animation:crest-breathe 6s ease-in-out infinite}.frame-corner:nth-last-child(2):after{animation-delay:2s}
@keyframes moon-glow{50%{opacity:.42;box-shadow:0 0 90px 38px #e9d5a91b,0 0 180px 75px #a4c9cf0c}}@keyframes orbit-drift{50%{transform:rotate(-34deg)}}@keyframes orbit-drift-reverse{50%{transform:rotate(34deg)}}
/* Reading sizes and touch targets stay generous even on compact screens. */
.icon-button{min-width:44px;min-height:44px}.body-copy{font-size:14px}.prose{font-size:14px}.hero-description{font-size:13px}.person div>p:not(.eyebrow){font-size:11px}.event-card>p:last-of-type{font-size:11px}.timeline-stop{font-size:8px}.rsvp-form label{font-size:11px}.rsvp-form input,.rsvp-form textarea{font-size:14px}.scene-fallback .sky:after{content:'';position:absolute;inset:0;background:url(garden-fallback.svg) center/cover no-repeat}.scene-fallback #journey{display:none}
@media(max-width:760px){.body-copy,.prose{font-size:12px}.hero-description{font-size:11px}.timeline-stop{font-size:7px}.journey-context .eyebrow{font-size:7px}.step-button{height:44px;min-width:44px}.journey-controls{gap:8px}.next-button{font-size:10px;padding-inline:12px;min-width:125px}.person div>p:not(.eyebrow){font-size:10px}}
@media(max-width:540px){.hero-description{font-size:11px}.hero-names br{display:initial}.hero-names{font-size:75px;line-height:.85}.hero-copy .eyebrow{font-size:7px;letter-spacing:.16em}.hero-copy .text-link{font-size:10px}.wedding-date strong{font-size:9px}.wedding-date div>span{font-size:9px}.body-copy,.prose{font-size:12px}.person div>p:not(.eyebrow){font-size:10px}.person .eyebrow{font-size:8px}.timeline-stop{font-size:7px}.journey-context>p{font-size:10px}#chapter-place{font-size:9px}.journey-footer{height:124px}.timeline{height:51px}.journey-hint{font-size:6px}.rsvp-form label{font-size:10px}.rsvp-form input,.rsvp-form textarea{font-size:16px}.rsvp-form .button{font-size:10px}.form-caption{font-size:8px}.rsvp-layout .body-copy{font-size:11px}.event-card>p:last-of-type{font-size:9px}.bank-card>p:not(.account-number){font-size:11px}.copy-button{font-size:10px}.small-note{font-size:9px}.venue p{font-size:11px}.gallery-heading>p{font-size:11px}.gallery-heading>p span{font-size:9px}.gallery-photo>span{font-size:8px}.signature{font-size:11px}.closing-salam{font-size:10px}.closing .eyebrow{font-size:7px}.header-actions .icon-button{width:44px;height:44px}.brand>span{font-size:8px}.closing .prose{font-size:12px}}
@media(max-height:740px) and (max-width:540px){.hero-names{font-size:66px}.hero-copy .eyebrow{font-size:6px}.hero-description{font-size:10px}.hero-copy .text-link{font-size:9px}.wedding-date div>span{font-size:8px}.journey-footer{height:110px}.centered-layout .prose{font-size:11px}.rsvp-layout .body-copy{font-size:10px}.form-caption{font-size:7px}.gift-layout .body-copy{font-size:11px}.event-card>p:last-of-type{font-size:8px}}
