/* PARADISE — LLAMAS
   El fuego entero: fuego sencillo, incendio, humo, chispas,
   ascuas y los estados d0-d5. Viene de CodePen y no se toca.
   Salió del <style> de app_trabajo.html el 27/08/2026. NO se ha cambiado ni
   una regla: es el mismo texto, en el mismo orden. */
  /* ---- 🔥 llamas del modo incendio (CSS «incendio» de LLAMAS, inyectado en el build) ---- */
  /* ============ FUEGO SENCILLO (Chokcoco, MIT) ============ */
.g-fire-box {
  position: absolute;
  top: 97px;
  left: 50%;
  width: 80px;
  height: 200px;
  transform: translate(-50%, -50%);
  filter: blur(2px) contrast(20);
}

.g-fire {
  position: absolute;
  top: 30px;
  left: 50%;
  border-radius: 45%;
  box-sizing: border-box;
  border: 120px solid #000;
  border-bottom: 120px solid transparent;
  transform: translate(-50%, 0) scaleX(0.45);
  background-color: #761b00;
}

.g-ball {
  position: absolute;
  top: 60px;
  transform: translate(0, 0);
  background: var(--fs-color, #fa8763);
  border-radius: 50%;
  z-index: -1;
  mix-blend-mode: screen;
}

.g-ball:nth-child(1) {
  width: 9px;
  height: 9px;
  left: calc(46px - 55px);
}

.g-ball:nth-child(1) {
  animation: movetop var(--fs-dur, 1s) linear -1.066s infinite;
}

.g-ball:nth-child(2) {
  width: 5px;
  height: 5px;
  left: calc(2px - 55px);
}

.g-ball:nth-child(2) {
  animation: movetop var(--fs-dur, 1s) linear -1.354s infinite;
}

.g-ball:nth-child(3) {
  width: 45px;
  height: 45px;
  left: calc(51px - 55px);
}

.g-ball:nth-child(3) {
  animation: movetop var(--fs-dur, 1s) linear -1.282s infinite;
}

.g-ball:nth-child(4) {
  width: 49px;
  height: 49px;
  left: calc(5px - 55px);
}

.g-ball:nth-child(4) {
  animation: movetop var(--fs-dur, 1s) linear -0.098s infinite;
}

.g-ball:nth-child(5) {
  width: 15px;
  height: 15px;
  left: calc(24px - 55px);
}

.g-ball:nth-child(5) {
  animation: movetop var(--fs-dur, 1s) linear -1.033s infinite;
}

.g-ball:nth-child(6) {
  width: 48px;
  height: 48px;
  left: calc(50px - 55px);
}

.g-ball:nth-child(6) {
  animation: movetop var(--fs-dur, 1s) linear -2.793s infinite;
}

.g-ball:nth-child(7) {
  width: 32px;
  height: 32px;
  left: calc(21px - 55px);
}

.g-ball:nth-child(7) {
  animation: movetop var(--fs-dur, 1s) linear -2.155s infinite;
}

.g-ball:nth-child(8) {
  width: 17px;
  height: 17px;
  left: calc(45px - 55px);
}

.g-ball:nth-child(8) {
  animation: movetop var(--fs-dur, 1s) linear -1.735s infinite;
}

.g-ball:nth-child(9) {
  width: 17px;
  height: 17px;
  left: calc(44px - 55px);
}

.g-ball:nth-child(9) {
  animation: movetop var(--fs-dur, 1s) linear -0.775s infinite;
}

.g-ball:nth-child(10) {
  width: 9px;
  height: 9px;
  left: calc(53px - 55px);
}

.g-ball:nth-child(10) {
  animation: movetop var(--fs-dur, 1s) linear -2.998s infinite;
}

.g-ball:nth-child(11) {
  width: 28px;
  height: 28px;
  left: calc(23px - 55px);
}

.g-ball:nth-child(11) {
  animation: movetop var(--fs-dur, 1s) linear -0.875s infinite;
}

.g-ball:nth-child(12) {
  width: 12px;
  height: 12px;
  left: calc(11px - 55px);
}

.g-ball:nth-child(12) {
  animation: movetop var(--fs-dur, 1s) linear -1.28s infinite;
}

.g-ball:nth-child(13) {
  width: 19px;
  height: 19px;
  left: calc(35px - 55px);
}

.g-ball:nth-child(13) {
  animation: movetop var(--fs-dur, 1s) linear -2.182s infinite;
}

.g-ball:nth-child(14) {
  width: 43px;
  height: 43px;
  left: calc(11px - 55px);
}

.g-ball:nth-child(14) {
  animation: movetop var(--fs-dur, 1s) linear -2.355s infinite;
}

.g-ball:nth-child(15) {
  width: 45px;
  height: 45px;
  left: calc(19px - 55px);
}

.g-ball:nth-child(15) {
  animation: movetop var(--fs-dur, 1s) linear -0.579s infinite;
}

.g-ball:nth-child(16) {
  width: 43px;
  height: 43px;
  left: calc(16px - 55px);
}

.g-ball:nth-child(16) {
  animation: movetop var(--fs-dur, 1s) linear -1.021s infinite;
}

.g-ball:nth-child(17) {
  width: 10px;
  height: 10px;
  left: calc(14px - 55px);
}

.g-ball:nth-child(17) {
  animation: movetop var(--fs-dur, 1s) linear -1.803s infinite;
}

.g-ball:nth-child(18) {
  width: 50px;
  height: 50px;
  left: calc(55px - 55px);
}

.g-ball:nth-child(18) {
  animation: movetop var(--fs-dur, 1s) linear -0.888s infinite;
}

.g-ball:nth-child(19) {
  width: 40px;
  height: 40px;
  left: calc(15px - 55px);
}

.g-ball:nth-child(19) {
  animation: movetop var(--fs-dur, 1s) linear -1.889s infinite;
}

.g-ball:nth-child(20) {
  width: 9px;
  height: 9px;
  left: calc(30px - 55px);
}

.g-ball:nth-child(20) {
  animation: movetop var(--fs-dur, 1s) linear -1.245s infinite;
}

.g-ball:nth-child(21) {
  width: 35px;
  height: 35px;
  left: calc(21px - 55px);
}

.g-ball:nth-child(21) {
  animation: movetop var(--fs-dur, 1s) linear -0.075s infinite;
}

.g-ball:nth-child(22) {
  width: 12px;
  height: 12px;
  left: calc(49px - 55px);
}

.g-ball:nth-child(22) {
  animation: movetop var(--fs-dur, 1s) linear -2.376s infinite;
}

.g-ball:nth-child(23) {
  width: 4px;
  height: 4px;
  left: calc(53px - 55px);
}

.g-ball:nth-child(23) {
  animation: movetop var(--fs-dur, 1s) linear -1.273s infinite;
}

.g-ball:nth-child(24) {
  width: 50px;
  height: 50px;
  left: calc(25px - 55px);
}

.g-ball:nth-child(24) {
  animation: movetop var(--fs-dur, 1s) linear -2.429s infinite;
}

.g-ball:nth-child(25) {
  width: 24px;
  height: 24px;
  left: calc(15px - 55px);
}

.g-ball:nth-child(25) {
  animation: movetop var(--fs-dur, 1s) linear -2.908s infinite;
}

.g-ball:nth-child(26) {
  width: 39px;
  height: 39px;
  left: calc(49px - 55px);
}

.g-ball:nth-child(26) {
  animation: movetop var(--fs-dur, 1s) linear -2.09s infinite;
}

.g-ball:nth-child(27) {
  width: 25px;
  height: 25px;
  left: calc(25px - 55px);
}

.g-ball:nth-child(27) {
  animation: movetop var(--fs-dur, 1s) linear -1.659s infinite;
}

.g-ball:nth-child(28) {
  width: 25px;
  height: 25px;
  left: calc(47px - 55px);
}

.g-ball:nth-child(28) {
  animation: movetop var(--fs-dur, 1s) linear -0.502s infinite;
}

.g-ball:nth-child(29) {
  width: 20px;
  height: 20px;
  left: calc(22px - 55px);
}

.g-ball:nth-child(29) {
  animation: movetop var(--fs-dur, 1s) linear -2.682s infinite;
}

.g-ball:nth-child(30) {
  width: 23px;
  height: 23px;
  left: calc(62px - 55px);
}

.g-ball:nth-child(30) {
  animation: movetop var(--fs-dur, 1s) linear -1.262s infinite;
}

.g-ball:nth-child(31) {
  width: 42px;
  height: 42px;
  left: calc(6px - 55px);
}

.g-ball:nth-child(31) {
  animation: movetop var(--fs-dur, 1s) linear -2.692s infinite;
}

.g-ball:nth-child(32) {
  width: 17px;
  height: 17px;
  left: calc(59px - 55px);
}

.g-ball:nth-child(32) {
  animation: movetop var(--fs-dur, 1s) linear -1.255s infinite;
}

.g-ball:nth-child(33) {
  width: 23px;
  height: 23px;
  left: calc(10px - 55px);
}

.g-ball:nth-child(33) {
  animation: movetop var(--fs-dur, 1s) linear -1.67s infinite;
}

.g-ball:nth-child(34) {
  width: 5px;
  height: 5px;
  left: calc(28px - 55px);
}

.g-ball:nth-child(34) {
  animation: movetop var(--fs-dur, 1s) linear -1.625s infinite;
}

.g-ball:nth-child(35) {
  width: 32px;
  height: 32px;
  left: calc(8px - 55px);
}

.g-ball:nth-child(35) {
  animation: movetop var(--fs-dur, 1s) linear -2.25s infinite;
}

.g-ball:nth-child(36) {
  width: 44px;
  height: 44px;
  left: calc(44px - 55px);
}

.g-ball:nth-child(36) {
  animation: movetop var(--fs-dur, 1s) linear -0.347s infinite;
}

.g-ball:nth-child(37) {
  width: 38px;
  height: 38px;
  left: calc(48px - 55px);
}

.g-ball:nth-child(37) {
  animation: movetop var(--fs-dur, 1s) linear -2.213s infinite;
}

.g-ball:nth-child(38) {
  width: 40px;
  height: 40px;
  left: calc(56px - 55px);
}

.g-ball:nth-child(38) {
  animation: movetop var(--fs-dur, 1s) linear -0.054s infinite;
}

.g-ball:nth-child(39) {
  width: 3px;
  height: 3px;
  left: calc(48px - 55px);
}

.g-ball:nth-child(39) {
  animation: movetop var(--fs-dur, 1s) linear -2.934s infinite;
}

.g-ball:nth-child(40) {
  width: 6px;
  height: 6px;
  left: calc(52px - 55px);
}

.g-ball:nth-child(40) {
  animation: movetop var(--fs-dur, 1s) linear -1.988s infinite;
}

.g-ball:nth-child(41) {
  width: 49px;
  height: 49px;
  left: calc(38px - 55px);
}

.g-ball:nth-child(41) {
  animation: movetop var(--fs-dur, 1s) linear -2.052s infinite;
}

.g-ball:nth-child(42) {
  width: 13px;
  height: 13px;
  left: calc(52px - 55px);
}

.g-ball:nth-child(42) {
  animation: movetop var(--fs-dur, 1s) linear -1.154s infinite;
}

.g-ball:nth-child(43) {
  width: 32px;
  height: 32px;
  left: calc(18px - 55px);
}

.g-ball:nth-child(43) {
  animation: movetop var(--fs-dur, 1s) linear -1.203s infinite;
}

.g-ball:nth-child(44) {
  width: 26px;
  height: 26px;
  left: calc(53px - 55px);
}

.g-ball:nth-child(44) {
  animation: movetop var(--fs-dur, 1s) linear -1.303s infinite;
}

.g-ball:nth-child(45) {
  width: 2px;
  height: 2px;
  left: calc(51px - 55px);
}

.g-ball:nth-child(45) {
  animation: movetop var(--fs-dur, 1s) linear -0.531s infinite;
}

.g-ball:nth-child(46) {
  width: 17px;
  height: 17px;
  left: calc(47px - 55px);
}

.g-ball:nth-child(46) {
  animation: movetop var(--fs-dur, 1s) linear -2.962s infinite;
}

.g-ball:nth-child(47) {
  width: 43px;
  height: 43px;
  left: calc(19px - 55px);
}

.g-ball:nth-child(47) {
  animation: movetop var(--fs-dur, 1s) linear -1.969s infinite;
}

.g-ball:nth-child(48) {
  width: 13px;
  height: 13px;
  left: calc(11px - 55px);
}

.g-ball:nth-child(48) {
  animation: movetop var(--fs-dur, 1s) linear -2.239s infinite;
}

.g-ball:nth-child(49) {
  width: 14px;
  height: 14px;
  left: calc(59px - 55px);
}

.g-ball:nth-child(49) {
  animation: movetop var(--fs-dur, 1s) linear -0.817s infinite;
}

.g-ball:nth-child(50) {
  width: 4px;
  height: 4px;
  left: calc(8px - 55px);
}

.g-ball:nth-child(50) {
  animation: movetop var(--fs-dur, 1s) linear -1.448s infinite;
}

.g-ball:nth-child(51) {
  width: 44px;
  height: 44px;
  left: calc(39px - 55px);
}

.g-ball:nth-child(51) {
  animation: movetop var(--fs-dur, 1s) linear -2.072s infinite;
}

.g-ball:nth-child(52) {
  width: 8px;
  height: 8px;
  left: calc(17px - 55px);
}

.g-ball:nth-child(52) {
  animation: movetop var(--fs-dur, 1s) linear -1.624s infinite;
}

.g-ball:nth-child(53) {
  width: 15px;
  height: 15px;
  left: calc(37px - 55px);
}

.g-ball:nth-child(53) {
  animation: movetop var(--fs-dur, 1s) linear -0.022s infinite;
}

.g-ball:nth-child(54) {
  width: 1px;
  height: 1px;
  left: calc(17px - 55px);
}

.g-ball:nth-child(54) {
  animation: movetop var(--fs-dur, 1s) linear -1.318s infinite;
}

.g-ball:nth-child(55) {
  width: 13px;
  height: 13px;
  left: calc(48px - 55px);
}

.g-ball:nth-child(55) {
  animation: movetop var(--fs-dur, 1s) linear -1.411s infinite;
}

.g-ball:nth-child(56) {
  width: 44px;
  height: 44px;
  left: calc(59px - 55px);
}

.g-ball:nth-child(56) {
  animation: movetop var(--fs-dur, 1s) linear -0.245s infinite;
}

.g-ball:nth-child(57) {
  width: 12px;
  height: 12px;
  left: calc(58px - 55px);
}

.g-ball:nth-child(57) {
  animation: movetop var(--fs-dur, 1s) linear -2.252s infinite;
}

.g-ball:nth-child(58) {
  width: 27px;
  height: 27px;
  left: calc(21px - 55px);
}

.g-ball:nth-child(58) {
  animation: movetop var(--fs-dur, 1s) linear -1.104s infinite;
}

.g-ball:nth-child(59) {
  width: 28px;
  height: 28px;
  left: calc(36px - 55px);
}

.g-ball:nth-child(59) {
  animation: movetop var(--fs-dur, 1s) linear -0.891s infinite;
}

.g-ball:nth-child(60) {
  width: 3px;
  height: 3px;
  left: calc(68px - 55px);
}

.g-ball:nth-child(60) {
  animation: movetop var(--fs-dur, 1s) linear -2.486s infinite;
}

.g-ball:nth-child(61) {
  width: 25px;
  height: 25px;
  left: calc(50px - 55px);
}

.g-ball:nth-child(61) {
  animation: movetop var(--fs-dur, 1s) linear -0.396s infinite;
}

.g-ball:nth-child(62) {
  width: 9px;
  height: 9px;
  left: calc(34px - 55px);
}

.g-ball:nth-child(62) {
  animation: movetop var(--fs-dur, 1s) linear -1.217s infinite;
}

.g-ball:nth-child(63) {
  width: 8px;
  height: 8px;
  left: calc(35px - 55px);
}

.g-ball:nth-child(63) {
  animation: movetop var(--fs-dur, 1s) linear -2.498s infinite;
}

.g-ball:nth-child(64) {
  width: 22px;
  height: 22px;
  left: calc(24px - 55px);
}

.g-ball:nth-child(64) {
  animation: movetop var(--fs-dur, 1s) linear -0.092s infinite;
}

.g-ball:nth-child(65) {
  width: 11px;
  height: 11px;
  left: calc(36px - 55px);
}

.g-ball:nth-child(65) {
  animation: movetop var(--fs-dur, 1s) linear -0.314s infinite;
}

.g-ball:nth-child(66) {
  width: 35px;
  height: 35px;
  left: calc(43px - 55px);
}

.g-ball:nth-child(66) {
  animation: movetop var(--fs-dur, 1s) linear -2.551s infinite;
}

.g-ball:nth-child(67) {
  width: 21px;
  height: 21px;
  left: calc(23px - 55px);
}

.g-ball:nth-child(67) {
  animation: movetop var(--fs-dur, 1s) linear -0.491s infinite;
}

.g-ball:nth-child(68) {
  width: 9px;
  height: 9px;
  left: calc(26px - 55px);
}

.g-ball:nth-child(68) {
  animation: movetop var(--fs-dur, 1s) linear -1.605s infinite;
}

.g-ball:nth-child(69) {
  width: 4px;
  height: 4px;
  left: calc(50px - 55px);
}

.g-ball:nth-child(69) {
  animation: movetop var(--fs-dur, 1s) linear -1.097s infinite;
}

.g-ball:nth-child(70) {
  width: 27px;
  height: 27px;
  left: calc(47px - 55px);
}

.g-ball:nth-child(70) {
  animation: movetop var(--fs-dur, 1s) linear -1.979s infinite;
}

.g-ball:nth-child(71) {
  width: 19px;
  height: 19px;
  left: calc(64px - 55px);
}

.g-ball:nth-child(71) {
  animation: movetop var(--fs-dur, 1s) linear -2.104s infinite;
}

.g-ball:nth-child(72) {
  width: 47px;
  height: 47px;
  left: calc(63px - 55px);
}

.g-ball:nth-child(72) {
  animation: movetop var(--fs-dur, 1s) linear -2.355s infinite;
}

.g-ball:nth-child(73) {
  width: 30px;
  height: 30px;
  left: calc(65px - 55px);
}

.g-ball:nth-child(73) {
  animation: movetop var(--fs-dur, 1s) linear -2.457s infinite;
}

.g-ball:nth-child(74) {
  width: 3px;
  height: 3px;
  left: calc(23px - 55px);
}

.g-ball:nth-child(74) {
  animation: movetop var(--fs-dur, 1s) linear -1.435s infinite;
}

.g-ball:nth-child(75) {
  width: 39px;
  height: 39px;
  left: calc(18px - 55px);
}

.g-ball:nth-child(75) {
  animation: movetop var(--fs-dur, 1s) linear -1.716s infinite;
}

.g-ball:nth-child(76) {
  width: 47px;
  height: 47px;
  left: calc(22px - 55px);
}

.g-ball:nth-child(76) {
  animation: movetop var(--fs-dur, 1s) linear -0.116s infinite;
}

.g-ball:nth-child(77) {
  width: 50px;
  height: 50px;
  left: calc(4px - 55px);
}

.g-ball:nth-child(77) {
  animation: movetop var(--fs-dur, 1s) linear -0.582s infinite;
}

.g-ball:nth-child(78) {
  width: 29px;
  height: 29px;
  left: calc(59px - 55px);
}

.g-ball:nth-child(78) {
  animation: movetop var(--fs-dur, 1s) linear -2.631s infinite;
}

.g-ball:nth-child(79) {
  width: 25px;
  height: 25px;
  left: calc(60px - 55px);
}

.g-ball:nth-child(79) {
  animation: movetop var(--fs-dur, 1s) linear -0.379s infinite;
}

.g-ball:nth-child(80) {
  width: 19px;
  height: 19px;
  left: calc(11px - 55px);
}

.g-ball:nth-child(80) {
  animation: movetop var(--fs-dur, 1s) linear -2.38s infinite;
}

.g-ball:nth-child(81) {
  width: 22px;
  height: 22px;
  left: calc(67px - 55px);
}

.g-ball:nth-child(81) {
  animation: movetop var(--fs-dur, 1s) linear -2.83s infinite;
}

.g-ball:nth-child(82) {
  width: 20px;
  height: 20px;
  left: calc(56px - 55px);
}

.g-ball:nth-child(82) {
  animation: movetop var(--fs-dur, 1s) linear -1.111s infinite;
}

.g-ball:nth-child(83) {
  width: 37px;
  height: 37px;
  left: calc(43px - 55px);
}

.g-ball:nth-child(83) {
  animation: movetop var(--fs-dur, 1s) linear -2.311s infinite;
}

.g-ball:nth-child(84) {
  width: 13px;
  height: 13px;
  left: calc(30px - 55px);
}

.g-ball:nth-child(84) {
  animation: movetop var(--fs-dur, 1s) linear -0.004s infinite;
}

.g-ball:nth-child(85) {
  width: 33px;
  height: 33px;
  left: calc(23px - 55px);
}

.g-ball:nth-child(85) {
  animation: movetop var(--fs-dur, 1s) linear -0.492s infinite;
}

.g-ball:nth-child(86) {
  width: 6px;
  height: 6px;
  left: calc(24px - 55px);
}

.g-ball:nth-child(86) {
  animation: movetop var(--fs-dur, 1s) linear -2.82s infinite;
}

.g-ball:nth-child(87) {
  width: 10px;
  height: 10px;
  left: calc(55px - 55px);
}

.g-ball:nth-child(87) {
  animation: movetop var(--fs-dur, 1s) linear -2.866s infinite;
}

.g-ball:nth-child(88) {
  width: 40px;
  height: 40px;
  left: calc(54px - 55px);
}

.g-ball:nth-child(88) {
  animation: movetop var(--fs-dur, 1s) linear -2.429s infinite;
}

.g-ball:nth-child(89) {
  width: 44px;
  height: 44px;
  left: calc(36px - 55px);
}

.g-ball:nth-child(89) {
  animation: movetop var(--fs-dur, 1s) linear -0.227s infinite;
}

.g-ball:nth-child(90) {
  width: 29px;
  height: 29px;
  left: calc(60px - 55px);
}

.g-ball:nth-child(90) {
  animation: movetop var(--fs-dur, 1s) linear -2.353s infinite;
}

.g-ball:nth-child(91) {
  width: 39px;
  height: 39px;
  left: calc(56px - 55px);
}

.g-ball:nth-child(91) {
  animation: movetop var(--fs-dur, 1s) linear -0.553s infinite;
}

.g-ball:nth-child(92) {
  width: 19px;
  height: 19px;
  left: calc(23px - 55px);
}

.g-ball:nth-child(92) {
  animation: movetop var(--fs-dur, 1s) linear -2.877s infinite;
}

.g-ball:nth-child(93) {
  width: 18px;
  height: 18px;
  left: calc(54px - 55px);
}

.g-ball:nth-child(93) {
  animation: movetop var(--fs-dur, 1s) linear -2.066s infinite;
}

.g-ball:nth-child(94) {
  width: 31px;
  height: 31px;
  left: calc(62px - 55px);
}

.g-ball:nth-child(94) {
  animation: movetop var(--fs-dur, 1s) linear -2.494s infinite;
}

.g-ball:nth-child(95) {
  width: 35px;
  height: 35px;
  left: calc(28px - 55px);
}

.g-ball:nth-child(95) {
  animation: movetop var(--fs-dur, 1s) linear -0.753s infinite;
}

.g-ball:nth-child(96) {
  width: 29px;
  height: 29px;
  left: calc(31px - 55px);
}

.g-ball:nth-child(96) {
  animation: movetop var(--fs-dur, 1s) linear -0.269s infinite;
}

.g-ball:nth-child(97) {
  width: 33px;
  height: 33px;
  left: calc(63px - 55px);
}

.g-ball:nth-child(97) {
  animation: movetop var(--fs-dur, 1s) linear -2.522s infinite;
}

.g-ball:nth-child(98) {
  width: 29px;
  height: 29px;
  left: calc(57px - 55px);
}

.g-ball:nth-child(98) {
  animation: movetop var(--fs-dur, 1s) linear -0.744s infinite;
}

.g-ball:nth-child(99) {
  width: 47px;
  height: 47px;
  left: calc(36px - 55px);
}

.g-ball:nth-child(99) {
  animation: movetop var(--fs-dur, 1s) linear -0.965s infinite;
}

.g-ball:nth-child(100) {
  width: 13px;
  height: 13px;
  left: calc(4px - 55px);
}

.g-ball:nth-child(100) {
  animation: movetop var(--fs-dur, 1s) linear -1.671s infinite;
}

.g-ball:nth-child(101) {
  width: 42px;
  height: 42px;
  left: calc(20px - 55px);
}

.g-ball:nth-child(101) {
  animation: movetop var(--fs-dur, 1s) linear -1.429s infinite;
}

.g-ball:nth-child(102) {
  width: 16px;
  height: 16px;
  left: calc(49px - 55px);
}

.g-ball:nth-child(102) {
  animation: movetop var(--fs-dur, 1s) linear -2.526s infinite;
}

.g-ball:nth-child(103) {
  width: 25px;
  height: 25px;
  left: calc(68px - 55px);
}

.g-ball:nth-child(103) {
  animation: movetop var(--fs-dur, 1s) linear -0.424s infinite;
}

.g-ball:nth-child(104) {
  width: 43px;
  height: 43px;
  left: calc(46px - 55px);
}

.g-ball:nth-child(104) {
  animation: movetop var(--fs-dur, 1s) linear -2.961s infinite;
}

.g-ball:nth-child(105) {
  width: 42px;
  height: 42px;
  left: calc(12px - 55px);
}

.g-ball:nth-child(105) {
  animation: movetop var(--fs-dur, 1s) linear -2.932s infinite;
}

.g-ball:nth-child(106) {
  width: 2px;
  height: 2px;
  left: calc(54px - 55px);
}

.g-ball:nth-child(106) {
  animation: movetop var(--fs-dur, 1s) linear -2.452s infinite;
}

.g-ball:nth-child(107) {
  width: 19px;
  height: 19px;
  left: calc(20px - 55px);
}

.g-ball:nth-child(107) {
  animation: movetop var(--fs-dur, 1s) linear -1.668s infinite;
}

.g-ball:nth-child(108) {
  width: 1px;
  height: 1px;
  left: calc(25px - 55px);
}

.g-ball:nth-child(108) {
  animation: movetop var(--fs-dur, 1s) linear -2.503s infinite;
}

.g-ball:nth-child(109) {
  width: 31px;
  height: 31px;
  left: calc(15px - 55px);
}

.g-ball:nth-child(109) {
  animation: movetop var(--fs-dur, 1s) linear -1.763s infinite;
}

.g-ball:nth-child(110) {
  width: 1px;
  height: 1px;
  left: calc(43px - 55px);
}

.g-ball:nth-child(110) {
  animation: movetop var(--fs-dur, 1s) linear -0.517s infinite;
}

.g-ball:nth-child(111) {
  width: 9px;
  height: 9px;
  left: calc(45px - 55px);
}

.g-ball:nth-child(111) {
  animation: movetop var(--fs-dur, 1s) linear -2.622s infinite;
}

.g-ball:nth-child(112) {
  width: 25px;
  height: 25px;
  left: calc(42px - 55px);
}

.g-ball:nth-child(112) {
  animation: movetop var(--fs-dur, 1s) linear -1.911s infinite;
}

.g-ball:nth-child(113) {
  width: 27px;
  height: 27px;
  left: calc(54px - 55px);
}

.g-ball:nth-child(113) {
  animation: movetop var(--fs-dur, 1s) linear -1.351s infinite;
}

.g-ball:nth-child(114) {
  width: 37px;
  height: 37px;
  left: calc(28px - 55px);
}

.g-ball:nth-child(114) {
  animation: movetop var(--fs-dur, 1s) linear -0.102s infinite;
}

.g-ball:nth-child(115) {
  width: 42px;
  height: 42px;
  left: calc(44px - 55px);
}

.g-ball:nth-child(115) {
  animation: movetop var(--fs-dur, 1s) linear -1.478s infinite;
}

.g-ball:nth-child(116) {
  width: 26px;
  height: 26px;
  left: calc(54px - 55px);
}

.g-ball:nth-child(116) {
  animation: movetop var(--fs-dur, 1s) linear -2.084s infinite;
}

.g-ball:nth-child(117) {
  width: 28px;
  height: 28px;
  left: calc(4px - 55px);
}

.g-ball:nth-child(117) {
  animation: movetop var(--fs-dur, 1s) linear -2.031s infinite;
}

.g-ball:nth-child(118) {
  width: 13px;
  height: 13px;
  left: calc(4px - 55px);
}

.g-ball:nth-child(118) {
  animation: movetop var(--fs-dur, 1s) linear -0.468s infinite;
}

.g-ball:nth-child(119) {
  width: 10px;
  height: 10px;
  left: calc(21px - 55px);
}

.g-ball:nth-child(119) {
  animation: movetop var(--fs-dur, 1s) linear -2.335s infinite;
}

.g-ball:nth-child(120) {
  width: 45px;
  height: 45px;
  left: calc(26px - 55px);
}

.g-ball:nth-child(120) {
  animation: movetop var(--fs-dur, 1s) linear -1.849s infinite;
}

.g-ball:nth-child(121) {
  width: 8px;
  height: 8px;
  left: calc(58px - 55px);
}

.g-ball:nth-child(121) {
  animation: movetop var(--fs-dur, 1s) linear -2.009s infinite;
}

.g-ball:nth-child(122) {
  width: 17px;
  height: 17px;
  left: calc(33px - 55px);
}

.g-ball:nth-child(122) {
  animation: movetop var(--fs-dur, 1s) linear -1.245s infinite;
}

.g-ball:nth-child(123) {
  width: 22px;
  height: 22px;
  left: calc(28px - 55px);
}

.g-ball:nth-child(123) {
  animation: movetop var(--fs-dur, 1s) linear -1.754s infinite;
}

.g-ball:nth-child(124) {
  width: 47px;
  height: 47px;
  left: calc(28px - 55px);
}

.g-ball:nth-child(124) {
  animation: movetop var(--fs-dur, 1s) linear -2.706s infinite;
}

.g-ball:nth-child(125) {
  width: 39px;
  height: 39px;
  left: calc(59px - 55px);
}

.g-ball:nth-child(125) {
  animation: movetop var(--fs-dur, 1s) linear -1.261s infinite;
}

.g-ball:nth-child(126) {
  width: 43px;
  height: 43px;
  left: calc(8px - 55px);
}

.g-ball:nth-child(126) {
  animation: movetop var(--fs-dur, 1s) linear -1.288s infinite;
}

.g-ball:nth-child(127) {
  width: 50px;
  height: 50px;
  left: calc(24px - 55px);
}

.g-ball:nth-child(127) {
  animation: movetop var(--fs-dur, 1s) linear -2.135s infinite;
}

.g-ball:nth-child(128) {
  width: 10px;
  height: 10px;
  left: calc(61px - 55px);
}

.g-ball:nth-child(128) {
  animation: movetop var(--fs-dur, 1s) linear -2.605s infinite;
}

.g-ball:nth-child(129) {
  width: 26px;
  height: 26px;
  left: calc(22px - 55px);
}

.g-ball:nth-child(129) {
  animation: movetop var(--fs-dur, 1s) linear -0.756s infinite;
}

.g-ball:nth-child(130) {
  width: 12px;
  height: 12px;
  left: calc(27px - 55px);
}

.g-ball:nth-child(130) {
  animation: movetop var(--fs-dur, 1s) linear -0.568s infinite;
}

.g-ball:nth-child(131) {
  width: 10px;
  height: 10px;
  left: calc(50px - 55px);
}

.g-ball:nth-child(131) {
  animation: movetop var(--fs-dur, 1s) linear -0.501s infinite;
}

.g-ball:nth-child(132) {
  width: 32px;
  height: 32px;
  left: calc(33px - 55px);
}

.g-ball:nth-child(132) {
  animation: movetop var(--fs-dur, 1s) linear -2.113s infinite;
}

.g-ball:nth-child(133) {
  width: 30px;
  height: 30px;
  left: calc(23px - 55px);
}

.g-ball:nth-child(133) {
  animation: movetop var(--fs-dur, 1s) linear -2.61s infinite;
}

.g-ball:nth-child(134) {
  width: 28px;
  height: 28px;
  left: calc(38px - 55px);
}

.g-ball:nth-child(134) {
  animation: movetop var(--fs-dur, 1s) linear -0.323s infinite;
}

.g-ball:nth-child(135) {
  width: 6px;
  height: 6px;
  left: calc(30px - 55px);
}

.g-ball:nth-child(135) {
  animation: movetop var(--fs-dur, 1s) linear -1.845s infinite;
}

.g-ball:nth-child(136) {
  width: 24px;
  height: 24px;
  left: calc(11px - 55px);
}

.g-ball:nth-child(136) {
  animation: movetop var(--fs-dur, 1s) linear -1.808s infinite;
}

.g-ball:nth-child(137) {
  width: 27px;
  height: 27px;
  left: calc(15px - 55px);
}

.g-ball:nth-child(137) {
  animation: movetop var(--fs-dur, 1s) linear -2.158s infinite;
}

.g-ball:nth-child(138) {
  width: 27px;
  height: 27px;
  left: calc(1px - 55px);
}

.g-ball:nth-child(138) {
  animation: movetop var(--fs-dur, 1s) linear -2.697s infinite;
}

.g-ball:nth-child(139) {
  width: 17px;
  height: 17px;
  left: calc(28px - 55px);
}

.g-ball:nth-child(139) {
  animation: movetop var(--fs-dur, 1s) linear -0.596s infinite;
}

.g-ball:nth-child(140) {
  width: 50px;
  height: 50px;
  left: calc(41px - 55px);
}

.g-ball:nth-child(140) {
  animation: movetop var(--fs-dur, 1s) linear -0.242s infinite;
}

.g-ball:nth-child(141) {
  width: 3px;
  height: 3px;
  left: calc(16px - 55px);
}

.g-ball:nth-child(141) {
  animation: movetop var(--fs-dur, 1s) linear -0.808s infinite;
}

.g-ball:nth-child(142) {
  width: 48px;
  height: 48px;
  left: calc(18px - 55px);
}

.g-ball:nth-child(142) {
  animation: movetop var(--fs-dur, 1s) linear -1.18s infinite;
}

.g-ball:nth-child(143) {
  width: 3px;
  height: 3px;
  left: calc(59px - 55px);
}

.g-ball:nth-child(143) {
  animation: movetop var(--fs-dur, 1s) linear -1.825s infinite;
}

.g-ball:nth-child(144) {
  width: 45px;
  height: 45px;
  left: calc(35px - 55px);
}

.g-ball:nth-child(144) {
  animation: movetop var(--fs-dur, 1s) linear -1.205s infinite;
}

.g-ball:nth-child(145) {
  width: 28px;
  height: 28px;
  left: calc(29px - 55px);
}

.g-ball:nth-child(145) {
  animation: movetop var(--fs-dur, 1s) linear -2.062s infinite;
}

.g-ball:nth-child(146) {
  width: 38px;
  height: 38px;
  left: calc(37px - 55px);
}

.g-ball:nth-child(146) {
  animation: movetop var(--fs-dur, 1s) linear -0.001s infinite;
}

.g-ball:nth-child(147) {
  width: 41px;
  height: 41px;
  left: calc(37px - 55px);
}

.g-ball:nth-child(147) {
  animation: movetop var(--fs-dur, 1s) linear -2.603s infinite;
}

.g-ball:nth-child(148) {
  width: 50px;
  height: 50px;
  left: calc(55px - 55px);
}

.g-ball:nth-child(148) {
  animation: movetop var(--fs-dur, 1s) linear -1.087s infinite;
}

.g-ball:nth-child(149) {
  width: 40px;
  height: 40px;
  left: calc(16px - 55px);
}

.g-ball:nth-child(149) {
  animation: movetop var(--fs-dur, 1s) linear -0.093s infinite;
}

.g-ball:nth-child(150) {
  width: 39px;
  height: 39px;
  left: calc(25px - 55px);
}

.g-ball:nth-child(150) {
  animation: movetop var(--fs-dur, 1s) linear -2.681s infinite;
}

.g-ball:nth-child(151) {
  width: 23px;
  height: 23px;
  left: calc(56px - 55px);
}

.g-ball:nth-child(151) {
  animation: movetop var(--fs-dur, 1s) linear -0.758s infinite;
}

.g-ball:nth-child(152) {
  width: 31px;
  height: 31px;
  left: calc(1px - 55px);
}

.g-ball:nth-child(152) {
  animation: movetop var(--fs-dur, 1s) linear -0.627s infinite;
}

.g-ball:nth-child(153) {
  width: 39px;
  height: 39px;
  left: calc(54px - 55px);
}

.g-ball:nth-child(153) {
  animation: movetop var(--fs-dur, 1s) linear -0.743s infinite;
}

.g-ball:nth-child(154) {
  width: 49px;
  height: 49px;
  left: calc(53px - 55px);
}

.g-ball:nth-child(154) {
  animation: movetop var(--fs-dur, 1s) linear -2.285s infinite;
}

.g-ball:nth-child(155) {
  width: 27px;
  height: 27px;
  left: calc(45px - 55px);
}

.g-ball:nth-child(155) {
  animation: movetop var(--fs-dur, 1s) linear -0.242s infinite;
}

.g-ball:nth-child(156) {
  width: 21px;
  height: 21px;
  left: calc(18px - 55px);
}

.g-ball:nth-child(156) {
  animation: movetop var(--fs-dur, 1s) linear -2.186s infinite;
}

.g-ball:nth-child(157) {
  width: 29px;
  height: 29px;
  left: calc(20px - 55px);
}

.g-ball:nth-child(157) {
  animation: movetop var(--fs-dur, 1s) linear -0.942s infinite;
}

.g-ball:nth-child(158) {
  width: 31px;
  height: 31px;
  left: calc(39px - 55px);
}

.g-ball:nth-child(158) {
  animation: movetop var(--fs-dur, 1s) linear -0.961s infinite;
}

.g-ball:nth-child(159) {
  width: 41px;
  height: 41px;
  left: calc(30px - 55px);
}

.g-ball:nth-child(159) {
  animation: movetop var(--fs-dur, 1s) linear -2.514s infinite;
}

.g-ball:nth-child(160) {
  width: 42px;
  height: 42px;
  left: calc(38px - 55px);
}

.g-ball:nth-child(160) {
  animation: movetop var(--fs-dur, 1s) linear -1.068s infinite;
}

.g-ball:nth-child(161) {
  width: 35px;
  height: 35px;
  left: calc(20px - 55px);
}

.g-ball:nth-child(161) {
  animation: movetop var(--fs-dur, 1s) linear -2.189s infinite;
}

.g-ball:nth-child(162) {
  width: 21px;
  height: 21px;
  left: calc(23px - 55px);
}

.g-ball:nth-child(162) {
  animation: movetop var(--fs-dur, 1s) linear -2.962s infinite;
}

.g-ball:nth-child(163) {
  width: 1px;
  height: 1px;
  left: calc(43px - 55px);
}

.g-ball:nth-child(163) {
  animation: movetop var(--fs-dur, 1s) linear -1.989s infinite;
}

.g-ball:nth-child(164) {
  width: 35px;
  height: 35px;
  left: calc(49px - 55px);
}

.g-ball:nth-child(164) {
  animation: movetop var(--fs-dur, 1s) linear -0.186s infinite;
}

.g-ball:nth-child(165) {
  width: 41px;
  height: 41px;
  left: calc(31px - 55px);
}

.g-ball:nth-child(165) {
  animation: movetop var(--fs-dur, 1s) linear -2.511s infinite;
}

.g-ball:nth-child(166) {
  width: 41px;
  height: 41px;
  left: calc(11px - 55px);
}

.g-ball:nth-child(166) {
  animation: movetop var(--fs-dur, 1s) linear -2.623s infinite;
}

.g-ball:nth-child(167) {
  width: 37px;
  height: 37px;
  left: calc(63px - 55px);
}

.g-ball:nth-child(167) {
  animation: movetop var(--fs-dur, 1s) linear -1.272s infinite;
}

.g-ball:nth-child(168) {
  width: 27px;
  height: 27px;
  left: calc(45px - 55px);
}

.g-ball:nth-child(168) {
  animation: movetop var(--fs-dur, 1s) linear -1.275s infinite;
}

.g-ball:nth-child(169) {
  width: 15px;
  height: 15px;
  left: calc(48px - 55px);
}

.g-ball:nth-child(169) {
  animation: movetop var(--fs-dur, 1s) linear -1.72s infinite;
}

.g-ball:nth-child(170) {
  width: 38px;
  height: 38px;
  left: calc(33px - 55px);
}

.g-ball:nth-child(170) {
  animation: movetop var(--fs-dur, 1s) linear -2.122s infinite;
}

.g-ball:nth-child(171) {
  width: 7px;
  height: 7px;
  left: calc(58px - 55px);
}

.g-ball:nth-child(171) {
  animation: movetop var(--fs-dur, 1s) linear -0.31s infinite;
}

.g-ball:nth-child(172) {
  width: 50px;
  height: 50px;
  left: calc(60px - 55px);
}

.g-ball:nth-child(172) {
  animation: movetop var(--fs-dur, 1s) linear -0.063s infinite;
}

.g-ball:nth-child(173) {
  width: 1px;
  height: 1px;
  left: calc(67px - 55px);
}

.g-ball:nth-child(173) {
  animation: movetop var(--fs-dur, 1s) linear -0.113s infinite;
}

.g-ball:nth-child(174) {
  width: 1px;
  height: 1px;
  left: calc(51px - 55px);
}

.g-ball:nth-child(174) {
  animation: movetop var(--fs-dur, 1s) linear -2.361s infinite;
}

.g-ball:nth-child(175) {
  width: 3px;
  height: 3px;
  left: calc(63px - 55px);
}

.g-ball:nth-child(175) {
  animation: movetop var(--fs-dur, 1s) linear -0.047s infinite;
}

.g-ball:nth-child(176) {
  width: 23px;
  height: 23px;
  left: calc(10px - 55px);
}

.g-ball:nth-child(176) {
  animation: movetop var(--fs-dur, 1s) linear -2.341s infinite;
}

.g-ball:nth-child(177) {
  width: 11px;
  height: 11px;
  left: calc(8px - 55px);
}

.g-ball:nth-child(177) {
  animation: movetop var(--fs-dur, 1s) linear -1.126s infinite;
}

.g-ball:nth-child(178) {
  width: 40px;
  height: 40px;
  left: calc(8px - 55px);
}

.g-ball:nth-child(178) {
  animation: movetop var(--fs-dur, 1s) linear -0.947s infinite;
}

.g-ball:nth-child(179) {
  width: 31px;
  height: 31px;
  left: calc(8px - 55px);
}

.g-ball:nth-child(179) {
  animation: movetop var(--fs-dur, 1s) linear -0.026s infinite;
}

.g-ball:nth-child(180) {
  width: 2px;
  height: 2px;
  left: calc(28px - 55px);
}

.g-ball:nth-child(180) {
  animation: movetop var(--fs-dur, 1s) linear -1.055s infinite;
}

.g-ball:nth-child(181) {
  width: 49px;
  height: 49px;
  left: calc(25px - 55px);
}

.g-ball:nth-child(181) {
  animation: movetop var(--fs-dur, 1s) linear -2.38s infinite;
}

.g-ball:nth-child(182) {
  width: 9px;
  height: 9px;
  left: calc(59px - 55px);
}

.g-ball:nth-child(182) {
  animation: movetop var(--fs-dur, 1s) linear -0.424s infinite;
}

.g-ball:nth-child(183) {
  width: 15px;
  height: 15px;
  left: calc(67px - 55px);
}

.g-ball:nth-child(183) {
  animation: movetop var(--fs-dur, 1s) linear -2.008s infinite;
}

.g-ball:nth-child(184) {
  width: 27px;
  height: 27px;
  left: calc(1px - 55px);
}

.g-ball:nth-child(184) {
  animation: movetop var(--fs-dur, 1s) linear -0.631s infinite;
}

.g-ball:nth-child(185) {
  width: 47px;
  height: 47px;
  left: calc(8px - 55px);
}

.g-ball:nth-child(185) {
  animation: movetop var(--fs-dur, 1s) linear -2.213s infinite;
}

.g-ball:nth-child(186) {
  width: 2px;
  height: 2px;
  left: calc(8px - 55px);
}

.g-ball:nth-child(186) {
  animation: movetop var(--fs-dur, 1s) linear -1.672s infinite;
}

.g-ball:nth-child(187) {
  width: 4px;
  height: 4px;
  left: calc(67px - 55px);
}

.g-ball:nth-child(187) {
  animation: movetop var(--fs-dur, 1s) linear -2.399s infinite;
}

.g-ball:nth-child(188) {
  width: 41px;
  height: 41px;
  left: calc(27px - 55px);
}

.g-ball:nth-child(188) {
  animation: movetop var(--fs-dur, 1s) linear -0.412s infinite;
}

.g-ball:nth-child(189) {
  width: 8px;
  height: 8px;
  left: calc(4px - 55px);
}

.g-ball:nth-child(189) {
  animation: movetop var(--fs-dur, 1s) linear -0.51s infinite;
}

.g-ball:nth-child(190) {
  width: 24px;
  height: 24px;
  left: calc(21px - 55px);
}

.g-ball:nth-child(190) {
  animation: movetop var(--fs-dur, 1s) linear -1.398s infinite;
}

.g-ball:nth-child(191) {
  width: 5px;
  height: 5px;
  left: calc(64px - 55px);
}

.g-ball:nth-child(191) {
  animation: movetop var(--fs-dur, 1s) linear -2.942s infinite;
}

.g-ball:nth-child(192) {
  width: 47px;
  height: 47px;
  left: calc(27px - 55px);
}

.g-ball:nth-child(192) {
  animation: movetop var(--fs-dur, 1s) linear -2.158s infinite;
}

.g-ball:nth-child(193) {
  width: 37px;
  height: 37px;
  left: calc(18px - 55px);
}

.g-ball:nth-child(193) {
  animation: movetop var(--fs-dur, 1s) linear -2.635s infinite;
}

.g-ball:nth-child(194) {
  width: 23px;
  height: 23px;
  left: calc(66px - 55px);
}

.g-ball:nth-child(194) {
  animation: movetop var(--fs-dur, 1s) linear -2.996s infinite;
}

.g-ball:nth-child(195) {
  width: 18px;
  height: 18px;
  left: calc(9px - 55px);
}

.g-ball:nth-child(195) {
  animation: movetop var(--fs-dur, 1s) linear -1.743s infinite;
}

.g-ball:nth-child(196) {
  width: 43px;
  height: 43px;
  left: calc(15px - 55px);
}

.g-ball:nth-child(196) {
  animation: movetop var(--fs-dur, 1s) linear -0.951s infinite;
}

.g-ball:nth-child(197) {
  width: 44px;
  height: 44px;
  left: calc(64px - 55px);
}

.g-ball:nth-child(197) {
  animation: movetop var(--fs-dur, 1s) linear -0.483s infinite;
}

.g-ball:nth-child(198) {
  width: 30px;
  height: 30px;
  left: calc(7px - 55px);
}

.g-ball:nth-child(198) {
  animation: movetop var(--fs-dur, 1s) linear -2.008s infinite;
}

.g-ball:nth-child(199) {
  width: 8px;
  height: 8px;
  left: calc(9px - 55px);
}

.g-ball:nth-child(199) {
  animation: movetop var(--fs-dur, 1s) linear -2.707s infinite;
}

@keyframes movetop {
  0% {
    transform: translate(0, 0);
  }
  20% {
    transform: translate(0, 0);
  }
  87.7% {
    transform: translate(0, -170px);
    opacity: 0;
  }
  100% {
    transform: translate(0, -170px);
    opacity: 0;
  }
}

/* parametrizacion d0-d5: la caja se centra en su escenario y escala/atenua por variables.
   La transicion principal la hacen las VARIABLES en el escenario (@property);
   esta pequena transicion local solo suaviza el ultimo tramo y sirve de red
   para navegadores sin @property. */
.g-fire-box {
  top: 50%;
  transform: translate(-50%, -50%) scale(var(--fs-escala, 1));
  opacity: var(--fs-op, 1);
  transition: transform .35s ease-out, opacity .35s ease-out;
}

  /* ============ INCENDIO (jkantner, MIT) ============ */
.fire {
  font-size: 24px;
  filter: blur(0.02em);
  -webkit-filter: blur(0.02em);
  margin: 3em auto 0 auto;
  position: relative;
  width: 10em;
  height: 12em;
}

.particle {
  animation: rise var(--inc-dur, 1s) ease-in infinite;
  background-image: radial-gradient(rgb(255, 80, 0) 20%, rgba(255, 80, 0, 0) 70%);
  border-radius: 50%;
  mix-blend-mode: screen;
  opacity: 0;
  position: absolute;
  bottom: 0;
  width: 5em;
  height: 5em;
}
.particle:nth-of-type(1) {
  animation-delay: 0.4369636588s;
  left: calc((100% - 5em) * 0);
}
.particle:nth-of-type(2) {
  animation-delay: 0.0572509409s;
  left: calc((100% - 5em) * 0.02);
}
.particle:nth-of-type(3) {
  animation-delay: 0.6011262451s;
  left: calc((100% - 5em) * 0.04);
}
.particle:nth-of-type(4) {
  animation-delay: 0.9144352559s;
  left: calc((100% - 5em) * 0.06);
}
.particle:nth-of-type(5) {
  animation-delay: 0.4361619293s;
  left: calc((100% - 5em) * 0.08);
}
.particle:nth-of-type(6) {
  animation-delay: 0.9769340276s;
  left: calc((100% - 5em) * 0.1);
}
.particle:nth-of-type(7) {
  animation-delay: 0.4252582352s;
  left: calc((100% - 5em) * 0.12);
}
.particle:nth-of-type(8) {
  animation-delay: 0.580363905s;
  left: calc((100% - 5em) * 0.14);
}
.particle:nth-of-type(9) {
  animation-delay: 0.8368261985s;
  left: calc((100% - 5em) * 0.16);
}
.particle:nth-of-type(10) {
  animation-delay: 0.9180766479s;
  left: calc((100% - 5em) * 0.18);
}
.particle:nth-of-type(11) {
  animation-delay: 0.1995240556s;
  left: calc((100% - 5em) * 0.2);
}
.particle:nth-of-type(12) {
  animation-delay: 0.7955120696s;
  left: calc((100% - 5em) * 0.22);
}
.particle:nth-of-type(13) {
  animation-delay: 0.2393770995s;
  left: calc((100% - 5em) * 0.24);
}
.particle:nth-of-type(14) {
  animation-delay: 0.8598353687s;
  left: calc((100% - 5em) * 0.26);
}
.particle:nth-of-type(15) {
  animation-delay: 0.3830545349s;
  left: calc((100% - 5em) * 0.28);
}
.particle:nth-of-type(16) {
  animation-delay: 0.2261237578s;
  left: calc((100% - 5em) * 0.3);
}
.particle:nth-of-type(17) {
  animation-delay: 0.5326373223s;
  left: calc((100% - 5em) * 0.32);
}
.particle:nth-of-type(18) {
  animation-delay: 0.2447204861s;
  left: calc((100% - 5em) * 0.34);
}
.particle:nth-of-type(19) {
  animation-delay: 0.2459124844s;
  left: calc((100% - 5em) * 0.36);
}
.particle:nth-of-type(20) {
  animation-delay: 0.4925909188s;
  left: calc((100% - 5em) * 0.38);
}
.particle:nth-of-type(21) {
  animation-delay: 0.1350599899s;
  left: calc((100% - 5em) * 0.4);
}
.particle:nth-of-type(22) {
  animation-delay: 0.8876527062s;
  left: calc((100% - 5em) * 0.42);
}
.particle:nth-of-type(23) {
  animation-delay: 0.0679294752s;
  left: calc((100% - 5em) * 0.44);
}
.particle:nth-of-type(24) {
  animation-delay: 0.9061057496s;
  left: calc((100% - 5em) * 0.46);
}
.particle:nth-of-type(25) {
  animation-delay: 0.947490869s;
  left: calc((100% - 5em) * 0.48);
}
.particle:nth-of-type(26) {
  animation-delay: 0.2987824526s;
  left: calc((100% - 5em) * 0.5);
}
.particle:nth-of-type(27) {
  animation-delay: 0.5822953948s;
  left: calc((100% - 5em) * 0.52);
}
.particle:nth-of-type(28) {
  animation-delay: 0.8146474091s;
  left: calc((100% - 5em) * 0.54);
}
.particle:nth-of-type(29) {
  animation-delay: 0.6306304351s;
  left: calc((100% - 5em) * 0.56);
}
.particle:nth-of-type(30) {
  animation-delay: 0.7245716237s;
  left: calc((100% - 5em) * 0.58);
}
.particle:nth-of-type(31) {
  animation-delay: 0.0613833436s;
  left: calc((100% - 5em) * 0.6);
}
.particle:nth-of-type(32) {
  animation-delay: 0.2044493288s;
  left: calc((100% - 5em) * 0.62);
}
.particle:nth-of-type(33) {
  animation-delay: 0.6353686177s;
  left: calc((100% - 5em) * 0.64);
}
.particle:nth-of-type(34) {
  animation-delay: 0.4868776278s;
  left: calc((100% - 5em) * 0.66);
}
.particle:nth-of-type(35) {
  animation-delay: 0.7382382617s;
  left: calc((100% - 5em) * 0.68);
}
.particle:nth-of-type(36) {
  animation-delay: 0.437399608s;
  left: calc((100% - 5em) * 0.7);
}
.particle:nth-of-type(37) {
  animation-delay: 0.3164197797s;
  left: calc((100% - 5em) * 0.72);
}
.particle:nth-of-type(38) {
  animation-delay: 0.037734874s;
  left: calc((100% - 5em) * 0.74);
}
.particle:nth-of-type(39) {
  animation-delay: 0.132421899s;
  left: calc((100% - 5em) * 0.76);
}
.particle:nth-of-type(40) {
  animation-delay: 0.3670747852s;
  left: calc((100% - 5em) * 0.78);
}
.particle:nth-of-type(41) {
  animation-delay: 0.1802778531s;
  left: calc((100% - 5em) * 0.8);
}
.particle:nth-of-type(42) {
  animation-delay: 0.8161225933s;
  left: calc((100% - 5em) * 0.82);
}
.particle:nth-of-type(43) {
  animation-delay: 0.2865737737s;
  left: calc((100% - 5em) * 0.84);
}
.particle:nth-of-type(44) {
  animation-delay: 0.7025688963s;
  left: calc((100% - 5em) * 0.86);
}
.particle:nth-of-type(45) {
  animation-delay: 0.0121097237s;
  left: calc((100% - 5em) * 0.88);
}
.particle:nth-of-type(46) {
  animation-delay: 0.7126120348s;
  left: calc((100% - 5em) * 0.9);
}
.particle:nth-of-type(47) {
  animation-delay: 0.7663480284s;
  left: calc((100% - 5em) * 0.92);
}
.particle:nth-of-type(48) {
  animation-delay: 0.5678957404s;
  left: calc((100% - 5em) * 0.94);
}
.particle:nth-of-type(49) {
  animation-delay: 0.9332145053s;
  left: calc((100% - 5em) * 0.96);
}
.particle:nth-of-type(50) {
  animation-delay: 0.986476975s;
  left: calc((100% - 5em) * 0.98);
}

@keyframes rise {
  from {
    opacity: 0;
    transform: translateY(0) scale(1);
  }
  25% {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translateY(-10em) scale(0);
  }
}

/* parametrizacion d0-d5: tamano via font-size (todo el efecto esta en em) */
.fire {
  position: absolute;
  top: 50%;
  left: 50%;
  margin: 0;
  transform: translate(-50%, -55%);
  font-size: var(--inc-tam, 24px);
  filter: blur(0.02em) brightness(var(--inc-brillo, 1)) saturate(var(--inc-sat, 1));
  -webkit-filter: blur(0.02em) brightness(var(--inc-brillo, 1)) saturate(var(--inc-sat, 1));
  opacity: var(--inc-op, 1);
  transition: font-size .35s ease-out, opacity .35s ease-out, filter .35s ease-out;
}


/* ============ VARIABLES REGISTRADAS (interpolables) ============ */
@property --fs-escala  { syntax: "<number>"; inherits: true; initial-value: 1; }
@property --fs-op      { syntax: "<number>"; inherits: true; initial-value: 1; }
@property --fs-dur     { syntax: "<time>";   inherits: true; initial-value: 1s; }
@property --fs-color   { syntax: "<color>";  inherits: true; initial-value: #fa8763; }
@property --inc-tam    { syntax: "<length>"; inherits: true; initial-value: 24px; }
@property --inc-dur    { syntax: "<time>";   inherits: true; initial-value: 1s; }
@property --inc-brillo { syntax: "<number>"; inherits: true; initial-value: 1; }
@property --inc-sat    { syntax: "<number>"; inherits: true; initial-value: 1; }
@property --inc-op     { syntax: "<number>"; inherits: true; initial-value: 1; }

/* ============ TRANSICIONES SUTILES ============ */
/* Base (simetrica): las variables interpolan en el escenario; todo fluye,
   incluida la velocidad de las particulas y el color. */
.escenario-fs {
  transition:
    --fs-escala 1.3s cubic-bezier(.45,.05,.35,1),
    --fs-op     1.3s ease,
    --fs-dur    1.5s ease-in-out,
    --fs-color  1.8s linear;
}
.escenario-inc {
  transition:
    --inc-tam    1.3s cubic-bezier(.45,.05,.35,1),
    --inc-op     1.3s ease,
    --inc-dur    1.5s ease-in-out,
    --inc-brillo 1.8s ease,
    --inc-sat    1.8s ease;
}
/* Al AVIVARSE (clase .sube): primero toma cuerpo, se calienta poco despues
   y coge ritmo al final. (los delays siguen el orden de la lista base) */
.escenario-fs.sube  { transition-delay: 0s, 0s, .5s, .25s; }
.escenario-inc.sube { transition-delay: 0s, 0s, .5s, .25s, .25s; }
/* Al APAGARSE (clase .baja): pierde ritmo primero, el color se enfria
   despacio y encoge al final, como brasa que se consume. */
.escenario-fs.baja  { transition-delay: .45s, .2s, 0s, .15s; transition-duration: 1.6s, 1.4s, 1.2s, 2.2s; }
.escenario-inc.baja { transition-delay: .45s, .2s, 0s, .15s, .15s; transition-duration: 1.6s, 1.4s, 1.2s, 2.2s, 2.2s; }

/* ============ ESTADOS d0-d5 (quemado progresivo) ============ */
/* FUEGO SENCILLO */
.escenario-fs.estado-d0 { --fs-escala: 0;   --fs-op: 0;    --fs-dur: 1.9s;  --fs-color: #b0431f; }
.escenario-fs.estado-d1 { --fs-escala: .38; --fs-dur: 1.6s;  --fs-color: #e05a28; --fs-op: .9; }
.escenario-fs.estado-d2 { --fs-escala: .55; --fs-dur: 1.3s;  --fs-color: #ef6c33; }
.escenario-fs.estado-d3 { --fs-escala: .75; --fs-dur: 1.05s; --fs-color: #fa8763; }
.escenario-fs.estado-d4 { --fs-escala: .95; --fs-dur: .85s;  --fs-color: #ffa075; }
.escenario-fs.estado-d5 { --fs-escala: 1.15;--fs-dur: .68s;  --fs-color: #ffb894; }
/* INCENDIO */
.escenario-inc.estado-d0 { --inc-op: 0; --inc-tam: 6px;  --inc-dur: 1.9s;  --inc-brillo: .7; --inc-sat: .8; }
.escenario-inc.estado-d1 { --inc-tam: 10px; --inc-dur: 1.7s;  --inc-brillo: .8;  --inc-sat: .85; }
.escenario-inc.estado-d2 { --inc-tam: 15px; --inc-dur: 1.35s; --inc-brillo: .9;  --inc-sat: .95; }
.escenario-inc.estado-d3 { --inc-tam: 21px; --inc-dur: 1.1s; }
.escenario-inc.estado-d4 { --inc-tam: 27px; --inc-dur: .9s;   --inc-brillo: 1.12; --inc-sat: 1.1; }
.escenario-inc.estado-d5 { --inc-tam: 34px; --inc-dur: .72s;  --inc-brillo: 1.25; --inc-sat: 1.2; }


/* ============ VARIABLES REGISTRADAS (interpolables) ============ */
@property --fs-escala   { syntax: "<number>"; inherits: true; initial-value: 1; }
@property --fs-op       { syntax: "<number>"; inherits: true; initial-value: 1; }
@property --fs-dur      { syntax: "<time>";   inherits: true; initial-value: 1s; }
@property --fs-color    { syntax: "<color>";  inherits: true; initial-value: #e65816; }
@property --fs-base     { syntax: "<color>";  inherits: true; initial-value: #8c2708; }
@property --inc-tam     { syntax: "<length>"; inherits: true; initial-value: 24px; }
@property --inc-dur     { syntax: "<time>";   inherits: true; initial-value: 1s; }
@property --inc-op      { syntax: "<number>"; inherits: true; initial-value: 1; }
@property --inc-color   { syntax: "<color>";  inherits: true; initial-value: #ff5000; }
@property --humo-op     { syntax: "<number>"; inherits: true; initial-value: 0; }
@property --humo-niveles{ syntax: "<number>"; inherits: true; initial-value: 0; }
@property --humo-dur    { syntax: "<time>";   inherits: true; initial-value: 5s; }
@property --humo-alto   { syntax: "<length>"; inherits: true; initial-value: 240px; }
@property --humo-color  { syntax: "<color>";  inherits: true; initial-value: rgba(112, 105, 97, .85); }
@property --chispas-op  { syntax: "<number>"; inherits: true; initial-value: 0; }
@property --ascuas-op   { syntax: "<number>"; inherits: true; initial-value: 0; }

/* ============ HUMO (capa detras del fuego) ============ */
/* por encima de la llama (z-index 2 > 1): el borde escultor blanco de la llama
   es opaco y recortaria la columna de humo si esta pasara por detras */
.capa-humo { position: absolute; inset: 0; pointer-events: none; z-index: 2; }
.humo-wrap {
  position: absolute;
  /* densidad global x activacion por nivel: cada estado enciende mas emisores */
  opacity: calc(var(--humo-op, 0) * clamp(0, var(--humo-niveles, 0) - var(--nivel, 1) + 1, 1));
}
.humo {
  background: radial-gradient(var(--humo-color, rgba(112, 105, 97, .85)), transparent 70%);
  border-radius: 50%;
  filter: blur(7px);
  animation: subirHumo var(--humo-dur, 5s) linear infinite;
}
@keyframes subirHumo {
  0%   { transform: translate(0, 0) scale(.45); opacity: 0; }
  14%  { opacity: 1; }
  30%  { transform: translate(14px, calc(var(--humo-alto, 240px) * -.3)) scale(.9); }
  60%  { transform: translate(-12px, calc(var(--humo-alto, 240px) * -.6)) scale(1.35); opacity: .55; }
  100% { transform: translate(9px, calc(var(--humo-alto, 240px) * -1)) scale(1.9); opacity: 0; }
}

/* ============ CHISPAS (ignicion: chasquidos intermitentes) ============ */
.capa-chispas { position: absolute; inset: 0; pointer-events: none; opacity: var(--chispas-op, 0); z-index: 2; }
.chispa {
  position: absolute;
  border-radius: 50%;
  background: #ff7a00;
  box-shadow: 0 0 6px 1px rgba(255, 110, 0, .55);
  opacity: 0;
  animation: saltarChispa var(--chispa-d, 2.8s) linear infinite;
}
@keyframes saltarChispa {
  0%, 54% { transform: translate(0, 0) scale(1); opacity: 0; }
  58%  { opacity: 1; transform: translate(calc(var(--sx, 20px) * .15), calc(var(--sy, -90px) * .2)) scale(1.15); }
  78%  { opacity: .9; }
  100% { transform: translate(var(--sx, 20px), var(--sy, -90px)) scale(.25); opacity: 0; }
}

/* ============ ASCUAS (final: solo brasas latiendo) ============ */
.capa-ascuas { position: absolute; inset: 0; pointer-events: none; opacity: var(--ascuas-op, 0); z-index: 2; }
.ascua {
  position: absolute;
  border-radius: 50%;
  background: radial-gradient(#ff8a3c, var(--ascua-c, #b33a05) 65%);
  filter: blur(.6px);
  animation: latidoAscua var(--ascua-d, 3.4s) ease-in-out infinite;
}
@keyframes latidoAscua {
  0%, 100% { opacity: .4; }
  50%      { opacity: 1; }
}

/* ============ TRANSICIONES SUTILES ============ */
/* Nota: --fs-dur, --inc-dur y --humo-dur NO se transicionan a proposito: una
   variable en transicion queda "animation-tainted" y las propiedades animation-*
   que la consumen caerian a su valor de respaldo. El cambio de ritmo es seco
   pero queda enmascarado por la interpolacion de tamano, color y opacidad. */
.escenario-fs {
  transition:
    --fs-escala 1.3s cubic-bezier(.45,.05,.35,1),
    --fs-op     1.3s ease,
    --fs-color  1.8s linear,
    --fs-base   1.8s linear,
    --humo-op      2s ease,
    --humo-niveles 2s ease,
    --humo-alto    2.2s ease,
    --chispas-op 1.2s ease,
    --ascuas-op  2.2s ease,
    --humo-color 2s linear;
}
.escenario-inc {
  transition:
    --inc-tam   1.3s cubic-bezier(.45,.05,.35,1),
    --inc-op    1.3s ease,
    --inc-color 1.8s linear,
    --humo-op      2s ease,
    --humo-niveles 2s ease,
    --humo-alto    2.2s ease,
    --chispas-op 1.2s ease,
    --ascuas-op  2.2s ease,
    --humo-color 2s linear;
}
/* al avivarse: chispas al momento, el fuego crece -> se calienta; humo y ascuas llegan tarde */
.escenario-fs.sube  { transition-delay: 0s, 0s, .25s, .25s, .6s, .6s, .6s, 0s, .8s, .6s; }
.escenario-inc.sube { transition-delay: 0s, 0s, .25s, .6s, .6s, .6s, 0s, .8s, .6s; }
/* al apagarse: se enfria despacio, encoge al final; el humo persiste y las
   ascuas asoman pronto pero tardan MUCHO en apagarse (6.5s, como brasa real) */
.escenario-fs.baja {
  transition-delay:    .45s, .2s, .15s, .15s, 0s, 0s, 0s, 0s, .2s, 0s;
  transition-duration: 1.6s, 1.4s, 2.2s, 2.2s, 3s, 3s, 3.2s, 1.2s, 6.5s, 3s;
}
.escenario-inc.baja {
  transition-delay:    .45s, .2s, .15s, 0s, 0s, 0s, 0s, .2s, 0s;
  transition-duration: 1.6s, 1.4s, 2.2s, 3s, 3s, 3.2s, 1.2s, 6.5s, 3s;
}

/* ============ ESCALERA DE ESTADOS (paleta para blanco) ============ */
/* d0 = intacto: nada. chispas = ignicion. d1..d5 = fuego creciente. ascuas = solo brasas. */
/* FUEGO SENCILLO */
.escenario-fs.estado-d0      { --fs-escala: 0;   --fs-op: 0;   --fs-dur: 1.9s;  --fs-color: #7c2a10; --fs-base: #571b06; }
.escenario-fs.estado-chispas { --fs-escala: 0;   --fs-op: 0;   --fs-dur: 1.9s;  --fs-color: #a03110; --fs-base: #5e1c06; }
.escenario-fs.estado-d1      { --fs-escala: .38; --fs-op: .92; --fs-dur: 1.6s;  --fs-color: #a03110; --fs-base: #5e1c06; }
.escenario-fs.estado-d2      { --fs-escala: .55; --fs-dur: 1.3s;  --fs-color: #c24312; --fs-base: #6f2106; }
.escenario-fs.estado-d3      { --fs-escala: .75; --fs-dur: 1.05s; --fs-color: #e65816; --fs-base: #8c2708; }
.escenario-fs.estado-d4      { --fs-escala: .95; --fs-dur: .85s;  --fs-color: #fa6d0e; --fs-base: #a53305; }
.escenario-fs.estado-d5      { --fs-escala: 1.15;--fs-dur: .68s;  --fs-color: #ff8400; --fs-base: #b83d04; }
.escenario-fs.estado-ascuas  { --fs-escala: 0;   --fs-op: 0;   --fs-dur: 1.9s;  --fs-color: #7c2a10; --fs-base: #571b06; }
/* INCENDIO */
.escenario-inc.estado-d0      { --inc-op: 0; --inc-tam: 6px;  --inc-dur: 1.9s;  --inc-color: #8a3a10; }
.escenario-inc.estado-chispas { --inc-op: 0; --inc-tam: 6px;  --inc-dur: 1.9s;  --inc-color: #b8400d; }
.escenario-inc.estado-d1      { --inc-tam: 10px; --inc-dur: 1.7s;  --inc-color: #b8400d; }
.escenario-inc.estado-d2      { --inc-tam: 15px; --inc-dur: 1.35s; --inc-color: #d4560d; }
.escenario-inc.estado-d3      { --inc-tam: 21px; --inc-dur: 1.1s;  --inc-color: #ff5000; }
.escenario-inc.estado-d4      { --inc-tam: 27px; --inc-dur: .9s;   --inc-color: #ff6a00; }
.escenario-inc.estado-d5      { --inc-tam: 34px; --inc-dur: .72s;  --inc-color: #ff7f05; }
.escenario-inc.estado-ascuas  { --inc-op: 0; --inc-tam: 6px; --inc-dur: 1.9s; --inc-color: #8a3a10; }
/* CAPAS COMUNES por estado: humo (cada vez mas negro) / chispas / ascuas */
.estado-d0      { --humo-op: 0;   --humo-niveles: 0; --humo-dur: 7s;   --humo-alto: 140px; --humo-color: rgba(150, 146, 141, .85); --chispas-op: 0;   --ascuas-op: 0; }
.estado-chispas { --humo-op: .1;  --humo-niveles: 1; --humo-dur: 7s;   --humo-alto: 150px; --humo-color: rgba(168, 164, 158, .8);  --chispas-op: 1;   --ascuas-op: 0; }
.estado-d1      { --humo-op: .22; --humo-niveles: 1; --humo-dur: 6.5s; --humo-alto: 170px; --humo-color: rgba(158, 153, 147, .85); --chispas-op: .35; --ascuas-op: 0; }
.estado-d2      { --humo-op: .35; --humo-niveles: 2; --humo-dur: 5.8s; --humo-alto: 210px; --humo-color: rgba(136, 130, 123, .85); --chispas-op: 0;   --ascuas-op: 0; }
.estado-d3      { --humo-op: .5;  --humo-niveles: 3; --humo-dur: 5.2s; --humo-alto: 250px; --humo-color: rgba(112, 105, 97, .85);  --chispas-op: 0;   --ascuas-op: 0; }
.estado-d4      { --humo-op: .66; --humo-niveles: 4; --humo-dur: 4.6s; --humo-alto: 290px; --humo-color: rgba(80, 73, 66, .88);    --chispas-op: 0;   --ascuas-op: 0; }
.estado-d5      { --humo-op: .82; --humo-niveles: 5; --humo-dur: 4s;   --humo-alto: 320px; --humo-color: rgba(43, 38, 34, .9);     --chispas-op: 0;   --ascuas-op: 0; }
.estado-ascuas  { --humo-op: .3;  --humo-niveles: 2; --humo-dur: 7.5s; --humo-alto: 170px; --humo-color: rgba(126, 120, 113, .8);  --chispas-op: 0;   --ascuas-op: 1; }


/* ============ ESTADOS d0-d5 (quemado progresivo) ============ */
/* FUEGO SENCILLO */
.escenario-fs.estado-d0 { --fs-escala: 0;   --fs-op: 0;    --fs-dur: 1.9s;  --fs-color: #b0431f; }
.escenario-fs.estado-d1 { --fs-escala: .38; --fs-dur: 1.6s;  --fs-color: #e05a28; --fs-op: .9; }
.escenario-fs.estado-d2 { --fs-escala: .55; --fs-dur: 1.3s;  --fs-color: #ef6c33; }
.escenario-fs.estado-d3 { --fs-escala: .75; --fs-dur: 1.05s; --fs-color: #fa8763; }
.escenario-fs.estado-d4 { --fs-escala: .95; --fs-dur: .85s;  --fs-color: #ffa075; }
.escenario-fs.estado-d5 { --fs-escala: 1.15;--fs-dur: .68s;  --fs-color: #ffb894; }
/* INCENDIO */
.escenario-inc.estado-d0 { --inc-op: 0; --inc-tam: 6px;  --inc-dur: 1.9s;  --inc-brillo: .7; --inc-sat: .8; }
.escenario-inc.estado-d1 { --inc-tam: 10px; --inc-dur: 1.7s;  --inc-brillo: .8;  --inc-sat: .85; }
.escenario-inc.estado-d2 { --inc-tam: 15px; --inc-dur: 1.35s; --inc-brillo: .9;  --inc-sat: .95; }
.escenario-inc.estado-d3 { --inc-tam: 21px; --inc-dur: 1.1s; }
.escenario-inc.estado-d4 { --inc-tam: 27px; --inc-dur: .9s;   --inc-brillo: 1.12; --inc-sat: 1.1; }
.escenario-inc.estado-d5 { --inc-tam: 34px; --inc-dur: .72s;  --inc-brillo: 1.25; --inc-sat: 1.2; }


  .llamaFO{pointer-events:none;overflow:visible;mix-blend-mode:screen;opacity:.72}   /* el negro desaparece y la llama deja VER el icono cambiar de estado */
  /* LLAMA DE SUELO (estilo incendio.html, jkantner): particulas de gradiente
     radial fundidas con screen. Baja y ancha: lame la tierra quemada en vez de
     levantar lenguas. El tamano se lleva con font-size del contenedor. */
  .sfFO{pointer-events:none;overflow:visible;mix-blend-mode:screen;opacity:.8}
  .sfCaja{position:relative;width:100%;height:100%;filter:blur(0.03em);will-change:transform;
          transform-origin:50% 100%;transform:scale(var(--sf,1));
          transition:transform 1.2s ease,opacity 1.2s ease}
  .sfBola{position:absolute;bottom:-0.4em;border-radius:50%;
          background-image:radial-gradient(rgb(255,96,0) 18%, rgba(255,96,0,0) 70%);
          mix-blend-mode:screen;opacity:0;
          animation:sfLame var(--sfd,1.7s) ease-in infinite}
  .sfBola.caliente{background-image:radial-gradient(rgb(255,170,20) 14%, rgba(255,140,0,0) 68%)}
  @keyframes sfLame{
    from{opacity:0;transform:translateY(0) scale(1)}
    25%{opacity:.9}
    to{opacity:0;transform:translateY(-1.35em) scale(.3)}
  }
  .escenario-inc.enApp{position:relative;width:100%;height:100%;background:transparent;overflow:visible;transform:scale(var(--esc,1));transform-origin:50% 100%}
  .escenario-inc.enApp .fire{margin:0;position:absolute;left:50%;bottom:0;transform:translateX(-50%)}
  .escenario-fs.enApp{position:relative;width:100%;height:100%;background:transparent;overflow:visible;transform:scale(var(--esc,1));transform-origin:50% 78%}
  /* capa de HUMO/CHISPAS/ASCUAS (de fuegos_estados_blanco): SIN fusión screen,
     para que el humo oscuro y las brasas se vean sobre la alfombra */
  .llamaCapas{pointer-events:none;overflow:visible;opacity:.85}
  .escenario-fs.enApp2{position:relative;width:100%;height:100%;background:transparent;overflow:visible;transform:scale(var(--esc,1));transform-origin:50% 78%}
  /* fundidos suaves al cambiar de estado D en el incendio */
  @keyframes piDesvanece{to{opacity:0}}
  @keyframes piAparece{from{opacity:0}}