@charset "UTF-8";*,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }*{margin:0;padding:0;box-sizing:border-box}body{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(165deg,#fef6f8,#f5e6ff,#e8f4ff 70%,#fff5e8);font-family:"Noto Serif SC",serif;color:#2d2d2d;overflow-x:hidden}body:before{content:"";position:fixed;inset:-50%;background:radial-gradient(ellipse 60% 50% at 15% 30%,rgba(255,150,180,.4) 0%,transparent 55%),radial-gradient(ellipse 50% 45% at 85% 25%,rgba(255,180,130,.35) 0%,transparent 50%),radial-gradient(ellipse 55% 40% at 25% 75%,rgba(150,220,220,.35) 0%,transparent 50%),radial-gradient(ellipse 50% 50% at 80% 70%,rgba(200,170,255,.3) 0%,transparent 50%);animation:bgFloat 18s ease-in-out infinite alternate;z-index:0;pointer-events:none}@keyframes bgFloat{0%{transform:translate(0) scale(1)}to{transform:translate(-3%,-2%) scale(1.08)}}.app{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column}.header{position:sticky;top:0;z-index:10;padding:1rem 1.5rem;flex-shrink:0;background:linear-gradient(165deg,#fef6f8b3,#f5e6ffa6,#e8f4ff99);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border-bottom:1px solid rgba(255,255,255,.5);box-shadow:0 1px #c8aaff26}.nav{display:flex;justify-content:center;gap:2rem;font-size:.9rem;letter-spacing:.1em}.nav__link{color:#644678b3;text-decoration:none;transition:color .3s}.nav__link:hover{color:#e84a7a}.nav__link--active{color:#e84a7a;font-weight:500}.main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem}.page-title{font-size:1.5rem;font-weight:400;letter-spacing:.2em;color:#503c64e6;margin-bottom:.5rem}.page-subtitle{font-size:.85rem;color:#785a8ca6;letter-spacing:.15em;margin-bottom:2rem}.page-home{text-align:center}.greeting{font-size:.9rem;font-weight:300;letter-spacing:.15em;color:#785a8cbf;margin-bottom:1.25rem;opacity:0;animation:fadeInUp 1s ease-out 0s forwards}.greeting__name{color:#e84a7a;font-weight:500;letter-spacing:.25em;margin-left:.35em}.anniversary-counter{text-align:center}.anniversary-counter__label{font-size:.7rem;font-weight:300;letter-spacing:.4em;color:#644678b3;margin-bottom:.75rem;text-transform:uppercase;opacity:0;animation:fadeInUp 1s ease-out .2s forwards}.anniversary-counter__date{font-size:.85rem;font-weight:300;letter-spacing:.2em;color:#785a8ca6;margin-bottom:2rem;opacity:0;animation:fadeInUp 1s ease-out .4s forwards}.anniversary-counter__days{font-size:clamp(3.5rem,14vw,7rem);font-weight:300;letter-spacing:.02em;line-height:1.2;color:#503c64d9;opacity:0;animation:fadeInUp 1.2s ease-out .6s forwards}.anniversary-counter__number{display:inline-block;color:#e84a7a;font-weight:500;animation:softPulse 6s ease-in-out 2.6s infinite}.page-timeline{width:100%;max-width:28rem;text-align:center}.timeline{list-style:none;text-align:left;position:relative;padding-left:1.5rem;border-left:1px solid rgba(120,90,140,.25);margin:0 auto 2rem}.timeline__item{position:relative;padding-bottom:1.5rem;opacity:0;animation:fadeInUp .6s ease-out forwards}.timeline__item:last-child{padding-bottom:0}.timeline__date{font-size:.75rem;color:#785a8ca6;letter-spacing:.1em}.timeline__dot{position:absolute;left:-1.65rem;top:.25rem;width:8px;height:8px;border-radius:50%;background:#e84a7a}.timeline__content{margin-top:.25rem}.timeline__title{font-size:1rem;font-weight:400;color:#503c64e6}.timeline__desc{font-size:.8rem;color:#785a8ca6;margin-top:.25rem}.timeline__status{display:inline-block;font-size:.75rem;margin-top:.35rem;letter-spacing:.05em}.timeline__status--passed{color:#64467899}.timeline__status--upcoming{color:#e84a7a}.timeline-tip{font-size:.85rem;color:#785a8cbf}.page-about{text-align:center}.about-content{margin-top:1rem}.about__text{font-size:1rem;color:#503c64d9;margin-bottom:.75rem;letter-spacing:.1em}.about__date{font-size:.9rem;color:#785a8ca6;margin-top:1.5rem;letter-spacing:.15em}@keyframes softPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.01)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}
