I'm creating tikz graphics in (x,y,z) Cartesian coordinate system. I'm defining objects (circle in my WE) in some plane using \tikzset{xyplane/.style={canvas is yx plane at z=#1}}. I noticed it doesn't work for cross marking some point (cross is always in yz plane in my WE). I'm affraid my skill isn't enough to define cross/.style so that it would render cross in particular plane. Is it possible?
MWE:
\documentclass[a4paper,fleqn,leqno]{article}
\usepackage{tikz,tikz-3dplot}
\usetikzlibrary{arrows.meta,decorations.markings,shapes.misc,3d}
\DeclareMathSizes{12}{12}{6}{12}
\tikzset{cross/.style={cross out,draw=black,minimum size=2*(#1-\pgflinewidth),inner sep=0pt,outer sep=0pt},cross/.default={3pt}}
\tikzset{xyplane/.style={canvas is yx plane at z=#1,very thin}}
\tikzset{xzplane/.style={canvas is zx plane at y=#1,very thin}}
\tikzset{yzplane/.style={canvas is zy plane at x=#1,very thin}}
\begin{document}
\begin{tikzpicture}[cm={-1,-1,1,0,(0,0)},x=3.85mm,z=-1cm]
\def\Sx{0} \def\Sy{0} \def\Sz{2}
\pgfmathsetmacro\Sρ{"sqrt((\Sx)^(2)+(\Sy)^(2)+(\Sz)^(2))"}
\pgfmathsetmacro\Sθ{ifthenelse(\Sx==0&&\Sy==0&&\Sz==0,0,"acos(\Sz/(sqrt((\Sx)^(2)+(\Sy)^(2)+(\Sz)^(2))))")}
\pgfmathsetmacro\SΦ{ifthenelse(\Sx==0&&\Sy==0,0,ifthenelse(\Sy<0,"-acos(\Sx/(sqrt((\Sx)^(2)+(\Sy)^(2))))","acos(\Sx/(sqrt((\Sx)^(2)+(\Sy)^(2))))"))}
\tdplotsetcoord{S}{\Sρ}{\Sθ}{\SΦ}
\draw[xyplane=\Sz,color=black,semithick] (S) circle (2cm) node[cross] {};
\draw[dashdotted,color=black] ($(S)-(0,0,2.5)$) -- ($(S)+(0,0,2.5)$) node[anchor=south,color=black] {$o$};
\end{tikzpicture}
\end{document}

