/*======================================================================
 Core CSS for LaTeXML documents converted to (X)HTML */

/* Generic Page layout */
.ltx_page_header,
.ltx_page_footer { font-size:0.8em; }
.ltx_page_header *[rel~="prev"],
.ltx_page_footer *[rel~="prev"] { float:left; }
.ltx_page_header *[rel~="up"],
.ltx_page_footer *[rel~="up"]   { display:block; text-align:center; }
.ltx_page_header *[rel~="next"],
.ltx_page_footer *[rel~="next"] {  float:right; }
/* What was I trying for here; need more selective rule!
.ltx_page_header .ltx_ref,
.ltx_page_footer .ltx_ref {
    margin:0 1em; }
*/
.ltx_page_header li {
    padding:0.1em 0.2em 0.1em 1em;}

/* Main content */
.ltx_page_content { clear:both; }
.ltx_page_header  { border-bottom:1px solid; margin-bottom:5px; }
.ltx_page_footer  { clear:both; border-top:1px solid; margin-top:5px;  }

.ltx_page_header:after,
.ltx_page_footer:after,
.ltx_page_content:after {
    content:"."; display:block; height:0; clear:both; visibility:hidden; }
.ltx_page_footer:before {
    content:"."; display:block; height:0; clear:both; visibility:hidden; }

.ltx_page_logo     { font-size:90%; margin-top: 5px; clear:both; float:right; }
a.ltx_LaTeXML_logo { text-decoration: none; }
.ltx_page_logo img { vertical-align:-3px; }
.ltx_page_navbar .ltx_LaTeXML_logo,
.ltx_page_logo .ltx_LaTeXML_logo { font-size:110%; }
/* if shown */
.ltx_page_navbar li { white-space:nowrap; display:block; overflow:hidden; }
/* If ref got turned into span, it's "this section"*/
.ltx_page_navbar li span.ltx_ref { white-space:normal; overflow:visible; }

/* Ought to be easily removable/overridable? */
.ltx_pagination.ltx_role_newpage { height:2em; }
/*======================================================================
  Document Structure; Titles & Frontmatter */

/* undo bold here to remove the browser's native h# styling,
   at let all other styles override it (with more specific rules)*/
.ltx_title { font-size:100%; font-weight:normal; }

/* Hack to simulate run-in! put class="ltx_runin" on a title or tag
   for it to run-into the following text. */
.ltx_runin { display:inline; }
.ltx_runin:after { content:" "; }
.ltx_runin + .ltx_para,
.ltx_runin + .ltx_para p:first-child,
.ltx_runin + p:first-child {
    display:inline; }

.ltx_outdent { margin-left: -2em; }

/* .ltx_chapter_title, etc should be in ltx-article.css etc. */
.ltx_page_main { margin:0px auto;
    padding:1em 3em 1em 2em;
    padding:min(1em,1.5%) min(3em,4.5%) min(1em,1.5%) min(2em, 3%); }
.ltx_tocentry  { list-style-type:none; }

/* support for common author block layouts.*/
/* Default (or w/ class ltx_authors_1line) to get authors in single line
   with pop-up affiliation, etc. */
.ltx_creator,
.ltx_author_before,
.ltx_author_after { display:inline;}
.ltx_author_notes { display:inline-block; }
.ltx_author_notes:before {
    content:"*"; color:blue;
    font-size:80%; vertical-align:super; }
.ltx_author_notes .ltx_author_notes_content {
    visibility:hidden; opacity:0; transition: opacity 0.3s;
    position:absolute; z-index:10; }
.ltx_author_notes:hover .ltx_author_notes_content {
    visibility:visible; opacity:1;
    background:white; text-align:left;
    border: 1px solid black; border-radius: 0 5px 5px 5px; box-shadow: 5px 5px 10px gray;
    padding:0.3rem; font-size:1rem; }
.ltx_author_notes:hover .ltx_author_notes_content .ltx_contact {
    display:block; }

/* add class=ltx_authors_multiline to get authors & affliations on separate lines*/
.ltx_authors_multiline .ltx_creator,
.ltx_authors_multiline .ltx_author_before,
.ltx_authors_multiline .ltx_author_after,
.ltx_authors_multiline .ltx_author_notes,
.ltx_authors_multiline .ltx_author_notes .ltx_contact {
    display:block; }
.ltx_authors_multiline .ltx_author_notes:before {
    content:""; }
.ltx_authors_multiline .ltx_author_notes .ltx_author_notes_content {
    visibility:visible; opacity:1; position:static; z-index:0; }
