:root{--primary:#ffb6c1;--soft-white:#fff5f7;--deep-rose:#c4708a;--gold-accent:#c9a96e;--dark-text:#2c1810;--card-bg:#fff5f7;--font-heading:"Playfair Display", serif;--font-body:"Lato", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--dark-text);background-color:#f8e2e6;justify-content:center;align-items:flex-start;min-height:100vh;display:flex;overflow-x:hidden}.app-container{scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;-webkit-backdrop-filter:blur(8px);z-index:10;background:linear-gradient(135deg,#fff5f7f5 0%,#ffebeff5 30%,#fff0f4f5 60%,#ffd1dbf5 100%) 0 0/200% 200%;border-left:1px solid #c4708a26;border-right:1px solid #c4708a26;flex-direction:column;width:100%;max-width:430px;height:100svh;animation:15s infinite gradientBg;display:flex;position:relative;overflow-y:auto;box-shadow:0 12px 40px #2c181026}.app-container.locked{overflow-y:hidden!important}@keyframes gradientBg{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.flying-heart{pointer-events:none;z-index:9999;animation:.8s cubic-bezier(.18,.89,.32,1.28) forwards flyUpAndOut;position:fixed}@keyframes flyUpAndOut{0%{opacity:1;transform:translate(-50%,-50%)scale(.3)rotate(0)}to{transform:translate(-50%, -50%) translate(var(--tx), var(--ty)) scale(1.3) rotate(var(--tr));opacity:0}}.floating-decorations{pointer-events:none;z-index:1;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.floating-emoji-wrapper{pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed}.floating-emoji{pointer-events:none;-webkit-user-select:none;user-select:none}@keyframes gentleFloat{0%{transform:translateY(0)scale(1)}to{transform:translateY(-12px)scale(1.06)}}.hero-section{scroll-snap-align:start;scroll-snap-stop:always;text-align:center;flex-direction:column;flex-shrink:0;justify-content:space-between;align-items:center;height:100svh;padding:60px 24px 40px;display:flex;position:relative;overflow:hidden}.hero-polaroids{pointer-events:none;z-index:3;position:absolute;inset:0}.polaroid{width:150px;height:130px;transform:rotate(var(--rotate,0deg));opacity:0;animation:polaroidEntrance .9s cubic-bezier(.16, 1, .3, 1) var(--delay,0s) forwards, polaroidFloat var(--duration,7s) ease-in-out calc(var(--delay,0s) + .9s) infinite alternate;background:#fcffd7;padding:7px 7px 24px;position:absolute;box-shadow:0 4px 12px #2c18102e,0 1px 3px #2c18101a}.polaroid-img{object-fit:cover;border-radius:1px;width:100%;height:103px;display:block}.polaroid-tape{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#ffb6c18c;border:1px solid #c4708a2e;border-radius:2px;width:44px;height:16px;position:absolute;top:-8px;left:50%;transform:translate(-50%)rotate(-3deg)}@keyframes polaroidEntrance{0%{opacity:0;transform:rotate(var(--rotate,0deg)) scale(.75) translateY(18px)}to{opacity:.88;transform:rotate(var(--rotate,0deg)) scale(1) translateY(0)}}@keyframes polaroidFloat{0%{transform:rotate(var(--rotate,0deg)) translateY(0px)}to{transform:rotate(var(--rotate,0deg)) translateY(-8px)}}.hero-content{flex-direction:column;align-items:center;gap:16px;margin-top:auto;margin-bottom:auto;display:flex}.hero-title{color:var(--deep-rose);opacity:0;letter-spacing:-.5px;font-family:Times New Roman,Times,serif;font-size:2.5rem;font-weight:700;line-height:1.2;animation:2s cubic-bezier(.25,1,.5,1) forwards fadeInSlow}.hero-subtitle{font-family:var(--font-heading);color:var(--gold-accent);opacity:0;font-size:1.15rem;font-style:italic;animation:1.5s ease-out .8s forwards fadeInDelayed}.hero-name{font-family:var(--font-heading);color:var(--deep-rose);opacity:0;letter-spacing:1px;text-shadow:0 2px 10px #c4708a26;margin-top:8px;font-size:3rem;font-weight:700;animation:1.5s ease-out 1.5s forwards fadeInDelayed}.hero-heart-container{justify-content:center;margin-top:10px;display:flex}.hero-heart{color:var(--deep-rose);opacity:0;text-shadow:0 0 10px #c4708a4d;font-size:2.2rem;animation:1.5s ease-out 2s forwards fadeInDelayed,1.8s ease-in-out 3s infinite heartBeat;display:inline-block}.scroll-prompt{font-family:var(--font-body);letter-spacing:2px;text-transform:uppercase;color:var(--deep-rose);opacity:0;cursor:pointer;-webkit-user-select:none;user-select:none;padding:10px;font-size:.9rem;animation:1s ease-out 2.8s forwards fadeInDelayed,2s 3.8s infinite bounce}.timeline-section,.timeline-container{width:100%;position:relative}.timeline-line{background:linear-gradient(180deg, var(--gold-accent) 0%, #c9a96e66 50%, var(--gold-accent) 100%);z-index:1;width:2px;height:1500vh;position:absolute;top:100vh;left:32px;box-shadow:0 0 8px #c9a96e80}.timeline-item{scroll-snap-align:start;scroll-snap-stop:always;z-index:2;cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;width:100%;height:100svh;padding:0 24px 0 68px;display:flex;position:relative}.timeline-dot-wrapper{z-index:3;pointer-events:none;justify-content:center;align-items:center;width:42px;height:42px;display:flex;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.timeline-dot{background-color:var(--gold-accent);border:3px solid var(--soft-white);z-index:3;border-radius:50%;width:14px;height:14px;position:relative;box-shadow:0 0 10px #c9a96eb3}.timeline-dot:after{content:"";border:1.5px solid var(--gold-accent);pointer-events:none;border-radius:50%;animation:2s ease-in-out infinite pulseRing;position:absolute;inset:-6px}@keyframes pulseRing{0%{opacity:1;transform:scale(.85)}to{opacity:0;transform:scale(1.6)}}.timeline-content-wrapper{opacity:0;flex-direction:column;justify-content:center;width:100%;padding-right:12px;font-family:Times New Roman,Times,serif;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);display:flex;transform:translateY(30px)}.timeline-content-wrapper.fade-in{opacity:1;transform:translateY(0)}.timeline-stop-number{color:var(--gold-accent);letter-spacing:2px;text-transform:uppercase;margin-bottom:8px;font-family:Times New Roman,Times,serif;font-size:.85rem;font-style:italic;font-weight:700}.timeline-stop-title{color:var(--deep-rose);align-items:flex-start;gap:10px;margin-bottom:12px;font-family:Times New Roman,Times,serif;font-size:1.7rem;font-weight:700;line-height:1.25;display:flex}.timeline-stop-emoji{flex-shrink:0;font-family:system-ui,-apple-system,sans-serif;font-style:normal}.timeline-stop-description{color:var(--dark-text);margin-bottom:14px;font-family:Times New Roman,Times,serif;font-size:1.15rem;font-style:italic;line-height:1.5}.timeline-reveal-hint{color:var(--deep-rose);opacity:.8;letter-spacing:.5px;align-items:center;gap:6px;margin-top:6px;padding-top:6px;font-family:Times New Roman,Times,serif;font-size:.85rem;font-style:italic;font-weight:700;transition:opacity .3s;display:flex}.timeline-item:hover .timeline-reveal-hint{opacity:1}.timeline-memory-note{border-top:1px dashed #c4708a40;margin-top:14px;padding-top:14px;animation:.45s cubic-bezier(.16,1,.3,1) forwards slideDown;overflow:hidden}.timeline-memory-text{color:var(--gold-accent);text-align:center;background:#c9a96e0d;border:1px solid #c9a96e1f;border-radius:12px;padding:10px 14px;font-family:Times New Roman,Times,serif;font-size:1.05rem;font-style:italic;line-height:1.5}@keyframes slideDown{0%{opacity:0;max-height:0;transform:translateY(-8px)}to{opacity:1;max-height:250px;transform:translateY(0)}}.final-screen{scroll-snap-align:start;scroll-snap-stop:always;text-align:center;background:linear-gradient(#ffebef99 0%,#ffd1dbe6 100%);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;height:100svh;padding:60px 24px;display:flex;position:relative}.final-content{flex-direction:column;align-items:center;width:100%;max-width:380px;display:flex}.final-heart{color:var(--deep-rose);filter:drop-shadow(0 4px 8px #c4708a33);margin-bottom:24px;font-size:4rem;animation:1.5s ease-in-out infinite heartBeat}.final-title{font-family:var(--font-heading);color:var(--deep-rose);margin-bottom:16px;font-size:1.8rem;font-weight:700;line-height:1.3}.final-subtext{font-family:var(--font-body);color:var(--dark-text);margin-bottom:24px;padding:0 12px;font-size:1.05rem;line-height:1.6}.signature{font-family:var(--font-heading);color:var(--gold-accent);margin-bottom:6px;font-size:1.35rem;font-style:italic;font-weight:600}.future-name{font-family:var(--font-body);color:var(--deep-rose);letter-spacing:1.5px;margin-bottom:36px;font-size:.85rem;font-style:italic}.glow-button{background-color:var(--primary);color:var(--deep-rose);border:2px solid var(--deep-rose);cursor:pointer;font-size:1rem;font-weight:700;font-family:var(--font-body);border-radius:30px;align-items:center;gap:8px;padding:14px 28px;text-decoration:none;transition:all .3s cubic-bezier(.25,.8,.25,1);display:inline-flex;position:relative;overflow:hidden;box-shadow:0 4px 15px #ffb6c166}.glow-button:hover,.glow-button:active{background-color:#ffe4e8;transform:translateY(-2px);box-shadow:0 0 20px #c4708a80,0 6px 20px #ffb6c199}@keyframes fadeInSlow{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDelayed{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes heartBeat{0%{transform:scale(1)}14%{transform:scale(1.12)}28%{transform:scale(1)}42%{transform:scale(1.12)}70%{transform:scale(1)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}.app-container::-webkit-scrollbar{width:6px}.app-container::-webkit-scrollbar-track{background:#fff5f780}.app-container::-webkit-scrollbar-thumb{background:var(--primary);border-radius:3px}.screen-decorations{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.screen-emoji-wrapper{pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute}.timeline-content-wrapper,.hero-content,.scroll-prompt,.final-content{z-index:2}.lockscreen-container{z-index:10000;background:linear-gradient(135deg,#fff5f7 0%,#ffe4e8 50%,#ffd1dc 100%);border-left:1px solid #c4708a26;border-right:1px solid #c4708a26;flex-direction:column;justify-content:space-between;align-items:center;width:100%;max-width:430px;height:100svh;padding:50px 24px;font-family:Times New Roman,Times,serif;display:flex;position:fixed;top:0;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #2c181026}.lockscreen-header{text-align:center;margin-top:30px}.lockscreen-title{color:var(--deep-rose);letter-spacing:-.5px;margin-bottom:8px;font-size:2.2rem;font-weight:700}.lockscreen-subtitle{color:var(--gold-accent);letter-spacing:.5px;font-size:1.05rem;font-style:italic}.lockscreen-avatar-container{flex-direction:column;justify-content:center;align-items:center;width:100%;display:flex}.lockscreen-heart-glow{color:var(--deep-rose);text-shadow:0 0 15px #c4708a66;font-size:3.5rem;animation:2s ease-in-out infinite lockHeartGlow}@keyframes lockHeartGlow{0%,to{filter:drop-shadow(0 0 5px #c4708a4d);transform:scale(1)}50%{filter:drop-shadow(0 0 15px #c4708a99);transform:scale(1.1)}}.lockscreen-pin-dots{justify-content:center;gap:16px;margin-top:24px;display:flex}.lockscreen-dot{border:2px solid var(--deep-rose);border-radius:50%;width:16px;height:16px;transition:all .2s cubic-bezier(.175,.885,.32,1.275)}.lockscreen-dot.active{background-color:var(--deep-rose);transform:scale(1.15);box-shadow:0 0 8px #c4708a80}.lockscreen-dot.success{background-color:var(--gold-accent);border-color:var(--gold-accent);box-shadow:0 0 12px var(--gold-accent);transform:scale(1.2)}.lockscreen-message{color:var(--deep-rose);text-align:center;height:20px;margin-top:16px;font-size:.95rem;font-style:italic}.lockscreen-keypad{grid-template-columns:repeat(3,1fr);gap:18px 24px;width:100%;max-width:290px;margin-bottom:20px;display:grid}.keypad-btn{-webkit-backdrop-filter:blur(5px);width:68px;height:68px;color:var(--dark-text);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff5f799;border:1.5px solid #c4708a40;border-radius:50%;justify-content:center;align-items:center;font-family:Times New Roman,Times,serif;font-size:1.6rem;font-weight:600;transition:all .15s;display:flex}.keypad-btn:active{border-color:var(--deep-rose);color:var(--deep-rose);background:#c4708a26;transform:scale(.9)}.keypad-btn.action{text-transform:uppercase;letter-spacing:1px;color:var(--deep-rose);background:0 0;border:none;font-size:.85rem;font-weight:700}.keypad-btn.action:active{color:var(--dark-text);background:0 0;transform:scale(.9)}.shake{animation:.35s ease-in-out lockShake}@keyframes lockShake{0%,to{transform:translate(0)}20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.lockscreen-fadeout{animation:.6s cubic-bezier(.16,1,.3,1) forwards lockFadeOut}@keyframes lockFadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}.act-section{scroll-snap-align:start;scroll-snap-stop:always;z-index:5;text-align:center;background:linear-gradient(135deg,#fff5f7 0%,#ffe4e8 50%,#ffd1dc 100%);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;height:100svh;padding:40px 24px;display:flex;position:relative;box-shadow:inset 0 0 100px #c4708a14}.act-content{z-index:2;flex-direction:column;justify-content:center;align-items:center;width:100%;display:flex;position:relative}.act-text-wrapper{opacity:0;z-index:10;flex-direction:column;justify-content:center;align-items:center;max-width:320px;transition:opacity 1.2s cubic-bezier(.25,1,.5,1) .4s,transform 1.2s cubic-bezier(.25,1,.5,1) .4s;display:flex;transform:translateY(20px)}.animate-in .act-text-wrapper{opacity:1;transform:translateY(0)}.act-badge{font-family:var(--font-body);color:var(--gold-accent);letter-spacing:4px;text-transform:uppercase;background:#fff5f780;border:1px solid #c9a96e4d;border-radius:20px;margin-bottom:20px;padding:6px 16px;font-size:.9rem;font-weight:700;box-shadow:0 2px 10px #c9a96e14}.act-title{color:var(--deep-rose);letter-spacing:-.5px;text-shadow:0 2px 8px #c4708a1a;margin-bottom:24px;font-family:Times New Roman,Times,serif;font-size:2.2rem;font-weight:700;line-height:1.3}.act-divider{background:linear-gradient(90deg, transparent, var(--gold-accent), transparent);width:120px;height:1px;margin-top:10px;position:relative}.act-divider-heart{color:var(--deep-rose);background-color:#ffe4e8;padding:0 10px;font-size:.9rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.floating-img{pointer-events:none;-webkit-user-select:none;user-select:none;display:block}.glimpse-section{scroll-snap-align:start;scroll-snap-stop:always;text-align:center;flex-direction:column;flex-shrink:0;justify-content:space-between;align-items:center;height:100svh;padding:60px 24px 40px;display:flex;position:relative;overflow:hidden}.glimpse-content{flex-direction:column;justify-content:center;align-items:center;width:100%;margin-top:auto;margin-bottom:auto;display:flex;position:relative}.glimpse-text-wrapper{opacity:0;z-index:10;max-width:320px;transition:opacity 1.2s cubic-bezier(.25,1,.5,1) .4s,transform 1.2s cubic-bezier(.25,1,.5,1) .4s;transform:translateY(20px)}.glimpse-title{color:var(--deep-rose);letter-spacing:-.5px;text-shadow:0 2px 8px #c4708a1a;margin-bottom:20px;font-family:Times New Roman,Times,serif;font-size:2.2rem;font-weight:700;line-height:1.3}.glimpse-divider{background:linear-gradient(90deg, transparent, var(--gold-accent), transparent);width:120px;height:1px;margin:10px auto 0;position:relative}.glimpse-divider-heart{color:var(--deep-rose);background-color:#ffe4e8;padding:0 10px;font-size:.9rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.glimpse-rose,.act-rose{opacity:0;z-index:5;filter:drop-shadow(0 10px 20px #2c181026);width:150px;height:auto;transition:all 1.8s cubic-bezier(.16,1,.3,1);position:absolute;top:50%;left:-160px;transform:translateY(-50%)rotate(-45deg)}.glimpse-gajra,.act-gajra{opacity:0;z-index:5;filter:drop-shadow(0 10px 20px #2c181026);width:170px;height:auto;transition:all 1.8s cubic-bezier(.16,1,.3,1);position:absolute;top:50%;right:-180px;transform:translateY(-50%)rotate(45deg)}.animate-in .glimpse-text-wrapper{opacity:1;transform:translateY(0)}.animate-in .glimpse-rose,.animate-in .act-rose{opacity:.85;left:-20px;transform:translateY(-65%)rotate(-12deg)}.animate-in .glimpse-gajra,.animate-in .act-gajra{opacity:.8;right:-30px;transform:translateY(-35%)rotate(18deg)}.animate-in .glimpse-rose,.animate-in .act-rose{animation:8s ease-in-out 1.8s infinite alternate roseFloat}.animate-in .glimpse-gajra,.animate-in .act-gajra{animation:8s ease-in-out 1.8s infinite alternate gajraFloat}@keyframes roseFloat{0%{transform:translateY(-65%)rotate(-12deg)}to{transform:translateY(-70%)rotate(-8deg)}}@keyframes gajraFloat{0%{transform:translateY(-35%)rotate(18deg)}to{transform:translateY(-30%)rotate(22deg)}}.glimpse-prompt{z-index:10;margin-bottom:20px}
