:root{--navy:#081b24;--cream:#f3eddf;--gold:#c5a775;--ink:#243840;--muted:#b4bcc0;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Jost',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--navy);color:var(--cream);font-family:var(--sans);font-weight:300}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:7px}::selection{background:#b49364;color:#fff}.skip{position:fixed;top:-70px;left:20px;background:var(--cream);color:var(--navy);padding:12px;z-index:100}.skip:focus{top:10px}#petals{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:8}.progress{position:fixed;top:0;left:0;height:2px;background:var(--gold);z-index:30;width:0}header{position:absolute;z-index:12;top:0;left:0;width:100%;padding:27px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d7ba7e25}.monogram{display:flex;align-items:center}.monogram img{height:52px;width:auto;display:block}nav{display:flex;gap:36px}nav a{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;opacity:.85}nav a:hover{color:var(--gold)}.header-date{font-size:12px;letter-spacing:2px}.hero{height:100svh;min-height:720px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center}.hero-art{position:absolute;inset:-4%;background:url('assets/palace.jpg') center 57%/cover;will-change:transform}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,#03131c40,#03131c18 25%,#03131c44 65%,#081b24 100%)}.frame{position:absolute;inset:112px 25px 25px;border:1px solid #d4b67e40;pointer-events:none}.frame:before,.frame:after{content:'';position:absolute;width:60px;height:60px;border:1px solid #c5a77580}.frame:before{top:-5px;left:-5px;border-right:0;border-bottom:0}.frame:after{bottom:-5px;right:-5px;border-left:0;border-top:0}.frame span{position:absolute;top:-13px;left:50%;color:var(--gold);font-size:23px}.frame span+span{top:auto;bottom:-13px}.hero-copy{position:relative;z-index:2;padding:95px 20px 10px;text-shadow:0 2px 25px #06151f}.eyebrow{text-transform:uppercase;font-size:11px;font-weight:500;letter-spacing:3px;color:var(--gold);margin:0 0 25px;line-height:1.7}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h1{font-size:clamp(78px,9.8vw,155px);line-height:1.05;letter-spacing:-5px;margin:6px 0 20px}h1 em{font-size:.65em;font-weight:400;color:#d6ba87;margin:0 8px}em{font-weight:400}h2{font-size:clamp(44px,5vw,76px);line-height:1.08;letter-spacing:-1.6px;margin-bottom:25px}h2 em{color:var(--gold)}.ornament{display:flex;gap:18px;align-items:center;justify-content:center;color:var(--gold);font-size:26px;margin:24px auto}.ornament:before,.ornament:after{content:'';width:70px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}.ornament:after{transform:rotate(180deg)}.hero-date{font-size:12px;letter-spacing:3px;margin:24px 0 10px}.hero-time{font:italic 22px var(--serif);color:#e2d8c8;margin-bottom:25px}.place{font-size:11px;letter-spacing:3px;color:#e4c78e}.journey{position:absolute;bottom:56px;display:flex;flex-direction:column;align-items:center;gap:10px;font-size:9px;letter-spacing:3px;z-index:3}.scroll-line{height:36px;width:1px;background:linear-gradient(var(--gold),transparent)}.hero-side{position:absolute;left:53px;top:50%;writing-mode:vertical-rl;font-size:9px;letter-spacing:3px;color:#dccca6;transform:rotate(180deg)}.fine-rule{height:1px;width:60px;background:var(--gold);margin:30px auto}.dark-section{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:105px 7%;background:radial-gradient(ellipse at 50% 50%,#152d35 0%,var(--navy) 65%)}.section-heading{text-align:center;position:relative}.family-grid{max-width:1120px;margin:65px auto 45px;display:grid;grid-template-columns:1fr 240px 1fr;gap:45px;align-items:start;text-align:center}.family .eyebrow{margin-bottom:12px}.family h3{font-size:44px;line-height:1.04;margin-bottom:20px}.family h3 em{display:block}.family p:not(.eyebrow){font-size:14px;color:var(--muted);line-height:1.9;margin-bottom:15px}.family p span{color:#e4dfd2}.gold-line{display:block;width:35px;height:1px;background:#c5a77570;margin:24px auto}.union{border:1px solid #c5a77555;border-radius:130px 130px 0 0;height:290px;padding:10px;position:relative}.union:after{content:'✧';position:absolute;top:-14px;left:calc(50% - 10px);color:var(--gold);background:#112831;padding:0 4px}.union-inner{border:1px solid #c5a77535;border-radius:130px 130px 0 0;height:100%;display:flex;align-items:center;justify-content:center;font:75px var(--serif);color:var(--gold)}.union-inner em{font-size:42px;margin:30px -3px 0}.union>span{position:absolute;bottom:35px;left:0;right:0;font-size:8px;letter-spacing:3px;color:var(--gold)}.hashtag{text-align:center;font:italic 26px var(--serif);color:var(--gold);margin:60px 0 0}.venue-intro{color:var(--muted);font-size:15px}.venue-layout{display:flex;flex-direction:column;align-items:center;gap:50px;max-width:980px;margin:65px auto 0}.venue-picture{width:100%;height:clamp(280px,42vw,480px);position:relative;border:1px solid #c5a77560;padding:10px;border-radius:6px;overflow:hidden}.venue-picture img{width:100%;height:100%;object-fit:cover;border-radius:3px}.venue-picture span{position:absolute;bottom:35px;left:0;right:0;text-align:center;font-size:10px;letter-spacing:3px;text-shadow:0 2px 5px #000}.venue-details{text-align:center;max-width:640px}.venue-details h3{font-size:55px;margin-bottom:0}.venue-details .eyebrow{font-size:9px;margin-bottom:20px}.city{font:italic 28px var(--serif);color:var(--gold)}.venue-details .fine-rule{margin:25px auto}.venue-details>p:not(.eyebrow):not(.city){font-size:15px;line-height:2;color:#c1c9c9}.venue-details .family-signature{margin-top:22px;margin-bottom:0;font-size:26px}.venue-logo{height:64px;width:auto;display:block;margin:26px auto 0}.venue-details .hashtag{margin:14px 0 0}.family-signature{font:33px var(--serif);margin-bottom:50px}.motion-toggle,.music-toggle{position:fixed;bottom:20px;border:1px solid #c5a77580;background:#081b24cc;color:var(--cream);border-radius:50%;width:38px;height:38px;z-index:20;cursor:pointer;font-size:15px}.motion-toggle{right:20px}.music-toggle{right:66px}.motion-toggle[aria-pressed="true"],.music-toggle[aria-pressed="true"]{color:var(--gold)}.reveal{transition:opacity 1s,transform 1s}.js-motion .reveal:not(.visible){opacity:0;transform:translateY(30px)}body.motion-paused *{scroll-behavior:auto!important;transition:none!important}.motion-paused .reveal{opacity:1!important;transform:none!important}@media(min-width:1600px){.hero-copy{padding-top:100px}}@media(max-width:800px){header{padding:22px 6%}nav{gap:17px}nav a{font-size:9px;letter-spacing:1px}.header-date{display:none}.hero{min-height:720px;max-height:1100px}.hero-art{background-position:50% 50%}.hero-copy{padding-top:25px}h1{font-size:95px;letter-spacing:-4px;display:flex;flex-direction:column;line-height:.83}h1 em{font-size:49px;line-height:1.1;margin:8px 0}.hero .eyebrow{font-size:9px;letter-spacing:2px;margin-bottom:30px}.hero-date{font-size:10px;letter-spacing:2px}.hero-time{font-size:20px}.place{font-size:9px}.frame{inset:95px 15px 20px}.hero-side{display:none}.hero .ornament{margin-top:25px}.journey{bottom:42px;font-size:8px}.dark-section{padding:80px 25px}.family-grid{grid-template-columns:1fr;gap:35px;margin:40px auto}.union{grid-row:2;width:180px;height:220px;margin:auto}.family h3{font-size:40px}.family h3 em{display:inline}.family .eyebrow{font-size:10px}.hashtag{margin-top:30px}.venue-layout{gap:40px;margin-top:40px}.venue-picture{height:230px}.venue-details h3{font-size:49px}.motion-toggle,.music-toggle{bottom:12px;width:34px;height:34px}.motion-toggle{right:12px}.music-toggle{right:54px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{transition:none!important;opacity:1!important;transform:none!important}}

/* Palace-inspired invitation seal. */
.hero .journey{bottom:52px;flex-direction:row;gap:22px;min-height:64px;padding:9px 12px 9px 30px;background:linear-gradient(120deg,#102e3cf5,#071b27f5);color:#f2dfb9;border:1px solid #c5a775;border-radius:3px;box-shadow:0 8px 28px #0007,inset 0 0 0 5px #081b24,inset 0 0 0 6px #c5a77538;font-size:12px;font-weight:400;letter-spacing:2.2px;transition:box-shadow .3s,transform .3s,border-color .3s}
.hero .journey::before,.hero .journey::after{content:'◆';position:absolute;top:50%;transform:translateY(-50%);font-size:9px;line-height:1;color:#e1bc7b;text-shadow:0 0 12px #e1bc7b80}
.hero .journey::before{left:-5px}.hero .journey::after{right:-5px}
.journey-icon{position:relative;display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;color:#efd09d;font-size:23px;line-height:1;letter-spacing:0}
.journey-icon::before{content:'';position:absolute;inset:7px;border:1px solid #c5a77599;transform:rotate(45deg);background:#c5a7750a;box-shadow:0 0 15px #c5a77520;animation:journey-seal 3s ease-in-out infinite}
.hero .journey:hover{border-color:#f0d29d;transform:translateY(-3px);box-shadow:0 12px 32px #0008,0 0 25px #c5a77525,inset 0 0 0 5px #081b24,inset 0 0 0 6px #c5a77570}
.hero .journey:focus-visible{outline:2px solid #efd09d;outline-offset:7px}
@keyframes journey-seal{0%,100%{box-shadow:0 0 10px #c5a77518;border-color:#c5a77577}50%{box-shadow:0 0 22px #c5a77566;border-color:#efd09d}}
@media(max-width:800px){.hero .journey{bottom:42px;gap:12px;padding:9px 10px 9px 23px;min-height:60px;max-width:calc(100% - 56px);font-size:10px;letter-spacing:1.6px}.journey-icon{width:36px;height:36px;font-size:21px}.journey-icon::before{inset:6px}}
@media(prefers-reduced-motion:reduce){.journey-icon::before{animation:none}.hero .journey{transition:none}}
.motion-paused .journey-icon::before{animation:none}

.journey-arrow{display:block;animation:journey-arrow-bounce 1.8s ease-in-out infinite}
@keyframes journey-arrow-bounce{0%,100%{transform:translateY(-4px)}50%{transform:translateY(4px)}}
@media(prefers-reduced-motion:reduce){.journey-arrow{animation:none}}
.motion-paused .journey-arrow{animation:none}
