@font-face{font-family:Manrope;src:url('/assets/manrope-regular.ttf') format('truetype');font-style:normal;font-weight:300 700;font-display:swap}
@font-face{font-family:GreatVibes;src:url('/assets/great-vibes.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
:root{color-scheme:light;--ink:#373432;--muted:#77716b;--line:#d5c9bf;--cream:#f6f1ec;--beige:#cbbeb0;font-family:Manrope,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#e9e0d7;color:var(--ink)}
.page{width:min(100%,760px);min-height:100vh;margin:auto;padding:48px clamp(22px,6.5vw,68px) 42px;background:#faf7f3 url('/assets/silk-bg.webp') center top/100% auto repeat-y;box-shadow:0 0 60px #5b4c4015}
h1,h2,p{margin:0}.hero,.calendar-section,footer{text-align:center}.eyebrow,.section-heading,.dates{text-transform:uppercase;letter-spacing:.27em;font-weight:400}.eyebrow{font-size:20px}.script{font-family:GreatVibes,'Segoe Script',cursive;font-weight:400}.subtitle{font-size:46px;line-height:1;margin-top:-3px}.rule{display:block;width:60px;height:1px;background:var(--line);margin:24px auto}.names{white-space:nowrap;font-size:clamp(66px,12vw,112px);line-height:1.2;margin:25px -30px 9px}.names span{font:400 .38em Manrope,Arial,sans-serif;vertical-align:middle;margin:0 -4px}.dates{font-size:17px}.place{font-size:25px;margin-top:3px;letter-spacing:.03em}.region{font-size:17px;color:var(--muted);margin-top:-3px}.intro{max-width:440px;margin:42px auto 0;font-size:15px;line-height:1.5}.intro p+p{margin-top:16px}.section-heading{font-size:19px;text-align:center;margin:0 0 18px}.calendar-section{margin-top:30px}.calendar{max-width:350px;margin:auto}.weekdays,.days{display:grid;grid-template-columns:repeat(7,1fr);align-items:center;justify-items:center}.weekdays{font-size:11px;text-transform:uppercase;letter-spacing:.13em;margin-bottom:8px}.days{row-gap:5px;font-size:13px}.days span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%}.days .soft{background:#eee8e2}.days .main-day{background:#bbae9f;color:#fff}.days .outline{border:1px solid #cdbfb2;background:#f4eee8}.program{margin-top:32px}.event-card{display:grid;grid-template-columns:132px minmax(0,1fr) 167px;gap:20px;align-items:center;background:#ffffffd9;border-radius:18px;padding:10px;margin:12px auto;min-height:132px;box-shadow:0 2px 24px #9d877318}.event-date{border-right:1px solid var(--line);min-height:96px;display:flex;flex-direction:column;justify-content:center;padding:0 8px;text-align:center;line-height:1.25}.event-date strong{font-size:22px;font-weight:400;white-space:nowrap}.event-date span{font-size:15px;margin-top:3px}.event-details{min-width:0}.event-row{display:flex;gap:11px;align-items:baseline;font-size:13px;line-height:1.45;text-transform:uppercase;white-space:nowrap}.event-row time{min-width:54px}.event-row strong{font-weight:400}.event-note{font-size:13px;line-height:1.35;color:var(--muted);margin-top:9px;max-width:190px}.event-card img{width:100%;height:112px;object-fit:cover;border-radius:13px}.rsvp{margin-top:28px}.rsvp .section-heading{margin-bottom:19px}form{max-width:590px;margin:auto}.field{border:0;margin:0 0 17px;padding:0}.field label:not(.radio):not(.day-option),legend{display:block;width:100%;font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px}.field input:not([type=radio]):not([type=checkbox]),.field select,.field textarea{width:100%;border:1px solid #ddd4cc;border-radius:10px;background:#ffffffd9;min-height:37px;padding:8px 14px;color:var(--ink);font:14px Manrope,Arial,sans-serif;outline:none}.field textarea{resize:vertical;min-height:40px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#9e8b7a;box-shadow:0 0 0 3px #aa998b30}.field input::placeholder,.field textarea::placeholder{color:#96908b}.choice-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.radio{display:flex;align-items:center;gap:9px;font-size:14px;cursor:pointer}.radio input{appearance:none;width:21px;height:21px;border:1.5px solid #b5a397;border-radius:50%;margin:0;flex:none;background:#fff}.radio input:checked{box-shadow:inset 0 0 0 4px white;background:#393432;border-color:#9f9084}.day-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.day-option{display:flex;align-items:center;gap:7px;min-width:0;min-height:43px;padding:4px 9px;background:#ffffffc9;border:1px solid #ddd4cc;border-radius:9px;font-size:12px;white-space:nowrap;cursor:pointer}.day-option input{appearance:none;width:18px;height:18px;margin:0;flex:none;border:1px solid #c6b9ad;border-radius:3px;background:#fff}.day-option input:checked{background:#a99a8c;border-color:#a99a8c}.day-option input:checked:after{content:'✓';display:block;color:#fff;text-align:center;line-height:16px;font-size:15px}.day-option.locked{cursor:default}.lock{margin-left:auto;flex:none}.count-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.submit{width:100%;border:0;border-radius:999px;background:#c9bbad;color:#38322e;padding:15px 20px;text-transform:uppercase;letter-spacing:.26em;font:14px Manrope,Arial,sans-serif;cursor:pointer;transition:background .2s,transform .2s}.submit:hover{background:#b8a898;transform:translateY(-1px)}.submit:disabled{opacity:.65;cursor:wait;transform:none}.form-status{min-height:25px;text-align:center;font-size:13px;margin-top:10px}.form-status.error{color:#a22f30}.form-status.success{color:#305e40}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}footer{margin-top:25px}footer .rule{margin:16px auto}.closing{font-size:57px;line-height:1}.small{font-size:13px}.signature{font-size:42px;line-height:1.1;margin-top:5px}
@media(max-width:650px){.page{padding:34px 22px 36px}.eyebrow{font-size:15px}.subtitle{font-size:37px}.names{font-size:clamp(57px,14vw,81px);margin:15px -16px 9px}.dates{font-size:13px;letter-spacing:.22em}.place{font-size:20px}.region{font-size:14px}.intro{font-size:13px;margin-top:30px}.section-heading{font-size:16px}.event-card{grid-template-columns:100px minmax(0,1fr) 84px;gap:9px;padding:8px;min-height:117px;border-radius:13px}.event-date{min-height:90px;padding:0 4px}.event-date strong{font-size:15px}.event-date span{font-size:12px}.event-row{font-size:10px;gap:5px;white-space:normal}.event-row time{min-width:44px}.event-note{font-size:10px;margin-top:5px}.event-card img{height:100px;border-radius:9px}.day-option{font-size:10px;gap:5px;padding:4px}.day-option input{width:16px;height:16px}.lock{width:13px;height:13px}.radio{font-size:12px}.field label:not(.radio):not(.day-option),legend{font-size:10px}.count-row{gap:10px}}
@media(max-width:385px){.page{padding-left:16px;padding-right:16px}.event-card{grid-template-columns:92px minmax(0,1fr) 68px;gap:6px}.event-date strong{font-size:13px}.event-date span{font-size:11px}.event-card img{height:94px}.event-row{font-size:9px}.event-row time{min-width:40px}.event-note{font-size:9px}.day-option{font-size:9px}.lock{display:none}}
.page{background-image:linear-gradient(#fff9,#fff9),url('/assets/silk-bg.webp');background-size:100% 100%,100% 100%;background-repeat:no-repeat}
.names span{margin:0 4px}
@media(max-width:500px){.event-card{grid-template-columns:100px minmax(0,1fr);gap:12px;min-height:0;padding:13px}.event-date{min-height:96px}.event-date strong{font-size:16px}.event-date span{font-size:13px}.event-details{padding:3px 0}.event-row{font-size:12px;gap:8px}.event-row time{min-width:53px}.event-note{font-size:12px;max-width:none}.event-card img{grid-column:1/-1;height:92px;object-position:center 50%}.day-option{font-size:10px}.lock{display:block}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.submit{transition:none}}
.days .main-day{background:#75665b;color:#fff}
.calligraphy{display:block;height:auto;object-fit:contain}
.invitation-script{width:min(245px,68%);margin:-8px auto 0}
.names{font-size:0;line-height:0;white-space:normal;max-width:610px;margin:12px auto 3px}
.names-image{width:100%;margin:auto}
.closing-image{width:min(300px,85%);margin:0 auto -8px}
.signature-image{width:min(230px,70%);margin:0 auto}
.form-status:empty{display:none}
#attendance-details[hidden]{display:none}
.confirmation{width:min(420px,calc(100% - 32px));max-width:none;border:1px solid #d5c9bf;border-radius:20px;padding:34px 28px;background:#faf7f3;color:var(--ink);box-shadow:0 18px 65px #332a2460;text-align:center}
.confirmation::backdrop{background:#332a2499}
.confirmation h2{font-size:34px;font-weight:400;line-height:1.2}
.confirmation p{font-size:20px;line-height:1.4;margin-top:14px}
.confirmation form{margin-top:26px}
.confirmation button{min-width:170px;min-height:48px;border:0;border-radius:999px;background:#c9bbad;color:var(--ink);font:16px Manrope,Arial,sans-serif;cursor:pointer}
.confirmation button:focus-visible{outline:3px solid #75665b;outline-offset:3px}
@media(max-width:650px){.invitation-script{width:min(218px,64%);margin-top:-5px}.names{margin:8px auto 1px}.closing-image{width:min(260px,78%)}.signature-image{width:min(210px,68%)}}
@media(max-width:350px){.day-row{grid-template-columns:1fr}.day-option{font-size:12px;min-height:38px;padding:7px 12px}.day-option input{width:17px;height:17px}.lock{width:14px;height:14px;margin-left:auto}}
