/* ===== De corpo e Alma · versão super feminina (animações) ===== */
:root{--bg:#FFFAF8;--cream:#FBE9E5;--line:#EBD3CC;--rose:#D4848F}
@view-transition{navigation:auto}
::view-transition-old(root){animation:.35s ease both vtOut}::view-transition-new(root){animation:.5s ease both vtIn}
@keyframes vtOut{to{opacity:0}}@keyframes vtIn{from{opacity:0}}
html.intro.fx{overflow:hidden}
/* botões: brilho e pulsar */
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-130%);pointer-events:none}
.btn:hover::after{transform:translateX(130%);transition:transform .9s ease}
.btn.call{animation:pulse 2.8s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(212,132,143,.55)}70%,100%{box-shadow:0 0 0 18px rgba(212,132,143,0)}}
/* topo */
#inicio{position:relative;overflow:hidden}
#inicio .wrap{position:relative;z-index:2}
#inicio::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:70px;background:var(--bg);z-index:1;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 60V30C240 0 480 0 720 25S1200 55 1440 20V60Z'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 60V30C240 0 480 0 720 25S1200 55 1440 20V60Z'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat}
#inicio h1{font-style:italic}
#inicio h1 .amor{font-family:"Dancing Script",cursive;font-style:normal;font-weight:600;color:#C0707E;font-size:1.2em;line-height:.9}
#inicio h1 .amor::after{content:" ♥";font-size:.45em;display:inline-block;animation:beat 1.6s ease-in-out infinite}
@keyframes beat{0%,100%{transform:scale(1)}15%{transform:scale(1.35)}30%{transform:scale(1)}45%{transform:scale(1.2)}}
.mark .card{position:relative}
.mark .card::before{content:"";position:absolute;inset:-8%;z-index:-1;border-radius:50%;background:radial-gradient(circle,rgba(241,196,190,.6),rgba(241,196,190,0) 66%);animation:halo 5s ease-in-out infinite}
@keyframes halo{50%{transform:scale(1.12);opacity:.65}}
.mark .card .orbit{position:absolute;inset:-3%;pointer-events:none;animation:spin 22s linear infinite}
.orbit::before,.orbit::after{content:"✦";position:absolute;color:#CDA650;font-size:20px;text-shadow:0 0 10px rgba(205,166,80,.7)}
.orbit::before{top:6%;left:50%}.orbit::after{bottom:8%;left:16%;color:#D4848F;font-size:15px}
@keyframes spin{to{transform:rotate(360deg)}}
.mark img{transform:translate3d(0,calc(var(--sy,0)*-.06px),0)}
.deco{position:absolute;inset:0;z-index:0;pointer-events:none;transform:translate3d(0,calc(var(--sy,0)*.22px),0)}
.deco .blob{position:absolute;border-radius:50%;filter:blur(46px);opacity:.55}
.deco .b1{width:44vw;height:44vw;max-width:560px;max-height:560px;left:-8%;top:-14%;background:radial-gradient(circle,#F6C9C6,transparent 68%);animation:drift 16s ease-in-out infinite}
.deco .b2{width:36vw;height:36vw;max-width:460px;max-height:460px;right:-6%;bottom:-12%;background:radial-gradient(circle,#F1DDB0,transparent 68%);animation:drift 19s ease-in-out -6s infinite reverse}
@keyframes drift{50%{transform:translate(40px,30px) scale(1.12)}}
.petals span{position:absolute;top:-40px;left:var(--l);width:var(--s);height:calc(var(--s)*1.35);background:radial-gradient(ellipse at 30% 25%,#fff0ec,#efb3ad 70%);border-radius:80% 0 80% 0;opacity:.75;animation:fall var(--d) linear var(--dl) infinite}
@keyframes fall{0%{transform:translate3d(0,-40px,0) rotate(0) rotateX(0)}25%{transform:translate3d(calc(var(--x)*.6),26vh,0) rotate(90deg) rotateX(180deg)}50%{transform:translate3d(calc(var(--x)*-.4),52vh,0) rotate(200deg) rotateX(360deg)}75%{transform:translate3d(var(--x),80vh,0) rotate(300deg) rotateX(540deg)}100%{transform:translate3d(0,112vh,0) rotate(400deg) rotateX(720deg)}}
.spark{position:absolute;left:var(--l);top:var(--t);width:var(--s);height:var(--s);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23CDA650' d='M12 0c1 7 5 11 12 12-7 1-11 5-12 12-1-7-5-11-12-12 7-1 11-5 12-12z'/%3E%3C/svg%3E") center/contain no-repeat;opacity:0;animation:tw var(--d) ease-in-out var(--dl) infinite}
@keyframes tw{0%,100%{opacity:0;transform:scale(.3) rotate(0)}50%{opacity:1;transform:scale(1) rotate(90deg)}}
/* entrada do topo */
.fx #inicio .mark,.fx #inicio .w,.fx #inicio .sub,.fx #inicio .cta,.fx #inicio .igl{opacity:0}
.fx #inicio .w{display:inline-block}
.go #inicio .mark{animation:markIn 1.7s cubic-bezier(.2,.8,.2,1) .1s both}
.go #inicio .w{animation:wordIn 1s cubic-bezier(.2,.8,.2,1) calc(.5s + var(--i)*.14s) both}
.go #inicio .sub{animation:rise 1s cubic-bezier(.2,.8,.2,1) 1.4s both}
.go #inicio .cta{animation:rise 1s cubic-bezier(.2,.8,.2,1) 1.7s both}
.go #inicio .igl{animation:rise 1s cubic-bezier(.2,.8,.2,1) 2s both}
.go #inicio .mark .card{animation:float 7s ease-in-out 1.8s infinite}
@keyframes markIn{from{opacity:0;transform:scale(.78) rotate(-8deg)}to{opacity:1;transform:none}}
@keyframes wordIn{from{opacity:0;transform:translateY(46px) rotate(3deg);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes float{50%{transform:translateY(-14px)}}
/* fita */
.ribbon{overflow:hidden;padding:20px 0;border-block:1px solid var(--line);background:var(--bg)}
.rt{display:flex;width:max-content;animation:marq 40s linear infinite;font:600 34px/1 "Dancing Script",cursive;color:var(--gold);white-space:nowrap}
.rt span{padding:0 22px}.rt i{font-style:normal;color:var(--rose);font-size:20px;align-self:center}
.ribbon:hover .rt{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-50%)}}
/* revelações ao scroll */
.fx [data-rv]{opacity:0;transition:opacity 1s ease,transform 1s cubic-bezier(.2,.8,.2,1),clip-path 1.4s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i,0)*.12s)}
.fx [data-rv="up"]{transform:translateY(34px)}
.fx [data-rv="right"]{transform:translateX(44px)}
.fx [data-rv="iris"]{transform:scale(1.07);clip-path:ellipse(8% 8% at 50% 100%)}
.fx [data-rv].in{opacity:1;transform:none;clip-path:ellipse(160% 160% at 50% 100%)}
.fx .card2.in:hover{transform:translateY(-6px)}
.fx .phead h1::after{transform:scaleX(0);transform-origin:left;transition:transform 1.2s cubic-bezier(.2,.8,.2,1) .5s}
.fx .phead .in::after{transform:none}
/* rasto de brilhos do rato */
.tr{position:fixed;z-index:60;pointer-events:none;font-style:normal;line-height:1;animation:tr 1.1s ease-out forwards}
@keyframes tr{0%{opacity:.95;transform:translate(-50%,-50%) scale(.6)}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + 46px)) scale(1.2) rotate(40deg)}}
/* ENTRADA (cortina) */
#intro{position:fixed;inset:0;z-index:100;display:grid;place-items:center;overflow:hidden}
#intro .cl{position:absolute;top:0;bottom:0;width:50.2%;background:linear-gradient(160deg,#FFF3EF,#F8D9D3 60%,#F1DDB8);transition:transform 1.1s cubic-bezier(.7,0,.2,1) .15s}
#intro .cl.l{left:0;border-right:1px solid #CDA650}#intro .cl.r{right:0;border-left:1px solid #CDA650;background:linear-gradient(200deg,#FFF3EF,#F8D9D3 60%,#F1DDB8)}
#intro .ic{position:relative;z-index:2;text-align:center;width:min(78vw,430px);transition:opacity .6s,transform .8s}
#intro .ic img{width:100%;height:auto;animation:iris 1.7s cubic-bezier(.2,.8,.2,1) .2s both}
#intro .ic p{margin:6px 0 0;font:600 clamp(24px,5vw,34px)/1.2 "Dancing Script",cursive;color:#8F6A22;animation:rise 1.2s ease 1.5s both}
@keyframes iris{from{opacity:0;transform:scale(.86);clip-path:circle(0% at 50% 50%)}to{opacity:1;transform:none;clip-path:circle(75% at 50% 50%)}}
#intro.open .ic{opacity:0;transform:scale(1.18)}
#intro.open .cl.l{transform:translateX(-101%)}#intro.open .cl.r{transform:translateX(101%)}
#intro .ip{position:absolute;z-index:1;left:var(--l);top:-30px;width:var(--s);height:calc(var(--s)*1.35);background:radial-gradient(ellipse at 30% 25%,#fff,#efb3ad 70%);border-radius:80% 0 80% 0;opacity:.85;animation:fall var(--d) linear var(--dl) infinite}
#intro .skip{position:absolute;z-index:3;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));background:none;border:1px solid #CDA650;color:#8F6A22;border-radius:999px;padding:9px 20px;font:500 14px "Jost",sans-serif;cursor:pointer;animation:rise 1s ease 1s both}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
#inicio h1{font-size:clamp(34px,4.6vw,60px);line-height:1.15;max-width:17ch}
#intro .cl.l,#intro .cl.r{border:0}
@media(max-width:760px){#inicio h1{font-size:clamp(32px,9vw,44px);max-width:none}}
