button{font-family:var(--font-1);color:var(--text-1);cursor:pointer}.btn{display:flex;align-items:center;justify-content:center;gap:1.5rem;text-align:left;padding:.75rem 2rem;border-radius:6rem;border-color:var(--secondary-color);background:var(--button-color);color:var(--text-1);transition:all .2s ease-out}.btn img{width:2.5rem}.btn:hover{background:var(--button-color-hvr);transition:all .2s ease-out}.btn-sm{min-width:0}@media (max-width: 480px){.btn img{width:2.25rem}}:root{--primary-color: pink;--secondary-color: hotpink;--color-3: rgb(214, 52, 71);--button-color: rgb(255, 221, 227);--button-color-hvr: rgb(255, 168, 184);--text-1: rgb(10, 10, 10);--text-2: rgb(50, 50, 50);--text-3: rgb(90, 90, 90);--text-4: rgb(120, 120, 120);--text-5: rgb(150, 150, 150);--card-bg-gradient-135deg: linear-gradient(135deg, #fff5f7 65%, #ffe0e6 100%);--card-bg-gradient-165deg: linear-gradient(165deg, #fff5f7 65%, #ffe0e6 100%);--filter-white: invert(93%) sepia(100%) saturate(0%) hue-rotate(350deg) brightness(107%) contrast(102%);--font-1: "Google Sans Code", "InterVariable", system-ui, sans-serif;--font-2: "Courier New", Courier, monospace}@font-face{font-family:Google Sans Code;src:url(/fonts/GoogleSansCode-VariableFont_wght.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}html,body,#root{height:100%}#root{margin:0 auto}*,*:before,*:after{margin:0;padding:0;box-sizing:inherit}html{background:var(--primary-color);color:var(--text-1);font-family:var(--font-1);font-size:62.5%;overflow:hidden;box-sizing:border-box}h1{font-size:3rem}h2,.p-lg{font-size:2rem}p,a,span,div{font-size:1.75rem;font-weight:600}.p-sm,label{font-size:1.5rem}.p-600{font-weight:600}.page-content-center{flex-grow:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4rem;padding:4rem 2rem}.content-ctnr{width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem}.page-header{display:flex;align-items:center;gap:1.5rem}.page-header img{width:2.5rem}.mobile-only{display:none}.label{color:var(--text-2)}.df{display:flex}.fdc{flex-direction:column}.aic{align-items:center}.ais{align-items:start}.aie{align-items:end}.jcr{justify-content:right}.jcc{justify-content:center}.jcsb{justify-content:space-between}.g025{gap:.25rem}.g05{gap:.5rem}.g075{gap:.75rem}.g1{gap:1rem}.g105{gap:1.5rem}.g2{gap:2rem}.g3{gap:3rem}.g4{gap:4rem}.mwfc{max-width:fit-content}.w100{width:100%}.tac{text-align:center}.tar{text-align:right}.tal{text-align:left}.f1{flex:1}.nowrap{white-space:nowrap}.mb05{margin-bottom:.5rem}.mb1{margin-bottom:1rem}@media (max-width: 768px){h1{font-size:2.5rem}h2,.p-lg{font-size:1.75rem}p,a,span{font-size:1.5rem}.p-sm,label{font-size:1.25rem}}@media (max-width: 480px){h1{font-size:2.25rem}.page-header img{width:2rem}.mobile-only{display:block}}.nav-ctnr{width:100%;display:flex;justify-content:center;padding:2rem}.nav-dock{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:1rem 3rem;border-radius:6rem;border:2px solid var(--secondary-color);background:var(--button-color);color:var(--text-color)}.nav-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:4rem;padding:.5rem;min-width:5rem;transition:scale .5s ease,background .5s ease}.nav-btn img{width:2rem}.nav-btn:hover{scale:125%;transition:scale .5s ease,background .5s ease}.nav-btn-active,.nav-btn-active:hover{background:var(--button-color-hvr)}@media (max-width: 480px){.nav-ctnr{padding:.25rem 2rem}.nav-dock{border:0;border:1px solid var(--secondary-color);width:100%;gap:0;justify-content:space-around}.nav-btn img{width:2.25rem}.nav-btn:hover{scale:100%;transition:background .2s ease}}.layout-wrapper{display:flex;flex-direction:column;height:100svh;overflow:hidden}.app-content{flex:1;display:flex;flex-direction:column;position:relative;overflow-y:auto;mask-image:linear-gradient(to bottom,black 95%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 95%,transparent 100%)}.app-content::-webkit-scrollbar{display:none}.highlight{background:var(--button-color)}.home-btns-ctnr{display:flex;align-items:center;justify-content:center;gap:4rem;padding:0 2rem;flex-flow:wrap}.home-btn{display:flex;flex-direction:column;align-items:center;gap:1rem;background:none;border:none}.home-btn:hover .home-btn-img-ctnr{scale:1.1;transition:all .2s ease-out}.home-btn-img-ctnr{display:flex;align-items:center;justify-content:center;background:var(--button-color);padding:1rem;border:2px solid var(--secondary-color);border-radius:100%;transition:all .2s ease-out}.home-btn-img-ctnr img{width:2.5rem}@media (max-width: 480px){.home-btns-ctnr{padding:0}}.floating-heart{position:fixed;bottom:0;left:50%;font-size:2rem;opacity:.8;animation:floatUp 6s ease-in infinite;pointer-events:none}@keyframes floatUp{0%{transform:translate(0) translateY(0) scale(1);opacity:1}50%{opacity:.7}to{transform:translate(calc(-50px + 100px * var(--random-x))) translateY(-100vh) scale(1.2);opacity:0}}.love-list{display:flex;flex-direction:column;align-items:center;gap:1rem}.love-item{display:flex;align-items:start;gap:2rem;background:linear-gradient(165deg,#fff5f7 50%,#ffe0e6);padding:1rem 2rem;border:1px solid var(--secondary-color);box-shadow:0 4px 12px #d6344726;border-radius:1rem;width:75%}@media (max-width: 480px){.love-item{width:90%}}.carousel-container{height:60svh;max-height:60svh;width:40%;position:relative;overflow:hidden;border-radius:1rem;transition:width .2s ease-out}.carousel-image-wrapper{height:100%;position:relative}.carousel-image-wrapper img{height:100%;width:100%;object-fit:cover;display:block;transition:object-fit .3s ease,background-color .3s ease}.carousel-description{position:absolute;bottom:1rem;left:1rem;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,1)}.carousel-date{font-size:1.5rem}.carousel-btn-ctnr{display:flex;align-items:center;gap:1rem;position:absolute;right:1rem;bottom:1rem}.carousel-btn{display:flex;align-items:center;justify-content:center;background:#0009;color:#fff;border:none;padding:.5rem .8rem;border-radius:.5rem;z-index:2}.carousel-btn img{width:1.75rem;filter:var(--filter-white)}.carousel-btn:hover{background:#000c}.carousel-container.fullscreen{width:100vw;height:100vh;max-height:100vh;border-radius:0}.carousel-container.fullscreen .carousel-image-wrapper img{object-fit:contain;background-color:#000}.carousel-container.fullscreen .carousel-title{font-size:2rem}.carousel-container.fullscreen .carousel-date{font-size:1.75rem}.carousel-container.fullscreen .carousel-btn img{background:none;width:2rem}@media (max-width: 1024px){.carousel-container{width:75%}}@media (max-width: 768px){.carousel-container{width:100%}}@media (max-width: 480px){.carousel-container{height:50svh;max-height:50svh;position:relative;overflow:hidden;border-radius:1rem}.carousel-description{top:1rem;width:100%;display:flex;flex-direction:column}.carousel-date{font-size:1.25rem}.carousel-btn-ctnr{width:100%;right:0;bottom:0;justify-content:center;background:#00000080}.carousel-btn{font-size:2rem;border-radius:1rem;padding:.5rem 2rem;flex:1}.carousel-btn,.carousel-btn:hover{background:none}.fullscreen-btn{display:none}.carousel-container.fullscreen .carousel-description{top:2rem}.carousel-container.fullscreen .carousel-btn-ctnr{padding:2rem 0}}.gallery-skeleton{background:linear-gradient(165deg,#fff5f7,#ffe0e6);border-radius:.75rem;width:100%;height:100%;position:absolute;top:0;left:0;z-index:1;transition:opacity .2s}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem;width:100%;max-width:1400px;padding:1rem}.gallery-item{position:relative;aspect-ratio:1;overflow:hidden;border-radius:.75rem;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.gallery-item:hover{transform:translateY(-5px);box-shadow:0 10px 30px #0000004d}.gallery-item:hover img{transform:scale(1.1)}.gallery-item:hover .gallery-overlay{opacity:1}.gallery-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);padding:1rem;opacity:0;transition:opacity .3s ease}.gallery-title{color:#fff;margin-bottom:.25rem;text-shadow:0 1px 3px rgba(0,0,0,.8)}.gallery-date{color:#ffffffe6;text-shadow:0 1px 3px rgba(0,0,0,.8)}.lightbox{position:fixed;top:0;left:0;right:0;bottom:0;background:#ffc0cbf2;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.lightbox-content{max-width:90vw;max-height:85vh;position:relative}.lightbox-content img{max-width:100%;max-height:60vh;object-fit:contain;border-radius:.5rem}.lightbox-description{position:absolute;top:4rem;text-align:center}.lightbox-title{font-weight:600;margin-bottom:.5rem}.lightbox-nav{display:none}@media (max-width: 768px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.lightbox-content img{max-height:70vh}}@media (max-width: 480px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;padding:.5rem}.gallery-overlay{display:none}.lightbox{padding:1rem}.lightbox-content img{max-height:60vh}.lightbox-nav{display:flex;gap:1rem;position:absolute;bottom:8rem;transform:translate(-50%);z-index:1001}}.view-switcher{display:flex;border-radius:1rem;border:2px solid var(--secondary-color);border-radius:6rem}.view-btn{display:flex;align-items:center;gap:.5rem;background:none;border:none;padding:.75rem 1.5rem;border-radius:6rem;cursor:pointer;font-size:1rem;transition:all .3s ease;color:var(--text-1)}.view-btn:hover{background:#ffffff40}.view-btn.active{background:linear-gradient(165deg,#fff5f7 25%,#ffe0e6)}@media (max-width: 480px){.view-switcher{width:80%;justify-content:center}.view-btn{flex:1;justify-content:center;padding:.75rem 1rem}}.year-list-ctnr{display:flex;flex-direction:column;gap:2rem}.year-ctnr,.fav-list{display:flex;flex-direction:column;gap:1rem}.fav-item-card{display:flex;align-items:start;justify-content:space-between;gap:4rem;background:linear-gradient(165deg,#fff5f7 50%,#ffe0e6);padding:1rem 2rem;border:1px solid var(--secondary-color);box-shadow:0 4px 12px #d6344726;border-radius:1rem}.fav-item-card p{text-align:right}.fav-title{display:flex;align-items:center;gap:1rem}.fav-title img{width:2rem}.fav-title p{text-align:left}@media (max-width: 480px){.fav-item-card{flex-direction:column;gap:1rem}.fav-item-card p{text-align:left}}.letters-container{width:100%;max-width:1200px;margin:0 auto;padding:20px}.envelopes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:2rem}.envelope{aspect-ratio:1;border-radius:1rem;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #0000001a;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.envelope.locked{background:var(--card-bg-gradient-135deg);opacity:.65;cursor:not-allowed}.envelope.locked:hover{transform:none;box-shadow:0 4px 12px #0000001a}.envelope.unlocked{background:var(--card-bg-gradient-135deg);cursor:pointer}.envelope.unlocked:hover:not(.opened){transform:translateY(-5px);box-shadow:0 8px 20px #dc354559}.envelope-closed{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;height:100%;padding:15px;text-align:center;position:relative}.envelope-icon{width:2rem}.float{animation:float 2s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.envelope-date{color:var(--color-3)}.envelope-day{color:var(--text-2)}.lock-icon{position:absolute;bottom:.75rem;right:.75rem}.envelope.opened{grid-column:1 / -1;position:relative;width:100%;height:auto;aspect-ratio:auto;z-index:1000;background:var(--card-bg-gradient-165deg);box-shadow:0 8px 24px #0003;margin:0 auto}.envelope-open{width:100%;height:100%;padding:2rem;overflow-y:auto}.letter-content{display:flex;flex-direction:column;gap:15px}.letter-header{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid var(--color-3);padding-bottom:1.5rem}.letter-date{color:var(--color-3)}.days-until{color:var(--text-3);font-style:italic}.letter-text{line-height:1.6;color:var(--text-1);margin:15px 0;white-space:pre-wrap;word-wrap:break-word}.close-letter-btn{align-self:center;padding:10px 30px;background-color:var(--color-3);color:#fff;border:none;border-radius:25px;font-size:.95rem;cursor:pointer;transition:all .3s ease;margin-top:10px}.close-letter-btn:hover{background-color:#b8283b;transform:scale(1.05)}.close-letter-btn:active{transform:scale(.98)}.letters-container:before{content:"";position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0009;z-index:999;opacity:0;pointer-events:none;transition:opacity .3s ease}.letters-container.has-opened-letter:before{opacity:1;pointer-events:auto}@media (max-width: 1024px){.envelopes-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:1.5rem}}@media (max-width: 768px){.letters-container{padding:1.5rem}.envelopes-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:1.2rem}.envelope.opened{max-width:95%}.envelope-open{padding:1.5rem}}@media (max-width: 480px){.letters-container{padding:1rem}.envelopes-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:1rem}.envelope{aspect-ratio:1}.envelope-closed{padding:1rem;gap:.5rem}.envelope.opened{max-width:100%}.envelope-open{padding:1.25rem}.letter-header{padding-bottom:1.25rem}.letter-text{line-height:1.5;margin:1rem 0}}.travel-grid{display:grid;width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.travel-card{display:flex;flex-direction:column;background:linear-gradient(165deg,#fff5f7 50%,#ffe0e6);border:1px solid var(--secondary-color);box-shadow:0 4px 12px #d6344726;border-radius:1rem;width:100%;min-width:0}.travel-card-img-ctnr{width:100%;background:linear-gradient(165deg,#fff5f7,#ffe0e6);border-radius:1rem 1rem 0 0;height:45svh;overflow:hidden}.travel-card-img-ctnr img{width:100%;height:100%;object-fit:cover;display:block}.travel-card-info{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1rem 2rem}.travel-play-btn{padding:.75rem}@media (max-width: 1024px){.travel-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.travel-grid{grid-template-columns:1fr}.travel-card-img-ctnr{height:50svh}}@media (max-width: 480px){.travel-grid{grid-template-columns:1fr}.travel-card-info{gap:1rem;padding:1rem 1.5rem}}
