html:root, html:root[data-theme] { --type-reading-size: 1rem; }
.article-surface {
  width: 100%;
  max-width: 80rem;
  margin-inline: auto;
  color: hsl(var(--foreground));
  font-family: var(--font-body-family);
}

.article-breadcrumbs-static {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
  font-size: var(--type-label-size);
  line-height: 1.5;
  color: hsl(var(--muted-foreground));
}

.article-breadcrumbs-static a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.article-surface .article-body-content :is(h2, h3, h4)[id] {
  scroll-margin-top: 6rem;
}

.article-surface--news {
  max-width: none;
  padding-bottom: clamp(3rem, 7vw, 6rem);
}

.article-preview-notice {
  max-width: var(--content-measure);
  margin: 1rem auto 2rem;
  padding: 1rem;
  border: 1px solid hsl(var(--solar));
  border-radius: var(--radius);
  background: hsl(var(--card));
  color: hsl(var(--foreground));
  font-size: var(--type-label-size);
  line-height: var(--leading-label);
}

.article-preview-notice strong {
  color: hsl(var(--solar));
}

.article-header {
  max-width: var(--content-measure);
  margin-inline: auto;
  padding-block: clamp(1.5rem, 5vw, 3rem) 2rem;
  border-bottom: 1px solid hsl(var(--border));
}

.article-header--news {
  max-width: 76rem;
  padding: clamp(1.5rem, 4vw, 3.5rem) clamp(1rem, 3vw, 2rem) 2rem;
  border-bottom: 0;
}

.article-header--reading {
  padding-bottom: 1rem;
  border-bottom: 0;
}

.article-header--reading > * {
  grid-column: 1 / -1;
  min-width: 0;
}

.article-back-link {
  display: inline-flex;
  min-height: var(--control-min-size);
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
  color: hsl(var(--muted-foreground));
  font-size: var(--type-label-size);
  font-weight: 600;
  text-decoration: none;
}

.article-back-link svg {
  width: 1rem;
  height: 1rem;
  flex: 0 0 auto;
}

.article-back-link:hover,
.article-back-link:focus-visible {
  color: hsl(var(--primary));
}

.article-title {
  max-width: 24ch;
  margin: 0 auto;
  color: hsl(var(--foreground));
  font-family: var(--font-heading-family);
  font-size: clamp(2.25rem, 5vw, 3.75rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.025em;
  text-align: center;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

.article-surface--news .article-title {
  max-width: none;
  margin-inline: 0;
  font-size: clamp(2.25rem, 4vw, 3.75rem);
  line-height: 1.05;
  text-align: left;
}

.article-deck {
  max-width: 54rem;
  margin: 1.25rem auto 0;
  color: hsl(var(--muted-foreground));
  font-size: clamp(1rem, 2vw, 1.2rem);
  line-height: 1.65;
  text-align: center;
  text-wrap: pretty;
}

.article-surface--news .article-deck {
  max-width: none;
  margin-inline: 0;
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  text-align: left;
}

.article-header--reading .article-title {
  max-width: none;
  margin-inline: 0;
  font-size: clamp(2.25rem, 4vw, 3.75rem);
  text-align: left;
}

.article-header--reading .article-deck {
  max-width: 52rem;
  margin-inline: 0;
  font-size: clamp(1.125rem, 2vw, 1.25rem);
  text-align: left;
}

.article-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem 0.6rem;
  margin-top: 1rem;
  color: hsl(var(--muted-foreground));
  font-size: var(--type-label-size);
  font-weight: 500;
  line-height: var(--leading-label);
}

.article-updated {
  flex-basis: 100%;
  text-align: center;
}

.article-tools {
  --article-tool-size: clamp(2rem, calc(1.5rem + 1.25vw), 2.75rem);
  --article-tool-font: clamp(.75rem, calc(.65rem + .25vw), .875rem);
  --article-tool-icon: clamp(.875rem, calc(.7rem + .4vw), 1.125rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.5rem;
}

.article-tools [data-tag-filter] {
  min-width: 0;
}

.article-tools [data-tag-filter] a {
  position: relative;
  min-height: var(--article-tool-size);
  max-width: 100%;
  padding-inline: clamp(.5rem, 1.2vw, .75rem) !important;
  font-size: var(--article-tool-font);
  white-space: normal;
  overflow-wrap: anywhere;
}

.article-tools .article-share-group :is(button, .article-share-button),
.article-tools .article-share-group .astro-social-share a {
  position: relative;
  width: var(--article-tool-size);
  height: var(--article-tool-size);
  flex-shrink: 0;
}

.article-tools .article-share-group svg {
  width: var(--article-tool-icon);
  height: var(--article-tool-icon);
}

/* Keep a 44px touch target around the compact visual control. */
@media (pointer: coarse) {
  .article-tools [data-tag-filter],
  .article-tools .article-share-group {
    gap: .75rem;
  }

  .article-tools :is(a, button)::after {
    content: "";
    position: absolute;
    inset: 50% auto auto 50%;
    width: 100%;
    height: 100%;
    min-width: 44px;
    min-height: 44px;
    transform: translate(-50%, -50%);
  }
}

.article-sharing {
  flex: 0 0 auto;
}

/* One quiet article menu alongside the tags, with the existing Fay tokens. */
.article-header--reading .article-tools.article-tools--actions { flex-direction: row; flex-wrap: nowrap; align-items: flex-start; gap: .75rem; }
.article-tools--actions [data-tag-filter] { flex: 1; }

.article-header--reading .article-meta {
  justify-content: flex-start;
  margin-top: 1.25rem;
}

.article-header--reading .article-meta > a {
  display: inline-flex;
  align-items: center;
  min-height: var(--control-min-size);
}

.article-header--reading .article-updated {
  text-align: left;
}

.article-header--reading .article-tools {
  flex-wrap: wrap;
  margin-top: 1.25rem;
}

.article-prose {
  max-width: var(--content-measure);
  margin-inline: auto;
  padding-block: 2.5rem;
}

.article-prose .article-example {
  margin-block: var(--article-space-block, 1.5rem) 0;
  padding: clamp(1rem, 2vw, 1.5rem);
  border: 1px solid hsl(var(--border));
  border-radius: .75rem;
  background-color: hsl(var(--muted) / .35);
}

.article-prose .article-example__label {
  margin: 0 0 .75rem;
  color: hsl(var(--muted-foreground));
  font-size: .875rem;
  font-weight: 600;
  text-align: start;
}

.article-prose .article-example__body {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: inherit;
  font-style: normal;
}

.article-prose .article-example__body > :first-child {
  margin-top: 0;
}

.article-prose .article-example--document {
  margin-block: 2rem;
  padding: 0;
  border-radius: 16px;
  background: hsl(var(--card));
  overflow-wrap: anywhere;
  scroll-margin-top: 6rem;
}

.article-prose .article-example--document .article-example__label {
  display: flex;
  align-items: flex-start;
  gap: .875rem;
  margin: 0;
  padding: 1.5rem 1.75rem;
  border-bottom: 1px solid hsl(var(--border));
  color: hsl(var(--foreground));
}

.article-example--document .article-example__label > svg {
  flex: none;
  margin-top: .125rem;
}

.article-example--document .article-example__heading {
  display: grid;
  gap: .375rem;
  min-width: 0;
}

.article-example--document .article-example__title {
  font-family: var(--font-heading-family);
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.4;
  text-wrap: balance;
}

.article-example--document .article-example__description {
  color: hsl(var(--muted-foreground));
  font-size: .875rem;
  font-weight: 400;
  line-height: 1.5;
}

.article-prose .article-example--document .article-example__body {
  padding: 1.5rem 1.75rem 1.75rem;
  color: hsl(var(--foreground));
  font-family: var(--font-body-family);
  font-size: var(--type-reading-size);
  line-height: 1.75;
}

.article-example--document .article-example__body > * {
  margin-block: 1em 0;
}

.article-example--document .article-example__body > :first-child {
  margin-top: 0;
}

@media (max-width: 40rem) {
  .article-prose .article-example--document .article-example__label {
    padding: 1.25rem;
    gap: .75rem;
  }
  .article-prose .article-example--document .article-example__body {
    padding: 1.25rem;
  }
}

@media print {
  .article-prose .article-example--document {
    background: transparent;
  }
  .article-example--document .article-example__label {
    break-after: avoid;
  }
}

/* shadcn/ui Table treatment for static Markdown article tables. */
:is(.article-prose, .course-lesson__content) .typeset-scroll {
  position: relative;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
}

:is(.article-prose, .course-lesson__content) .typeset-scroll:focus-visible {
  outline: 2px solid hsl(var(--ring));
  outline-offset: 4px;
}

:is(.article-prose, .course-lesson__content) table {
  width: 100%;
  min-width: 42rem;
  max-width: none;
  border-collapse: collapse;
  border-spacing: 0;
  border: 0;
  font-size: .875rem;
  line-height: 1.5;
  caption-side: bottom;
}

:is(.article-prose, .course-lesson__content) table tr {
  border-bottom: 1px solid hsl(var(--border));
  transition: background-color 150ms ease-out;
}

:is(.article-prose, .course-lesson__content) table tbody tr:last-child {
  border-bottom: 0;
}

:is(.article-prose, .course-lesson__content) table tbody tr:hover {
  background-color: hsl(var(--muted) / .5);
}

:is(.article-prose, .course-lesson__content) table :is(th, td) {
  padding: .5rem;
  border: 0;
  text-align: start;
  vertical-align: middle;
  white-space: normal;
  overflow-wrap: break-word;
}

:is(.article-prose, .course-lesson__content) table thead th {
  height: 2.5rem;
  color: hsl(var(--foreground));
  font-weight: 500;
}

:is(.article-prose, .course-lesson__content) table tfoot {
  border-top: 1px solid hsl(var(--border));
  background-color: hsl(var(--muted) / .5);
  font-weight: 500;
}

:is(.article-prose, .course-lesson__content) table caption {
  margin-top: 1rem;
  color: hsl(var(--muted-foreground));
  font-size: .875rem;
}

@media (prefers-reduced-motion: reduce) {
  :is(.article-prose, .course-lesson__content) table tr { transition: none; }
}

/* Reading progress: a single animated line fixed directly below the 64px header. */
.article-reading-progress-shell {
  position: fixed;
  z-index: 49;
  top: 4rem;
  right: 0;
  left: 0;
  height: 0.25rem;
  background: hsl(var(--border) / 0.38);
  box-shadow: 0 1px 0 hsl(var(--background) / 0.8);
}

.article-reading-progress__bar {
  height: 100%;
  border-radius: 0;
  background: transparent;
}

.article-reading-progress__bar [data-slot="progress-indicator"] {
  border-radius: 0;
  background: linear-gradient(
    90deg,
    hsl(var(--secondary)),
    hsl(var(--primary))
  );
  box-shadow: 0 0 0.75rem hsl(var(--primary) / 0.28);
}

.article-context-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  min-width: 0;
  align-items: center;
  gap: 1rem;
  margin-bottom: clamp(1.5rem, 4vw, 2.5rem);
}

.article-breadcrumb-shell,
.article-breadcrumb-list {
  min-width: 0;
}

.article-breadcrumb-list {
  flex-wrap: nowrap;
  overflow: hidden;
}

.article-breadcrumb-list > li {
  animation: article-breadcrumb-enter 360ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.article-breadcrumb-list > li:nth-child(2) {
  animation-delay: 35ms;
}

.article-breadcrumb-list > li:nth-child(3) {
  animation-delay: 70ms;
}

.article-breadcrumb-list > li:nth-child(4) {
  animation-delay: 105ms;
}

.article-breadcrumb-list > li:nth-child(5) {
  animation-delay: 140ms;
}

.article-breadcrumb-list [data-slot="breadcrumb-link"] {
  color: hsl(var(--muted-foreground));
  font-weight: 700;
  text-decoration-color: transparent;
  text-underline-offset: 0.2rem;
  transition: color var(--motion-standard) var(--ease-standard);
}

.article-breadcrumb-list [data-slot="breadcrumb-link"]:hover,
.article-breadcrumb-list [data-slot="breadcrumb-link"]:focus-visible {
  color: hsl(var(--foreground));
}

.article-breadcrumb-list [data-slot="breadcrumb-link"]:focus-visible {
  border-radius: 0.2rem;
  outline: 2px solid hsl(var(--ring));
  outline-offset: 2px;
}

.article-breadcrumb-current {
  min-width: 0;
  max-width: min(40vw, 32rem);
}

.article-breadcrumb-current [data-slot="breadcrumb-page"] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.article-views {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: 0.45rem;
  padding-inline: 0.85rem;
  border: 1px solid hsl(var(--border));
  border-radius: 999px;
  color: hsl(var(--muted-foreground));
  background: hsl(var(--card));
  font-size: 0.875rem;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  white-space: nowrap;
}

.article-views svg,
.article-meta-item > svg {
  width: 1rem;
  height: 1rem;
  flex: 0 0 auto;
}

.article-editorial-meta {
  display: grid;
  gap: 1.15rem;
  margin-top: clamp(1.75rem, 4vw, 2.75rem);
  padding-block: 1.15rem;
  border-block: 1px solid hsl(var(--border));
}

.article-author-block {
  display: flex;
  min-width: 0;
  max-width: 100%;
  align-items: center;
  gap: 0.85rem;
}

.article-avatar-group {
  height: 3.5rem;
  flex: 0 0 auto;
}

.article-author-avatar {
  position: relative;
  display: inline-flex;
  width: 3.5rem;
  height: 3.5rem;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 2px solid hsl(var(--card));
  border-radius: 999px;
  background: hsl(var(--accent));
  box-shadow:
    0 0 0 1px hsl(var(--border)),
    var(--shadow-sm);
  text-decoration: none;
}

.article-author-avatar:focus-visible {
  outline: 2px solid hsl(var(--ring));
  outline-offset: 3px;
}

.article-author-avatar__image {
  position: absolute;
  top: -9%;
  left: -203%;
  width: 320%;
  max-width: none;
  height: 320%;
  object-fit: cover;
}

.article-author-avatar__fallback {
  color: hsl(var(--primary));
  font-weight: 800;
  letter-spacing: 0.05em;
}

.article-author-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0.24rem;
}

.article-author-name {
  color: hsl(var(--foreground));
  font-size: 0.98rem;
  font-weight: 750;
  text-decoration-color: transparent;
  text-underline-offset: 0.2rem;
}

.article-author-name:hover,
.article-author-name:focus-visible {
  color: hsl(var(--primary));
  text-decoration-color: currentColor;
}

.article-author-role {
  max-width: none;
  color: hsl(var(--muted-foreground));
  font-size: clamp(0.75rem, 2.1vw, 0.82rem);
  font-weight: 650;
  line-height: 1.45;
  white-space: nowrap;
}

.article-meta-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid hsl(var(--border));
}

