:root{--bg:#faf2e6;--surface:#fff;--text-h:#1c1917;--text:#4a4540;--muted:#9a9590;--border:#e6e1d8;--btn-bg:#1c1917;--btn-text:#faf2e6;--error:#b03a2e;--heading:"Playfair Display", Georgia, serif;--sans:"Inter", system-ui, -apple-system, sans-serif;font:16px/1.6 var(--sans);letter-spacing:.01em;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}body{background:var(--bg);margin:0}#root{flex-direction:column;min-height:100svh;display:flex}h1,h2,h3{font-family:var(--heading);color:var(--text-h);margin:0;font-weight:400}p{margin:0}.page{flex-direction:column;flex:1;justify-content:center;align-items:center;padding:60px 24px;display:flex}.page--top{justify-content:flex-start;padding-top:60px;padding-bottom:80px}.content{text-align:center;flex-direction:column;align-items:center;gap:36px;width:100%;max-width:440px;display:flex}.couple-name{font-family:var(--heading);letter-spacing:-.02em;color:var(--text-h);margin:8px 0 0;font-size:clamp(56px,14vw,96px);font-style:italic;font-weight:400;line-height:1.05}.eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:500}.wedding-date{font-family:var(--heading);color:var(--muted);margin-top:6px;font-size:17px;font-style:italic}.couple-photo{object-fit:cover;object-position:center top;border:2px solid var(--border);border-radius:50%;width:180px;height:180px;margin-bottom:4px}.divider{background:var(--border);width:36px;height:1px}.divider--wide{width:100%}.details{text-align:left;flex-direction:column;gap:32px;width:100%;display:flex}.venue-block{flex-direction:column;gap:12px;display:flex}.details--row{flex-direction:row;align-items:flex-start;gap:0}.details--row>div{flex:1}.details--row>div:not(:first-child){border-left:1px solid var(--border);margin-left:28px;padding-left:28px}.venue-img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.detail-label{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:10px;font-weight:500;display:block}.detail-value{font-family:var(--heading);color:var(--text-h);font-size:24px;font-weight:400;line-height:1.2;display:block}.detail-sub{color:var(--text);margin-top:2px;font-size:14px;display:block}.detail-sub--link{color:var(--text);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border)}.detail-sub--link:hover{-webkit-text-decoration-color:var(--text);text-decoration-color:var(--text)}.people-sections{text-align:left;flex-direction:column;gap:28px;width:100%;display:flex}.people-group{flex-direction:column;gap:12px;display:flex}.person-grid{grid-template-columns:1fr 1fr;display:grid}.person-card{flex-direction:column;gap:3px;display:flex}.person-card:not(:first-child){border-left:1px solid var(--border);margin-left:20px;padding-left:20px}.person-role{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:500}.person-name{font-family:var(--heading);color:var(--text-h);font-size:17px;font-weight:400;line-height:1.3}.person-phone{color:var(--text);font-size:13px;text-decoration:none}a.person-phone:hover{color:var(--text-h);text-underline-offset:2px;text-decoration:underline}.person-phone--muted{color:var(--muted);font-style:italic}.info-sections .detail-label{letter-spacing:.02em;color:var(--text-h);font-size:15px;font-weight:600;text-transform:none!important}.info-sections{text-align:left;flex-direction:column;gap:0;width:100%;display:flex}.info-sections>div{padding:28px 0}.info-sections>div:first-child{padding-top:0}.info-sections>div:last-child{padding-bottom:0}.info-sections>div+div{border-top:1px solid var(--border)}.info-block{border:1px solid var(--border);color:var(--text);margin-top:12px;padding:16px 20px;font-size:14px;line-height:1.65}.info-body{color:var(--text);margin-top:8px;font-size:15px;line-height:1.65}.btn{width:100%;font-family:var(--sans);letter-spacing:.15em;text-transform:uppercase;cursor:pointer;text-align:center;border:1px solid #0000;padding:15px 24px;font-size:11px;font-weight:500;line-height:1;text-decoration:none;transition:background .2s,color .2s,border-color .2s;display:block}.btn--primary{background:var(--btn-bg);color:var(--btn-text);border-color:var(--btn-bg)}.btn--primary:hover:not(:disabled){background:#322e2a;border-color:#322e2a}.btn--primary:disabled{opacity:.5;cursor:default}.btn--ghost{color:var(--muted);border-color:var(--border);background:0 0}.btn--ghost:hover{color:var(--text-h);border-color:var(--text)}.actions{flex-direction:column;gap:12px;width:100%;display:flex}.form{flex-direction:column;gap:20px;width:100%;display:flex}.form-hint{color:var(--muted);font-size:13px}.form-error{color:var(--error);font-size:13px}.input{border:none;border-bottom:1px solid var(--border);width:100%;font-family:var(--sans);color:var(--text-h);text-align:center;letter-spacing:.15em;background:0 0;outline:none;padding:12px 0;font-size:16px;transition:border-color .2s}.input:focus{border-bottom-color:var(--text-h)}.input::placeholder{color:var(--border);letter-spacing:.05em}.form-group{text-align:left;flex-direction:column;gap:10px;width:100%;display:flex}.form-label{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:500}.radio-group{border:1px solid var(--border);width:100%}.radio-option{cursor:pointer;border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:16px 20px;transition:background .15s;display:flex}.radio-option:last-child{border-bottom:none}.radio-option:hover{background:var(--surface)}.radio-option input[type=radio]{appearance:none;border:1.5px solid var(--border);cursor:pointer;border-radius:50%;flex-shrink:0;width:16px;height:16px;transition:border-color .2s,border-width .2s}.radio-option input[type=radio]:checked{border-color:var(--text-h);border-width:5px}.radio-option span{color:var(--text);font-size:15px}.input--left{text-align:left;letter-spacing:.01em}textarea.input{resize:vertical;min-height:88px;line-height:1.6}.main-nav{width:100%;display:flex}.nav-link{text-align:center;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);flex:1;padding:14px 8px;font-size:13px;font-weight:500;text-decoration:none;transition:color .2s}.nav-link:hover,.nav-link--active{color:var(--text-h)}.countdown-text{font-family:var(--heading);color:var(--muted);margin-top:8px;font-size:17px;font-style:italic}.countdown-number{color:var(--text-h);font-size:22px}@keyframes step-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.step-progress{justify-content:center;gap:8px;display:flex}.step-dot{background:var(--border);border-radius:50%;width:6px;height:6px;transition:background .2s}.step-dot--done{background:var(--muted)}.step-dot--active{background:var(--text-h)}.step-content{width:100%;animation:.2s step-in}.step-actions{flex-direction:column;gap:12px;width:100%;display:flex}.checkbox-group{border:1px solid var(--border);width:100%}.checkbox-option{cursor:pointer;border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:14px 20px;transition:background .15s;display:flex}.checkbox-option:last-child{border-bottom:none}.checkbox-option:hover{background:var(--surface)}.checkbox-option input[type=checkbox]{appearance:none;border:1.5px solid var(--border);cursor:pointer;border-radius:2px;flex-shrink:0;width:16px;height:16px;transition:background .15s,border-color .15s;position:relative}.checkbox-option input[type=checkbox]:checked{background:var(--text-h);border-color:var(--text-h)}.checkbox-option input[type=checkbox]:checked:after{content:"";border:2px solid #fff;border-top:none;border-left:none;width:5px;height:9px;position:absolute;top:1px;left:4px;transform:rotate(45deg)}.checkbox-option span{color:var(--text);font-size:15px}.allergy-rows{flex-direction:column;gap:16px;display:flex}.allergy-row{flex-direction:column;gap:2px;display:flex}.allergy-person-name{color:var(--text-h);font-size:13px;font-weight:500}.info-link{color:var(--text-h);text-underline-offset:3px;text-decoration:underline}.rsvp-status{letter-spacing:.08em;color:var(--muted);text-align:center;font-size:12px}.back-link{letter-spacing:.15em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:500;text-decoration:none}.back-link:hover{color:var(--text-h)}.wishlist-toggle{border:1px solid var(--border);width:100%;font-family:var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--text-h);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;margin-top:12px;padding:14px 16px;font-size:12px;font-weight:500;transition:border-color .2s,background .2s;display:flex}.wishlist-toggle:hover{border-color:var(--text-h);background:var(--surface)}.wishlist-toggle-arrow{font-style:normal;transition:transform .2s;display:inline-block}.wishlist-toggle-arrow--open{transform:rotate(180deg)}.wishlist-grid{grid-template-columns:1fr 1fr;gap:12px;width:100%;margin-top:12px;display:grid}.wishlist-card{border:1px solid var(--border);flex-direction:column;transition:opacity .2s;display:flex}.wishlist-card--taken{opacity:.4}.wishlist-card--mine{border-color:var(--text-h)}.wishlist-card-img{aspect-ratio:1;object-fit:cover;width:100%;display:block}.wishlist-card-body{flex-direction:column;flex:1;gap:4px;padding:12px;display:flex}.wishlist-card-title{color:var(--text-h);font-size:13px;font-weight:500;line-height:1.3}.wishlist-card-price{color:var(--muted);font-size:12px}.wishlist-card-qty{color:var(--text-h);letter-spacing:.04em;font-size:11px;font-weight:500}.wishlist-card-desc{color:var(--text);margin:0;font-size:12px;line-height:1.5}.wishlist-card-link{color:var(--muted);text-underline-offset:2px;margin-top:2px;font-size:11px;text-decoration:underline}.wishlist-reserve-btn{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);cursor:pointer;text-align:left;font-size:10px;font-weight:500;font-family:var(--sans);background:0 0;border:none;margin-top:auto;padding-top:10px;transition:color .15s}.wishlist-reserve-btn:hover:not(:disabled),.wishlist-reserve-btn--active{color:var(--text-h)}.wishlist-reserve-btn:disabled{cursor:default}.wishlist-stepper{align-items:center;gap:10px;margin-top:auto;padding-top:10px;display:flex}.wishlist-stepper-btn{border:1px solid var(--border);width:26px;height:26px;color:var(--text-h);cursor:pointer;font-size:16px;font-family:var(--sans);background:0 0;justify-content:center;align-items:center;line-height:1;transition:border-color .15s,background .15s;display:flex}.wishlist-stepper-btn:hover:not(:disabled){border-color:var(--text-h);background:var(--surface)}.wishlist-stepper-btn:disabled{color:var(--border);cursor:default}.wishlist-stepper-count{color:var(--text-h);text-align:center;min-width:16px;font-size:15px;font-weight:500}.wishlist-stepper-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:10px}.room-table{border-collapse:collapse;width:100%;margin-top:16px;font-size:14px}.room-table th{text-align:left;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);padding:0 12px 10px 0;font-size:10px;font-weight:500}.room-table td{color:var(--text);border-bottom:1px solid var(--border);padding:10px 12px 10px 0;line-height:1.4}.room-table td:last-child{white-space:nowrap;color:var(--text-h);font-weight:500}.room-table tr:last-child td{border-bottom:none}.room-note{color:var(--muted);font-size:12px}
