/* syntax.css — Monochrome Prism.js syntax highlighting.
   No toggle — always active on language-annotated code blocks.
   No hue: only bold, italic, and opacity variations matching site palette.
   Dark mode is automatic via CSS custom properties. */


/* Comments: faint + italic — least prominent */
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata,
.token.shebang {
    color: var(--text-faint);
    font-style: italic;
}

/* Keywords, control flow: bold — most prominent */
.token.keyword,
.token.rule,
.token.important,
.token.atrule,
.token.builtin,
.token.deleted {
    font-weight: 700;
}

/* Strings: muted */
.token.string,
.token.char,
.token.attr-value,
.token.regex,
.token.template-string,
.token.inserted {
    color: var(--text-muted);
}

/* Numbers and booleans: full text color (explicit for completeness) */
.token.number,
.token.boolean,
.token.constant {
    color: var(--text);
}

/* Punctuation and operators: faint — structural noise, recede */
.token.punctuation,
.token.operator {
    color: var(--text-faint);
}

/* Functions and class names: semibold */
.token.function,
.token.function-definition,
.token.class-name,
.token.maybe-class-name {
    font-weight: 600;
}

/* Tags (HTML/XML): semibold */
.token.tag {
    font-weight: 600;
}

/* Attribute names: muted */
.token.attr-name,
.token.property {
    color: var(--text-muted);
}

/* Selectors (CSS): semibold */
.token.selector {
    font-weight: 600;
}

/* Type annotations and namespaces: italic + muted */
.token.namespace,
.token.type-annotation,
.token.type {
    font-style: italic;
    color: var(--text-muted);
}

/* Variables and parameters: italic */
.token.variable,
.token.parameter {
    font-style: italic;
}

/* URLs: muted underline */
.token.url {
    color: var(--text-muted);
    text-decoration: underline;
    text-decoration-color: var(--border);
}
