/* Garden stationery: the final chapters of our invitation. */
.celebrations-section{background:radial-gradient(ellipse at 0 35%,#e6d8bc30,transparent 45%),radial-gradient(ellipse at 100% 80%,#eed7d52b,transparent 40%),#fffbf3}
.celebrations-section .section-heading:after{content:'♡';display:block;color:#b08b55;font:23px var(--serif);margin:23px auto 0;background:linear-gradient(90deg,transparent,#b08b5555,transparent) center/180px 1px no-repeat;text-shadow:0 0 10px #fffbf3,0 0 8px #fffbf3}
.event-grid{gap:36px}
.event-card{border-color:var(--line);border-radius:150px 150px 24px 24px;background:linear-gradient(115deg,#fffdf6,var(--soft) 280%);box-shadow:0 3px 0 #f0e7d5,0 22px 45px #66503714}
.event-card:after{inset:8px;border-radius:144px 144px 18px 18px;opacity:.55}
.event-artwork{height:172px;background:radial-gradient(ellipse at 50% 70%,#fffdf6aa,transparent 70%),var(--soft)}
.event-artwork:after{content:'';position:absolute;inset:12px 14px -25px;border:1px solid var(--line);border-radius:140px 140px 0 0;opacity:.5;pointer-events:none}
.event-arch{height:143px;width:150px;border-radius:100px 100px 0 0;bottom:-10px;background:linear-gradient(#ffffff40,transparent);box-shadow:0 0 0 5px #fff9eb77,0 0 0 6px #bfaa7d44}
.ritual-motif{width:70px;height:70px;top:57px;filter:drop-shadow(0 2px 1px #fff9eb)}
.event-number{left:32px;top:62px;font-size:16px}
.event-floral{width:151px;height:143px;bottom:-20px;opacity:1}.floral-left{left:-31px}.floral-right{right:-31px}
.event-body{padding:27px 30px 31px}
.event-body>.eyebrow{font-size:8px;letter-spacing:.17em;margin-top:0}
.event-card h3{font-size:58px;margin:13px 0 15px;line-height:1.05}
.event-body .event-description{font-size:17px;line-height:1.65;color:#89735e}
.event-palette{position:relative;margin-top:19px;font-size:9px;background:linear-gradient(110deg,#fffaf1,var(--soft));border-color:var(--line);padding:7px 16px;box-shadow:0 3px 8px #8b694d09}
.event-information{padding:19px 17px;margin-top:24px;border-color:var(--line);background:#fffcf4;border-radius:16px;gap:0;box-shadow:inset 0 0 0 4px #fbf6eb,0 5px 15px #7e694508}
.event-info-row{gap:11px;padding:0 0 15px}.event-info-row+.event-info-row{padding:15px 0 0;border-top:1px dashed #bda27655}
.event-info-row>svg{box-sizing:content-box;background:var(--soft);border:1px solid #bda27633;border-radius:50%;padding:9px;width:17px;height:17px;margin-top:0;flex-shrink:0}
.event-label{color:var(--accent);font-size:7px;letter-spacing:.16em}.event-info-row p{font-size:17px;margin:4px 0}.event-card .event-info-row small{font-size:10px;color:#938069;line-height:1.6}
.directions-button{background:linear-gradient(120deg,var(--accent),var(--ink));border-radius:30px;min-height:49px;font-size:12px;box-shadow:0 5px 0 #fffdf344 inset,0 6px 13px #63442317;margin-top:22px;letter-spacing:.02em}
.directions-button:disabled{opacity:.82}.venue-pending{font-size:9px;margin-top:10px}.event-body .explore-city{font-size:10px;margin-top:7px;padding-bottom:5px}
/* A little clock in a garden, with four engraved time windows. */
.countdown-section{position:relative;isolation:isolate;overflow:hidden;padding:84px 28px;background:radial-gradient(ellipse at 50% 10%,#60746555,transparent 65%),#2f493e;color:#fff4dc}
.countdown-keepsake{position:relative;max-width:830px;margin:auto;padding:57px 45px 48px;border:1px solid #c3ad7c88;border-radius:180px 180px 12px 12px;background:linear-gradient(140deg,#fff4d006,transparent 70%);box-shadow:0 0 0 8px #344e42,0 0 0 9px #c3ad7c44,0 20px 50px #15291e30;isolation:isolate}
.countdown-keepsake:before{content:'';position:absolute;inset:11px;border:1px solid #d6c39044;border-radius:172px 172px 5px 5px;pointer-events:none;z-index:-1}
.countdown-crest{margin:0 auto 24px;display:flex;align-items:center;justify-content:center;gap:3px;color:#eed7a3;font:25px var(--serif)}.countdown-crest i{font:35px var(--script);padding:0 3px}
.countdown-keepsake>.eyebrow{font-size:9px;letter-spacing:.22em;color:#d0c6a6;position:relative;z-index:1}
.countdown-section h2{font-size:clamp(41px,6vw,64px);max-width:540px;margin:20px auto 34px;line-height:1.13;color:#fff4dc}
.countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;max-width:535px;margin:auto;position:relative;z-index:1}
.countdown-dot{display:none}.countdown>div{min-width:0;border:1px solid #dfc79a66;border-radius:50px 50px 8px 8px;padding:25px 6px 17px;background:linear-gradient(140deg,#fff4de13,#0c241c12);box-shadow:inset 0 0 0 4px #334d411c,0 8px 15px #192c2515}
.countdown-number{font:clamp(35px,5vw,60px)/1.1 var(--serif);color:#f6e5bf;font-variant-numeric:tabular-nums}.countdown-unit{font-size:8px;letter-spacing:.13em;color:#d6cdaf;margin-top:13px}
.countdown-date{display:flex;align-items:center;justify-content:center;gap:15px;font-size:9px;letter-spacing:.2em;color:#e5c994;margin:31px 0 0}.countdown-date>span{height:1px;width:35px;background:#c7ae7577}
.countdown-note{font:italic 16px/1.7 var(--serif);color:#d0d1b9;margin:13px auto 0;max-width:330px}
.countdown-floral{position:absolute;bottom:-17px;width:175px;opacity:.8;z-index:-1;pointer-events:none}.countdown-floral-left{left:-55px}.countdown-floral-right{right:-55px;transform:scaleX(-1)}
/* A handwritten reply on floral cream paper. */
.rsvp-section{position:relative;isolation:isolate;padding:95px 38px;background:radial-gradient(ellipse at 0 20%,#e2e6d3,transparent 65%),radial-gradient(ellipse at 100% 100%,#f0ded5,transparent 60%),#f2eee1;scroll-margin-top:58px}
.rsvp-layout{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:70px;max-width:990px;margin:auto;text-align:center}
.rsvp-intro>.eyebrow{font-size:8px;letter-spacing:.18em;line-height:1.9;color:#96794e}.rsvp-flower{font:45px var(--serif);color:#a78449;margin-bottom:20px}
.rsvp-section h2{font-size:clamp(44px,5vw,64px);line-height:1.12;color:#405a49;margin:17px 0 23px}.rsvp-welcome{font:19px/1.6 var(--serif);color:#7b735d;max-width:300px;margin:auto}
.rsvp-little-note{margin:28px auto 0;position:relative;padding:20px 15px}.rsvp-little-note img{width:88px;height:65px;object-fit:contain;display:block;margin:auto}.rsvp-little-note p{font:italic 19px/1.6 var(--serif);color:#947763;margin:13px 0}.rsvp-little-note>span{font:24px/1.4 var(--script);color:#8d3c4d}
.rsvp-stationery{position:relative;isolation:isolate;padding:38px 35px 28px;border:1px solid #cbb184;background:linear-gradient(120deg,#fffdf6,#fff8eb);border-radius:9px;box-shadow:0 5px 0 #e4dac7,0 24px 50px #73603d15;min-width:0}
.rsvp-stationery:before{content:'';position:absolute;inset:8px;border:1px solid #cbb18466;border-radius:4px;pointer-events:none;z-index:-1}
.rsvp-corner{position:absolute;top:-25px;right:-24px;width:122px;height:115px;object-fit:contain;transform:rotate(180deg);pointer-events:none;z-index:0}
.rsvp-paper-heading{display:flex;flex-direction:column;align-items:center;position:relative;z-index:1}.rsvp-paper-heading>span:first-child{font-size:8px;letter-spacing:.24em;color:#a28a60}.rsvp-paper-heading>i{font:italic 25px var(--serif);color:#7e4552;margin-top:12px}.rsvp-paper-heart{font:24px var(--serif);color:#b29664;margin-top:10px}
#rsvp-form{margin:20px auto 0;gap:18px;position:relative;z-index:1}#rsvp-form label{font-size:10px;letter-spacing:.025em;gap:8px;color:#756849}
#rsvp-form input,#rsvp-form textarea,#rsvp-form select{border:1px solid #cfbd976e;border-bottom-color:#b7a075;border-radius:6px;background:#fbf6eabd;font:16px/1.5 var(--serif);padding:12px 14px;color:#435746;box-shadow:inset 0 2px 5px #8d714608;transition:border-color .2s,background .2s;min-height:49px}
#rsvp-form input::placeholder,#rsvp-form textarea::placeholder{color:#9d917d;font-style:italic}#rsvp-form textarea{min-height:110px}#rsvp-form select{padding-right:26px}
#rsvp-form :is(input,select,textarea):focus-visible{outline:2px solid #78907888;outline-offset:3px;background:#fffdf6;border-color:#8d9c78}
#rsvp-form .primary-button{display:flex;justify-content:space-between;align-items:center;gap:12px;background:linear-gradient(110deg,#923d51,#762c3e);border:1px solid #87394b;border-radius:30px;min-height:51px;padding:13px 22px;font-size:12px;box-shadow:inset 0 0 0 3px #f5d6b01f,0 6px 14px #80364916;margin-top:1px}
#rsvp-form .primary-button>span:last-child{font:22px var(--serif)}.rsvp-help{font-size:10px;line-height:1.8;color:#92846c;margin:0 auto;max-width:330px}
#rsvp-result{background:#f6f2e4;border:1px solid #c6b187;border-radius:9px;padding:22px;margin:25px auto 7px;position:relative}#rsvp-result .primary-button{border-radius:25px;background:#405a49;font-size:12px}#rsvp-status{font-size:11px;line-height:1.6;color:#75694f}#rsvp-preview{font-size:15px;line-height:1.8;color:#4e5c47}
@media(max-width:760px){
 .event-grid{gap:32px}.event-artwork{height:155px}.event-card{border-radius:125px 125px 21px 21px}.event-card:after{border-radius:119px 119px 15px 15px}.event-artwork:after{border-radius:120px 120px 0 0}.event-number{top:52px;left:27px}.ritual-motif{top:48px;width:65px;height:65px}.event-arch{height:133px;width:135px}.event-body{padding:25px 25px 27px}.event-card h3{font-size:54px}.event-body .event-description{font-size:16px}.event-information{padding:17px 14px}.event-info-row p{font-size:16px}.event-info-row>svg{padding:7px}.event-floral{width:134px;height:127px}
 .countdown-section{padding:65px 24px}.countdown-keepsake{padding:43px 17px 42px;border-radius:125px 125px 10px 10px}.countdown-keepsake:before{inset:8px;border-radius:118px 118px 5px 5px}.countdown-crest{margin-bottom:20px;font-size:22px}.countdown-crest i{font-size:29px}.countdown-keepsake>.eyebrow{font-size:7px;letter-spacing:.17em}.countdown-section h2{font-size:43px;max-width:270px;margin:19px auto 28px}.countdown{gap:7px}.countdown>div{padding:18px 2px 13px;border-radius:35px 35px 6px 6px}.countdown-number{font-size:36px}.countdown-unit{font-size:6px;letter-spacing:.08em;margin-top:10px}.countdown-date{font-size:7px;gap:10px;letter-spacing:.15em;margin-top:25px}.countdown-date>span{width:19px}.countdown-note{font-size:14px;max-width:230px}.countdown-floral{width:115px;bottom:-14px}.countdown-floral-left{left:-25px}.countdown-floral-right{right:-25px}
 .rsvp-section{padding:64px 23px 72px}.rsvp-layout{grid-template-columns:minmax(0,1fr);gap:32px;max-width:440px}.rsvp-flower{font-size:34px;margin-bottom:15px}.rsvp-section h2{font-size:49px;max-width:330px;margin:16px auto 18px}.rsvp-intro>.eyebrow{font-size:7px;letter-spacing:.14em}.rsvp-welcome{font-size:17px}.rsvp-little-note{margin-top:12px;padding:12px 10px 0}.rsvp-little-note img{width:74px;height:56px}.rsvp-little-note p{display:none}.rsvp-little-note>span{font-size:23px;display:block;margin-top:10px}.rsvp-stationery{padding:33px 25px 27px}.rsvp-corner{width:95px;height:91px;right:-16px;top:-19px}.rsvp-paper-heading>i{font-size:23px}#rsvp-form{gap:17px}.rsvp-help{font-size:9px}.rsvp-paper-heading>span:first-child{font-size:7px}
}
@media(max-width:360px){.event-body{padding-inline:19px}.event-card h3{font-size:47px}.event-body .event-description{font-size:15px}.event-information{padding:15px 12px}.event-info-row{gap:9px}.event-info-row p{font-size:14px}.event-card .event-info-row small{font-size:9px}.event-info-row>svg{padding:6px;width:15px;height:15px}.countdown-section{padding-inline:20px}.countdown-keepsake{padding-inline:13px}.countdown-section h2{font-size:38px}.countdown-number{font-size:30px}.countdown{gap:5px}.countdown-unit{font-size:5.5px}.countdown-keepsake>.eyebrow{font-size:6px}.rsvp-section{padding-inline:19px}.rsvp-section h2{font-size:43px}.rsvp-stationery{padding-inline:20px}.rsvp-intro>.eyebrow{font-size:6px}#rsvp-form .primary-button{padding-inline:17px;font-size:11px}}
@media(prefers-reduced-motion:reduce){#rsvp-form input,#rsvp-form textarea,#rsvp-form select{transition:none}}
@media print{.countdown-section,.rsvp-section{display:none!important}}
/* Keep the time labels legible on even the smallest phone. */
@media(max-width:760px){.countdown-unit{font-size:7px;letter-spacing:.05em}}
@media(max-width:360px){.countdown-unit{font-size:6.5px}}
/* Clear invitation to interact, with a finger tracing across the gold. */
.scratch-gesture{position:absolute;left:calc(50% - 19px);top:64%;width:38px;height:38px;color:#715018;pointer-events:none;animation:scratch-demonstration 2.5s ease-in-out infinite;filter:drop-shadow(0 2px 1px #fff3bd)}
.scratch-gesture svg{width:100%;height:100%}
.is-scratching .scratch-gesture,.revealed .scratch-gesture{display:none}
#scratch-instruction{font:500 clamp(14px,3.5vw,17px)/1.6 var(--sans);color:#75551e;margin:18px auto 0;max-width:320px;padding:9px 15px;border:1px solid #c2a05b66;border-radius:12px;background:#fff6dc;box-shadow:0 4px 12px #aa854c0b}
#reveal-date-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin:15px auto 0;padding:12px 24px;border:1px solid #8d3549;border-radius:30px;background:linear-gradient(110deg,#943e52,#7a2e41);color:#fff7e8;font:13px/1.4 var(--sans);box-shadow:inset 0 0 0 3px #f1d7a922,0 6px 14px #80364916}
#reveal-date-button:hover{background:#702337}
#reveal-date-button:focus-visible{outline:2px solid #8d3549;outline-offset:4px}
#reveal-date-button[aria-disabled="true"]{background:#f4e8ca;border-color:#c1a36c;color:#705722;box-shadow:none}
@keyframes scratch-demonstration{0%,15%,100%{transform:translateX(-12px) rotate(-10deg)}45%,65%{transform:translateX(12px) rotate(8deg)}}
@media(prefers-reduced-motion:reduce){.scratch-gesture{animation:none}}
.rsvp-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
#rsvp-feedback{font-size:12px;line-height:1.7;color:#8d3549;margin-top:18px}
#rsvp-result h3{font-size:32px;line-height:1.2;color:#8d3549;margin:14px 0}
#rsvp-form button:disabled{cursor:default;opacity:.7}
.card-venue-note strong,.event-info-row strong{font-weight:700}
.card-blessing,.card-date>span,.card-date>strong{font-weight:700}
.card-city{font-size:clamp(17px,4.8vw,24px);font-weight:600}
.card-venue-note{max-width:100%;margin-top:8px;padding:7px 10px;border:1px solid #c5a77a80;border-radius:6px;background:linear-gradient(135deg,#f7ead6b3,#fdf6e9);box-shadow:0 3px 10px #9273410a;color:#84384b}
.card-venue-note strong{display:block;font:700 clamp(10px,2.8vw,14px)/1.35 var(--serif)}
.card-venue-note span{display:block;margin-top:3px;font-size:clamp(8px,2.1vw,10px);line-height:1.4;color:#826d54}
/* Only the keepsake card participates in printed page layout. */
@media print{
 @page{size:A5 portrait;margin:8mm}
 html,body{width:auto!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;overflow:visible!important;background:white!important;scrollbar-gutter:auto!important}
 body>*:not(#main-content),#main-content>*:not(#celebration-content),#celebration-content>*:not(#invitation),#invitation>*:not(.invitation-wrap),.invitation-wrap>*:not(.heirloom-card),.skip-link{display:none!important}
 #main-content,#celebration-content,#invitation,.invitation-wrap{display:block!important;position:static!important;min-height:0!important;height:auto!important;margin:0!important;padding:0!important;background:white!important;transform:none!important}
 .invitation-wrap{width:108mm!important;max-width:108mm!important;margin:0 auto!important}
 .heirloom-card{width:108mm!important;height:189mm!important;aspect-ratio:auto!important;margin:0!important;opacity:1!important;transform:none!important;box-shadow:none!important;border-radius:0!important;break-inside:avoid!important;page-break-inside:avoid!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
 .heirloom-card *{animation:none!important;transition:none!important}
 .card-content{inset:24% 14% 20%!important}
 .card-names{font-size:61px!important;margin:17px 0!important}
 .card-prelude{font-size:12px!important}.card-city{font-size:19px!important}.card-venue-note{font-size:8px!important;padding:4px 8px!important;margin-top:5px!important}
 .card-venue-note strong{font-size:11px!important}.card-venue-note span{font-size:8px!important}
}
