@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Inter:wght@300;400;500&family=Caveat:wght@400;500;600&display=swap";*{margin:0;padding:0;box-sizing:border-box}html{background:#0a0708;font-family:Inter,sans-serif;color:#fff;-webkit-overflow-scrolling:touch;overscroll-behavior:none}body{background:#0a0708;-webkit-font-smoothing:antialiased;overflow-x:hidden;overscroll-behavior:none;-webkit-text-size-adjust:100%}#root{width:100%}::-webkit-scrollbar{display:none}html,body{-ms-overflow-style:none;scrollbar-width:none}.loading-screen{position:fixed;inset:0;z-index:9999;background:#0a0708;display:flex;align-items:center;justify-content:center;overflow:hidden}.loading-content{display:flex;flex-direction:column;align-items:center;gap:20px;z-index:2}.loading-heart{font-size:2.5rem;color:#e88ca5;filter:drop-shadow(0 0 20px rgba(232,140,165,.5));animation:heartBeat 1.2s ease-in-out infinite}@keyframes heartBeat{0%,to{transform:scale(1)}15%{transform:scale(1.2)}30%{transform:scale(1)}45%{transform:scale(1.15)}60%{transform:scale(1)}}.loading-title{font-family:Cormorant Garamond,serif;font-weight:300;font-size:clamp(1.4rem,5vw,2.2rem);letter-spacing:.08em;text-shadow:0 0 40px rgba(255,200,180,.2)}.loading-bar{width:180px;height:2px;background:#ffffff1a;border-radius:2px;overflow:hidden}.loading-bar-inner{height:100%;background:linear-gradient(90deg,#e88ca5,#f5c6d0);border-radius:2px;transition:width .3s ease}.loading-percent{font-size:.7rem;opacity:.3;letter-spacing:.15em;font-weight:300}.loading-particles{position:absolute;inset:0;pointer-events:none}.loading-particle{position:absolute;bottom:-10px;width:4px;height:4px;border-radius:50%;background:#e88ca566;animation:riseParticle linear infinite}@keyframes riseParticle{0%{transform:translateY(0);opacity:0}10%{opacity:.6}90%{opacity:.3}to{transform:translateY(-100vh);opacity:0}}.film-grain-loading,.film-grain{position:absolute;inset:0;pointer-events:none;z-index:9998;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:150px 150px;animation:grainShift .5s steps(4) infinite}.film-grain{z-index:999;opacity:.035}@keyframes grainShift{0%{transform:translate(0)}25%{transform:translate(-2px,1px)}50%{transform:translate(1px,-2px)}75%{transform:translate(-1px,-1px)}to{transform:translate(2px,2px)}}.film-strip-intro{display:flex;flex-direction:column;align-items:center;gap:24px;z-index:2;width:100%;padding:0 10px}.film-strip-reel{width:100%;overflow:hidden;padding:20px 0}.film-strip-track{display:flex;gap:4px;justify-content:center;flex-wrap:nowrap;overflow-x:auto;padding:0 10px}.film-strip-frame{position:relative;flex-shrink:0;width:80px;background:#111;border:2px solid #333;border-radius:2px;overflow:hidden}.film-strip-frame img{display:block;width:100%;aspect-ratio:3 / 4;object-fit:cover;filter:sepia(.4) contrast(1.1)}.film-perf{position:absolute;left:50%;transform:translate(-50%);width:60%;height:4px;display:flex;justify-content:space-evenly;z-index:2}.film-perf.top{top:2px}.film-perf.bottom{bottom:2px}.film-perf:before,.film-perf:after{content:"";width:6px;height:4px;background:#0a0708;border-radius:1px}.film-strip-text{font-family:Caveat,cursive;font-size:clamp(1.2rem,4vw,1.8rem);color:#ffc8b4b3;text-align:center;letter-spacing:.05em}.flashback-intro{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;z-index:2;width:100%;padding:0 20px;position:relative}.flashback-title{font-family:Caveat,cursive;font-size:clamp(2rem,8vw,4rem);color:#ffdcb4e6;text-shadow:0 0 40px rgba(255,200,150,.4);letter-spacing:.03em}.flashback-kids{display:flex;align-items:flex-end;gap:30px;margin:10px 0}.flashback-kid{display:flex;flex-direction:column;align-items:center;gap:10px}.flashback-photo-frame{width:120px;height:150px;background:#f5f0e8;padding:6px 6px 20px;border-radius:2px;box-shadow:0 4px 16px #0006,0 1px 4px #0003;overflow:hidden}.flashback-photo-frame img{width:100%;height:100%;object-fit:cover;border-radius:1px;filter:sepia(.25) saturate(.85)}.flashback-kid-label{font-family:Caveat,cursive;font-size:clamp(.85rem,3vw,1.1rem);color:#ffc8a0b3;text-align:center;white-space:nowrap}.flashback-subtitle{font-family:Cormorant Garamond,serif;font-weight:300;font-style:italic;font-size:clamp(.9rem,3vw,1.3rem);color:#ffc8b480;text-align:center;letter-spacing:.06em}.flashback-sparkles{position:absolute;inset:0;pointer-events:none;z-index:-1}.flashback-sparkle{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(255,220,150,.8) 0%,transparent 70%);animation:sparkleFloat ease-in-out infinite}@keyframes sparkleFloat{0%,to{opacity:0;transform:scale(.5) translateY(0)}50%{opacity:.8;transform:scale(1.2) translateY(-15px)}}.flashback-scroll-section{position:absolute;inset:0;z-index:25;display:flex;align-items:center;justify-content:center;pointer-events:none}.flashback-vignette{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,#1e140a4d,#0a0705d9 70%);pointer-events:none}.flashback-scroll-kid{position:absolute;display:flex;flex-direction:column;align-items:center}.flashback-scroll-him{left:20%;top:50%;transform:translateY(-50%)}.flashback-scroll-her{right:20%;top:50%;transform:translateY(-50%)}.flashback-scroll-frame{width:100px;height:130px;background:#f5f0e8;padding:5px 5px 18px;border-radius:2px;box-shadow:0 4px 20px #00000080,0 0 40px #ffc87814;overflow:hidden}.flashback-scroll-frame img{width:100%;height:100%;object-fit:cover;border-radius:1px;filter:sepia(.3) saturate(.8) brightness(.95)}.flashback-scroll-text{position:absolute;bottom:30%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;width:80%}.flashback-scroll-line1{font-family:Caveat,cursive;font-size:clamp(1.4rem,5vw,2.2rem);color:#ffdcb4d9;text-shadow:0 0 30px rgba(255,200,150,.3)}.flashback-scroll-line2{font-family:Cormorant Garamond,serif;font-weight:300;font-style:italic;font-size:clamp(.75rem,2.5vw,1.1rem);color:#ffc8b480;letter-spacing:.06em}.gallery-scroll-container{position:relative;width:100%}.gallery-scroll-spacer{position:relative;width:100%;pointer-events:none}.gallery-viewport{position:fixed;inset:0;overflow:hidden;pointer-events:none;will-change:transform;transform:translateZ(0);-webkit-transform:translateZ(0)}.gallery-viewport>*{pointer-events:auto}.gallery-bg{position:absolute;inset:0;pointer-events:none}.gallery-ceiling{position:absolute;top:0;left:0;right:0;height:15%;background:linear-gradient(180deg,#050404,#1a1210 60%,#1e1512);z-index:1}.gallery-wall{position:absolute;top:15%;left:0;right:0;height:55%;background:linear-gradient(180deg,#1e1512,#221914 30%,#1a1210);z-index:1}.gallery-floor{position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(180deg,#12100e,#0e0c0a 40%,#080706);z-index:1}.gallery-baseboard{position:absolute;bottom:30%;left:0;right:0;height:3px;background:linear-gradient(90deg,#50321e4d,#78502880,#50321e4d);z-index:3}.gallery-stars{position:absolute;top:0;left:0;width:10000px;height:15%;z-index:0;pointer-events:none}.star{position:absolute;border-radius:50%;background:#fff0dccc;animation:twinkle 3s ease-in-out infinite}@keyframes twinkle{0%,to{opacity:.2;transform:scale(1)}50%{opacity:.8;transform:scale(1.4)}}.gallery-pillars{position:absolute;top:15%;left:0;height:55%;width:12000px;z-index:2;pointer-events:none}.gallery-pillar{position:absolute;top:0;width:8px;height:100%;background:linear-gradient(180deg,#3c281966,#281c1299,#3c28194d);border-radius:2px}.gallery-bg-pattern{position:absolute;top:0;left:0;width:12000px;height:100%;z-index:2;pointer-events:none}.wall-light-spot{position:absolute;top:18%;width:200px;height:200px;border-radius:50%;background:radial-gradient(ellipse at 50% 30%,rgba(255,180,120,.08) 0%,rgba(255,140,80,.03) 50%,transparent 70%)}.corridor-ambient{position:absolute;inset:0;pointer-events:none;z-index:10;background:radial-gradient(ellipse at 40% 55%,transparent 30%,rgba(0,0,0,.5) 100%),linear-gradient(180deg,rgba(5,4,4,.5) 0%,transparent 20%),linear-gradient(0deg,rgba(5,4,4,.6) 0%,transparent 25%)}.falling-petals{position:absolute;inset:0;z-index:12;pointer-events:none;overflow:hidden;transition:opacity .3s ease}.falling-petals.petals-fast .petal{opacity:.5}.petal{position:absolute;top:-15px;border-radius:50% 0 50% 50%;background:linear-gradient(135deg,#e88ca599,#f5c6d04d);animation:fallPetal linear infinite;transition:animation-duration .5s ease}.petal-extra{background:linear-gradient(135deg,#ff96b4b3,#ffc8d266)}@keyframes fallPetal{0%{transform:translateY(0) translate(0) rotate(0);opacity:0}5%{opacity:1}50%{transform:translateY(50vh) translate(var(--drift)) rotate(180deg)}95%{opacity:.5}to{transform:translateY(105vh) translate(calc(var(--drift) * .5)) rotate(360deg);opacity:0}}.ambient-particles{position:absolute;inset:0;z-index:11;pointer-events:none;overflow:hidden}.dust-particle{position:absolute;border-radius:50%;background:radial-gradient(circle,#ffc896cc,#ffb47800 70%);animation:floatDust linear infinite}@keyframes floatDust{0%{transform:translate(0) scale(1);opacity:0}15%{opacity:.4}50%{transform:translate(30px,-40px) scale(1.3);opacity:.2}85%{opacity:.35}to{transform:translate(-20px,-80px) scale(.8);opacity:0}}.hero{position:absolute;top:8%;left:0;right:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:16px;z-index:20;pointer-events:none}.hero-title{font-family:Cormorant Garamond,serif;font-weight:300;font-size:clamp(2.2rem,8vw,5rem);letter-spacing:.06em;text-align:center;text-shadow:0 0 80px rgba(255,200,180,.25),0 0 40px rgba(255,160,120,.15);padding:0 24px}.hero-line{width:80px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,200,160,.5),transparent);transform-origin:center}.hero-scroll-hint{position:absolute;bottom:38%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;z-index:20}.start-btn{position:relative;display:flex;align-items:center;gap:14px;padding:20px 52px;background:linear-gradient(135deg,#e88ca52e,#c878961a);border:1.5px solid rgba(232,140,165,.4);border-radius:60px;cursor:pointer;-webkit-tap-highlight-color:transparent;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);z-index:2;transition:all .4s cubic-bezier(.25,.46,.45,.94);overflow:hidden;box-shadow:0 0 20px #e88ca526,0 4px 20px #0000004d,inset 0 1px #ffffff14;animation:btnPulse 2.5s ease-in-out infinite}@keyframes btnPulse{0%,to{box-shadow:0 0 20px #e88ca526,0 4px 20px #0000004d,inset 0 1px #ffffff14}50%{box-shadow:0 0 35px #e88ca54d,0 4px 20px #0000004d,inset 0 1px #ffffff14}}.start-btn:before{content:"";position:absolute;inset:0;border-radius:60px;background:linear-gradient(135deg,#e88ca540,#f5c6d014);opacity:0;transition:opacity .4s ease}.start-btn:active:before{opacity:1}.start-btn-text{font-family:Inter,sans-serif;font-weight:400;font-size:clamp(.85rem,3.5vw,1.05rem);letter-spacing:.15em;color:#ffe6dcf2;text-transform:uppercase}.start-btn-icon{font-size:1.1rem;color:#e88ca5;display:block;filter:drop-shadow(0 0 8px rgba(232,140,165,.5))}.start-btn-glow{position:absolute;width:250px;height:250px;border-radius:50%;background:radial-gradient(circle,rgba(232,140,165,.15) 0%,transparent 60%);pointer-events:none;z-index:1}.days-counter{position:absolute;top:4%;right:5%;display:flex;flex-direction:column;align-items:flex-end;z-index:18;pointer-events:none}.days-number{font-family:Cormorant Garamond,serif;font-weight:300;font-size:clamp(1.8rem,5vw,3rem);letter-spacing:.02em;text-shadow:0 0 30px rgba(255,200,180,.2);line-height:1}.days-label{font-family:Cormorant Garamond,serif;font-weight:300;font-style:italic;font-size:clamp(.65rem,2vw,.9rem);opacity:.5;letter-spacing:.1em;margin-top:4px}.timeline-bar{position:fixed;right:8px;top:15%;bottom:15%;z-index:50;pointer-events:none;display:flex;align-items:stretch}.timeline-track{position:relative;width:3px;background:#ffffff0f;border-radius:2px;overflow:visible}.timeline-fill{position:absolute;top:0;left:0;right:0;background:linear-gradient(180deg,#e88ca5,#f5c6d0);border-radius:2px;box-shadow:0 0 8px #e88ca566}.timeline-dot{position:absolute;left:50%;transform:translate(-50%);width:5px;height:5px;border-radius:50%;background:#ffffff26;border:1px solid rgba(255,255,255,.1)}.timeline-heart{position:absolute;left:50%;transform:translate(-50%,-50%);font-size:.6rem;color:#e88ca5;filter:drop-shadow(0 0 4px rgba(232,140,165,.6));z-index:2}.countdown-section{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:18;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none}.countdown-label{font-family:Cormorant Garamond,serif;font-weight:300;font-style:italic;font-size:clamp(.65rem,2vw,.85rem);opacity:.5;letter-spacing:.1em}.countdown-boxes{display:flex;gap:6px}.countdown-box{display:flex;flex-direction:column;align-items:center;gap:2px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:6px;padding:6px 8px;min-width:36px}.countdown-num{font-family:Cormorant Garamond,serif;font-weight:400;font-size:clamp(.9rem,2.5vw,1.3rem);line-height:1;text-shadow:0 0 15px rgba(255,200,180,.2)}.countdown-unit{font-size:.5rem;opacity:.35;letter-spacing:.1em;text-transform:uppercase;font-weight:300}.countdown-footer{font-family:Caveat,cursive;font-size:clamp(.75rem,2vw,1rem);color:#e88ca5;opacity:.7}.chat-bubble-section{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:19;width:min(85%,320px);pointer-events:none}.chat-header{display:flex;align-items:center;gap:8px;background:#25d3661f;border:1px solid rgba(37,211,102,.2);border-radius:12px 12px 0 0;padding:10px 14px}.chat-header-icon{font-size:1.2rem}.chat-header-title{font-family:Caveat,cursive;font-size:1rem;flex:1;color:#ffffffd9}.chat-header-date{font-size:.6rem;opacity:.35;letter-spacing:.05em}.chat-messages{display:flex;flex-direction:column;gap:6px;padding:12px 10px;background:#0a0a0ab3;border:1px solid rgba(255,255,255,.04);border-top:none;border-radius:0 0 12px 12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.chat-msg{max-width:80%;padding:7px 10px;border-radius:10px;display:flex;flex-direction:column;gap:2px}.chat-msg-him{align-self:flex-start;background:#25d3661f;border:1px solid rgba(37,211,102,.15);border-radius:10px 10px 10px 2px}.chat-msg-her{align-self:flex-end;background:#e88ca51a;border:1px solid rgba(232,140,165,.15);border-radius:10px 10px 2px}.chat-msg-text{font-size:.75rem;line-height:1.4;font-weight:300}.chat-msg-time{font-size:.5rem;opacity:.3;align-self:flex-end;letter-spacing:.05em}.collage-wrapper{position:absolute;inset:5% 3% 35%;z-index:5;pointer-events:none}.photo-collage{position:relative;width:100%;height:100%;will-change:transform;transform:translateZ(0)}.collage-item{position:absolute;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:filter .4s ease;will-change:transform;transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden}.collage-img-wrap{width:100%;border-radius:2px;overflow:hidden;border:none;background:#f5f0e8;padding:4px 4px 18px;box-shadow:0 2px 8px #0006,0 6px 20px #00000040;transition:box-shadow .4s ease,transform .4s ease}.collage-item:hover .collage-img-wrap{box-shadow:0 6px 25px #00000080,0 0 40px #ffb4641f;transform:scale(1.02)}.collage-img-wrap img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:1px;transition:transform .5s ease}.collage-item:hover .collage-img-wrap img{transform:scale(1.03)}.collage-glow{position:absolute;inset:-30px;border-radius:16px;background:radial-gradient(ellipse at 50% 50%,rgba(255,180,120,.25) 0%,rgba(255,140,80,.1) 40%,transparent 70%);pointer-events:none;z-index:-1}.collage-shimmer{position:absolute;inset:-2px;border-radius:4px;border:2px solid transparent;background:linear-gradient(135deg,#ffd70000,#ffd70099,#ffb43ccc,#ffd70099,#ffd70000) border-box;-webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:2;animation:shimmerMove 2s ease-in-out infinite}@keyframes shimmerMove{0%{background-position:-200% 0}to{background-position:200% 0}}.collage-label{position:absolute;bottom:-28px;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:1px;pointer-events:none}.collage-label-title{font-family:Caveat,cursive;font-weight:500;font-size:clamp(.65rem,1.8vw,.95rem);letter-spacing:.02em;text-shadow:0 0 10px rgba(255,200,160,.4);white-space:nowrap}.collage-label-date{font-family:Caveat,cursive;font-weight:400;font-size:clamp(.5rem,1.4vw,.75rem);opacity:.5;letter-spacing:.02em;white-space:nowrap}.solo-walker-container{position:absolute;left:50%;bottom:8%;transform:translate(-50%);z-index:15;pointer-events:none}.waiting-girl-container{position:absolute;left:55%;bottom:10%;transform:translate(-50%);z-index:14;pointer-events:none}.character-avatar{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}.character-avatar-img{width:140px;height:auto;object-fit:contain;filter:drop-shadow(0 4px 16px rgba(0,0,0,.4));border-radius:50%;-webkit-user-select:none;user-select:none;position:relative;z-index:2}.character-glow{position:absolute;width:160px;height:160px;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(100,150,255,.15) 0%,rgba(100,150,255,.05) 40%,transparent 70%);z-index:1;animation:pulseGlow 3s ease-in-out infinite}.character-glow.her-glow{background:radial-gradient(circle,rgba(232,140,165,.2) 0%,rgba(232,140,165,.06) 40%,transparent 70%)}@keyframes pulseGlow{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.7}50%{transform:translate(-50%,-50%) scale(1.15);opacity:1}}.character-shadow{width:60px;height:8px;border-radius:50%;background:radial-gradient(ellipse,rgba(0,0,0,.35) 0%,transparent 70%);margin-top:8px;z-index:0}.proposal-scene{position:absolute;left:0;right:0;bottom:8%;display:flex;align-items:flex-end;justify-content:center;gap:12px;z-index:16;pointer-events:none;padding:0 16px}.proposal-him .character-avatar-img{width:110px}.proposal-her .character-avatar-img{width:100px}.boss-defeated-msg{position:fixed;bottom:calc(8% + 180px);left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:6px;white-space:normal;text-align:center;z-index:21}.boss-line-1{font-family:Cormorant Garamond,serif;font-weight:400;font-size:clamp(.85rem,3vw,1.3rem);letter-spacing:.06em;color:#ffd764e6;text-shadow:0 0 20px rgba(255,215,100,.4)}.boss-line-2{font-family:Cormorant Garamond,serif;font-weight:300;font-style:italic;font-size:clamp(.7rem,2.5vw,1rem);letter-spacing:.08em;color:#ffc8b4b3;text-shadow:0 0 15px rgba(255,180,140,.3)}.floating-heart{position:absolute;left:50%;bottom:100%;font-size:1.2rem;color:#e88ca5;filter:drop-shadow(0 0 8px rgba(232,140,165,.5));pointer-events:none;z-index:20}.proposal-heart{position:absolute;top:-30px;left:50%;transform:translate(-50%);font-size:1.5rem;color:#e88ca5;filter:drop-shadow(0 0 12px rgba(232,140,165,.6));z-index:20}.waiting-girl .character-avatar-img{width:130px}.confetti-container{position:fixed;inset:0;z-index:500;pointer-events:none;overflow:hidden}.confetti-piece{position:absolute;top:0;border-radius:2px}.firework{position:absolute;width:4px;height:4px}.firework-spark{position:absolute;width:4px;height:4px;border-radius:50%}.flip-card-container{perspective:1200px;max-width:380px;width:88%}.flip-card{position:relative;width:100%;transition:transform .7s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d}.flip-card.flipped{transform:rotateY(180deg)}.flip-card-front,.flip-card-back{backface-visibility:hidden;-webkit-backface-visibility:hidden}.flip-card-front{position:relative}.flip-card-back{position:absolute;inset:0;transform:rotateY(180deg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;background:#0f0f0ff2;border:1px solid rgba(255,255,255,.08);border-radius:16px}.flip-card-date{font-family:Caveat,cursive;font-size:.9rem;opacity:.5;margin-bottom:8px}.flip-card-actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap;justify-content:center}.flip-btn{background:#e88ca526;border:1px solid rgba(232,140,165,.3);color:#e88ca5;padding:10px 24px;border-radius:30px;font-size:.8rem;cursor:pointer;transition:all .3s ease;font-family:Inter,sans-serif;-webkit-tap-highlight-color:transparent}.flip-btn:active{background:#e88ca540}.note-paper{position:relative;background:linear-gradient(135deg,#fef9e7,#fdf2d5);color:#3d2914;border-radius:4px;padding:28px 20px 20px;width:100%;max-width:300px;box-shadow:2px 3px 12px #0000004d;transform:rotate(-1deg)}.note-pin{position:absolute;top:-8px;left:50%;transform:translate(-50%);font-size:1.3rem}.note-text{font-family:Caveat,cursive;font-size:1.1rem;line-height:1.6;color:#3d2914}.note-signature{display:block;text-align:right;font-family:Caveat,cursive;font-size:.9rem;color:#e88ca5;margin-top:12px;font-style:italic}.music-toggle{position:fixed;top:20px;left:20px;z-index:300;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:#0006;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;font-size:1rem;-webkit-tap-highlight-color:transparent}.music-bars{display:flex;align-items:flex-end;gap:2px;height:16px}.bar{width:3px;background:#e88ca5;border-radius:1px;animation:barPulse .8s ease-in-out infinite}.bar-1{height:8px;animation-delay:0s}.bar-2{height:14px;animation-delay:.15s}.bar-3{height:10px;animation-delay:.3s}@keyframes barPulse{0%,to{transform:scaleY(.4)}50%{transform:scaleY(1)}}.music-icon-paused{font-size:1.1rem;opacity:.5}.painting-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#000000d9;pointer-events:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.painting-overlay.active{pointer-events:all}.painting-card{background:#0f0f0ff2;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:20px;max-width:380px;width:100%;text-align:center}.painting-card img{width:100%;max-height:45dvh;object-fit:contain;border-radius:10px;margin-bottom:14px}.painting-card h2{font-family:Cormorant Garamond,serif;font-weight:300;font-size:1.5rem;margin-bottom:6px;letter-spacing:.02em}.painting-card p{font-size:.85rem;line-height:1.6;opacity:.6;font-weight:300}.painting-card .close-btn,.flip-card-back .close-btn{background:transparent;border:1px solid rgba(255,255,255,.2);color:#fff;padding:10px 32px;border-radius:30px;font-size:.85rem;cursor:pointer;transition:all .3s ease;font-family:Inter,sans-serif;-webkit-tap-highlight-color:transparent}.painting-card .close-btn:active,.flip-card-back .close-btn:active{background:#ffffff1a}.proposal-overlay{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.proposal-overlay.active{pointer-events:all}.proposal-content{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;width:100%;padding:24px}.proposal-question{font-family:Cormorant Garamond,serif;font-weight:300;font-size:clamp(2rem,7vw,4.5rem);text-align:center;letter-spacing:.04em;line-height:1.2;text-shadow:0 0 60px rgba(255,180,200,.3)}.proposal-subtitle{font-family:Cormorant Garamond,serif;font-weight:300;font-style:italic;font-size:clamp(.95rem,3vw,1.5rem);text-align:center;opacity:.7;margin-top:32px;letter-spacing:.05em}@media(max-width:480px){.hero-title{font-size:clamp(1.6rem,10vw,2.6rem);padding:0 16px}.hero{top:12%}.hero-scroll-hint{bottom:35%}.start-btn{padding:18px 40px}.start-btn-text{font-size:.82rem;letter-spacing:.14em}.character-avatar-img{width:90px}.character-glow{width:100px;height:100px}.waiting-girl .character-avatar-img{width:85px}.solo-walker-container,.waiting-girl-container{bottom:5%}.proposal-scene{bottom:5%;gap:4px}.proposal-him .character-avatar-img{width:75px}.proposal-her .character-avatar-img{width:70px}.boss-defeated-msg{bottom:calc(5% + 130px)}.boss-line-1{font-size:clamp(.9rem,4vw,1.1rem)}.boss-line-2{font-size:clamp(.75rem,3vw,.9rem)}.collage-wrapper{inset:3% 1% 38%}.collage-img-wrap{padding:2px 2px 8px}.collage-item{max-width:22vw}.days-counter{top:2%;right:3%}.days-number{font-size:1.4rem}.days-label{font-size:.6rem}.timeline-bar{right:3px;top:10%;bottom:10%}.timeline-track{width:2px}.timeline-dot{width:4px;height:4px}.timeline-heart{font-size:.5rem}.countdown-section{left:50%;top:50%;transform:translate(-50%,-50%)}.countdown-box{padding:4px 6px;min-width:30px}.countdown-num{font-size:.8rem}.countdown-unit{font-size:.4rem}.countdown-label{font-size:.6rem}.countdown-footer{font-size:.7rem}.first-message-section{gap:10px;padding:12px;bottom:20%}.first-message-title{font-size:1.1rem}.first-message-phone{max-width:min(65vw,240px);border-radius:22px;padding:10px 6px}.phone-notch{width:70px;height:4px;margin-bottom:6px}.phone-screen{border-radius:14px}.phone-screen img{max-height:38vh}.first-message-caption{font-size:.8rem;max-width:260px}.flashback-photo-frame{width:85px;height:110px;padding:4px 4px 14px}.flashback-kids{gap:16px}.flashback-kid-label{font-size:.75rem}.flashback-title{font-size:clamp(1.5rem,8vw,2.5rem)}.flashback-scroll-frame{width:70px;height:95px;padding:3px 3px 12px}.flashback-scroll-him{left:10%}.flashback-scroll-her{right:10%}.flashback-scroll-line1{font-size:clamp(1rem,4vw,1.5rem)}.flashback-scroll-line2{font-size:clamp(.6rem,2vw,.8rem)}.flashback-scroll-text{bottom:25%;width:90%}.love-letter-paper{padding:32px 16px 24px;max-width:90vw}.love-letter-line{font-size:.95rem;line-height:1.7;margin-bottom:12px}.love-letter-line.highlight{font-size:1.05rem}.love-letter-signature{font-size:.95rem}.music-toggle{top:12px;left:12px;width:36px;height:36px}.painting-card-simple{max-width:92vw}.painting-card-simple .close-btn{top:8px;right:8px;width:32px;height:32px;font-size:.9rem}.proposal-content{padding:16px}.proposal-question{font-size:clamp(1.5rem,7vw,2.8rem)}.film-strip-frame{width:55px}.film-strip-track{gap:3px;padding:0 5px}.film-strip-text{font-size:clamp(.9rem,4vw,1.3rem)}.confetti-container{overflow:hidden}.floating-heart{font-size:.9rem}}@media(min-width:481px)and (max-width:767px){.character-avatar-img{width:110px}.proposal-him .character-avatar-img{width:90px}.proposal-her .character-avatar-img{width:85px}.flashback-scroll-him{left:15%}.flashback-scroll-her{right:15%}}@media(min-width:768px){.collage-wrapper{inset:3% 8% 30%}.character-avatar-img{width:180px}.character-glow{width:200px;height:200px}.flip-card-container,.painting-card{padding:32px;max-width:520px}.collage-label-title{font-size:1rem}.collage-label-date{font-size:.8rem}.days-number{font-size:3rem}.proposal-him .character-avatar-img{width:160px}.proposal-her .character-avatar-img{width:150px}.film-strip-frame{width:100px}.timeline-bar{right:14px}.timeline-track{width:4px}.timeline-dot{width:7px;height:7px}.countdown-section{left:50%;top:50%;transform:translate(-50%,-50%)}.countdown-box{padding:8px 12px;min-width:48px}.countdown-num{font-size:1.4rem}.chat-bubble-section{width:min(70%,360px)}.collage-img-wrap{padding:6px 6px 24px}.note-paper{max-width:360px;padding:32px 24px 24px}.note-text{font-size:1.3rem}.flashback-photo-frame{width:160px;height:200px;padding:8px 8px 28px}.flashback-kids{gap:50px}.flashback-kid-label{font-size:1.2rem}.flashback-scroll-frame{width:140px;height:180px;padding:7px 7px 24px}.flashback-scroll-him{left:25%}.flashback-scroll-her{right:25%}.first-message-section{width:min(85%,340px)}.phone-screen img{max-height:50vh}.love-letter-paper{max-width:340px;padding:32px 20px 24px}.love-letter-line{font-size:1.05rem}.love-letter-line.highlight{font-size:1.15rem}}.painting-card-simple{position:relative;max-width:min(90vw,500px);max-height:85dvh}.painting-card-simple img{width:100%;max-height:80dvh;object-fit:contain;border-radius:12px;box-shadow:0 20px 60px #0009}.painting-card-simple .close-btn{position:absolute;top:12px;right:12px;background:#0009;border:1px solid rgba(255,255,255,.2);color:#fff;width:36px;height:36px;border-radius:50%;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);-webkit-tap-highlight-color:transparent}.first-message-section{position:absolute;inset:0 0 15%;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:30;pointer-events:none;gap:20px;padding:20px}.first-message-title{font-family:Caveat,cursive;font-size:clamp(1.4rem,4vw,2rem);color:#ffc8b4e6;text-shadow:0 0 30px rgba(232,140,165,.3);text-align:center}.first-message-phone{position:relative;background:#1a1a1a;border-radius:28px;padding:12px 8px;border:2px solid rgba(255,255,255,.1);box-shadow:0 20px 60px #00000080,inset 0 1px #ffffff0d;max-width:min(80vw,320px);overflow:hidden}.phone-notch{width:100px;height:6px;background:#333;border-radius:3px;margin:0 auto 8px}.phone-screen{border-radius:18px;overflow:hidden;background:#000}.phone-screen img{display:block;width:100%;max-height:55vh;object-fit:cover;object-position:top}.first-message-caption{font-family:Cormorant Garamond,serif;font-size:clamp(.85rem,2.5vw,1.1rem);color:#ffffff80;text-align:center;font-style:italic;max-width:320px;line-height:1.6}.first-meeting-section{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:30;pointer-events:none;gap:16px;padding:20px}.first-meeting-title{font-family:Caveat,cursive;font-size:clamp(1.4rem,4vw,2rem);color:#ffc8b4e6;text-shadow:0 0 30px rgba(232,140,165,.3);text-align:center}.first-meeting-frame{position:relative;max-width:min(75vw,320px);border-radius:12px;overflow:hidden;border:2px solid rgba(232,140,165,.2);box-shadow:0 20px 60px #00000080,0 0 40px #e88ca51a}.first-meeting-frame img{display:block;width:100%;max-height:55vh;object-fit:cover;border-radius:10px}.first-meeting-caption{font-family:Cormorant Garamond,serif;font-size:clamp(.85rem,2.5vw,1.1rem);color:#ffffff80;text-align:center;font-style:italic;max-width:320px;line-height:1.6}@media(max-width:480px){.first-meeting-frame{max-width:min(80vw,280px)}.first-meeting-title{font-size:1.2rem}.first-meeting-frame img{max-height:45vh}}.love-letter-section{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:30;pointer-events:none;padding:20px}.love-letter-paper{position:relative;background:linear-gradient(145deg,#1e140ff2,#140f0ce6);border:1px solid rgba(232,140,165,.15);border-radius:4px;padding:40px 28px 32px;max-width:420px;width:100%;box-shadow:0 20px 60px #00000080,inset 0 1px #ffffff0a}.love-letter-paper:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(transparent,transparent 27px,rgba(232,140,165,.06) 27px,rgba(232,140,165,.06) 28px);pointer-events:none;border-radius:4px}.love-letter-pin{position:absolute;top:-8px;left:50%;transform:translate(-50%);font-size:1.4rem;color:#e88ca5;filter:drop-shadow(0 0 10px rgba(232,140,165,.4))}.love-letter-line{font-family:Caveat,cursive;font-size:1.15rem;color:#ffe6dcd9;line-height:1.8;margin-bottom:16px;position:relative;z-index:1}.love-letter-line.highlight{font-size:1.25rem;color:#f5c6d0;margin-top:8px;margin-bottom:8px;text-shadow:0 0 30px rgba(232,140,165,.3)}.love-letter-signature{font-family:Caveat,cursive;font-size:1.1rem;color:#e88ca599;text-align:right;margin-top:20px;font-style:italic;position:relative;z-index:1}.video-gallery{position:absolute;inset:0;pointer-events:none;z-index:15}.video-clip-container{position:absolute;top:50%;transform:translateY(-50%);width:38vw;max-width:440px;pointer-events:auto}.video-clip-left{left:5vw}.video-clip-right{right:5vw;left:auto}.video-clip-frame{position:relative;border-radius:14px;overflow:hidden;border:1.5px solid rgba(232,140,165,.2);box-shadow:0 10px 50px #000000b3,0 0 60px #e88ca51f,inset 0 0 0 1px #ffffff0f}.video-clip-frame video{display:block;width:100%;border-radius:13px}.video-clip-shine{position:absolute;inset:0;border-radius:14px;background:linear-gradient(135deg,rgba(255,255,255,.06) 0%,transparent 50%,transparent 100%);pointer-events:none}@media(max-width:480px){.video-clip-container{width:70vw;max-width:none;left:50%!important;right:auto!important;transform:translate(-50%) translateY(-50%)}}@media(min-width:481px)and (max-width:768px){.video-clip-container{width:55vw;max-width:none}.video-clip-left{left:8vw}.video-clip-right{right:8vw}}