.ltx_authors_multiline .ltx_author_notes:hover .ltx_author_notes_content {
    position:static; padding:0;
    border:none; border-radius:0; box-shadow:none; text-align:center; }
.ltx_authors_multiline .ltx_contact_name {
    display:none; }

.ltx_pubnotes:before {
    content:"\002020"; color:blue;
    font-size:80%; vertical-align:super; }
.ltx_pubnotes        { display:inline-block; }
.ltx_pubnotes .ltx_pubnotes_content {
    visibility:hidden; opacity:0; transition: opacity 0.3s;
    position:absolute; z-index:10; }
.ltx_pubnotes:hover .ltx_pubnotes_content {
    visibility:visible; opacity:1;
    background:white; text-align:left;
    border: 1px solid black; border-radius: 0 5px 5px 5px; box-shadow: 5px 5px 10px gray;
    padding:0.3rem; font-size:1rem; }
.ltx_pubnotes:hover .ltx_pubnotes_content .ltx_pubnote{
    display:block; }

.ltx_note_name,
.ltx_contact_name {
    font-style:italic; }
/*======================================================================
  Para level */
.ltx_float {
    margin: 1ex clamp(1em, 4.5%, 3em) 1ex clamp(1em, 4.5%, 3em); }

/* Multiple subfigures via flexbox */
.ltx_flex_figure {
  display: flex;
  flex-flow: row wrap;
  width: auto;
  max-width: 60rem;
  position: relative;
  justify-content: center;
  align-items: baseline;
  object-fit: contain;
  margin-bottom: 1rem;
}

.ltx_flex_size_1,
.ltx_flex_size_1 .ltx_tabular,
.ltx_flex_size_1 .ltx_graphics {
  max-width:60rem;
}
.ltx_flex_size_2,
.ltx_flex_size_2 .ltx_tabular,
.ltx_flex_size_2 .ltx_graphics {
  max-width: calc(0.44*60rem);
}
.ltx_flex_size_3,
.ltx_flex_size_3 .ltx_tabular,
.ltx_flex_size_3 .ltx_graphics {
  max-width: calc(0.30*60rem);
}
.ltx_flex_size_4,
.ltx_flex_size_4 .ltx_tabular,
.ltx_flex_size_4 .ltx_graphics {
  max-width: calc(0.24*60rem);
}
/*Default: More than 4 items, tricky.
  quite often intended to auto-reflow... */
.ltx_flex_size_many,
.ltx_flex_size_many .ltx_tabular,
.ltx_flex_size_many .ltx_graphics {
  max-width: calc(0.24*60rem);
}
/* brucemiller/LaTeXML#2392: the flex_size caps above change an image's width but
   not its height, distorting the aspect ratio (a square figure becomes a vertical
   ellipsoid). Each ltx:graphics now carries an explicit `aspect-ratio` (emitted in
   post-processing from the requested width/height); freeing the height lets that
   ratio govern, so the capped width scales the height with it. */
.ltx_flex_figure .ltx_graphics { height: auto; }

/* flex row breaks */
.ltx_flex_figure .ltx_flex_break {
  flex-basis: 100%;
  height: 0;
}

/* layout preference */
.ltx_flex_figure .ltx_subgraphics,
.ltx_flex_figure .ltx_subfigure,
.ltx_flex_figure .ltx_subfloat,
.ltx_flex_figure .ltx_subtable {
  flex: 1 1 0px;
  margin: 0.1rem;
}
.ltx_subgraphics, .ltx_subfigure, .ltx_subtable, .ltx_subfloat {
  padding-left: 1rem;
  padding-right: 1rem;
}
.ltx_subgraphics > .ltx_figure,
.ltx_subfigure > .ltx_figure,
.ltx_subtable > .ltx_figure,
.ltx_subfloat > .ltx_figure {
  margin:0em;
}

/* theorems, figure, tables, floats captions.. */
/*======================================================================
 Blocks, Lists, Floats */
.ltx_p,
.ltx_quote,
.ltx_block,
.ltx_logical-block,
.ltx_para {
    display: block; }

/* alignment within blocks */
.ltx_align_left     { text-align:left; }
.ltx_align_right    { text-align:right; }
.ltx_align_center   { text-align:center; }
.ltx_align_justify  { text-align:justify; }
.ltx_align_top      { vertical-align:top; }
.ltx_align_bottom   { vertical-align:bottom; }
.ltx_align_middle   { vertical-align:middle; }
.ltx_align_baseline { vertical-align:baseline; }

.ltx_align_floatleft  { float:left; }
.ltx_align_floatright { float:right; }

