/* identidade visual por modo, só na home com o PeePee vivo: carinho = céu, porrada = inferno */
.scene::before,.scene::after{content:"";position:absolute;pointer-events:none;opacity:0;transition:opacity .5s}
.app.heaven .scene{background:linear-gradient(180deg,#7CC8FF 0%,#C4E6FF 36%,#FFDDEE 70%,#FFF4CF 100%)}
.app.heaven .scene::before{inset:0;opacity:1;background:radial-gradient(70% 42% at 50% 30%,rgba(255,255,255,.95),rgba(255,255,255,0) 70%),repeating-conic-gradient(from 0deg at 50% 30%,rgba(255,255,255,.22) 0 7deg,rgba(255,255,255,0) 7deg 20deg)}
.app.heaven .sun{background:radial-gradient(circle at 35% 35%,#FFFDE8,#FFE27A 60%,#FFC93C);box-shadow:0 0 0 14px rgba(255,240,170,.4),0 0 80px rgba(255,226,122,.95)}
.app.heaven .cloud{background:rgba(255,255,255,.95);opacity:1}
.app.heaven .isle{background:radial-gradient(ellipse at 50% 35%,#fff 0 55%,#DDEBFF 56% 100%);box-shadow:0 0 44px 8px rgba(255,255,255,.9);filter:none}
.app.heaven .stars{display:none}
.app.heaven .embers i{background:#FFF6C2;box-shadow:0 0 10px #FFE27A}
.app.heaven .stage svg{filter:drop-shadow(0 0 22px rgba(255,240,170,.9))}
.app.heaven .hint{color:rgba(70,45,100,.8)}
.app.heaven .modeseg button.on[data-m=carinho]{background:linear-gradient(180deg,#FFD86B,#FF9FC8);color:#3A2148}
.halo{animation:float 2.8s ease-in-out infinite}
/* cenário de cada modo: .hv (céu) e .hl (matadouro) ficam dentro da .scene, atrás da ilha, e só aparecem no modo certo */
.deco{position:absolute;inset:0;display:none;pointer-events:none;overflow:hidden}
.deco>*,.hl .bld>*{position:absolute}
.deco svg{display:block;width:100%;height:100%;overflow:visible}
.app.heaven .hv,.app.hell .hl{display:block}
/* céu: arco-íris, portão de pérola, nuvens com carinha, pombas, harpa, estrelas penduradas, flores, penas e brilhos */
.app.heaven::after{box-shadow:inset 0 0 80px rgba(255,255,255,.6)}
.hv .rbw{left:50%;width:560px;height:280px;margin-left:-280px;bottom:calc(200px + var(--sab));background:radial-gradient(circle farthest-side at 50% 100%,transparent 71%,#C9B6FF 72% 76%,#A8D8FF 76% 80%,#B8F2C8 80% 84%,#FFF3A8 84% 88%,#FFD0A0 88% 92%,#FFB0CC 92% 96%,transparent 97%);opacity:.85;filter:blur(1.5px)}
.hv .gate{left:50%;width:330px;height:330px;margin-left:-165px;bottom:calc(206px + var(--sab));filter:drop-shadow(0 0 14px #fff);opacity:.95}
.hv .bank{left:-10%;right:-10%;height:190px;bottom:calc(96px + var(--sab));--c:#FFE3F1;background:radial-gradient(circle at 50% 100%,var(--c) 0 64px,transparent 65px) 0 0/130px 65px repeat-x,linear-gradient(var(--c),var(--c)) 0 64px/100% 100% no-repeat;animation:bankx 9s ease-in-out infinite alternate}
.hv .bank.b2{--c:#fff;height:150px;background-size:96px 48px,100% 100%;background-position:30px 0,0 47px;background-image:radial-gradient(circle at 50% 100%,var(--c) 0 47px,transparent 48px),linear-gradient(var(--c),var(--c));animation-duration:7s;animation-direction:alternate-reverse}
@keyframes bankx{from{transform:translateX(-14px)}to{transform:translateX(14px)}}
.hv .cl{width:86px;height:54px;filter:drop-shadow(0 4px 8px rgba(160,190,255,.6));animation:float 4.5s ease-in-out infinite}
.hv .sunf{right:30px;top:168px;width:64px;height:64px}
.hv .hgs{top:0;width:34px;transform-origin:50% 0;animation:sway 5s ease-in-out infinite alternate}
.hv .hgs::before{content:"";position:absolute;left:50%;top:0;bottom:30px;width:1.5px;margin-left:-.75px;background:linear-gradient(#FFE9A8,#FFC93C)}
.hv .hgs svg{position:absolute;left:0;bottom:0;width:34px;height:34px;filter:drop-shadow(0 0 8px #FFF3B0)}
@keyframes sway{from{transform:rotate(-4deg)}to{transform:rotate(4deg)}}
.hv .dove{left:-70px;width:52px;height:36px;animation:dove 19s linear infinite}
.hv .dove .wg{transform-box:fill-box;transform-origin:50% 100%;animation:flap .5s ease-in-out infinite alternate}
@keyframes dove{0%{transform:translate(0,0)}25%{transform:translate(150px,-22px)}50%{transform:translate(300px,6px)}75%{transform:translate(450px,-18px)}100%{transform:translate(600px,0)}}
@keyframes flap{from{transform:scaleY(1)}to{transform:scaleY(-.55)}}
.hv .harp{right:8px;width:58px;height:84px;bottom:calc(292px + var(--sab));filter:drop-shadow(0 0 10px #FFF3B0);animation:float 5.2s ease-in-out -2s infinite}
.hv .wh{left:8px;top:250px;width:66px;height:36px;filter:drop-shadow(0 0 8px #fff);animation:float 3.6s ease-in-out infinite}
.hv .wh .wg{transform-box:fill-box;animation:flap2 .7s ease-in-out infinite alternate}
.hv .wh .wg.l{transform-origin:100% 60%}.hv .wh .wg.r{transform-origin:0 60%}
@keyframes flap2{from{transform:scaleX(1)}to{transform:scaleX(.72)}}
.hv .fl{width:22px;height:34px;transform-origin:50% 100%;animation:sway 3.4s ease-in-out infinite alternate}
.hv .spk{animation:tw2 2.6s ease-in-out infinite}
@keyframes tw2{0%,100%{transform:scale(.3) rotate(0);opacity:0}50%{transform:scale(1) rotate(45deg);opacity:1}}
.hv .hrt{animation:hrt 7s ease-in-out infinite;opacity:0}
@keyframes hrt{0%{transform:translateY(0) scale(.6);opacity:0}20%{opacity:.85}80%{opacity:.7}100%{transform:translateY(-150px) scale(1.1);opacity:0}}
.hv .fth{top:150px;width:12px;height:30px;opacity:0;animation:fth 11s linear infinite}
@keyframes fth{0%{transform:translate(0,0) rotate(-25deg);opacity:0}8%{opacity:.95}30%{transform:translate(26px,150px) rotate(22deg)}60%{transform:translate(-14px,320px) rotate(-22deg)}90%{opacity:.9}100%{transform:translate(18px,520px) rotate(18deg);opacity:0}}
/* céu: a interface vira vidro perolado com letra escura */
.app.heaven #s-home{--ink2:#7C6397}
.app.heaven #s-home .glass,.app.heaven .nav{background:rgba(255,255,255,.66);color:#4A2A63;border-color:rgba(255,255,255,.95);box-shadow:inset 0 1px 0 #fff,0 8px 26px rgba(255,150,200,.35),0 0 0 3px rgba(255,255,255,.3)}
.app.heaven #s-home .bar,.app.heaven .xpb{background:rgba(124,99,151,.2)}
.app.heaven .streak,.app.heaven .lv,.app.heaven .chipc,.app.heaven #s-home .iconbtn{background:rgba(255,255,255,.8)}
.app.heaven .streak{color:#E8590C}.app.heaven .lv{color:#B97A00}
.app.heaven .nav button{color:rgba(74,42,99,.6)}
.app.heaven .nav button.on{background:linear-gradient(180deg,#FFE9A8,#FFC2DC);color:#4A2A63;box-shadow:0 0 14px rgba(255,170,210,.8)}
.app.heaven .modeseg{background:rgba(255,255,255,.7);box-shadow:0 0 0 2px rgba(255,255,255,.6)}
.app.heaven .modeseg button:not(.on){color:#7C6397}
