/* Gilded paper, a continuous floral foreground and a physical invitation hinge. */
.verse-handoff{position:absolute;inset:0;z-index:12;pointer-events:none;visibility:hidden;isolation:isolate;transform-style:flat;perspective:none}
.verse-handoff-line{position:absolute;top:0;left:0;display:block;margin:0;padding:0;white-space:pre;line-height:1;opacity:1;transform:none}
.verse-handoff-word,.verse-handoff-glyph{display:inline;vertical-align:baseline}
.verse-handoff-word{white-space:nowrap}
.verse-handoff-source,.verse-handoff-target{color:transparent!important;text-shadow:none!important}
.verse-handoff-layout{white-space:nowrap}
.booklet-source{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:1320px;margin:auto;padding:70px 30px}
.wedding-details{height:auto!important;min-height:0!important;padding:0!important;background:#efe0c5}
.wedding-details>.scene{opacity:.2!important}
.booklet-page{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#493825;padding:70px 42px 55px;min-height:570px;background:url('/assets/booklet/ornate-paper.webp') center/100% 100% no-repeat;filter:drop-shadow(0 12px 15px #27180925)}
.booklet-page .eyebrow,.cover-content .eyebrow{font:14px/1.4 Cormorant,Georgia,serif;letter-spacing:.14em;text-transform:uppercase}
.booklet-page h2{font-size:40px;line-height:1.02;font-weight:400;margin:12px 0 18px;white-space:normal}
.booklet-page h2 .script{font-size:1.08em;margin-top:6px;line-height:.9}
.booklet-page>p:not(.eyebrow),.book-detail p{font-size:18px;line-height:1.35;margin:0 0 16px}
.booklet-page .small-rule{margin:5px auto 18px;background:#af8b52}
.booklet-page .book-names{font-size:27px!important;line-height:1.12!important}
.book-names .script{color:#8b693e;line-height:.75;margin:4px 0}
.book-date{font-size:18px;line-height:1.5;letter-spacing:.03em}.book-date strong{font-weight:500}
.book-detail{width:100%;margin:8px 0 0;border-top:1px solid #b99b5b44;padding-top:9px}
.book-detail h3{font-size:19px;font-weight:500;margin:0 0 4px}.book-detail p{margin:0;font-size:16px}
.book-cross{display:block;font-size:36px;color:#ae8748;line-height:1;margin:8px 0 20px}
.booklet-page blockquote{font-size:28px;line-height:1.25;font-style:italic;margin:10px 0 20px}
.booklet-page .verse-reference{font-size:16px;letter-spacing:.1em;text-transform:uppercase}
.booklet-page .button{font-size:12px;letter-spacing:.09em;padding:10px 18px;margin-top:4px}
.page-number{position:absolute;bottom:35px;left:0;right:0;font-size:14px;color:#977d53}
.wedding-book{position:absolute;z-index:9;left:50%;top:53%;width:min(92vw,calc(74svh * 1.38),1040px);aspect-ratio:1.38;transform:translate(-50%,-50%);transform-style:preserve-3d;perspective:1800px;will-change:transform,opacity}
.book-leaf{position:absolute;left:50%;top:0;width:50%;height:100%;transform-origin:left center;transform-style:preserve-3d;will-change:transform}
.book-face{position:absolute;inset:0;background:url('/assets/booklet/ornate-paper.webp') center/100% 100% no-repeat;color:#493825;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:preserve-3d}
.book-front{transform:translateZ(1px)}.book-back{transform:rotateY(180deg) translateZ(1px)}
.book-face{box-shadow:3px 4px 0 #d5c3a3,5px 6px 0 #bca986,12px 20px 26px #0004}
.book-base{left:50%;width:50%;transform:translateZ(-3px);z-index:1}
.book-face>.booklet-page{width:100%;height:100%;min-height:0;padding:15% 12% 12%;background:none;filter:none}
.book-face .booklet-page h2{font-size:clamp(32px,3vw,44px);margin:9px 0 15px}
.book-face .booklet-page>p:not(.eyebrow){font-size:18px;margin-bottom:12px}
.book-face .booklet-page .book-names{font-size:clamp(26px,2.5vw,36px)!important}
.book-face .booklet-page blockquote{font-size:clamp(25px,2.5vw,37px)}
.book-face .book-detail{margin-top:7px;padding-top:7px}.book-face .book-detail h3{font-size:18px}
.book-face .page-number{bottom:7%}
.cover-content{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:16% 12% 12%;color:#493825}
.cover-content .book-cross{font-size:39px;margin-bottom:24px}.cover-names{font-size:clamp(31px,3.3vw,48px);line-height:1.12;margin:28px 0 24px}.cover-names .script{font-size:1.4em;line-height:.6;margin:10px 0;color:#8b693e}
.cover-content .small-rule{margin:0 auto 20px;background:#a98952}.cover-foot{font-size:14px;line-height:1.4;margin-top:25px;max-width:200px}.final-dedication>p:last-child{font-size:18px;margin-top:22px}
.book-binding{position:absolute;z-index:7;left:50%;top:2.5%;bottom:2.5%;width:12px;margin-left:-6px;background:linear-gradient(90deg,#87653d00,#69522d66,#fff6dc77,#b4935755,#b4935700);pointer-events:none}
.booklet-controls{position:absolute!important;left:50%!important;right:auto!important;top:auto!important;bottom:55px!important;transform:translateX(-50%);z-index:15;display:flex!important;align-items:center;justify-content:center;gap:22px;margin:0!important;padding:0!important;white-space:nowrap;background:none!important;border:0!important;box-shadow:none!important;width:auto!important;backdrop-filter:none!important}
.booklet-controls[hidden]{display:none!important}.booklet-controls button{border:1px solid #d6b48188;background:#082016df;border-radius:24px;padding:10px 16px;font:16px/1.2 Cormorant,Georgia,serif;letter-spacing:.02em;text-transform:none;min-height:44px}.booklet-controls button:disabled{opacity:.4;cursor:default}.book-page-label{font-size:16px;color:#efd8b2}
.dove-carrier{position:absolute;z-index:14;width:clamp(120px,12vw,190px);aspect-ratio:1;pointer-events:none;transform:translate(-50%,-50%);will-change:transform,opacity;filter:drop-shadow(0 8px 8px #0003)}
.dove-carrier img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.dove-carrier img[hidden]{display:none}
.film-ready .film-stage>.wedding-details,.film-ready .film-stage>.blessing{position:absolute;inset:0;height:100%!important;min-height:0!important;padding:0!important;overflow:hidden;background:transparent;pointer-events:none}
.film-ready .film-stage>.wedding-details{visibility:hidden!important}.film-ready .film-stage>.blessing{z-index:8}.film-ready .booklet-source{display:none}
.film-ready .film-stage>.hero{z-index:0}.film-ready .film-stage>.story{z-index:1}.film-ready .film-stage>.invitation{z-index:2}.film-foreground{z-index:7;overflow:visible}
.foreground-flower{width:auto!important;height:118%;top:-9%;object-fit:contain!important;max-width:none;filter:drop-shadow(0 10px 12px #0002)}.foreground-flower.left{left:-68svh!important}.foreground-flower.right{right:-68svh!important}
.film-ready .hero .scene,.film-ready .story .scene{inset:-2%;width:104%;height:104%}.film-ready .hero .scene-image{object-position:64% center}.film-ready .story .scene-image{object-position:45% center}
.film-ready .invitation-values{transition:opacity .2s}.film-ready .blessing-content{position:relative;z-index:1;padding-top:43svh!important;text-shadow:0 2px 8px #001208cc}
.film-ready .seal-mark{display:block!important;width:auto;height:auto;transform:translate(-50%,-50%) rotate(9deg);font-family:Cormorant,Georgia,serif;line-height:.78;letter-spacing:-.03em;color:#805e35;opacity:.85;text-shadow:0 1px 1px #f4d18966}
:root:not(.film-ready) .printed-card{background:url('/assets/booklet/ornate-paper.webp') center/100% 100% no-repeat!important;border:0!important;box-shadow:none!important;filter:drop-shadow(8px 10px 9px #0006)}
@media(max-width:900px){.booklet-source{grid-template-columns:1fr;max-width:460px;gap:25px;padding:55px 25px}.booklet-page{min-height:590px;padding:75px 50px 65px}}
@media(max-width:767px){.wedding-book{width:min(88vw,calc(64svh * .70),390px);aspect-ratio:.70;perspective:1100px}.book-leaf{left:0;width:100%}.book-face>.booklet-page{padding:16% 12% 12%}.book-face .booklet-page h2{font-size:34px}.book-face .booklet-page>p:not(.eyebrow){font-size:17px;line-height:1.3;margin-bottom:10px}.book-face .booklet-page .book-names{font-size:29px!important}.book-face .booklet-page .eyebrow,.cover-content .eyebrow{font-size:14px;letter-spacing:.09em}.book-face .book-detail p{font-size:16px;line-height:1.25}.book-face .book-detail h3{font-size:18px}.book-face .booklet-page blockquote{font-size:28px}.cover-names{font-size:36px;margin:20px 0}.cover-content .book-cross{font-size:33px;margin-bottom:18px}.cover-foot{font-size:14px;margin-top:18px}.booklet-controls{bottom:54px!important;gap:12px}.booklet-controls button{padding:10px 12px;font-size:15px}.book-page-label{font-size:14px}.dove-carrier{width:110px}.foreground-flower{height:120%;top:-10%}.foreground-flower.left{left:-73svh!important}.foreground-flower.right{right:-73svh!important}.film-ready .hero .scene-image,.film-ready .story .scene-image{object-position:center}.film-ready .blessing-content{padding-top:49svh!important;width:88%}.film-ready .blessing blockquote{font-size:26px}.film-ready .invitation-copy{top:13%}.film-ready .invitation-copy>p:not(.eyebrow){max-width:310px}}
@media(max-height:700px) and (min-width:768px){.book-face>.booklet-page{padding:12% 12% 10%}.book-face .booklet-page h2{font-size:30px;margin:6px 0 10px}.book-face .booklet-page>p:not(.eyebrow){font-size:16px;margin-bottom:8px}.book-face .book-detail p{font-size:16px;line-height:1.2}.book-face .book-detail{margin:5px 0 0;padding-top:5px}.cover-names{font-size:30px;margin:16px 0}.cover-content .book-cross{margin-bottom:14px}.cover-foot{margin-top:14px}.booklet-controls{bottom:35px!important}}
@media(max-width:767px) and (max-height:700px){.wedding-book{width:min(88vw,calc(67svh * .70),350px)}.book-face .booklet-page h2{font-size:28px}.book-face>.booklet-page{padding:13% 10% 10%}.book-face .booklet-page>p:not(.eyebrow){font-size:16px;margin-bottom:7px}.book-face .book-detail{margin-top:4px;padding-top:4px}.book-face .book-detail h3{font-size:17px}.book-face .book-detail p{font-size:16px;line-height:1.18}.book-face .booklet-page blockquote{font-size:25px}.cover-content{padding:12% 10%}.cover-names{font-size:29px;margin:15px 0}.cover-content .book-cross{margin-bottom:12px}.cover-foot{margin-top:13px}.booklet-controls{bottom:43px!important}}
@media(prefers-reduced-motion:reduce){.wedding-book,.dove-carrier,.booklet-controls{display:none!important}}

/* Readable chapters and restrained paper depth. */
.book-face{border:0;outline:0;box-shadow:0 12px 24px #0003}
.book-cross svg,.cross svg{display:block;width:28px;height:39px;fill:currentColor;stroke:none;margin:auto}
.venue-map{display:inline-block;color:#634416;text-decoration:underline;text-underline-offset:4px;font-size:16px;line-height:1.4;margin:7px 0 10px;min-height:32px}
.film-ready .hero-note{display:block;color:#fff4dc;line-height:1.05;right:5%;bottom:16%;padding:18px 24px;background:radial-gradient(ellipse,#092016b0,transparent 75%);text-shadow:0 2px 10px #000,0 1px 2px #000;z-index:3}
.film-ready .story:after{background:linear-gradient(90deg,transparent 36%,#f6ecd8e6 53%,#f6ecd8f2 100%)!important}
.film-ready .story-copy{width:40%;max-width:650px;left:52%;top:24%;color:#352715}
.film-ready .story h2{white-space:normal;font-size:clamp(44px,4.5vw,76px);line-height:1.15;margin-bottom:30px}
.film-ready .story h2 .script{line-height:1.15;margin-left:0;margin-top:8px}
.film-ready .story-copy>p:not(.eyebrow){max-width:520px;font-size:clamp(18px,1.45vw,25px);line-height:1.55}
.film-ready .story-verse{display:none}
.film-ready .story .eyebrow{font-size:16px;color:#624721}
.dove-carrier{width:clamp(120px,12vw,210px);transform-style:preserve-3d;filter:drop-shadow(0 12px 13px #0005)}
@media(max-width:767px){
 .film-ready .hero-note{font-size:32px;padding:12px;bottom:12%;right:20px}
 .film-ready .story:after{background:linear-gradient(0deg,#f6ecd8 6%,#f6ecd8eb 65%,transparent 100%)!important}
 .film-ready .story-copy{left:28px;right:26px;width:auto;top:auto;bottom:14%;max-width:none}
 .film-ready .story h2{font-size:42px;margin-bottom:24px}
 .film-ready .story-copy>p:not(.eyebrow){font-size:18px;line-height:1.5}
 .dove-carrier{width:100px}
 .book-face .family-page{padding-top:12%;padding-bottom:10%}
 .book-face .family-page h2{font-size:29px;margin-bottom:8px}
 .book-face .family-page>p:not(.eyebrow){font-size:16px;margin-bottom:8px}
 .book-face .family-page .book-detail{margin-top:4px;padding-top:5px}
 .book-face .family-page .book-detail p{font-size:15px}
 .book-face .family-page .venue-map{font-size:15px;margin:4px 0;min-height:26px}
}
.book-face{background-size:107% 107%;box-shadow:none;filter:drop-shadow(0 10px 14px #0003)}
@media(min-width:768px){.film-ready .story-verse{display:block;right:7%;bottom:8%;width:38%;color:#604826}.film-ready .story-verse p{font-size:14px;line-height:1.5;margin-bottom:4px;letter-spacing:.08em}.film-ready .story-verse p br{display:none}.film-ready .story-verse>span{font-size:13px}}
/* A clear reading surface and a compact directions panel. */
.film-ready .hero-note{top:auto!important;bottom:17%;right:5%;transform:none;line-height:1.15;background:linear-gradient(100deg,transparent,#071b1299 30%,#071b12bb 75%,transparent);font-size:clamp(40px,4.2vw,72px)}
.film-ready .hero-note span{margin-top:0}.film-ready .hero-note i{margin-top:16px}
.film-ready .story-copy{position:absolute;z-index:4;top:23%;left:51%;width:43%;max-width:680px}
.film-ready .story h2{line-height:1.12}.film-ready .story h2 .script{font-size:1.25em;line-height:1.2;white-space:nowrap}
.film-ready .story:after{z-index:1;background:linear-gradient(90deg,transparent 30%,#f6ecd8f0 51%,#f6ecd8fa 100%)!important}
.film-ready .hero-content{z-index:2;text-shadow:0 2px 12px #0008}
.venue-detail{display:flex;align-items:center;justify-content:center;gap:12px;text-align:left}
.venue-qr-link{display:block;flex:none;line-height:0}.venue-qr-link img{display:block;width:100px;height:100px;max-width:none;background:white}
.venue-detail .venue-map{font-size:16px;line-height:1.3;margin:4px 0;min-height:28px}
.venue-detail .qr-caption{font-size:14px!important;line-height:1.3!important}
.invitation-paper>.venue-qr-link{width:max-content;margin:8px auto 20px}.invitation-paper>.venue-qr-link img{width:200px;height:200px}
.book-face{background-size:107% 107%;border:0;outline:0;box-shadow:none;filter:none}
.wedding-book{filter:drop-shadow(0 14px 18px #0003)}
.book-cross svg,.cross svg{width:26px;height:38px;min-width:26px;fill:currentColor;stroke:none;shape-rendering:geometricPrecision}
.film-ready .book-face .family-page{padding-top:10%;padding-bottom:10%}
.book-face .family-page h2{font-size:clamp(28px,2.5vw,38px);margin:5px 0 10px}
.book-face .family-page>p:not(.eyebrow){font-size:17px;line-height:1.3;margin-bottom:8px}
.book-face .family-page .book-detail{padding-top:6px;margin-top:6px}
@media(max-width:767px){
 .film-ready .hero-content{position:absolute}
 .film-ready .hero-note{font-size:32px;bottom:12%;right:18px}
 .film-ready .story-copy{position:absolute;top:auto;left:28px;right:26px;bottom:16%;width:auto}
 .film-ready .story:after{background:linear-gradient(0deg,#f6ecd8 8%,#f6ecd8f5 62%,#f6ecd800 100%)!important}
 .film-ready .story h2{font-size:40px;margin-bottom:20px}
 .film-ready .story-copy>p:not(.eyebrow){font-size:18px;line-height:1.45}
 .book-face .family-page .eyebrow{font-size:12px}
 .book-face .family-page h2{font-size:27px;line-height:1.05;margin-bottom:7px}
 .book-face .family-page>p:not(.eyebrow){font-size:16px;line-height:1.25;margin-bottom:6px}
 .book-face .family-page .book-detail h3{font-size:17px}
 .book-face .family-page .book-detail p{font-size:14px;line-height:1.2}
 .venue-qr-link img{width:86px;height:86px}.venue-detail{gap:8px}
 .book-face .family-page .venue-map{font-size:15px;line-height:1.2;margin:2px 0}
 .book-face .family-page .qr-caption{font-size:12px!important}
}
@media(max-height:700px) and (min-width:768px){.venue-qr-link img{width:82px;height:82px}.book-face .family-page>p:not(.eyebrow){font-size:16px}.book-face .family-page h2{font-size:27px}.film-ready .hero-note{font-size:42px;bottom:14%}.film-ready .story-copy{top:21%}.film-ready .story h2{font-size:40px;margin-bottom:14px}}
/* Keep the hinge in a true 3D context; no frame around the whole spread. */
.wedding-book{filter:none}.book-face{box-shadow:0 10px 18px #0002}
@media(max-width:767px){
 .wedding-book{width:min(90vw,calc(70svh * .70),420px)}
 .book-face .family-page{justify-content:flex-start;padding-top:10%;padding-bottom:10%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
 .book-face .family-page .page-number{display:none}
}
/* Restore the artwork's natural composition. */
.film-ready .hero-note{background:none;padding:0;transform:rotate(-9deg);font-size:clamp(38px,4vw,66px);line-height:1.05;bottom:17%;right:5%;text-shadow:0 2px 5px #001409b3}
.film-ready .hero-note span{margin-top:9px}
.film-ready .story:after{background:none!important}
.film-ready .story-copy{left:58%;width:28%;max-width:540px;top:25%;color:#352715;text-shadow:0 1px 1px #fff4dd55}
.film-ready .story h2{font-size:clamp(42px,4vw,67px);line-height:1.1;margin-bottom:26px}
.film-ready .story h2 .script{font-size:1.3em;line-height:1.1;margin-top:10px;margin-left:8px}
.film-ready .story-copy>p:not(.eyebrow){font-size:clamp(18px,1.25vw,23px);line-height:1.5}
.film-ready .story-verse{display:block;right:3.2%;top:auto;bottom:13%;width:12%;color:#604826;text-align:center}
.film-ready .story-verse p{font:14px/1.65 Nimbus,Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;margin-bottom:15px}
.film-ready .story-verse p br{display:initial}
.film-ready .story-verse>span{font-size:14px;letter-spacing:.03em}
.venue-qr-link img{background:transparent!important}
@media(min-width:768px) and (max-width:1200px){.film-ready .story-copy{left:54%;width:31%}.film-ready .story h2{font-size:42px}.film-ready .story-verse{right:1%;width:13%}.film-ready .story-verse p{font-size:12px;letter-spacing:.1em}.film-ready .story-verse>span{font-size:12px}}
@media(max-width:767px){
 .film-ready .hero-note{font-size:32px;bottom:12%;right:24px;background:none;padding:0}
 .film-ready .story-copy{left:29px;right:24px;width:auto;top:auto;bottom:15%;max-width:none}
 .film-ready .story h2{font-size:40px}.film-ready .story-copy>p:not(.eyebrow){font-size:18px}
 .film-ready .story-verse{display:none}
}
