:root{--ivory:#fffaf7;--cream:#fbf3ee;--blush:#f0d6cf;--rose:#c98182;--gold:#c39b65;--text:#583c36;--light:#8e7169}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--text);font-family:'DM Sans',sans-serif;font-size:14px;line-height:1.55}a{text-decoration:none;color:inherit}button,input,textarea{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}h1,h2,p{margin-top:0}h1,h2{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;line-height:.99}h2{font-size:clamp(42px,5vw,70px)}.topbar{position:sticky;top:0;z-index:20;height:76px;background:#fffdfaee;backdrop-filter:blur(15px);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,7vw,115px);box-shadow:0 2px 15px #77544110}.monogram,.footer-mark{font:italic 39px 'Cormorant Garamond',serif;letter-spacing:-4px}.monogram span,.footer-mark span{color:var(--gold)}nav{display:flex;gap:clamp(14px,2.4vw,39px);align-items:center}nav a{font:600 11px 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:1px;transition:color .2s}nav a:hover,nav a:first-child{color:var(--rose)}.heart-outline{font-size:32px;color:var(--gold)}.menu-toggle{display:none;background:transparent;border:0;font-size:27px;color:var(--text)}.hero{min-height:620px;display:grid;grid-template-columns:53% 47%;position:relative;overflow:hidden;background:radial-gradient(ellipse at 20% 45%,#fff 0%,#fdf2ed 70%)}.hero:before{content:'✿';position:absolute;top:-115px;left:-80px;color:#efc4ba66;font-size:270px;line-height:1;transform:rotate(-20deg)}.hero-copy{z-index:2;text-align:center;align-self:center;padding:55px 15px 85px 55px}.eyebrow{font-size:11px;letter-spacing:3.4px;color:#be966c;font-weight:700}.hero h1{font-size:clamp(69px,8.2vw,126px);margin:20px 0 22px;letter-spacing:-3px}.hero h1 em{font-weight:400;color:var(--gold)}.date{display:flex;align-items:center;justify-content:center;gap:15px;letter-spacing:2px;font:27px 'Cormorant Garamond',serif}.date span{height:1px;background:var(--gold);width:35px}.hero-subtitle{font:italic 34px 'Cormorant Garamond',serif;margin:16px 0 2px}.tiny-heart{display:block;font-size:28px;color:var(--gold);margin-bottom:22px}.hero-picture{background-image:linear-gradient(90deg,#fff4ef 0%,#fff4ef00 20%),url('assets/hero.webp');background-position:center;background-size:cover;filter:saturate(.92)}.scroll-down{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);border-radius:50%;background:#fff;box-shadow:0 3px 20px #6544;width:39px;height:39px;display:grid;place-items:center;font-size:30px;z-index:2}.btn{border-radius:30px;padding:13px 25px;min-width:176px;display:inline-flex;align-items:center;justify-content:center;gap:18px;font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;transition:transform .2s,background .2s}.btn:hover{transform:translateY(-2px)}.btn-outline{border:1px solid #c99490;background:#fff8f6a9;color:#81504a}.btn-filled{background:#c88183;color:white;border:1px solid #c88183}.btn-filled:hover{background:#af666a}.section{padding:82px clamp(25px,7vw,118px)}.welcome{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:8%;background:#fffdfa}.welcome-photo img{width:100%;height:320px;object-fit:cover;border-radius:180px 180px 8px 8px;box-shadow:0 12px 28px #583c3612}.welcome-copy{padding:22px 0 22px 55px;border-left:1px solid #e9cac4;max-width:520px}.welcome-copy h2{margin:12px 0}.ornament{font:25px 'Cormorant Garamond',serif;color:var(--gold);letter-spacing:4px;margin:8px 0 15px}.welcome-copy p,.story p,.films-copy p,.guest-copy p,.share-copy p{max-width:520px;line-height:1.9;color:#6c554f}.floral-mark{position:absolute;right:30px;top:15px;font-size:110px;color:#eedbd6;opacity:.55}.slim{text-align:center;padding-top:50px;padding-bottom:57px;background:linear-gradient(180deg,#fffdfa,#fbf4f0)}.story h2{margin:14px 0}.story p{margin:0 auto}.story-line{color:var(--gold);font-size:25px}.gallery{text-align:center;background:#fffaf8}.section-heading{display:flex;align-items:center;gap:27px;justify-content:center}.section-heading span{height:1px;width:75px;background:var(--gold)}.section-heading h2{margin:0}.photo-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:42px auto 38px;max-width:1200px}.photo-card{border:7px solid #fff;background:white;box-shadow:0 7px 18px #6a454329;padding:0;transition:transform .25s,box-shadow .25s}.photo-card:hover{transform:translateY(-8px) rotate(0deg);box-shadow:0 15px 25px #6a454333}.photo-card img{width:100%;height:185px;object-fit:cover}.tilt-left{transform:rotate(-3deg)}.tilt-right{transform:rotate(3deg)}.soft-note{margin-top:23px;color:#a58c83;font-style:italic;font-family:'Cormorant Garamond',serif;font-size:19px}.films{background:#f6e7e0;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:7%;padding-top:48px;padding-bottom:48px}.films-photo{position:relative;overflow:hidden;border-radius:3px}.films-photo img{width:100%;height:330px;object-fit:cover;filter:saturate(.85)}.play-glyph{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:85px;text-shadow:0 2px 18px #0006}.films-copy h2{margin:13px 0 20px}.films-copy i{font-weight:400}.coming-badge{display:inline-block;color:#9b7370;border:1px solid #be9792;padding:10px 15px;letter-spacing:1px;font-size:10px;font-weight:700}.share{background:linear-gradient(90deg,#fff6f4,#f8e9e8);display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:9%}.share-art img{width:100%;max-height:270px;object-fit:cover;border-radius:20px;box-shadow:0 10px 30px #7f555522}.share-copy h2{margin:13px 0 15px}.share-copy h2 em{color:var(--gold)}.share-copy .btn{margin-top:15px}.guestbook{display:grid;grid-template-columns:.7fr 1fr 1.05fr;align-items:center;gap:5%;background:#fffdfa}.guest-art img{width:100%;height:210px;object-fit:cover;border-radius:12px}.guest-copy h2{margin:12px 0 17px}.notes{display:grid;gap:12px}.note-card{background:white;border:1px solid #f0e3dd;box-shadow:0 3px 15px #78524a12;padding:15px;border-radius:13px;display:flex;gap:12px}.note-card>span{color:var(--rose);font-size:20px}.note-card b{font-size:11px}.note-card p{font-size:12px;margin:6px 0 0;color:#806862}footer{text-align:center;background:#f9eeea;padding:35px;color:#866c63}footer p{margin:5px;font-size:11px;letter-spacing:1px}.footer-mark{font-size:54px}.dialog{width:min(93vw,550px);max-height:90vh;overflow-y:auto;border:1px solid #e7d0c8;background:#fffbf9;border-radius:13px;padding:38px;box-shadow:0 30px 80px #2f1c1b3b;color:var(--text)}.dialog::backdrop{background:#291b1cc9;backdrop-filter:blur(4px)}.dialog h2{font-size:46px;margin:15px 0}.close{position:absolute;top:10px;right:16px;font-size:31px;color:#8f6d61;background:none;border:0}.form-dialog label:not(.dropzone){display:grid;gap:7px;margin:15px 0;color:#715750;font-size:12px}.form-dialog input:not([type=file]),textarea{padding:12px;background:white;border:1px solid #dcc9c2;border-radius:6px;color:var(--text);width:100%}.form-note{margin-top:17px;font-size:11px;color:#8f7770}.image-dialog{width:min(92vw,850px);padding:25px}.image-dialog img{width:100%;max-height:75vh;object-fit:contain}.dropzone{display:grid;place-items:center;text-align:center;gap:9px;padding:36px 10px;border:2px dashed #daa9a5;border-radius:11px;background:#fff4f1;cursor:pointer;font-size:27px}.dropzone strong{font-size:15px}.dropzone small{font-size:11px;color:#86665e}.dropzone input{width:100%;font-size:11px;max-width:290px}.file-previews{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px}.file-previews img,.file-previews video{max-width:110px;height:95px;object-fit:cover;border-radius:7px}@media(max-width:950px){.topbar{padding:0 25px}nav{gap:15px}nav a{font-size:9px}.hero{min-height:540px}.hero-copy{padding-left:25px}.hero h1{font-size:76px}.guestbook{grid-template-columns:1fr 1fr}.guest-art{display:none}}@media(max-width:700px){.topbar{height:65px}.menu-toggle{display:block;margin-left:auto}.heart-outline{margin-left:18px}.topbar nav{display:none;position:absolute;top:65px;left:0;right:0;background:#fffaf8;padding:25px;box-shadow:0 18px 20px #7754411c;flex-direction:column;gap:20px}.topbar nav.open{display:flex}.topbar nav a{font-size:12px}.hero{display:flex;min-height:760px;flex-direction:column-reverse}.hero-picture{height:365px;flex:none;background-image:linear-gradient(0deg,#fff4ef 0%,#fff4ef00 20%),url('assets/hero.webp')}.hero-copy{flex:1;padding:30px 15px 45px}.hero h1{font-size:70px;margin:8px 0 8px}.date{font-size:22px}.hero-subtitle{font-size:26px;margin:8px 0}.tiny-heart{margin-bottom:12px}.scroll-down{bottom:7px}.section{padding:55px 23px}.welcome,.films,.share,.guestbook{grid-template-columns:1fr;gap:23px}.welcome-copy{padding-left:18px}.welcome-photo img{height:260px}.floral-mark{display:none}.slim{padding:45px 23px}.photo-strip{gap:7px;grid-template-columns:repeat(3,minmax(0,1fr));margin:28px auto}.photo-card img{height:140px}.photo-card:nth-child(n+4){display:none}.section-heading{gap:10px}.section-heading h2{font-size:45px}.section-heading span{width:20px}.films-photo img{height:210px}.films-copy h2{font-size:57px}.share-art img{max-height:190px}.guest-art{display:none}.notes{margin-top:15px}.dialog{padding:28px 20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

.shared-memories{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;margin-top:32px;text-align:left}.shared-memory{margin:0;background:#fff;padding:12px;border:1px solid #ead8d0;border-radius:12px}.shared-memory img,.shared-memory video{width:100%;height:250px;object-fit:contain;border-radius:6px;background:#f7eeea}.memory-photo{border:0;background:none;padding:0;width:100%}.shared-memory figcaption{padding:14px 5px 4px;overflow-wrap:anywhere}.shared-memory figcaption p{margin:8px 0 0}.notes{max-height:600px;overflow-y:auto}.note-card p{white-space:pre-wrap;overflow-wrap:anywhere}.form-dialog label.consent{display:flex;align-items:flex-start;gap:10px;font-size:12px}.form-dialog .consent input[type=checkbox]{width:18px;min-width:18px;height:18px;accent-color:#aa6267}.honeypot{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}[role=status]{font-size:13px;font-weight:600;white-space:pre-line}.error{color:#9c2835}.btn:disabled{opacity:.6;cursor:wait;transform:none}.form-note a,footer a{text-decoration:underline}.file-preview{max-width:130px;overflow-wrap:anywhere}.file-preview small{display:block;font-size:10px}.file-preview p{font-size:11px}.privacy-copy{max-width:800px;margin:auto;padding:55px 25px}.privacy-copy h1{font-size:64px}.privacy-copy h2{font-size:32px}.privacy-copy a{text-decoration:underline}:focus-visible{outline:3px solid #965149;outline-offset:4px}
