html{scroll-behavior:smooth}:root{interpolate-size:allow-keywords;--blue: #1e4d9b;--blue-dark: #122d5e;--blue-light: #c8daea;--blue-wash: #e8f1f8;--cream: #fcfaf8;--text: #2a2624}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Georgia,Times New Roman,serif;font-size:1.15rem;line-height:1.7;color:var(--text);background:var(--cream)}main{width:100%}.content{max-width:680px;margin:0 auto;padding:0 1.5rem}h1{font-family:Mea Culpa,Cormorant Garamond,Georgia,serif;font-size:3.2rem;font-weight:300;letter-spacing:.1em;color:var(--cream);line-height:1.2}h2{font-family:Cormorant Garamond,Georgia,serif;font-size:1.9rem;font-weight:400;letter-spacing:.06em;color:var(--blue-dark);margin-bottom:1.5rem}section{padding:3rem 0}a{color:var(--blue);text-underline-offset:3px;transition:opacity .2s ease}a:hover{opacity:.7}.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}.reveal.visible{opacity:1;transform:none}.logo{aspect-ratio:1;background-color:var(--blue-dark);-webkit-mask-image:url(/icon2-white.svg);mask-image:url(/icon2-white.svg);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}.overlay{position:fixed;inset:0;z-index:10;background:#fff;pointer-events:none}.overlay--fading{animation:fadeOut 1.5s ease-in forwards}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.code-input{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100svh;gap:1.5rem;text-align:center;overflow:hidden}.code-input .logo{width:40%}.code-input-form{display:flex;flex-direction:column;justify-content:stretch;gap:.75rem;width:100%;max-width:320px}.code-input-error{font-size:.9rem;color:var(--blue);opacity:.7}.hero{position:relative;text-align:center;height:100svh;margin-bottom:1rem;padding-bottom:75%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--blue-light);background-image:url(/hero-placeholder.jpeg);background-size:cover;background-position:center}.hero-content{display:flex;flex-direction:column;align-items:center;gap:.75rem}.hero-divider{width:2rem;height:1px;background:var(--cream);opacity:.35}.hero p{font-family:Cormorant Garamond,Georgia,serif;font-style:italic;font-size:1.25rem;letter-spacing:.14em;color:var(--cream);opacity:.75}.hero-scroll-hint{position:absolute;bottom:2rem;font-size:1rem;color:var(--cream);opacity:.6;animation:bob 2.5s ease-in-out infinite}@media(min-width:700px){.hero{height:70vh;padding-bottom:0%}.hero h1{font-size:5rem}}.salute{text-align:center;padding:4rem 0 2rem}.salute p{font-family:Cormorant Garamond,Georgia,serif;font-style:italic;font-size:1.4rem;color:var(--blue-dark);opacity:.85}.calendar-section{display:flex;flex-direction:column;gap:2.5rem}.countdown{display:flex;justify-content:center;gap:.5rem}.countdown-unit{display:flex;flex-direction:column;align-items:center;gap:.25rem}.countdown-value{font-family:Cormorant Garamond,Georgia,serif;font-size:2.8rem;font-weight:300;color:var(--blue-dark);line-height:1}.countdown-label{font-size:.75rem;letter-spacing:.08em;color:var(--blue);opacity:.7;text-transform:lowercase}.countdown-sep{font-size:2rem;color:var(--blue-light);line-height:1.4;padding-bottom:.5rem}.calendar{width:100%;max-width:450px;align-self:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;text-align:center}.calendar-label{font-size:.8rem;letter-spacing:.06em;color:var(--blue);opacity:.6;padding-bottom:.5rem}.calendar-day{margin:.5em;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.95rem;color:var(--text)}.calendar-day--wedding{background:var(--blue);color:var(--cream);font-weight:600;border-radius:999px}.calendar-day--empty{pointer-events:none}.location{display:flex;flex-direction:column;gap:.5rem}.schedule{display:flex;flex-direction:column;gap:.25rem}.schedule-item{display:flex;gap:2rem;padding:.5rem 0}.schedule-item span:first-child{font-variant-numeric:tabular-nums;color:var(--blue);min-width:3.5rem;opacity:.9}.rsvp{display:flex;flex-direction:column;gap:2rem}.rsvp-options{display:flex;gap:.75rem}.rsvp-btn{flex:1;padding:.85rem 1rem;border:1px solid var(--blue-light);background:transparent;font:inherit;font-size:.95rem;letter-spacing:.05em;cursor:pointer;color:var(--blue-dark);transition:background .2s ease,border-color .2s ease,color .2s ease,transform .1s ease}.rsvp-btn:hover:not(.rsvp-btn--active){background:var(--blue-wash);border-color:var(--blue)}.rsvp-btn:active{transform:scale(.98)}.rsvp-btn--active{background:var(--blue);color:var(--cream);border-color:var(--blue)}.rsvp-details{display:flex;flex-direction:column;gap:2rem}.rsvp-field{display:flex;flex-direction:column;gap:.6rem}.rsvp-field>p{font-size:1rem;color:var(--blue-dark)}.rsvp-input{padding:.75rem 1rem;border:none;background:var(--blue-wash);font:inherit;font-size:1rem;color:var(--text);width:100%;outline:none;transition:background .2s ease}.rsvp-input:focus{background:var(--blue-light)}.rsvp-input::placeholder{color:var(--blue-dark);opacity:.4}.rsvp-input-wrap{position:relative}.rsvp-saving{width:6px;height:6px;border-radius:50%;background:var(--blue);animation:pulse .5s ease-in-out infinite;flex-shrink:0;align-self:center}.rsvp-input-wrap .rsvp-saving{position:absolute;right:.75rem;top:50%;transform:translateY(-50%)}.rsvp-stepper{display:flex;align-items:center;gap:0;width:fit-content}.stepper-btn{width:2.5rem;height:2.5rem;border:1px solid var(--blue-light);background:transparent;font:inherit;font-size:1.2rem;cursor:pointer;color:var(--blue-dark);transition:background .2s ease,border-color .2s ease}.stepper-btn:hover{background:var(--blue-wash);border-color:var(--blue)}.stepper-value{min-width:3rem;text-align:center;font-size:1.1rem;color:var(--text);border-top:1px solid var(--blue-light);border-bottom:1px solid var(--blue-light);height:2.5rem;display:flex;align-items:center;justify-content:center}.faq{display:flex;flex-direction:column;gap:0}.collapsible-trigger{width:100%;display:flex;justify-content:space-between;align-items:center;background:none;border:none;border-top:1px solid var(--blue-wash);padding:1.1rem 0;cursor:pointer;font:inherit;font-size:1.05rem;color:var(--blue-dark);letter-spacing:.02em;transition:color .2s ease}.collapsible-trigger:hover{color:var(--blue)}.collapsible-chevron{stroke:var(--blue-light);flex-shrink:0;transition:transform .3s ease,stroke .2s ease}.collapsible-chevron--open{transform:rotate(180deg)}.collapsible-trigger:hover .collapsible-chevron{stroke:var(--blue)}.collapsible-content{height:0;opacity:0;overflow:hidden;transition:height .3s ease,opacity .3s ease}.collapsible-content--open{height:auto;opacity:1;padding-bottom:1.25rem}.photos-sticky{position:sticky;top:0;height:100svh;overflow:hidden}.photos-hint{position:absolute;z-index:1;bottom:3.25rem;left:50%;transform:translate(-50%);width:1.5em;height:1.5em;display:flex;align-items:center;justify-content:center;border-radius:100%;background-color:var(--cream);color:var(--blue);font-size:1rem;text-shadow:0 1px 6px rgba(0,0,0,.4);opacity:.8;transition:opacity .75s ease;animation:bob 2.5s ease-in-out infinite;pointer-events:none}.photos-strip{display:flex;height:100%;gap:.5rem;padding:2em 0;will-change:transform}.photo-item{height:100%;width:auto;max-width:100vw;object-fit:cover;flex-shrink:0}.goodbye{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.25rem}.goodbye .logo{width:35%;opacity:.6}.goodbye p{font-family:Cormorant Garamond,Georgia,serif;font-style:italic;font-size:1.1rem;color:var(--blue-dark);opacity:.7}.goodbye-names{font-size:1.5rem!important;opacity:1!important;letter-spacing:.08em}
