.password-gate{display:flex;justify-content:center;align-items:center;min-height:100vh;background:var(--gradient-hero);padding:var(--spacing-sm)}.password-gate-content{font-family:Buenard,serif;background:#fff;padding:var(--spacing-lg) var(--spacing-md);border-radius:var(--border-radius);box-shadow:var(--shadow-lg);max-width:400px;width:100%;text-align:center}.password-gate h1{font-family:Revive80Signature,cursive;font-size:var(--font-size-xl);color:var(--color-primary);margin-bottom:var(--spacing-xs);font-weight:var(--font-weight-light)}.password-gate .subtitle{font-family:Buenard,serif;color:var(--color-text);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm)}.password-gate form{display:flex;flex-direction:column;gap:1rem}.password-input{font-family:Buenard,serif;padding:.875rem var(--spacing-sm);border:var(--border-width-thick) solid var(--border-color);border-radius:8px;font-size:var(--font-size-base);transition:border-color var(--transition-fast)}.password-input:focus{outline:none;border-color:var(--color-primary-darker)}.password-input:disabled{background:var(--color-cream);cursor:not-allowed}.submit-btn{font-family:Buenard,serif;padding:.875rem 1.5rem;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:var(--font-size-base);cursor:pointer;transition:background var(--transition-fast);font-weight:var(--font-weight-medium)}.error{color:var(--color-error-text);font-size:.9rem;margin:0}@media (max-width: 480px){.password-gate-content{padding:2rem 1.5rem}.password-gate h1{font-size:1.5rem}}.layout{min-height:100vh;display:flex;flex-direction:column}.navbar{background:#fff;box-shadow:0 2px 8px #0000001a;position:sticky;top:0;z-index:100}.nav-container{max-width:1200px;margin:0 auto;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.nav-brand{font-family:Revive80Signature,cursive;font-size:2rem;font-weight:400;color:var(--color-primary);letter-spacing:1px;line-height:.9}.nav-links{display:flex;gap:var(--spacing-md)}.nav-links a{text-decoration:none;color:var(--color-text);font-weight:var(--font-weight-medium);transition:color var(--transition-fast);position:relative}.nav-links a:hover,.nav-links a.active{color:var(--color-primary)}.nav-links a.active:after{content:"";position:absolute;bottom:-4px;left:0;right:0;height:var(--border-width-thick);background:var(--color-primary)}.main-content{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:var(--spacing-lg) var(--spacing-md)}.footer{background:var(--gradient-footer);text-align:center;padding:var(--spacing-md);color:var(--color-text);margin-top:auto}@media (max-width: 768px){.nav-container{flex-direction:column;gap:1rem;padding:1rem}.nav-links{gap:1rem;flex-wrap:wrap;justify-content:center}.nav-links a{font-size:.9rem}.main-content{padding:2rem 1rem}}.home{display:flex;flex-direction:column;gap:var(--spacing-lg)}.hero{text-align:center;padding:4rem var(--spacing-md);background:url(/header.jpg) center/cover no-repeat;margin:calc(var(--spacing-lg) * -1) calc(var(--spacing-md) * -1) 0 calc(var(--spacing-md) * -1);position:relative}.hero:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#ffffff4d;z-index:0}.hero>*{position:relative;z-index:1}.names{font-family:Revive80Signature,cursive;font-size:5rem;font-weight:400;color:var(--color-primary);margin-bottom:var(--spacing-sm);letter-spacing:2px;line-height:.9}.date{font-size:var(--font-size-lg);color:var(--color-accent);margin-bottom:var(--spacing-xs);font-weight:var(--font-weight-medium)}.location{font-size:1.25rem;color:var(--color-tertiary)}.content-section{max-width:800px;margin:0 auto;text-align:center}.content-section h2{font-size:var(--font-size-xl);color:var(--color-secondary);font-weight:var(--font-weight-light);margin-bottom:1.5rem}.content-section p{font-size:1.1rem;line-height:1.8;color:var(--color-text);margin-bottom:var(--spacing-sm)}@media (max-width: 768px){.hero{padding:var(--spacing-lg) var(--spacing-sm);margin:calc(var(--spacing-md) * -1) calc(var(--spacing-sm) * -1) 0 calc(var(--spacing-sm) * -1)}.names{font-size:3rem;line-height:.9}.date{font-size:1.25rem}.location{font-size:var(--font-size-base)}.content-section h2{font-size:var(--font-size-lg)}.content-section p{font-size:var(--font-size-base)}}.details{max-width:900px;margin:0 auto}.details h1{font-size:var(--font-size-2xl);color:var(--color-primary);font-weight:var(--font-weight-light);text-align:center;margin-bottom:var(--spacing-lg)}.detail-card{background:var(--gradient-card);padding:var(--spacing-md);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-md)}.detail-card h2{font-size:1.75rem;color:var(--color-primary-dark);font-weight:var(--font-weight-normal);margin-bottom:var(--spacing-sm);border-bottom:var(--border-width-thick) solid var(--border-color);padding-bottom:var(--spacing-xs)}.detail-card p{margin-bottom:var(--spacing-xs);color:var(--color-text);font-size:var(--font-size-md)}.detail-card strong{color:var(--color-tertiary)}@media (max-width: 768px){.details h1{font-size:var(--font-size-xl)}.detail-card{padding:1.5rem}.detail-card h2{font-size:var(--font-size-lg)}.detail-card p{font-size:var(--font-size-base)}}.rsvp{max-width:700px;margin:0 auto}.rsvp h1{font-size:var(--font-size-2xl);color:var(--color-primary);font-weight:var(--font-weight-light);text-align:center;margin-bottom:var(--spacing-sm)}.rsvp-intro{text-align:center;color:var(--color-text);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.rsvp-form{background:#fff;padding:2.5rem;border-radius:8px}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:var(--spacing-xs);color:var(--color-text);font-weight:var(--font-weight-medium)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;border:var(--border-width-thick) solid var(--border-color);border-radius:8px;font-size:var(--font-size-base);font-family:inherit;transition:border-color var(--transition-fast);background:#fff}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary-darker);box-shadow:0 0 0 3px #5a9a5c26}.form-group textarea{resize:vertical}.validation-message{margin-top:.5rem;font-size:var(--font-size-sm);padding:.5rem;border-radius:6px}.validation-message.checking{color:#666;background:#f8f9fa;border:1px solid #dee2e6}.validation-message.error{color:#842029;background:#f8d7da;border:1px solid #f5c2c7}.submit-btn{width:100%;padding:var(--spacing-sm);background:var(--color-primary-dark);color:#fff;border:none;border-radius:8px;font-size:1.1rem;cursor:pointer;transition:background var(--transition-fast);font-weight:var(--font-weight-medium);margin-top:var(--spacing-sm)}.submit-btn:hover:not(:disabled),.submit-btn:active:not(:disabled){background:var(--color-primary-darker)}.submit-btn:disabled{background:#ccc;cursor:not-allowed}.info-message{margin-bottom:var(--spacing-md);padding:var(--spacing-sm);background:#e8f4f8;color:#0c5460;border-radius:8px;text-align:center;border:var(--border-width) solid #bee5eb}.success-message{margin-top:var(--spacing-sm);padding:var(--spacing-sm);background:var(--color-success-bg);color:var(--color-success-text);border-radius:8px;text-align:center;border:var(--border-width) solid var(--color-success-border)}.error-message{margin-top:var(--spacing-sm);padding:var(--spacing-sm);background:var(--color-error-bg);color:var(--color-error-text);border-radius:8px;text-align:center;border:var(--border-width) solid var(--color-error-border)}.guests-section{margin:var(--spacing-lg) 0}.guests-section h2{font-size:var(--font-size-xl);color:var(--color-primary);margin-bottom:var(--spacing-xs);font-weight:var(--font-weight-medium)}.guests-intro{color:var(--color-text);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm)}.guest-card{background:var(--color-cream);border-radius:8px;padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.guest-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color)}.guest-header h3{font-size:var(--font-size-lg);color:var(--color-secondary);margin:0;font-weight:var(--font-weight-medium)}.remove-guest-btn{background:transparent;color:#dc3545;border:1px solid #dc3545;padding:.4rem .8rem;border-radius:6px;font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.remove-guest-btn:hover{background:#dc3545;color:#fff}.add-guest-btn{width:100%;padding:var(--spacing-sm);background:#fff;color:var(--color-secondary);border:2px dashed var(--color-secondary);border-radius:8px;font-size:var(--font-size-base);cursor:pointer;transition:all var(--transition-fast);font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-md)}.add-guest-btn:hover{background:var(--color-secondary);color:#fff;border-style:solid}@media (max-width: 768px){.rsvp h1{font-size:var(--font-size-xl)}.rsvp-form{padding:1.5rem}.guest-card{padding:var(--spacing-sm)}.guest-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}}.registry{max-width:900px;margin:0 auto;text-align:center}.registry h1{font-size:var(--font-size-2xl);color:var(--color-primary);font-weight:var(--font-weight-light);margin-bottom:var(--spacing-sm)}.registry-intro{color:var(--color-text);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md);max-width:700px;margin-left:auto;margin-right:auto;line-height:1.7}.registry-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-md);margin-top:var(--spacing-md)}.registry-card{background:#fff;padding:2.5rem var(--spacing-md);border-radius:8px;text-decoration:none;color:inherit;transition:transform var(--transition-fast),background var(--transition-fast);display:flex;flex-direction:column;justify-content:center}a.registry-card:hover{transform:translateY(-2px);background:var(--color-cream)}.registry-card h2{font-size:1.75rem;color:var(--color-primary-dark);font-weight:var(--font-weight-normal);margin-bottom:var(--spacing-sm)}.registry-card p{color:var(--color-text);font-size:var(--font-size-md);margin-bottom:var(--spacing-xs)}.registry-details{color:var(--color-tertiary);font-weight:var(--font-weight-medium);margin-top:var(--spacing-xs)}@media (max-width: 768px){.registry h1{font-size:var(--font-size-xl)}.registry-links{grid-template-columns:1fr;gap:1.5rem}.registry-card{padding:var(--spacing-md) 1.5rem}}.travel{max-width:900px;margin:0 auto}.travel h1{font-size:var(--font-size-2xl);color:var(--color-primary);font-weight:var(--font-weight-light);text-align:center;margin-bottom:var(--spacing-lg)}.travel-section{margin-bottom:var(--spacing-lg)}.travel-section h2{font-size:1.75rem;color:var(--color-primary-dark);font-weight:var(--font-weight-normal);margin-bottom:var(--spacing-sm)}.travel-section p{color:var(--color-text);margin-bottom:.75rem;line-height:1.7;font-size:var(--font-size-md)}.travel-section strong{color:var(--color-tertiary)}.hotel-card{background:#fff;padding:var(--spacing-md);border-radius:8px;margin-bottom:var(--spacing-md)}.hotel-card h3{font-size:var(--font-size-lg);color:var(--color-accent);font-weight:var(--font-weight-normal);margin-bottom:var(--spacing-xs)}.hotel-note{color:var(--color-tertiary);font-size:var(--font-size-sm);font-style:italic;margin-bottom:var(--spacing-xs)}.hotel-card p{margin-bottom:var(--spacing-xs);color:var(--color-text)}@media (max-width: 768px){.travel h1{font-size:var(--font-size-xl)}.travel-section h2{font-size:var(--font-size-lg)}.hotel-card{padding:1.25rem}.hotel-card h3{font-size:1.25rem}}.faq{max-width:900px;margin:0 auto}.faq h1{font-size:var(--font-size-2xl);color:var(--color-primary);font-weight:var(--font-weight-light);text-align:center;margin-bottom:var(--spacing-lg)}.faq-card{background:transparent;padding:var(--spacing-lg) 0;margin-bottom:var(--spacing-lg);border-bottom:1px solid rgba(140,201,142,.2)}.faq-card h2{font-size:1.5rem;color:var(--color-primary-dark);font-weight:var(--font-weight-normal);margin-bottom:var(--spacing-md)}.faq-card p{margin-bottom:0;color:var(--color-text);font-size:var(--font-size-md);line-height:1.6}@media (max-width: 768px){.faq h1{font-size:var(--font-size-xl)}.faq-card{padding:1.5rem}.faq-card h2{font-size:var(--font-size-lg)}.faq-card p{font-size:var(--font-size-base)}}@font-face{font-family:Revive80Signature;src:url(/revive-80-signature-font/Revive80signature-aYEdJ.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Buenard;src:url(/buenard/Buenard-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Buenard;src:url(/buenard/Buenard-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{--color-primary: black;--color-primary-dark: #7ab87c;--color-primary-darker: #5a9a5c;--color-primary-light: #a4d4a4;--color-secondary: #b4d7e6;--color-secondary-dark: #9bc5d6;--color-cream: #faf9f7;--color-white: #fefefe;--color-text: #5d4037;--color-text-light: #8b6f47;--color-success-bg: #a4d4a4;--color-success-text: #2d5f2d;--color-success-border: #8cc98e;--color-error-bg: #f5d4d4;--color-error-text: #8b3a3a;--color-error-border: #e89b9b;--gradient-hero: linear-gradient(135deg, var(--color-cream) 0%, var(--color-secondary) 100%);--gradient-card: linear-gradient(to bottom, var(--color-white), var(--color-cream));--shadow-sm: 0 2px 8px rgba(140, 201, 142, .15);--shadow-md: 0 4px 16px rgba(140, 201, 142, .25);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .1);--border-color: var(--color-primary-light);--border-radius: 12px;--border-width: 1px;--border-width-thick: 2px;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 2rem;--spacing-lg: 3rem;--font-size-sm: .95rem;--font-size-base: 1rem;--font-size-md: 1.05rem;--font-size-lg: 1.5rem;--font-size-xl: 2rem;--font-size-2xl: 2.5rem;--font-size-3xl: 4rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--transition-fast: .3s}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Buenard,serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-text);line-height:1.6;background:var(--color-white)}.loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:var(--font-size-lg);color:var(--color-primary)}
