@font-face{font-family:Cormorant;src:url('assets/cormorant.ttf') format('truetype');font-weight:300 700;font-display:swap}@font-face{font-family:Cormorant;src:url('assets/cormorant-italic.ttf') format('truetype');font-style:italic;font-weight:300 700;font-display:swap}@font-face{font-family:DM;src:url('assets/dm-sans.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--ink:#344337;--paper:#f9f4e8;--gold:#ad8c51;--rose:#ad7773;--muted:#7e806e;--sans:DM,Arial,sans-serif;--serif:Cormorant,Georgia,serif}*{box-sizing:border-box}body{margin:0;background:#26352d;color:var(--ink);font-family:var(--serif);height:100svh;height:100dvh;overflow:hidden;-webkit-font-smoothing:antialiased}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--rose);outline-offset:5px}button{border:0;background:none}button:disabled{opacity:.24;cursor:default}button[hidden],[hidden]{display:none!important}.ambient{position:fixed;inset:-35px;background:linear-gradient(#253b30ae,#1c2d23e8),url('assets/floral-glass.webp') center/cover;filter:blur(20px)}.invitation{height:calc(100dvh - 54px);width:min(1160px,calc(100% - 72px));margin:18px auto 0;position:relative;isolation:isolate;background:var(--paper);box-shadow:0 30px 90px #0005;overflow:clip;perspective:1800px}.invitation:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#f9f4e8cc,#f9f4e8f7 22%,#f9f4e8ff 50%,#f9f4e8f7 78%,#f9f4e8cc),url('assets/floral-glass.webp') center/100% 100%;pointer-events:none;z-index:0}.inner-frame{position:absolute;inset:14px;border:1px solid #ad8c5140;z-index:1;pointer-events:none}.inner-frame:before{content:"";position:absolute;inset:4px;border:1px solid #ad8c5129}.masthead{position:absolute;inset:30px 40px auto;display:flex;align-items:center;justify-content:space-between;z-index:5;opacity:1;transition:opacity .7s}.brand{font-size:28px;letter-spacing:4px}.brand i{font-size:22px;letter-spacing:0;color:var(--gold)}.masthead>span{font-family:var(--sans);font-size:10px;letter-spacing:4px}.text-button{font-family:var(--sans);font-size:10px;letter-spacing:.5px;padding:12px 0;border-bottom:1px solid #ad8c5160}.pages{position:absolute;inset:0;z-index:2}.page{position:absolute;inset:0;visibility:hidden;opacity:0;transform:scale(1.025);transition:opacity .85s ease,transform 1.15s cubic-bezier(.2,.7,.2,1),visibility 1.15s;will-change:opacity,transform}.page.active{opacity:1;visibility:visible;transform:scale(1);z-index:2}.page.leaving{opacity:0;visibility:visible;transform:scale(.985);z-index:1}.page-scroll{height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c5b798 transparent;padding:110px 65px 118px;scroll-behavior:smooth}.page-scroll:focus{outline:none}.eyebrow{font-family:var(--sans);font-size:10px;font-weight:400;text-transform:uppercase;letter-spacing:3.2px;line-height:1.8;margin:0 0 18px}.script-line{font-style:italic;font-size:22px;margin:0 0 18px;line-height:1.5}h1,h2,h3,p{font-weight:400}h1{font-size:clamp(70px,9vw,124px);line-height:.9;margin:30px 0 18px;font-weight:400;letter-spacing:-4px}h1 span{font-style:italic;font-size:.65em;color:var(--rose);display:inline-block;margin:0 8px}h2{font-size:clamp(44px,5vw,68px);line-height:1;letter-spacing:-1.6px;margin:0 0 22px}h2 em{color:var(--rose);font-weight:400}h3{font-size:27px;margin:0 0 5px;line-height:1.1}p{font-size:19px;line-height:1.5;margin:0 0 18px}.welcome-content{text-align:center;margin:auto;max-width:740px}.welcome .page-scroll{display:flex}.flourish{font-size:28px;color:var(--gold);margin:22px 0}.date-line{font-size:24px;margin-bottom:2px}.year{font-style:italic;font-size:19px;margin-bottom:28px}.venue-name{font-size:25px;margin-bottom:8px}.small-caps{font-family:var(--sans);font-size:9px;text-transform:uppercase;letter-spacing:1.9px;line-height:1.8}.primary,.outlined{display:inline-flex;align-items:center;justify-content:center;gap:35px;min-height:46px;font-family:var(--sans);font-size:11px;letter-spacing:1px;padding:14px 25px;border:1px solid var(--ink);transition:background .3s,color .3s}.primary{background:var(--ink);color:#f8f1e2}.primary:hover{background:#54644e}.outlined:hover{background:#e9e7d8}.welcome .primary{margin-top:12px}.personal-note{font-style:italic;color:var(--muted);font-size:17px;margin:25px 0 0}.sheet{max-width:660px;margin:auto;text-align:center}.intro{font-size:20px;line-height:1.45;color:#707662}.timeline{text-align:left;margin:32px auto;max-width:540px}.timeline>div{display:grid;grid-template-columns:84px 38px 1fr;gap:14px;min-height:98px;position:relative}.timeline>div:not(:last-child):after{content:"";position:absolute;left:116px;top:30px;bottom:2px;width:1px;background:#ad8c5160}.time{font-size:29px;padding-top:2px}.time small{font-family:var(--sans);font-size:8px;display:block;letter-spacing:1.4px;margin-top:0}.timeline-dot{color:var(--gold);font-size:27px;text-align:center;line-height:1.3}.timeline h3{font-size:25px;padding-top:4px}.timeline p{font-size:17px;color:#707662}.place-sheet{max-width:850px;text-align:center;margin:auto}.place .page-scroll{padding-left:40px;padding-right:40px}.place h2{font-size:55px;margin-bottom:0}.venue-art{display:block;width:100%;max-width:730px;height:auto;margin:4px auto -4px;mix-blend-mode:multiply}.place-details{display:grid;grid-template-columns:1.2fr 1fr;text-align:left;gap:45px;max-width:690px;margin:0 auto}.place-details p{font-size:17px;margin:8px 0}.place-details h3{font-size:26px}.venue-note{border-left:1px solid #ad8c5166;padding-left:30px}.concept-note{font-family:var(--sans);font-size:9px;opacity:.65;margin:20px 0 0}.attire-illustration{max-width:500px;margin:0 auto}.attire-illustration svg{width:100%;height:auto;max-height:240px}.palette{display:flex;gap:22px;justify-content:center;margin:12px 0 28px}.palette span{font-family:var(--sans);font-size:8px;letter-spacing:.3px}.palette span:before{content:"";display:block;background:var(--swatch);width:38px;height:38px;border-radius:50%;margin:0 auto 9px;border:1px solid #34433720}.fine-rule{width:90px;height:1px;background:#ad8c5170;margin:27px auto}.attire-sheet>p:last-child{font-style:italic;font-size:18px}.rsvp-sheet{max-width:570px}form{text-align:left;margin-top:28px}form label,legend{font-family:var(--sans);font-size:10px;letter-spacing:.3px;display:block;margin-bottom:9px}form label span{opacity:.6}input:not([type=radio]),select,textarea{font-family:var(--sans);font-size:13px;background:#ffffff30;color:var(--ink);width:100%;border:1px solid #bcb8a3;border-radius:0;min-height:45px;padding:12px;margin-bottom:23px}textarea{resize:vertical}fieldset{border:0;padding:0;margin:0 0 24px}legend{padding:0}.choice-row{display:flex;gap:12px}.choice-row label{flex:1;position:relative;margin:0;cursor:pointer}.choice-row input{position:absolute;opacity:0;width:1px;height:1px}.choice-row label span{display:block;opacity:1;text-align:center;border:1px solid #bcb8a3;padding:15px 9px;transition:.2s}.choice-row input:checked+span{background:#344337;color:var(--paper);border-color:var(--ink)}.choice-row input:focus-visible+span{outline:2px solid var(--rose);outline-offset:3px}.form-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:18px}.rsvp .primary{width:100%}.form-disclosure{font-family:var(--sans);font-size:10px;color:#7d7e71;line-height:1.7;margin:16px 0 0;text-align:center}#rsvp-success{padding:30px 0}.success-mark{display:block;border:1px solid var(--gold);width:70px;height:70px;border-radius:50%;font-size:35px;color:var(--gold);margin:0 auto 25px;line-height:68px}#rsvp-success h3{font-size:32px}#rsvp-success .text-button{display:block;margin:20px auto 0}.closing-sheet{margin:auto}.farewell .page-scroll{display:flex}.closing-monogram{font-size:65px;font-style:italic;border:1px solid #ad8c5160;border-radius:50%;width:150px;height:150px;line-height:148px;margin:30px auto;color:#8d7049}.closing-monogram i{font-size:45px;color:var(--rose)}.countdown{display:flex;justify-content:center;gap:35px;margin:35px 0}.countdown strong{display:block;font-size:40px;font-weight:400}.countdown span{font-family:var(--sans);font-size:8px;text-transform:uppercase;letter-spacing:2px}.closing-sheet>.text-button{display:block;margin:25px auto 0}.page-navigation{position:absolute;z-index:6;bottom:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:22px;background:#f9f4e8f0;border:1px solid #ad8c5166;padding:7px 13px;box-shadow:0 5px 18px #3443370a;backdrop-filter:blur(15px);transition:opacity .6s}.page-navigation>button:not(#page-picker){width:36px;height:36px;font-size:25px}.page-navigation>button:hover{color:var(--rose)}#page-picker{display:flex;align-items:center;gap:14px;white-space:nowrap;font-family:var(--sans);font-size:10px;min-width:190px;padding:7px 0}#page-number{font-size:8px;letter-spacing:1.4px;color:#8c7859}#page-name{flex:1}.tiny-diamond{font-size:13px;color:var(--gold)}#page-menu{position:absolute;bottom:calc(100% + 9px);left:0;right:0;background:var(--paper);border:1px solid #ad8c5166;box-shadow:0 6px 24px #34433712;padding:12px}#page-menu a{font-family:var(--sans);display:block;font-size:11px;padding:12px}#page-menu a:hover{background:#e8e5d5}.site-footer{height:36px;position:relative;width:min(1160px,calc(100% - 72px));margin:auto;color:#e3dcc4;display:flex;justify-content:space-between;align-items:center}.site-footer>span{font-size:15px;font-style:italic;letter-spacing:1px}.site-footer button{font-family:var(--sans);font-size:8px;letter-spacing:.5px}.cover{position:absolute;inset:0;z-index:10;transform-style:preserve-3d;pointer-events:none}.cover-leaf{position:absolute;top:0;bottom:0;width:50%;transform-style:preserve-3d;backface-visibility:hidden;transition:transform 2.9s cubic-bezier(.46,.02,.21,1),filter 2.9s ease;will-change:transform;box-shadow:0 3px 15px #35270e60}.left-leaf{left:0;transform-origin:0% 50%;border-right:1px solid #664a24}.right-leaf{right:0;transform-origin:100% 50%;border-left:1px solid #f0d49e}.glass-texture{position:absolute;inset:0;background-image:url('assets/floral-glass.webp');background-size:200% 100%;backface-visibility:hidden}.left-leaf .glass-texture{background-position:left center}.right-leaf .glass-texture{background-position:right center}.glass-sheen{position:absolute;inset:0;background:linear-gradient(115deg,transparent 20%,#fff6 40%,transparent 60%);background-size:300% 100%;background-position:100% 0;mix-blend-mode:soft-light;animation:sheen 9s ease-in-out infinite;opacity:.65}.cover-type{position:absolute;top:17%;left:0;right:0;text-align:center;color:#554d32;text-shadow:0 1px 8px #fff8;transition:opacity .65s,transform 1s}.cover-type .eyebrow{font-size:10px;letter-spacing:4px;margin-bottom:14px}.cover-names{font-size:clamp(60px,7vw,91px);line-height:1;letter-spacing:-2px;margin:0 0 18px}.cover-names i{font-size:.6em;color:#916355}.cover-date{font-family:var(--sans);font-size:9px;letter-spacing:4px;text-transform:uppercase}.seal{position:absolute;width:clamp(125px,17vh,180px);height:clamp(125px,17vh,180px);left:50%;top:52%;transform:translate(-50%,-50%);padding:0;pointer-events:auto;filter:drop-shadow(0 6px 8px #65491c77);transition:transform 1.1s cubic-bezier(.4,0,.2,1),opacity .7s .4s,filter .3s;z-index:3}.seal:hover{filter:drop-shadow(0 7px 12px #65491c99) brightness(1.06)}.seal svg{display:block;width:100%;height:100%}.seal>span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:34px;font-style:italic;color:#745b39;letter-spacing:-1px}.seal i{font-size:21px;padding:3px}.opening-instruction{position:absolute;left:0;right:0;top:73%;text-align:center;color:#625236;transition:opacity .6s,transform .8s}.opening-instruction p{font-family:var(--sans);font-size:10px;text-transform:uppercase;letter-spacing:2.3px;margin:10px 0}.opening-instruction>span:last-child{font-size:18px;font-style:italic}.tap-spark{display:block;font-size:25px;animation:breathe 3s ease-in-out infinite}.opening-light{position:absolute;z-index:9;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,#fffbed 0,transparent 65%);opacity:0;mix-blend-mode:screen}.is-closed .masthead,.is-closed .page-navigation{opacity:0;pointer-events:none}.is-closed .pages{opacity:0;transform:scale(.94)}.pages{transition:opacity 2s .65s,transform 2.9s cubic-bezier(.2,.7,.2,1)}.is-opening .left-leaf{transform:rotateY(-108deg);filter:brightness(.64)}.is-opening .right-leaf{transform:rotateY(108deg);filter:brightness(.7)}.is-opening .cover-type{opacity:0;transform:translateY(-15px)}.is-opening .opening-instruction{opacity:0;transform:translateY(15px)}.is-opening .seal{transform:translate(-50%,-50%) rotateY(70deg) scale(.78);opacity:0;pointer-events:none}.is-opening .opening-light{animation:openingLight 3s ease both}.is-open .cover{visibility:hidden}.is-reclosing .cover{visibility:visible}.is-reclosing .cover-leaf{transition:none}.is-reclosing .cover-type,.is-reclosing .seal,.is-reclosing .opening-instruction{transition:none}.is-reclosing .pages{transition:none}.page:not(.active){pointer-events:none}dialog{border:1px solid var(--gold);padding:45px;max-width:510px;width:calc(100% - 36px);background:var(--paper);color:var(--ink)}dialog::backdrop{background:#14291fbb;backdrop-filter:blur(7px)}dialog h2{font-size:42px}dialog p{font-size:18px}.dialog-close{position:absolute;right:15px;top:10px;font-size:28px}.is-changing .page-navigation{pointer-events:none}@keyframes sheen{0%,65%,100%{background-position:100% 0}40%{background-position:-100% 0}}@keyframes breathe{0%,100%{opacity:.4;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}@keyframes openingLight{0%{opacity:0}35%{opacity:.7}100%{opacity:0}}
@media(min-width:1000px) and (min-height:800px){.welcome-content{padding:20px}.page-scroll{padding-top:130px}.place .page-scroll{padding-top:110px}.venue-art{max-width:680px}}
@media(max-width:700px){.invitation{width:100%;margin:0;height:calc(100dvh - 29px);perspective:1100px}.site-footer{height:29px;width:calc(100% - 32px)}.site-footer>span{font-size:12px}.site-footer button{font-size:7px}.inner-frame{inset:8px}.inner-frame:before{inset:3px}.masthead{inset:24px 27px auto}.brand{font-size:24px}.masthead>span{font-size:8px;letter-spacing:2px}.masthead .text-button{font-size:8px}.page-scroll{padding:100px 35px 113px}.welcome-content{width:100%}.eyebrow{font-size:8px;letter-spacing:2.5px;margin-bottom:14px}.script-line{font-size:20px}h1{font-size:76px;line-height:.8;letter-spacing:-3px;margin:25px 0}h1 span{display:block;font-size:44px;margin:15px 0 11px}.flourish{font-size:23px;margin:20px 0}.date-line{font-size:21px}.year{font-size:17px;margin-bottom:25px}.venue-name{font-size:23px}.small-caps{font-size:8px;letter-spacing:1.3px}.primary,.outlined{font-size:10px;min-height:44px;padding:13px 20px}.personal-note{font-size:16px;margin-top:23px}h2{font-size:48px}.intro{font-size:18px}.timeline>div{grid-template-columns:55px 23px 1fr;gap:10px;min-height:110px}.time{font-size:24px}.timeline>div:not(:last-child):after{left:76px}.timeline h3{font-size:24px}.timeline p{font-size:16px}.place .page-scroll{padding:100px 25px 113px}.place h2{font-size:45px}.venue-art{width:calc(100% + 24px);margin:18px -12px 10px}.place-details{display:block;text-align:center}.place-details h3{font-size:25px}.venue-note{border-left:0;border-top:1px solid #ad8c5160;padding:20px 5px 0;margin:20px 0 0}.concept-note{font-size:8px}.attire .page-scroll{padding-left:28px;padding-right:28px}.palette{gap:12px}.palette span{font-size:7px}.palette span:before{width:34px;height:34px}.attire-sheet .script-line{font-size:19px}.attire-illustration{margin:15px -10px 0}.fine-rule{margin:23px auto}.rsvp .page-scroll{padding-left:30px;padding-right:30px}.form-grid{gap:12px;grid-template-columns:1fr 1fr}.choice-row{gap:8px}.choice-row label span{font-size:9px;padding:16px 5px}.closing-monogram{width:130px;height:130px;line-height:128px;font-size:55px;margin:20px auto 30px}.closing-monogram i{font-size:35px}.page-navigation{bottom:20px;gap:10px;padding:6px 10px;width:calc(100% - 54px);justify-content:space-between}#page-picker{min-width:0;gap:10px;flex:1;font-size:9px}#page-number{font-size:7px;letter-spacing:.8px}.page-navigation>button:not(#page-picker){width:30px;font-size:22px}.cover-type{top:19%}.cover-type .eyebrow{font-size:8px;letter-spacing:3px}.cover-names{font-size:59px}.cover-date{font-size:8px;letter-spacing:3px}.seal{width:144px;height:144px;top:51%}.opening-instruction{top:72%}.opening-instruction p{font-size:8px;letter-spacing:2px}.opening-instruction>span:last-child{font-size:17px}}
@media(max-height:700px){.page-scroll{padding-top:85px}.welcome .page-scroll,.farewell .page-scroll{display:block}.welcome h1{font-size:70px;margin:19px 0}.welcome .flourish{margin:12px 0}.welcome .year{margin-bottom:18px}.welcome .personal-note{margin-top:18px}.cover-type{top:14%}.cover-names{font-size:57px}.opening-instruction{top:73%}.seal{width:125px;height:125px}.cover-type .eyebrow{margin-bottom:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0ms!important}.cover-leaf{will-change:auto}.is-opening .left-leaf,.is-opening .right-leaf{opacity:0;transform:none}}
/* Continuous invitation and solid glass cover, revision 2. */
html{scroll-behavior:smooth;scroll-padding-top:96px}body{height:auto;min-height:100dvh;overflow-x:hidden;overflow-y:auto}body.is-closed,body.is-opening{height:100dvh;overflow:hidden}.ambient{z-index:-2}.invitation{height:auto;min-height:100dvh;overflow:clip;perspective:none;padding-bottom:30px}.invitation:before{position:absolute;background:linear-gradient(90deg,#f9f4e8d9,#f9f4e8fa 20%,#f9f4e8ff 50%,#f9f4e8fa 80%,#f9f4e8d9),url('assets/floral-glass.webp') top center/100% 1500px repeat-y}.inner-frame{inset:14px;z-index:0}.pages{position:relative;inset:auto;transform:none!important;transition:opacity 3.6s 1.3s}.masthead{position:sticky;top:0;inset:auto;margin:0 25px;padding:20px 18px;background:#f9f4e8eb;backdrop-filter:blur(14px);border-bottom:1px solid #ad8c5140;min-height:76px;z-index:7}.top-links{display:flex;gap:25px;font-family:var(--sans);font-size:10px;letter-spacing:.3px}.top-links a:hover{color:var(--rose)}.chapter{position:relative;scroll-margin-top:95px;min-height:auto;padding:90px 55px;border-bottom:1px solid #ad8c5129;overflow:clip}.page-scroll{height:auto;overflow:visible;padding:0!important}.welcome{min-height:calc(100dvh - 120px);padding-top:95px;padding-bottom:85px;display:grid;place-items:center}.welcome .page-scroll,.farewell .page-scroll{display:block;width:100%}.welcome-content{max-width:740px}.welcome h1{margin-top:30px}.scroll-cue{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:32px;font-family:var(--sans);font-size:9px;text-transform:uppercase;letter-spacing:2px}.scroll-cue i{font-size:30px;font-style:normal;font-family:var(--serif);color:var(--gold)}.welcome .personal-note{font-size:18px;margin-top:30px}.chapter-heading{text-align:center;max-width:720px;margin:0 auto 50px}.chapter-heading>p:last-child:not(.eyebrow){font-size:19px;color:var(--muted)}.story-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center;max-width:1000px;margin:auto}.story-images{position:relative;padding:0 45px 45px 0}.story-main{width:100%;height:520px;object-fit:cover;border-radius:180px 180px 0 0}.story-small{position:absolute;bottom:0;right:0;width:43%;height:230px;object-fit:cover;border:9px solid var(--paper);box-shadow:0 5px 20px #34433722;transform:rotate(4deg)}.photo-label{position:absolute;bottom:5px;left:10px;font-style:italic;font-size:18px;color:var(--muted)}.story-copy h3{font-size:48px;line-height:1.03;letter-spacing:-1px;margin-bottom:25px}.story-copy h3 em{color:var(--rose)}.story-copy>p{font-size:20px;line-height:1.6}.story-milestones{margin-top:30px;border-top:1px solid #ad8c5140}.story-milestones p{padding:15px 0;border-bottom:1px solid #ad8c5140;margin:0;display:flex;justify-content:space-between;gap:12px}.story-milestones span{font-family:var(--sans);font-size:9px;text-transform:uppercase;letter-spacing:1px}.story-milestones i{font-size:16px}.celebration{background:#e9eadc55}.timeline>div{min-height:115px}.timeline{margin:40px auto;max-width:590px}.timeline h3{font-size:29px}.timeline p{font-size:18px}.place-sheet{max-width:850px}.place .page-scroll{padding:0}.place h2{font-size:62px}.venue-art{max-width:800px;margin:35px auto 30px}.place-details{max-width:760px;gap:50px}.place-details h3{font-size:30px}.place-details p{font-size:18px}.text-link{display:inline-block;font-family:var(--sans);font-size:10px;margin:10px 0;border-bottom:1px solid var(--gold);padding-bottom:5px}.concept-note{margin-top:30px}.gallery-chapter{background:#e5dfd049}.photo-gallery{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:30px;max-width:920px;margin:auto}.photo-gallery button{text-align:left;padding:0}.photo-gallery button:nth-child(even){margin-top:55px}.photo-gallery img{display:block;width:100%;height:380px;object-fit:cover;transition:transform .8s}.photo-gallery button:hover img{transform:scale(.985)}.photo-gallery span{display:block;padding:15px 0;font-size:16px;font-style:italic;color:var(--muted)}.gallery-note{text-align:center;font-family:var(--sans);font-size:9px;color:var(--muted);margin:45px 0 0}.attire-sheet{max-width:780px}.attire-illustration{max-width:500px;margin:30px auto 25px}.attire-illustration img{display:block;width:100%;height:auto;mix-blend-mode:multiply}.attire-practical{font-size:18px;line-height:1.7;color:var(--muted)}.palette{margin:32px 0;gap:30px}.palette span{font-size:9px}.palette span:before{width:46px;height:46px}.notes-chapter{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px}.notes-chapter .chapter-heading{text-align:left;margin:0}.notes-chapter h2{font-size:59px}.accordions details{border-top:1px solid #ad8c5150;padding:21px 0}.accordions details:last-child{border-bottom:1px solid #ad8c5150}.accordions summary{font-size:25px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:15px}.accordions summary::-webkit-details-marker{display:none}.accordions summary>span{font-size:24px;color:var(--gold);transition:transform .3s}.accordions details[open] summary>span{transform:rotate(45deg)}.accordions details p{font-size:18px;line-height:1.6;margin:18px 0 0;color:var(--muted)}.rsvp{background:#e9eadc50}.rsvp-sheet{max-width:620px}.rsvp h2{font-size:70px}.form-disclosure{font-size:10px}.farewell{padding-top:80px;padding-bottom:90px;min-height:75vh}.closing-sheet{max-width:650px}.closing-monogram{margin-top:0}.countdown strong{font-size:52px}.site-footer{height:auto;padding:20px 0 25px;gap:20px}.site-footer button{font-size:9px}.scroll-reveal{opacity:1;transform:none;transition:opacity 1s,transform 1.2s}.is-open .scroll-reveal:not(.in-view){opacity:0;transform:translateY(20px)}.is-open .scroll-reveal.in-view{opacity:1;transform:none}.sound-control{position:fixed;bottom:22px;left:22px;z-index:30;background:#344337ed;color:#f9f4e8;border:1px solid #c5ab7870;display:flex;align-items:center;gap:10px;padding:11px 13px;box-shadow:0 3px 15px #0002}.sound-label{font-family:var(--sans);font-size:8px;letter-spacing:.6px}.sound-bars{display:flex;gap:3px;height:15px;align-items:center}.sound-bars i{width:2px;height:4px;background:#e6d5b6}.playing .sound-bars i{animation:musicBars 1.2s ease-in-out infinite alternate}.playing .sound-bars i:nth-child(2){animation-delay:-.6s}.playing .sound-bars i:nth-child(3){animation-delay:-.2s}.playing .sound-bars i:nth-child(4){animation-delay:-.8s}.is-closed .sound-control{opacity:0;pointer-events:none}.sound-control{transition:opacity .5s}.gallery-dialog{max-width:1000px;width:calc(100% - 40px);padding:35px 60px 20px;overflow:visible}.gallery-dialog img{display:block;max-height:75vh;max-width:100%;margin:auto;object-fit:contain}.gallery-dialog>button:not(.dialog-close){position:absolute;top:50%;font-size:32px;transform:translateY(-50%);padding:12px}.gallery-dialog #gallery-prev{left:7px}.gallery-dialog #gallery-next{right:7px}.gallery-dialog p{text-align:center;font-size:16px;margin:15px 0 0;font-style:italic}.photo-credit{font-size:13px;margin-bottom:5px}#about-dialog{max-height:85vh;overflow-y:auto}body.is-opening .masthead{opacity:0;pointer-events:none}
/* Each cover leaf is a rigid 32px glass slab with separate front, back and four edge faces. */
.cover-stage{--glass-depth:32px;--half-depth:16px;position:fixed;z-index:20;top:18px;left:0;right:0;margin:auto;width:min(1160px,calc(100% - 72px));height:calc(100dvh - 54px);perspective:1900px;perspective-origin:50% 48%;isolation:isolate;pointer-events:none;background:transparent}.cover{transform-style:preserve-3d;inset:0;perspective:none}.cover-leaf{width:50%;transform-style:preserve-3d;backface-visibility:visible;box-shadow:none;border:0!important;filter:none!important;transition:none;transform:translateZ(0);will-change:transform}.glass-face{position:absolute;inset:0;backface-visibility:hidden;overflow:hidden;box-shadow:0 18px 55px #362e2655;transform-style:flat}.glass-front{transform:translateZ(var(--half-depth));background:#ded7b4cc;border:1px solid #e9dfae}.glass-back{transform:rotateY(180deg) translateZ(var(--half-depth));background:#d5d9c1;border:1px solid #e1e7d1}.glass-texture{inset:0;background-size:200% 100%;opacity:.9;mix-blend-mode:normal}.glass-back .glass-texture{opacity:.55;filter:saturate(.65) brightness(1.12);transform:scaleX(-1)}.glass-back-reflection{position:absolute;inset:0;background:linear-gradient(110deg,#d2ebd6a8,#fff8 30%,transparent 45%,#b3d3b380 65%,#fff9)}.glass-bevel{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 2px #fffbdc99,inset 0 0 0 5px #b5a16688,inset 0 0 0 7px #fff9db99,inset 13px 0 20px #fff5,inset -10px 0 15px #5b744155,inset 0 14px 14px #fff5,inset 0 -12px 18px #6a6e4133}.glass-bevel:after{content:"";position:absolute;inset:9px;border:1px solid #fffae9a8;box-shadow:0 0 8px #fff8}.glass-sheen{background:linear-gradient(112deg,transparent 15%,#fff8 35%,#ffffefdb 36%,#fff4 39%,transparent 50%,#fff7 70%,transparent 78%);background-size:250% 100%;animation:glassIdle 12s ease-in-out infinite;mix-blend-mode:screen;opacity:.75}.glass-reflection{position:absolute;inset:-20%;background:linear-gradient(110deg,transparent 24%,#fcfff766 32%,#fffff7c9 35%,#fff9 36%,transparent 41%,transparent 63%,#e8ffe866 66%,transparent 70%);transform:translateX(-75%);mix-blend-mode:screen;opacity:.3;pointer-events:none}.glass-edge{position:absolute;backface-visibility:visible;background:repeating-linear-gradient(90deg,#f9ffe9 0,#92ae8a 2px,#e8efc7 3px,#c6d2ac 5px,#f8ffe4 6px,#a8ba95 8px);box-shadow:inset 0 0 7px #ecffce,0 0 4px #fff5;border:1px solid #f9ffd6b3}.edge-inner,.edge-outer{top:0;bottom:0;width:var(--glass-depth);transform-origin:0 50%;transform:translateZ(var(--half-depth)) rotateY(90deg)}.edge-inner{left:100%}.edge-outer{left:0}.edge-top,.edge-bottom{left:0;right:0;height:var(--glass-depth);transform-origin:50% 0;transform:translateZ(var(--half-depth)) rotateX(-90deg);background:repeating-linear-gradient(0deg,#f9ffe9 0,#92ae8a 2px,#e8efc7 3px,#c6d2ac 5px,#f8ffe4 6px,#a8ba95 8px)}.edge-top{top:0}.edge-bottom{top:100%}.right-leaf .glass-front{box-shadow:0 20px 55px #362e2670}.cover-type{transform:translateZ(45px);color:#3c4430;z-index:3;text-shadow:0 1px 9px #fff9}.seal{transform:translate(-50%,-50%) translateZ(62px);filter:drop-shadow(4px 9px 5px #4b3c2e88);transition:none}.seal>span{font-weight:500}.opening-instruction{transform:translateZ(45px);z-index:4;color:#3c4430}.glass-caustics{position:absolute;inset:0;z-index:0;opacity:0;background:radial-gradient(ellipse at 32% 30%,#f8e3a8aa,transparent 40%),repeating-conic-gradient(from 30deg at 50% 60%,transparent 0deg 13deg,#d8dda222 14deg 17deg,transparent 18deg 39deg);filter:blur(3px);mix-blend-mode:multiply;pointer-events:none}.glass-floor-shadow{position:absolute;inset:0;background:linear-gradient(90deg,#23342680,transparent 50%,#23342680);opacity:0;filter:blur(18px);pointer-events:none}.opening-light{opacity:0;inset:0;z-index:12;background:radial-gradient(ellipse at 50% 47%,#fffde1bb,transparent 68%)}.is-opening .left-leaf{animation:glassOpenLeft 6.4s .7s cubic-bezier(.36,0,.14,1) both;transform:none}.is-opening .right-leaf{animation:glassOpenRight 6.4s .7s cubic-bezier(.36,0,.14,1) both;transform:none}.is-opening .glass-reflection{animation:turningReflection 6.5s .7s ease both}.is-opening .right-leaf .glass-reflection{animation-direction:reverse}.is-opening .glass-sheen{animation:openingSheen 6.5s .7s ease both}.is-opening .cover-type{animation:coverLetterFade 1.8s ease both;transition:none}.is-opening .opening-instruction{animation:coverLetterFade .8s ease both;transition:none}.is-opening .seal{animation:sealRelease 1.5s ease both;transition:none}.is-opening .glass-caustics{animation:caustics 7.2s ease both}.is-opening .glass-floor-shadow{animation:slabShadow 7.2s ease both}.is-opening .opening-light{animation:openingLight 6.5s .5s ease both}.is-reclosing .cover-leaf,.is-reclosing .cover-type,.is-reclosing .seal,.is-reclosing .opening-instruction{animation:none!important}.is-open .cover-stage{visibility:hidden}
@keyframes glassOpenLeft{0%{transform:translateZ(0) rotateY(0)}12%{transform:translateZ(3px) rotateY(-5deg)}55%{transform:translateZ(-30px) rotateY(-67deg)}82%{transform:translateX(-4%) translateZ(-70px) rotateY(-96deg)}100%{transform:translateX(-20%) translateZ(-120px) rotateY(-112deg)}}@keyframes glassOpenRight{0%{transform:translateZ(0) rotateY(0)}12%{transform:translateZ(3px) rotateY(5deg)}55%{transform:translateZ(-30px) rotateY(67deg)}82%{transform:translateX(4%) translateZ(-70px) rotateY(96deg)}100%{transform:translateX(20%) translateZ(-120px) rotateY(112deg)}}@keyframes turningReflection{0%{opacity:.1;transform:translateX(-80%) skewX(-9deg)}25%{opacity:.45}50%{opacity:.95;transform:translateX(10%) skewX(2deg)}75%{opacity:.65}100%{opacity:.2;transform:translateX(90%) skewX(15deg)}}@keyframes openingSheen{0%{background-position:100% 0;opacity:.35}45%{opacity:1}100%{background-position:-100% 0;opacity:.55}}@keyframes glassIdle{0%,60%,100%{background-position:100% 0}40%{background-position:30% 0}}@keyframes coverLetterFade{0%{opacity:1}65%{opacity:0}100%{opacity:0}}@keyframes sealRelease{0%{opacity:1;transform:translate(-50%,-50%) translateZ(62px)}35%{opacity:1;transform:translate(-50%,-50%) translateZ(100px) rotateY(18deg)}100%{opacity:0;transform:translate(-50%,-52%) translateZ(150px) rotateY(80deg) scale(.8)}}@keyframes caustics{0%{opacity:0;transform:scale(.8)}35%{opacity:.65}70%{opacity:.3}100%{opacity:0;transform:scale(1.2)}}@keyframes slabShadow{0%{opacity:0;transform:scaleX(.8)}40%{opacity:.65}100%{opacity:0;transform:scaleX(1.2)}}@keyframes musicBars{from{height:4px}to{height:15px}}
@media(max-width:850px){.story-layout{gap:35px}.story-main{height:440px}.story-copy h3{font-size:41px}.notes-chapter{gap:35px}.notes-chapter h2{font-size:49px}.photo-gallery img{height:320px}}
@media(max-width:700px){html{scroll-padding-top:80px}.invitation{width:100%;margin:0;height:auto;min-height:100dvh;padding-bottom:0}.masthead{margin:0 12px;padding:15px 13px;min-height:66px}.top-links{gap:14px;font-size:8px}.masthead .text-button{font-size:8px}.chapter{padding:70px 28px;scroll-margin-top:80px}.welcome{min-height:calc(100dvh - 65px);padding:55px 30px 60px}.welcome h1{font-size:82px}.welcome .personal-note{font-size:17px}.welcome .venue-name{font-size:25px}.welcome .small-caps{font-size:8px;letter-spacing:1px}.chapter-heading{margin-bottom:35px}.chapter-heading h2{font-size:47px}.story-layout{display:block}.story-images{max-width:390px;margin:0 auto 45px;padding-right:40px}.story-main{height:420px}.story-small{height:180px;width:43%;border-width:7px}.story-copy{max-width:480px;margin:auto}.story-copy h3{font-size:47px}.story-copy>p{font-size:19px}.story-milestones p{gap:12px}.story-milestones i{font-size:15px}.story-milestones span{font-size:8px}.timeline>div{min-height:130px;grid-template-columns:55px 23px 1fr}.timeline h3{font-size:25px}.timeline p{font-size:17px}.place h2{font-size:47px}.venue-art{width:calc(100% + 24px);margin:25px -12px}.place-details{display:block;text-align:center}.place-details h3{font-size:28px}.venue-note{padding-top:23px}.concept-note{font-size:8px}.photo-gallery{gap:15px}.photo-gallery img{height:235px}.photo-gallery button:nth-child(even){margin-top:35px}.photo-gallery span{font-size:12px;line-height:1.5}.gallery-note{margin-top:30px}.attire .page-scroll{padding:0}.attire-illustration{max-width:380px;margin:20px auto}.attire-practical{font-size:17px}.palette{gap:15px;margin:26px 0}.palette span{font-size:8px}.palette span:before{width:35px;height:35px}.notes-chapter{display:block}.notes-chapter .chapter-heading{text-align:center;margin-bottom:35px}.notes-chapter h2{font-size:48px}.accordions summary{font-size:25px}.accordions details p{font-size:18px}.rsvp h2{font-size:57px}.rsvp .page-scroll{padding:0}.farewell{min-height:75vh}.farewell .page-scroll{display:block}.closing-monogram{margin-top:0}.site-footer{width:calc(100% - 44px);padding:18px 0 70px;min-height:110px}.sound-control{bottom:15px;left:15px;padding:10px}.cover-stage{--glass-depth:24px;--half-depth:12px;top:0;width:100%;height:100dvh;perspective:1100px;perspective-origin:50% 48%}.cover-type{top:19%}.opening-instruction{top:75%}.cover-names{font-size:59px}.seal{top:51%}.glass-bevel{box-shadow:inset 0 0 0 1px #fffbdc99,inset 0 0 0 4px #b5a16688,inset 0 0 0 6px #fff9db99,inset 9px 0 14px #fff7,inset -8px 0 12px #5b744166,inset 0 10px 12px #fff6,inset 0 -9px 12px #6a6e4144}.glass-bevel:after{inset:7px}.gallery-dialog{padding:30px 37px 15px;width:calc(100% - 20px)}.gallery-dialog>button:not(.dialog-close){font-size:25px;padding:5px}.gallery-dialog #gallery-prev{left:3px}.gallery-dialog #gallery-next{right:3px}.gallery-dialog p{font-size:13px}.form-grid{grid-template-columns:1fr 1fr}.site-footer>span{font-size:15px}}
@media(max-height:700px){.cover-type{top:14%}.opening-instruction{top:75%}.welcome{padding-top:45px}.welcome h1{font-size:72px}.cover-stage{height:100dvh}.welcome .personal-note{margin-top:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scroll-reveal,.is-open .scroll-reveal:not(.in-view){opacity:1!important;transform:none!important}.is-opening .cover-leaf{opacity:0;animation:none!important}.cover-type,.seal,.opening-instruction{transition:none!important}.playing .sound-bars i{animation:none;height:8px}}
.masthead{top:0}
@media(max-width:700px){.top-links{gap:8px;font-size:9px}.top-links a{display:inline-block;padding:12px 2px}}
/* Editorial motion: quiet dissolves, fine rules and masked photographic depth. */
.editorial-motion .chapter{border-bottom-color:transparent}
.editorial-motion .chapter:not(.welcome)>.page-scroll,.editorial-motion .chapter>.chapter-heading,.editorial-motion .story-layout,.editorial-motion .photo-gallery,.editorial-motion .accordions{opacity:var(--chapter-opacity,1)}
.editorial-reveal{opacity:1;transform:none}
.is-open.editorial-motion .editorial-reveal{transition:opacity 1.65s cubic-bezier(.2,.6,.3,1) var(--reveal-delay,0s),transform 1.9s cubic-bezier(.16,.65,.2,1) var(--reveal-delay,0s)}
.is-open.editorial-motion .editorial-reveal:not(.editorial-visible){opacity:0;transform:translate3d(0,15px,0)}
.is-open.editorial-motion .editorial-visible,.is-open.editorial-motion .editorial-reveal:focus-within{opacity:1;transform:none}
.is-open.editorial-motion .story-images.editorial-reveal:not(.editorial-visible),.is-open.editorial-motion .photo-gallery>.editorial-reveal:not(.editorial-visible){opacity:0;transform:translate3d(0,8px,0)}
.is-open.editorial-motion .attire-illustration.editorial-reveal:not(.editorial-visible),.is-open.editorial-motion .venue-art.editorial-reveal:not(.editorial-visible){transform:none}
.photo-viewport{position:relative;overflow:hidden;isolation:isolate}
.story-viewport{border-radius:180px 180px 0 0}
.story-viewport .story-main{display:block;border-radius:0}
.photo-viewport img{transform:translate3d(0,var(--photo-offset,0px),0) scale(1.045);transition:transform .7s cubic-bezier(.2,.6,.3,1);will-change:transform}
.photo-gallery button:hover .photo-viewport img{transform:translate3d(0,var(--photo-offset,0px),0) scale(1.06)}
.editorial-motion .timeline>div:after{transform:scaleY(0);transform-origin:top;transition:transform 1.6s ease .2s}
.editorial-motion .timeline>.editorial-visible:after{transform:scaleY(1)}
.editorial-motion .masthead:after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:1px;background:#ad8c5180;transform:scaleX(var(--reading-progress,0));transform-origin:left;pointer-events:none}
@media(max-width:700px){.is-open.editorial-motion .editorial-reveal:not(.editorial-visible){transform:translate3d(0,11px,0)}.is-open.editorial-motion .story-images.editorial-reveal:not(.editorial-visible),.is-open.editorial-motion .photo-gallery>.editorial-reveal:not(.editorial-visible){transform:translate3d(0,6px,0)}.is-open.editorial-motion .attire-illustration.editorial-reveal:not(.editorial-visible),.is-open.editorial-motion .venue-art.editorial-reveal:not(.editorial-visible){transform:none}}
@media(prefers-reduced-motion:reduce){.editorial-motion .chapter>.page-scroll,.editorial-motion .chapter>.chapter-heading,.editorial-motion .story-layout,.editorial-motion .photo-gallery,.editorial-motion .accordions{opacity:1!important}.is-open.editorial-motion .editorial-reveal:not(.editorial-visible),.editorial-reveal{opacity:1!important;transform:none!important;transition:none!important}.photo-viewport img,.photo-gallery button:hover .photo-viewport img{transform:none!important;transition:none!important}.editorial-motion .timeline>div:after{transform:none!important}.editorial-motion .masthead:after{display:none}}
/* Antique-gold picture mouldings with an ivory mat and recessed photograph. */
.picture-frame{position:relative;padding:14px;border:8px solid transparent;background:linear-gradient(135deg,#fbf6e9,#eee5d3) padding-box,linear-gradient(135deg,#97723f 0%,#dfca91 8%,#f7e9b4 15%,#9d7c45 25%,#ccb178 44%,#8c6939 64%,#ead6a1 84%,#a58249 100%) border-box;box-shadow:inset 0 0 0 1px #8d734f99,inset 0 0 0 3px #fff9,2px 3px 4px #5b43282b,0 14px 24px #4e3f2829;isolation:isolate}
.picture-frame:before{content:"";position:absolute;inset:-5px;border:1px solid #fff2bf80;box-shadow:0 0 0 1px #77542c4d;pointer-events:none;border-radius:inherit}
.picture-frame:after{content:"";position:absolute;inset:8px;border:1px solid #b4a17d66;pointer-events:none;border-radius:inherit}
.picture-frame .photo-viewport{box-shadow:0 0 0 1px #99866666,0 2px 5px #5a452821}
.story-main-frame{border-radius:190px 190px 2px 2px}
.story-main-frame:before{border-radius:185px 185px 0 0}
.story-main-frame:after{border-radius:170px 170px 0 0}
.story-main-frame .story-viewport{border-radius:160px 160px 0 0}
.story-small-frame{position:absolute;right:0;bottom:0;width:43%;padding:9px;border-width:6px;transform:rotate(4deg);z-index:2;box-shadow:inset 0 0 0 1px #8d734f99,inset 0 0 0 3px #fff9,2px 4px 5px #5b43283b,0 12px 22px #4e3f2840}
.story-small-frame .photo-viewport{height:205px}
.story-small-frame .story-small{position:static;display:block;inset:auto;width:100%;height:100%;border:0;object-fit:cover;box-shadow:none;transform:translate3d(0,var(--photo-offset,0px),0) scale(1.045)}
.photo-gallery{gap:38px}
.photo-gallery button{min-width:0}
.photo-gallery .picture-frame img{display:block;width:100%;height:350px;object-fit:cover}
.photo-gallery span{padding:18px 8px 5px}
.gallery-dialog img{padding:12px;border:8px solid #b69a61;background:#f8f0de;box-shadow:inset 0 0 0 1px #9c8255,0 8px 25px #3f342530}
@media(max-width:850px){.picture-frame{padding:11px;border-width:7px}.photo-gallery{gap:28px}.photo-gallery .picture-frame img{height:300px}.story-small-frame .photo-viewport{height:185px}}
@media(max-width:700px){.picture-frame{padding:9px;border-width:6px;box-shadow:inset 0 0 0 1px #8d734f99,inset 0 0 0 3px #fff9,1px 2px 3px #5b43282b,0 9px 18px #4e3f2829}.picture-frame:before{inset:-4px}.picture-frame:after{inset:5px}.story-main-frame{border-radius:170px 170px 2px 2px}.story-main-frame:before{border-radius:166px 166px 0 0}.story-main-frame:after{border-radius:152px 152px 0 0}.story-main-frame .story-viewport{border-radius:145px 145px 0 0}.story-small-frame{padding:6px;border-width:5px;width:45%}.story-small-frame .photo-viewport{height:165px}.photo-gallery{gap:20px}.photo-gallery .picture-frame{padding:7px;border-width:5px}.photo-gallery .picture-frame img{height:220px}.photo-gallery span{padding:14px 1px 5px;font-size:12px}.gallery-dialog img{padding:7px;border-width:5px}}
@media(max-width:400px){.photo-gallery{gap:15px}.photo-gallery .picture-frame{padding:5px;border-width:4px}.photo-gallery .picture-frame img{height:190px}}
/* Botanical surrounds stay at the outer edge of the invitation. */
.chapter{isolation:isolate}
.floral-surround{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.floral-corner{position:absolute;display:block;width:170px;height:510px;background:url('assets/rose-garland.webp') center/contain no-repeat;opacity:.9;filter:drop-shadow(0 3px 3px #5b4d2b10)}
.floral-left{left:-61px;top:55px;transform:rotate(-7deg)}
.floral-right{right:-61px;bottom:20px;transform:scaleX(-1) rotate(-7deg)}
.welcome .floral-left{width:205px;height:615px;left:-72px;top:55px;opacity:.92}
.welcome .floral-right{width:205px;height:615px;right:-72px;bottom:5px;opacity:.92}
.chapter:nth-child(even) .floral-left{top:auto;bottom:15px;transform:rotate(5deg)}
.chapter:nth-child(even) .floral-right{bottom:auto;top:40px;transform:scaleX(-1) rotate(5deg)}
.gallery-chapter .floral-corner{opacity:.76}
.farewell .floral-corner{width:190px;height:570px;opacity:.92}
@media(max-width:850px){.floral-corner{width:140px;height:420px}.floral-left{left:-63px}.floral-right{right:-63px}.welcome .floral-left,.welcome .floral-right{width:170px;height:510px}.welcome .floral-left{left:-80px}.welcome .floral-right{right:-80px}}
@media(max-width:700px){.floral-corner{width:110px;height:330px;opacity:.8}.floral-left{left:-62px;top:20px}.floral-right{right:-62px;bottom:10px}.welcome .floral-left,.welcome .floral-right{width:145px;height:435px;opacity:.88}.welcome .floral-left{left:-77px;top:35px}.welcome .floral-right{right:-77px;bottom:5px}.chapter:nth-child(even) .floral-right{top:15px}.farewell .floral-corner{width:130px;height:390px}.farewell .floral-left{left:-73px}.farewell .floral-right{right:-73px}}
.floral-left{left:-32px}.floral-right{right:-32px}
.welcome .floral-left{left:-32px}.welcome .floral-right{right:-32px}
@media(max-width:850px){.floral-left{left:-44px}.floral-right{right:-44px}.welcome .floral-left{left:-46px}.welcome .floral-right{right:-46px}}
@media(max-width:700px){.floral-left{left:-49px}.floral-right{right:-49px}.welcome .floral-left{left:-49px}.welcome .floral-right{right:-49px}.farewell .floral-left{left:-57px}.farewell .floral-right{right:-57px}}
/* A single monogram and calligraphy system throughout the invitation suite. */
@font-face{font-family:Pinyon;src:url('assets/pinyon.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
.suite-definitions{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.crest-mark{display:block;width:100%;height:100%;color:var(--gold);fill:none}
.brand .brand-crest{width:38px;height:47px}
.brand{display:flex;align-items:center;justify-content:center;min-width:45px}
.hero-crest{width:94px;height:113px;margin:22px auto 24px}
.welcome h1{font-family:Pinyon,var(--serif);font-size:146px;font-weight:400;letter-spacing:0;line-height:1.03;margin:28px 0 8px}
.welcome h1>span{font-family:var(--serif);font-style:italic;font-size:.48em;color:var(--rose);margin:0 13px}
.cover-names{font-family:Pinyon,var(--serif);font-size:105px;letter-spacing:0;line-height:1.1}
.cover-names i{font-family:var(--serif);font-size:.55em}
.script-line{font-family:Pinyon,var(--serif);font-style:normal;font-size:31px;line-height:1.4}
.story-copy .script-line{font-size:33px}
.closing-monogram{border:0;border-radius:0;width:155px;height:186px;line-height:normal;margin:0 auto 25px;padding:0}
.closing-sheet h2 em{font-family:Pinyon,var(--serif);font-style:normal;font-size:1.28em;line-height:.95}
.closing-sheet>.intro{font-family:Pinyon,var(--serif);font-size:35px}
/* The crest is engraved into the blank face of the cast-metal seal. */
.seal{width:205px;height:205px;filter:drop-shadow(3px 8px 4px #3a2c1f70) drop-shadow(0 1px 1px #3a2c1f70)}
.seal .metal-seal{display:block;width:100%;height:100%;object-fit:contain}
.seal>.seal-engraving{display:block;position:absolute;inset:auto;left:50%;top:50%;width:48%;height:58%;transform:translate(-50%,-49%);pointer-events:none;filter:drop-shadow(0 1px 0 #ffe9b8) drop-shadow(0 -1px 0 #67452260)}
.seal-engraving .crest-mark{color:#806036}
.seal:after{content:"";position:absolute;inset:16%;border-radius:50%;background:linear-gradient(125deg,transparent 20%,#fff5 42%,transparent 65%);mix-blend-mode:screen;pointer-events:none;opacity:.35}
/* Delicate engraved moulding corners and a tiny monogram plate. */
.frame-engraving{position:absolute;width:35px;height:35px;color:#987341;filter:drop-shadow(0 1px 0 #fff0bd);pointer-events:none;z-index:3}
.engraving-tl{top:-5px;left:-5px}.engraving-tr{top:-5px;right:-5px;transform:rotate(90deg)}.engraving-br{bottom:-5px;right:-5px;transform:rotate(180deg)}.engraving-bl{bottom:-5px;left:-5px;transform:rotate(270deg)}
.story-main-frame .engraving-tl,.story-main-frame .engraving-tr{display:none}
.frame-monogram{position:absolute;bottom:-7px;left:50%;transform:translateX(-50%);width:25px;height:30px;background:#eee2c4;border:1px solid #ac8e56;border-radius:50%;padding:2px;z-index:4;box-shadow:0 1px 2px #4a351c40;pointer-events:none}
.frame-monogram svg{display:block;width:100%;height:100%;color:#947546}
.picture-frame{background:linear-gradient(125deg,#fcf7ec,#ece3d0) padding-box,linear-gradient(130deg,#9d7a42,#e2ca91 9%,#fff1c5 16%,#a17e45 26%,#d4b982 42%,#96713c 61%,#f3dfaa 83%,#a98448) border-box}
.picture-frame:after{background:repeating-linear-gradient(0deg,transparent 0 3px,#9a875b08 3px 4px),repeating-linear-gradient(90deg,transparent 0 3px,#9a875b08 3px 4px);z-index:-1}
/* A photographic interlude opens within the native scroll flow. */
.cinematic{padding:30px 22px 50px;border:0;min-height:0}
.cinematic-scene{position:relative;height:78vh;min-height:510px;max-height:850px;overflow:hidden;clip-path:inset(var(--cinema-inset,7%) round var(--cinema-radius,143px));background:#414b42;isolation:isolate}
.cinematic-image{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center 72%;transform:scale(var(--cinema-scale,1.09));will-change:transform}
.cinematic-shade{position:absolute;inset:0;background:linear-gradient(#263a3555 0%,#1d302b0a 45%,#11251b80 100%);pointer-events:none}
.cinematic-scene:after{content:"";position:absolute;inset:17px;border:1px solid #dfc78d85;pointer-events:none}
.cinematic-type{position:absolute;left:30px;right:30px;top:18%;text-align:center;color:#fff5df;opacity:var(--cinema-type-opacity,0);text-shadow:0 2px 15px #10221935}
.cinematic-type .eyebrow{font-size:9px;letter-spacing:3.5px;margin-bottom:13px}
.cinematic-names{font-family:Pinyon,var(--serif);font-size:clamp(80px,9vw,135px);line-height:1.1;margin-bottom:15px}
.cinematic-names span{font-family:var(--serif);font-size:.52em;font-style:italic;margin:0 9px}
.cinematic-rule{display:block;width:85px;height:1px;background:#e8d7b2c9;margin:15px auto 20px}
.cinematic-location{font-family:var(--sans);font-size:9px;letter-spacing:2px;text-transform:uppercase}
.cinematic-photo-note{position:absolute;bottom:35px;left:42px;color:#f9eed5;font-family:Pinyon,var(--serif);font-size:28px}
/* Three botanical compositions: corner bouquets, trailing stems and a low spray. */
.floral-bouquet{position:absolute;display:block;width:290px;height:290px;background:url('assets/corner-bouquet.webp') center/contain no-repeat;opacity:.92;filter:drop-shadow(0 4px 4px #5b4d2b0c)}
.bouquet-upper{top:4px;left:-85px;transform:rotate(90deg)}
.bouquet-lower{right:-85px;bottom:5px;transform:scaleX(-1)}
.composition-0 .floral-corner{opacity:.24}.composition-0 .bouquet-upper{width:340px;height:340px;top:0;left:-95px}.composition-0 .bouquet-lower{width:340px;height:340px;right:-95px;bottom:0}
.composition-1 .bouquet-upper{display:none}.composition-1 .floral-left{opacity:.85}.composition-1 .floral-right{display:none}.composition-1 .bouquet-lower{width:280px;height:280px;right:-80px}
.composition-2 .bouquet-upper{width:245px;height:245px;left:auto;right:-70px;transform:rotate(180deg)}.composition-2 .bouquet-lower{display:none}.composition-2 .floral-left{opacity:.45}.composition-2 .floral-right{opacity:.65}
.welcome .composition-0 .bouquet-upper{top:15px}.farewell .bouquet-upper{opacity:.85}
@media(max-width:850px){.welcome h1{font-size:120px}.floral-bouquet{width:245px;height:245px}.composition-0 .bouquet-upper{width:290px;height:290px;left:-105px}.composition-0 .bouquet-lower{width:290px;height:290px;right:-105px}.composition-1 .bouquet-lower{right:-105px}.composition-2 .bouquet-upper{right:-100px}}
@media(max-width:700px){.brand .brand-crest{width:32px;height:40px}.masthead{min-height:70px}.welcome h1{font-size:99px;line-height:.9;margin:22px 0 10px}.welcome h1>span{font-size:42px;margin:12px 0 9px}.hero-crest{width:70px;height:84px;margin:17px auto 22px}.cover-names{font-size:76px}.script-line{font-size:27px}.story-copy .script-line{font-size:28px}.attire-sheet .script-line{font-size:26px}.closing-monogram{width:135px;height:162px}.closing-sheet>.intro{font-size:32px}.seal{width:178px;height:178px}.frame-engraving{width:25px;height:25px}.engraving-tl{left:-3px;top:-3px}.engraving-tr{right:-3px;top:-3px}.engraving-bl{left:-3px;bottom:-3px}.engraving-br{right:-3px;bottom:-3px}.frame-monogram{width:20px;height:24px;bottom:-7px}.cinematic{padding:20px 9px 35px}.cinematic-scene{height:73vh;min-height:500px;max-height:690px}.cinematic-scene:after{inset:10px}.cinematic-type{left:18px;right:18px;top:21%}.cinematic-type .eyebrow{font-size:7px;letter-spacing:2px}.cinematic-names{font-size:73px}.cinematic-names span{margin:0 3px}.cinematic-location{font-size:7px;letter-spacing:1.1px}.cinematic-photo-note{left:25px;bottom:25px;font-size:24px}.floral-bouquet{width:210px;height:210px}.composition-0 .bouquet-upper{width:250px;height:250px;left:-130px;top:0}.composition-0 .bouquet-lower{width:250px;height:250px;right:-130px;bottom:0}.composition-1 .bouquet-lower{width:225px;height:225px;right:-130px}.composition-2 .bouquet-upper{width:200px;height:200px;right:-115px}.composition-2 .floral-left{opacity:.35}.composition-2 .floral-right{opacity:.55}.composition-0 .floral-corner{opacity:.18}}
@media(max-height:700px){.seal{width:155px;height:155px}.cover-names{font-size:68px}.welcome h1{font-size:87px}}
@media(prefers-reduced-motion:reduce){.cinematic-scene{clip-path:none!important}.cinematic-image{transform:none!important}.cinematic-type{opacity:1!important}}
.cinematic-shade{background:linear-gradient(180deg,#10251c94 0%,#10251c7a 38%,#10251c20 65%,#0a1e136e 100%)}
.cinematic-type .eyebrow,.cinematic-location{font-size:10px}
@media(max-width:700px){.cinematic-type .eyebrow,.cinematic-location{font-size:9px}}
@media(max-width:700px){.composition-0 .bouquet-upper{left:-195px;top:-25px}.composition-0 .bouquet-lower{right:-175px}.welcome .composition-0 .bouquet-upper{top:-25px}}
@media(max-width:700px){.cover-names{font-size:66px}}
.opening-instruction{text-shadow:0 1px 8px #fff9,0 0 15px #fff7}
