/* ══════════════════════════════════════════════════════════════════════════════
   SOURCECODE — Shared base for <code-block> and <code-group>
   On-demand: loaded only when article.embeds.styles includes 'sourcecode'
   ══════════════════════════════════════════════════════════════════════════════ */

article .sourcecode {
  --sc-mono: 'Source Code Pro', 'JetBrains Mono', 'Fira Code', ui-monospace, monospace;
  --sc-sans: 'Source Sans Pro', Inter, system-ui, sans-serif;
  border-radius: 10px;
  overflow: hidden;
  font-family: var(--sc-mono);
  font-size: 0.8125rem;
  line-height: 1.7;
  margin: 1.5rem 0;
}

article .sourcecode__code {
  overflow-x: auto;
  tab-size: 2;
}

article .sourcecode__code code {
  white-space: pre;
  display: block;
  /* Reset global inline-code styles */
  background: transparent;
  padding: 0;
  border-radius: 0;
  font-size: inherit;
}

/* Optional line wrapping */
article .sourcecode--wrap .sourcecode__code {
  overflow-x: visible;
}
article .sourcecode--wrap .sourcecode__code code {
  white-space: pre-wrap;
  word-break: break-all;
}

/* Override hljs default background — the parent container controls bg color */
article .sourcecode__code code.hljs {
  background: transparent;
  padding: 0;
}

/* ══════════════════════════════════════════════════════════════════════════════
   VARIANT: PLAIN  (.sourcecode--plain)
   ══════════════════════════════════════════════════════════════════════════════ */

article .sourcecode--plain {
  border: 1px solid var(--color-neutral-200);
}

article .sourcecode--plain .sourcecode__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 1rem;
  background: var(--color-neutral-50);
  border-bottom: 1px solid var(--color-neutral-200);
  font-family: var(--sc-sans);
}

article .sourcecode--plain .sourcecode__label {
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-neutral-400);
}

article .sourcecode__copy {
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--sc-sans);
  font-size: 0.5625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.2rem 0.45rem;
  border-radius: 4px;
  line-height: 1;
  transition: background 0.12s, color 0.12s;
  color: var(--color-neutral-300);
}

article .sourcecode__copy:hover {
  color: var(--color-neutral-600);
  background: var(--color-neutral-100);
}

article .sourcecode--ide .sourcecode__copy {
  margin-left: auto;
  color: rgba(255,255,255,0.25);
}

article .sourcecode--ide .sourcecode__copy:hover {
  color: rgba(255,255,255,0.65);
  background: rgba(255,255,255,0.08);
}

article .sourcecode--ide.sourcecode--neutral .sourcecode__copy {
  color: var(--color-neutral-300);
}

article .sourcecode--ide.sourcecode--neutral .sourcecode__copy:hover {
  color: var(--color-neutral-600);
  background: var(--color-neutral-100);
}

article .sourcecode--ide.sourcecode--ice .sourcecode__copy {
  color: #7dd3fc;
}

article .sourcecode--ide.sourcecode--ice .sourcecode__copy:hover {
  color: #0c4a6e;
  background: rgba(14,165,233,0.1);
}

/* Push copy button to far right inside code-group plain tabs bar */
article .sourcecode--plain .sourcecode__tabs .sourcecode__copy {
  margin-left: auto;
}

article .sourcecode--ide.sourcecode--warm .sourcecode__copy {
  color: #c8b89a;
}

article .sourcecode--ide.sourcecode--warm .sourcecode__copy:hover {
  color: #5c4530;
  background: rgba(180,100,30,0.08);
}

article .sourcecode--plain.sourcecode--sand .sourcecode__copy {
  color: #c8a060;
}

article .sourcecode--plain.sourcecode--sand .sourcecode__copy:hover {
  color: #4a3820;
  background: rgba(140,108,60,0.1);
}

article .sourcecode--plain .sourcecode__code {
  padding: 1rem 1.25rem;
  background: #fff;
}

article .sourcecode--plain .sourcecode__code code {
  color: var(--color-text-body);
}

/* ── Plain: Dark ── */

article .sourcecode--plain.sourcecode--dark {
  border-color: #2d3a4a;
}

article .sourcecode--plain.sourcecode--dark .sourcecode__bar {
  background: #1e293b;
  border-bottom-color: #2d3a4a;
}

