:root {
  --md-primary-fg-color: #0066cc;
  --md-primary-bg-color: #1d1d1f;
  --md-primary-bg-color--light: #6e6e73;
  --md-accent-fg-color: #0066cc;
  --md-typeset-a-color: #0066cc;
  --md-text-font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Helvetica, Arial, sans-serif;
  --md-code-font: "SFMono-Regular", Consolas, monospace;
  --md-default-fg-color: #1d1d1f;
  --md-default-fg-color--light: #6e6e73;
}
body { background: #fff; -webkit-font-smoothing: antialiased; }
.md-header { background: rgba(250,250,252,.94); color:#1d1d1f; box-shadow:none; border-bottom:1px solid #e5e5e7; backdrop-filter:blur(20px); }
.md-header__topic { font-weight:600; letter-spacing:-.02em; }
.md-header__button.md-logo { display:block; padding:.2rem; margin-right:.55rem; }
.md-header__button.md-logo img { width:1.65rem; height:1.65rem; border-radius:4px; object-fit:contain; }
.md-search__form { background:#eeeeef; border-radius:9px; color:#1d1d1f; }
.md-search__input::placeholder { color:#6e6e73; }
.md-search__input + .md-search__icon { color:#6e6e73; }
.md-grid { max-width:1440px; }
.md-main__inner { margin-top:2.1rem; }
.md-typeset { font-size:.82rem; line-height:1.75; }
.md-typeset h1 { color:#1d1d1f; font-weight:700; font-size:2.35em; letter-spacing:-.045em; line-height:1.12; margin-bottom:.8em; }
.md-typeset h2 { font-weight:650; letter-spacing:-.025em; line-height:1.25; margin-top:2em; }
.md-typeset h3 { font-weight:620; letter-spacing:-.015em; }
.md-typeset .eyebrow { color:#6e6e73; font-size:.58rem; letter-spacing:.11em; font-weight:650; margin:0 0 .7rem; }
.home-intro { max-width:46rem; padding:0 0 1.6rem; }
.md-typeset .home-intro h1 { font-size:clamp(2rem, 4.3vw, 3.4rem); letter-spacing:-.055em; line-height:1.04; margin:.6rem 0 1.2rem; }
.md-typeset .lead { color:#6e6e73; font-size:1.25rem; line-height:1.35; letter-spacing:-.025em; font-weight:500; margin-bottom:1.5rem; }
.section-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:.5rem 0 1rem; }
.section-card, .player-strip { background:#f5f5f7; border-radius:18px; padding:1.6rem; }
.md-typeset .section-card h2, .md-typeset .player-strip h2 { margin:.3rem 0 .8rem; font-size:1.25rem; }
.section-card p, .player-strip p { margin:.6rem 0; }
.section-card > p:last-child, .player-strip > p:last-child { margin-top:1.1rem; }
.section-card a, .player-strip a { font-weight:600; }
.player-strip { margin-bottom:2.5rem; }
.md-typeset .admonition { box-shadow:none; border:1px solid #e5e5e7; border-radius:12px; background:#fafafa; font-size:.76rem; }
.md-typeset .admonition.abstract { border-color:#e5e5e7; }
.md-typeset .abstract > .admonition-title { background:#f5f5f7; color:#1d1d1f; border-radius:11px 11px 0 0; }
.md-typeset .abstract > .admonition-title::before { background-color:#6e6e73; }
.md-typeset table:not([class]) { font-size:.7rem; border:1px solid #e5e5e7; border-radius:10px; line-height:1.6; }
.md-typeset table:not([class]) th { background:#f5f5f7; color:#1d1d1f; font-weight:600; }
.md-typeset table:not([class]) td { border-top:1px solid #ededee; }
.md-typeset table:not([class]) tr:nth-child(even) { background:#fcfcfd; }
.md-typeset table:not([class]) tr:hover { background:#f5f9ff; }
.md-typeset a:hover { text-decoration:underline; text-underline-offset:3px; }
.md-nav { font-size:.67rem; line-height:1.5; }
.md-nav__title { color:#1d1d1f; background:transparent!important; box-shadow:none!important; }
.md-nav__item--section > .md-nav__link { color:#1d1d1f; font-weight:650; }
.md-nav__link--active { color:#0066cc!important; }
.md-nav__link:hover { color:#0066cc; }
.md-sidebar--primary .md-nav__item--section { margin-top:1.1rem; }
.pipeline { background:#f5f5f7; padding:.7rem 1.2rem; border-radius:12px; font-size:.74rem; }
.review-note { font-size:.65rem; color:#6e6e73; }
.md-footer { background:#f5f5f7; color:#6e6e73; }
.md-typeset hr { border-color:#e5e5e7; }
:focus-visible { outline:2px solid #0066cc; outline-offset:4px; }
@media (max-width:700px) {
 .section-cards { grid-template-columns:1fr; }
 .section-card,.player-strip { padding:1.3rem; }
 .md-typeset .home-intro h1 { font-size:2.3rem; }
 .md-typeset .lead { font-size:1.05rem; }
 .home-intro { padding-top:.5rem; }
}
@media print {
 .md-sidebar,.md-header,.md-footer { display:none; }
 .md-typeset { font-size:10pt; }
 .section-cards { display:block; }
 .section-card,.player-strip { break-inside:avoid; }
}

/* Keep text legible regardless of Material palette defaults. */
.md-typeset { color: #1d1d1f; }
.md-typeset a { color: #0066cc; }
.md-typeset h1, .md-typeset h2, .md-typeset h3 { color: #1d1d1f; }
.md-nav__link { color: #424245; }
.md-header, .md-header a, .md-header__button { color: #1d1d1f; }

/* One native link per card: its target covers the complete card. */
.section-card, .player-strip { position:relative; transition:background .15s ease, box-shadow .15s ease; }
.md-typeset .section-card h2 a, .md-typeset .player-strip h2 a { color:#1d1d1f; text-decoration:none; }
.section-card h2 a:not(.headerlink)::after, .player-strip h2 a:not(.headerlink)::after { content:""; position:absolute; inset:0; border-radius:18px; }
.section-card:hover, .player-strip:hover { background:#eaf2fb; box-shadow:0 0 0 1px #b7cfe8; }
.section-card:focus-within, .player-strip:focus-within { outline:2px solid #0066cc; outline-offset:3px; }
.capability-matrix { overflow:visible; margin:1rem 0; }
/* Scroll only in the table wrapper, so the first column stays put. */
.capability-matrix .md-typeset__scrollwrap { overflow-x:auto; }
/* Frozen header row (javascripts/matrix-head.js): a fixed copy of the header under the site header. */
.matrix-float-head { display:none; position:fixed; z-index:3; overflow:hidden; background:#f5f5f7; box-shadow:0 1px #ddd; }
.matrix-float-head table { table-layout:fixed; border-collapse:separate; border-spacing:0; margin:0; font-size:.7rem; line-height:1.6; }
.matrix-float-head th { background:#f5f5f7; color:#1d1d1f; font-weight:600; text-align:left; vertical-align:top; box-sizing:border-box; }
.matrix-float-head th:first-child { position:relative; z-index:1; box-shadow:1px 0 #ddd; }
.md-typeset .capability-matrix table:not([class]) { display:table; overflow:visible; }
.capability-matrix .md-typeset__scrollwrap { margin:0; }
.capability-matrix .md-typeset__table { padding:0; display:block; }
.capability-matrix table { min-width:2180px; }
.capability-matrix th:first-child, .capability-matrix td:first-child { position:sticky; left:0; background:#f5f5f7; z-index:1; min-width:170px; box-shadow:1px 0 #ddd; }
.md-typeset a.cap { display:inline-block; border-radius:6px; padding:.25rem .4rem; line-height:1.4; font-weight:500; text-decoration:underline; text-underline-offset:2px; }
.md-typeset a.cap.yes { background:#e2f3e8; color:#155b32; }
.md-typeset a.cap.partial { background:#fff1cc; color:#684800; }
.md-typeset a.cap.no { background:#fbe4e5; color:#8b252b; }
.md-typeset a.cap.unknown { background:#ededf0; color:#48484d; }
@media (prefers-reduced-motion:reduce) { .section-card,.player-strip { transition:none; } }

.section-card .headerlink, .player-strip .headerlink { display:none; }

.capability-matrix .platform-group { display:block; color:#6e6e73; font-size:.58rem; font-weight:500; margin-bottom:.15rem; }
.capability-matrix tbody tr:nth-child(-n+3) td:first-child { border-left:3px solid #9bb9db; background:#eef3f9; }


/* Visible source markers; targets stay readable below the sticky header. */
.cap .source-number { margin-left: .35em; font-size: .72em; text-decoration: none; }
.build-note { white-space: nowrap; }
.matrix-source-notes { font-size: .78rem; line-height: 1.6; }
.matrix-source-note { padding: .65rem .8rem; border-bottom: 1px solid #e5e5e7; scroll-margin-top: 5rem; }
.matrix-source-note:target { background: #edf5ff; border-radius: .4rem; }

/* Quiet desktop section tabs; Material retains its mobile drawer. */
.md-tabs { background:#fafafc; color:#424245; border-bottom:1px solid #e5e5e7; }
.md-tabs__link { color:#424245; opacity:1; }
.md-tabs__item--active .md-tabs__link { color:#0066cc; }

/* Top tabs only: no side navigation or page contents beside the text.
   Below 76.25em Material hides the tabs, so the menu drawer stays for small screens. */
.md-sidebar--secondary, .md-sidebar--secondary:not([hidden]) { display:none; }
@media screen and (min-width:76.25em) {
 .md-sidebar--primary, .md-sidebar--primary:not([hidden]) { display:none; }
}
/* One column for header, tabs and text: same left and right edge throughout. */
@media screen and (min-width:76.25em) {
 .md-grid { max-width:66.4rem; padding:0 .84rem; box-sizing:content-box; }
 .md-header__inner { padding-left:.84rem; padding-right:.84rem; }
 .md-header__title, [dir=ltr] .md-header__title { margin-left:0; margin-right:.4rem; }
 .md-tabs__list, [dir=ltr] .md-tabs__list { margin-left:0; }
 .md-tabs__item:first-child, [dir=ltr] .md-tabs__item:first-child { padding-left:0; }
 .md-content > .md-content__inner { margin-left:0 !important; margin-right:0 !important; }
}

/* Other pages of a section, listed at the end of its first page. */
.section-more { margin-top:2.5rem; padding-top:1rem; border-top:1px solid #e5e5e7; }
.md-typeset .section-more h2 { margin-top:0; font-size:1.05rem; }

/* Column headings link to explanations without looking like coloured badges. */
.md-typeset .capability-matrix th a.col-link { color:inherit; text-decoration:none; }
.md-typeset .capability-matrix th a.col-link:hover, .md-typeset .capability-matrix th a.col-link:focus-visible { color:#0066cc; text-decoration:underline; text-underline-offset:3px; }

/* Keep the search field inside the header column. */
.md-search__input, .md-search__suggest { box-sizing:border-box; }

/* Comfortable single-column reading; the comparison keeps its full-width table. */
.md-content > .md-content__inner {
  max-width: 76ch;
  margin-left: auto !important;
  margin-right: auto !important;
}
.md-content > .md-content__inner:has(.home-intro) { max-width: 980px; }
.md-content > .md-content__inner:has(.capability-matrix) { max-width: none; }
.md-content__inner:has(.capability-matrix) > :not(.capability-matrix):not(h1):not(span) {
  max-width: 76ch;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 44.99em) {
  .md-content > .md-content__inner {
    margin-left: .8rem !important;
    margin-right: .8rem !important;
  }
}

/* Shared reading measure aligns the header, section menu and article edges. */
:root { --wiki-reading-width: 760px; }
.md-header__button.md-logo img { border-radius:50%; }
@media screen and (min-width: 60em) {
  .md-grid {
    width:calc(100% - 48px);
    max-width:var(--wiki-reading-width);
    padding-left:0;
    padding-right:0;
    box-sizing:border-box;
  }
  .md-header__inner { padding-left:0; padding-right:0; }
  .md-header__button.md-logo { margin-left:0; }
  .md-content > .md-content__inner,
  .md-content > .md-content__inner:has(.home-intro) {
    max-width:none;
    margin-left:0 !important;
    margin-right:0 !important;
  }
  .md-content__inner:before { display:none; }
  .md-tabs__list { margin-left:0 !important; }
  .md-tabs__item { padding-left:.65rem; padding-right:.65rem; }
  .md-tabs__item:first-child { padding-left:0; }
  .md-search { max-width:180px; }
  body:has(.capability-matrix) .md-main__inner.md-grid {
    max-width:none;
  }
  .md-content__inner:has(.capability-matrix) > :not(.capability-matrix):not(h1):not(span) {
    max-width:var(--wiki-reading-width);
  }
}

/* Section numbers (1, 1.1, …) on article pages, not on the home page */
.md-content__inner:not(:has(.home-intro)) { counter-reset: h2; }
.md-content__inner:not(:has(.home-intro)) > h2 { counter-increment: h2; counter-reset: h3; }
.md-content__inner:not(:has(.home-intro)) > h3 { counter-increment: h3; }
.md-content__inner:not(:has(.home-intro)) > h2::before { content: counter(h2); }
.md-content__inner:not(:has(.home-intro)) > h3::before { content: counter(h2) "." counter(h3); }
.md-content__inner:not(:has(.home-intro)) > h2::before,
.md-content__inner:not(:has(.home-intro)) > h3::before { color:#86868b; font-weight:500; font-variant-numeric:tabular-nums; margin-right:.6em; }

/* No branding mark in the page header or mobile navigation. */
.md-header__button.md-logo, .md-nav__button.md-logo { display:none; }

/* GitHub-style heading permalinks: a link icon appears to the left of a heading on hover;
   clicking it updates the address bar to that heading. */
.md-typeset :is(h1, h2, h3, h4, h5, h6)[id] { position:relative; }
.md-typeset .headerlink {
  position:absolute; left:-1.5rem; top:50%; transform:translateY(-50%);
  width:1rem; height:1rem; margin:0; font-size:0; opacity:0;
  background-color:var(--md-default-fg-color--light);
  -webkit-mask:var(--heading-link-icon) center / contain no-repeat;
          mask:var(--heading-link-icon) center / contain no-repeat;
  --heading-link-icon:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"/></svg>');
}
.md-typeset :is(h1, h2, h3, h4, h5, h6)[id]:hover .headerlink,
.md-typeset .headerlink:focus { opacity:1; }
.md-typeset .headerlink:hover { background-color:var(--md-accent-fg-color); }
@media screen and (max-width: 44.9375em) {
  .md-typeset .headerlink { left:-.8rem; width:.7rem; height:.7rem; }
}

/* Keep stretched homepage links anchored to the whole card, not its heading. */
.md-typeset .section-card h2[id],
.md-typeset .player-strip h2[id] { position:static; }
