/* Dzeneta & Malcolm — ivory, champagne gold and pale blush. */
#envelope-overlay::after{content:"";position:absolute;inset:0;background:#faf6ef;opacity:var(--opening-light,0);pointer-events:none;z-index:4;transition:opacity .2s linear}
#envelope-overlay #envelope-poster,#envelope-overlay #envelope-video{top:50%;bottom:auto;height:auto;transform:translateY(-50%);mask-image:linear-gradient(transparent,#000 8%,#000 89%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 8%,#000 89%,transparent)}
:root{--bg:#faf6ef;--surface:#fffcf7;--ink:#514137;--ink-strong:#352b25;--accent:#977344;--accent-soft:#a27f53;--border:#e5d7c5;--champagne:#f3e9da;--taupe:#bba489}
[hidden]{display:none!important}body{background:#e9e1d7}body:not(.site-open){overflow:hidden}#site{max-width:480px}section{padding:4.3rem 1.65rem}p{font-size:1.13rem;line-height:1.7}h2{font-size:2.3rem;line-height:1.13}.eyebrow{font:400 .64rem/1.6 var(--font-sans);letter-spacing:.22em;text-transform:uppercase;color:#86643e;margin-bottom:1rem}.pink-heart{color:#d8a3af}.script-sub{font-size:2rem;color:#977344}.hero{height:100svh;min-height:670px;background:#e9ddc8}#hero-video{object-position:center center}.hero-shade{background:linear-gradient(180deg,rgba(250,246,239,.8),rgba(250,246,239,.5) 27%,transparent 48%,transparent 77%,rgba(250,246,239,.88))}.hero-content{width:100%;padding:4.5rem 1rem 0}.names{display:flex;flex-direction:column;align-items:center;gap:0;font-size:clamp(2.8rem,12vw,3.8rem);line-height:.99;letter-spacing:.025em;background:linear-gradient(100deg,#63462b,#9c783e 50%,#61452c);background-clip:text;-webkit-background-clip:text;animation:none;margin:.7rem 0}.names em{font-size:.58em;line-height:1.2}.hero-tag{font-size:.66rem;letter-spacing:.28em}.hero-date{font-size:.65rem;letter-spacing:.17em;line-height:1.9;font-weight:400}.hero-date span{letter-spacing:.28em}.hero-divider{margin:.6rem 0}.hero-divider b{font-size:1.1rem;color:#cfa0a7;font-weight:400}.scroll-wrap{text-decoration:none}.scroll-label{font-size:.6rem;color:#5f4934}.scroll-cue{height:32px;width:21px;border-color:#947b5b}.scroll-cue span{background:#947b5b}#sound-btn{height:40px;width:40px;border-color:#c1ab89}
#envelope-overlay{background:#b9aea1}#envelope-poster,#envelope-video{object-fit:contain}#envelope-ui{position:absolute;inset:auto 0 7%;margin:0;padding:0 1rem;gap:1rem;color:white;text-shadow:0 1px 8px #635346}.env-exclusive{font-style:italic;font-size:1.25rem;line-height:1.5}#open-btn{width:auto;height:auto;min-height:44px;padding:.65rem 1rem;background:none;border:0;border-radius:2px;backdrop-filter:none;color:#fff;font:400 .62rem/1.5 var(--font-sans);letter-spacing:.26em;text-transform:uppercase}#open-btn:hover{background:rgba(255,255,255,.13);transform:none}#skip-btn{font-size:.57rem;color:white;letter-spacing:.18em;bottom:.4rem;right:.4rem;padding:.75rem;min-height:44px}#envelope-overlay.playing #envelope-ui{visibility:hidden}#envelope-overlay.closing{transition:opacity 1s,visibility 1s}
.countdown-section{padding-bottom:2.5rem}.countdown{gap:.6rem}.flip-card{width:clamp(58px,17vw,84px);height:85px}.face{border-radius:4px;background:linear-gradient(#fffdf9,#f3eadc);box-shadow:0 7px 20px #5c412514;font-size:2rem;color:#735230}.unit-label{font-size:.57rem;letter-spacing:.16em}.monogram{border:1px solid #c4a77c;border-radius:50%;width:82px;height:82px;display:flex;gap:5px;align-items:center;justify-content:center;margin:1rem auto;font-size:1.5rem;color:#9b7946}.monogram span{font-family:var(--font-script);font-size:1.2rem}.story{padding-top:3rem}.story-text p{margin-top:1.1rem}.story-photo{margin-top:2.5rem;padding:9px 9px 0;border-radius:140px 140px 3px 3px;box-shadow:0 12px 32px #5b412517}.story-photo img{aspect-ratio:2/3;height:auto;border-radius:134px 134px 0 0;object-position:center}.story-photo figcaption{font-size:.65rem;padding:.85rem 0;letter-spacing:.02em}
.program{background:linear-gradient(#f5ecdf,#faf6ef)}.tl-body p{font-size:1.1rem;line-height:1.6;color:var(--ink)}.timeline li{gap:1rem;padding-bottom:2.2rem}.tl-dot{flex-basis:44px;height:44px;color:#b28c59;font-size:1.4rem;background:#fcf8f1;box-shadow:none}.timeline:before{left:21px}.tl-body h3{font-size:1.45rem}.tl-body time{font-size:.78rem;color:#977344}.place-card{margin-top:2rem;border-radius:150px 150px 8px 8px;box-shadow:0 10px 32px #5b412517}.place-body{padding:3rem 1rem 2rem}.place-body .venue-name{font-family:var(--font-serif);font-size:2.5rem;color:#765635}.place-addr{font-size:1.15rem;font-weight:400;line-height:1.65;margin:1rem 0 1.5rem}.place-body .eyebrow{font-size:.6rem}.btn-gold{background:linear-gradient(120deg,#a17c46,#795832);box-shadow:0 5px 15px #76563524;font-size:.69rem;padding:1rem 1.4rem;letter-spacing:.13em}.btn-gold:hover{box-shadow:0 8px 20px #76563535}.dresscode{background:#f3e8e3}.dress-details{margin-top:1.8rem}.dress-details h3{font-size:1.5rem;margin:.6rem 0}.little-divider{display:block;color:#b89563;margin:1.4rem auto}.info-grid{margin-top:2rem;gap:1rem}.info-card{position:relative;padding:1.7rem 1.5rem;border-radius:3px;background:#fffdf8;box-shadow:none}.info-card h3{font-size:1.55rem}.info-card p{font-size:1.1rem}.card-mark{float:right;font-size:.67rem;font-family:var(--font-sans);letter-spacing:.15em;color:#b59a77}.proposal{padding-top:1rem}.proposal-stage{margin-bottom:1.7rem;min-height:0}.proposal-stage video{width:100%;height:auto;aspect-ratio:9/12;object-fit:cover;border-radius:150px 150px 4px 4px}.proposal h2{font-size:1.8rem}.rsvp{padding:3rem 1.05rem}.rsvp-card{border-radius:6px;padding:2.7rem 1.3rem 1.5rem;box-shadow:0 12px 35px #5b412516}.rsvp-card:before{border-radius:2px;inset:7px}.rsvp-card h2{margin:.8rem 0 .5rem;letter-spacing:.12em}.rsvp-card .script-sub{font-size:1.7rem}.deadline{font-size:1.06rem}.adults-note{padding:1rem;background:#f5e9e6;font-size:.95rem;margin:1.4rem 0 1.8rem;border-left:2px solid #c9a0a4}.guest-entry{border:1px solid var(--border);border-radius:3px;padding:1rem;display:grid;gap:.8rem;min-width:0}.guest-entry+ .guest-entry{margin-top:1.2rem}.guest-entry legend{font:400 .7rem var(--font-sans);letter-spacing:.09em;padding:0 .4rem;color:#92734b}.field input[type=tel]{width:100%;padding:.85rem 1rem;font-family:var(--font-serif);font-size:1.05rem;color:var(--ink);background:#fcfaf6;border:1px solid var(--border);border-radius:4px}.field input[type=text],.field input[type=email],.field textarea{border-radius:4px}.field label,.field legend{font-size:.65rem;letter-spacing:.09em}.field .radio{display:flex;align-items:center;margin:.5rem 0;gap:.6rem}.field .radio input{flex-shrink:0}.optional{font-weight:300;text-transform:none}.btn-outline,.remove-guest{border:1px solid #b69a76;background:transparent;color:#795832;padding:.8rem .5rem;font-family:var(--font-sans);font-size:.75rem;cursor:pointer;min-height:44px;border-radius:3px}.remove-guest{border:none;justify-self:start;text-decoration:underline;padding:.2rem}.btn-outline:disabled{opacity:.5;cursor:default}.form-hint{font-family:var(--font-sans);font-size:.67rem;line-height:1.65;color:#786a5c}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.btn-submit{min-width:0;width:100%}.btn-submit:disabled{opacity:.7;cursor:wait}#rsvp-error{padding:.8rem;background:#fff2ee;font-size:.85rem;line-height:1.5}.success-heart{font-size:3.5rem;color:#c6969e}footer{background:linear-gradient(#faf6ef,#f0e3d5);padding:3rem 1rem 4rem}.foot-names{font-size:2.4rem;color:#81613c}.foot-date{font-size:.72rem;letter-spacing:.24em}footer .pink-heart{display:block;margin-top:1.2rem;font-size:.85rem}#fab-osa{background:#856338;font-size:.7rem;box-shadow:0 5px 18px #694b3630}#petals{z-index:4;overflow:hidden;left:50%;width:min(100%,480px);transform:translateX(-50%)}.drifting-heart{position:absolute;top:-30px;color:#d5a0af;font-size:10px;opacity:0;animation:drift 20s linear infinite}@keyframes drift{0%{transform:translate(0,0) rotate(-12deg);opacity:0}10%,75%{opacity:.3}100%{transform:translate(28px,105vh) rotate(35deg);opacity:0}}
@media(max-width:360px){section{padding-left:1.15rem;padding-right:1.15rem}.rsvp-card{padding-left:1rem;padding-right:1rem}.hero-content{padding-top:4rem}.hero{min-height:620px}.names{font-size:2.9rem}.unit-label{font-size:.5rem}}
@media(prefers-reduced-motion:reduce){.drifting-heart{display:none}.reveal{opacity:1;transform:none}.hero-divider,.names,.flip-card{animation:none;transition:none}html{scroll-behavior:auto}}
