*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f5f2ec;color:#24211e;font-family:"Songti SC","Noto Serif SC",serif}.hide{display:none!important}.hero{height:100svh;position:relative;overflow:hidden;background:#16130f}.hero>img{width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(1.04);animation:zoom 13s ease-out both}.veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.03) 45%,rgba(0,0,0,.74))}.hero-copy{position:absolute;left:0;right:0;bottom:7vh;text-align:center;color:#fff;padding:28px}.eyebrow{font:500 11px/1.4 Arial,sans-serif;letter-spacing:.32em}.hero h1{font-size:clamp(28px,7vw,56px);font-weight:400;letter-spacing:.08em;margin:20px 0 10px}.hero h1 i{font-family:Georgia,serif;font-weight:400;color:#d7bd8a}.date{font:400 13px/1 Arial,sans-serif;letter-spacing:.28em}.scroll{display:block;margin-top:40px;font-size:12px;letter-spacing:.2em;opacity:.8}.section{max-width:720px;margin:auto;padding:96px 22px}.intro{text-align:center}.dark{color:#8b795d}.section h2{font-size:clamp(29px,8vw,46px);font-weight:400;letter-spacing:.08em;margin:16px 0 24px}.intro>p{font-size:16px;line-height:2;color:#665f56}.countdown{display:flex;align-items:baseline;justify-content:center;gap:13px;margin-top:48px}.countdown span{font:italic 70px/1 Georgia,serif;color:#9b7d4f}.countdown small{font-size:13px}.story{padding-top:44px}.story-head{display:flex;gap:22px;align-items:start;margin-bottom:30px}.story-head em{font:italic 42px/1 Georgia,serif;color:#a68b62}.story-head h2{margin:0 0 5px;font-size:28px}.story-head p{margin:0;color:#777067;font-size:14px}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gallery figure{margin:0;aspect-ratio:3/4;overflow:hidden;background:#ddd}.gallery figure.wide{grid-column:1/-1;aspect-ratio:4/5}.gallery img{width:100%;height:100%;object-fit:cover}.details{text-align:center;background:#22201d;color:#f7f3ea;max-width:none;padding-left:max(22px,calc((100% - 680px)/2));padding-right:max(22px,calc((100% - 680px)/2))}.details .dark{color:#c7ad81}.date-lock{display:flex;justify-content:center;align-items:center;gap:22px;margin:40px 0}.date-lock strong{font:400 88px/1 Georgia,serif}.date-lock div{text-align:left}.date-lock .date-primary{display:flex;align-items:baseline;gap:7px;white-space:nowrap}.date-lock .date-primary small{font-size:22px;font-weight:400}.date-lock span,.date-lock b{display:block}.date-lock span{font:12px/1.8 Arial,sans-serif;letter-spacing:.13em}.date-lock b{font-size:15px;font-weight:400;line-height:1.7}.line{height:1px;background:#615a51;margin:36px 0}.details h3{font-size:22px;font-weight:400}.details p{font-size:14px;line-height:2;color:#c9c3bb}.outline{display:inline-block;border:1px solid #8b8174;color:#fff;text-decoration:none;padding:13px 28px;margin-top:22px;font-size:14px}.rsvp{max-width:620px}.rsvp .sub{text-align:center;color:#746d64;line-height:1.8;margin:-10px 0 42px}.rsvp h2,.rsvp>.eyebrow{text-align:center}form{display:grid;gap:22px}label{display:grid;gap:8px;font-size:14px;color:#5d574f}input,select,textarea{width:100%;border:0;border-bottom:1px solid #bfb8ad;background:transparent;border-radius:0;padding:12px 2px;font:16px/1.5 sans-serif;color:#222;outline:none}.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.submit{border:0;background:#24211e;color:#fff;padding:16px;margin-top:10px;font-size:15px;letter-spacing:.18em}.submit:disabled{opacity:.55}.success{text-align:center;padding:55px 20px;border:1px solid #d6cec2}.success span{font-size:38px;color:#957d56}.success h3{font-weight:400;font-size:24px}.form-error{color:#9b3f35;margin:0;font-size:14px}footer{text-align:center;background:#e9e3da;padding:52px 20px;color:#5e574e}footer p{font-size:18px;letter-spacing:.12em;margin:0 0 10px}footer span{font:11px Arial,sans-serif;letter-spacing:.14em}footer a{color:#9a9185;text-decoration:none;margin-left:8px}.music{position:fixed;z-index:20;right:14px;top:14px;border:1px solid rgba(255,255,255,.45);background:rgba(20,18,15,.55);backdrop-filter:blur(12px);color:#fff;border-radius:30px;padding:9px 13px;font-size:11px}.music b{font-weight:400}.music span{display:inline-block;margin-right:6px}.music.playing span{animation:spin 3s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes zoom{from{transform:scale(1.06)}to{transform:scale(1)}}@media(min-width:760px){.hero{height:min(100svh,900px)}.gallery{gap:14px}.section{padding-top:120px;padding-bottom:120px}}
