:root{--bg-color:#fafafa;--text-color:#4a4a4a;--primary:#96c2a8;--secondary:#b2d3c0;--accent:#e5f0ea;--glass-bg:#fff9;--glass-border:#fffc;--glass-shadow:0 4px 16px #96c2a826}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--text-color);background:url(/love_bg.png) 50%/cover no-repeat fixed;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:300;overflow-x:hidden}#welcome-screen{z-index:100;background:url(/love_bg.png) 50%/cover no-repeat fixed;flex-direction:column;justify-content:center;align-items:center;transition:opacity 1s,transform 1s;display:flex;position:fixed;inset:0}#welcome-screen.fade-out{opacity:0;pointer-events:none;transform:scale(1.05)}.heart{background:var(--primary);width:40px;height:40px;margin-bottom:40px;animation:2s infinite heartbeat;position:relative;transform:rotate(-45deg)}.heart:before,.heart:after{content:"";background:var(--primary);border-radius:50%;width:40px;height:40px;position:absolute}.heart:before{top:-20px;left:0}.heart:after{top:0;left:20px}@keyframes heartbeat{0%{transform:scale(1)rotate(-45deg)}50%{transform:scale(1.1)rotate(-45deg)}to{transform:scale(1)rotate(-45deg)}}.typewriter{white-space:nowrap;letter-spacing:.1em;border-right:2px solid var(--text-color);color:var(--text-color);margin:0 auto;font-size:1.8rem;font-weight:400;animation:2.5s steps(30,end) typing,.5s step-end infinite blink-caret;overflow:hidden}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink-caret{0%,to{border-color:#0000}50%{border-color:var(--text-color)}}#enter-btn{border:1px solid var(--primary);cursor:pointer;color:var(--primary);background:0 0;border-radius:30px;margin-top:50px;padding:12px 36px;font-size:1.1rem;font-weight:400;transition:all .3s}.hidden{display:none!important}#main-content{min-height:100vh;padding-top:40px;position:relative}#particles-bg{z-index:-1;position:fixed;inset:0}#music-toggle{z-index:50;background:var(--glass-bg);border:1px solid var(--glass-border);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:44px;height:44px;box-shadow:var(--glass-shadow);border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;transition:transform .3s;display:flex;position:fixed;top:20px;right:20px}#music-toggle.playing{animation:4s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.timer-container{text-align:center;margin:20px 0 40px}.timer-container h2{color:var(--text-color);letter-spacing:.1em;opacity:.8;margin-bottom:15px;font-size:1.2rem;font-weight:400}.timer{background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);color:var(--primary);border-radius:20px;gap:15px;padding:15px 30px;font-size:1.5rem;font-weight:300;display:inline-flex}.timer span{flex-direction:column;align-items:center;min-width:50px;display:flex}.timer span small{color:var(--text-color);opacity:.7;margin-top:5px;font-size:.8rem}.carousel-container{perspective:1200px;justify-content:center;align-items:center;width:100%;height:50vh;margin-top:20px;display:flex;position:relative}.carousel{width:260px;height:350px;transform-style:preserve-3d;transition:transform 1s cubic-bezier(.25,1,.5,1);position:relative}.carousel-item{box-sizing:border-box;background:#fff;border-radius:12px;width:100%;height:100%;padding:8px;transition:transform 1s,opacity 1s;position:absolute;top:0;left:0;overflow:hidden;box-shadow:0 10px 30px #00000014}.carousel-item img{object-fit:cover;background:var(--accent);cursor:zoom-in;border-radius:8px;width:100%;height:100%;transition:transform .3s}.carousel-item img:hover{transform:scale(1.03)}.carousel-controls{z-index:10;gap:15px;display:flex;position:absolute;bottom:-50px}.password-container{flex-direction:column;align-items:center;gap:15px;width:100%;max-width:260px;margin-top:40px;display:flex}#password-input{border:1px solid var(--primary);background:var(--glass-bg);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);text-align:center;width:100%;color:var(--text-color);border-radius:25px;outline:none;padding:12px 20px;font-family:inherit;font-size:1rem;transition:all .3s;box-shadow:0 2px 8px #96c2a81a}#password-input:focus{border-color:var(--secondary);box-shadow:0 4px 12px #96c2a833}#password-input.shake{border-color:#ff8b8b;animation:.5s ease-in-out shake;box-shadow:0 4px 12px #ff8b8b33}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}#enter-btn{border:1px solid var(--primary);cursor:pointer;color:var(--primary);background:0 0;border-radius:30px;width:100%;margin-top:0;padding:12px 36px;font-size:1.1rem;font-weight:400;transition:all .3s}#enter-btn:hover{background:var(--primary);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #96c2a84d}.error-msg{color:#ff8b8b;opacity:0;pointer-events:none;font-size:.85rem;font-weight:400;transition:opacity .3s}.error-msg.show{opacity:1}.carousel-controls button{border:1px solid var(--primary);cursor:pointer;width:40px;height:40px;color:var(--primary);background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;transition:all .3s;display:flex}.carousel-controls button:hover{background:var(--primary);color:#fff;box-shadow:0 4px 12px #96c2a84d}.timeline{width:90%;max-width:600px;margin:80px auto 50px;padding:20px}.timeline h2{text-align:center;color:var(--text-color);letter-spacing:.1em;margin-bottom:50px;font-size:1.8rem;font-weight:400}.timeline-item{margin-bottom:35px;padding-left:30px;position:relative}.timeline-item:before{content:"";background:var(--secondary);opacity:.5;width:1px;position:absolute;top:0;bottom:-35px;left:7px}.timeline-item:last-child:before{bottom:0}.timeline-dot{background:var(--primary);width:9px;height:9px;box-shadow:0 0 0 3px var(--accent);border-radius:50%;position:absolute;top:5px;left:3px}.timeline-content{background:var(--glass-bg);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--glass-border);border-radius:12px;padding:15px 20px;transition:transform .3s}.timeline-content:hover{transform:translate(5px)}.timeline-content h3{color:var(--text-color);margin-bottom:8px;font-size:1.1rem;font-weight:500}.timeline-content p{color:var(--text-color);opacity:.8;font-size:.95rem;line-height:1.6}.lightbox{z-index:200;-webkit-backdrop-filter:blur(15px);opacity:0;pointer-events:none;background:#fafafae0;justify-content:center;align-items:center;transition:opacity .4s cubic-bezier(.25,1,.5,1);display:flex;position:fixed;inset:0}.lightbox.active{opacity:1;pointer-events:auto}.lightbox-content{cursor:zoom-out;background:#fff;border:6px solid #fff;border-radius:16px;max-width:90%;max-height:80vh;transition:transform .4s cubic-bezier(.25,1,.5,1);transform:scale(.92);box-shadow:0 15px 40px #96c2a826}.lightbox.active .lightbox-content{transform:scale(1)}.lightbox-close{color:var(--text-color);cursor:pointer;justify-content:center;align-items:center;width:44px;height:44px;font-size:2.5rem;font-weight:200;line-height:1;transition:transform .3s,color .3s;display:flex;position:absolute;top:30px;right:40px}.lightbox-close:hover{color:var(--primary);transform:scale(1.1)rotate(90deg)}@media (width<=768px){.typewriter{font-size:1.3rem}.carousel-container{height:380px;margin-top:10px}.carousel{width:220px;height:300px}.carousel-controls{bottom:10px}.timer{padding:10px 20px;font-size:1.2rem}.timeline{width:95%;margin:40px auto 30px;padding:10px}.timeline h2{margin-bottom:25px;font-size:1.4rem}.timeline-content{padding:12px 15px}.lightbox-content{border-width:4px;max-width:95%;max-height:80vh}.lightbox-close{font-size:2.2rem;top:20px;right:20px}}@media (width<=480px){.timer{gap:8px;padding:8px 12px;font-size:1.1rem}.timer span{min-width:40px}.timer span small{font-size:.7rem}}