.article-meta-item {
  display: flex;
  min-width: 0;
  min-height: 4.25rem;
  align-items: center;
  gap: 0.7rem;
  padding: 0.85rem 1rem;
  border-right: 1px solid hsl(var(--border));
  color: hsl(var(--muted-foreground));
}

.article-meta-item:last-child {
  border-right: 0;
}

.article-meta-copy {
  display: grid;
  min-width: 0;
  gap: 0.15rem;
}

.article-meta-label {
  color: hsl(var(--muted-foreground));
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.2;
}

.article-meta-value {
  color: hsl(var(--foreground));
  font-size: 0.86rem;
  font-weight: 700;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.article-meta-item--link {
  text-decoration: none;
  transition:
    color var(--motion-standard) var(--ease-standard),
    background-color var(--motion-standard) var(--ease-standard);
}

.article-meta-item--link:hover,
.article-meta-item--link:focus-visible {
  background: hsl(var(--accent) / 0.42);
  color: hsl(var(--primary));
}

.article-meta-item--link:focus-visible {
  outline: 2px solid hsl(var(--ring));
  outline-offset: -2px;
}

.article-header--reading,
.article-reading-layout {
  display: grid;
  grid-template-columns: minmax(12rem, 15rem) minmax(0, var(--content-measure));
  column-gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
  justify-content: center;
  max-width: 76rem;
  margin-inline: auto;
  padding-inline: clamp(1rem, 3vw, 2rem);
}

.article-reading-layout {
  row-gap: clamp(2rem, 5vw, 4.5rem);
  padding-block: 1rem 0;
}

.article-outline {
  min-width: 0;
  height: 100%;
}

.article-outline-slot,
.article-outline-stack,
.article-outline-slot > astro-island,
.article-outline-stack > astro-island {
  display: block;
}

.article-outline-slot {
  align-self: stretch;
}

.article-outline-stack {
  position: sticky;
  top: 7rem;
  max-height: calc(100dvh - 8rem);
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: hsl(var(--border)) transparent;
  padding: 0.25rem;
}

.article-outline__inner {
  position: static;
}

.article-outline-ai {
  margin-top: 1rem;
}

.article-outline__eyebrow {
  margin: 0 0 0.75rem;
  color: hsl(var(--muted-foreground));
  font-size: 0.75rem;
  font-weight: 700;
}

.article-outline__mobile {
  display: none;
}

.article-outline__list {
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  margin: 0;
  padding: 0;
  border-left: 1px solid hsl(var(--border));
  list-style: none;
}

.article-outline__link {
  position: relative;
  display: block;
  min-height: var(--control-min-size);
  align-content: center;
  padding: 0.55rem 0.6rem 0.55rem 1rem;
  border-radius: var(--radius-md);
  color: hsl(var(--muted-foreground));
  font-size: 0.84rem;
  font-weight: 600;
  line-height: 1.35;
  text-decoration: none;
  transition:
    color var(--motion-standard) var(--ease-standard),
    background-color var(--motion-standard) var(--ease-standard);
}

.article-outline__link:hover {
  color: hsl(var(--foreground));
  background: hsl(var(--accent) / 0.45);
}

.article-outline__link:focus-visible {
  color: hsl(var(--foreground));
  background: hsl(var(--accent) / 0.45);
  outline: 2px solid hsl(var(--ring));
  outline-offset: 2px;
}

.article-outline__link.is-active {
  color: hsl(var(--primary));
}

.article-outline__marker {
  position: absolute;
  top: 0.35rem;
  bottom: 0.35rem;
  left: -0.125rem;
  width: 0.2rem;
  border-radius: 999px;
  background: hsl(var(--primary));
  box-shadow: 0 0 0.6rem hsl(var(--primary) / 0.25);
}

.article-reading-column {
  min-width: 0;
}

.article-surface--with-outline .article-prose {
  max-width: var(--content-measure);
  margin-inline: 0;
  padding-block: 0 2.5rem;
}

.article-surface--with-outline .article-prose h2[id] {
  scroll-margin-top: 7.5rem;
}

.article-intro {
  margin-bottom: clamp(2rem, 5vw, 3rem);
}

.article-intro__lead {
  display: grid;
  gap: 0.9rem;
}

.article-intro__lead p {
  margin: 0;
  color: hsl(var(--foreground));
  font-size: clamp(1.1rem, 2.2vw, 1.3rem);
  font-weight: 520;
  line-height: 1.7;
  text-wrap: pretty;
}

.article-intro__lead p:first-child::first-letter {
  color: hsl(var(--primary));
  font-family: var(--font-heading-family);
  font-size: 1.18em;
  font-weight: 750;
}

.article-scope-note {
  display: grid;
  min-height: 4.5rem;
  grid-template-columns: 1rem minmax(0, 1fr);
  gap: 0.25rem 0.75rem;
  align-items: start;
  margin-top: 1.5rem;
  padding: 1rem;
  border: 1px solid hsl(var(--border));
  border-radius: 0.625rem;
  background: hsl(var(--muted) / 0.32);
  box-shadow: none;
}

.article-scope-note > svg {
  width: 1rem;
  height: 1rem;
  margin-top: 0.15rem;
  color: hsl(var(--muted-foreground));
}

.article-scope-note [data-slot="alert-description"] p {
  margin: 0;
  color: hsl(var(--muted-foreground));
  font-size: 0.92rem;
  line-height: 1.55;
}

.article-scope-note .article-scope-note__title {
  margin: 0 0 0.15rem;
  color: hsl(var(--foreground));
  font-family: var(--font-heading-family);
  font-size: 0.92rem;
  font-weight: 750;
  letter-spacing: 0;
}

.article-section-heading {
  margin-bottom: 1.25rem;
}

.article-section-heading .article-section-heading__eyebrow {
  margin: 0 0 0.35rem;
  color: hsl(var(--primary));
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.article-section-heading h2 {
  margin: 0;
}

.article-comparison {
  margin-block: clamp(3rem, 7vw, 5rem);
}

.article-comparison > h2 {
  margin: 0;
  font-family: var(--font-heading-family);
  font-size: clamp(1.5rem, 3vw, 1.875rem);
  font-weight: 750;
  line-height: 1.25;
}

.article-comparison__scroll {
  isolation: isolate;
  max-width: 100%;
  margin-top: 1.5rem;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  border: 1px solid hsl(var(--border));
  border-radius: 0.625rem;
  background: hsl(var(--background));
  scrollbar-width: thin;
}

.article-comparison__scroll:focus-visible {
  outline: 2px solid hsl(var(--ring));
  outline-offset: 3px;
}

.article-comparison__table {
  width: 100%;
  min-width: 44rem;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  color: hsl(var(--foreground));
  background: hsl(var(--background));
  font-size: 0.9rem;
  line-height: 1.5;
}

.article-comparison__table th,
.article-comparison__table td {
  min-width: 12rem;
  padding: 0.75rem 1rem;
  font-size: var(--type-body-size);
  overflow-wrap: anywhere;
  border-right: 1px solid hsl(var(--border));
  border-bottom: 1px solid hsl(var(--border));
  text-align: left;
  vertical-align: top;
}

.article-comparison__table th:last-child,
.article-comparison__table td:last-child {
  border-right: 0;
}

.article-comparison__table tbody tr:last-child > * {
  border-bottom: 0;
}

.article-comparison__table thead th {
  color: hsl(var(--muted-foreground));
  background: hsl(var(--muted));
  font-size: var(--type-body-size);
  font-weight: 750;
}

.article-comparison__column-label {
  display: inline-flex;
  min-height: 2rem;
  align-items: center;
  color: hsl(var(--foreground));
  font-size: 0.9rem;
  font-weight: 750;
  line-height: 1.35;
}

.article-comparison__table tbody th {
  width: 13.5rem;
  min-width: 13.5rem;
  color: hsl(var(--muted-foreground));
  background: hsl(var(--background));
  font-weight: 750;
}

.article-comparison__table td {
  max-width: 23rem;
  background: hsl(var(--background));
}

.article-comparison__table th:first-child {
  position: sticky;
  left: 0;
  z-index: 2;
  box-shadow: 1px 0 0 hsl(var(--border));
}

.article-comparison__table thead th:first-child {
  z-index: 3;
}

.article-summary {
  padding: 1.5rem;
  border: 1px solid hsl(var(--border));
  border-radius: var(--radius);
  background: hsl(var(--card));
}

.article-summary {
  margin-bottom: 3rem;
}

.article-surface--news .article-summary {
  margin-bottom: 3.5rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.article-surface--news .article-summary > h2 {
  margin: 0;
  font-family: var(--font-heading-family);
  font-size: clamp(1.5rem, 3vw, 1.875rem);
  font-weight: 750;
  line-height: 1.25;
}

.article-summary__items {
  margin-top: 1.25rem;
  border-block: 1px solid hsl(var(--border));
}

.article-summary__item {
  gap: 0.75rem 1rem;
  padding: 1rem 0;
  border: 0;
  border-bottom: 1px solid hsl(var(--border));
  border-radius: 0;
}

.article-summary__item:last-child {
  border-bottom: 0;
}

.article-summary__number {
  width: 2.5rem;
  align-self: flex-start;
  padding-top: 0.1rem;
  color: hsl(var(--muted-foreground));
  font-family: var(--font-body-family);
  font-size: var(--type-label-size);
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}

.article-summary__content {
  gap: 0.2rem;
}

.article-summary__label {
  color: hsl(var(--foreground));
  font-size: 0.98rem;
  font-weight: 750;
}

.article-summary__description {
  display: block;
  max-width: 64ch;
  color: hsl(var(--muted-foreground));
  font-size: 0.94rem;
  line-height: 1.6;
}

.article-conclusion,
.article-closing {
  margin-block: 3rem 0;
  min-width: 0;
}

.article-conclusion__title {
  margin: 0 0 1.5rem;
  font-family: var(--font-heading-family);
  font-size: var(--type-section-size);
  font-weight: 700;
  line-height: 1.2;
  scroll-margin-top: 10rem;
}

.article-takeaway,
.article-sources,
.article-author-profile {
  border: 1px solid hsl(var(--border) / .6);
  border-radius: 1.25rem;
  background: hsl(var(--card));
  color: hsl(var(--foreground));
}

/* The owner's reference uses a colored rule to distinguish the takeaway. */
.article-takeaway {
  padding: 1.5rem;
  border-left: 4px solid hsl(var(--primary));
}

.article-takeaway__label {
  margin: 0 0 1rem;
  font-family: var(--font-body-family);
  font-size: .75rem;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: .045em;
  text-transform: uppercase;
  color: hsl(var(--primary));
}

.article-takeaway__body {
  display: grid;
  gap: 1rem;
}

.article-takeaway__body p {
  margin: 0;
  font-size: var(--type-body-size);
  line-height: 1.75;
  color: hsl(var(--muted-foreground));
}

.article-sources {
  padding: 1.25rem 1.5rem;
}

.article-final-thought {
  margin: 0;
  padding: 0.25rem 0 0.25rem 1.25rem;
  border-left: 0.2rem solid hsl(var(--primary));
  color: hsl(var(--foreground));
  background: transparent;
}

.article-final-thought p {
  max-width: 58ch;
  margin: 0;
  font-family: var(--font-heading-family);
  font-size: clamp(1.05rem, 2vw, 1.2rem);
  font-weight: 700;
  line-height: 1.55;
  text-wrap: pretty;
}

.article-final-thought + .article-sources {
  margin-top: 2rem;
}

.article-sources__heading {
  margin-bottom: 1rem;
}

.article-sources__heading h2 {
  margin: 0;
  font-family: var(--font-body-family);
  font-size: .75rem;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: .025em;
  text-transform: uppercase;
  scroll-margin-top: 10rem;
}

.article-sources ul {
  display: grid;
  gap: .75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.article-sources li {
  margin: 0;
  padding: 0;
}

.article-sources li[id^="news-source-"] {
  scroll-margin-block: 10rem;
}

.article-sources li[id^="news-source-"]:is(:target, .article-source--active) {
  background: hsl(var(--primary) / .06);
}

.article-body-content a.article-citation {
  font-size: .75em;
  font-weight: 600;
  vertical-align: super;
  white-space: nowrap;
  text-decoration: none;
  font-variant-numeric: tabular-nums;
  padding-inline: .125rem;
  border-radius: .125rem;
}

.article-body-content a.article-citation:is(:hover, :focus-visible) {
  text-decoration: underline;
  text-underline-offset: .2em;
}

.article-body-content a.article-citation:focus-visible {
  outline: 2px solid hsl(var(--ring));
  outline-offset: 3px;
}

.article-sources--numbered ul {
  gap: 0;
}

.article-sources--numbered li {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  column-gap: .75rem;
  padding: 1rem .5rem;
  margin-inline: -.5rem;
  border-radius: .5rem;
  transition: background-color 180ms ease-out;
}

.article-sources--numbered li + li {
  border-top: 1px solid hsl(var(--border) / .5);
}

.article-sources--numbered .article-source-number {
  grid-column: 1;
  grid-row: 1;
  color: hsl(var(--muted-foreground));
  font-size: .8125rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  line-height: 1.625rem;
}

.article-sources--numbered li:is(:target, .article-source--active) .article-source-number {
  color: hsl(var(--primary));
}

.article-sources--numbered .article-sources__link {
  grid-column: 2;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
}

.article-sources--numbered .article-sources__title {
  font-size: 1rem;
  line-height: 1.5;
}

.article-sources--numbered .article-source-publisher {
  font-size: .8125rem;
}

.article-sources--numbered .article-source-description {
  grid-column: 2;
  max-width: 65ch;
  margin-top: .5rem;
  font-size: .9375rem;
  line-height: 1.6;
}

.article-sources__external {
  flex: 0 0 auto;
  width: 1rem;
  height: 1rem;
  margin-top: .25rem;
  color: hsl(var(--muted-foreground));
}

.article-sources--numbered li:focus-visible {
  outline: 2px solid hsl(var(--ring));
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .article-sources--numbered li {
    transition: none;
  }
}

.article-sources__link {
  display: block;
  min-height: var(--control-min-size);
  color: hsl(var(--primary));
  text-decoration: none;
}

.article-sources__body {
  display: grid;
  min-width: 0;
  gap: 0.125rem;
}

.article-source-publisher {
  color: hsl(var(--muted-foreground));
  font-size: var(--type-label-size);
  line-height: 1.5;
}

.article-source-description {
  margin: .375rem 0 0;
  color: hsl(var(--muted-foreground));
  font-size: var(--type-body-size);
  line-height: 1.55;
}

.article-sources__title {
  font-size: var(--type-body-size);
  font-weight: 600;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.article-sources__link:hover .article-sources__title,
.article-sources__link:focus-visible .article-sources__title {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.article-sources__link:focus-visible {
  outline: 2px solid hsl(var(--ring));
  outline-offset: 3px;
  border-radius: 2px;
}

.article-author-card__heading {
  margin: 0 0 1rem;
  font-family: var(--font-heading-family);
  font-size: clamp(1.35rem, 3vw, 1.75rem);
  font-weight: 750;
  line-height: 1.2;
}

.article-author-card__layout {
  display: grid;
  grid-template:
    "portrait identity" auto
    "portrait bio" auto
    "portrait links" auto /
    minmax(7rem, 11rem) minmax(0, 1fr);
  gap: 0.9rem 2rem;
  align-items: start;
}

.article-author-card__portrait {
  position: relative;
  grid-area: portrait;
  width: min(11rem, 100%);
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border: 1px solid hsl(var(--border));
  border-radius: 1rem;
  background: hsl(var(--muted));
}

.article-author-card__image {
  position: absolute;
  top: -12%;
  left: -141%;
  width: 245%;
  max-width: none;
  height: auto;
}

.article-author-card__content {
  display: contents;
}

.article-author-card__identity {
  grid-area: identity;
  min-width: 0;
}

.article-author-card__name {
  margin: 0;
  font-family: var(--font-heading-family);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 750;
  line-height: 1.12;
}

.article-author-card__name a {
  color: inherit;
  text-decoration-color: hsl(var(--border));
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

.article-author-card__name a:hover,
.article-author-card__name a:focus-visible {
  color: hsl(var(--primary));
  text-decoration-color: currentColor;
}

.article-author-card__name a:focus-visible {
  border-radius: 0.2rem;
  outline: 2px solid hsl(var(--ring));
  outline-offset: 3px;
}

.article-author-card__role {
  margin: 0.55rem 0 0;
  color: hsl(var(--muted-foreground));
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.55;
}

.article-author-card__bio {
  grid-area: bio;
  max-width: 62ch;
  margin: 0;
  color: hsl(var(--foreground));
  font-size: 1rem;
  line-height: 1.75;
}

.article-author-card__links {
  grid-area: links;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  margin-top: 0.15rem;
}

.article-author-card__link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 0;
  color: hsl(var(--foreground));
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration-color: hsl(var(--border));
  text-underline-offset: 0.2rem;
  transition:
    color var(--motion-standard) var(--ease-standard),
    text-decoration-color var(--motion-standard) var(--ease-standard);
}

.article-author-card__link:hover,
.article-author-card__link:focus-visible {
  color: hsl(var(--primary));
  text-decoration-color: currentColor;
}

.article-author-card__link:focus-visible {
  outline: 2px solid hsl(var(--ring));
  outline-offset: 2px;
}

.article-author-card__link--accent {
  color: hsl(var(--primary));
}

.article-telegram-discussion {
  padding: 1.5rem;
  border: 1px solid hsl(var(--border));
  border-radius: 1rem;
  background:
    linear-gradient(180deg, hsl(var(--card)) 0%, hsl(var(--card) / 0.92) 100%);
}

.article-telegram-discussion__header h2 {
  margin: 0;
  font-family: var(--font-heading-family);
  font-size: clamp(1.35rem, 3vw, 1.75rem);
  font-weight: 750;
  line-height: 1.2;
}

.article-telegram-discussion__header p,
.article-telegram-discussion__note {
  max-width: 62ch;
  margin: 0.85rem 0 0;
  color: hsl(var(--muted-foreground));
  font-size: 0.95rem;
  line-height: 1.65;
}

.article-telegram-discussion__link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  margin-top: 1rem;
  padding: 0.7rem 1rem;
  border: 1px solid hsl(var(--primary) / 0.32);
  border-radius: 999px;
  color: hsl(var(--primary));
  background: hsl(var(--accent) / 0.55);
  font-size: 0.92rem;
  font-weight: 750;
  text-decoration: none;
}

.article-telegram-discussion__link:hover,
.article-telegram-discussion__link:focus-visible {
  border-color: hsl(var(--primary) / 0.58);
  background: hsl(var(--accent) / 0.82);
}

.article-telegram-discussion__link:focus-visible {
  outline: 2px solid hsl(var(--ring));
  outline-offset: 2px;
}

.article-telegram-discussion__embed {
  margin-top: 1.25rem;
  overflow: hidden;
  border-top: 1px solid hsl(var(--border));
  padding-top: 1.25rem;
}

.article-navigation {
  max-width: var(--content-measure);
  margin-inline: auto;
  padding-inline: 1rem;
}

.article-surface--with-outline .article-navigation {
  display: grid;
  grid-template-columns: minmax(12rem, 15rem) minmax(0, var(--content-measure));
  gap: clamp(2rem, 5vw, 4.5rem);
  max-width: 76rem;
  padding-inline: clamp(1rem, 3vw, 2rem);
}

.article-surface--with-outline .article-navigation > nav {
  grid-column: 2;
  min-width: 0;
}

@media (max-width: 959px) {
  .article-header--news {
    padding-bottom: 1rem;
  }

  .article-header--reading,
  .article-reading-layout {
    grid-template-columns: minmax(0, var(--content-measure));
  }

  .article-header--reading {
    padding-bottom: 1.5rem;
  }

  .article-reading-layout {
    gap: 1.5rem;
    padding-top: 0;
  }

  .article-outline-stack {
    position: static;
    max-height: none;
    overflow: visible;
    display: grid;
    grid-template-columns: minmax(0, 1fr) var(--control-min-size);
    gap: 0.5rem;
    align-items: center;
    padding-block: .5rem;
    background: hsl(var(--background) / 0.96);
  }

  .article-outline-stack:not(:has(.article-outline-ai)) {
    grid-template-columns: minmax(0, 1fr);
  }

  .article-outline__inner {
    min-width: 0;
  }

  .article-outline,
  .article-outline-slot > astro-island {
    height: auto;
  }

  .article-outline-slot {
    position: sticky;
    z-index: 40;
    top: 4.25rem;
    height: auto;
    background: hsl(var(--background) / 0.96);
  }

  .article-outline-ai {
    margin: 0;
    padding: 0;
    border: 0;
  }

  .article-outline-ai button {
    width: var(--control-min-size);
    padding-inline: 0;
    justify-content: center;
  }

  .article-outline-ai button span {
    display: none;
  }

  .article-outline__eyebrow {
    display: none;
  }

  .article-outline__desktop {
    display: none;
  }

  .article-outline__mobile {
    display: block;
    min-width: 0;
  }

  .article-outline__disclosure {
    border: 1px solid hsl(var(--border));
    border-radius: var(--radius);
    background: hsl(var(--card));
    overflow: clip;
  }

  .article-outline__toggle {
    display: flex;
    align-items: center;
    gap: .75rem;
    width: 100%;
    min-height: var(--control-min-size);
    padding: .75rem;
    list-style: none;
    color: hsl(var(--foreground));
    font-size: .875rem;
    font-weight: 600;
    line-height: 1.25;
    cursor: pointer;
  }

  .article-outline__toggle::-webkit-details-marker { display: none; }
  .article-outline__toggle > svg { flex-shrink: 0; }
  .article-outline__disclosure[open] .article-outline__toggle > svg { transform: rotate(180deg); }
  .article-outline__position {
    margin-left: auto;
    color: hsl(var(--muted-foreground));
    font-size: .75rem;
    font-weight: 400;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
  }

  .article-outline__toggle:focus-visible {
    outline: 2px solid hsl(var(--ring));
    outline-offset: -3px;
  }

  .article-outline__mobile-nav {
    max-height: min(50dvh, 24rem);
    overflow-y: auto;
    border-top: 1px solid hsl(var(--border));
    overscroll-behavior: contain;
  }

  .article-outline__mobile-nav ol { list-style: none; margin: 0; padding: .25rem; }
  .article-outline__mobile-nav a {
    display: block;
    min-height: var(--control-min-size);
    padding: .75rem;
    font-size: .875rem;
    line-height: 1.5;
    color: hsl(var(--muted-foreground));
    text-decoration: none;
    overflow-wrap: anywhere;
    border-radius: .25rem;
  }
  .article-outline__mobile-nav a[aria-current="location"] {
    color: hsl(var(--primary));
    background: hsl(var(--accent));
    font-weight: 600;
  }
  .article-outline__mobile-nav a:hover { background: hsl(var(--muted)); }
  .article-outline__mobile-nav a:focus-visible {
    outline: 2px solid hsl(var(--ring));
    outline-offset: -2px;
  }

  .article-meta-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .article-meta-item:nth-child(2) {
    border-right: 0;
  }

  .article-meta-item:nth-child(n + 3) {
    border-top: 1px solid hsl(var(--border));
  }

  .article-surface--with-outline .article-prose h2[id] {
    scroll-margin-top: 9.5rem;
  }

  .article-surface--with-outline .article-navigation {
    grid-template-columns: minmax(0, var(--content-measure));
    gap: 0;
  }

  .article-surface--with-outline .article-navigation > nav {
    grid-column: 1;
  }
}

@media (max-width: 639px) {
  .article-header--news,
  .article-header--reading {
    padding-top: 1.25rem;
  }

  .article-header--reading .article-breadcrumbs-static :is([aria-current], .article-breadcrumbs-static__current-separator),
  .article-header--reading .article-meta > [aria-hidden="true"] {
    display: none;
  }

  .article-header--reading .article-meta {
    gap: 0 1rem;
  }

  .article-header--reading .article-share-group {
    justify-content: flex-start;
  }

  .article-tools {
    align-items: flex-start;
    flex-direction: column;
  }

  .article-sharing {
    width: 100%;
  }

  .article-sharing .copy-feedback {
    position: fixed;
    z-index: 100;
    inset: auto 1rem 1rem;
    width: auto;
    max-width: none;
    text-align: center;
  }

  .article-context-row {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.75rem;
  }

  .article-breadcrumb-shell {
    min-width: 0;
  }

  .article-breadcrumb-current,
  .article-breadcrumb-current-separator {
    display: none;
  }

  .article-views {
    min-height: 2.5rem;
    padding-inline: 0.7rem;
  }

  .article-views__word {
    display: none;
  }

  .article-meta-item {
    min-height: 4.75rem;
    padding: 0.8rem 0.7rem;
  }

  .article-summary {
    padding: 1rem;
  }

  .article-intro__lead p {
    font-size: 1.05rem;
  }

  .article-comparison__table {
    min-width: 40rem;
  }

  .article-comparison__table thead th:first-child,
  .article-comparison__table tbody th {
    position: sticky;
    z-index: 2;
    left: 0;
    box-shadow: 1px 0 0 hsl(var(--border));
  }

  .article-comparison__table thead th:first-child {
    z-index: 3;
    background: hsl(var(--muted));
  }

  .article-author-card__layout {
    grid-template:
      "portrait identity" auto
      "bio bio" auto
      "links links" auto /
      5.5rem minmax(0, 1fr);
    gap: 1.15rem 1rem;
    align-items: center;
  }

  .article-author-card__portrait {
    width: 5.5rem;
  }

}

@media (max-width: 359px) {
  .article-author-role {
    white-space: normal;
  }
}

@media (prefers-reduced-motion: reduce) {
  .article-breadcrumb-list > li {
    animation: none;
  }

  .article-meta-item--link,
  .article-outline__link {
    transition-duration: 0.01ms;
  }

  .article-reading-progress__bar [data-slot="progress-indicator"] {
    box-shadow: none;
  }
}

@keyframes article-breadcrumb-enter {
  from {
    opacity: 0.72;
    transform: translateY(0.25rem);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.article-byline {
  margin-top: 2rem;
  padding-block: 1.5rem;
  border-block: 1px solid hsl(var(--border));
  color: hsl(var(--foreground));
  font-family: var(--font-body-family);
  display: grid;
  gap: 1.5rem;
  min-width: 0;
}

.article-byline__author { display: flex; gap: 1rem; align-items: center; min-width: 0; }
.article-byline__identity { display: grid; gap: .25rem; min-width: 0; }
.article-byline__name { font-size: var(--type-body-size); font-weight: 700; line-height: 1.4; text-decoration: none; color: inherit; }
.article-byline__role { font-size: var(--type-label-size); line-height: 1.5; color: hsl(var(--muted-foreground)); }
.article-byline__data { display: flex; flex-wrap: wrap; gap: 1rem 0; min-width: 0; margin: 0; }
.article-byline__item { position: relative; min-width: 0; display: flex; align-items: baseline; gap: .5rem; padding-inline: 1rem; }
.article-byline__item:first-child { padding-left: 0; }
.article-byline__label { font-size: var(--type-label-size); color: hsl(var(--muted-foreground)); line-height: 1.4; }
.article-byline__value { font-size: var(--type-body-size); line-height: 1.5; font-weight: 600; margin: 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.article-byline__value a { color: hsl(var(--primary)); display: inline-flex; align-items: center; min-height: var(--control-min-size); margin-block: -.625rem; text-underline-offset: .2em; }
.article-byline__name:hover,
.article-byline__value a:hover { text-decoration: underline; text-underline-offset: .2em; }
.article-byline__name:focus-visible,
.article-byline__value a:focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: 3px; }
.article-byline__line { display: none; }
.article-byline__hint { display: none; }
.article-byline__item + .article-byline__item { border-left: 1px solid hsl(var(--border)); }

@media (max-width: 959px) {
  .article-byline {
    margin-top: 1.5rem;
    padding-block: 0;
    border-block: 0;
    gap: 1rem;
  }
  .article-byline__author { align-items: flex-start; }
  .article-byline .article-avatar-group { height: 3rem; }
  .article-byline .article-author-avatar { width: 3rem; height: 3rem; }
  .article-byline__data {
    align-items: center;
    gap: 0 1rem;
  }
  .article-byline__item {
    align-items: center;
    min-height: 2.75rem;
    gap: .375rem;
    padding: 0;
    border: 0;
  }
  .article-byline__label,
  .article-byline__value { font-size: .875rem; font-weight: 500; line-height: 1.5; }
  .article-byline__label { display: flex; align-items: center; }
  .article-byline__label-text { display: none; }
  .article-byline__value { white-space: nowrap; }
  .article-byline__hint {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.125rem;
    height: 1.125rem;
    border: 0;
    padding: 0;
    border-radius: .125rem;
    color: hsl(var(--muted-foreground));
    background: transparent;
    cursor: help;
    touch-action: manipulation;
  }
  .article-byline__hint::after {
    content: "";
    position: absolute;
    inset: 50% auto auto 50%;
    width: 48px;
    height: 48px;
    transform: translate(-50%, -50%);
  }
  .article-byline__hint:hover,
  .article-byline__hint[data-state="instant-open"],
  .article-byline__hint[data-state="delayed-open"] { color: hsl(var(--primary)); }
  .article-byline__hint:focus-visible {
    outline: 2px solid hsl(var(--ring));
    outline-offset: 4px;
  }
  .article-byline__item--no-update { display: none; }
  .article-byline__item--topic { flex-basis: 100%; }
  .article-byline__item--topic .article-byline__value { white-space: normal; }
  .article-byline__item--repeated-topic { display: none; }
  .article-byline__item + .article-byline__item { border-left: 0; }
}
/* Keep the article metadata row identical across the sidebar breakpoint. */
.article-byline--compact { padding-block: 0; border-block: 0; gap: 1rem; }
.article-byline--compact .article-byline__data {
  align-items: center;
  gap: 0 1rem;
}
.article-byline--compact .article-byline__item {
  align-items: center;
  min-height: 2.75rem;
  gap: .375rem;
  padding: 0;
  border: 0;
}
.article-byline--compact .article-byline__label,
.article-byline--compact .article-byline__value { font-size: .875rem; font-weight: 500; line-height: 1.5; }
.article-byline--compact .article-byline__label { display: flex; align-items: center; }
.article-byline--compact .article-byline__label-text { display: none; }
.article-byline--compact .article-byline__value { white-space: nowrap; }
.article-byline--compact .article-byline__hint {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.125rem;
  height: 1.125rem;
  border: 0;
  padding: 0;
  border-radius: .125rem;
  color: hsl(var(--muted-foreground));
  background: transparent;
  cursor: help;
  touch-action: manipulation;
}
.article-byline--compact .article-byline__hint::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 48px;
  height: 48px;
  transform: translate(-50%, -50%);
}
.article-byline--compact .article-byline__hint:hover,
.article-byline--compact .article-byline__hint[data-state="instant-open"],
.article-byline--compact .article-byline__hint[data-state="delayed-open"] { color: hsl(var(--primary)); }
.article-byline--compact .article-byline__hint:focus-visible {
  outline: 2px solid hsl(var(--ring));
  outline-offset: 4px;
}
.article-byline--compact .article-byline__item--no-update { display: none; }

.article-faq-animated { margin-block: 4rem; scroll-margin-top: 8rem; min-width: 0; }
.article-faq-animated__heading { font-family: var(--font-heading-family); font-size: var(--type-section-size); font-weight: 700; line-height: 1.2; margin: 0; }
.article-faq-animated__intro { font-size: var(--type-body-size); color: hsl(var(--muted-foreground)); line-height: 1.625; margin-top: 1rem; }
.article-faq-animated__list { margin-top: 1.5rem; border-top: 1px solid hsl(var(--border)); min-width: 0; }
.article-faq-animated__trigger { min-height: var(--control-min-size); padding-block: 1.25rem; font-size: var(--type-body-size); font-weight: 700; line-height: 1.5; gap: 1rem; border-radius: 0; }
.article-faq-animated__trigger > svg { margin-top: .25rem; }
.article-faq-animated__answer { padding-bottom: 1.25rem; padding-right: 2rem; font-size: var(--type-body-size); line-height: 1.75; max-width: 72ch; color: hsl(var(--muted-foreground)); }
.article-faq-animated__answer p { margin: 0; }
.article-faq-animated__item { padding-inline: 1rem; }
.article-faq-animated__item[data-state="open"] { background: hsl(var(--accent)); }
.article-faq-animated__item[data-state="open"] .article-faq-animated__trigger,
.article-faq-animated__item[data-state="open"] .article-faq-animated__answer { color: hsl(var(--accent-foreground)); }
@media (prefers-reduced-motion: reduce) {
  .article-faq-animated__trigger > svg { transition: none; }
}
.article-author-profile {
  position: relative;
  margin-block: 1.5rem 0;
  padding: 1.5rem;
  scroll-margin-top: 9.5rem;
  min-width: 0;
  color: hsl(var(--foreground));
}

.article-author-profile__layout {
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr);
  align-items: start;
  gap: 1rem;
}

.article-author-profile__visual {
  min-width: 0;
}

.article-author-profile__content {
  display: grid;
  min-width: 0;
  gap: .75rem;
}

.article-author-profile__portrait {
  position: relative;
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 50%;
  background: hsl(var(--muted));
}

.article-author-profile__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
}

/* The source is a full-length photograph with the author on its right side. */
.article-author-profile__portrait--wide .article-author-profile__image {
  position: absolute;
  width: 320%;
  max-width: none;
  height: 320%;
  left: -203%;
  top: -9%;
  object-position: center;
}

.article-author-profile__heading {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.article-author-profile__name {
  margin: 0;
  font-family: var(--font-body-family);
  font-size: 1.125rem;
  font-weight: 750;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.article-author-profile__role {
  margin: 0.25rem 0 0;
  font-size: .8125rem;
  line-height: 1.5;
  color: hsl(var(--muted-foreground));
}

.article-author-profile__bio {
  margin: 0;
  max-width: 65ch;
  font-size: var(--type-body-size);
  line-height: 1.625;
  color: hsl(var(--muted-foreground));
}

.article-author-profile__link {
  display: inline-flex;
  justify-self: start;
  align-items: center;
  gap: 0.5rem;
  min-height: var(--control-min-size);
  margin-top: -0.5rem;
  color: hsl(var(--primary));
  font-size: var(--type-label-size);
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
}

.article-author-profile__link svg {
  flex: 0 0 auto;
}

.article-author-profile__link:hover span,
.article-author-profile__link:focus-visible span {
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

.article-author-profile__link:focus-visible {
  outline: 2px solid hsl(var(--ring));
  outline-offset: 4px;
  border-radius: 2px;
}

@media (max-width: 539px) {
  .article-takeaway,
  .article-sources,
  .article-author-profile {
    padding: 1.25rem;
    border-radius: 1rem;
  }

  .article-author-profile__layout {
    grid-template-columns: 4rem minmax(0, 1fr);
    column-gap: 1rem;
  }

  .article-author-profile__content {
    display: contents;
  }

  .article-author-profile__visual {
    grid-column: 1;
    grid-row: 1;
  }

  .article-author-profile__identity {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    padding-top: 0;
  }

  .article-author-profile__name {
    font-size: 1rem;
  }

  .article-author-profile__bio,
  .article-author-profile__link {
    grid-column: 1 / -1;
  }
}

.article-summary-timeline { margin-bottom: 3.5rem; min-width: 0; color: hsl(var(--foreground)); }
.article-summary-timeline__heading { font-family: var(--font-heading-family); font-size: var(--type-section-size); line-height: 1.2; font-weight: 700; margin: 0 0 1.5rem; }
.article-summary-timeline__list { list-style: none; padding: 0; margin: 0; }
.article-summary-timeline__item { position: relative; padding: 0 0 1.5rem 2rem; margin: 0; min-width: 0; }
.article-summary-timeline__item:last-child { padding-bottom: 0; }
.article-summary-timeline__item::before { content: ""; position: absolute; top: .65rem; left: .35rem; bottom: -.65rem; width: 1px; background: hsl(var(--border)); }
.article-summary-timeline__item:last-child::before { display: none; }
.article-summary-timeline__dot { position: absolute; top: .45rem; left: .125rem; width: .5rem; height: .5rem; border-radius: 50%; background: hsl(var(--primary)); }
.article-summary-timeline__label { margin: 0 0 .5rem; font-size: var(--type-body-size); line-height: 1.5; font-weight: 700; }
.article-summary-timeline__description { margin: 0; font-size: var(--type-body-size); line-height: 1.75; max-width: 72ch; color: hsl(var(--muted-foreground)); }

/* Shared article rhythm follows the project's 8px spacing scale. */
.article-surface {
  --article-space-group: 1rem;
  --article-space-block: 1.5rem;
  --article-space-section: 3rem;
}

.article-header--reading .article-tools {
  margin-top: var(--article-space-group);
}

.article-surface .article-conclusion,
.article-surface .article-closing {
  margin-top: var(--article-space-section);
}

.article-surface .article-conclusion + .article-closing,
.article-surface .article-author-profile {
  margin-top: var(--article-space-block);
}

@media (max-width: 959px) {
  .article-surface {
    --article-space-section: 2rem;
  }

  .article-header--reading {
    padding-top: 2rem;
    padding-bottom: .5rem;
  }
}

@media (max-width: 639px) {
  .article-header--reading {
    padding-top: var(--article-space-block);
    padding-bottom: .5rem;
  }
}

/* Article opening: introduction → author channels → short answer → sections. */
.article-surface:not(.article-surface--news) .article-intro--body {
  margin: 0 0 2rem;
}
.article-intro--body > p:first-child { margin-top: 0; }
.article-intro--body > p:last-child { margin-bottom: 0; }
.article-messengers {
  container: article-messengers / inline-size;
  position: relative;
  padding: 1.5rem;
  margin: 0;
  border: 0;
  border-radius: inherit;
  background: transparent;
}
.article-messengers__icon {
  display: grid;
  place-items: center;
  flex: 0 0 2.75rem;
  height: 2.75rem;
  color: hsl(var(--primary));
  background: hsl(var(--primary) / .08);
  border-radius: 50%;
}
.article-messengers__copy { min-width: 0; }
.article-messengers__copy {
  margin: 0;
  color: hsl(var(--muted-foreground));
  font-size: 1rem;
  line-height: 1.65;
}
.article-messengers__copy strong { color: hsl(var(--foreground)); font-weight: 700; }
.article-messengers__links {
  position: absolute;
  z-index: 5;
  top: calc(100% + .5rem);
  left: -1px;
  right: -1px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: .75rem;
  margin: 0;
  padding: 1.25rem 1.5rem;
  border: 1px solid hsl(var(--border));
  border-radius: 16px;
  box-shadow: 0 12px 28px hsl(var(--foreground) / .12);
  background: hsl(var(--card));
}
.article-messengers__links :is(a, button) {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .5rem .85rem;
  min-height: 44px;
  border: 1px solid hsl(var(--border));
  border-radius: 10px;
  color: hsl(var(--primary));
  font-size: 1rem;
  font-weight: 650;
  text-decoration: none;
}
.article-messengers__links :is(a, button):hover { text-decoration: none; }
.article-messengers__links :is(a, button):focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: 4px; border-radius: 4px; }
.article-surface .article-summary--opening {
  margin: 0 0 3rem;
  padding: clamp(1.5rem, 4vw, 2.25rem);
  border-radius: 20px;
}
.article-surface .article-summary--opening > h2 {
  margin: 0 0 1.25rem;
  color: hsl(var(--primary));
  font-family: var(--font-heading-family);
  font-size: 1rem;
  font-weight: 750;
  line-height: 1.4;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.article-surface .article-summary--opening > ul { margin: 0; padding-left: 1.2rem; list-style: disc; }
.article-surface .article-summary--opening li { margin: 0; padding-left: .35rem; line-height: 1.75; }
.article-surface .article-summary--opening li + li { margin-top: 1rem; }
.article-summary--opening li::marker { color: hsl(var(--primary)); }
@media (max-width: 639px) {
  .article-messengers { gap: .75rem; padding: 1.25rem; border-radius: 16px; }
  .article-messengers__icon { flex-basis: 2rem; height: 2rem; }
  .article-messengers__icon svg { width: 20px; height: 20px; }
  .article-surface .article-summary--opening { border-radius: 16px; }
}
.article-messengers__trigger { display: flex; align-items: flex-start; gap: 1rem; padding-right: 3.75rem; }
.article-messengers__toggle { position: absolute; top: 1.5rem; right: 1.5rem; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid hsl(var(--border)); border-radius: 12px; color: hsl(var(--foreground)); background: hsl(var(--card)); cursor: pointer; list-style: none; }
.article-messengers__toggle::-webkit-details-marker { display: none; }
.article-messengers__toggle::marker { content: ''; }
.article-messengers__toggle:hover { background: hsl(var(--primary) / .1); border-color: hsl(var(--primary) / .5); }
.article-messengers__toggle:focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: 4px; }
.article-messengers__chevron { transition: transform 180ms ease-out; }
.article-messengers__menu[open] .article-messengers__chevron { transform: rotate(180deg); }

@media (prefers-reduced-motion: reduce) { .article-messengers__chevron { transition: none; } }
@media (max-width: 639px) {
  .article-messengers__trigger { gap: .75rem; }
  .article-messengers__links { padding: 1.25rem; border-radius: 16px; }
}
/* The reading column narrows when the desktop outline appears. Size this
   shared menu from its own available space, including the lower author card. */
@container article-messengers (max-width: 34rem) {
  .article-messengers__links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .article-messengers__links :is(a, button) { justify-content: center; }
}
@container article-messengers (max-width: 16rem) {
  .article-messengers__links { grid-template-columns: minmax(0, 1fr); }
}

.article-messengers-glow:has(details[open]) { z-index: 10; }
.article-messengers__links button { font-family: inherit; cursor: default; }
@media (max-width: 639px) { .article-messengers__toggle { top: 1.25rem; right: 1.25rem; } }
@media (prefers-reduced-motion: no-preference) {
  .article-messengers__menu[open] .article-messengers__links { animation: messenger-panel-in 160ms ease-out; }
  @keyframes messenger-panel-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
}

/* React Bits Border Glow: keep the reading palette and the menu outside the card. */
.article-messengers-glow.border-glow-card { margin-block: 2rem; box-shadow: none; border-color: hsl(var(--border)); }
.article-messengers-glow .border-glow-inner { overflow: visible; }
.article-messengers-glow::before, .article-messengers-glow::after { pointer-events: none; }
:root:not(.dark) .article-messengers-glow > .edge-light { mix-blend-mode: normal; }
@media (max-width: 639px) { .article-messengers-glow { --border-radius: 16px !important; } }
@media (prefers-reduced-motion: reduce) {
  .article-messengers-glow::before, .article-messengers-glow::after, .article-messengers-glow > .edge-light { display: none; }
}
.article-messengers__trigger { cursor: pointer; }

/* Service colors are scoped to outbound channel controls, not site tokens.
   Blue fills are shaded slightly to keep white labels readable. */
.article-messengers__item { position: relative; display: flex; min-width: 0; }
.article-messengers__item[data-messenger="telegram"] { --messenger-brand: #0088cc; }
.article-messengers__item[data-messenger="max"] { --messenger-brand: #471aff; }
.article-messengers__item[data-messenger="threads"] { --messenger-brand: #151515; }
.article-messengers__item[data-messenger="vk"] { --messenger-brand: #0077ff; }
.article-messengers__item :is(a, button) {
  justify-content: center;
  width: 100%;
  min-height: 48px;
  padding: .65rem .5rem;
  color: #fff;
  background: color-mix(in srgb, var(--messenger-brand) 87%, #000);
  border-color: color-mix(in srgb, var(--messenger-brand) 80%, hsl(var(--border)));
  line-height: 1.25;
  white-space: nowrap;
}
.article-messengers__item :is(a, button):hover {
  background: color-mix(in srgb, var(--messenger-brand) 77%, #000);
}
.article-messengers__item svg { flex-shrink: 0; }
.article-messengers__tooltip {
  position: absolute;
  z-index: 6;
  top: calc(100% + .6rem);
  left: 50%;
  transform: translateX(-50%);
  width: 18rem;
  max-width: calc(100vw - 5rem);
  padding: .85rem 1rem;
  border-radius: 10px;
  color: hsl(var(--background));
  background: hsl(var(--foreground));
  font-size: .8125rem;
  font-weight: 400;
  line-height: 1.55;
  white-space: normal;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}
.article-messengers__item:hover .article-messengers__tooltip,
.article-messengers__item:focus-within .article-messengers__tooltip {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}
@media (max-width: 959px) {
  .article-messengers__tooltip { left: 0; transform: none; }
}
.article-messengers__item[data-messenger="tenchat"] { --messenger-brand: #df3040; }
.article-messengers__item[data-messenger="setka"] { --messenger-brand: #292637; }
.article-messengers__item[data-messenger="habr"] { --messenger-brand: #4d7689; }
.article-messengers__item[data-messenger="teletype"] { --messenger-brand: #202020; }

/* A related-reading list is editorial content, not a row of unlabelled links. */
.article-surface .article-topic-links {
  margin-block: 3rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid hsl(var(--border));
  border-radius: 20px;
  background: hsl(var(--card));
}
.article-topic-links > h2 {
  margin: 0 0 1.25rem;
  font-family: var(--font-heading-family);
  font-size: 1rem;
  font-weight: 750;
  line-height: 1.4;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: hsl(var(--primary));
}
.article-topic-links > ul { display: grid; gap: .65rem; margin: 0; padding: 0; list-style: none; }
.article-topic-links li { margin: 0; padding: 0; min-width: 0; }
.article-topic-links a {
  display: grid;
  grid-template-columns: 1.25rem minmax(0, 1fr);
  align-items: start;
  gap: .75rem;
  min-height: 44px;
  padding-block: .35rem;
  border-radius: 4px;
  font-size: 1.05rem;
  line-height: 1.7;
  color: hsl(var(--foreground));
  text-decoration: none;
  overflow-wrap: anywhere;
}
.article-topic-links a > svg { margin-top: .35rem; color: hsl(var(--primary)); }
.article-topic-links strong { font-weight: 750; }
.article-topic-links__description { color: hsl(var(--muted-foreground)); font-weight: 400; }
.article-topic-links a:hover strong { color: hsl(var(--primary)); text-decoration: underline; text-underline-offset: .2em; }
.article-topic-links a:focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: 4px; }
@media (max-width: 639px) { .article-surface .article-topic-links { margin-block: 2rem; border-radius: 16px; } }

/* Owner-selected Animate UI / Base UI accordion, scoped to ordinary articles. */
.article-faq-base__list { margin-top: 1.5rem; }
.article-faq-base__item:not(:last-child) { border-bottom: 1px solid hsl(var(--border)); }
.article-prose .article-faq-base__header { display: flex; margin: 0; padding: 0; font: inherit; }
.article-faq-base__trigger { display: flex; flex: 1; align-items: start; justify-content: space-between; gap: 1.5rem; min-height: 44px; padding: .875rem 0; border: 1px solid transparent; border-radius: var(--radius-md); background: transparent; color: hsl(var(--foreground)); text-align: left; font: inherit; font-size: 1rem; font-weight: 600; line-height: 1.5; cursor: pointer; }
.article-faq-base__trigger > svg { flex-shrink: 0; margin-top: .25rem; color: hsl(var(--muted-foreground)); transition: transform .35s cubic-bezier(.215,.61,.355,1); }
.article-faq-base__trigger[aria-expanded="true"] > svg { transform: rotate(180deg); }
.article-faq-base__trigger:hover > span { text-decoration: underline; text-underline-offset: .2em; }
.article-faq-base__trigger:focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: 3px; }
.article-faq-base__panel { overflow: hidden; font-size: 1rem; }
.article-faq-base__answer { padding: 0 2rem .875rem 0; color: hsl(var(--muted-foreground)); line-height: 1.625; }
.article-prose .article-faq-base__answer p { margin: 0; }
@media (prefers-reduced-motion: reduce) { .article-faq-base__trigger > svg { transition: none; } }

/* Contact action and portal: share article tokens in both themes. */
.article-contact { margin-top: 1.1rem; padding-top: 1rem; border-top: 1px solid hsl(var(--border)); }
.article-contact__trigger { display: grid; width: 100%; padding: 0; border: 0; border-radius: var(--radius); background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); perspective: 1000px; cursor: pointer; overflow: hidden; font: inherit; font-size: .84rem; font-weight: 700; }
.article-contact__face { grid-area: 1 / 1; display: flex; align-items: center; justify-content: center; gap: .65rem; min-height: 46px; padding: .65rem .7rem; width: 100%; backface-visibility: hidden; }
.article-contact__face--back { background: hsl(var(--primary)); }
.article-contact__tooltip { max-width: min(270px, calc(100vw - 2rem)); font-size: .82rem; line-height: 1.5; padding: .7rem .9rem; }
.article-contact__backdrop { position: fixed; inset: 0; z-index: 100; background: rgb(0 0 0 / .55); backdrop-filter: blur(5px); }
.article-contact__dialog { position: fixed; top: 50%; left: 50%; translate: -50% -50%; z-index: 101; width: min(660px, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); overflow-y: auto; padding: clamp(1.25rem, 4vw, 2.25rem); border-radius: 16px; background: hsl(var(--background)); color: hsl(var(--foreground)); box-shadow: 0 24px 80px rgb(0 0 0 / .25); font-family: var(--font-sans, 'Nunito Sans Variable', sans-serif); }
.article-contact__close { position: absolute; top: .65rem; right: .65rem; display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: var(--radius); color: hsl(var(--muted-foreground)); background: transparent; cursor: pointer; }
.article-contact__close:hover { color: hsl(var(--foreground)); background: hsl(var(--muted)); }
.article-contact__title { margin: 0; padding-right: 2rem; font-family: 'Exo 2 Variable', sans-serif; font-size: clamp(1.5rem, 4vw, 2rem); font-weight: 650; line-height: 1.2; letter-spacing: -.025em; }
.article-contact__description { margin: .9rem 0 1.6rem; max-width: 55ch; font-size: .98rem; line-height: 1.6; color: hsl(var(--muted-foreground)); }
.article-contact__body { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.15fr); align-items: center; gap: 1.5rem; }
.article-contact__qr { margin: 0; text-align: center; }
.article-contact__qr img { display: block; width: 100%; height: auto; aspect-ratio: 1; background: white; border-radius: 12px; }
.article-contact__qr figcaption { margin-top: .8rem; color: hsl(var(--muted-foreground)); font-size: .8rem; line-height: 1.5; }
.article-contact__qr strong { color: hsl(var(--foreground)); font-weight: 650; }
.article-contact__options { display: grid; gap: .5rem; min-width: 0; }
.article-contact__hint { margin: 0 0 .35rem; color: hsl(var(--muted-foreground)); font-size: .8rem; line-height: 1.5; }
.article-contact__link { display: flex; gap: .75rem; align-items: center; min-height: 62px; padding: .65rem .85rem; border-radius: var(--radius); background: hsl(var(--muted) / .6); color: hsl(var(--foreground)); text-decoration: none; transition: background-color .18s ease-out; }
.article-contact__link:hover { background: hsl(var(--accent)); }
.article-contact__link > svg { flex-shrink: 0; color: hsl(var(--primary)); }
.article-contact__link > svg:last-child { margin-left: auto; width: 16px; }
.article-contact__link span { min-width: 0; }
.article-contact__link strong { display: block; font-size: .95rem; font-weight: 700; }
.article-contact__link small { display: block; font-size: .7rem; overflow-wrap: anywhere; color: hsl(var(--muted-foreground)); }
.article-contact__card { width: 100%; border: 0; font: inherit; text-align: left; cursor: pointer; }
.article-contact__card > svg:last-child { transition: transform .2s ease; }
.article-contact__card[aria-expanded="true"] > svg:last-child { transform: rotate(180deg); }
.article-contact__direct-panel { overflow: hidden; }
.article-contact__direct { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; padding-bottom: 2px; }
.article-contact__direct a { display: flex; align-items: center; justify-content: center; gap: .4rem; min-height: 44px; border: 1px solid hsl(var(--border)); border-radius: var(--radius); color: hsl(var(--primary)); background: transparent; text-decoration: none; font-size: .82rem; font-weight: 650; }
.article-contact__direct a:hover { background: hsl(var(--accent)); }
.article-contact__dialog .article-contact__direct a:focus-visible { outline-offset: -3px; }
.article-contact__direct svg { flex: none; }
.article-contact__note { margin: 1.5rem 0 0; color: hsl(var(--muted-foreground)); font-size: .75rem; line-height: 1.5; }
.article-contact button:focus-visible, .article-contact__dialog :is(button,a):focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: 3px; }
@media (max-width: 959px) {
  .article-outline-stack > .article-contact, .article-outline-stack > astro-island:has(.article-contact) { grid-column: 1 / -1; }
  .article-contact { margin: 0; padding: 0; border: 0; }
  .article-contact__trigger { font-size: .82rem; }
  .article-contact__face { min-height: 40px; padding-block: .5rem; }
}
@media (max-width: 520px) {
  .article-contact__body { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .article-contact__qr { display: none; }
  .article-contact__qr-hint { display: none; }
  .article-contact__description { margin-bottom: 1.15rem; }
  .article-contact__link { min-height: 58px; }
}
@media (prefers-reduced-motion: reduce) {
  .article-contact__link, .article-contact__card > svg:last-child { transition: none; }
}

/* The open mobile outline replaces its trigger with search; contact floats below. */
.article-outline__combo-positioner { z-index: 60; width: var(--anchor-width); max-width: calc(100vw - 2rem); }
.article-outline__combo-popup { display: flex; flex-direction: column; gap: .75rem; max-height: min(75dvh, var(--available-height)); color: hsl(var(--foreground)); outline: none; }
.article-outline__combo-panel { display: flex; flex-direction: column; min-height: 0; overflow: hidden; border: 1px solid hsl(var(--border)); border-radius: 12px; background: hsl(var(--background)); }
.article-outline__search { display: flex; align-items: center; gap: .65rem; flex-shrink: 0; min-height: 46px; padding-left: .75rem; border-bottom: 1px solid hsl(var(--border)); color: hsl(var(--muted-foreground)); }
.article-outline__search > svg { flex-shrink: 0; }
.article-outline__search input { min-width: 0; width: 100%; height: 44px; padding: 0; border: 0; background: transparent; color: hsl(var(--foreground)); font: inherit; font-size: 1rem; outline: 0; }
.article-outline__search input::placeholder { color: hsl(var(--muted-foreground)); }
.article-outline__search:focus-within { box-shadow: inset 0 -2px hsl(var(--ring)); }
.article-outline__search button { display: grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; color: hsl(var(--muted-foreground)); cursor: pointer; }
.article-outline__search button:focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: -4px; border-radius: 6px; }
.article-outline__combo-list { min-height: 0; max-height: min(44dvh, 360px); overflow-y: auto; overscroll-behavior: contain; padding: 0; scrollbar-width: thin; scrollbar-color: hsl(var(--primary)) transparent; }
.article-outline__combo-item { display: grid; grid-template-columns: 1.4rem minmax(0, 1fr) 1rem; align-items: start; gap: .6rem; min-height: 44px; padding: .7rem .75rem; font-size: .875rem; line-height: 1.4; cursor: pointer; outline: 0; }
.article-outline__combo-item > span:last-child:has(svg) { color: hsl(var(--primary)); padding-top: .1rem; }
.article-outline__combo-number { color: hsl(var(--muted-foreground)); font-variant-numeric: tabular-nums; }
.article-outline__combo-item[data-highlighted] { background: hsl(var(--accent)); }
.article-outline__combo-item[data-selected] { background: hsl(var(--primary) / .12); color: hsl(var(--primary)); font-weight: 650; }
.article-outline__combo-item[data-selected] .article-outline__combo-number { color: inherit; }
.article-outline__empty { font-size: .875rem; color: hsl(var(--muted-foreground)); }
.article-outline__empty:not(:empty) { padding: 1rem .75rem; }
.article-outline__combo-contact { flex-shrink: 0; width: 100%; }
.article-outline__combo-contact .article-contact { margin: 0; padding: 0; border: 0; }
.article-outline__combo-contact .article-contact__trigger { border-radius: 12px; box-shadow: 0 7px 18px rgb(0 0 0 / .18); }
.article-outline__combo-contact .article-contact__face { min-height: 46px; }
@media (max-width: 959px) {
  .article-contact-desktop { display: none; }
  .article-outline__combo-trigger { width: 100%; border: 1px solid hsl(var(--border)); border-radius: var(--radius); color: hsl(var(--foreground)); font: inherit; font-size: .84rem; text-align: left; cursor: pointer; }
  .article-outline__combo-trigger[aria-expanded="true"] { visibility: hidden; }
}

/* Mobile articles use the course toolbar; the site header stays at the page start. */
.article-mobile-outline { position: relative; width: 100%; }
.article-outline__control { position: relative; }
.article-mobile-toolbar .article-outline__combo-trigger { padding: 0; border: 0; border-radius: .5rem; background: transparent; color: inherit; font: inherit; text-align: left; }
/* The course's top mask would cover the article tags before this toolbar sticks. */
.article-mobile-toolbar.reading-toolbar::before { content: none; }
.article-mobile-toolbar .course-lesson-outline__title { flex: 1; }
.article-mobile-toolbar .article-outline__section-status { display: inline-flex; flex: none; align-items: center; }
.article-mobile-toolbar .article-outline__chevron { display: inline-flex; flex: none; width: 2.75rem; height: 2.75rem; align-items: center; justify-content: center; }
.article-mobile-toolbar .article-outline__search { position: absolute; inset: 0; min-height: 2.75rem; padding: 0; border: 0; }
.article-mobile-toolbar .article-outline__search input { height: 2.75rem; }
.article-outline__combo-positioner[data-reader-toolbar] { max-width: 100%; }
.article-outline__combo-positioner[data-reader-toolbar] .article-outline__combo-popup { max-height: min(75svh, var(--available-height)); }
.article-outline__combo-positioner[data-reader-toolbar] .article-outline__combo-list { width: 100%; max-height: min(44svh, 360px); }
.article-mobile-toolbar .article-outline-ai { margin: 0; padding: 0; border: 0; }
.article-mobile-toolbar .article-mobile-utilities { display: none; flex: none; align-items: center; gap: 0; }
.article-mobile-toolbar[data-sticky="false"] .course-player-header__actions:not(:has(.article-outline-ai)) { display: none; }
.article-mobile-toolbar[data-sticky="true"] .article-mobile-utilities { display: inline-flex; animation: article-toolbar-action-appear .2s ease-out both; }
@keyframes article-toolbar-action-appear {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .article-mobile-toolbar[data-sticky="true"] .article-mobile-utilities { animation: none; }
}
@media (max-width: 959px) {
  body:has(.article-surface--reader-toolbar) .site-header { position: static; background: hsl(var(--background)); backdrop-filter: none; }
  .article-surface--reader-toolbar .article-outline-slot { top: 12px; width: 100%; background: transparent; }
  .article-surface--reader-toolbar .article-outline-stack { display: block; padding: 0; background: transparent; }
  .article-surface--reader-toolbar .article-outline-ai-desktop { display: none; }
  .article-outline__mobile .article-mobile-toolbar { position: relative; top: auto; width: 100%; min-height: 3.25rem; margin-top: 0; padding: .25rem .375rem .25rem .75rem; }
  /* The chevron and both utilities share a 44px center-to-center rhythm. */
  .article-mobile-toolbar :is(.course-player-toolbar, .course-player-header__actions) { gap: 0; }
  .article-mobile-toolbar :is(.article-mobile-theme, .article-mobile-menu) { display: inline-flex; flex: none; width: 2.75rem; height: 2.75rem; align-items: center; justify-content: center; }
  .article-mobile-toolbar :is(.theme-toggle--compact, .article-mobile-menu-button) { width: 2rem; min-width: 2rem; height: 2rem; min-height: 2rem; aspect-ratio: 1; padding: 0; border-radius: .5rem; box-shadow: none; }
  .article-mobile-toolbar :is(.theme-toggle--compact, .article-mobile-menu-button):focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: 2px; }
  /* Extend the clickable area to 44px around the smaller visible button. */
  .article-mobile-toolbar .article-mobile-menu-button { position: relative; }
  .article-mobile-toolbar :is(.theme-toggle--compact, .article-mobile-menu-button)::after { content: ""; position: absolute; top: 50%; left: 50%; width: 2.75rem; height: 2.75rem; transform: translate(-50%, -50%); }
  .article-surface--reader-toolbar .article-prose :is(h2, h3, h4)[id] { scroll-margin-top: calc(12px + 3.25rem + 1.5rem); }
}

/* Collapse the article path only when its visible links exceed the available row. */
.article-context-row:has(> .article-path) { position: relative; }
.article-path { min-width: 0; }
.article-path__links { margin-bottom: 0; }
/* Measure the same ancestor links at every width; the popup retains the full path. */
.article-path__links > :is([aria-current], .article-breadcrumbs-static__current-separator) { display: none; }
.article-path__trigger { position: relative; cursor: pointer; font-family: inherit; }
.article-path__trigger[hidden] { display: none; }
.article-path__trigger:focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: 3px; }
.article-path__trigger > svg:last-child { transition: transform .16s ease; }
[data-path-open] .article-path__trigger > svg:last-child { transform: rotate(180deg); }
.article-path > .article-path__measure {
  position: fixed;
  top: 0;
  left: 0;
  visibility: hidden;
  pointer-events: none;
  flex-wrap: nowrap;
  width: max-content;
  max-width: none;
  white-space: nowrap;
}
[data-path-collapsed] > .article-path__links:not(.article-path__measure) { display: none; }
[data-path-collapsed][data-path-open] > .article-path__links:not(.article-path__measure) {
  position: absolute;
  z-index: 45;
  top: calc(100% + .5rem);
  left: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: .125rem;
  width: min(24rem, 100%);
  max-height: min(24rem, 60dvh);
  overflow-y: auto;
  padding: .5rem;
  border: 1px solid hsl(var(--border));
  border-radius: .75rem;
  background: hsl(var(--background));
  box-shadow: 0 8px 24px hsl(var(--foreground) / .1);
}
.article-path[data-path-open] > .article-path__links:not(.article-path__measure) > [aria-hidden] { display: none; }
.article-path[data-path-open] > .article-path__links:not(.article-path__measure) > [aria-current] { display: block; }
.article-path[data-path-open] > .article-path__links:not(.article-path__measure) > :is(a, [aria-current]) {
  padding: .5rem .75rem;
  border-radius: .375rem;
  overflow-wrap: anywhere;
}
.article-path[data-path-open] > .article-path__links:not(.article-path__measure) > a { text-decoration: none; }
.article-path[data-path-open] > .article-path__links:not(.article-path__measure) > [aria-current] { color: hsl(var(--muted-foreground)); background: hsl(var(--accent)); }
@media (hover: hover) {
  .article-path__trigger:hover { color: hsl(var(--primary)); }
  .article-path[data-path-open] > .article-path__links:not(.article-path__measure) > a:hover { background: hsl(var(--accent)); color: hsl(var(--primary)); }
}
@media (prefers-reduced-motion: reduce) { .article-path__trigger > svg:last-child { transition: none; } }

/* One short sentence replaces the desktop introduction on mobile. */
.article-messengers__mobile-copy { display: none; }
@media (max-width: 639px) {
  .article-messengers[data-compact-messengers] { padding: 1rem; cursor: pointer; }
  [data-compact-messengers] .article-messengers__icon { display: grid; flex-basis: 2rem; height: 2rem; }
  [data-compact-messengers] .article-messengers__trigger { align-items: center; min-height: 2.75rem; gap: .75rem; padding-right: 2rem; }
  [data-compact-messengers] .article-messengers__desktop-copy { display: none; }
  [data-compact-messengers] .article-messengers__mobile-copy { display: block; font-size: .875rem; line-height: 1.5; }
  [data-compact-messengers] .article-messengers__toggle { top: 50%; right: .5rem; transform: translateY(-50%); border: 0; background: transparent; }
  [data-compact-messengers] .article-messengers__toggle:hover { background: transparent; }
}

/* Stable mobile outline: equal gaps and a close action within thumb reach. */
.article-outline__combo-actions { display: flex; flex: none; align-items: stretch; gap: .75rem; width: 100%; }
.article-outline__combo-actions .article-outline__combo-contact { flex: 1; min-width: 0; width: auto; }
.article-outline__combo-close { display: grid; place-items: center; flex: 0 0 48px; width: 48px; min-height: 48px; padding: 0; border: 1px solid hsl(var(--destructive) / .4); border-radius: 12px; color: hsl(var(--destructive)); background: hsl(var(--destructive) / .12); cursor: pointer; }
.article-outline__combo-close:focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: 3px; }
.article-outline__combo-positioner[data-reader-toolbar] .article-outline__combo-popup { max-height: none; gap: .75rem; }
.article-outline__combo-positioner[data-reader-toolbar] .article-outline__combo-list { max-height: var(--outline-list-height, 320px); overscroll-behavior: contain; overflow-anchor: none; touch-action: pan-y; }
@media (hover: hover) { .article-outline__combo-close:hover { background: hsl(var(--destructive) / .2); } }

/* A quiet green scrollbar for the mobile contents list. */
@supports selector(::-webkit-scrollbar) {
  .article-outline__combo-list { scrollbar-width: auto; scrollbar-color: auto; }
  .article-outline__combo-list::-webkit-scrollbar { width: 3px; height: 3px; }
  .article-outline__combo-list::-webkit-scrollbar-track { background: transparent; }
  .article-outline__combo-list::-webkit-scrollbar-thumb { border: 0; border-radius: 999px; background-color: hsl(var(--primary)); opacity: 1; }
}

/* Article opening: one spacing rhythm from identity to reading controls. */
.article-header--reading .article-byline--compact {
  margin-top: var(--article-space-block);
  gap: .75rem;
}
.article-header--reading:has(.article-byline--compact) .article-tools {
  margin-top: .75rem;
}
@media (max-width: 959px) {
  .article-header--reading:has(.article-byline--compact) {
    padding-bottom: var(--article-space-group);
  }
  .article-byline--compact .article-byline__data {
    column-gap: .75rem;
  }
}

.article-actions { flex: none; margin-left: auto; }
.article-actions__trigger {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .375rem;
  min-height: var(--article-tool-size, 2.5rem);
  padding: .375rem .625rem;
  border: 1px solid hsl(var(--border));
  border-radius: .5rem;
  background: transparent;
  color: hsl(var(--muted-foreground));
  font: inherit;
  font-size: var(--article-tool-font, .875rem);
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
  cursor: pointer;
  transition: color .16s ease, background-color .16s ease;
}
.article-actions__trigger > svg { flex: none; }
.article-actions__trigger[data-popup-open] { color: hsl(var(--primary)); background: hsl(var(--accent)); }
.article-actions__trigger:focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: 3px; }
.article-actions__chevron { transition: transform .16s ease; }
.article-actions__trigger[data-popup-open] .article-actions__chevron { transform: rotate(180deg); }
.article-actions__positioner { z-index: 65; }
.article-actions__popup {
  width: min(17.5rem, calc(100vw - 2rem));
  max-height: var(--available-height);
  overflow-y: auto;
  padding: .375rem;
  border: 1px solid hsl(var(--border));
  border-radius: .75rem;
  background: hsl(var(--popover));
  color: hsl(var(--popover-foreground));
  outline: none;
  transform-origin: var(--transform-origin);
  transition: opacity .16s ease, transform .16s ease;
}
.article-actions__popup:is([data-starting-style], [data-ending-style]) { opacity: 0; transform: translateY(-4px); }
.article-actions__item { display: flex; align-items: center; gap: .625rem; min-height: 2.75rem; padding: .625rem .75rem; border-radius: .5rem; font-size: .875rem; line-height: 1.4; cursor: pointer; outline: none; }
.article-actions__item > svg { flex: none; color: hsl(var(--muted-foreground)); }
.article-actions__item[data-highlighted] { background: hsl(var(--accent)); color: hsl(var(--accent-foreground)); }
.article-actions__item[data-highlighted] > svg { color: currentColor; }
.article-actions__item:focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: -2px; }
.article-actions__separator { height: 1px; margin: .375rem .75rem; background: hsl(var(--border)); }
.article-actions__feedback { margin: 0; color: hsl(var(--muted-foreground)); font-size: .8125rem; line-height: 1.5; }
.article-actions__feedback:not(:empty) { padding: .5rem .75rem; }
@media (hover: hover) {
  .article-actions__trigger:hover { color: hsl(var(--primary)); background: hsl(var(--muted)); }
}
@media (prefers-reduced-motion: reduce) {
  .article-actions__trigger, .article-actions__chevron, .article-actions__popup { transition: none; }
}

.article-actions__item[data-disabled] { opacity: .5; cursor: default; }
.page-actions-row { display: flex; justify-content: flex-end; margin-block: .75rem; }

.article-actions__submenu-arrow { margin-left: auto; }
.article-actions__back { font-weight: 650; }
.article-actions__size-percent { margin-left: auto; color: hsl(var(--muted-foreground)); font-size: .8125rem; font-variant-numeric: tabular-nums; }
.article-actions__size-check { display: inline-flex; width: 1rem; flex: none; color: hsl(var(--primary)); }
.article-actions__size-note { margin: .375rem .75rem .5rem; font-size: .8125rem; line-height: 1.5; color: hsl(var(--muted-foreground)); }
html[data-reading-size="90"] { --reader-text-scale: .9; }
html[data-reading-size="100"] { --reader-text-scale: 1; }
html[data-reading-size="112"] { --reader-text-scale: 1.12; }
html[data-reading-size="125"] { --reader-text-scale: 1.25; }
html[data-reading-size] .prose-reading {
  --prose-scale: var(--reader-text-scale);
  --type-body-size: calc(1rem * var(--prose-scale));
}

/* Page tools remain reachable at the bottom of the main mobile navigation. */
.site-header__mobile-footer { display: grid; gap: .5rem; }
.article-actions--navigation { width: 100%; margin: 0; }
.article-actions--navigation .article-actions__trigger { width: 100%; min-height: 48px; justify-content: flex-start; padding: .75rem 1rem; border: 0; background: transparent; color: hsl(var(--foreground)); font-size: 1rem; font-weight: 500; }
.article-actions--navigation .article-actions__chevron { margin-left: auto; }

/* Primary site typography, owner accepted 2026-10-24.
 * Based on the supplied shadcn.io TypographyDemo, completed for editorial HTML.
 * This file owns the rules; no Typeset runtime or Tailwind Typography plugin.
 * Legacy opt-outs/table wrappers remain supported without rewriting content.
 */
.prose-reading {
  --prose-scale: var(--reader-text-scale, 1);
  font-family: var(--font-body-family);
  font-size: calc(1rem * var(--prose-scale));
  line-height: 1.75;
  color: hsl(var(--foreground));
  min-width: 0;
  overflow-wrap: break-word;
}
/* Fixed editorial scale: h1 36/40, h2 30/36, h3 24/32, h4 20/28. */
.prose-reading :is(h1):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { font-size: calc(2.25rem * var(--prose-scale)); line-height: 1.1112; font-weight: 800; margin-block: 2.5rem 0; }
.prose-reading :is(h2):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { font-size: calc(1.875rem * var(--prose-scale)); line-height: 1.2; font-weight: 600; margin-block: 2.5rem 0; padding-bottom: .5rem; border-bottom: 1px solid hsl(var(--border)); }
.prose-reading :is(h3):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { font-size: calc(1.5rem * var(--prose-scale)); line-height: 1.3334; font-weight: 600; margin-block: 2rem 0; }
.prose-reading :is(h4):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { font-size: calc(1.25rem * var(--prose-scale)); line-height: 1.4; font-weight: 600; margin-block: 1.5rem 0; }
.prose-reading :is(h5, h6):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { font-size: 1em; line-height: 1.5; font-weight: 700; margin-block: 1.5rem 0; }
.prose-reading :is(h1, h2, h3, h4, h5, h6):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { font-family: var(--font-heading-family); color: hsl(var(--foreground)); letter-spacing: -.025em; text-wrap: balance; scroll-margin-block-start: 7rem; overflow-wrap: anywhere; }
.prose-reading :is(p):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { margin-block: 1.5rem 0; line-height: 1.75; }
.prose-reading :is(ul, ol):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { margin-block: 1.5rem; padding-inline-start: 1.5rem; }
.prose-reading :is(ul):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { list-style-type: disc; }
.prose-reading :is(ol):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { list-style-type: decimal; }
.prose-reading :is(li):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { margin-block-start: .5rem; padding-inline-start: .125rem; }
.prose-reading :is(li > ul, li > ol):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { margin-block: .5rem; }
.prose-reading :is(li > p):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { margin-block: .5rem 0; }
.prose-reading :is(a):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { color: hsl(var(--primary)); font-weight: 500; text-decoration: underline; text-underline-offset: .25em; overflow-wrap: anywhere; }
.prose-reading :is(a:hover):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { text-decoration-thickness: 2px; }
.prose-reading :is(a:focus-visible):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { outline: 2px solid hsl(var(--ring)); outline-offset: 3px; border-radius: 2px; }
.prose-reading :is(strong, b):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { font-weight: 700; }
.prose-reading :is(blockquote):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { margin: 1.5rem 0; padding-inline-start: 1.5rem; border-inline-start: 2px solid hsl(var(--border)); color: hsl(var(--muted-foreground)); font-style: italic; }
.prose-reading :is(blockquote > :first-child):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { margin-block-start: 0; }
.prose-reading :is(hr):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { margin-block: 2rem; border: 0; border-top: 1px solid hsl(var(--border)); }
.prose-reading :is(pre):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { margin-block: 1.5rem; padding: 1rem; max-width: 100%; overflow-x: auto; border: 1px solid hsl(var(--border)); border-radius: .75rem; background: var(--code-surface, hsl(var(--muted))); color: var(--code-text, hsl(var(--foreground))); font-family: var(--font-mono-family); font-size: .875em; line-height: 1.6; tab-size: 2; }
.prose-reading :is(code):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { font-family: var(--font-mono-family); font-size: .875em; }
.prose-reading :is(:not(pre) > code):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { border-radius: .25rem; background: hsl(var(--muted)); padding: .15em .3em; overflow-wrap: anywhere; }
.prose-reading :is(pre code):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { font-size: inherit; white-space: pre; background: transparent; padding: 0; }
.prose-reading :is(table):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { width: 100%; margin-block: 1.5rem; border-collapse: collapse; font-size: .9375em; line-height: 1.5; }
.prose-reading :is(th, td):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { border: 1px solid hsl(var(--border)); padding: .5rem 1rem; text-align: start; vertical-align: top; overflow-wrap: anywhere; }
.prose-reading :is(th):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { font-weight: 700; }
.prose-reading :is(tbody tr:nth-child(even)):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { background: hsl(var(--muted) / .5); }
.prose-reading :is(caption):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { padding-block: .5rem; color: hsl(var(--muted-foreground)); text-align: start; font-size: .875em; }
.prose-reading :is(img, video):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { display: block; max-width: 100%; height: auto; border-radius: .75rem; margin-block: 1.5rem; }
.prose-reading :is(figure):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { margin-block: 1.5rem; }
.prose-reading :is(figure > img):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { margin-block: 0; }
.prose-reading :is(figcaption):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { margin-block-start: .5rem; color: hsl(var(--muted-foreground)); font-size: .875em; line-height: 1.5; }
.prose-reading :is(dl):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { margin-block: 1.5rem; }
.prose-reading :is(dt):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { font-weight: 700; margin-block-start: 1rem; }
.prose-reading :is(dd):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { margin-inline-start: 1.5rem; }
.prose-reading :is(sup, sub):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { font-size: .75em; }
.prose-reading :is(kbd):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { font-family: var(--font-mono-family); font-size: .8125em; padding: .15em .35em; border: 1px solid hsl(var(--border)); border-radius: .25rem; }
.prose-reading :is(mark):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { background: hsl(var(--accent)); color: hsl(var(--accent-foreground)); padding-inline: .15em; }
.prose-reading :is(input[type="checkbox"]):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { accent-color: hsl(var(--primary)); margin-inline-end: .5em; }
.prose-reading :is(:first-child):where(:not([data-not-prose], [data-not-prose] *, .not-prose, .not-prose *, [data-not-typeset], [data-not-typeset] *, .not-typeset, .not-typeset *)) { margin-block-start: 0; }

/* Standalone material titles use the same accepted demo scale. */
.article-surface header.article-header .article-title,
.course-lesson__header.article-header--reading .article-title {
  font-size: 2.25rem;
  line-height: 1.1112;
  font-weight: 800;
  letter-spacing: -.025em;
  text-wrap: balance;
}
/* A focusable wrapper owns horizontal scrolling, never the whole page. */
.prose-reading :is(.prose-scroll, .typeset-scroll) {
  max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain;
  margin-block: 1.5rem; scrollbar-width: thin;
  scrollbar-color: hsl(var(--primary)) transparent;
}
.prose-reading :is(.prose-scroll, .typeset-scroll) > table { margin-block: 0; }
.prose-reading :is(.prose-scroll, .typeset-scroll):focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: 3px; }
.prose-reading :is(.katex-display, .math-display) { max-width: 100%; overflow-x: auto; padding-block: .25rem; }
.prose-reading .footnotes { margin-block-start: 2rem; padding-block-start: 1rem; border-top: 1px solid hsl(var(--border)); font-size: .875em; }
