:root{--bg-deep: #0a0608;--bg-surface: #140e11;--bg-night-top: #02040c;--bg-night-mid: #040914;--bg-night-bottom: #0a1020;--rose-primary: #c9485b;--rose-dark: #8b1a2b;--rose-deep: #5c0a18;--rose-light: #e8889a;--rose-pale: #f5d0d8;--gold-accent: #d4a574;--gold-light: #f0d9b5;--cream: #f2e8e1;--white-soft: #faf5f2;--font-heading: "Cormorant Garamond", serif;--font-display: "Cinzel", serif;--font-body: "Nunito", sans-serif}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);font-weight:300;background:var(--bg-deep);color:var(--cream);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body.scroll-locked{overflow:hidden!important}#three-canvas{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:0;pointer-events:none}.section{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center}.hero-section{flex-direction:column;overflow:hidden;background:radial-gradient(circle at 50% -20%,rgba(255,255,255,.02) 0%,transparent 38%),linear-gradient(180deg,#02040c40,#04091433 55%,#0a102026)}.hero-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem;max-width:600px;width:100%}.hero-question{font-family:var(--font-display);font-weight:700;font-size:clamp(2rem,5vw,3.6rem);letter-spacing:.04em;color:var(--white-soft);margin-bottom:.5rem;line-height:1.2;position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.hero-subtitle{font-family:var(--font-heading);font-size:clamp(1.1rem,2.8vw,1.5rem);color:#fff;opacity:.9;margin-bottom:2.5rem;margin-top:4.5rem;font-weight:400;letter-spacing:.04em;font-style:italic;text-shadow:0 0 20px rgba(255,255,255,.15)}.input-container{position:relative;display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;border-radius:16px;background:#32080fcc;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(180,40,55,.35);box-shadow:0 0 40px #8b1a2b26,0 0 80px #5c0a1814,0 8px 32px #00000080;transform-style:preserve-3d;transition:transform .15s ease-out,box-shadow .4s ease;will-change:transform;width:100%;max-width:400px}.input-container.success{border-color:#d4a57480;animation:successGlow 2s ease-out forwards}.input-glow{position:absolute;inset:-1px;border-radius:17px;background:radial-gradient(ellipse at 50% 50%,rgba(139,26,43,.25) 0%,rgba(92,10,24,.08) 50%,transparent 70%);pointer-events:none;z-index:-1}.date-input{flex:1;background:transparent;border:none;outline:none;font-family:var(--font-heading);font-size:clamp(1.4rem,3vw,1.8rem);letter-spacing:.08em;color:var(--white-soft);caret-color:var(--rose-light)}.date-input::placeholder{color:var(--rose-dark);opacity:.7}.date-input:disabled{opacity:.6;cursor:default}.submit-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1px solid rgba(180,40,55,.5);background:#8b1a2b59;color:var(--rose-light);cursor:pointer;transition:background .25s ease,border-color .25s ease,transform .15s ease;flex-shrink:0}.submit-btn:hover{background:#b4283780;border-color:var(--rose-primary);transform:scale(1.08)}.submit-btn:active{transform:scale(.95)}.submit-btn:disabled{opacity:.4;cursor:default;pointer-events:none}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px) rotate(-1deg)}40%{transform:translate(6px) rotate(1deg)}60%{transform:translate(-4px) rotate(-.5deg)}80%{transform:translate(2px) rotate(.5deg)}}.shake{animation:shake .5s ease-out}@keyframes successGlow{0%{box-shadow:0 0 #d4a57499}30%{box-shadow:0 0 50px 15px #d4a57466,0 0 100px 30px #c9485b33}60%{box-shadow:0 0 80px 25px #f0d9b54d,0 0 120px 40px #c9485b26}to{box-shadow:0 0 60px 20px #c9485b00}}.success-message{margin-top:2rem;opacity:0;transform:translateY(20px) scale(.9);pointer-events:none}.success-message.visible{pointer-events:auto}.success-message p{font-family:var(--font-heading);font-size:clamp(1.4rem,3.5vw,2rem);font-weight:400;font-style:italic;color:var(--gold-light);letter-spacing:.03em;text-shadow:0 0 20px rgba(212,165,116,.4),0 0 40px rgba(212,165,116,.2)}.scroll-hint{margin-top:3rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;opacity:0;transform:translateY(10px);transition:opacity .8s ease,transform .8s ease}.scroll-hint.visible{opacity:.6;transform:translateY(0)}.scroll-hint span{font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;color:var(--rose-light)}.scroll-arrow{width:16px;height:16px;border-right:1.5px solid var(--rose-light);border-bottom:1.5px solid var(--rose-light);transform:rotate(45deg);animation:bounceArrow 2s ease-in-out infinite}@keyframes bounceArrow{0%,to{transform:rotate(45deg) translateY(0)}50%{transform:rotate(45deg) translateY(6px)}}.music-section{background:linear-gradient(180deg,#0a0608,#12080d,#140a10 60%,#0e0710);min-height:100vh;flex-direction:column;padding:1.5rem 1rem;position:relative;overflow:hidden}.falling-hearts-container{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}.falling-heart{position:absolute;top:-60px;font-size:1.5rem;opacity:0;animation:heartFall linear forwards;pointer-events:none;filter:drop-shadow(0 0 6px rgba(201,72,91,.5))}@keyframes heartFall{0%{opacity:0;transform:translateY(0) rotate(0) scale(.5)}10%{opacity:.8;transform:translateY(10vh) rotate(20deg) scale(1)}90%{opacity:.6}to{opacity:0;transform:translateY(110vh) rotate(360deg) scale(.8)}}.music-content{display:flex;flex-direction:column;align-items:center;width:100%;max-width:1100px;position:relative;z-index:1}.music-heading{font-family:var(--font-heading);font-weight:300;font-size:clamp(1.2rem,3vw,1.8rem);color:var(--white-soft);letter-spacing:.03em;text-align:center;margin-bottom:2rem;opacity:.9;text-shadow:0 0 30px rgba(255,255,255,.1)}.music-player{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:1rem 1.2rem;border-radius:18px;background:#140e11b3;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(201,72,91,.12);box-shadow:0 8px 40px #0006;width:100%;max-width:280px;margin-bottom:1.5rem}.album-chip{position:relative;width:180px;height:180px;border-radius:10px;overflow:hidden;box-shadow:0 4px 30px #00000080;flex-shrink:0}.album-chip img{width:100%;height:100%;object-fit:cover;display:block}.play-btn{width:46px;height:46px;border-radius:50%;border:2px solid rgba(255,255,255,.3);background:#c9485b99;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .25s ease,transform .15s ease,box-shadow .25s ease;box-shadow:0 4px 20px #c9485b4d;margin-top:-1.5rem;position:relative;z-index:2}.play-btn:hover{background:#c9485bd9;transform:scale(1.1);box-shadow:0 6px 30px #c9485b80}.play-btn:active{transform:scale(.95)}.play-btn.playing{background:#c9485bd9;box-shadow:0 0 30px #c9485b66}.track-block{text-align:center;width:100%}.track-title{font-family:var(--font-heading);font-size:1rem;font-weight:600;color:var(--white-soft);letter-spacing:.02em;margin-bottom:.15rem}.track-artist{font-size:.8rem;color:var(--rose-light);opacity:.7;margin-bottom:.5rem}.progress-bar{width:100%;height:4px;background:#ffffff1a;border-radius:2px;cursor:pointer;overflow:hidden}.progress-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--rose-primary),var(--rose-light));border-radius:2px;transition:width .1s linear}#carousel-canvas{width:100%;max-width:1100px;height:480px;border-radius:12px;opacity:0;transition:opacity 1s ease}#carousel-canvas.visible{opacity:1}.carousel-arrows{display:flex;justify-content:center;gap:1.5rem;margin-top:1rem;opacity:0;transition:opacity .6s ease}.carousel-arrows.visible{opacity:1}.carousel-arrow{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:#140e1199;color:var(--white-soft);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease,border-color .2s ease,transform .15s ease;font-size:1.2rem}.carousel-arrow:hover{background:#c9485b4d;border-color:var(--rose-primary);transform:scale(1.1)}.carousel-arrow:active{transform:scale(.95)}.love-section{background:linear-gradient(180deg,#0e0710,#0d0a10,#0a0608);flex-direction:column;padding:4rem 1.5rem;min-height:auto;overflow:hidden}#letter-hearts-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.love-content{position:relative;z-index:1;text-align:center;padding:3rem 2rem;max-width:700px;width:100%}.love-content .letter-heading{font-family:var(--font-display);font-weight:500;font-size:clamp(1.8rem,4vw,2.8rem);color:var(--gold-light);letter-spacing:.03em;margin-bottom:2rem;line-height:1.3;text-shadow:0 0 30px rgba(212,165,116,.2)}.love-content .love-letter-text{font-family:var(--font-heading);font-size:clamp(1rem,2.2vw,1.2rem);color:var(--cream);opacity:.85;line-height:2;font-weight:300;font-style:italic;text-align:left;max-width:600px;margin:0 auto}.love-content .love-letter-text p{margin-bottom:1.5rem}.love-letter-text .letter-signature{text-align:right;font-style:normal;font-weight:400;color:var(--gold-accent);margin-top:2rem;font-size:1.1em}.love-divider{width:60px;height:1px;background:linear-gradient(90deg,transparent,var(--rose-primary),transparent);margin:3rem auto;opacity:.5}.valentine-section{background:linear-gradient(180deg,#0a0608,#0d0810,#0a0608);flex-direction:column;padding:4rem 1.5rem;min-height:80vh}.valentine-content{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem;max-width:600px;width:100%}.valentine-question{font-family:var(--font-display);font-weight:700;font-size:clamp(1.8rem,4vw,3rem);color:var(--white-soft);letter-spacing:.03em;margin-bottom:3rem;line-height:1.3;text-shadow:0 0 40px rgba(255,255,255,.08)}.valentine-buttons{display:flex;gap:2rem;align-items:center;justify-content:center;flex-wrap:wrap}.valentine-btn{padding:1rem 3rem;border-radius:50px;font-family:var(--font-display);font-size:1.2rem;font-weight:600;letter-spacing:.05em;cursor:pointer;transition:all .3s ease;border:none;position:relative}.valentine-btn.yes-btn{background:linear-gradient(135deg,var(--rose-primary),#e05570);color:#fff;box-shadow:0 4px 25px #c9485b66}.valentine-btn.yes-btn:hover{transform:scale(1.08);box-shadow:0 6px 35px #c9485b99}.valentine-btn.no-btn{background:#281e23cc;color:var(--cream);border:1px solid rgba(255,255,255,.15);box-shadow:0 4px 15px #0000004d}.valentine-btn.no-btn:hover{background:#3c2832cc;border-color:#ffffff40}.valentine-btn.no-btn.runaway{position:fixed;z-index:100;transition:all .3s cubic-bezier(.68,-.55,.27,1.55);pointer-events:auto}.yes-response{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#0a060800;pointer-events:none;opacity:0;transition:opacity 1s ease,background 1.5s ease}.yes-response.visible{opacity:1;pointer-events:auto;background:#0a0608f2}.yes-response h2{font-family:var(--font-display);font-weight:700;font-size:clamp(2rem,5vw,3.5rem);color:var(--white-soft);text-align:center;letter-spacing:.03em;line-height:1.3;text-shadow:0 0 40px rgba(201,72,91,.4)}.yes-response .heart-burst{font-size:4rem;margin-top:1.5rem;animation:heartPulse 1s ease-in-out infinite}@keyframes heartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@media(max-width:480px){.input-container{padding:.75rem 1rem;border-radius:12px}.submit-btn{width:40px;height:40px}.album-chip{width:150px;height:150px}.music-player{max-width:260px;padding:.8rem}#carousel-canvas{height:320px}.valentine-buttons{gap:1rem}.valentine-btn{padding:.8rem 2rem;font-size:1rem}}