.ltx_td.ltx_align_left,   .ltx_th.ltx_align_left,   .ltx_eqn_cell.ltx_align_left,
.ltx_td.ltx_align_right,  .ltx_th.ltx_align_right,  .ltx_eqn_cell.ltx_align_right,
.ltx_td.ltx_align_center, .ltx_th.ltx_align_center, .ltx_eqn_cell.ltx_align_center { white-space:nowrap; }
/* #527: a display equation `\[…\]` (and fleqn/constraint variants) puts its
   content in an `ltx_eqn_cell` with an alignment class but NO `ltx_td`, so it
   was missing the nowrap above. Between the two 50%-width centering pad cells of
   the width:100% `ltx_eqn_table`, a `\text{…}`-only display (`ltx_markedasmath`,
   which unlike real math is wrappable) then collapsed to one word per line.
   Give the equation cell the same nowrap-with-`ltx_wrap`-optout as a table cell. */
.ltx_td.ltx_align_left.ltx_wrap,   .ltx_th.ltx_align_left.ltx_wrap,   .ltx_eqn_cell.ltx_align_left.ltx_wrap,
.ltx_td.ltx_align_right.ltx_wrap,  .ltx_th.ltx_align_right.ltx_wrap,  .ltx_eqn_cell.ltx_align_right.ltx_wrap,
.ltx_td.ltx_align_center.ltx_wrap, .ltx_th.ltx_align_center.ltx_wrap, .ltx_eqn_cell.ltx_align_center.ltx_wrap,
.ltx_td.ltx_align_justify,  .ltx_th.ltx_align_justify { white-space:normal; }

.ltx_tabular .ltx_tabular { width:100%; }
.ltx_inline-block,
.ltx_inline-logical-block { display:inline-block; text-indent:0px; }

/* tabbing is always a standalone paragraph-level construct */
.ltx_tabular.ltx_tabbing {
  display: table; }

/* avoid padding when aligning adjacent columns, e.g. for split decimals */
.ltx_norightpad { padding-right:0!important; }
.ltx_noleftpad  { padding-left:0!important; }
.ltx_nopad      { padding:0!important; }

/* equations in non-aligned mode (not normally used) */
.ltx_eqn_div { display:block; width:95%; text-align:center; }

/* equations in aligned mode (aligning tags, etc as well as equations) */
.ltx_eqn_table { display:table; width:100%; border-collapse:collapse; }
.ltx_eqn_row   { display:table-row; }
.ltx_eqn_cell  { display:table-cell; width:auto; }

/* Padding between column pairs in ams align */
table.ltx_eqn_align tr.ltx_equation td.ltx_align_left + td.ltx_align_right,
table.ltx_eqn_align tr.ltx_equation td.ltx_align_left + td.ltx_align_center,
table.ltx_eqn_align tr.ltx_equation td.ltx_align_center + td.ltx_align_right,
table.ltx_eqn_align tr.ltx_equation td.ltx_align_center + td.ltx_align_center  { padding-left:3em; }
table.ltx_eqn_eqnarray tr.ltx_eqn_lefteqn + tr td.ltx_align_right { min-width:2em; }

/* Native-MathML alignment cells. An `aligned`/`align`/`gather`/`split` that is
   NESTED in another math environment renders as ONE `<math>` with an `<mtable>`
   (not the HTML `ltx_eqn_table` above), for which LaTeXML sets
   `columnspacing="0pt"` — the relation operator supplies the inter-column gap.
   Browsers still add a default 0.4em horizontal padding to every `<mtd>`, which
   double-spaces the relation, e.g. `y(x) = …` came out with ~3x the intended
   space (issue #755, reporter nasser1). Reset it. Keyed on the tight
   `columnspacing="0pt"` table so matrices/arrays (bare `<mtd>`, non-zero
   `columnspacing` — which some browsers under-honor, leaning on this padding for
   column separation) are left untouched. */
math mtable[columnspacing="0pt"] mtd { padding-left:0; padding-right:0; }

.ltx_eqn_eqno { max-width:0em; overflow:visible; white-space: nowrap; }
.ltx_eqn_eqno.ltx_align_right .ltx_tag { float:right; }

.ltx_eqn_center_padleft,
.ltx_eqn_center_padright { width:50%; min-width:2em;}
.ltx_eqn_left_padleft,
.ltx_eqn_right_padright { min-width:2em; }
.ltx_eqn_left_padright,
.ltx_eqn_right_padleft  { width:100%; }

/* Various lists */
.ltx_itemize,
.ltx_enumerate,
.ltx_description {
    display:block; }
.ltx_itemize .ltx_item,
.ltx_enumerate .ltx_item {
    display: list-item; white-space:nowrap; }