article .sourcecode--plain.sourcecode--dark .sourcecode__label {
  color: #64748b;
}

article .sourcecode--plain.sourcecode--dark .sourcecode__code {
  background: #0f172a;
}

article .sourcecode--plain.sourcecode--dark .sourcecode__code code {
  color: #94a3b8;
}

/* ── Plain: Warm ── */

article .sourcecode--plain.sourcecode--warm {
  border-color: #e8ddd4;
}

article .sourcecode--plain.sourcecode--warm .sourcecode__bar {
  background: #f7f2ef;
  border-bottom-color: #e8ddd4;
}

article .sourcecode--plain.sourcecode--warm .sourcecode__label {
  color: #8c6a5a;
}

article .sourcecode--plain.sourcecode--warm .sourcecode__code {
  background: #faf8f6;
}

article .sourcecode--plain.sourcecode--warm .sourcecode__code code {
  color: #4a3a30;
}

/* ── Plain: Ice ── */

article .sourcecode--plain.sourcecode--ice {
  border-color: #bae6fd;
}

article .sourcecode--plain.sourcecode--ice .sourcecode__bar {
  background: #e0f2fe;
  border-bottom-color: #bae6fd;
}

article .sourcecode--plain.sourcecode--ice .sourcecode__label {
  color: #0369a1;
}

article .sourcecode--plain.sourcecode--ice .sourcecode__code {
  background: #f0f9ff;
}

article .sourcecode--plain.sourcecode--ice .sourcecode__code code {
  color: #0c4a6e;
}

/* ── Plain: Sand ── */

article .sourcecode--plain.sourcecode--sand {
  border-color: #dfc99a;
}

article .sourcecode--plain.sourcecode--sand .sourcecode__bar {
  background: #f2e8d0;
  border-bottom-color: #dfc99a;
}

article .sourcecode--plain.sourcecode--sand .sourcecode__label {
  color: #8c6c3c;
}

article .sourcecode--plain.sourcecode--sand .sourcecode__code {
  background: #fdf6e3;
}

article .sourcecode--plain.sourcecode--sand .sourcecode__code code {
  color: #4a3820;
}


/* ── Plain: Multi-tab bar ── */

article .sourcecode--plain .sourcecode__tabs {
  display: flex;
  gap: 0;
  background: var(--color-neutral-50);
  border-bottom: 1px solid var(--color-neutral-200);
}

article .sourcecode--plain .sourcecode__tab-btn {
  padding: 0.5rem 1rem;
  font-family: var(--sc-sans);
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--color-text-muted);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s;
}

article .sourcecode--plain .sourcecode__tab-btn:hover {
  color: var(--color-text-body);
}

article .sourcecode--plain .sourcecode__tab-btn--active {
  color: var(--color-text-primary);
  border-bottom-color: var(--color-accent);
}

article .sourcecode--plain .sourcecode__panel:not(.sourcecode__panel--active) {
  display: none;
}

/* Plain warm multi-tab */
article .sourcecode--plain.sourcecode--warm .sourcecode__tabs {
  background: #f7f2ef;
  border-bottom-color: #e8ddd4;
}

article .sourcecode--plain.sourcecode--warm .sourcecode__tab-btn {
  color: #a08060;
}

article .sourcecode--plain.sourcecode--warm .sourcecode__tab-btn:hover {
  color: #5c4530;
}

article .sourcecode--plain.sourcecode--warm .sourcecode__tab-btn--active {
  color: #4a3a30;
  border-bottom-color: var(--color-accent);
}

/* Plain dark multi-tab */
article .sourcecode--plain.sourcecode--dark .sourcecode__tabs {
  background: #1e293b;
  border-bottom-color: #2d3a4a;
}

article .sourcecode--plain.sourcecode--dark .sourcecode__tab-btn {
  color: #64748b;
}

article .sourcecode--plain.sourcecode--dark .sourcecode__tab-btn:hover {
  color: #94a3b8;
}

article .sourcecode--plain.sourcecode--dark .sourcecode__tab-btn--active {
  color: #e2e8f0;
  border-bottom-color: var(--color-accent);
}

/* ── Plain: Lines (gutter) ── */

article .sourcecode--plain.sourcecode--lines .sourcecode__body {
  display: flex;
}

