/* Rosa romântico: uma única família de cor para simbolizar amor e carinho */
:root{--paper:#fae9ef;--paper2:#fff7fa;--ink:#4a3039;--red:#b83f67;--tape:rgba(232,166,184,.62)}
body{background:#f0cbd6}
.opening{background:radial-gradient(circle at 50% 30%,#df7f9c,transparent 38%),linear-gradient(145deg,#a72f58,#5c2036);color:#fff8fa}
.opening p{color:#ffdce7}.opening button{background:#fff4f7;color:#792741;box-shadow:5px 6px 0 #d27692}.opening small{color:#f8ccd9}
.page{background-color:var(--paper);background-image:linear-gradient(rgba(184,63,103,.07) 1px,transparent 1px)}
.cover{background:linear-gradient(rgba(91,25,48,.18),rgba(91,25,48,.38)),radial-gradient(circle at 25% 18%,#f1abc0,#d96d8e 52%,#a9365d);color:#fff}
.cover .hand,.cover h1 span{color:#ffe4ec}.note,.letter{background:#fff8fa}.note>p:last-child,.ending>p:not(.hand){color:#74515d}
.photo{background:#fff9fb}.photo-one,.photo-two{box-shadow:10px 14px 30px rgba(146,43,77,.22)}
.memories{border-top-color:rgba(184,63,103,.25)}blockquote{color:#713b4d}.soundtrack{border-color:#d393a7}
.soundtrack button{background:#fff5f8;border-color:#b83f67;border-radius:999px;color:#a12f55}
footer{color:#8d6170}
.love-line{max-width:460px;margin:-16px auto 30px;color:#ffe5ed;font-family:"Segoe Print","Bradley Hand",cursive;font-size:1rem;letter-spacing:.02em}
.love-background{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;opacity:.22}.love-background span{position:absolute;color:#c94f78;font-family:Georgia,serif;filter:blur(.2px);animation:heartDrift 15s ease-in-out infinite}.love-background span:nth-child(1){font-size:9rem;left:-2rem;top:8%;animation-delay:-2s}.love-background span:nth-child(2){font-size:4rem;right:7%;top:16%;animation-delay:-9s}.love-background span:nth-child(3){font-size:7rem;left:10%;top:48%;animation-delay:-6s}.love-background span:nth-child(4){font-size:11rem;right:-3rem;top:58%;animation-delay:-12s}.love-background span:nth-child(5){font-size:5rem;left:43%;top:78%;animation-delay:-4s}.love-background span:nth-child(6){font-size:3.5rem;right:28%;top:36%;animation-delay:-8s}
.page{position:relative;z-index:1}.opening{overflow:hidden}.opening:before,.opening:after{content:"♡";position:absolute;font-size:min(46vw,34rem);color:rgba(255,255,255,.055);line-height:1;animation:slowSpin 28s linear infinite}.opening:before{left:-12vw;top:-14vw}.opening:after{right:-12vw;bottom:-18vw;animation-direction:reverse}.opening .envelope{animation:envelopeFloat 2.8s ease-in-out infinite;filter:drop-shadow(0 10px 18px rgba(79,19,40,.25))}.opening button{position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s}.opening button:hover{transform:translateY(-3px);box-shadow:7px 10px 0 #d27692}.opening button:after{content:"";position:absolute;inset:-70% -30%;background:linear-gradient(110deg,transparent 40%,rgba(255,255,255,.8) 50%,transparent 60%);transform:translateX(-80%);animation:buttonShine 3.4s ease-in-out infinite}
.cover h1{text-shadow:0 10px 35px rgba(90,19,43,.25);animation:titleArrival 1.3s cubic-bezier(.2,.8,.2,1) both}.cover .date{padding:8px 20px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(255,255,255,.09);backdrop-filter:blur(8px)}.note{transition:transform .45s,box-shadow .45s}.note:hover{transform:rotate(.4deg) translateY(-7px);box-shadow:8px 16px 30px rgba(138,48,80,.18)}.counter div{transition:.35s}.counter div:hover{background:rgba(255,255,255,.45);padding-left:18px;border-radius:12px}
.photo{transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s;overflow:hidden}.photo img{transition:transform .7s ease,filter .7s ease}.photo:hover{z-index:3;transform:rotate(0) translateY(-12px) scale(1.025);box-shadow:15px 25px 45px rgba(135,36,70,.28)}.photo:hover img{transform:scale(1.025);filter:brightness(1.06)}.photo:after{content:"♡";position:absolute;right:20px;bottom:12px;color:#d45c83;font-size:1.5rem}blockquote{text-shadow:0 8px 30px rgba(184,63,103,.12)}blockquote:before,blockquote:after{content:"♥";display:inline-block;color:#d86f91;font-size:.45em;vertical-align:middle;margin:0 .45em;animation:tinyPulse 2s ease-in-out infinite}
.soundtrack{position:relative;padding-left:34px;padding-right:34px;background:rgba(255,255,255,.22);border-radius:28px;box-shadow:inset 0 1px rgba(255,255,255,.6)}.soundtrack:before{content:"♫";position:absolute;right:26px;top:20px;font-size:4rem;color:rgba(184,63,103,.12);transform:rotate(12deg)}.soundtrack button{transition:.25s;box-shadow:0 8px 18px rgba(142,38,73,.1)}.soundtrack button:hover{transform:translateY(-2px);background:#b83f67;color:white}.letter{transition:transform .5s,box-shadow .5s}.letter:hover{transform:rotate(-.2deg) translateY(-4px);box-shadow:12px 20px 42px rgba(110,31,58,.22)}.big-heart{display:inline-block;animation:tinyPulse 1.8s ease-in-out infinite;filter:drop-shadow(0 8px 15px rgba(184,63,103,.3))}
.reveal{opacity:0;transform:translateY(38px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.75,.2,1)}.reveal.visible-section{opacity:1;transform:none}.tap-heart{position:fixed;z-index:200;pointer-events:none;color:#d13e70;font-size:1.4rem;animation:tapHeart 1.15s ease-out forwards;filter:drop-shadow(0 3px 5px rgba(117,25,56,.25))}.sparkle{position:fixed;z-index:0;width:4px;height:4px;border-radius:50%;background:#fff;pointer-events:none;box-shadow:0 0 12px 3px rgba(255,182,207,.8);animation:sparkleFloat linear forwards}
.falling-love{position:fixed;inset:0;z-index:2;pointer-events:none;overflow:hidden}.falling-heart{position:absolute;top:-12vh;color:#c9376a;line-height:1;opacity:0;filter:drop-shadow(0 5px 8px rgba(116,30,61,.18));will-change:transform;animation:loveFall linear forwards}.falling-heart.soft{color:#e785a4;filter:blur(.3px)}.falling-heart.deep{color:#a92754}.falling-heart.outline{color:#d75982}
.cover:after{box-shadow:0 0 100px rgba(255,205,220,.18)}section:not(.soundtrack){position:relative}section:not(.soundtrack):after{content:"♡";position:absolute;right:1%;bottom:2%;font-size:clamp(4rem,10vw,8rem);color:rgba(184,63,103,.055);transform:rotate(-12deg);pointer-events:none}.letter-section:after{content:"♥";left:0;right:auto;bottom:8%;font-size:9rem}.ending:after{display:none}
@keyframes heartDrift{0%,100%{transform:translate(0,0) rotate(-5deg)}50%{transform:translate(18px,-28px) rotate(7deg)}}@keyframes slowSpin{to{transform:rotate(360deg)}}@keyframes envelopeFloat{50%{transform:translateY(-10px) rotate(3deg)}}@keyframes buttonShine{0%,55%{transform:translateX(-80%)}85%,100%{transform:translateX(90%)}}@keyframes titleArrival{from{opacity:0;transform:translateY(25px) scale(.96)}}@keyframes tinyPulse{50%{transform:scale(1.2)}}@keyframes tapHeart{to{transform:translateY(-80px) scale(1.8) rotate(20deg);opacity:0}}@keyframes sparkleFloat{0%{opacity:0;transform:translateY(20px) scale(.4)}30%{opacity:.9}100%{opacity:0;transform:translateY(-110px) scale(1.2)}}@keyframes loveFall{0%{opacity:0;transform:translate3d(0,-8vh,0) rotate(0deg)}8%{opacity:.7}78%{opacity:.55}100%{opacity:0;transform:translate3d(var(--drift),115vh,0) rotate(var(--spin))}}
@media(prefers-reduced-motion:reduce){.love-background span,.opening:before,.opening:after,.opening .envelope,.opening button:after,.cover h1,.big-heart,.sparkle,.falling-heart{animation:none}.falling-love{display:none}.reveal{opacity:1;transform:none;transition:none}}
