:root{--paper:#fff9ed;--ink:#3e302a;--wine:#742e3d;--muted:#756b5d;--line:#d8ccb5;--gold:#b6843e}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;background-image:repeating-linear-gradient(90deg,transparent 0,transparent 47px,#b6843e08 48px,#b6843e08 49px)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:5px}header{max-width:1160px;margin:auto;padding:25px 35px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:15px}header>a{font:600 27px 'Playfair Display',serif;color:var(--wine);text-decoration:none}header>a span{font-style:italic;font-size:20px}header>span{font-size:12px;letter-spacing:2px}.text-button{background:none;border:0;color:var(--wine);text-decoration:underline;text-underline-offset:5px;font-size:14px}main{max-width:780px;margin:auto;padding:34px 24px 22px}.eyebrow{text-align:center;font-size:12px;letter-spacing:3px;color:var(--wine);margin-bottom:20px}.card{background:#fffdf7;border:1px solid var(--line);box-shadow:0 12px 45px #573b1b08;outline:1px solid var(--line);outline-offset:6px;padding:24px 42px 34px;border-radius:180px 180px 8px 8px}.topline{padding-top:25px;display:flex;flex-direction:column;gap:8px;text-align:center;font-size:11px;letter-spacing:1.8px;color:var(--muted)}.topline span:last-child{font-size:10px;color:var(--wine)}#content{text-align:center;animation:arrive .35s ease}.art{width:100%;max-height:270px;object-fit:contain;display:block;margin:4px auto -3px;mix-blend-mode:multiply}h1,h2{font-family:'Playfair Display',Georgia,serif;font-weight:500;letter-spacing:-1.7px;line-height:1.08;margin:20px 0 18px}h1{font-size:55px}h2{font-size:43px}h1 em,h2 em{font-weight:500;color:var(--wine)}p{line-height:1.6;font-size:16px;margin:12px auto 22px;max-width:440px;color:var(--muted)}.primary,.secondary,.option{min-height:50px;border-radius:4px;padding:14px 20px;transition:background .2s,transform .2s}.primary{background:var(--wine);border:1px solid var(--wine);color:var(--paper);font-weight:600}.primary:hover{background:#592330;transform:translateY(-2px)}.secondary{background:transparent;border:1px solid var(--line);color:var(--ink)}.secondary:hover,.option:hover{background:#f6eddd;border-color:var(--gold)}.buttons{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.note{font-size:12px;line-height:1.5;margin:15px 0 0}.options{display:grid;gap:10px;margin:25px auto;max-width:440px}.option{text-align:left;background:transparent;border:1px solid var(--line);display:flex;align-items:center;gap:16px;font-size:15px}.option b{font-size:12px;font-weight:500;border:1px solid var(--line);border-radius:50%;height:26px;min-width:26px;display:grid;place-items:center;color:var(--wine)}.progress{display:flex;gap:6px;justify-content:center;margin:28px 0}.progress i{width:34px;height:3px;background:#e5daca}.progress i.on{background:var(--wine)}.symbol{font-size:54px;margin:26px 0 5px}.stamp{display:inline-block;border:1px solid var(--wine);color:var(--wine);padding:8px 14px;letter-spacing:2px;font-size:11px;transform:rotate(-4deg);margin:14px auto}.date{font-family:'Playfair Display',serif;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;margin:22px auto;font-size:27px;color:var(--wine);max-width:380px}.date small{display:block;font:12px 'DM Sans',sans-serif;letter-spacing:3px;margin-top:8px}.fine{font-size:14px}footer{text-align:center;font-size:13px;line-height:1.8;margin:25px 0 0;color:var(--muted)}footer span{color:var(--wine);margin-left:5px}footer small{font-size:12px}.confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;top:-20px;animation:fall 3s ease-in forwards;color:var(--wine);font-style:normal}.back{margin:20px auto 0;display:block}.names{font-size:49px}.surname{font-size:15px;letter-spacing:5px;display:block;margin:14px 0}.reaction{min-height:300px;display:flex;flex-direction:column;justify-content:center}.quiet{margin-top:20px}.quiet button{font-size:12px}@keyframes fall{to{transform:translateY(110vh) rotate(400deg);opacity:0}}@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:560px){header{padding:18px 19px}header>span{font-size:10px;letter-spacing:1px}header .text-button{font-size:12px}main{padding:27px 17px 15px}.eyebrow{font-size:10px;letter-spacing:2px}.card{padding:20px 22px 28px;border-radius:120px 120px 6px 6px}.topline{padding-top:18px;font-size:10px}.topline span:last-child{font-size:9px}h1{font-size:43px}h2{font-size:34px}.names{font-size:39px}.art{max-height:225px}p{font-size:15px}.buttons>button{flex:1}.date{font-size:25px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.confetti{display:none}}
nav{display:flex;gap:16px}.album-card{border-radius:15px;padding-top:25px}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;text-align:left;margin:24px 0}.photo{margin:0}.photo img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:5px}.photo figcaption{font-size:13px;color:var(--muted);padding:7px 0;overflow-wrap:anywhere}.upload-form{text-align:left;max-width:440px;margin:25px auto;display:grid;gap:12px}.upload-form label{font-size:14px;font-weight:500}.upload-form input{width:100%;padding:12px;border:1px solid var(--line);border-radius:4px;background:var(--paper);font:inherit;margin-top:7px}.upload-form input[type=file]{font-size:13px}.upload-form .primary{width:100%}.status{font-size:14px;line-height:1.5;min-height:21px;margin:0;color:var(--wine)}.empty{padding:25px 15px;border:1px dashed var(--line);border-radius:8px;font-size:15px}.album-sub{font-size:15px}button:disabled{opacity:.55;cursor:wait}@media(max-width:560px){nav{gap:10px}header>span{display:none}}
.wedding-form{max-width:460px;margin:24px auto;text-align:left;display:grid;gap:20px}.wedding-form label,.edit-link label{display:block;font-size:14px;line-height:1.5}.wedding-form input:not([type=radio]),.wedding-form select,.wedding-form textarea,.edit-link input,.desk-filter select{display:block;width:100%;padding:13px;margin-top:7px;border:1px solid var(--line);border-radius:5px;color:var(--ink);background:var(--paper);font:inherit;font-size:16px}.wedding-form textarea{resize:vertical;min-height:120px}.wedding-form fieldset{border:0;padding:0;margin:0;display:grid;gap:10px}.wedding-form legend{font-size:14px;margin-bottom:12px}.wedding-form .choice{display:flex;align-items:center;gap:12px;border:1px solid var(--line);padding:13px;border-radius:5px;cursor:pointer}.choice:has(:checked){background:#f3e7de;border-color:var(--wine)}.choice input{accent-color:var(--wine);width:18px;height:18px;flex-shrink:0}.wedding-form #guestNames{display:grid;gap:14px;margin-top:16px}.wedding-form .note{margin:0;font-size:13px}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.edit-link{padding:20px;border:1px dashed var(--gold);margin:25px auto;max-width:460px;background:#fcf5e7}.edit-link input{font-size:13px}.edit-link button{margin-top:12px}.section-rule{margin:32px 0 22px;border-top:1px solid var(--line);padding-top:20px;font-size:12px;letter-spacing:2px;color:var(--wine)}.guest-entries{display:grid;gap:18px;text-align:left}.love-note{background:#fbf3e4;padding:25px;border:1px solid #e5d4b9;border-radius:4px}.love-note:nth-child(even){background:#f3eee7}.note-kind{font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:var(--wine)}.love-note blockquote{font:22px/1.6 'Playfair Display',serif;margin:16px 0;white-space:pre-wrap;overflow-wrap:anywhere}.note-author{font-size:14px;font-weight:600}.love-note time{font-size:12px;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:25px 0}.stats b{display:block;font:36px 'Playfair Display',serif;color:var(--wine)}.stats span{font-size:12px}.reply-card{text-align:left;padding:20px;border:1px solid var(--line);margin:15px 0;border-radius:4px;overflow-wrap:anywhere}.reply-card p{font-size:14px;margin:10px 0;white-space:pre-wrap}.reply-card small{font-size:12px;color:var(--muted)}.reply-heading{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.reply-heading span{font-size:13px;color:var(--wine)}.desk-filter{text-align:left;display:block;font-size:14px}.sign-in{display:inline-block;text-decoration:none}header>span{display:none}header nav{gap:20px;flex-wrap:wrap;justify-content:flex-end}.card:has(.wedding-form){border-radius:60px 60px 8px 8px}[hidden]{display:none!important}@media(max-width:560px){header{align-items:flex-start}header nav{max-width:245px;gap:12px 16px}header nav button{min-height:30px}h2{overflow-wrap:anywhere}.love-note{padding:20px}.love-note blockquote{font-size:20px}.stats{gap:6px}.stats span{font-size:11px}.card:has(.wedding-form){border-radius:40px 40px 6px 6px}}
.no-playground{position:relative;height:156px;max-width:440px;margin:12px auto 0;overflow:hidden}.runaway-no{position:absolute;left:50%;top:40px;transform:translateX(-50%);white-space:nowrap;touch-action:manipulation;min-width:120px;transition:none}.no-playground+.note{min-height:38px;margin-top:0}


.venue{margin-top:36px;padding-top:14px;border-top:1px solid var(--line)}.venue h2{font-size:32px;letter-spacing:-.8px;margin-bottom:22px}.venue-photos{display:grid;grid-template-columns:1fr;gap:22px;text-align:left}.venue-photos figure{margin:0;min-width:0}.venue-photos img{display:block;width:100%;height:auto;border-radius:5px}.venue-photos figcaption{font-size:14px;line-height:1.5;margin-top:9px;color:var(--muted)}.venue-credit{font-size:12px;margin:18px auto 0}.venue-credit a{color:var(--wine);text-underline-offset:3px}@media(max-width:560px){.venue-photos{grid-template-columns:1fr;gap:22px}.venue h2{font-size:29px}}

.couple-portrait{width:min(100%,340px);margin:27px auto 25px;padding:7px;background:#fffdf7;border:1px solid var(--line);border-radius:170px 170px 12px 12px;box-shadow:0 10px 28px #573b1b17}.couple-portrait img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 48%;border-radius:162px 162px 7px 7px}.supporting-art{max-width:280px;margin:25px auto 0}.supporting-art .art{max-height:150px}@media(max-width:560px){.couple-portrait{width:min(100%,290px);margin:23px auto 24px;padding:5px}.couple-portrait img{aspect-ratio:4/5}}

.gift-address{font-style:normal;font-size:18px;line-height:1.8;padding:24px 16px;margin:24px auto;background:var(--paper);border:1px solid var(--line);border-radius:6px;max-width:420px}.gift-link{border-top:1px solid var(--line);margin-top:30px;padding-top:24px}.wedding-form .choice input[type=checkbox]{width:20px;height:20px;margin:0;flex-shrink:0;accent-color:var(--wine)}#giftCopyStatus{margin-top:14px}