article .sourcecode--plain.sourcecode--lines .sourcecode__code {
  flex: 1;
}

article .sourcecode--plain .sourcecode__gutter {
  background: #fff;
}

article .sourcecode--plain .sourcecode__ln {
  color: var(--color-neutral-300);
}

article .sourcecode--plain.sourcecode--dark .sourcecode__gutter {
  background: #0f172a;
}

article .sourcecode--plain.sourcecode--dark .sourcecode__ln {
  color: rgba(255,255,255,0.2);
}

article .sourcecode--plain.sourcecode--warm .sourcecode__gutter {
  background: #faf8f6;
}

article .sourcecode--plain.sourcecode--warm .sourcecode__ln {
  color: #c8b89a;
}

article .sourcecode--plain.sourcecode--ice .sourcecode__gutter {
  background: #f0f9ff;
}

article .sourcecode--plain.sourcecode--ice .sourcecode__ln {
  color: #7dd3fc;
}

article .sourcecode--plain.sourcecode--sand .sourcecode__gutter {
  background: #fdf6e3;
}

article .sourcecode--plain.sourcecode--sand .sourcecode__ln {
  color: #c8a060;
}


/* ══════════════════════════════════════════════════════════════════════════════
   VARIANT: IDE  (.sourcecode--ide)
   ══════════════════════════════════════════════════════════════════════════════ */

article .sourcecode--ide {
  box-shadow: 0 8px 32px rgba(0,0,0,0.18);
  border: 1px solid rgba(255,255,255,0.06);
}

/* Titlebar */

article .sourcecode--ide .sourcecode__titlebar {
  display: flex;
  align-items: center;
  padding: 0.5rem 0.75rem;
  background: #1e1e1e;
  border-bottom: 1px solid #333;
  gap: 0.625rem;
}

article .sourcecode__dots { display: flex; gap: 0.375rem; }

article .sourcecode__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

