/* Collection utilities only: every invitation owns its composition and art direction. */
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}img{display:block;max-width:100%}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid currentColor;outline-offset:5px}button:disabled{cursor:default}h1,h2,h3,p,figure{margin:0}button{color:inherit}svg.icon{width:30px;height:30px;stroke:currentColor;stroke-width:1.25;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:.25em;line-height:1.8;font-weight:500}.script{font-family:'Great Vibes',cursive;font-weight:400}.fine-line{height:1px;background:currentColor;opacity:.25;margin:24px auto;width:65px}.copy{font-size:17px;line-height:1.9;max-width:480px;margin-inline:auto}.section-label{display:block;text-transform:uppercase;letter-spacing:.25em;font-size:10px;margin-bottom:20px}.section-title{font-size:clamp(38px,5vw,66px);font-weight:400;line-height:1.05}.action{display:inline-flex;align-items:center;justify-content:center;gap:12px;text-decoration:none;padding:15px 25px;border:1px solid currentColor;background:transparent;font-size:11px;letter-spacing:.12em;text-transform:uppercase;transition:transform .25s,background .25s,color .25s}.action:hover{transform:translateY(-3px)}.action svg{width:18px;height:18px}.demo-bar{position:relative;z-index:50;display:flex;justify-content:space-between;gap:16px;padding:11px 5vw;background:var(--bar-bg,#f6f2e9);color:var(--bar-ink,#4c5040);font:11px/1.5 'DM Sans',sans-serif;letter-spacing:.02em}.demo-bar a{text-decoration:none}.demo-bar span{opacity:.75}.purchase-dock{position:fixed;z-index:80;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:25px;align-items:center;justify-content:space-between;padding:10px 12px 10px 22px;max-width:calc(100% - 28px);width:max-content;border:1px solid #ffffff24;border-radius:100px;background:#f7f3e9ed;color:#31362b;box-shadow:0 8px 30px #0003;backdrop-filter:blur(12px);font:11px 'DM Sans',sans-serif}.purchase-dock span{opacity:.65}.purchase-dock a{padding:12px 21px;border-radius:30px;background:var(--dock-color,#354532);color:#fff;text-decoration:none;white-space:nowrap}.invitation-footer{text-align:center;padding:60px 24px 125px;font-size:12px;line-height:2}.invitation-footer .script{display:block;font-size:42px;margin-bottom:12px}.countdown{display:flex;justify-content:center;gap:clamp(16px,4vw,50px);font-variant-numeric:tabular-nums}.countdown>div{text-align:center}.countdown strong{display:block;font-size:clamp(30px,5vw,56px);font-weight:400;line-height:1.2}.countdown span{display:block;font-family:'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.14em;font-size:9px;margin-top:10px}.rsvp-form{display:grid;gap:20px;text-align:left;width:min(100%,460px);margin:32px auto 0}.rsvp-form label{font-family:'DM Sans',sans-serif;font-size:11px;letter-spacing:.08em;display:grid;gap:10px}.rsvp-form input,.rsvp-form select{width:100%;background:transparent;border:0;border-bottom:1px solid currentColor;border-radius:0;color:inherit;padding:12px 0;min-height:45px;font-size:17px;letter-spacing:0;outline-offset:3px}.rsvp-form select option{color:#302a32;background:#faf7f1}.rsvp-form button{margin-top:5px}.rsvp-note{font:10px/1.7 'DM Sans',sans-serif;opacity:.65;margin-top:20px}.rsvp-result{padding:35px 20px;margin:25px auto;max-width:480px;border:1px solid currentColor;font-size:20px;line-height:1.5}.rsvp-result small{font:11px/1.8 'DM Sans',sans-serif;display:block;margin-top:10px}.rsvp-result[hidden]{display:none}.reveal{opacity:1;transform:none}body.has-reveal .reveal{opacity:0;transform:translateY(25px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.7,.2,1)}body.has-reveal .reveal.in-view{opacity:1;transform:none}.image-dialog{padding:10px;border:0;background:#f8f3e8;max-width:min(90vw,800px);max-height:90vh}.image-dialog::backdrop{background:#10180de8;backdrop-filter:blur(8px)}.image-dialog img{max-height:78vh;max-width:100%;object-fit:contain;margin:auto}.image-dialog button{display:block;border:0;background:transparent;padding:12px;margin-left:auto}.motion-petal{position:absolute;pointer-events:none;width:7px;height:12px;border-radius:80% 0 80% 0;background:#ecddd0;opacity:.4;animation:petal-drift 12s linear infinite}@keyframes petal-drift{0%{transform:translate3d(0,-25px,0) rotate(0);opacity:0}20%{opacity:.55}100%{transform:translate3d(90px,500px,0) rotate(270deg);opacity:0}}@media(max-width:600px){.demo-bar{padding:10px 18px;font-size:9px}.demo-bar span{text-align:right}.purchase-dock{padding:7px 8px 7px 16px;gap:12px;font-size:10px}.purchase-dock a{padding:12px 17px}.copy{font-size:16px}.eyebrow{font-size:9px;letter-spacing:.18em}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal,body.has-reveal .reveal{opacity:1;transform:none}}
