@font-face{font-family:Estate Display;src:url("../blush-atelier/fonts/PlayfairDisplay.038aec929d8d.ttf");font-display:swap}@font-face{font-family:Estate Body;src:url("../fonts/cormorantgaramond.618588c60263.ttf");font-display:swap}@font-face{font-family:Estate Script;src:url("../blush-atelier/fonts/GreatVibes-Regular.d1358c495233.ttf");font-display:swap}
:root{--paper:#f8f4ec;--ink:#59452e;--gold:#b59b6b;--olive:#6b6f4e;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:#e7dfd0;color:var(--ink);font:19px/1.5 Estate Body,Georgia,serif}h1,h2,h3,p,figure{margin:0}h2{font:400 26px/1.25 Estate Display,Georgia,serif;text-transform:uppercase;letter-spacing:1.5px;text-wrap:balance;max-width:320px;margin:0 auto 25px;overflow-wrap:anywhere}a{color:inherit}button,input,select{font:inherit}a,button,input,select{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--olive);outline-offset:4px}.estate-invitation{max-width:520px;margin:auto;background:var(--paper);overflow:hidden;box-shadow:0 0 80px #453a2920}.estate-section{position:relative;text-align:center;background:radial-gradient(ellipse at 0 0,#d8c9a026,transparent 65%),var(--paper);isolation:isolate}.estate-copy{padding:36px 38px}.estate-copy p+p{margin-top:20px}.estate-eyebrow{text-transform:uppercase;font-size:13px;letter-spacing:2px;line-height:1.5}.estate-small{font-size:13px;padding:0 20px}.estate-ornament{display:flex;justify-content:center;align-items:center;gap:8px;color:var(--gold);margin:24px auto;font-size:24px;height:15px}.estate-ornament span{width:42px;height:1px;background:var(--gold)}.estate-monogram{font:15px Estate Display,serif;letter-spacing:6px;color:var(--olive);padding:14px}.estate-hero{min-height:760px;padding:15px 35px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center}.estate-hero:before,.estate-text:after,.estate-gallery:after{content:'';position:absolute;width:170px;height:300px;background:url("assets/olive.4cb112f98ff6.webp") center/contain no-repeat;pointer-events:none;z-index:-1;opacity:.65;right:-80px;top:-45px;transform:rotate(-35deg)}.estate-arch{width:100%;max-width:340px;border:1px solid var(--gold);border-radius:180px 180px 0 0;padding:9px;position:relative;outline:1px solid #b59b6b70;outline-offset:5px;margin:10px 0 27px}.estate-arch .estate-eyebrow{position:absolute;top:14px;left:20%;width:60%;z-index:1;color:#fff;text-shadow:0 1px 6px #000;background:linear-gradient(#302c1d60,transparent);border-radius:100%;padding:15px 20px}.estate-arch img{width:100%;height:330px;object-fit:cover;display:block;border-radius:170px 170px 0 0}.estate-names{font:400 36px/1.15 Estate Display,Georgia,serif;letter-spacing:3px;text-transform:uppercase;overflow-wrap:anywhere;max-width:100%}.estate-names span{display:block}.estate-names em{display:block;font:30px/.8 Estate Script,cursive;text-transform:none;letter-spacing:0;color:#ad8c52;margin:5px}.estate-hero time{font-size:17px;letter-spacing:2px;text-transform:uppercase;margin-top:22px}.estate-hero .estate-ornament{margin-bottom:0}.estate-photo-head{width:100%;height:280px;object-fit:cover;display:block;mask-image:linear-gradient(#000 85%,transparent)}.estate-text .estate-copy{padding-top:15px;padding-bottom:70px}.estate-text h2{font-size:25px}.estate-text:after{top:auto;bottom:-60px;right:-35px;transform:rotate(65deg);width:230px}.estate-seal{width:82px;height:82px;display:grid;place-items:center;margin:40px auto 0;background:radial-gradient(circle at 30% 20%,#b69459,#765025);border:6px double #bd9b65;border-radius:48% 45% 49% 44%;box-shadow:2px 4px 8px #54331440,inset 0 0 0 2px #775728;color:#ead8b4;font:23px Estate Script,cursive;transform:rotate(-9deg)}.estate-date-copy{padding:10px 30px 45px}.estate-date h2{font-size:16px;max-width:180px;letter-spacing:2px;margin-bottom:15px}.estate-date .estate-photo-head{height:260px;object-position:center 30%}.estate-big-date{display:flex;flex-direction:column;font:24px/1.25 Estate Display,serif;text-transform:uppercase;letter-spacing:3px}.estate-big-date strong{font-size:53px;font-weight:400}.estate-calendar{margin:28px auto 0;border:1px solid #c4aa7a;border-radius:12px;padding:17px 12px;max-width:350px}.estate-calendar p{font-size:15px;letter-spacing:2px;text-transform:uppercase}.estate-calendar table{width:100%;margin-top:15px;font-size:14px}.estate-calendar th{font-size:11px;font-weight:400}.estate-calendar td{height:32px}.estate-calendar td span{display:inline-grid;place-items:center;width:29px;height:29px;border-radius:50%}.is-event-day{background:var(--gold);color:white;box-shadow:0 2px 4px #80683b40}.estate-pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;border:1px solid var(--gold);padding:12px 20px;text-transform:uppercase;font-size:12px;letter-spacing:1px;border-radius:5px;margin-top:22px}.estate-pill svg{width:16px;height:16px;fill:none;stroke:currentColor}.estate-schedule{padding:55px 34px 25px}.estate-schedule h2{max-width:210px;margin-bottom:40px}.estate-timeline{list-style:none;max-width:315px;padding:0;margin:auto;text-align:left;position:relative}.estate-timeline:before{content:'';position:absolute;left:-65px;top:-20px;width:150px;height:100%;background:url("assets/olive.4cb112f98ff6.webp") left center/contain no-repeat;opacity:.8;z-index:-1}.estate-timeline li{display:grid;grid-template-columns:75px minmax(0,1fr);gap:24px;min-height:125px;align-items:start}.estate-timeline-icon{border:1px solid #b59b6b88;width:66px;height:66px;border-radius:50%;display:grid;place-items:center;background:#f8f4ecd9;color:var(--gold)}.estate-timeline-icon svg{height:37px;width:37px;stroke:currentColor;fill:none;stroke-width:1}.estate-timeline time{font-size:24px}.estate-timeline h3{font-weight:400;font-size:18px;line-height:1.25}.estate-timeline p{font-size:16px;line-height:1.2;color:#82735c;margin-top:3px}.estate-location .estate-copy{padding-top:15px;padding-bottom:22px}.estate-location h2{font-size:25px;margin-bottom:15px}.estate-address{margin-top:18px;white-space:pre-line}.estate-location-bottom{width:100%;height:220px;object-fit:cover;display:block}.estate-dress_code{padding-bottom:35px}.estate-dress_code .estate-copy{padding-bottom:22px}.estate-outfit{display:block;width:100%;height:350px;object-fit:cover;object-position:center 38%}.estate-outfits{display:flex;justify-content:center;gap:8px}.estate-outfits img{max-width:50%;height:330px;object-fit:contain}.estate-colors{list-style:none;display:flex;justify-content:center;gap:13px;padding:0;margin:25px 15px 10px;flex-wrap:wrap}.estate-colors li{width:48px;height:48px;border-radius:50%;box-shadow:inset 0 0 0 1px #46352212}.estate-dress_code>.estate-eyebrow{margin-top:15px}.estate-gallery{padding:35px 0 50px}.estate-gallery h2{max-width:240px}.estate-gallery:after{top:0;right:-90px;opacity:.5}.estate-slides{display:flex;gap:15px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 40px;scrollbar-width:none}.estate-slides::-webkit-scrollbar{display:none}.estate-slides figure{flex:0 0 100%;scroll-snap-align:center}.estate-slides img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:7px;display:block}.estate-gallery-stage{position:relative}.estate-gallery-controls{position:absolute;top:45%;left:10px;right:10px;display:flex;justify-content:space-between;pointer-events:none}.estate-gallery-controls button{pointer-events:auto;border:1px solid #c4aa7a55;border-radius:50%;height:42px;width:42px;background:#faf5e9e8;color:var(--ink);font-size:28px;cursor:pointer}.estate-gallery-count{display:block;font-size:15px;letter-spacing:5px;color:var(--gold);margin:14px}.estate-gallery-caption{font-style:italic;max-width:250px;margin:auto}.estate-rsvp .estate-copy{padding:45px 28px 20px}.estate-rsvp h2{max-width:270px}.estate-rsvp-form{text-align:left;margin-top:25px}.estate-field{margin-bottom:15px}.estate-field>label{display:block;font-size:16px;margin-bottom:6px}.estate-field input:not([type=radio]),.estate-field select{width:100%;padding:12px;border:1px solid #c6b99f;border-radius:6px;background:#fff4;color:var(--ink)}.estate-field #id_attending{display:grid;gap:10px}.estate-field #id_attending label{display:flex;align-items:center;gap:12px;border:1px solid var(--olive);border-radius:40px;padding:12px 17px;cursor:pointer}.estate-field #id_attending label:has(input:checked){background:var(--olive);color:white}.estate-field input[type=radio]{appearance:none;border:1px solid currentColor;width:24px;height:24px;border-radius:50%;margin:0;display:grid;place-items:center;flex-shrink:0}.estate-field input[type=radio]:checked{background:var(--paper);color:var(--olive)}.estate-field input[type=radio]:checked:after{content:'✓';font-size:16px}.estate-rsvp-form button{width:100%;padding:14px;border:0;background:var(--olive);color:white;border-radius:28px;cursor:pointer}.estate-rsvp-form button:disabled{opacity:.6;cursor:default}.estate-rsvp-form>.estate-small{text-align:center;margin-top:15px}.estate-rsvp-photo{width:100%;height:200px;object-fit:cover;display:block;mask-image:linear-gradient(transparent,#000 30%)}.errorlist{color:#9b342d;font-size:16px}.estate-full-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.estate-section.estate-countdown{min-height:760px;background:none;display:flex;justify-content:center;align-items:center;padding:45px 25px;color:#f8f4ec}.estate-section.estate-countdown:after{content:'';position:absolute;inset:0;background:linear-gradient(#151a1640,#151a167a,#151a1630);z-index:-1}.estate-timer-copy{width:100%}.estate-countdown h2{font-size:20px;letter-spacing:4px;max-width:240px;margin-bottom:45px}.estate-countdown[data-countdown]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:20px 0;border-block:1px solid #e0d2b37a}.estate-countdown[data-countdown]>div+div{border-left:1px solid #e0d2b37a}.estate-countdown strong{font:36px/1.2 Estate Display,serif;font-weight:400}.estate-countdown span{display:block;text-transform:uppercase;font-size:12px;letter-spacing:1px}.estate-countdown .estate-monogram{color:#eee1bc;margin-top:55px}.estate-countdown-message{margin-top:20px}.estate-finale{height:780px;background:none;padding:170px 40px 35px;display:flex;align-items:center;flex-direction:column;justify-content:space-between}.estate-finale h2{max-width:250px;text-shadow:0 0 12px #fff,0 0 25px #fff;background:#f8f4ec55;padding:12px}.estate-final-names{background:#f8f4eceb;padding:22px 35px;width:calc(100% + 80px);font-size:32px}.estate-cover-preview .estate-invitation{max-width:none}.estate-cover-preview .estate-hero{height:100svh;min-height:0}.estate-cover-preview .estate-arch img{height:43svh}.estate-cover-preview .estate-names{font-size:clamp(26px,8vw,40px)}.estate-cover-preview .estate-hero{padding:10px 35px}.estate-cover-preview .estate-monogram{padding:7px}.estate-cover-preview .estate-hero time{margin-top:15px}
@media(max-width:360px){body{font-size:18px}.estate-copy{padding-inline:28px}.estate-names{font-size:31px}.estate-hero{padding-inline:28px}.estate-arch img{height:300px}.estate-timeline li{gap:16px;grid-template-columns:66px 1fr}.estate-schedule{padding-inline:28px}.estate-countdown strong{font-size:29px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* Keep the entire outfit photo visible, including heads and shoes. */
.estate-outfit{height:auto;aspect-ratio:auto;object-fit:contain}
.estate-hero .estate-arch .estate-eyebrow{position:static;color:var(--ink);background:none;text-shadow:none;width:auto;padding:12px 60px 15px;margin:0;font-size:12px;line-height:1.4}
.estate-arch{padding-top:17px}.estate-arch img{border-radius:150px 150px 0 0;height:300px}.estate-cover-preview .estate-arch img{height:38svh}
.estate-final-names{max-width:none}.estate-finale h2{background:transparent}
/* October refinement: enlarged framed portrait and one evening ending. */
.estate-hero{padding-top:32px}.estate-arch{padding:8px;margin-top:0}.estate-arch img{height:385px}.estate-cover-preview .estate-arch img{height:53svh}
.estate-seal{width:112px;height:112px;font:32px/1 Estate Display,serif;letter-spacing:1px;border-width:8px;transform:rotate(-6deg)}
.estate-venue-title h2{margin:12px auto 0}.estate-venue-photo{display:block;width:100%;height:auto}.estate-location .estate-copy{padding:30px}.estate-location .estate-address{margin:0}
.estate-dress_code .estate-colors{margin-top:0}.estate-dress_code .estate-small{margin-bottom:24px}
.estate-rsvp .estate-copy{padding-bottom:55px}.estate-farewell{font:400 43px/1.25 Estate Body,Georgia,serif;color:#eed9ac;text-shadow:0 2px 14px #15170e;margin:55px auto 0;max-width:330px;text-wrap:balance}
.estate-programme{position:relative;max-width:315px;margin:auto}.estate-vine{position:absolute;left:-26px;top:0;bottom:0;width:110px;background:url("assets/programme-vine.da9b1ce241da.svg?v=3") center/100% 100% no-repeat;pointer-events:none;z-index:-1}.estate-timeline:before{display:none}.estate-timeline li{grid-template-columns:75px minmax(0,1fr)}.estate-timeline-icon{width:60px;height:60px;margin-top:8px;background:#f8f4ecbb}.estate-scroll-seal{position:absolute;z-index:3;left:-25px;top:0;width:42px;height:42px;display:grid;place-items:center;border:5px double #c0a36e;background:radial-gradient(circle at 30% 20%,#b69459,#765025);color:#f5e3bd;border-radius:45% 48% 44% 48%;box-shadow:1px 3px 6px #54331440;cursor:grab;touch-action:none;font-size:21px;transform:translateY(-50%)}.estate-scroll-seal:active{cursor:grabbing}
@media(max-width:360px){.estate-arch img{height:350px}.estate-farewell{font-size:37px}}

/* Botanical rhythm: edge ornaments leave the reading column unobstructed. */
.estate-section:not(.estate-countdown):not(.estate-hero){background:var(--paper)}
.estate-text:after{width:190px;height:240px;right:-65px;bottom:-30px;opacity:.8;transform:rotate(40deg)}
.estate-date:after,.estate-location:after,.estate-dress_code:before,.estate-rsvp:before{content:"";position:absolute;width:150px;height:250px;background:url("assets/olive.4cb112f98ff6.webp") center/contain no-repeat;pointer-events:none;z-index:-1;opacity:.75}
.estate-date:after{left:-95px;bottom:5px;transform:rotate(-35deg)}
.estate-location:after{right:-105px;bottom:-25px;transform:rotate(30deg)}
.estate-dress_code:before{left:-105px;top:12px;transform:rotate(-25deg)}
.estate-gallery:after{right:-110px;top:-8px;width:170px;height:230px;opacity:.8;transform:rotate(28deg)}
.estate-rsvp:before{left:-110px;top:-30px;transform:rotate(-30deg)}
/* The caption belongs to the outfit image, with no empty band below it. */
.estate-dress_code{padding-bottom:0}
.estate-dress_code>.estate-outfit-caption{margin:0 24px 18px;color:var(--olive)}
.estate-dress_code .estate-small{margin-bottom:15px}
.estate-gallery{padding-top:24px}
.estate-gallery>.estate-ornament:first-child{margin-top:4px}
/* A dedicated botanical lane, solid medallions and a separate movable seal. */
.estate-schedule{padding-inline:28px}
.estate-programme{padding-left:35px;max-width:340px}
.estate-vine{left:-35px;width:158px;opacity:.95}
.estate-timeline li{grid-template-columns:62px minmax(0,1fr);gap:20px;min-height:132px}
.estate-timeline-icon{position:relative;background:var(--paper);box-shadow:0 0 0 7px var(--paper),0 2px 10px #8c714719;border-color:#b59b6baa}
.estate-scroll-seal{width:34px;height:34px;font-size:16px;border-width:4px}
@media(max-width:360px){.estate-schedule{padding-inline:20px}.estate-programme{padding-left:32px}.estate-timeline li{gap:15px;grid-template-columns:60px minmax(0,1fr)}}

/* Approved moodboard: warm ivory, sparse olive framing and a winding stem. */
:root{--paper:#f5eee3}
.estate-section:not(.estate-countdown){background:var(--paper)}
.estate-hero:before{width:190px;height:245px;right:-69px;top:-50px;transform:rotate(-43deg);opacity:.72}
.estate-hero:after{content:"";position:absolute;width:130px;height:210px;left:-58px;top:290px;background:url("assets/olive.4cb112f98ff6.webp") center/contain no-repeat;transform:rotate(37deg);opacity:.8;z-index:-1;pointer-events:none}
.estate-text:after{width:300px;height:180px;right:-35px;bottom:-8px;transform:rotate(61deg);opacity:.92}
.estate-date:after{width:120px;height:195px;left:-82px;bottom:8px;transform:rotate(-32deg);opacity:.28}
.estate-location:after{width:135px;height:220px;right:-92px;bottom:-10px;transform:rotate(32deg);opacity:.6}
.estate-dress_code:before,.estate-rsvp:before{content:none}
.estate-gallery:after{width:210px;height:265px;right:-85px;top:-55px;transform:rotate(-45deg);opacity:.95}
.estate-gallery:before{content:"";position:absolute;width:155px;height:245px;left:-60px;bottom:-20px;background:url("assets/olive.4cb112f98ff6.webp") center/contain no-repeat;transform:rotate(22deg);opacity:.9;pointer-events:none;z-index:-1}
.estate-vine{left:-26px;width:150px;background-image:url("assets/programme-vine.da9b1ce241da.svg?v=5");opacity:1}
.estate-timeline-icon{box-shadow:0 0 0 3px var(--paper);background:var(--paper)}
.estate-scroll-seal{width:54px;height:54px;border:0;border-radius:44% 49% 43% 48%;background:radial-gradient(ellipse at 35% 25%,#af844b 0,#8c612f 48%,#67431f 76%,#a57c43 84%,#805325 100%);box-shadow:0 3px 5px #51341945,inset 0 0 0 2px #ad8550,inset 0 0 0 5px #785026,inset 0 0 0 6px #c19b61;color:#d4b783}
.estate-scroll-seal:before{content:"";position:absolute;inset:9px;border:1px solid #c19b6180;border-radius:50%;box-shadow:0 0 0 1px #54391d50}
.estate-scroll-seal span{position:relative;font:italic 16px/1 Estate Display,Georgia,serif;letter-spacing:-1px;text-shadow:0 1px #4b311c;transform:rotate(-12deg);max-width:40px;overflow:hidden}

.estate-schedule:before{content:"";position:absolute;top:5px;right:24%;width:56px;height:65px;background:url("assets/olive.4cb112f98ff6.webp") center/contain no-repeat;transform:rotate(-48deg);pointer-events:none;opacity:.9}
.estate-text:before{content:"";position:absolute;width:240px;height:160px;left:15px;bottom:-10px;background:url("assets/olive.4cb112f98ff6.webp") center/contain no-repeat;transform:rotate(-55deg);opacity:.85;pointer-events:none;z-index:-1}
.estate-scroll-seal{width:60px;height:60px;background:url("assets/wax-seal.6eca3f1e57c5.svg") center/contain no-repeat;box-shadow:none;filter:drop-shadow(1px 3px 2px #5b391c40);border-radius:0}
.estate-scroll-seal:before{content:none}
.estate-scroll-seal span{font-size:18px;padding-right:4px;color:#d8b779}
.estate-seal{background:url("assets/wax-seal.6eca3f1e57c5.svg") center/contain no-repeat;border:0;border-radius:0;box-shadow:none;filter:drop-shadow(1px 3px 2px #5b391c40);color:#dbbc83;text-shadow:0 1px #573719;transform:rotate(-6deg)}

/* Complete spiral artwork, with internal SVG bleed rather than clipped leaves. */
.estate-vine{left:-20px;width:145px;top:-40px;bottom:-50px;background-image:url("assets/programme-vine.da9b1ce241da.svg?v=6")}
.estate-schedule:before{width:210px;height:265px;right:-85px;top:-70px;transform:rotate(-45deg);z-index:-1;opacity:.95}
.estate-location:after{width:205px;height:265px;right:-82px;bottom:5px;transform:rotate(27deg);z-index:1;opacity:.9}
.estate-location .estate-copy{position:relative;z-index:2}
.estate-seal{background-image:url("assets/wax-seal-plain.737105111d95.svg");font-size:24px;letter-spacing:0;transform:none;padding:0}
.estate-seal span{display:block;max-width:66px;line-height:1.1;overflow-wrap:anywhere;text-align:center}
.estate-hero-crest{display:block;width:52px;height:66px;object-fit:contain;margin:-5px auto 22px;transform:rotate(-24deg)}
.estate-cover-preview .estate-hero-crest{width:34px;height:43px;margin:0 auto 12px}

.estate-scroll-seal{background-image:url("assets/wax-seal-plain.737105111d95.svg")}
.estate-scroll-seal span{padding:0;transform:none;display:grid;place-items:center;width:30px;height:30px;overflow:visible}
.estate-seal-emblem{display:block;width:27px;height:27px;fill:none;stroke:#cfaa6d;stroke-width:.9;filter:drop-shadow(0 1px .3px #4b2f16)}
.estate-seal-emblem circle{fill:#cfaa6d;stroke:none}

/* The venue bough is rooted in the right edge at both ends. */
.estate-location:after{width:112px;height:auto;top:150px;bottom:105px;right:-1px;transform:none;background:url("assets/location-bough.76c72d7cf3c0.svg?v=2") center/100% 100% no-repeat;opacity:.95}

/* Venue photography stays free of botanical overlays. */
.estate-location:before,.estate-location:after{content:none}
