:root{--color-maroon:350, 100%, 25%;--color-maroon-dark:350, 100%, 15%;--color-gold:46, 65%, 52%;--color-gold-light:46, 75%, 65%;--color-cream:40, 40%, 96%;--color-charcoal:0, 0%, 20%;color:hsl(var(--color-charcoal));background-color:hsl(var(--color-cream));scroll-behavior:smooth;font-family:Inter,sans-serif;font-weight:400;line-height:1.7}body{background-color:hsl(var(--color-cream));background-image:radial-gradient(circle,#d4af3708 0%,#0000 100%);margin:0;padding:0;overflow-x:hidden}h1,h2,h3,h4{color:hsl(var(--color-maroon));margin:0;font-family:Playfair Display,serif;font-weight:500}.heading-primary{letter-spacing:.05em;color:hsl(var(--color-gold));font-family:Playfair Display,serif;font-weight:600}.heading-secondary{letter-spacing:.2em;text-transform:uppercase;color:hsl(var(--color-gold-light));font-family:Inter,sans-serif;font-weight:400}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:1.5s cubic-bezier(.2,.8,.2,1) forwards fadeIn}section{text-align:center;background-color:hsl(var(--color-cream));border-bottom:2px solid #d4af3733;flex-direction:column;align-items:center;padding:6rem 2rem;display:flex;position:relative}section:after{content:"❋";color:hsl(var(--color-gold));background:hsl(var(--color-cream));padding:0 1rem;font-size:1.5rem;position:absolute;bottom:-15px;left:50%;transform:translate(-50%)}.hero{color:#fff;box-sizing:border-box;border-bottom:5px solid hsl(var(--color-gold));background-color:#0000;background-image:linear-gradient(#800000cc,#800000e6),url(https://images.unsplash.com/photo-1519741497674-611481863552?q=80&w=2070&auto=format&fit=crop);background-position:0 0,50%;background-repeat:repeat,no-repeat;background-size:cover;background-attachment:scroll,fixed;background-origin:padding-box,padding-box;background-clip:border-box,border-box;justify-content:center;min-height:100vh;padding:2rem}.hero-overlay{border:4px double hsl(var(--color-gold));background:hsl(var(--color-cream));width:100%;max-width:650px;padding:4rem 3rem;animation:1.5s ease-out fadeIn;position:relative;box-shadow:0 15px 35px #0000004d}.hero-overlay:before{content:"";pointer-events:none;border:1px solid #d4af3780;position:absolute;inset:10px}.hero-names{color:hsl(var(--color-maroon));text-shadow:none;margin:1.5rem 0;font-size:4rem;line-height:1.2}.hero-tagline{letter-spacing:.25em;text-transform:uppercase;color:hsl(var(--color-charcoal));margin-bottom:1rem;font-size:.9rem;font-weight:500}.countdown-container{justify-content:center;gap:1.5rem;margin-top:3.5rem;display:flex}.countdown-box{background:hsl(var(--color-maroon));border:2px solid hsl(var(--color-gold));min-width:75px;color:hsl(var(--color-cream));padding:1rem 1.5rem;position:relative;box-shadow:0 5px 15px #0000001a}.countdown-val{color:hsl(var(--color-gold));font-family:Playfair Display,serif;font-size:2.2rem;font-weight:500}.countdown-lbl{text-transform:uppercase;letter-spacing:.15em;opacity:.9;color:hsl(var(--color-cream));margin-top:.25rem;font-family:Inter,sans-serif;font-size:.75rem}.story-text{max-width:700px;color:hsl(var(--color-charcoal));margin:2.5rem 0;font-size:1.15rem;font-weight:400;line-height:2}.schedule-section{background-color:hsl(var(--color-maroon));color:hsl(var(--color-cream))}.schedule-section:after{background:hsl(var(--color-maroon));color:hsl(var(--color-gold))}.schedule-section .section-title{color:hsl(var(--color-gold))}.schedule-section .section-subtitle{color:hsl(var(--color-cream));opacity:.8}.timeline{grid-template-columns:1fr;gap:2.5rem;width:100%;max-width:1000px;margin-top:4rem;display:grid}@media (width>=768px){.timeline{grid-template-columns:repeat(3,1fr)}}.event-card{background:hsl(var(--color-cream));border:3px double hsl(var(--color-gold));z-index:1;color:hsl(var(--color-charcoal));padding:3rem 2rem;transition:transform .3s;position:relative;box-shadow:0 10px 20px #0003}.event-card:hover{transform:translateY(-5px)}.event-icon{background:hsl(var(--color-maroon));border:2px solid hsl(var(--color-gold));width:60px;height:60px;color:hsl(var(--color-gold));border-radius:50%;justify-content:center;align-items:center;margin:0 auto 2rem;display:flex}.event-title{color:hsl(var(--color-maroon));margin-bottom:.75rem;font-size:1.6rem}.event-time{color:hsl(var(--color-gold));text-transform:uppercase;letter-spacing:.15em;margin-bottom:1.5rem;font-family:Inter,sans-serif;font-size:.85rem;font-weight:600}.venue-card{background:hsl(var(--color-cream));border:4px double hsl(var(--color-gold));padding:3.5rem;box-shadow:0 15px 30px #0000000d}.venue-link{color:hsl(var(--color-maroon));border-bottom:2px solid hsl(var(--color-gold));margin-top:1.5rem;padding-bottom:4px;font-size:1.1rem;font-weight:600;text-decoration:none;display:inline-block}.venue-link:hover{color:hsl(var(--color-gold));border-color:hsl(var(--color-maroon))}.rsvp-section{background:hsl(var(--color-cream))}.rsvp-card{background:hsl(var(--color-cream));border:4px double hsl(var(--color-gold));width:100%;max-width:550px;padding:4rem 3rem;position:relative;box-shadow:0 15px 40px #00000014}.rsvp-input,.rsvp-select{box-sizing:border-box;width:100%;color:hsl(var(--color-charcoal));background:#fff;border:1px solid #80000033;margin-bottom:1.5rem;padding:1rem 1.25rem;font-family:Inter,sans-serif;font-size:1.05rem}.rsvp-input:focus,.rsvp-select:focus{border-color:hsl(var(--color-gold));outline:none;box-shadow:inset 0 0 5px #d4af3733}.rsvp-button{background:hsl(var(--color-maroon));color:hsl(var(--color-gold));border:2px solid hsl(var(--color-gold));cursor:pointer;letter-spacing:.15em;text-transform:uppercase;width:100%;padding:1.2rem 2.5rem;font-family:Inter,sans-serif;font-size:1.1rem;font-weight:600;transition:all .3s}.rsvp-button:hover{background:hsl(var(--color-gold));color:hsl(var(--color-maroon))}footer{background:hsl(var(--color-maroon-dark));color:hsl(var(--color-cream));text-align:center;border-top:5px solid hsl(var(--color-gold));padding:4rem 2rem;position:relative}.footer-names{color:hsl(var(--color-gold));margin-bottom:1rem;font-family:Playfair Display,serif;font-size:3rem;font-weight:500}.footer-text{opacity:.8;letter-spacing:.1em;font-family:Inter,sans-serif;font-size:.95rem}.section-title{color:hsl(var(--color-maroon));margin-bottom:1.5rem;font-size:3.5rem}.section-subtitle{color:hsl(var(--color-gold));text-transform:uppercase;letter-spacing:.25em;margin-bottom:1rem;font-family:Inter,sans-serif;font-size:.9rem;font-weight:600;display:block}.ribbon-intro{z-index:1000;cursor:pointer;background:hsl(var(--color-maroon));justify-content:center;align-items:center;transition:background 1s;display:flex;position:fixed;inset:0;overflow:hidden}.ribbon-intro.opening{pointer-events:none;background:0 0}.ribbon-door{background:hsl(var(--color-cream));border-right:4px double hsl(var(--color-gold));z-index:0;width:50%;transition:transform 1.2s cubic-bezier(.77,0,.175,1);position:absolute;top:0;bottom:0;box-shadow:0 0 50px #00000080}.ribbon-door-left{transform-origin:0;left:0}.ribbon-door-right{border-left:4px double hsl(var(--color-gold));transform-origin:100%;border-right:none;right:0}.ribbon-intro.opening .ribbon-door-left{transform:translate(-100%)}.ribbon-intro.opening .ribbon-door-right{transform:translate(100%)}.ribbon-stack{z-index:2;text-align:center;flex-direction:column;align-items:center;width:100%;padding:0 2rem;display:flex;position:relative}.ribbon-text{transition:opacity .6s,transform .6s}.ribbon-text-top{margin-bottom:1rem}.ribbon-text-bottom{margin-top:1rem}.ribbon-intro.opening .ribbon-text-top{opacity:0;transform:translateY(-30px)}.ribbon-intro.opening .ribbon-text-bottom{opacity:0;transform:translateY(30px)}.ribbon-invite-names{color:hsl(var(--color-maroon));margin:0;font-family:Playfair Display,serif;font-size:3.5rem;font-weight:500}.ribbon-invite-sub{text-transform:uppercase;letter-spacing:.3em;color:hsl(var(--color-gold));margin:0 0 .5rem;font-family:Inter,sans-serif;font-size:.8rem;font-weight:600}.ribbon-band{z-index:1;width:100vw;height:140px;margin:1rem 0;position:relative;left:50%;transform:translate(-50%)}.ribbon-half{background:hsl(var(--color-maroon));border-top:2px solid hsl(var(--color-gold));border-bottom:2px solid hsl(var(--color-gold));height:70px;transition:transform 1.2s cubic-bezier(.77,0,.175,1),opacity 1.2s;position:absolute;left:0;right:0;box-shadow:0 10px 40px #0006}.ribbon-half-top{top:0}.ribbon-half-bottom{bottom:0}.ribbon-intro.opening .ribbon-half-top{opacity:0;transform:translateY(-120vh)}.ribbon-intro.opening .ribbon-half-bottom{opacity:0;transform:translateY(120vh)}.ribbon-seal{background:hsl(var(--color-gold));border:4px solid hsl(var(--color-maroon));width:90px;height:90px;color:hsl(var(--color-maroon));text-align:center;z-index:2;border-radius:50%;justify-content:center;align-items:center;font-family:Playfair Display,serif;font-size:2.5rem;font-weight:600;transition:transform .8s cubic-bezier(.175,.885,.32,1.275),opacity .6s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 30px #00000080}.ribbon-intro.opening .ribbon-seal{opacity:0;transform:translate(-50%,-50%)scale(0)rotate(180deg)}.ribbon-hint{letter-spacing:.25em;text-transform:uppercase;color:hsl(var(--color-charcoal));z-index:2;margin:3rem 0 0;font-family:Inter,sans-serif;font-size:.85rem;font-weight:500;transition:opacity .5s,transform .5s}.ribbon-intro.opening .ribbon-hint{opacity:0;transform:translateY(20px)}@media (width<=640px){.hero-names{font-size:3rem}.section-title,.ribbon-invite-names{font-size:2.5rem}.ribbon-band{height:100px}.ribbon-half{height:50px}.ribbon-seal{width:70px;height:70px;font-size:2rem}}.success-message{color:hsl(var(--color-maroon));background:hsl(var(--color-cream));border:2px solid hsl(var(--color-gold));text-align:center;padding:2rem;animation:.5s ease-out fadeIn}