/* Position the tag to look like a normal item bullet. */
li.ltx_item > .ltx_tag {
    display:inline-block; margin-left:-1.5em; min-width:1.5em;
    text-align:right; }
.ltx_item .ltx_tag + .ltx_para {
    display:inline-block; vertical-align:top;}
.ltx_item .ltx_tag + .ltx_para .ltx_p  {
    display:inline; }
.ltx_item > .ltx_para > .ltx_p:first-child {
    text-indent:0em; }

.ltx_item > .ltx_para > .ltx_p { margin-top:0em; margin-bottom:0em; }
dd.ltx_item { margin-bottom:0.5em; }

/* NOTE: Need to try harder to get runin appearance? */
dl.ltx_description dt { margin-right:0.5em; float:left;
                        font-weight:bold; font-size:95%; }
dl.ltx_description dd { margin-left:5em; }
dl.ltx_description dl.ltx_description dd { margin-left:3em; }

/* Theorems */
.ltx_theorem  {margin:1em 0em 1em 0em; }
.ltx_title_theorem { font-size:100%; }

/* Bibliographies */
.ltx_bibliography dt { margin-right:0.5em; float:left; }
.ltx_bibliography dd { margin-left: clamp(1em, 4.5%, 3em); }
/*.ltx_biblist { list-style-type:none; }*/
.ltx_bibitem { list-style-type:none; }
.ltx_bibitem .ltx_tag { font-weight:bold; margin-left:-2em; width:3em; }
/*.bibitem-tag + div { display:inline; }*/
.ltx_bib_title { font-style:italic; }
.ltx_bib_article .bib-title { font-style:normal !important; }
.ltx_bib_journal  { font-style:italic; }
.ltx_bib_volume { font-weight:bold; }

/* Indices */
.ltx_indexlist li { list-style-type:none;  }
.ltx_indexlist { margin-left:1em; padding-left:1em;}

/* Listings */
.ltx_listing {
    display:block;
    margin: 1ex 3em 1ex 0em;
    overflow-x:auto;
    text-align: left; }
/* An auto-height listing never overflows vertically, but the CSS Overflow spec
   promotes overflow-y:visible -> auto whenever overflow-x scrolls, which paints a
   phantom vertical scrollbar (algorithm2e listings, witness 2002.09766). Pin it
   hidden. lstlisting is exempt (its framed box may scroll on purpose). Mirrors the
   ar5iv.css fix. */
.ltx_listing:not(.ltx_lstlisting) { overflow-y:hidden; }
.ltx_float .ltx_listing {
    margin: 0; }
/* A full-line leader-fill separator (\hbox to \hsize{\dashfill\hfil}) is a width:100%
   inline-block wrapping an .ltx_leader; the engine marks it .ltx_leaderfill. Two of them
   flank a centered label on ONE nowrap listingline; as inline-blocks they lay side-by-side
   and sum to >200% width, overflowing the listing (witness 1510.02728). Make each own its
   line so they stack like the pdflatex golden. OXIDIZED_DESIGN #152. */
.ltx_inline-block.ltx_leaderfill { display:block; }
.ltx_listingline { white-space:nowrap; min-height:1em; }
.ltx_lst_space { white-space: pre; }
.ltx_lst_numbers_left .ltx_listingline .ltx_tag {
    background-color:transparent;
    margin-left:-3em; width:2.5em;
    position:absolute;
    text-align:right; }
.ltx_lst_numbers_right .ltx_listingline .ltx_tag {
    background-color:transparent;
    width:2.5em;
    position:absolute; right:3em;
    text-align:right; }
/*
    position:absolute; left:0em;
    max-width:0em; text-align:right; }
*/
.ltx_parbox {
    text-indent:0em !important;
    display: inline-block; }

/* NOTE that it is CRITICAL to put position:relative outside & absolute inside!!
   I wish I understood why!
   Outer box establishes resulting size, neutralizes any outer positioning, etc;
   inner establishes position of stuff to be rotated */
.ltx_transformed_outer {
    position:relative; bottom:0pt;left:0pt;
    overflow:visible; }
.ltx_transformed_inner {
    display:block;
    position:absolute;bottom:0pt;left:0pt; }
.ltx_inline-block > .ltx_para > .ltx_p:first-child,
.ltx_logical-block > .ltx_para > .ltx_p:first-child,
.ltx_inline-logical-block > .ltx_para > .ltx_p:first-child {
    text-indent:0em; }
.ltx_transformed_inner > .ltx_p {text-indent:0em; margin:0; padding:0; }

