:root{--paper:#f8f5ee;--ink:#48443b;--muted:#817b6d;--gold:#a18c61;--line:#dcd5c7;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.8}body:before{content:"";position:fixed;inset:0;z-index:20;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.75' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,label.upload-label{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:5px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.08}h2{font-size:clamp(40px,4.2vw,62px);margin-bottom:24px}h3{font-size:30px}h2 em{font-weight:400;color:#88734e}p{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:2.6px;font-weight:500;color:var(--gold);line-height:1.8}.site-header{height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 5.5%;position:absolute;top:0;left:0;right:0;z-index:5}.monogram{font-family:var(--serif);font-size:36px;letter-spacing:-3px;line-height:1}.monogram span{font-size:25px;font-style:italic;color:var(--gold)}.monogram .monogram-dot{font-size:40px}.site-header nav{display:flex;gap:36px;font-size:11px;letter-spacing:.3px}.site-header nav a:hover{color:var(--gold)}.header-rsvp{font-size:10px;border-bottom:1px solid var(--gold);padding:7px 0;letter-spacing:.3px}.header-rsvp span{margin-left:18px;color:var(--gold)}.hero{height:100svh;min-height:690px;position:relative;display:grid;place-items:center;overflow:hidden}.hero-frame{position:absolute;inset:112px 34px 28px;border:1px solid #ded7c780;pointer-events:none}.hero-content{text-align:center;padding:105px 24px 45px;z-index:1;animation:arrive 1.4s ease both}.hero-intro{margin-bottom:27px;font-size:9px;letter-spacing:3.4px}.hero h1{font-size:clamp(76px,9.4vw,145px);letter-spacing:-5px;margin:0 0 22px}.hero h1 span{font-style:italic;font-size:.74em;color:var(--gold);display:inline-block;padding:0 9px}.hero-subtitle{font-family:var(--serif);font-size:25px;font-style:italic;color:#8a806f;margin-bottom:36px}.date-line{display:flex;justify-content:center;align-items:center;gap:24px}.date-line p{font-size:12px;letter-spacing:4px;color:var(--ink);margin:0}.date-line>span{width:41px;height:1px;background:var(--line)}.hero-location{font-size:8px;letter-spacing:2.1px;margin-top:13px}.rings{width:69px;margin-top:24px;stroke:var(--gold);stroke-width:1.1;animation:arrive 2.2s ease both}.botanical{position:absolute;color:#a4977380;width:260px;pointer-events:none}.botanical-left{left:-65px;bottom:33px;transform:rotate(12deg)}.botanical-right{right:-48px;top:135px;transform:rotate(190deg);width:220px}.scroll-cue{position:absolute;bottom:48px;left:50%;transform:translateX(-50%);text-align:center;font-size:8px;letter-spacing:2px;color:var(--muted);white-space:nowrap}.scroll-cue span{display:block;font-size:22px;margin-top:8px;font-family:var(--serif);animation:float 3s ease-in-out infinite}.hero-side-note{position:absolute;right:54px;bottom:72px;writing-mode:vertical-rl;font-size:7px;letter-spacing:2.4px;color:var(--muted)}.section{max-width:1120px;margin:0 auto;padding:120px 48px}.story{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.story-photo{position:relative;max-width:410px;padding:13px 13px 48px;background:#fffcf6;box-shadow:0 5px 30px #493e3110;transform:rotate(-3deg)}.story-photo img{width:100%;height:390px;object-fit:cover;filter:saturate(.5);display:block}.photo-caption{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-family:var(--serif);font-style:italic;font-size:21px;color:var(--muted)}.story-copy>p:not(.eyebrow){font-size:13px;line-height:2}.signature{display:block;margin-top:28px;font-family:var(--serif);font-style:italic;font-size:23px;color:#8b7857}.details{text-align:center;border-top:1px solid var(--line)}.section-intro{font-size:13px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:60px 0}.detail-grid article{padding:0 20px}.detail-grid article+article{border-left:1px solid var(--line)}.detail-symbol{display:block;font-family:var(--serif);font-size:42px;color:var(--gold);height:76px}.detail-grid .eyebrow{font-size:8px;letter-spacing:1.6px}.detail-grid h3{margin:18px 0}.detail-grid p:not(.eyebrow){font-size:12px;margin:4px 0}.text-link{display:inline-block;font-size:11px;border:0;border-bottom:1px solid var(--gold);padding:8px 0;background:transparent;color:var(--ink)}.timeline{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);margin-top:70px}.timeline>div{position:relative;padding-top:22px}.timeline>div:before{content:'';position:absolute;top:-4px;left:calc(50% - 3px);width:6px;height:6px;border-radius:50%;background:var(--gold)}.timeline span{font-family:var(--serif);font-size:26px}.timeline p{font-size:10px;margin:0}.rsvp-section{background:#eeeadf;display:grid;grid-template-columns:1fr 1fr;gap:90px;padding:90px max(48px,calc((100vw - 1024px)/2));position:relative}.rsvp-copy>p:not(.eyebrow){font-size:13px}.little-flower{width:90px;color:var(--gold);margin-top:25px}.rsvp-section form{max-width:450px;width:100%}label,legend{display:block;font-size:11px;color:var(--ink);margin-bottom:8px}input:not([type=radio],[type=file]),textarea{display:block;width:100%;border:0;border-bottom:1px solid #c9c0ad;background:transparent;padding:12px 0;color:var(--ink);border-radius:0;resize:vertical;font-size:12px}input::placeholder,textarea::placeholder{color:#918b7f}fieldset{border:0;padding:0;margin:27px 0}.radio-option{display:inline-flex;align-items:center;gap:7px;margin:4px 22px 4px 0;font-size:12px}input[type=radio]{accent-color:#7c785f}.button{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:25px;padding:15px 20px;border:1px solid #6c705d;background:#6c705d;color:#fffdf7;font-size:11px;letter-spacing:.4px;transition:background .2s}.button:hover{background:#565b48}.demo-note{font-size:9px;color:#78735e;letter-spacing:.3px}.form-message{font-size:12px;margin:12px 0 0}.memories{text-align:center}.memory-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:50px}.memory-card{border:1px solid var(--line);padding:32px 38px 36px}.card-number{display:block;font-size:8px;letter-spacing:2px;color:var(--muted);text-align:left}.memory-card h3{font-size:29px;max-width:300px;margin:0 auto 16px}.memory-card>p{font-size:12px;max-width:290px;margin:0 auto 12px}.memory-card .text-link span{margin-left:20px}.vinyl{width:115px;height:115px;border-radius:50%;background:repeating-radial-gradient(circle,#42463a 0,#42463a 2px,#525646 3px,#42463a 4px);display:grid;place-items:center;margin:32px auto 30px;box-shadow:4px 6px 12px #0001;transform:rotate(-15deg)}.vinyl span{border-radius:50%;background:#d7bd92;width:45px;height:45px;display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-size:16px}.photo-illustration{height:115px;width:104px;background:#e6dfcd;margin:32px auto 30px;transform:rotate(9deg);padding:9px 9px 22px;box-shadow:4px 6px 12px #0001}.photo-illustration>div{height:100%;background:#b1b29b;color:#f7f1df;font-family:var(--serif);font-size:45px;line-height:1.5;position:relative}.photo-illustration small{position:absolute;font-size:9px;bottom:-21px;white-space:nowrap;left:1px;color:#706b5c;font-style:italic}.memory-card .photo-note{font-size:9px;margin-top:13px}.upload-label{cursor:pointer}.photo-preview{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.photo-preview img{width:60px;height:60px;object-fit:cover}.closing{padding:80px 24px 95px;text-align:center;border-top:1px solid var(--line)}.closing p:not(.eyebrow){font-size:12px}.closing .monogram{display:inline-block;margin-top:25px}footer{margin:0 5%;border-top:1px solid var(--line);padding:24px 0;display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;color:var(--muted)}dialog{border:1px solid var(--line);padding:45px;background:var(--paper);color:var(--ink);width:min(520px,calc(100% - 32px));max-height:90svh}dialog::backdrop{background:#302b245c;backdrop-filter:blur(4px)}dialog h2{font-size:40px}.dialog-close{position:absolute;right:12px;top:6px;background:none;border:0;font-size:28px;color:var(--muted)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.upload-label:has(+input:focus-visible){outline:2px solid var(--gold);outline-offset:5px}.skip-link{position:fixed;top:-100px;left:20px;z-index:30;background:var(--paper);padding:10px}.skip-link:focus{top:10px}.js-motion .reveal{opacity:0;transform:translateY(22px);transition:opacity .9s ease,transform .9s ease}.js-motion .reveal.visible{opacity:1;transform:none}[hidden]{display:none!important}@keyframes arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes float{50%{transform:translateY(5px)}}
@media(min-width:1500px){.hero-content{padding-top:90px}.hero h1{font-size:150px}.botanical-left{width:320px;left:-60px}.botanical-right{width:290px;right:-45px}}
@media(max-width:800px){.site-header{height:80px;padding:0 7%}.site-header nav{display:none}.hero-frame{inset:91px 18px 18px}.hero{min-height:650px}.hero h1{font-size:84px;letter-spacing:-3px}.hero-intro{font-size:7px;letter-spacing:2px}.botanical-left{width:165px;left:-65px;bottom:75px}.botanical-right{width:145px;right:-65px;top:110px}.hero-side-note{display:none}.hero-subtitle{font-size:24px}.hero-location{font-size:7px}.section{padding:75px 26px}.story{gap:45px}.story-photo img{height:280px}.story-copy h2{font-size:37px}.story-copy>p:not(.eyebrow){font-size:12px}.rsvp-section{padding:65px 30px;gap:35px}.memory-card{padding:25px 20px}.detail-grid article{padding:0 10px}.detail-grid h3{font-size:26px}.detail-grid .eyebrow{font-size:7px}footer{gap:15px;flex-wrap:wrap}}
@media(max-width:560px){.hero{min-height:620px}.hero h1{font-size:66px;letter-spacing:-2px}.hero h1 span{padding:0 2px}.hero-content{padding-top:80px}.hero-subtitle{font-size:22px;margin-bottom:30px}.date-line{gap:13px}.date-line p{font-size:10px;letter-spacing:3px}.date-line>span{width:25px}.hero-intro{margin-bottom:30px;max-width:220px;margin-left:auto;margin-right:auto;line-height:2}.rings{width:62px;margin-top:25px}.scroll-cue{font-size:7px;bottom:40px}.header-rsvp{font-size:9px}.story{grid-template-columns:1fr;gap:50px}.story-photo{width:80%;margin:0 auto}.story-photo img{height:310px}.story-copy{text-align:center}.story-copy h2{font-size:43px}.detail-grid{grid-template-columns:1fr;gap:36px;margin:38px 0}.detail-grid article+article{border-left:0;border-top:1px solid var(--line);padding-top:28px}.detail-symbol{height:58px}.detail-grid h3{font-size:30px;margin:12px 0}.detail-grid .eyebrow{font-size:8px}.timeline{margin-top:40px}.timeline span{font-size:24px}.timeline p{font-size:8px}.rsvp-section{grid-template-columns:1fr;gap:25px}.rsvp-copy{text-align:center}.little-flower{display:none}.rsvp-section form{margin:0 auto}.memory-grid{grid-template-columns:1fr;gap:20px}.memory-card{padding:30px}.closing{padding:65px 24px}footer{justify-content:center;text-align:center;font-size:7px}footer span:last-child{width:100%}}
.hero h1 .hero-name{display:inline-block;font-size:inherit;font-style:normal;color:inherit;padding:0;animation: name-enter 3s cubic-bezier(.22,1,.36,1) .65s both}
.step-progress{margin-bottom:28px}.step-progress .eyebrow{font-size:9px;letter-spacing:1.5px}.step-track{display:flex;gap:7px}.step-track span{height:2px;flex:1;background:var(--line)}.step-track span.active{background:var(--gold)}
.rsvp-step{margin:0;min-width:0}.rsvp-step h3{font-size:30px;margin-bottom:25px}.rsvp-step h3:focus{outline:none}.step-actions{display:flex;align-items:center;gap:22px;margin-top:26px}.step-actions .button{margin:0;flex:1}.step-actions>.text-link{white-space:nowrap}.review-intro{font-size:12px}
.companion-card{border:1px solid var(--line);margin:12px 0;background:#f8f5ee66;min-width:0}.companion-card summary{display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;padding:14px 16px;list-style:none}.companion-card summary::-webkit-details-marker{display:none}.companion-title{font-size:12px;overflow-wrap:anywhere}.companion-edit{font-size:9px;color:var(--muted);flex-shrink:0}.companion-edit:after{content:' +';color:var(--gold)}.companion-card[open] .companion-edit:after{content:' −'}.companion-body{padding:4px 16px 16px}.companion-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.companion-actions .text-link{font-size:10px}.companion-card summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.summary-status{font-size:12px;color:#626b50}.summary-person{border-top:1px solid var(--line);padding:13px 0;overflow-wrap:anywhere}.summary-person strong{font-size:12px;font-weight:500}.summary-person p{font-size:11px;margin:4px 0 0;white-space:pre-wrap}#companions-status:empty{display:none}
.companion-card label:not(:first-of-type){margin-top:20px}
.companion-card .remove-companion{margin-top:12px}
.hero-name-left{--name-origin:-65vw}
.hero-name-right{--name-origin:65vw}
@keyframes name-enter{from{opacity:0;transform:translateX(var(--name-origin))}to{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .reveal{opacity:1;transform:none}}
