@import "https://fonts.googleapis.com/css2?family=Great+Vibes&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400;1,600&family=Lato:wght@300;400;700&display=swap";:root{--cream:#faf6ff;--ivory:#ede4f5;--brown:#3b2459;--brown-light:#7b5c9e;--rose:#9b72cf;--rose-light:#d4b8e8;--sage:#9b8cb8;--sage-light:#d8cce8;--gold:#b89ac8;--gold-light:#e0d0ec}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--cream);color:var(--brown);scroll-behavior:smooth;font-family:Lato,sans-serif;font-size:16px;font-weight:300;line-height:1.7;overflow-x:hidden}h1,h2,h3,h4{font-family:Great Vibes,cursive}a{color:inherit;text-decoration:none}#root{flex-direction:column;min-height:100vh;display:flex}.navbar{background-color:var(--ivory);border-bottom:1px solid var(--gold-light);z-index:100;position:sticky;top:0}.navbar-inner{justify-content:space-between;align-items:center;max-width:900px;height:70px;margin:0 auto;padding:0 24px;display:flex}.navbar-brand{color:var(--brown);letter-spacing:.5px;font-family:Great Vibes,cursive;font-size:1.55rem}.navbar-brand span{color:var(--rose);font-style:italic}.navbar-links{gap:36px;display:flex}.navbar-links a{letter-spacing:2px;text-transform:uppercase;color:var(--brown-light);border-bottom:1.5px solid #0000;padding-bottom:2px;font-size:.88rem;transition:color .2s}.navbar-links a:hover,.navbar-links a.active{color:var(--rose);border-bottom-color:var(--rose)}@media (width<=600px){.navbar-brand{font-size:1.2rem}.navbar-links{gap:20px}.navbar-links a{letter-spacing:1px;font-size:.77rem}}.footer{background-color:var(--brown);color:var(--gold-light);text-align:center;letter-spacing:.5px;padding:24px;font-family:Great Vibes,cursive;font-size:1.05rem;font-style:italic}.parallax-banner{width:100%;position:relative;overflow:hidden}.parallax-banner-img{object-fit:cover;object-position:center;will-change:transform;width:100%;height:150%;display:block;position:absolute;top:-25%;left:0}.parallax-banner-overlay{background:rgba(20, 10, 40, var(--overlay,.45));text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:32px 24px;display:flex;position:absolute;inset:0}.banner-prelude{letter-spacing:5px;text-transform:uppercase;color:#ffffffa6;margin-bottom:20px;font-family:Lato,sans-serif;font-size:.86rem}.banner-title{color:#fff;text-shadow:0 4px 24px #00000059;font-family:Great Vibes,cursive;font-size:7.15rem;line-height:1.05}.banner-divider{color:#ffffff80;justify-content:center;align-items:center;gap:16px;margin:18px auto;font-size:1.1rem;display:flex}.banner-divider:before,.banner-divider:after{content:"";background:#ffffff59;width:80px;height:1px;display:block}.banner-subtitle{color:#ffffffd1;font-family:Great Vibes,cursive;font-size:1.98rem}.interlude-quote{color:#fff;text-shadow:0 2px 16px #0000004d;max-width:700px;padding:0 24px;font-family:Great Vibes,cursive;font-size:3.08rem;font-style:italic}.scroll-cue{color:#ffffff8c;pointer-events:none;flex-direction:column;align-items:center;gap:10px;animation:2.2s ease-in-out infinite scrollPulse;display:flex;position:absolute;bottom:36px;left:50%;transform:translate(-50%)}.scroll-cue-label{letter-spacing:4px;text-transform:uppercase;font-family:Lato,sans-serif;font-size:.72rem}.scroll-cue-line{background:linear-gradient(#ffffff8c,#0000);width:1px;height:44px}@keyframes scrollPulse{0%,to{opacity:.55;transform:translate(-50%)translateY(0)}50%{opacity:.9;transform:translate(-50%)translateY(8px)}}@media (width<=700px){.banner-title{font-size:4.18rem}.banner-subtitle{font-size:1.54rem}.interlude-quote{font-size:2.2rem}.banner-divider:before,.banner-divider:after{width:48px}}.section-flourish{align-items:center;gap:20px;margin:60px auto 52px;display:flex}.flourish-rule{background:var(--gold-light);flex:1;height:1px;display:block}.flourish-icon{color:var(--gold);opacity:.75;font-size:.85rem}.timeline{margin-bottom:60px;padding:20px 0;position:relative}.timeline:before{content:"";background:var(--gold-light);width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.timeline-item{opacity:0;justify-content:flex-end;margin-bottom:44px;padding-right:calc(50% + 32px);transition:opacity .7s,transform .7s;display:flex;position:relative;transform:translateY(32px)}.timeline-item.right{justify-content:flex-start;padding-left:calc(50% + 32px);padding-right:0}.timeline-item.visible{opacity:1;transform:none}.timeline-dot{background:var(--rose);border:2px solid var(--cream);width:12px;height:12px;box-shadow:0 0 0 2px var(--rose);border-radius:50%;position:absolute;top:20px;left:50%;transform:translate(-50%)}.timeline-content{background:var(--ivory);border:1px solid var(--gold-light);width:100%;max-width:340px;padding:26px 30px}.timeline-content h3{color:var(--rose);margin-bottom:10px;font-size:1.25rem;font-style:italic}.timeline-content p{color:var(--brown-light);font-size:1.05rem;line-height:1.8}.story-cta{text-align:center;padding:56px 0 0}.story-interlude{height:40vh}@media (width<=700px){.story-interlude{height:60vh}.timeline:before{left:16px}.timeline-item,.timeline-item.right{justify-content:flex-start;padding-left:52px;padding-right:0}.timeline-dot{left:16px}.timeline-content{max-width:100%}}.photo-grid{columns:3;column-gap:16px;margin-top:8px}.photo-item{break-inside:avoid;margin-bottom:16px;overflow:hidden}.photo-item img{filter:brightness(.97)saturate(.9);width:100%;transition:transform .4s,filter .4s;display:block}.photo-item:hover img{filter:sepia(0)brightness();transform:scale(1.04)}@media (width<=700px){.photo-grid{columns:2}}@media (width<=420px){.photo-grid{columns:1}}.rsvp-wrapper{max-width:560px;margin:0 auto}.rsvp-form{flex-direction:column;gap:28px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{letter-spacing:1.5px;text-transform:uppercase;color:var(--brown-light);font-size:.88rem}.form-group input,.form-group select,.form-group textarea{background:var(--ivory);border:1px solid var(--gold-light);color:var(--brown);appearance:none;border-radius:0;outline:none;width:100%;padding:12px 16px;font-family:Lato,sans-serif;font-size:1.1rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--rose)}.form-group select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237A5C45' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:40px}.form-group textarea{resize:vertical;min-height:100px}.radio-group{gap:24px;display:flex}.radio-label{cursor:pointer;color:var(--brown);letter-spacing:normal;text-transform:none;align-items:center;gap:10px;font-size:1.05rem;display:flex}.radio-label input[type=radio]{width:18px;height:18px;accent-color:var(--rose);cursor:pointer;flex-shrink:0}.rsvp-submit{align-self:center;min-width:180px}.rsvp-submit:disabled{opacity:.6;cursor:not-allowed}.form-error{color:var(--rose);text-align:center;font-size:1rem}.rsvp-success{text-align:center;padding:80px 24px}.success-icon{color:var(--rose);margin-bottom:24px;font-size:3.3rem}.rsvp-success h2{color:var(--brown);margin-bottom:16px;font-size:2.2rem}.rsvp-success p{color:var(--brown-light);font-size:1.15rem;font-style:italic}.donate-intro{text-align:center;max-width:600px;color:var(--brown-light);margin:0 auto 56px;font-family:Great Vibes,cursive;font-size:1.15rem;font-style:italic;line-height:1.8}.gift-cards{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.gift-card{background:var(--ivory);border:1px solid var(--gold-light);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:36px 28px;display:flex}.gift-icon{margin-bottom:4px;font-size:2.42rem}.gift-card h3{color:var(--brown);font-size:1.32rem}.gift-card p{color:var(--brown-light);font-size:1.05rem;line-height:1.7}.coming-soon-badge{background:var(--sage-light);color:var(--brown-light);letter-spacing:1.5px;text-transform:uppercase;margin-top:8px;padding:4px 14px;font-size:.83rem;display:inline-block}@media (width<=700px){.gift-cards{grid-template-columns:1fr}}.page{max-width:900px;margin:0 auto;padding:60px 24px 80px}.btn{background:var(--rose);color:#fff;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;border:none;padding:14px 36px;font-family:Lato,sans-serif;font-size:.9rem;transition:background .2s;display:inline-block}.btn:hover{background:var(--brown-light)}.btn-outline{border:1.5px solid var(--rose);color:var(--rose);background:0 0}.btn-outline:hover{background:var(--rose);color:#fff}.subtitle{color:var(--brown-light);font-family:Great Vibes,cursive;font-size:1.2rem;font-style:italic}@media (width<=600px){.page{padding:40px 20px 60px}}