/* If simulating a table (html5), try to get rowspan to work...sorta? */
span.ltx_tabular { position:relative; }
span.ltx_rowspan { position:absolute; top:0; bottom:0; }

/* by default, p doesn't indent */
.ltx_p { text-indent:0em; white-space:normal; }
/* explicit control of indentation (on ltx_para) */
.ltx_indent > .ltx_p:first-child { text-indent:2em!important; }
.ltx_noindent > .ltx_p:first-child { text-indent:0em!important; }

/*======================================================================
  Columns */
.ltx_page_columns {
    display: flex; }
.ltx_page_column1,
.ltx_page_column2 {
    flex:100%;
    margin: 0 20px;
 }
@media screen and (max-width: 60em){
  .ltx_page_columns {
     flex-direction: column; }
  .ltx_page_column1 > ul,
  .ltx_page_column1 > ol,
  .ltx_page_column1 > dl {
     margin-bottom: 0; }
  .ltx_page_column2 > ul,
  .ltx_page_column2 > ol,
  .ltx_page_column2 > dl {
     margin-top: 0; }
}

/*======================================================================
 Borders and such */
.ltx_tabular { display:inline-table; border-collapse:collapse; }
.ltx_tabular.ltx_centering { display:table; }
.ltx_thead,
.ltx_tfoot,
.ltx_tbody   { display:table-row-group; }
.ltx_tr      { display:table-row; }
.ltx_td,
.ltx_th      { display:table-cell; }

.ltx_tabular .ltx_td,
.ltx_tabular .ltx_th { padding:0.1em 0.5em; }
.ltx_tabular .ltx_td.ltx_nopad_l,
.ltx_tabular .ltx_th.ltx_nopad_l { padding-left:0; }
.ltx_tabular .ltx_td.ltx_nopad_r,
.ltx_tabular .ltx_th.ltx_nopad_r { padding-right:0; }

/* min-height does NOT apply to tr! */
.ltx_tabular .ltx_tr td:first-child::after,
.ltx_tabular .ltx_tr th:first-child::after {
   content: "";
   display: inline-block;
   vertical-align: top;
   min-height: 1em;
}


/* regular lines */
.ltx_border_t  { border-top:1px solid black; }
.ltx_border_r  { border-right:1px solid black; }
.ltx_border_b  { border-bottom:1px solid black; }
.ltx_border_l  { border-left:1px solid black; }
/* double lines */
.ltx_border_tt { border-top:3px double black; }
.ltx_border_rr { border-right:3px double black; }
.ltx_border_bb { border-bottom:3px double black; }
.ltx_border_ll { border-left:3px double black; }
/* Light lines */
.ltx_border_T  { border-top:1px solid gray; }
.ltx_border_R  { border-right:1px solid gray; }
.ltx_border_B  { border-bottom:1px solid gray; }
.ltx_border_L  { border-left:1px solid gray; }
/* Framing */
span.ltx_framed       { display:inline-block; text-indent:0; } /* avoid padding/margin collapse */
.ltx_framed_rectangle { border-style:solid; border-width:1px; }
.ltx_framed_top       { border-top-style:solid; border-top-width:1px; }
.ltx_framed_left      { border-left-style:solid; border-left-width:1px; }
.ltx_framed_right     { border-right-style:solid; border-right-width:1px; }
.ltx_framed_bottom,
.ltx_framed_underline { border-bottom-style:solid; border-bottom-width:1px; }
.ltx_framed_topbottom { border-top-style:solid; border-top-width:1px;
                        border-bottom-style:solid; border-bottom-width:1px; }
.ltx_framed_leftright { border-left-style:solid; border-left-width:1px;
                        border-right-style:solid; border-right-width:1px; }

.ltx_rule { vertical-align: bottom; height: 0.4pt; width: 0.4pt; }

.ltx_underline { text-decoration: underline; }
.ltx_overline  { text-decoration: overline; }

/*======================================================================
 Misc */
/* .ltx_verbatim*/
.ltx_verbatim { text-align:left; white-space:nowrap; }
/*======================================================================
 Meta stuff, footnotes */
.ltx_note_content { display:none; }
/*right:5%;  */
.ltx_note_content {
     max-width: 70%; font-size:90%; left:15%;
     text-align:left;
     background-color: white;
     padding: 0.5em 1em 0.5em 1.5em;
     border: 1px solid black; border-radius: 0 5px 5px 5px; box-shadow: 5px 5px 10px gray; }
.ltx_note_mark    { color:blue; }
.ltx_note_type    { font-weight: bold; }
.ltx_note { display:inline-block; text-indent:0; } /* So we establish containing block */
.ltx_note_content .ltx_note_mark { position:absolute; left:0.2em; top:-0.1em; }
.ltx_note:hover .ltx_note_content,
.ltx_note .ltx_note_content:hover {
   display:block; position:absolute; z-index:10; }
