/* V4: full-strength continuous textile composition with protected text zones. */
.invitation{--ink:#69431f;--gold:#a37b42;color:var(--ink)}
.invitation::before{display:none}
.continuous-fabric{z-index:-1;opacity:1}
.continuous-fabric img{position:absolute;inset:0;object-fit:fill;width:100%;height:100%;opacity:1}
.reading{width:62%}
.opening{aspect-ratio:auto;height:900px}
.opening-copy{top:110px;left:19%;width:62%}
.opening-art{inset:auto;bottom:65px;left:19%;width:62%;height:260px;object-fit:cover;object-position:50% 72%;mask-image:none;border-radius:180px 180px 8px 8px;border:1px solid #bc9a66}
.opening h1{font-size:53px;line-height:1.02;font-weight:500;margin-top:24px}
.opening .faith{font-size:37px;margin-bottom:20px}
.opening .eyebrow{font-size:11px}.hashtag{font-size:10px;margin-bottom:15px}
.opening-subtitle{font-size:25px}.hero-date{font-size:21px}
.opening .occasion{margin-top:18px}.open-link{background:#9d773f;color:#fffaf1;border-color:#9d773f;min-height:44px;margin-top:5px}
.scroll-hint{bottom:10px;font-size:19px;margin:0;color:#69431f;text-shadow:none}
.family{padding:55px 0 65px}
.family>.soft-line:first-child{font-size:22px}
.host-name{font-size:41px;line-height:1.06;font-weight:500;text-transform:uppercase;font-variant:normal;letter-spacing:-.025em;margin:24px 0 12px}
.lineage{font-size:19px;line-height:1.45}.joining{margin-top:28px;font-size:24px}
.host-name:not(:first-of-type){padding-top:25px;border-top:1px solid #b99a6755}
.family-names{font-size:24px;font-weight:500;line-height:1.25;text-transform:uppercase;margin:18px 0 8px}
.invitation-words{font-size:21px;line-height:1.4}
.family *::before,.couple::before,.closing::before,.countdown::before,.paath-days::before,.hero-date::before,.occasion::before{display:none!important}
.programme{padding:0 0 45px}.programme h2{font-size:41px}.programme .soft-line{font-size:23px}
.paath-days{margin:26px -2%}.paath-days h3{font-size:24px}.paath-days time strong{font-size:39px}
.date-section{width:73%;padding:45px 9% 48px;background:url('assets/calendar-paper.png') center/100% 100% no-repeat;margin:15px auto 50px}
.date-section .soft-line{font-size:22px}.date-section h2{font-size:30px;letter-spacing:.03em;margin:20px 0}
.month-grid{gap:4px 0;margin-bottom:18px}.month-day{font-size:23px}.weekday{font-size:9px;padding-bottom:8px}.date-section .eyebrow{font-size:8px}.date-section .lunch-time{font-size:18px;line-height:1.4}
.month-day.chosen{background:#a78043;box-shadow:none}
.scratch-section{width:64%;padding:5px 0 50px}.scratch-section h2{font-size:41px}.scratch-card{height:255px;background:#f9f1e0;border-radius:140px 140px 5px 5px}
.venue{padding:15px 0 30px}.venue .rule:first-child{display:none}.venue .soft-line{font-size:28px;font-style:italic}.venue h2{font-size:52px;text-transform:uppercase;margin-bottom:24px}
.venue-photo{display:block;width:100%;height:230px;object-fit:cover;border-radius:150px 150px 4px 4px;border:1px solid #b99a67}
.venue-name{font-size:34px;font-weight:500;text-transform:uppercase;line-height:1.05;margin-top:26px}.venue-city{font-size:11px}.venue-time{font-size:21px}
.venue-map{border-radius:6px;height:220px;margin:20px 0}
.countdown-section{width:68%;padding-bottom:55px}.countdown-section>.soft-line{font-size:28px}.countdown{background:#eadcc455;border:1px solid #c4ad7e55;border-radius:6px;padding:17px 6px}.countdown strong{font-size:35px}.countdown span{font-size:8px}
.couples{width:65%;padding-top:25px}.couples>.soft-line{font-size:25px}.couple-pair{gap:22px}.couple h2{font-size:32px}.couple h2 > span:not(.glow-word){font-size:9px}.wedding-date{font-size:10px}.wedding-place{font-size:8px}
.closing{padding:45px 0 5px}.closing h2{font-size:46px}.closing>p{font-size:22px}.closing-tag{margin-top:22px!important}
.woven-infinity{height:780px;pointer-events:none}
.toolbar{z-index:41}.toolbar>a{font-size:10px}.toolbar>button{width:46px;height:46px;padding:11px;border-radius:0;background:#faf4e8;border:1px solid #b99a67;display:flex;flex-direction:column;justify-content:center;gap:5px}
#menu-toggle span{display:block;width:23px;height:1px;background:#76532a;transition:transform .3s,opacity .3s}
#menu-toggle[aria-expanded=true] span:first-child{transform:translateY(6px) rotate(45deg)}#menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}#menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-6px) rotate(-45deg)}
.navigation{position:fixed;inset:0 0 0 auto;width:min(100vw,560px);height:100dvh;padding:90px 50px 35px;background:#f8f1e5;box-shadow:none;border:0;transform:translateX(calc(100% + 105px));transition:transform .8s cubic-bezier(.76,0,.24,1);z-index:40;display:flex;flex-direction:column;overflow:visible}
.navigation.open{transform:translateX(0)}.menu-curve{position:absolute;right:calc(100% - 1px);top:0;width:100px;height:100%;fill:#f8f1e5;transform:scaleX(1);transform-origin:right;transition:transform 1s cubic-bezier(.76,0,.24,1)}.navigation.open .menu-curve{transform:scaleX(.03)}
.menu-label{font:10px Manrope,sans-serif;text-transform:uppercase;letter-spacing:.15em;border-bottom:1px solid #a8885a60;padding-bottom:22px}.menu-heading{font:italic 31px 'Cormorant Garamond';margin:15px 0 20px}
.menu-links{overflow-y:auto}.navigation a{display:flex;gap:15px;align-items:baseline;padding:21px 0;border-bottom:1px solid #a8885a50;font-size:30px;line-height:1.15}.navigation a small{font:11px Manrope;color:#a17f54}.navigation a span{transition:transform .35s}.navigation a:hover span{transform:translateX(10px);color:#a75467}.menu-footer{margin-top:auto;padding-top:30px;font-size:20px;font-style:italic}
.menu-backdrop{position:fixed;inset:0;border:0;background:#392c2355;z-index:39;opacity:0;transition:opacity .8s}.menu-backdrop.open{opacity:1}.menu-open{overflow:hidden}
.petal-shower{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:35}.rose-particle{position:absolute;top:-60px;width:var(--size);height:var(--size);object-fit:contain;animation:rose-fall var(--duration) linear forwards;animation-delay:var(--delay)}
@keyframes rose-fall{0%{transform:translate3d(0,-50px,0) rotate(0);opacity:0}8%{opacity:.85}85%{opacity:.8}100%{transform:translate3d(var(--drift),110vh,0) rotate(var(--turn));opacity:0}}
.scratch-spark{position:absolute;pointer-events:none;width:5px;height:5px;border-radius:50%;background:#fff7bd;box-shadow:0 0 8px #c59136;z-index:4;animation:spark-fade .7s ease-out forwards}
@keyframes spark-fade{to{transform:translate(var(--sx),var(--sy)) scale(0);opacity:0}}
.motion-ready .reveal{filter:none;transform:translateY(18px);transition-duration:.7s,.9s,.7s}
@media(max-width:480px){.opening{height:740px}.opening-copy{top:90px;left:19%;width:62%}.opening h1{font-size:35px;margin-top:18px}.opening .faith{font-size:29px;margin-bottom:14px}.opening .eyebrow{font-size:9px}.opening-subtitle{font-size:21px}.opening .occasion{font-size:8px;margin-top:15px}.hero-date{font-size:18px}.opening-art{height:205px;bottom:50px}.scroll-hint{font-size:16px;bottom:10px}.family{padding-top:38px}.reading{width:64%}.host-name{font-size:31px}.lineage{font-size:17px}.family-names{font-size:21px}.invitation-words{font-size:19px}.programme h2{font-size:32px}.programme .soft-line{font-size:20px}.paath-days h3{font-size:20px}.paath-days time strong{font-size:33px}.paath-days time span,.paath-days p{font-size:8px}.date-section{width:77%;padding:38px 8% 42px}.date-section .soft-line{font-size:19px}.date-section h2{font-size:25px}.weekday{font-size:8px}.month-day{font-size:21px}.scratch-section{width:66%}.scratch-section h2{font-size:35px}.scratch-card{height:225px}.venue-photo{height:190px}.venue h2{font-size:43px}.venue-name{font-size:27px}.venue-time{font-size:18px}.venue-map{height:190px}.countdown-section{width:73%}.countdown strong{font-size:28px}.countdown span{font-size:7px}.couples{width:70%}.couples>.soft-line{font-size:21px}.couple h2{font-size:26px}.couple h2 > span:not(.glow-word){font-size:8px}.couple-pair{gap:12px}.wedding-date{font-size:8px}.closing>p{font-size:20px}.woven-infinity{height:650px}.navigation{padding:90px 35px 28px}.navigation a{font-size:27px;padding:18px 0}.menu-heading{font-size:28px}.menu-footer{font-size:18px}}
@media(max-width:360px){.host-name{font-size:27px}.opening h1{font-size:31px}.opening-subtitle{font-size:18px}.couple h2{font-size:23px}.date-section h2{font-size:23px}.month-day{font-size:19px}.weekday{font-size:7px}.lineage{font-size:16px}}
@media(prefers-reduced-motion:reduce){.navigation,.menu-curve,.menu-backdrop,.navigation a span{transition:none}.petal-shower{display:none}.opening-art{transform:none!important}}
/* Keep the joined infinity at its natural proportions below all wording. The two regions use adjoining portions of the SAME artwork. */
.invitation{--woven-end: min(435.6px,66vw)}
.continuous-fabric{bottom:var(--woven-end);overflow:hidden}
.continuous-fabric img{height:128.2052%;max-height:none}
.woven-infinity{height:var(--woven-end);background:url('assets/continuous-silk-v4.png') center bottom/100% auto no-repeat}
.closing{padding-bottom:55px}
@media(max-width:480px){.woven-infinity{height:var(--woven-end)}.closing{padding-bottom:45px}}
