/* node_modules/.pnpm/katex@0.16.45/node_modules/katex/dist/katex.min.css */
@font-face {
  font-display: block;
  font-family: KaTeX_AMS;
  font-style: normal;
  font-weight: 400;
  src:
    url("../KaTeX_AMS-Regular-U6PRYMIZ.woff2") format("woff2"),
    url("../KaTeX_AMS-Regular-CYEKBG2K.woff") format("woff"),
    url("../KaTeX_AMS-Regular-JKX5W2C4.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: KaTeX_Caligraphic;
  font-style: normal;
  font-weight: 700;
  src:
    url("../KaTeX_Caligraphic-Bold-5QL5CMTE.woff2") format("woff2"),
    url("../KaTeX_Caligraphic-Bold-WZ3QSGD3.woff") format("woff"),
    url("../KaTeX_Caligraphic-Bold-ZTS3R3HK.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: KaTeX_Caligraphic;
  font-style: normal;
  font-weight: 400;
  src:
    url("../KaTeX_Caligraphic-Regular-KX5MEWCF.woff2") format("woff2"),
    url("../KaTeX_Caligraphic-Regular-3LKEU76G.woff") format("woff"),
    url("../KaTeX_Caligraphic-Regular-A7XRTZ5Q.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: KaTeX_Fraktur;
  font-style: normal;
  font-weight: 700;
  src:
    url("../KaTeX_Fraktur-Bold-2QVFK6NQ.woff2") format("woff2"),
    url("../KaTeX_Fraktur-Bold-T4SWXBMT.woff") format("woff"),
    url("../KaTeX_Fraktur-Bold-WGHVTYOR.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: KaTeX_Fraktur;
  font-style: normal;
  font-weight: 400;
  src:
    url("../KaTeX_Fraktur-Regular-2PEIFJSJ.woff2") format("woff2"),
    url("../KaTeX_Fraktur-Regular-PQMHCIK6.woff") format("woff"),
    url("../KaTeX_Fraktur-Regular-5U4OPH2X.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: KaTeX_Main;
  font-style: normal;
  font-weight: 700;
  src:
    url("../KaTeX_Main-Bold-YP5VVQRP.woff2") format("woff2"),
    url("../KaTeX_Main-Bold-2GA4IZIN.woff") format("woff"),
    url("../KaTeX_Main-Bold-W5FBVCZM.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: KaTeX_Main;
  font-style: italic;
  font-weight: 700;
  src:
    url("../KaTeX_Main-BoldItalic-N4V3DX7S.woff2") format("woff2"),
    url("../KaTeX_Main-BoldItalic-4P4C7HJH.woff") format("woff"),
    url("../KaTeX_Main-BoldItalic-ODMLBJJQ.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: KaTeX_Main;
  font-style: italic;
  font-weight: 400;
  src:
    url("../KaTeX_Main-Italic-RELBIK7M.woff2") format("woff2"),
    url("../KaTeX_Main-Italic-SASNQFN2.woff") format("woff"),
    url("../KaTeX_Main-Italic-I43T2HSR.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: KaTeX_Main;
  font-style: normal;
  font-weight: 400;
  src:
    url("../KaTeX_Main-Regular-ARRPAO67.woff2") format("woff2"),
    url("../KaTeX_Main-Regular-P5I74A2A.woff") format("woff"),
    url("../KaTeX_Main-Regular-W74P5G27.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: KaTeX_Math;
  font-style: italic;
  font-weight: 700;
  src:
    url("../KaTeX_Math-BoldItalic-K4WTGH3J.woff2") format("woff2"),
    url("../KaTeX_Math-BoldItalic-6EBV3DK5.woff") format("woff"),
    url("../KaTeX_Math-BoldItalic-VB447A4D.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: KaTeX_Math;
  font-style: italic;
  font-weight: 400;
  src:
    url("../KaTeX_Math-Italic-6KGCHLFN.woff2") format("woff2"),
    url("../KaTeX_Math-Italic-KKK3USB2.woff") format("woff"),
    url("../KaTeX_Math-Italic-SON4MRCA.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: "KaTeX_SansSerif";
  font-style: normal;
  font-weight: 700;
  src:
    url("../KaTeX_SansSerif-Bold-RRNVJFFW.woff2") format("woff2"),
    url("../KaTeX_SansSerif-Bold-X5M5EMOD.woff") format("woff"),
    url("../KaTeX_SansSerif-Bold-STQ6RXC7.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: "KaTeX_SansSerif";
  font-style: italic;
  font-weight: 400;
  src:
    url("../KaTeX_SansSerif-Italic-HMPFTM52.woff2") format("woff2"),
    url("../KaTeX_SansSerif-Italic-PSN4QKYX.woff") format("woff"),
    url("../KaTeX_SansSerif-Italic-WTBAZBGY.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: "KaTeX_SansSerif";
  font-style: normal;
  font-weight: 400;
  src:
    url("../KaTeX_SansSerif-Regular-XIQ62X4E.woff2") format("woff2"),
    url("../KaTeX_SansSerif-Regular-OQCII6EP.woff") format("woff"),
    url("../KaTeX_SansSerif-Regular-2TL3USAE.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: KaTeX_Script;
  font-style: normal;
  font-weight: 400;
  src:
    url("../KaTeX_Script-Regular-APUWIHLP.woff2") format("woff2"),
    url("../KaTeX_Script-Regular-A5IFOEBS.woff") format("woff"),
    url("../KaTeX_Script-Regular-72OLXYNA.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: KaTeX_Size1;
  font-style: normal;
  font-weight: 400;
  src:
    url("../KaTeX_Size1-Regular-5LRUTBFT.woff2") format("woff2"),
    url("../KaTeX_Size1-Regular-4HRHTS65.woff") format("woff"),
    url("../KaTeX_Size1-Regular-7K6AASVL.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: KaTeX_Size2;
  font-style: normal;
  font-weight: 400;
  src:
    url("../KaTeX_Size2-Regular-LELKET5D.woff2") format("woff2"),
    url("../KaTeX_Size2-Regular-K5ZHAIS6.woff") format("woff"),
    url("../KaTeX_Size2-Regular-222HN3GT.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: KaTeX_Size3;
  font-style: normal;
  font-weight: 400;
  src:
    url("../KaTeX_Size3-Regular-WQRQ47UD.woff2") format("woff2"),
    url("../KaTeX_Size3-Regular-TLFPAHDE.woff") format("woff"),
    url("../KaTeX_Size3-Regular-UFCO6WCA.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: KaTeX_Size4;
  font-style: normal;
  font-weight: 400;
  src:
    url("../KaTeX_Size4-Regular-CDMV7U5C.woff2") format("woff2"),
    url("../KaTeX_Size4-Regular-PKMWZHNC.woff") format("woff"),
    url("../KaTeX_Size4-Regular-7PGNVPQK.ttf") format("truetype");
}
@font-face {
  font-display: block;
  font-family: KaTeX_Typewriter;
  font-style: normal;
  font-weight: 400;
  src:
    url("../KaTeX_Typewriter-Regular-VBYJ4NRC.woff2") format("woff2"),
    url("../KaTeX_Typewriter-Regular-MJMFSK64.woff") format("woff"),
    url("../KaTeX_Typewriter-Regular-3F5K6SQ6.ttf") format("truetype");
}
.katex {
  font:
    normal 1.21em KaTeX_Main,
    Times New Roman,
    serif;
  line-height: 1.2;
  position: relative;
  text-indent: 0;
  text-rendering: auto;
}
.katex * {
  -ms-high-contrast-adjust: none !important;
  border-color: currentColor;
}
.katex .katex-version:after {
  content: "0.16.45";
}
.katex .katex-mathml {
  clip: rect(1px, 1px, 1px, 1px);
  border: 0;
  height: 1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}
.katex .katex-html > .newline {
  display: block;
}
.katex .base {
  position: relative;
  white-space: nowrap;
  width: -moz-min-content;
  width: min-content;
}
.katex .base,
.katex .strut {
  display: inline-block;
}
.katex .textbf {
  font-weight: 700;
}
.katex .textit {
  font-style: italic;
}
.katex .textrm {
  font-family: KaTeX_Main;
}
.katex .textsf {
  font-family: KaTeX_SansSerif;
}
.katex .texttt {
  font-family: KaTeX_Typewriter;
}
.katex .mathnormal {
  font-family: KaTeX_Math;
  font-style: italic;
}
.katex .mathit {
  font-family: KaTeX_Main;
  font-style: italic;
}
.katex .mathrm {
  font-style: normal;
}
.katex .mathbf {
  font-family: KaTeX_Main;
  font-weight: 700;
}
.katex .boldsymbol {
  font-family: KaTeX_Math;
  font-style: italic;
  font-weight: 700;
}
.katex .amsrm,
.katex .mathbb,
.katex .textbb {
  font-family: KaTeX_AMS;
}
.katex .mathcal {
  font-family: KaTeX_Caligraphic;
}
.katex .mathfrak,
.katex .textfrak {
  font-family: KaTeX_Fraktur;
}
.katex .mathboldfrak,
.katex .textboldfrak {
  font-family: KaTeX_Fraktur;
  font-weight: 700;
}
.katex .mathtt {
  font-family: KaTeX_Typewriter;
}
.katex .mathscr,
.katex .textscr {
  font-family: KaTeX_Script;
}
.katex .mathsf,
.katex .textsf {
  font-family: KaTeX_SansSerif;
}
.katex .mathboldsf,
.katex .textboldsf {
  font-family: KaTeX_SansSerif;
  font-weight: 700;
}
.katex .mathitsf,
.katex .mathsfit,
.katex .textitsf {
  font-family: KaTeX_SansSerif;
  font-style: italic;
}
.katex .mainrm {
  font-family: KaTeX_Main;
  font-style: normal;
}
.katex .vlist-t {
  border-collapse: collapse;
  display: inline-table;
  table-layout: fixed;
}
.katex .vlist-r {
  display: table-row;
}
.katex .vlist {
  display: table-cell;
  position: relative;
  vertical-align: bottom;
}
.katex .vlist > span {
  display: block;
  height: 0;
  position: relative;
}
.katex .vlist > span > span {
  display: inline-block;
}
.katex .vlist > span > .pstrut {
  overflow: hidden;
  width: 0;
}
.katex .vlist-t2 {
  margin-right: -2px;
}
.katex .vlist-s {
  display: table-cell;
  font-size: 1px;
  min-width: 2px;
  vertical-align: bottom;
  width: 2px;
}
.katex .vbox {
  align-items: baseline;
  display: inline-flex;
  flex-direction: column;
}
.katex .hbox {
  width: 100%;
}
.katex .hbox,
.katex .thinbox {
  display: inline-flex;
  flex-direction: row;
}
.katex .thinbox {
  max-width: 0;
  width: 0;
}
.katex .msupsub {
  text-align: left;
}
.katex .mfrac > span > span {
  text-align: center;
}
.katex .mfrac .frac-line {
  border-bottom-style: solid;
  display: inline-block;
  width: 100%;
}
.katex .hdashline,
.katex .hline,
.katex .mfrac .frac-line,
.katex .overline .overline-line,
.katex .rule,
.katex .underline .underline-line {
  min-height: 1px;
}
.katex .mspace {
  display: inline-block;
}
.katex .smash {
  display: inline;
  line-height: 0;
}
.katex .clap,
.katex .llap,
.katex .rlap {
  position: relative;
  width: 0;
}
.katex .clap > .inner,
.katex .llap > .inner,
.katex .rlap > .inner {
  position: absolute;
}
.katex .clap > .fix,
.katex .llap > .fix,
.katex .rlap > .fix {
  display: inline-block;
}
.katex .llap > .inner {
  right: 0;
}
.katex .clap > .inner,
.katex .rlap > .inner {
  left: 0;
}
.katex .clap > .inner > span {
  margin-left: -50%;
  margin-right: 50%;
}
.katex .rule {
  border: 0 solid;
  display: inline-block;
  position: relative;
}
.katex .hline,
.katex .overline .overline-line,
.katex .underline .underline-line {
  border-bottom-style: solid;
  display: inline-block;
  width: 100%;
}
.katex .hdashline {
  border-bottom-style: dashed;
  display: inline-block;
  width: 100%;
}
.katex .sqrt > .root {
  margin-left: .2777777778em;
  margin-right: -.5555555556em;
}
.katex .fontsize-ensurer.reset-size1.size1,
.katex .sizing.reset-size1.size1 {
  font-size: 1em;
}
.katex .fontsize-ensurer.reset-size1.size2,
.katex .sizing.reset-size1.size2 {
  font-size: 1.2em;
}
.katex .fontsize-ensurer.reset-size1.size3,
.katex .sizing.reset-size1.size3 {
  font-size: 1.4em;
}
.katex .fontsize-ensurer.reset-size1.size4,
.katex .sizing.reset-size1.size4 {
  font-size: 1.6em;
}
.katex .fontsize-ensurer.reset-size1.size5,
.katex .sizing.reset-size1.size5 {
  font-size: 1.8em;
}
.katex .fontsize-ensurer.reset-size1.size6,
.katex .sizing.reset-size1.size6 {
  font-size: 2em;
}
.katex .fontsize-ensurer.reset-size1.size7,
.katex .sizing.reset-size1.size7 {
  font-size: 2.4em;
}
.katex .fontsize-ensurer.reset-size1.size8,
.katex .sizing.reset-size1.size8 {
  font-size: 2.88em;
}
.katex .fontsize-ensurer.reset-size1.size9,
.katex .sizing.reset-size1.size9 {
  font-size: 3.456em;
}
.katex .fontsize-ensurer.reset-size1.size10,
.katex .sizing.reset-size1.size10 {
  font-size: 4.148em;
}
.katex .fontsize-ensurer.reset-size1.size11,
.katex .sizing.reset-size1.size11 {
  font-size: 4.976em;
}
.katex .fontsize-ensurer.reset-size2.size1,
.katex .sizing.reset-size2.size1 {
  font-size: .8333333333em;
}
.katex .fontsize-ensurer.reset-size2.size2,
.katex .sizing.reset-size2.size2 {
  font-size: 1em;
}
.katex .fontsize-ensurer.reset-size2.size3,
.katex .sizing.reset-size2.size3 {
  font-size: 1.1666666667em;
}
.katex .fontsize-ensurer.reset-size2.size4,
.katex .sizing.reset-size2.size4 {
  font-size: 1.3333333333em;
}
.katex .fontsize-ensurer.reset-size2.size5,
.katex .sizing.reset-size2.size5 {
  font-size: 1.5em;
}
.katex .fontsize-ensurer.reset-size2.size6,
.katex .sizing.reset-size2.size6 {
  font-size: 1.6666666667em;
}
.katex .fontsize-ensurer.reset-size2.size7,
.katex .sizing.reset-size2.size7 {
  font-size: 2em;
}
.katex .fontsize-ensurer.reset-size2.size8,
.katex .sizing.reset-size2.size8 {
  font-size: 2.4em;
}
.katex .fontsize-ensurer.reset-size2.size9,
.katex .sizing.reset-size2.size9 {
  font-size: 2.88em;
}
.katex .fontsize-ensurer.reset-size2.size10,
.katex .sizing.reset-size2.size10 {
  font-size: 3.4566666667em;
}
.katex .fontsize-ensurer.reset-size2.size11,
.katex .sizing.reset-size2.size11 {
  font-size: 4.1466666667em;
}
.katex .fontsize-ensurer.reset-size3.size1,
.katex .sizing.reset-size3.size1 {
  font-size: .7142857143em;
}
.katex .fontsize-ensurer.reset-size3.size2,
.katex .sizing.reset-size3.size2 {
  font-size: .8571428571em;
}
.katex .fontsize-ensurer.reset-size3.size3,
.katex .sizing.reset-size3.size3 {
  font-size: 1em;
}
.katex .fontsize-ensurer.reset-size3.size4,
.katex .sizing.reset-size3.size4 {
  font-size: 1.1428571429em;
}
.katex .fontsize-ensurer.reset-size3.size5,
.katex .sizing.reset-size3.size5 {
  font-size: 1.2857142857em;
}
.katex .fontsize-ensurer.reset-size3.size6,
.katex .sizing.reset-size3.size6 {
  font-size: 1.4285714286em;
}
.katex .fontsize-ensurer.reset-size3.size7,
.katex .sizing.reset-size3.size7 {
  font-size: 1.7142857143em;
}
.katex .fontsize-ensurer.reset-size3.size8,
.katex .sizing.reset-size3.size8 {
  font-size: 2.0571428571em;
}
.katex .fontsize-ensurer.reset-size3.size9,
.katex .sizing.reset-size3.size9 {
  font-size: 2.4685714286em;
}
.katex .fontsize-ensurer.reset-size3.size10,
.katex .sizing.reset-size3.size10 {
  font-size: 2.9628571429em;
}
.katex .fontsize-ensurer.reset-size3.size11,
.katex .sizing.reset-size3.size11 {
  font-size: 3.5542857143em;
}
.katex .fontsize-ensurer.reset-size4.size1,
.katex .sizing.reset-size4.size1 {
  font-size: .625em;
}
.katex .fontsize-ensurer.reset-size4.size2,
.katex .sizing.reset-size4.size2 {
  font-size: .75em;
}
.katex .fontsize-ensurer.reset-size4.size3,
.katex .sizing.reset-size4.size3 {
  font-size: .875em;
}
.katex .fontsize-ensurer.reset-size4.size4,
.katex .sizing.reset-size4.size4 {
  font-size: 1em;
}
.katex .fontsize-ensurer.reset-size4.size5,
.katex .sizing.reset-size4.size5 {
  font-size: 1.125em;
}
.katex .fontsize-ensurer.reset-size4.size6,
.katex .sizing.reset-size4.size6 {
  font-size: 1.25em;
}
.katex .fontsize-ensurer.reset-size4.size7,
.katex .sizing.reset-size4.size7 {
  font-size: 1.5em;
}
.katex .fontsize-ensurer.reset-size4.size8,
.katex .sizing.reset-size4.size8 {
  font-size: 1.8em;
}
.katex .fontsize-ensurer.reset-size4.size9,
.katex .sizing.reset-size4.size9 {
  font-size: 2.16em;
}
.katex .fontsize-ensurer.reset-size4.size10,
.katex .sizing.reset-size4.size10 {
  font-size: 2.5925em;
}
.katex .fontsize-ensurer.reset-size4.size11,
.katex .sizing.reset-size4.size11 {
  font-size: 3.11em;
}
.katex .fontsize-ensurer.reset-size5.size1,
.katex .sizing.reset-size5.size1 {
  font-size: .5555555556em;
}
.katex .fontsize-ensurer.reset-size5.size2,
.katex .sizing.reset-size5.size2 {
  font-size: .6666666667em;
}
.katex .fontsize-ensurer.reset-size5.size3,
.katex .sizing.reset-size5.size3 {
  font-size: .7777777778em;
}
.katex .fontsize-ensurer.reset-size5.size4,
.katex .sizing.reset-size5.size4 {
  font-size: .8888888889em;
}
.katex .fontsize-ensurer.reset-size5.size5,
.katex .sizing.reset-size5.size5 {
  font-size: 1em;
}
.katex .fontsize-ensurer.reset-size5.size6,
.katex .sizing.reset-size5.size6 {
  font-size: 1.1111111111em;
}
.katex .fontsize-ensurer.reset-size5.size7,
.katex .sizing.reset-size5.size7 {
  font-size: 1.3333333333em;
}
.katex .fontsize-ensurer.reset-size5.size8,
.katex .sizing.reset-size5.size8 {
  font-size: 1.6em;
}
.katex .fontsize-ensurer.reset-size5.size9,
.katex .sizing.reset-size5.size9 {
  font-size: 1.92em;
}
.katex .fontsize-ensurer.reset-size5.size10,
.katex .sizing.reset-size5.size10 {
  font-size: 2.3044444444em;
}
.katex .fontsize-ensurer.reset-size5.size11,
.katex .sizing.reset-size5.size11 {
  font-size: 2.7644444444em;
}
.katex .fontsize-ensurer.reset-size6.size1,
.katex .sizing.reset-size6.size1 {
  font-size: .5em;
}
.katex .fontsize-ensurer.reset-size6.size2,
.katex .sizing.reset-size6.size2 {
  font-size: .6em;
}
.katex .fontsize-ensurer.reset-size6.size3,
.katex .sizing.reset-size6.size3 {
  font-size: .7em;
}
.katex .fontsize-ensurer.reset-size6.size4,
.katex .sizing.reset-size6.size4 {
  font-size: .8em;
}
.katex .fontsize-ensurer.reset-size6.size5,
.katex .sizing.reset-size6.size5 {
  font-size: .9em;
}
.katex .fontsize-ensurer.reset-size6.size6,
.katex .sizing.reset-size6.size6 {
  font-size: 1em;
}
.katex .fontsize-ensurer.reset-size6.size7,
.katex .sizing.reset-size6.size7 {
  font-size: 1.2em;
}
.katex .fontsize-ensurer.reset-size6.size8,
.katex .sizing.reset-size6.size8 {
  font-size: 1.44em;
}
.katex .fontsize-ensurer.reset-size6.size9,
.katex .sizing.reset-size6.size9 {
  font-size: 1.728em;
}
.katex .fontsize-ensurer.reset-size6.size10,
.katex .sizing.reset-size6.size10 {
  font-size: 2.074em;
}
.katex .fontsize-ensurer.reset-size6.size11,
.katex .sizing.reset-size6.size11 {
  font-size: 2.488em;
}
.katex .fontsize-ensurer.reset-size7.size1,
.katex .sizing.reset-size7.size1 {
  font-size: .4166666667em;
}
.katex .fontsize-ensurer.reset-size7.size2,
.katex .sizing.reset-size7.size2 {
  font-size: .5em;
}
.katex .fontsize-ensurer.reset-size7.size3,
.katex .sizing.reset-size7.size3 {
  font-size: .5833333333em;
}
.katex .fontsize-ensurer.reset-size7.size4,
.katex .sizing.reset-size7.size4 {
  font-size: .6666666667em;
}
.katex .fontsize-ensurer.reset-size7.size5,
.katex .sizing.reset-size7.size5 {
  font-size: .75em;
}
.katex .fontsize-ensurer.reset-size7.size6,
.katex .sizing.reset-size7.size6 {
  font-size: .8333333333em;
}
.katex .fontsize-ensurer.reset-size7.size7,
.katex .sizing.reset-size7.size7 {
  font-size: 1em;
}
.katex .fontsize-ensurer.reset-size7.size8,
.katex .sizing.reset-size7.size8 {
  font-size: 1.2em;
}
.katex .fontsize-ensurer.reset-size7.size9,
.katex .sizing.reset-size7.size9 {
  font-size: 1.44em;
}
.katex .fontsize-ensurer.reset-size7.size10,
.katex .sizing.reset-size7.size10 {
  font-size: 1.7283333333em;
}
.katex .fontsize-ensurer.reset-size7.size11,
.katex .sizing.reset-size7.size11 {
  font-size: 2.0733333333em;
}
.katex .fontsize-ensurer.reset-size8.size1,
.katex .sizing.reset-size8.size1 {
  font-size: .3472222222em;
}
.katex .fontsize-ensurer.reset-size8.size2,
.katex .sizing.reset-size8.size2 {
  font-size: .4166666667em;
}
.katex .fontsize-ensurer.reset-size8.size3,
.katex .sizing.reset-size8.size3 {
  font-size: .4861111111em;
}
.katex .fontsize-ensurer.reset-size8.size4,
.katex .sizing.reset-size8.size4 {
  font-size: .5555555556em;
}
.katex .fontsize-ensurer.reset-size8.size5,
.katex .sizing.reset-size8.size5 {
  font-size: .625em;
}
.katex .fontsize-ensurer.reset-size8.size6,
.katex .sizing.reset-size8.size6 {
  font-size: .6944444444em;
}
.katex .fontsize-ensurer.reset-size8.size7,
.katex .sizing.reset-size8.size7 {
  font-size: .8333333333em;
}
.katex .fontsize-ensurer.reset-size8.size8,
.katex .sizing.reset-size8.size8 {
  font-size: 1em;
}
.katex .fontsize-ensurer.reset-size8.size9,
.katex .sizing.reset-size8.size9 {
  font-size: 1.2em;
}
.katex .fontsize-ensurer.reset-size8.size10,
.katex .sizing.reset-size8.size10 {
  font-size: 1.4402777778em;
}
.katex .fontsize-ensurer.reset-size8.size11,
.katex .sizing.reset-size8.size11 {
  font-size: 1.7277777778em;
}
.katex .fontsize-ensurer.reset-size9.size1,
.katex .sizing.reset-size9.size1 {
  font-size: .2893518519em;
}
.katex .fontsize-ensurer.reset-size9.size2,
.katex .sizing.reset-size9.size2 {
  font-size: .3472222222em;
}
.katex .fontsize-ensurer.reset-size9.size3,
.katex .sizing.reset-size9.size3 {
  font-size: .4050925926em;
}
.katex .fontsize-ensurer.reset-size9.size4,
.katex .sizing.reset-size9.size4 {
  font-size: .462962963em;
}
.katex .fontsize-ensurer.reset-size9.size5,
.katex .sizing.reset-size9.size5 {
  font-size: .5208333333em;
}
.katex .fontsize-ensurer.reset-size9.size6,
.katex .sizing.reset-size9.size6 {
  font-size: .5787037037em;
}
.katex .fontsize-ensurer.reset-size9.size7,
.katex .sizing.reset-size9.size7 {
  font-size: .6944444444em;
}
.katex .fontsize-ensurer.reset-size9.size8,
.katex .sizing.reset-size9.size8 {
  font-size: .8333333333em;
}
.katex .fontsize-ensurer.reset-size9.size9,
.katex .sizing.reset-size9.size9 {
  font-size: 1em;
}
.katex .fontsize-ensurer.reset-size9.size10,
.katex .sizing.reset-size9.size10 {
  font-size: 1.2002314815em;
}
.katex .fontsize-ensurer.reset-size9.size11,
.katex .sizing.reset-size9.size11 {
  font-size: 1.4398148148em;
}
.katex .fontsize-ensurer.reset-size10.size1,
.katex .sizing.reset-size10.size1 {
  font-size: .2410800386em;
}
.katex .fontsize-ensurer.reset-size10.size2,
.katex .sizing.reset-size10.size2 {
  font-size: .2892960463em;
}
.katex .fontsize-ensurer.reset-size10.size3,
.katex .sizing.reset-size10.size3 {
  font-size: .337512054em;
}
.katex .fontsize-ensurer.reset-size10.size4,
.katex .sizing.reset-size10.size4 {
  font-size: .3857280617em;
}
.katex .fontsize-ensurer.reset-size10.size5,
.katex .sizing.reset-size10.size5 {
  font-size: .4339440694em;
}
.katex .fontsize-ensurer.reset-size10.size6,
.katex .sizing.reset-size10.size6 {
  font-size: .4821600771em;
}
.katex .fontsize-ensurer.reset-size10.size7,
.katex .sizing.reset-size10.size7 {
  font-size: .5785920926em;
}
.katex .fontsize-ensurer.reset-size10.size8,
.katex .sizing.reset-size10.size8 {
  font-size: .6943105111em;
}
.katex .fontsize-ensurer.reset-size10.size9,
.katex .sizing.reset-size10.size9 {
  font-size: .8331726133em;
}
.katex .fontsize-ensurer.reset-size10.size10,
.katex .sizing.reset-size10.size10 {
  font-size: 1em;
}
.katex .fontsize-ensurer.reset-size10.size11,
.katex .sizing.reset-size10.size11 {
  font-size: 1.1996142719em;
}
.katex .fontsize-ensurer.reset-size11.size1,
.katex .sizing.reset-size11.size1 {
  font-size: .2009646302em;
}
.katex .fontsize-ensurer.reset-size11.size2,
.katex .sizing.reset-size11.size2 {
  font-size: .2411575563em;
}
.katex .fontsize-ensurer.reset-size11.size3,
.katex .sizing.reset-size11.size3 {
  font-size: .2813504823em;
}
.katex .fontsize-ensurer.reset-size11.size4,
.katex .sizing.reset-size11.size4 {
  font-size: .3215434084em;
}
.katex .fontsize-ensurer.reset-size11.size5,
.katex .sizing.reset-size11.size5 {
  font-size: .3617363344em;
}
.katex .fontsize-ensurer.reset-size11.size6,
.katex .sizing.reset-size11.size6 {
  font-size: .4019292605em;
}
.katex .fontsize-ensurer.reset-size11.size7,
.katex .sizing.reset-size11.size7 {
  font-size: .4823151125em;
}
.katex .fontsize-ensurer.reset-size11.size8,
.katex .sizing.reset-size11.size8 {
  font-size: .578778135em;
}
.katex .fontsize-ensurer.reset-size11.size9,
.katex .sizing.reset-size11.size9 {
  font-size: .6945337621em;
}
.katex .fontsize-ensurer.reset-size11.size10,
.katex .sizing.reset-size11.size10 {
  font-size: .8336012862em;
}
.katex .fontsize-ensurer.reset-size11.size11,
.katex .sizing.reset-size11.size11 {
  font-size: 1em;
}
.katex .delimsizing.size1 {
  font-family: KaTeX_Size1;
}
.katex .delimsizing.size2 {
  font-family: KaTeX_Size2;
}
.katex .delimsizing.size3 {
  font-family: KaTeX_Size3;
}
.katex .delimsizing.size4 {
  font-family: KaTeX_Size4;
}
.katex .delimsizing.mult .delim-size1 > span {
  font-family: KaTeX_Size1;
}
.katex .delimsizing.mult .delim-size4 > span {
  font-family: KaTeX_Size4;
}
.katex .nulldelimiter {
  display: inline-block;
  width: .12em;
}
.katex .delimcenter,
.katex .op-symbol {
  position: relative;
}
.katex .op-symbol.small-op {
  font-family: KaTeX_Size1;
}
.katex .op-symbol.large-op {
  font-family: KaTeX_Size2;
}
.katex .accent > .vlist-t,
.katex .op-limits > .vlist-t {
  text-align: center;
}
.katex .accent .accent-body {
  position: relative;
}
.katex .accent .accent-body:not(.accent-full) {
  width: 0;
}
.katex .overlay {
  display: block;
}
.katex .mtable .vertical-separator {
  display: inline-block;
  min-width: 1px;
}
.katex .mtable .arraycolsep {
  display: inline-block;
}
.katex .mtable .col-align-c > .vlist-t {
  text-align: center;
}
.katex .mtable .col-align-l > .vlist-t {
  text-align: left;
}
.katex .mtable .col-align-r > .vlist-t {
  text-align: right;
}
.katex .svg-align {
  text-align: left;
}
.katex svg {
  fill: currentColor;
  stroke: currentColor;
  display: block;
  height: inherit;
  position: absolute;
  width: 100%;
}
.katex svg path {
  stroke: none;
}
.katex svg {
  fill-rule: nonzero;
  fill-opacity: 1;
  stroke-width: 1;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-miterlimit: 4;
  stroke-dasharray: none;
  stroke-dashoffset: 0;
  stroke-opacity: 1;
}
.katex img {
  border-style: none;
  max-height: none;
  max-width: none;
  min-height: 0;
  min-width: 0;
}
.katex .stretchy {
  display: block;
  overflow: hidden;
  position: relative;
  width: 100%;
}
.katex .stretchy:after,
.katex .stretchy:before {
  content: "";
}
.katex .hide-tail {
  overflow: hidden;
  position: relative;
  width: 100%;
}
.katex .halfarrow-left {
  left: 0;
  overflow: hidden;
  position: absolute;
  width: 50.2%;
}
.katex .halfarrow-right {
  overflow: hidden;
  position: absolute;
  right: 0;
  width: 50.2%;
}
.katex .brace-left {
  left: 0;
  overflow: hidden;
  position: absolute;
  width: 25.1%;
}
.katex .brace-center {
  left: 25%;
  overflow: hidden;
  position: absolute;
  width: 50%;
}
.katex .brace-right {
  overflow: hidden;
  position: absolute;
  right: 0;
  width: 25.1%;
}
.katex .x-arrow-pad {
  padding: 0 .5em;
}
.katex .cd-arrow-pad {
  padding: 0 .55556em 0 .27778em;
}
.katex .mover,
.katex .munder,
.katex .x-arrow {
  text-align: center;
}
.katex .boxpad {
  padding: 0 .3em;
}
.katex .fbox,
.katex .fcolorbox {
  border: .04em solid;
  box-sizing: border-box;
}
.katex .cancel-pad {
  padding: 0 .2em;
}
.katex .cancel-lap {
  margin-left: -.2em;
  margin-right: -.2em;
}
.katex .sout {
  border-bottom-style: solid;
  border-bottom-width: .08em;
}
.katex .angl {
  border-right: .049em solid;
  border-top: .049em solid;
  box-sizing: border-box;
  margin-right: .03889em;
}
.katex .anglpad {
  padding: 0 .03889em;
}
.katex .eqn-num:before {
  content: "(" counter(katexEqnNo) ")";
  counter-increment: katexEqnNo;
}
.katex .mml-eqn-num:before {
  content: "(" counter(mmlEqnNo) ")";
  counter-increment: mmlEqnNo;
}
.katex .mtr-glue {
  width: 50%;
}
.katex .cd-vert-arrow {
  display: inline-block;
  position: relative;
}
.katex .cd-label-left {
  display: inline-block;
  position: absolute;
  right: calc(50% + .3em);
  text-align: left;
}
.katex .cd-label-right {
  display: inline-block;
  left: calc(50% + .3em);
  position: absolute;
  text-align: right;
}
.katex-display {
  display: block;
  margin: 1em 0;
  text-align: center;
}
.katex-display > .katex {
  display: block;
  text-align: center;
  white-space: nowrap;
}
.katex-display > .katex > .katex-html {
  display: block;
  position: relative;
}
.katex-display > .katex > .katex-html > .tag {
  position: absolute;
  right: 0;
}
.katex-display.leqno > .katex > .katex-html > .tag {
  left: 0;
  right: auto;
}
.katex-display.fleqn > .katex {
  padding-left: 2em;
  text-align: left;
}
body {
  counter-reset: katexEqnNo mmlEqnNo;
}

/* components/organisms/debug/RuntimeDebugger.css */
.runtime-debugger {
  font-family:
    "SF Mono",
    "Monaco",
    "Consolas",
    ui-monospace,
    monospace;
  font-size: 12px;
}
.runtime-debugger--collapsed {
  width: auto;
  height: auto;
}
.runtime-debugger--expanded {
  width: 450px;
  max-height: 75vh;
}
.runtime-debugger__toggle {
  width: 48px !important;
  height: 48px !important;
  border-radius: 50% !important;
  font-size: 20px !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.runtime-debugger__toggle:hover {
  transform: scale(1.05);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
}
.runtime-debugger__panel {
  display: flex;
  flex-direction: column;
  max-height: 70vh;
  overflow: hidden;
}
.runtime-debugger__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--gray-200, #e5e7eb);
}
.dark .runtime-debugger__header {
  border-color: var(--gray-700, #374151);
}
.runtime-debugger__content {
  flex: 1;
  overflow-y: auto;
  padding: 12px;
}
.runtime-debugger__footer {
  padding: 8px 16px;
  border-top: 1px solid var(--gray-200, #e5e7eb);
  text-align: center;
}
.dark .runtime-debugger__footer {
  border-color: var(--gray-700, #374151);
}
.debug-tab {
  padding: 4px 0;
}
.runtime-debugger__content::-webkit-scrollbar {
  width: 6px;
}
.runtime-debugger__content::-webkit-scrollbar-track {
  background: transparent;
}
.runtime-debugger__content::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.1);
  border-radius: 3px;
}
.dark .runtime-debugger__content::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1);
}
.runtime-debugger__content::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.2);
}
.dark .runtime-debugger__content::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.2);
}
.runtime-debugger--inline {
  width: 100%;
}
.runtime-debugger__panel--inline {
  max-height: 300px;
  overflow: hidden;
}
.runtime-debugger__panel--inline-collapsed {
  overflow: hidden;
}

/* components/organisms/game/three/components/Canvas3DLoadingState.css */
.canvas-3d-loading {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(
      135deg,
      #1a1a2e 0%,
      #16213e 50%,
      #0f3460 100%);
  overflow: hidden;
  z-index: 100;
}
.canvas-3d-loading__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  padding: 40px;
  background: rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(10px);
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}
.canvas-3d-loading__spinner {
  position: relative;
  width: 80px;
  height: 80px;
}
.spinner__ring {
  position: absolute;
  inset: 0;
  border: 4px solid transparent;
  border-top-color: #4488ff;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
.spinner__ring--secondary {
  inset: 10px;
  border-top-color: #ff6b6b;
  animation-duration: 1.5s;
  animation-direction: reverse;
}
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.canvas-3d-loading__message {
  font-size: 20px;
  font-weight: 600;
  color: #ffffff;
  text-align: center;
  letter-spacing: 0.5px;
}
.canvas-3d-loading__details {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.6);
  text-align: center;
  font-family: monospace;
  max-width: 300px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.canvas-3d-loading__progress {
  width: 100%;
  max-width: 280px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.progress__bar {
  height: 6px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 3px;
  overflow: hidden;
}
.progress__fill {
  height: 100%;
  background:
    linear-gradient(
      90deg,
      #4488ff,
      #ff6b6b);
  border-radius: 3px;
  transition: width 0.3s ease;
}
.progress__text {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.7);
}
.progress__percentage {
  font-weight: 600;
  color: #4488ff;
}
.progress__count {
  font-family: monospace;
}
.canvas-3d-loading__background {
  position: absolute;
  inset: 0;
  z-index: 1;
  opacity: 0.3;
}
.bg__grid {
  position: absolute;
  inset: -50%;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.03) 1px,
      transparent 1px);
  background-size: 50px 50px;
  animation: gridMove 20s linear infinite;
}
@keyframes gridMove {
  0% {
    transform: perspective(500px) rotateX(60deg) translateY(0);
  }
  100% {
    transform: perspective(500px) rotateX(60deg) translateY(50px);
  }
}
@media (max-width: 480px) {
  .canvas-3d-loading__content {
    padding: 30px 20px;
    margin: 20px;
  }
  .canvas-3d-loading__spinner {
    width: 60px;
    height: 60px;
  }
  .canvas-3d-loading__message {
    font-size: 16px;
  }
  .canvas-3d-loading__details {
    font-size: 12px;
  }
}

/* components/organisms/game/three/components/Canvas3DErrorBoundary.css */
.canvas-3d-error {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(
      135deg,
      #2e1a1a 0%,
      #3e1616 50%,
      #4a1a1a 100%);
  padding: 20px;
  z-index: 100;
}
.canvas-3d-error__content {
  max-width: 600px;
  width: 100%;
  padding: 40px;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(10px);
  border-radius: 16px;
  border: 1px solid rgba(255, 100, 100, 0.2);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
  text-align: center;
}
.canvas-3d-error__icon {
  font-size: 64px;
  margin-bottom: 20px;
  animation: shake 0.5s ease-in-out;
}
@keyframes shake {
  0%, 100% {
    transform: translateX(0);
  }
  25% {
    transform: translateX(-10px);
  }
  75% {
    transform: translateX(10px);
  }
}
.canvas-3d-error__title {
  font-size: 28px;
  font-weight: 700;
  color: #ff6b6b;
  margin: 0 0 16px;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
.canvas-3d-error__message {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.8);
  margin: 0 0 24px;
  line-height: 1.5;
}
.canvas-3d-error__details {
  margin: 24px 0;
  text-align: left;
  background: rgba(0, 0, 0, 0.3);
  border-radius: 8px;
  overflow: hidden;
}
.canvas-3d-error__details summary {
  padding: 12px 16px;
  cursor: pointer;
  color: #ff9999;
  font-weight: 600;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  transition: background 0.2s ease;
}
.canvas-3d-error__details summary:hover {
  background: rgba(255, 100, 100, 0.1);
}
.error__stack,
.error__component-stack {
  padding: 16px;
  margin: 0;
  font-family:
    "Fira Code",
    "Monaco",
    "Consolas",
    monospace;
  font-size: 12px;
  line-height: 1.6;
  color: #ffaaaa;
  background: rgba(0, 0, 0, 0.5);
  overflow-x: auto;
  white-space: pre-wrap;
  word-break: break-all;
}
.error__component-stack {
  border-top: 1px solid rgba(255, 100, 100, 0.2);
  color: #ff8888;
}
.canvas-3d-error__actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 24px;
  flex-wrap: wrap;
}
.error__button {
  padding: 12px 24px;
  font-size: 14px;
  font-weight: 600;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
}
.error__button--primary {
  background:
    linear-gradient(
      135deg,
      #ff6b6b,
      #ff4444);
  color: white;
}
.error__button--primary:hover {
  background:
    linear-gradient(
      135deg,
      #ff8888,
      #ff6666);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(255, 107, 107, 0.4);
}
.error__button--secondary {
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.error__button--secondary:hover {
  background: rgba(255, 255, 255, 0.15);
  transform: translateY(-2px);
}
.error__button:active {
  transform: translateY(0);
}
@media (max-width: 480px) {
  .canvas-3d-error__content {
    padding: 30px 20px;
  }
  .canvas-3d-error__icon {
    font-size: 48px;
  }
  .canvas-3d-error__title {
    font-size: 22px;
  }
  .canvas-3d-error__message {
    font-size: 14px;
  }
  .canvas-3d-error__actions {
    flex-direction: column;
  }
  .error__button {
    width: 100%;
  }
}

/* components/organisms/game/GameCanvas3D.css */
.game-canvas-3d {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #1a1a2e;
  border-radius: 8px;
}
.game-canvas-3d canvas {
  display: block;
  width: 100%;
  height: 100%;
}
.game-canvas-3d--loading {
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(
      135deg,
      #1a1a2e 0%,
      #16213e 100%);
}
.game-canvas-3d__loading {
  padding: 20px 40px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  color: #ffffff;
  font-size: 16px;
  animation: pulse 1.5s ease-in-out infinite;
}
.game-canvas-3d--error {
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(
      135deg,
      #2e1a1a 0%,
      #3e1616 100%);
}
.game-canvas-3d__error {
  padding: 20px 40px;
  background: rgba(255, 0, 0, 0.2);
  border: 1px solid rgba(255, 0, 0, 0.3);
  border-radius: 8px;
  color: #ff6b6b;
  font-size: 14px;
}
.game-canvas-3d__coordinates {
  position: absolute;
  bottom: 20px;
  left: 20px;
  padding: 8px 16px;
  background: rgba(0, 0, 0, 0.7);
  border-radius: 4px;
  color: #ffffff;
  font-family: monospace;
  font-size: 12px;
  pointer-events: none;
  z-index: 10;
}
.game-canvas-3d__tile-info {
  position: absolute;
  top: 20px;
  left: 20px;
  padding: 12px 16px;
  background: rgba(0, 0, 0, 0.8);
  border-radius: 6px;
  color: #ffffff;
  pointer-events: none;
  z-index: 10;
  min-width: 120px;
}
.tile-info__type {
  font-weight: 600;
  font-size: 14px;
  text-transform: capitalize;
  margin-bottom: 4px;
}
.tile-info__terrain {
  font-size: 12px;
  color: #aaaaaa;
}
@keyframes pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}
.game-canvas-3d[data-camera-mode=isometric]::before {
  content: "Isometric";
  position: absolute;
  top: 20px;
  right: 20px;
  padding: 6px 12px;
  background: rgba(0, 0, 0, 0.6);
  border-radius: 4px;
  color: #ffffff;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 1px;
  pointer-events: none;
}
.game-canvas-3d[data-camera-mode=perspective]::before {
  content: "Perspective";
  position: absolute;
  top: 20px;
  right: 20px;
  padding: 6px 12px;
  background: rgba(0, 0, 0, 0.6);
  border-radius: 4px;
  color: #ffffff;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 1px;
  pointer-events: none;
}
.game-canvas-3d[data-camera-mode=top-down]::before {
  content: "Top Down";
  position: absolute;
  top: 20px;
  right: 20px;
  padding: 6px 12px;
  background: rgba(0, 0, 0, 0.6);
  border-radius: 4px;
  color: #ffffff;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 1px;
  pointer-events: none;
}
.game-canvas-3d[data-overlay=hidden] .game-canvas-3d__coordinates,
.game-canvas-3d[data-overlay=hidden] .game-canvas-3d__tile-info,
.game-canvas-3d[data-overlay=hidden]::before {
  display: none;
}
.game-canvas-3d[data-orientation=rotated] {
}
.game-canvas-3d canvas {
  cursor: crosshair;
}
.game-canvas-3d canvas:active {
  cursor: grabbing;
}
@media (max-width: 768px) {
  .game-canvas-3d__coordinates,
  .game-canvas-3d__tile-info {
    font-size: 10px;
    padding: 6px 10px;
  }
  .game-canvas-3d::before {
    font-size: 9px;
    padding: 4px 8px;
  }
}
.game-canvas-3d:focus {
  outline: 2px solid #4488ff;
  outline-offset: 2px;
}
.game-canvas-3d canvas {
  transition: opacity 0.3s ease;
}
.game-canvas-3d__context-menu {
  position: absolute;
  background: rgba(0, 0, 0, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  padding: 8px 0;
  min-width: 150px;
  z-index: 100;
}
.game-canvas-3d__context-menu-item {
  padding: 8px 16px;
  color: #ffffff;
  cursor: pointer;
  font-size: 13px;
  transition: background 0.15s ease;
}
.game-canvas-3d__context-menu-item:hover {
  background: rgba(255, 255, 255, 0.1);
}
.game-canvas-3d__context-menu-item--danger {
  color: #ff6b6b;
}
.game-canvas-3d__context-menu-item--danger:hover {
  background: rgba(255, 0, 0, 0.2);
}