.ltx_note.ltx_marginpar_left { display:none; }

.ltx_ERROR        { color:red; }
.ltx_rdf          { display:none; }
.ltx_missing      { color:red;}
.ltx_nounicode    { color:red; }
.ltx_nodisplay    { display:none; }
/*======================================================================
 SVG (pgf/tikz & xy) basics
 */
/* Heuristically adjust for content uncentered within line-box */
foreignObject {
    translate: 0 0.1em;
    --ltx-fo-width: 100%; }
/* Use flex to vertically center foreignObject,
   to accommodate potentially tall line-box */
.ltx_foreignobject_container {
    display:flex;
    align-items:center;
    height:100%;
    width:var(--ltx-fo-width);
}
/* Also horizontally for single math, since Chrome adds a lot of left/right spacing. */
.ltx_foreignobject_container:has( > .ltx_foreignobject_content > math:only-child) {
    justify-content:center;
}
/* If multiple children, give more space to avoid unexpected line breaks
   due to font differences. */
.ltx_foreignobject_container:has( > .ltx_foreignobject_content > :not(:only-child)) {
    width:calc(1.1 * var(--ltx-fo-width));
}
/* latexml-oxide local delta (not in vanilla LaTeXML.css): a minipage in the
   content = a measured box's upper part (tcolorbox et al. wrap box content in
   \minipage; picture labels never do). TeX fills such boxes from the top, so any
   estimator slack must fall BELOW the text; centering splits it into a fake empty
   band above (arXiv 2605.02240). */
.ltx_foreignobject_container:has( > .ltx_foreignobject_content > .ltx_minipage) {
    align-items:start;
}
/* latexml-oxide local delta (not in vanilla LaTeXML.css; issue #473): TeX puts
   \abovedisplayskip/\belowdisplayskip glue (~1em of the body font) around
   displayed math, but vanilla's display containers carry no margin, so two
   adjacent displays render touching. 1em collapses with the UA's 1em <p>
   margins through the ltx_para wrappers, keeping text<->display and
   display<->display gaps uniform (no doubling next to text). */
.ltx_eqn_table, .ltx_eqn_div { margin-top:1em; margin-bottom:1em; }
/* latexml-oxide local delta (not in vanilla LaTeXML.css; issue #533): display
   math is a `.ltx_eqn_table { display:table; width:100% }` whose center-pad
   cells stretch it to full width. Inside a width-constrained box — a `p{}` cell
   / \parbox / minipage (.ltx_inline-block) or a table cell (.ltx_td) — the
   table's intrinsic width exceeds the box, and since `overflow` is ignored on
   `display:table`, the equation ESCAPES the cell and scatters across the page
   (lualatex keeps it in the cell). Re-box it as a block scroll container so it
   stays within the cell and scrolls horizontally when too wide — the same
   containment `.ltx_listing` already uses for code. Normal full-width display
   math keeps `display:table` (untouched); this rule fires only under a
   constrained ancestor. Witness: the issue #533 longtable `p{}` cell with an
   enumerate whose items hold `\[\begin{aligned}…\end{aligned}\]`. */
.ltx_inline-block .ltx_eqn_table,
.ltx_td .ltx_eqn_table { display:block; overflow-x:auto; max-width:100%; }
/* latexml-oxide local delta (not in vanilla LaTeXML.css; issue #431): vanilla's
   `.ltx_verbatim { white-space:nowrap }` (kept above) overrides the UA `pre`
   rule, so a plain {verbatim} <pre> collapses to ONE line, and fancyvrb's
   per-line spans lose their leading indentation and runs of spaces. `pre`
   keeps nowrap's no-wrapping and preserves them all. */
.ltx_verbatim { white-space:pre; }
/* fancyvrb typesets each source line as a width-limited box — a span with
   ltx_text + ltx_verbatim + ltx_inline-block (\FancyVerbFormatLine binding
   hack) — and inline-blocks flow side-by-side in a wide window. One source
   line per row; blank source lines keep a line's height; the enclosing
   paragraph's text-indent must not shift lines. Only fancyvrb lines carry
   ltx_verbatim on an inline-block text span — inline \verb is a <code>
   without ltx_inline-block, so it is untouched. */
