*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;min-height:100%}body{background:#070510;min-height:100vh}button{-webkit-tap-highlight-color:transparent}.galaxy-screen{z-index:2;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:100px 20px 65px;display:flex;position:relative}.galaxy-header{text-align:center;z-index:3;position:absolute;top:45px}.galaxy-header h2{margin-bottom:8px;font-family:Cormorant Garamond,serif;font-size:clamp(35px,5vw,55px);font-weight:500}.galaxy-header h2 span{color:#d6a8ff;text-shadow:0 0 20px #a855f7;font-style:italic}.galaxy-header>p:last-child{color:#b9a9c9;letter-spacing:.5px;font-size:12px}.interactive-galaxy{background:radial-gradient(#6f28a41a,#0000 70%);border-radius:50%;width:min(900px,100%);height:min(560px,65vh);min-height:380px;margin-top:30px;position:relative}.memory-star{color:#f3dcff;cursor:pointer;z-index:3;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;font-size:25px;transition:transform .3s,color .3s;animation:2.5s ease-in-out infinite alternate starPulse;display:flex;position:absolute;transform:translate(-50%,-50%)}.memory-star span{text-shadow:0 0 8px #e5baff,0 0 18px #a855f7,0 0 30px #9333ea;transition:all .3s}.memory-star:hover{color:#fff;z-index:5;transform:translate(-50%,-50%)scale(1.6)}.memory-star:hover span{text-shadow:0 0 12px #fff,0 0 25px #d8a4ff,0 0 45px #a855f7}.memory-star.visited{color:#f9c8ff}.memory-star.visited span{text-shadow:0 0 10px #f0abfc,0 0 25px #d946ef}.memory-star.special-star{color:#fff1b8;font-size:37px;animation:1.5s ease-in-out infinite alternate specialGlow}.memory-star.special-star span{text-shadow:0 0 12px #fff,0 0 30px #e9a8ff,0 0 50px #c084fc}@keyframes starPulse{0%{opacity:.65}to{opacity:1}}@keyframes specialGlow{0%{filter:brightness(.8);transform:translate(-50%,-50%)scale(.9)}to{filter:brightness(1.5);transform:translate(-50%,-50%)scale(1.2)}}.galaxy-footer{color:#bba2d2;letter-spacing:2px;justify-content:space-between;gap:20px;width:min(600px,90%);font-size:9px;display:flex;position:absolute;bottom:25px}.memory-overlay{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#05030dc7;justify-content:center;align-items:center;padding:20px;animation:.35s overlayFade;display:flex;position:fixed;inset:0}.memory-card{text-align:center;background:linear-gradient(145deg,#32184ef7,#100a20fa);border:1px solid #d6a8ff59;border-radius:25px;width:min(440px,100%);padding:50px 35px;animation:.45s popupIn;position:relative;box-shadow:0 0 35px #a855f733,inset 0 0 30px #a855f712}.close-button{color:#d6a8ff;cursor:pointer;background:0 0;border:none;font-size:30px;position:absolute;top:15px;right:20px}.popup-star{color:#f2d7ff;text-shadow:0 0 25px #c084fc;margin-bottom:20px;font-size:55px}.popup-label{color:#c59de5;letter-spacing:3px;margin-bottom:15px;font-size:9px}.memory-card h2{color:#f3dfff;margin-bottom:18px;font-family:Cormorant Garamond,serif;font-size:38px;font-weight:500}.popup-message{color:#d2c2e2;font-size:13px;font-weight:300;line-height:2}.popup-decoration{color:#d5a9ff;margin:25px 0;font-size:22px}.popup-button{color:#f1ddff;letter-spacing:1px;cursor:pointer;background:#a55fd726;border:1px solid #b17ad9;border-radius:30px;padding:12px 25px;font-family:Poppins,sans-serif;font-size:11px;transition:all .3s}.popup-button:hover{background:#9b59d6;box-shadow:0 0 20px #a855f7}@keyframes popupIn{0%{opacity:0;transform:translateY(25px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes overlayFade{0%{opacity:0}to{opacity:1}}@media (width<=600px){.galaxy-screen{padding:120px 5px 70px}.galaxy-header{width:100%;padding:0 12px;top:35px}.galaxy-header>p:last-child{font-size:10px}.interactive-galaxy{width:100%;height:65vh;min-height:380px;margin-top:10px}.memory-star{width:35px;height:35px;font-size:21px}.memory-star.special-star{font-size:32px}.galaxy-footer{letter-spacing:1px;gap:10px;font-size:7px;bottom:25px}.memory-card{padding:45px 22px}.memory-card h2{font-size:32px}.popup-message{font-size:12px}}.memory-section{color:#fff;background:linear-gradient(#10091e,#1b1030,#10091e);width:100%;padding:90px 7%;position:relative;overflow:hidden}.section-heading{text-align:center;margin-bottom:55px}.section-heading>p:first-child{color:#c69bea;letter-spacing:4px;margin-bottom:15px;font-size:10px}.section-heading h2{font-family:Cormorant Garamond,serif;font-size:clamp(35px,5vw,55px);font-weight:500}.section-heading h2 span{color:#d6a8ff;font-style:italic}.section-heading>p:last-child{color:#bbaacb;margin-top:15px;font-size:12px;line-height:2}.constellation-card{text-align:center;background:#854bae17;border:1px solid #d6a8ff33;border-radius:25px;max-width:750px;margin:0 auto 110px;padding:35px 25px;box-shadow:0 0 35px #9333ea14}.memory-label{color:#d6a8ff;letter-spacing:4px;font-size:9px}.constellation-card h3{margin:15px 0;font-family:Cormorant Garamond,serif;font-size:32px;font-weight:500}.constellation-card>p:not(.memory-label){color:#bbaacb;font-size:12px;line-height:2}.constellation-art{width:100%;max-width:430px;margin:25px auto 5px}.constellation-art svg{width:100%;overflow:visible}.constellation-lines path{fill:none;stroke:#c084fc;stroke-width:1.3px;stroke-dasharray:5 5;filter:drop-shadow(0 0 5px #c084fc);animation:3s ease-in-out infinite alternate constellationGlow}.constellation-dot{fill:#f3d9ff;filter:drop-shadow(0 0 7px #d8a4ff);animation:2s infinite alternate dotGlow}@keyframes constellationGlow{0%{opacity:.35}to{opacity:1}}@keyframes dotGlow{0%{opacity:.5}to{opacity:1}}.constellation-names{color:#d6a8ff;letter-spacing:3px;justify-content:space-around;max-width:350px;margin:10px auto 0;font-size:9px;display:flex}.gallery-heading{margin-bottom:45px}.photo-gallery{grid-template-columns:repeat(4,1fr);gap:25px;max-width:1000px;margin:auto auto 120px;display:grid}.photo-card{background:#f5edf8;border-radius:5px;padding:10px 10px 18px;transition:all .4s;transform:rotate(-2deg);box-shadow:0 10px 30px #00000040}.photo-card:nth-child(2n){transform:rotate(2deg)}.photo-card:hover{transform:rotate(0)translateY(-12px);box-shadow:0 15px 35px #a855f74d}.photo-frame{aspect-ratio:1;background:#271936;width:100%;position:relative;overflow:hidden}.photo-frame img{object-fit:cover;width:100%;height:100%;display:block}.photo-placeholder{color:#e1c4fa;background:linear-gradient(135deg,#352047,#170e28);flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:none}.photo-placeholder span{font-size:35px}.photo-placeholder p{margin-top:10px;font-size:10px}.photo-caption{color:#392747;text-align:center;margin-top:14px;font-family:Cormorant Garamond,serif;font-size:16px}.timeline-heading{margin-bottom:55px}.timeline{max-width:650px;margin:auto auto 120px;position:relative}.timeline:before{content:"";background:linear-gradient(#0000,#c084fc,#9333ea,#0000);width:1px;position:absolute;top:15px;bottom:15px;left:22px}.timeline-item{gap:25px;margin-bottom:45px;display:flex;position:relative}.timeline-icon{background:#211330;border:1px solid #a66cda;border-radius:50%;flex-shrink:0;place-items:center;width:45px;height:45px;display:grid;box-shadow:0 0 15px #a855f740}.timeline-content{padding-top:5px}.timeline-content span{color:#c69bea;letter-spacing:3px;font-size:9px}.timeline-content h3{margin:7px 0;font-family:Cormorant Garamond,serif;font-size:27px;font-weight:500}.timeline-content p{color:#bbaacb;font-size:12px;line-height:1.9}.memory-ending{text-align:center;border-top:1px solid #d6a8ff26;padding:65px 20px}.memory-ending>div{color:#e3c2ff;text-shadow:0 0 20px #a855f7;font-size:40px}.memory-ending h2{color:#e2c0ff;margin:20px 0;font-family:Cormorant Garamond,serif;font-size:clamp(27px,4vw,42px);font-weight:500}.memory-ending p{color:#bbaacb;font-size:12px;line-height:2}.memory-ending span{letter-spacing:4px;color:#c69bea;margin-top:30px;font-size:9px;display:block}@media (width<=700px){.memory-section{padding:70px 6%}.photo-gallery{grid-template-columns:repeat(2,1fr);gap:18px;margin-bottom:90px}.photo-caption{font-size:14px}.constellation-card{margin-bottom:85px;padding:30px 15px}.constellation-card h3{font-size:27px}.timeline-item{gap:17px}.timeline-content h3{font-size:23px}}@keyframes shootingStar{0%{opacity:0;left:-120px}10%{opacity:1}35%{opacity:0;left:110%}to{opacity:0;left:110%}}.memory-section:before,.memory-section:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#e5c4ff,#0000);width:100px;height:2px;animation:5s linear infinite shootingStar;position:absolute;transform:rotate(-35deg);box-shadow:0 0 12px #c084fc}.memory-section:before{top:15%;left:-120px}.memory-section:after{animation-delay:3s;top:55%;left:-120px}.secret-letter{text-align:center;color:#fff;background:radial-gradient(circle,#30145c,#080015 75%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:100px 20px;display:flex}.letter-subtitle{color:#d8b4fe;letter-spacing:3px}.secret-letter h2{margin:15px 0 60px;font-size:2.5rem}.envelope{cursor:pointer;background:#a855f7;border-radius:10px;width:280px;height:180px;transition:transform .4s;position:relative;box-shadow:0 0 35px #a855f7}.envelope:hover{transform:translateY(-10px)}.envelope-back{background:#c084fc;border-radius:10px;position:absolute;inset:0}.envelope-front{border-bottom:100px solid #9333ea;border-left:140px solid #0000;border-right:140px solid #0000;width:0;height:0;position:absolute;bottom:0}.envelope-flap{border-top:100px solid #d8b4fe;border-left:140px solid #0000;border-right:140px solid #0000;width:0;height:0;position:absolute;top:0}.envelope-heart{z-index:2;font-size:35px;position:absolute;top:65px;left:0;right:0}.envelope p{color:#e9d5ff;width:100%;position:absolute;top:190px}.letter-paper{color:#43205f;text-align:left;white-space:pre-line;background:#fff7ff;border-radius:15px;width:min(90%,550px);padding:40px;line-height:1.8;animation:1s letterOpen;box-shadow:0 0 40px #c084fc}.letter-paper h3{color:#9333ea;margin-bottom:20px}.letter-sign{color:#9333ea;margin-top:25px;font-weight:700;display:block}@keyframes letterOpen{0%{opacity:0;transform:scale(.7)translateY(30px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (width<=600px){.secret-letter h2{font-size:1.8rem}.letter-paper{padding:25px}}.final-surprise{text-align:center;color:#fff;background:radial-gradient(#35145e 0%,#16072d 48%,#05000d 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:100px 20px 60px;display:flex;position:relative;overflow:hidden}.final-stars{color:#e9d5ff;letter-spacing:12px;font-size:2rem;animation:2s infinite alternate starGlow}.final-label{color:#d8b4fe;letter-spacing:4px;margin-top:35px;font-size:.8rem}.final-surprise h1{max-width:800px;margin:20px 0;font-size:clamp(2.5rem,7vw,5rem);line-height:1.15}.final-surprise h1 span{color:#d8a7ff;text-shadow:0 0 25px #a855f7;display:block}.final-intro{color:#dfd0f5;max-width:520px;margin:15px 0 35px;font-size:1.1rem;line-height:1.8}.final-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#9333ea,#6b21a8);border:1px solid #e9d5ff;border-radius:40px;padding:16px 30px;font-size:1rem;transition:all .3s;box-shadow:0 0 25px #9333ea}.final-button:hover{transform:scale(1.07);box-shadow:0 0 40px #c084fc}.final-message{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff14;border:1px solid #c084fc;border-radius:22px;width:min(90%,600px);margin-top:20px;padding:35px;animation:1s revealMessage;box-shadow:0 0 40px #a855f74d}.big-heart{font-size:4rem;animation:1.3s infinite heartBeat}.final-message h2{color:#e9d5ff;font-size:2rem}.final-message p{color:#f3e8ff;white-space:pre-line;line-height:1.9}.final-message h3{color:#d8b4fe;margin-top:25px}.floating-hearts span{opacity:.7;font-size:24px;animation:9s linear infinite floatUp;position:absolute;bottom:-60px}.floating-hearts span:first-child{animation-delay:0s;left:8%}.floating-hearts span:nth-child(2){animation-delay:2s;left:25%}.floating-hearts span:nth-child(3){animation-delay:4s;left:48%}.floating-hearts span:nth-child(4){animation-delay:1s;left:68%}.floating-hearts span:nth-child(5){animation-delay:3s;left:85%}.floating-hearts span:nth-child(6){animation-delay:5s;left:38%}.final-footer{color:#c4a5e8;font-size:.85rem;position:absolute;bottom:20px}@keyframes floatUp{0%{opacity:0;transform:translateY(0)rotate(0)}20%{opacity:.8}to{opacity:0;transform:translateY(-110vh)rotate(360deg)}}@keyframes heartBeat{50%{transform:scale(1.2)}}@keyframes revealMessage{0%{opacity:0;transform:translateY(25px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes starGlow{0%{text-shadow:0 0 5px #c084fc}to{text-shadow:0 0 25px #e9d5ff}}@media (width<=600px){.final-message{padding:25px 20px}.final-message h2{font-size:1.6rem}.final-message p{font-size:.95rem}}.music-player{z-index:9999;position:fixed;bottom:25px;right:25px}.music-player button{color:#fff;cursor:pointer;background:#411464e6;border:1px solid #d8b4fe;border-radius:30px;padding:13px 22px;font-size:14px;transition:all .3s;box-shadow:0 0 20px #9333ea}.music-player button:hover{background:#9333ea;transform:scale(1.05)}
