:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#000;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:auto;min-height:100%;width:100%;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;font-family:Great Vibes,cursive;font-weight:400;font-style:normal;color:#333;--wedding-accent: #7198b8;background-color:#fff;scroll-behavior:smooth}body{line-height:1.6}h1{font-size:75px}h2{font-size:50px}h3{font-size:30px}h4{font-size:30px;font-family:Times New Roman,Times,serif;font-weight:100}p{margin-bottom:1rem}a{color:inherit;text-decoration:none}main{margin:auto}.fade-in{animation:fadeIn .6s ease-in-out both}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}#root{margin:0 auto;padding:0;text-align:center}.logo{will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em var(--wedding-accent))}.card{padding:2em}.read-the-docs{color:#888}.base-container{width:100vw;min-height:100vh;padding:20px 30px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;align-items:center;-webkit-overflow-scrolling:touch}.save_the_date-container{width:100vw;min-height:calc(100vh - 5rem);box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;align-items:center}.save_the_date-container h1{font-size:75px}.save_the_date-container h2{font-size:50px}.save_the_date-section{margin:20px;width:55vw}.save_the_date-row{display:flex;flex-direction:row;justify-content:center;font-family:Playfair Display SC,serif;max-width:800px;margin:0 auto}.save_the_date-label{flex:1;display:flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:600;letter-spacing:.05em;border-top:2px solid #333;border-bottom:2px solid #333;margin:0 2rem;margin-bottom:.3em;margin-top:.75em}.save_the_date-center{text-align:center;white-space:nowrap}.save_the_date-date{font-weight:400;font-size:1.5rem}.save_the_date-date-bold{font-weight:600;font-size:2.5rem}@media (max-width: 900px){.save_the_date-section{width:70vw}.save_the_date-label{font-size:1.5rem}.save_the_date-date{font-size:1.25rem}.save_the_date-date-bold{font-size:2.25rem}}@media (max-width: 600px){.save_the_date-section{width:90vw}}@media (max-width: 450px){.save_the_date-container h1{font-size:60px}.save_the_date-container h2{font-size:45px}.save_the_date-section{width:100vw}.save_the_date-label{font-size:1.25rem}.save_the_date-date{font-size:1rem}.save_the_date-date-bold{font-size:2rem}}.countdown-root{padding:0 30px 20px;box-sizing:border-box;display:inline-grid;grid-template-columns:repeat(7,minmax(3ch,.75fr));justify-content:center;gap:1vw;margin:30px 10px 0;row-gap:0px;font-family:Playfair Display SC,serif;color:var(--wedding-accent)}.countdown-row{grid-column:1 / -1;display:contents;font-weight:400;font-size:55px;align-items:end}.countdown-label-row{grid-column:1 / -1;display:contents;font-size:17px;font-weight:400;align-items:center;color:var(--wedding-accent)}.countdown-row>span,.countdown-label-row>div{text-align:center;white-space:nowrap}.countdown-row>span:nth-child(odd),.countdown-label-row>div:nth-child(odd){grid-column:span 1;min-width:3ch;justify-self:center}.countdown-row>span:nth-child(2n),.countdown-label-row>div:nth-child(2n){grid-column:span 1;min-width:1ch;justify-self:center}.countdown-sep{color:var(--wedding-accent)}@media (max-width: 600px){.countdown-row{font-size:45px}.countdown-label-row{font-size:15px;font-weight:400}}.links-row{display:flex;justify-content:space-between;width:75vw;max-width:100%;box-sizing:border-box}.links-row__link{text-decoration:none;font-family:Playfair Display SC,serif;font-size:2rem;font-weight:500;letter-spacing:1px;color:#333;border-bottom:2px solid transparent;transition:color .25s ease,border-bottom .25s ease;color:#fff}.links-row__link:hover,.links-row__link.active{color:#333}.tile-container{width:100%;height:5rem;padding-bottom:0;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;background-color:var(--wedding-accent)}.tile-container h3{font-size:30px}@media (max-width: 450px){.tile-container h3{font-size:25px}}.wedding-container{background:var(--wedding-accent);min-height:75vh;width:100vw;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:auto 0}.wedding-title{color:#fff;font-size:5rem;font-weight:700;text-align:center;margin:2rem 0;line-height:1.1}.wedding-row{display:flex;flex-direction:row;justify-content:center;font-family:Playfair Display SC,serif;color:#fff}.wedding-column{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem 0;white-space:nowrap}.wedding-label{flex:1;display:flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:600;letter-spacing:.05em;border-top:2px solid white;border-bottom:2px solid white;margin:0 2rem;margin-bottom:.3em;margin-top:.75em}.wedding-center{text-align:center;white-space:nowrap}.wedding-date{font-weight:400;font-size:1.5rem}.wedding-date-bold{font-weight:600;font-size:2.5rem}.wedding-details{display:flex;justify-content:center;flex-direction:column;margin-bottom:2rem;width:70vw}.wedding-section{margin:20px}.wedding-container h2{color:#fff;font-family:Playfair Display SC,serif;font-weight:400;font-size:40px}.wedding-container h3{color:#fff;font-family:Playfair Display SC,serif;font-style:normal;font-weight:600;font-size:large}.wedding-rsvp{background:none;color:#fff;border:3px solid white;padding:.75rem 2.5rem;font-size:1.25rem;font-weight:700;margin:2rem 0;cursor:pointer;transition:background-color .2s,color .2s;font-family:Playfair Display SC,serif}.wedding-rsvp:hover{background:#fff;color:var(--wedding-accent)}.registry-container{background:var(--wedding-accent);min-height:75vh;width:100vw;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:auto 0}.registry-title{color:#fff;font-size:5rem;font-weight:700;text-align:center;margin:2rem 0;line-height:1.1}.registry-container h2{color:#fff;font-family:Playfair Display SC,serif;font-weight:400;font-size:40px}.registry-container h3{color:#fff;font-family:Playfair Display SC,serif;font-style:normal;font-weight:600;font-size:large}.registry-btn{background:none;color:#fff;border:3px solid white;padding:.75rem 2.5rem;font-size:1.25rem;font-weight:700;margin:2rem 0;cursor:pointer;transition:background-color .2s,color .2s;font-family:Playfair Display SC,serif}.registry-btn:hover{background:#fff;color:var(--wedding-accent)}.home-container{width:100vw;min-height:calc(100vh - 5rem);padding-bottom:0;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;align-items:center}.home-container h3{font-family:Playfair Display SC,serif;font-weight:400;font-size:30px}.home-logo-wrapper{width:100%;height:100%;display:flex;justify-content:center}.home-logo{max-width:250px;width:100%;height:auto;object-fit:contain}:root{--nav-height: 70px;--menu-transition-duration: .35s;--menu-transition-ease: ease}.navbar{position:fixed;top:0;left:0;width:100%;height:var(--nav-height);background:none;z-index:1003;padding:0 24px;display:flex;justify-content:space-between;align-items:center}.navbar .logo{position:fixed;display:flex;left:24px}.navbar .navbar-logo{height:50px}.nav-link{font-family:Playfair Display SC,serif;font-size:2rem;font-weight:500;color:#333;text-decoration:none;border-bottom:2px solid transparent;padding-bottom:3px;transition:color .25s ease,border-bottom .25s ease}.nav-link:hover,.nav-link.active{color:var(--wedding-accent)}.hamburger{position:absolute;right:24px;display:flex;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer}.hamburger span{display:block;height:3px;width:25px;background:#5a4c3b;border-radius:2px;transition:all .3s ease}.hamburger.open span:nth-child(1){transform:translateY(8px) rotate(45deg);background:#5a4c3b!important}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg);background:#5a4c3b!important}.menu-overlay{position:fixed;bottom:0;left:0;width:74vw;height:0;background:#000000b3;opacity:0;pointer-events:none;transform:translateY(100%);transition:opacity var(--menu-transition-duration) var(--menu-transition-ease),height var(--menu-transition-duration) var(--menu-transition-ease),transform var(--menu-transition-duration) var(--menu-transition-ease);z-index:1010}.menu-overlay.show{height:100%;opacity:1;pointer-events:auto;transform:translateY(0)}.menu-overlay.hide{height:0;opacity:0;pointer-events:none;transform:translateY(100%)}.compact-desktop-panel{position:fixed;top:0;right:0;width:25vw;height:100%;padding:1.5rem 1rem;background:#fff;display:flex;flex-direction:column;justify-content:center;gap:1rem;transform:translateY(-100%);opacity:0;transition:transform var(--menu-transition-duration) var(--menu-transition-ease),opacity var(--menu-transition-duration) var(--menu-transition-ease);z-index:1001}.compact-desktop-panel.show{transform:translateY(0);opacity:1}.compact-desktop-panel.hide{transform:translateY(-100%);opacity:0}.mobile-menu{position:fixed;top:0;left:0;width:100%;height:100%;background:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;opacity:0;transform:translateY(-100%);z-index:999;transition:opacity var(--menu-transition-duration) var(--menu-transition-ease),transform var(--menu-transition-duration) var(--menu-transition-ease)}.mobile-menu.show{opacity:1;transform:translateY(0)}.mobile-menu.hide{opacity:0;transform:translateY(-100%)}.mobile-menu .nav-link{text-align:center}@keyframes fadeInUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.compact-desktop-panel .nav-link,.mobile-menu .nav-link{opacity:0;transform:translateY(15px)}.compact-desktop-panel .nav-link.ready,.mobile-menu .nav-link.ready{animation:fadeInUp .35s forwards cubic-bezier(.23,1,.32,1)}.about-container{width:100vw;height:calc(100vh - var(--nav-height));min-height:100vh;padding:20px 40px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;align-items:center}.travel-container{width:100vw;height:calc(100vh - var(--nav-height));min-height:100vh;padding:20px 0;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;align-items:center}.registry-container{width:100vw;padding:0 30px;margin-top:var(--nav-height);box-sizing:border-box;justify-content:space-between;align-items:center}.registry-container h2{font-family:Playfair Display SC,serif;font-size:30px;padding:10px}.registry{margin-top:20px}.gift-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;width:100%;min-height:auto;height:auto;overflow:visible}.gift-item{position:relative;overflow:hidden;box-shadow:0 2px 10px #0000001a;transition:transform .2s ease;background-color:#fff}.gift-item img{width:100%;height:180px;object-fit:cover;display:block;transition:transform .3s ease}.gift-item:hover img{transform:scale(1.05)}.gift-overlay{position:absolute;bottom:0;left:0;right:0;background:#0009;color:#fff;padding:12px 16px;opacity:0;transition:opacity .3s ease}.gift-item:hover .gift-overlay{opacity:1}.gift-overlay h3{margin:0;font-size:1.1rem;font-family:Playfair Display SC,serif}.gift-overlay p{margin:0;font-size:.9rem;font-family:Playfair Display SC,serif}.gift-overlay span{font-weight:600;color:var(--wedding-accent)}.rsvp-container{width:100vw;height:100vh;min-height:100vh;padding:20px 30px 0;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;align-items:center}.rsvp-section{background:#fff;padding:30px;box-shadow:0 3px 8px #00000014;max-width:600px;margin:auto;font-family:Playfair Display SC,serif}.rsvp-section h1{color:var(--wedding-accent);margin-bottom:20px;text-align:center;font-size:50px}.rsvp-form{display:flex;flex-direction:column;gap:16px}.rsvp-form label{font-weight:600;font-size:17px;display:flex;flex-direction:column;gap:6px}.rsvp-form input,.rsvp-form textarea{background-color:#fff;padding:10px 12px;border:1px solid var(--wedding-accent);font-size:1rem;font-family:inherit;resize:vertical;color:#333}.rsvp-form button{padding:7px;background:#fff;color:var(--wedding-accent);border:2px solid var(--wedding-accent);font-size:1.1rem;font-weight:600;cursor:pointer;transition:background-color .25s ease;font-family:inherit}.rsvp-form button:hover{background:var(--wedding-accent);color:#fff}.notfound-container{width:100vw;height:calc(100vh - var(--nav-height));min-height:100vh;padding:20px 30px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;align-items:center}.notfound-container h1{font-size:10rem;color:var(--wedding-accent);letter-spacing:10px;text-shadow:2px 2px 8px #fffbe7}.notfound-container p{font-size:1.5rem;font-family:Montserrat,sans-serif;font-optical-sizing:auto;font-style:normal}.notfound-link{display:inline-block;margin-top:1.5rem;padding:.9rem 2.8rem;font-size:1.5rem;background:#fff;color:var(--wedding-accent);border-color:var(--wedding-accent);border:2px solid var(--wedding-accent);text-decoration:none;font-family:Montserrat,sans-serif;font-optical-sizing:auto;font-style:normal;font-weight:600;letter-spacing:1px;transition:background-color .25s ease,color .25s ease,border-color .25s ease}.notfound-link:hover{background:var(--wedding-accent);color:#fff}