.ltx_text.ltx_verbatim.ltx_inline-block { display:block; text-indent:0; min-height:1lh; }
/* latexml-oxide local delta (not in vanilla LaTeXML.css; issue #525): a
   fancyvrb `frame=single` box (emitted by fancyvrb_sty.rs as an
   ltx_framed_rectangle carrying this class) spans the print \linewidth
   (~460px). Being a shrink-to-fit inline-block of non-wrapping verbatim lines,
   on a phone viewport it would push its right border off-screen and scroll the
   whole page. Cap it at the viewport and scroll over-long lines WITHIN the box
   (the containment .ltx_listing uses for code, OXIDIZED_DESIGN #110); border-box
   keeps the border+padding inside the cap. Desktop/tablet render at \linewidth
   unchanged. */
.ltx_framed_verbatim { max-width:100%; overflow-x:auto; box-sizing:border-box; }
/* latexml-oxide local delta (not in vanilla LaTeXML.css; issue #702): fvextra
   `breaklines=true` on a framed verbatim carries this marker class (emitted by
   fancyvrb_sty.rs off `\ifFV@breaklines`), the stable hook for styling a wrapping
   verbatim apart from a non-wrapping one. fvextra wraps via a fixed print-width
   `\parbox` (~\linewidth), which on a narrow viewport would overflow and scroll
   horizontally — defeating the point of breaklines. Cap that inner parbox at the
   box width so the text reflows to fit; desktop (wide box) is unchanged. Scoped
   to `.ltx_break`, so the non-wrapping frame box keeps its scroll-over behaviour. */
.ltx_framed_verbatim.ltx_break .ltx_parbox { max-width:100%; }
/* line height 0 just for this layer, to keep the line-box compact */
.ltx_foreignobject_content {
    display:block;
}
/* Stuff appearing in svg:foreignObject */
.ltx_svg_fog foreignObject  { margin:0; padding:0; overflow:visible; }
.ltx_svg_fog foreignObject > p { margin:0; padding:0; display:block; }

/*======================================================================
 Low-level Basics */
/* Note that LaTeX(ML)'s font model doesn't map quite exactly to CSS's */
/* Font Families => font-family */
.ltx_font_serif      { font-family: serif; }
.ltx_font_sansserif  { font-family: sans-serif; }
.ltx_font_typewriter { font-family: monospace; }
/* dingbats should be converted to unicode? */
/* Math font families handled within math: script, symbol, fraktur, blackboard ? */
/* Font Series => font-weight */
.ltx_font_bold       { font-weight: bold; }
.ltx_font_medium     { font-weight: normal; }
/* Font Shapes => font-style or font-variant */
.ltx_font_italic     { font-style: italic; font-variant:normal; }
.ltx_font_upright    { font-style: normal; font-variant:normal; }
.ltx_font_slanted    { font-style: oblique; font-variant:normal; }
.ltx_font_smallcaps  { font-variant: small-caps; font-style:normal; }
.ltx_font_oldstyle   { font-variant-numeric: oldstyle-nums; }
.ltx_font_mathcaligraphic { font-family: "Lucida Calligraphy", "Zapf Chancery","URW Chancery L"; }
/* Fallbacks for when content+mathvariant cannot be mapped to Unicode */
.ltx_mathvariant_italic        { font-style: italic; }
.ltx_mathvariant_bold          { font-weight: bold; }
.ltx_mathvariant_bold-italic   { font-style: italic; font-weight: bold; }
.ltx_mathvariant_sans-serif             { font-family: sans-serif; }
.ltx_mathvariant-bold-sans-serif        { font-family: sans-serif; font-weight: bold; }
.ltx_mathvariant-sans-serif-italic      { font-family: sans-serif; font-style: italic; }
.ltx_mathvariant-bold-sans-serif-italic { font-family: sans-serif; font-style: italic; font-weight: bold; }
.ltx_mathvariant_monospace     { font-family: monospace; }
/* Can we say anything generic about double-struck, script or fraktur ? */
.ltx_mathvariant_double-struck { font-weight: bold; }
.ltx_mathvariant_script        { font-family: "Lucida Calligraphy", "Zapf Chancery","URW Chancery L", cursive; }
.ltx_mathvariant_bold-script   { font-family: "Lucida Calligraphy", "Zapf Chancery","URW Chancery L", cursive; font-weight: bold; }
.ltx_mathvariant-fraktur       { }/* ??? */
.ltx_mathvariant_bold-fraktur  { font-weight: bold; }

/*

.ltx_font_mathscript { ? }
*/
cite                 { font-style: normal; }

.ltx_red        { color:red; }
/*.ltx_centering  { text-align:center; margin:auto; }*/
/*.ltx_inline-block.ltx_centering,*/
/* Hmm.... is this right in general? */
.ltx_centering  { display:block; margin:auto; text-align:center; }