article .sourcecode__dot--red    { background: #ff5f57; }
article .sourcecode__dot--yellow { background: #febc2e; }
article .sourcecode__dot--green  { background: #28c840; }

article .sourcecode__tab {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.25rem 0.75rem;
  background: #2d2d2d;
  border-radius: 6px 6px 0 0;
  font-size: 0.6875rem;
  color: rgba(255,255,255,0.7);
  font-family: var(--sc-sans);
  border-bottom: 2px solid #007acc;
  margin-bottom: -1px;
  cursor: default;
  white-space: nowrap;
}

article .sourcecode__tab-icon {
  width: 14px;
  height: 14px;
  border-radius: 2px;
  font-size: 0.5rem;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: -0.04em;
  flex-shrink: 0;
}

article .sourcecode__tab-icon--html   { background: #e44d26; color: #fff; }
article .sourcecode__tab-icon--json   { background: #f5de19; color: #333; }
article .sourcecode__tab-icon--js     { background: #f5de19; color: #333; }
article .sourcecode__tab-icon--css    { background: #264de4; color: #fff; }
article .sourcecode__tab-icon--bash   { background: #4eaa25; color: #fff; }
article .sourcecode__tab-icon--sql    { background: #e38c00; color: #fff; }
article .sourcecode__tab-icon--ts     { background: #3178c6; color: #fff; }
article .sourcecode__tab-icon--python { background: #3572a5; color: #fff; }

/* Body: gutter + code */

article .sourcecode--ide .sourcecode__body {
  display: flex;
}

article .sourcecode__gutter {
  background: #1e1e1e;
  padding: 1rem 0;
  min-width: 3rem;
  text-align: right;
  user-select: none;
}

article .sourcecode__ln {
  display: block;
  padding: 0 0.75rem 0 0;
  color: rgba(255,255,255,0.2);
  font-size: 0.75rem;
  line-height: 1.7;
}

article .sourcecode--ide .sourcecode__code {
  flex: 1;
  padding: 1rem 1.25rem;
  background: #1e1e1e;
}

article .sourcecode--ide .sourcecode__code code {
  color: #d4d4d4;
}

/* IDE multi-tab: inactive tabs */
article .sourcecode--ide .sourcecode__tab:not(.sourcecode__tab--active) {
  background: transparent;
  border-bottom-color: transparent;
  opacity: 0.5;
  cursor: pointer;
}

article .sourcecode--ide .sourcecode__tab:not(.sourcecode__tab--active):hover {
  opacity: 0.8;
}

/* IDE panel switching */
article .sourcecode__body:not(.sourcecode__body--active) {
  display: none;
}

/* ── IDE: Light ── */

article .sourcecode--ide.sourcecode--neutral {
  border: 1px solid var(--color-neutral-200);
  box-shadow: 0 4px 20px rgba(0,0,0,0.08), 0 1px 4px rgba(0,0,0,0.04);
}

article .sourcecode--ide.sourcecode--neutral .sourcecode__titlebar {
  background: #f5f5f5;
  border-bottom-color: var(--color-neutral-200);
}

article .sourcecode--ide.sourcecode--neutral .sourcecode__tab {
  background: #fff;
  color: var(--color-text-body);
  border-bottom-color: var(--color-accent);
}

article .sourcecode--ide.sourcecode--neutral .sourcecode__tab:not(.sourcecode__tab--active) {
  background: transparent;
}

article .sourcecode--ide.sourcecode--neutral .sourcecode__gutter {
  background: #fff;
  border-right: 1px solid var(--color-neutral-200);
}

article .sourcecode--ide.sourcecode--neutral .sourcecode__ln { color: #c8d5e0; }

article .sourcecode--ide.sourcecode--neutral .sourcecode__code { background: #fff; }

article .sourcecode--ide.sourcecode--neutral .sourcecode__code code { color: var(--color-text-body); }

/* ── IDE: Ice ── */

article .sourcecode--ide.sourcecode--ice {
  border: 1px solid #bae6fd;
  box-shadow: 0 4px 20px rgba(14,165,233,0.12), 0 1px 4px rgba(0,0,0,0.04);
}

article .sourcecode--ide.sourcecode--ice .sourcecode__titlebar {
  background: #e0f2fe;
  border-bottom-color: #bae6fd;
}

article .sourcecode--ide.sourcecode--ice .sourcecode__tab {
  background: #f0f9ff;
  color: #0c4a6e;
  border-bottom-color: #0369a1;
}

article .sourcecode--ide.sourcecode--ice .sourcecode__tab:not(.sourcecode__tab--active) {
  background: transparent;
}

article .sourcecode--ide.sourcecode--ice .sourcecode__gutter {
  background: #f0f9ff;
  border-right: 1px solid #bae6fd;
}

article .sourcecode--ide.sourcecode--ice .sourcecode__ln { color: #7dd3fc; }

article .sourcecode--ide.sourcecode--ice .sourcecode__code { background: #f0f9ff; }

article .sourcecode--ide.sourcecode--ice .sourcecode__code code { color: #0c4a6e; }

/* ── IDE: Warm ── */

article .sourcecode--ide.sourcecode--warm {
  border: 1px solid #e8ddd4;
  box-shadow: 0 4px 20px rgba(100,60,10,0.1), 0 1px 4px rgba(0,0,0,0.04);
}

article .sourcecode--ide.sourcecode--warm .sourcecode__titlebar {
  background: #f7f2ef;
  border-bottom-color: #e8ddd4;
}

article .sourcecode--ide.sourcecode--warm .sourcecode__dot--red    { background: #d4846a; }
article .sourcecode--ide.sourcecode--warm .sourcecode__dot--yellow { background: #d4b86a; }
article .sourcecode--ide.sourcecode--warm .sourcecode__dot--green  { background: #8ab89a; }

article .sourcecode--ide.sourcecode--warm .sourcecode__tab {
  background: #faf8f6;
  color: #5c4530;
  border-bottom-color: var(--color-accent);
}

article .sourcecode--ide.sourcecode--warm .sourcecode__tab:not(.sourcecode__tab--active) {
  background: transparent;
}

article .sourcecode--ide.sourcecode--warm .sourcecode__gutter {
  background: #faf8f6;
  border-right: 1px solid #e8ddd4;
}

article .sourcecode--ide.sourcecode--warm .sourcecode__ln { color: #c8b89a; }

article .sourcecode--ide.sourcecode--warm .sourcecode__code { background: #faf8f6; }

article .sourcecode--ide.sourcecode--warm .sourcecode__code code { color: #5c4530; }

/* ══════════════════════════════════════════════════════════════════════════════
   LINE & INLINE HIGHLIGHTS
   highlight="1,3-5" → .sourcecode__hl-line   (full-line tint)
   <!>text</!>       → .sourcecode__hl-inline  (inline accent mark)
   ══════════════════════════════════════════════════════════════════════════════ */

/* ── Line highlight — amber default ── */

article .sourcecode__hl-line {
  display: inline-block;
  width: 100%;
  background: rgba(245, 158, 11, 0.1);
  border-left: 3px solid rgba(245, 158, 11, 0.4);
  padding-left: calc(1.25rem - 3px);
  margin-left: -1.25rem;
  padding-right: 1.25rem;
}

/* Plain default (light bg) */
article .sourcecode--plain .sourcecode__hl-line {
  background: rgba(245, 158, 11, 0.08);
  border-left-color: var(--color-amber-500);
}

/* IDE Neutral */
article .sourcecode--neutral .sourcecode__hl-line {
  background: rgba(245, 158, 11, 0.08);
  border-left-color: var(--color-amber-500);
}

/* IDE Warm */
article .sourcecode--warm .sourcecode__hl-line {
  background: rgba(180, 83, 9, 0.1);
  border-left-color: rgba(180, 83, 9, 0.4);
}

/* Plain dark */
article .sourcecode--plain.sourcecode--dark .sourcecode__hl-line {
  background: rgba(245, 158, 11, 0.1);
  border-left-color: rgba(245, 158, 11, 0.4);
}

/* Plain warm */
article .sourcecode--plain.sourcecode--warm .sourcecode__hl-line {
  background: rgba(180, 83, 9, 0.1);
  border-left-color: rgba(180, 83, 9, 0.4);
}

/* ── Inline mark — amber default ── */

article .sourcecode__hl-inline {
  background: rgba(245, 158, 11, 0.18);
  color: inherit;
  border-radius: 3px;
  padding: 0.1em 0.25em;
  margin: 0 -0.05em;
  outline: 1px solid rgba(245, 158, 11, 0.2);
}

/* Light/neutral bg variants */
article .sourcecode--neutral .sourcecode__hl-inline,
article .sourcecode--plain .sourcecode__hl-inline {
  background: rgba(245, 158, 11, 0.14);
  outline-color: rgba(245, 158, 11, 0.25);
}

/* Dark bg */
article .sourcecode--ide .sourcecode__hl-inline {
  background: rgba(245, 158, 11, 0.2);
  outline-color: rgba(245, 158, 11, 0.25);
}

article .sourcecode--plain.sourcecode--dark .sourcecode__hl-inline {
  background: rgba(251, 191, 36, 0.18);
  outline-color: rgba(251, 191, 36, 0.2);
}

/* Warm */
article .sourcecode--warm .sourcecode__hl-inline {
  background: rgba(180, 83, 9, 0.18);
  outline-color: rgba(180, 83, 9, 0.2);
}

/* ── hl="emerald" ── */

article .sourcecode--hl-emerald .sourcecode__hl-line {
  background: rgba(5, 150, 105, 0.1);
  border-left-color: var(--color-emerald-600);
}

article .sourcecode--hl-emerald .sourcecode__hl-inline {
  background: rgba(5, 150, 105, 0.15);
  outline-color: rgba(5, 150, 105, 0.25);
}

/* emerald on dark bg */
article .sourcecode--ide.sourcecode--hl-emerald .sourcecode__hl-line,
article .sourcecode--dark.sourcecode--hl-emerald .sourcecode__hl-line {
  background: rgba(74, 222, 128, 0.1);
  border-left-color: rgba(74, 222, 128, 0.4);
}

article .sourcecode--ide.sourcecode--hl-emerald .sourcecode__hl-inline,
article .sourcecode--dark.sourcecode--hl-emerald .sourcecode__hl-inline {
  background: rgba(74, 222, 128, 0.15);
  outline-color: rgba(74, 222, 128, 0.2);
}

/* ── hl="crimson" ── */

article .sourcecode--hl-crimson .sourcecode__hl-line {
  background: rgba(203, 0, 62, 0.08);
  border-left-color: var(--color-accent);
}

article .sourcecode--hl-crimson .sourcecode__hl-inline {
  background: rgba(203, 0, 62, 0.15);
  outline-color: rgba(203, 0, 62, 0.2);
}

/* crimson on dark bg */
article .sourcecode--ide.sourcecode--hl-crimson .sourcecode__hl-line,
article .sourcecode--dark.sourcecode--hl-crimson .sourcecode__hl-line {
  background: rgba(251, 113, 133, 0.1);
  border-left-color: rgba(251, 113, 133, 0.4);
}

article .sourcecode--ide.sourcecode--hl-crimson .sourcecode__hl-inline,
article .sourcecode--dark.sourcecode--hl-crimson .sourcecode__hl-inline {
  background: rgba(251, 113, 133, 0.18);
  outline-color: rgba(251, 113, 133, 0.2);
}

/* ══════════════════════════════════════════════════════════════════════════════
   Highlight.js token overrides (loaded conditionally with hljs)
   Scoped per variant + theme so each combination gets correct colors.
   ══════════════════════════════════════════════════════════════════════════════ */

/* ── IDE Dark (default) ── */
article .sourcecode--ide .hljs-tag           { color: #569cd6; }
article .sourcecode--ide .hljs-name          { color: #569cd6; }
article .sourcecode--ide .hljs-attr          { color: #9cdcfe; }
article .sourcecode--ide .hljs-string        { color: #ce9178; }
article .sourcecode--ide .hljs-keyword       { color: #c586c0; }
article .sourcecode--ide .hljs-comment       { color: #6a9955; font-style: italic; }
article .sourcecode--ide .hljs-number        { color: #b5cea8; }
article .sourcecode--ide .hljs-literal        { color: #569cd6; }
article .sourcecode--ide .hljs-built_in      { color: #dcdcaa; }
article .sourcecode--ide .hljs-punctuation   { color: #808080; }
article .sourcecode--ide .hljs-property      { color: #9cdcfe; }
article .sourcecode--ide .hljs-function      { color: #dcdcaa; }
article .sourcecode--ide .hljs-title         { color: #dcdcaa; }
article .sourcecode--ide .hljs-type          { color: #4ec9b0; }
article .sourcecode--ide .hljs-meta          { color: #569cd6; }
article .sourcecode--ide .hljs-variable      { color: #9cdcfe; }
article .sourcecode--ide .hljs-selector-tag  { color: #569cd6; }
article .sourcecode--ide .hljs-selector-class { color: #d7ba7d; }

/* ── IDE Neutral + Ice (both light-bg — share GitHub Light token palette) ── */
article .sourcecode--ide.sourcecode--neutral .hljs-tag,
article .sourcecode--ide.sourcecode--ice .hljs-tag           { color: #22863a; }
article .sourcecode--ide.sourcecode--neutral .hljs-name,
article .sourcecode--ide.sourcecode--ice .hljs-name          { color: #22863a; }
article .sourcecode--ide.sourcecode--neutral .hljs-attr,
article .sourcecode--ide.sourcecode--ice .hljs-attr          { color: #6f42c1; }
article .sourcecode--ide.sourcecode--neutral .hljs-string,
article .sourcecode--ide.sourcecode--ice .hljs-string        { color: #032f62; }
article .sourcecode--ide.sourcecode--neutral .hljs-keyword,
article .sourcecode--ide.sourcecode--ice .hljs-keyword       { color: #d73a49; }
article .sourcecode--ide.sourcecode--neutral .hljs-comment,
article .sourcecode--ide.sourcecode--ice .hljs-comment       { color: #6a737d; font-style: italic; }
article .sourcecode--ide.sourcecode--neutral .hljs-number,
article .sourcecode--ide.sourcecode--ice .hljs-number        { color: #005cc5; }
article .sourcecode--ide.sourcecode--neutral .hljs-literal,
article .sourcecode--ide.sourcecode--ice .hljs-literal       { color: #005cc5; }
article .sourcecode--ide.sourcecode--neutral .hljs-built_in,
article .sourcecode--ide.sourcecode--ice .hljs-built_in      { color: #6f42c1; }
article .sourcecode--ide.sourcecode--neutral .hljs-punctuation,
article .sourcecode--ide.sourcecode--ice .hljs-punctuation   { color: #94a3b8; }
article .sourcecode--ide.sourcecode--neutral .hljs-property,
article .sourcecode--ide.sourcecode--ice .hljs-property      { color: #6f42c1; }
article .sourcecode--ide.sourcecode--neutral .hljs-function,
article .sourcecode--ide.sourcecode--ice .hljs-function      { color: #6f42c1; }
article .sourcecode--ide.sourcecode--neutral .hljs-title,
article .sourcecode--ide.sourcecode--ice .hljs-title         { color: #6f42c1; }
article .sourcecode--ide.sourcecode--neutral .hljs-type,
article .sourcecode--ide.sourcecode--ice .hljs-type          { color: #22863a; }
article .sourcecode--ide.sourcecode--neutral .hljs-meta,
article .sourcecode--ide.sourcecode--ice .hljs-meta          { color: #22863a; }
article .sourcecode--ide.sourcecode--neutral .hljs-variable,
article .sourcecode--ide.sourcecode--ice .hljs-variable      { color: #e36209; }
article .sourcecode--ide.sourcecode--neutral .hljs-selector-tag,
article .sourcecode--ide.sourcecode--ice .hljs-selector-tag  { color: #22863a; }
article .sourcecode--ide.sourcecode--neutral .hljs-selector-class,
article .sourcecode--ide.sourcecode--ice .hljs-selector-class { color: #6f42c1; }

/* ── IDE Warm ── */
article .sourcecode--ide.sourcecode--warm .hljs-tag           { color: #5a7a35; }
article .sourcecode--ide.sourcecode--warm .hljs-name          { color: #5a7a35; }
article .sourcecode--ide.sourcecode--warm .hljs-attr          { color: #7c3d8a; }
article .sourcecode--ide.sourcecode--warm .hljs-string        { color: #7c2d12; }
article .sourcecode--ide.sourcecode--warm .hljs-keyword       { color: #b45309; }
article .sourcecode--ide.sourcecode--warm .hljs-comment       { color: #a08060; font-style: italic; }
article .sourcecode--ide.sourcecode--warm .hljs-number        { color: #1e3a8a; }
article .sourcecode--ide.sourcecode--warm .hljs-literal        { color: #1e3a8a; }
article .sourcecode--ide.sourcecode--warm .hljs-built_in      { color: #b45309; }
article .sourcecode--ide.sourcecode--warm .hljs-punctuation   { color: #c2a07a; }
article .sourcecode--ide.sourcecode--warm .hljs-property      { color: #7c3d8a; }
article .sourcecode--ide.sourcecode--warm .hljs-function      { color: #b45309; }
article .sourcecode--ide.sourcecode--warm .hljs-title         { color: #b45309; }
article .sourcecode--ide.sourcecode--warm .hljs-type          { color: #5a7a35; }
article .sourcecode--ide.sourcecode--warm .hljs-meta          { color: #5a7a35; }
article .sourcecode--ide.sourcecode--warm .hljs-variable      { color: #7c3d8a; }
article .sourcecode--ide.sourcecode--warm .hljs-selector-tag  { color: #5a7a35; }
article .sourcecode--ide.sourcecode--warm .hljs-selector-class { color: #b45309; }

/* ── Plain Dark ── */
article .sourcecode--plain.sourcecode--dark .hljs-tag           { color: #7dd3fc; }
article .sourcecode--plain.sourcecode--dark .hljs-name          { color: #7dd3fc; }
article .sourcecode--plain.sourcecode--dark .hljs-attr          { color: #c4b5fd; }
article .sourcecode--plain.sourcecode--dark .hljs-string        { color: #86efac; }
article .sourcecode--plain.sourcecode--dark .hljs-keyword       { color: #f9a8d4; }
article .sourcecode--plain.sourcecode--dark .hljs-comment       { color: #64748b; font-style: italic; }
article .sourcecode--plain.sourcecode--dark .hljs-number        { color: #fde68a; }
article .sourcecode--plain.sourcecode--dark .hljs-literal        { color: #7dd3fc; }
article .sourcecode--plain.sourcecode--dark .hljs-built_in      { color: #fde68a; }
article .sourcecode--plain.sourcecode--dark .hljs-punctuation   { color: #64748b; }
article .sourcecode--plain.sourcecode--dark .hljs-property      { color: #c4b5fd; }
article .sourcecode--plain.sourcecode--dark .hljs-function      { color: #fde68a; }
article .sourcecode--plain.sourcecode--dark .hljs-title         { color: #fde68a; }
article .sourcecode--plain.sourcecode--dark .hljs-type          { color: #86efac; }
article .sourcecode--plain.sourcecode--dark .hljs-variable      { color: #c4b5fd; }

/* ── Plain Default (light) — subtle highlighting ── */
article .sourcecode--plain .hljs-tag           { color: #22863a; }
article .sourcecode--plain .hljs-name          { color: #22863a; }
article .sourcecode--plain .hljs-attr          { color: #6f42c1; }
article .sourcecode--plain .hljs-string        { color: #032f62; }
article .sourcecode--plain .hljs-keyword       { color: #d73a49; }
article .sourcecode--plain .hljs-comment       { color: #6a737d; font-style: italic; }
article .sourcecode--plain .hljs-number        { color: #005cc5; }
article .sourcecode--plain .hljs-literal        { color: #005cc5; }
article .sourcecode--plain .hljs-built_in      { color: #6f42c1; }
article .sourcecode--plain .hljs-punctuation   { color: #94a3b8; }
article .sourcecode--plain .hljs-property      { color: #6f42c1; }
article .sourcecode--plain .hljs-function      { color: #6f42c1; }
article .sourcecode--plain .hljs-title         { color: #6f42c1; }
article .sourcecode--plain .hljs-type          { color: #22863a; }
article .sourcecode--plain .hljs-variable      { color: #e36209; }

/* ── Plain Warm — earth tones ── */
article .sourcecode--plain.sourcecode--warm .hljs-tag           { color: #5a7a35; }
article .sourcecode--plain.sourcecode--warm .hljs-name          { color: #5a7a35; }
article .sourcecode--plain.sourcecode--warm .hljs-attr          { color: #7c3d8a; }
article .sourcecode--plain.sourcecode--warm .hljs-string        { color: #7c2d12; }
article .sourcecode--plain.sourcecode--warm .hljs-keyword       { color: #b45309; }
article .sourcecode--plain.sourcecode--warm .hljs-comment       { color: #a08060; font-style: italic; }
article .sourcecode--plain.sourcecode--warm .hljs-number        { color: #1e3a8a; }
article .sourcecode--plain.sourcecode--warm .hljs-literal        { color: #1e3a8a; }
article .sourcecode--plain.sourcecode--warm .hljs-built_in      { color: #b45309; }
article .sourcecode--plain.sourcecode--warm .hljs-punctuation   { color: #c2a07a; }
article .sourcecode--plain.sourcecode--warm .hljs-property      { color: #7c3d8a; }
article .sourcecode--plain.sourcecode--warm .hljs-function      { color: #b45309; }
article .sourcecode--plain.sourcecode--warm .hljs-title         { color: #b45309; }
article .sourcecode--plain.sourcecode--warm .hljs-type          { color: #5a7a35; }
article .sourcecode--plain.sourcecode--warm .hljs-variable      { color: #7c3d8a; }

/* ── Plain Sand — golden parchment ── */
article .sourcecode--plain.sourcecode--sand .hljs-tag           { color: #7a6030; }
article .sourcecode--plain.sourcecode--sand .hljs-name          { color: #7a6030; }
article .sourcecode--plain.sourcecode--sand .hljs-attr          { color: #7c3d8a; }
article .sourcecode--plain.sourcecode--sand .hljs-string        { color: #8c4a18; }
article .sourcecode--plain.sourcecode--sand .hljs-keyword       { color: #c07820; }
article .sourcecode--plain.sourcecode--sand .hljs-comment       { color: #b09060; font-style: italic; }
article .sourcecode--plain.sourcecode--sand .hljs-number        { color: #2c5282; }
article .sourcecode--plain.sourcecode--sand .hljs-literal       { color: #2c5282; }
article .sourcecode--plain.sourcecode--sand .hljs-built_in      { color: #c07820; }
article .sourcecode--plain.sourcecode--sand .hljs-punctuation   { color: #c8a870; }
article .sourcecode--plain.sourcecode--sand .hljs-property      { color: #7c3d8a; }
article .sourcecode--plain.sourcecode--sand .hljs-function      { color: #c07820; }
article .sourcecode--plain.sourcecode--sand .hljs-title         { color: #c07820; }
article .sourcecode--plain.sourcecode--sand .hljs-type          { color: #7a6030; }
article .sourcecode--plain.sourcecode--sand .hljs-variable      { color: #8c4a18; }
