:root{--bg:#f7f5f0;--surface:#fff;--text-h:#1c1917;--text:#4a4540;--muted:#9a9590;--border:#e6e1d8;--btn-bg:#1c1917;--btn-text:#f7f5f0;--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}.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{text-align:left;flex-direction:column;gap:28px;width:100%;display:flex}.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{border-top:1px solid var(--border);border-bottom:1px solid var(--border);width:100%;display:flex}.nav-link{text-align:center;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);border-right:1px solid var(--border);flex:1;padding:14px 8px;font-size:10px;font-weight:500;text-decoration:none;transition:color .2s}.nav-link:last-child{border-right:none}.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}.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)}
