.pow{position:absolute;z-index:6;width:80px;margin:-34px 0 0 -40px;text-align:center;font-family:var(--f-display);font-weight:800;font-size:20px;line-height:1;color:var(--red);text-shadow:0 2px 0 #000,0 -2px 0 #000,2px 0 0 #000,-2px 0 0 #000,0 0 14px var(--red);animation:pow .6s ease-out forwards}
.pow svg{width:54px;height:54px;display:block;margin:0 auto}
@keyframes pow{0%{transform:scale(.4) rotate(-50deg);opacity:1}35%{transform:scale(1.2) rotate(10deg);opacity:1}100%{transform:scale(1) translateY(-40px);opacity:0}}
.hint{position:absolute;left:110px;right:110px;bottom:calc(156px + var(--sab));line-height:1.25;text-align:center;font-weight:800;font-size:12.5px;color:rgba(255,255,255,.55);z-index:2}
.scene.night~.hint{color:rgba(255,255,255,.7)}
/* dock de ações: duas colunas espelhadas de botões do mesmo tamanho (2 de cada lado), com o seletor de modo no meio */
.fab{position:absolute;bottom:calc(112px + var(--sab));z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;border-radius:20px;width:80px;height:72px;padding:6px 5px;font-weight:900;font-size:11px;line-height:1.15;white-space:nowrap}
.fab svg{width:28px;height:28px;flex:none}
.fab.l{left:12px}.fab.r{right:12px}
.fab.up{bottom:calc(192px + var(--sab))}
.fab .bdg{position:absolute;top:-6px;right:-4px;background:var(--accent);color:#fff;border-radius:99px;font-size:11px;padding:2px 7px;font-weight:900}
.fab:disabled{opacity:.6}
/* esquerda: armário e, acima, o inseminador (grávido, vira o medidor da gestação). Direita: cigarro e, acima, alimentar. A régua do cigarro enche durante a tragada */
.fab.cig{touch-action:none}
.fab.cig.lit{box-shadow:0 0 16px rgba(255,122,26,.7)}
.fab.cig.crave{animation:crave .9s ease-in-out infinite}
@keyframes crave{50%{box-shadow:0 0 24px #FF9F2E;transform:scale(1.06)}}
.cgb{position:relative;width:100%;height:6px;border-radius:9px;background:rgba(0,0,0,.35);overflow:hidden}
.cgb i{display:block;height:100%;width:0;background:linear-gradient(90deg,#FF9F2E,#FFD23F)}
.smk{position:absolute;z-index:80;border-radius:50%;background:rgba(196,192,206,.85);filter:blur(3px);pointer-events:none}
/* ansiedade: faixa fina no rodapé do painel, entre o estado e o número */
.nsub{grid-column:1/-1;display:flex;align-items:center;gap:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.1);font-size:11px;font-weight:800;line-height:14px;color:var(--ink2);white-space:nowrap}
.nsub .bar{flex:1;min-width:24px;height:4px;margin:0}.bar.ax i{background:var(--red)}
/* tremor da abstinência: --ja (amplitude) e --jd (velocidade) crescem com a ansiedade */
.stage.jit svg>.pp{animation:jit var(--jd,.2s) linear infinite}
.stage.hit svg>.pp{animation:shake .3s;transform-origin:120px 170px}
@keyframes jit{0%,100%{transform:translate(0,0)}20%{transform:translate(var(--ja),calc(var(--ja)*-.6))}40%{transform:translate(calc(var(--ja)*-1),calc(var(--ja)*.4))}60%{transform:translate(calc(var(--ja)*.6),calc(var(--ja)*.8))}80%{transform:translate(calc(var(--ja)*-.5),calc(var(--ja)*-.7))}}
.fab.insem.on{box-shadow:0 0 18px #FF7AC8}
.insem .gb{width:100%;height:6px;border-radius:9px;background:rgba(0,0,0,.28);overflow:hidden}
.insem .gb i{display:block;height:100%;background:linear-gradient(90deg,#FF7AC8,#FFD23F);transition:width .2s}
.insem .gb.hp i{background:var(--red)}
.bly{transform-origin:120px 224px;transition:transform .3s cubic-bezier(.3,1.8,.5,1)}
.blyi{transform-origin:120px 224px}
.bbeat{transform-box:fill-box;transform-origin:center;animation:bbeat .8s ease-in-out infinite}
@keyframes bbeat{0%,100%{transform:scale(.85)}30%{transform:scale(1.25)}}
