/* Personagens originais 3D integrados ao menu, fila, salas e coleção. */
.pet3d-preview {
  display:block;
  position:relative;
  width:100%;
  aspect-ratio:280/310;
  isolation:isolate;
}
.pet3d-image, .pet3d-canvas {
  display:block;
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
  filter:drop-shadow(0 8px 9px rgba(53,81,79,.13));
}
.pet3d-fallback {
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  font-size:clamp(36px,7vw,76px);
  line-height:1;
  opacity:.85;
}
.pet3d-ready > .pet3d-fallback { display:none; }
.menu-pets .mp { flex:none; }
.menu-pets .mp .pet3d-preview { width:100%; }
.menu-pets .mp .pet3d-image { filter:drop-shadow(0 12px 8px rgba(53,81,79,.17)); }
.mini-pet .pet3d-preview, .qc-pet .pet3d-preview { width:100%; }
.map-patient .pet3d-fallback, .queue-card .pet3d-fallback { font-size:55px; }
.queue-card .qc-pet { align-self:center; }
.dlg-art .pet3d-preview { width:100%; }
.dlg-art .pet3d-fallback { font-size:90px; }
.sticker .pet3d-preview { width:100%;height:100%;aspect-ratio:auto;padding-bottom:18px; }
.sticker .pet3d-image { padding:0 4px 16px; }
.sticker .pet3d-fallback { font-size:48px;padding-bottom:18px; }
.pet-slot {
  aspect-ratio:280/310;
  max-height:68%;
}
.pet-slot > .pet3d-preview { height:100%;aspect-ratio:auto; }
.pet-slot .pet3d-fallback { font-size:clamp(94px,21vw,170px); }
.pet-slot .pet3d-canvas { filter:drop-shadow(0 14px 10px rgba(40,64,63,.16)); }
@media (max-width:520px) {
  .menu-pets .pet3d-fallback { font-size:38px; }
  .pet-slot { max-height:62%; }
}