/* Dubious stuff */
.ltx_hflipped {
    display:inline-block;
    transform: scaleX(-1); }
.ltx_vflipped {
    display:inline-block;
    transform: scaleY(-1); }

/* .ltx_phantom handled in xslt */

.ltx_minipage {
  align-self: normal;
  display: inline-block;
  text-align: justify;
}
.ltx_minipage > .ltx_graphics {
  max-width:100%;
  height:auto; /* #2392: preserve the emitted aspect-ratio when the width is capped */
}
/* arXiv/html_feedback#6895: \scalerel*{obj}{ref} scales obj to ref's (text) height.
   The scalerel binding wraps obj in .ltx_scalerel; size the box to the line height
   and let its child (an SVG/picture/rule) fill it, so a picture-based inline icon
   (e.g. \orcidicon) renders as a text-height glyph instead of its unscaled size. */
.ltx_scalerel { display:inline-block; height:1em; vertical-align:-0.1em; }
.ltx_scalerel .ltx_inline-block { height:100%; }
.ltx_scalerel svg, .ltx_scalerel img { height:100%; width:auto; }

/* The ORCID iD logo (a `\lx@orcidlogo` SVG, shared by \lx@add@orcid and
   \orcidlink) renders as a text-height inline glyph. It used to be an oversized
   1.7em badge that overflowed the line (html_feedback #6895, #6016, #5789, #2176,
   #5615). #6571 &c. */
.ltx_orcidlogo { height:1em; width:1em; vertical-align:-0.15em; }
/* Author name + ORCID iD badge on one line ("Name  iD"): the badge is a sibling of
   the name inside this thin inline wrapper (not in the author-notes group). The
   name shrinks to its text so the badge sits right after it. */
.ltx_annotated_personname {
  display:inline-flex; flex-wrap:wrap; align-items:baseline;
  justify-content:center; column-gap:0.35em; }
.ltx_annotated_personname > .ltx_personname { min-width:0; }

.ltx_overlay {position:relative; }
.ltx_overlay > span:nth-child(2) {position:absolute; left:0; }

/* Apply light/dark color mode themes */
@media (prefers-color-scheme: light) {
  [style*="--ltx-fg-color:"] {
    color: var(--ltx-fg-color);
  }
  [style*="--ltx-bg-color:"] {
    background-color: var(--ltx-bg-color);
  }
  [style*="--ltx-border-color:"] {
    border-color: var(--ltx-border-color);
  }
  [style*="--ltx-fill-color:"] {
    fill: var(--ltx-fill-color);
  }
  [style*="--ltx-stroke-color:"] {
    stroke: var(--ltx-stroke-color);
  }
}
@media (prefers-color-scheme: dark) {
  :root {
    background-color: black;
    color: white;
  }
  /* The :root rule does not appear to propagate color: into SVG foreignObject */
  .ltx_foreignobject_content {
    color: var(--fn-fg-color-to-dark-mode, white);
  }
  /* We eventually want to cover the full range of possible attributes where color
      customization is expected in latexml's HTML format. This will be easier once
      CSS @function becomes widely available in browsers.

    Emulate a "function" via a custom property, declared on each node of interest.
    Note that we may have multiple color properties set at the same time, for example
    both foreground and background color, which could lead to a var naming collision.
    So we are carefully using different variable names. */ 
  [style*="color:"] {
    --fn-fg-color-to-dark-mode:
      hsl(from var(--ltx-fg-color)
        h s calc(100 - l));
    --fn-bg-color-to-dark-mode:
      hsl(from var(--ltx-bg-color)
        h s calc(100 - l));
    --fn-border-color-to-dark-mode:
      hsl(from var(--ltx-border-color)
        h s calc(100 - l));
    --fn-fill-color-to-dark-mode:
      hsl(from var(--ltx-fill-color)
        h s calc(100 - l));
    --fn-stroke-color-to-dark-mode:
      hsl(from var(--ltx-stroke-color)
        h s calc(100 - l));
  }
  /* Apply the function to the correct color property in context: */
  [style*="--ltx-fg-color:"] {
    color: var(--fn-fg-color-to-dark-mode); 
  }
  [style*="--ltx-bg-color:"] {
    background-color: var(--fn-bg-color-to-dark-mode);
  }
  [style*="--ltx-border-color:"] {
    border-color: var(--fn-border-color-to-dark-mode);
  }
  [style*="--ltx-fill-color:"] {
    fill: var(--fn-fill-color-to-dark-mode);
  }
  [style*="--ltx-stroke-color:"] {
    stroke: var(--fn-stroke-color-to-dark-mode);
  }
}
