@import url("https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&display=swap");
/* ============================================================
   NEWSPAPER
   A minimalist newspaper theme for Obsidian.

   Editorial typography in the spirit of the finer papers:
   warm paper, quiet chrome, and serifs that are a pleasure
   to read — and to write with.

   Repo: https://github.com/mladenpr/Newspaper
   ============================================================ */

/* ------------------------------------------------------------
   1 · FONTS

   Newspaper ships no font files. It leans on the best serifs
   already on your system: Charter (macOS), Iowan Old Style,
   Georgia, Cambria (Windows). See the README for optional
   free fonts that get you even closer to the FT/Anthropic
   article feel (Source Serif 4, Newsreader).
   ------------------------------------------------------------ */
body {
  --newsprint-serif: "Charter", "Bitstream Charter", "Iowan Old Style",
    "Source Serif 4", "Newsreader", "Georgia", "Cambria",
    "Times New Roman", serif;
  --newsprint-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter",
    "Roboto", "Helvetica Neue", "Arial", sans-serif;
  --newsprint-mono: ui-monospace, "SF Mono", "Cascadia Code",
    "JetBrains Mono", "Menlo", "Consolas", monospace;
  --newsprint-serif-ui: "Georgia", "Charter", "Bitstream Charter",
    "Iowan Old Style", "Cambria", "Times New Roman", serif;

  /* Notes in a text serif; the chrome in Georgia — the classic
     screen serif — kept small and quiet so the whole app reads
     like one printed page. Prefer a sans interface? Set it under
     Settings → Appearance → Font, or point --font-interface-theme
     at --newsprint-sans in a snippet. */
  --font-text-theme: var(--newsprint-serif);
  --font-interface-theme: var(--newsprint-serif-ui);
  --font-monospace-theme: var(--newsprint-mono);
}

/* ------------------------------------------------------------
   2 · MEASURE & RHYTHM

   A comfortable column width, generous leading, and restrained
   corner radii — printed pages don't have rounded corners.
   ------------------------------------------------------------ */
body {
  --newsprint-line-height: 1.7;
  --line-height-normal: var(--newsprint-line-height);
  --p-spacing: 0.9em;
  --newsprint-line-width: 42em;
  --file-line-width: var(--newsprint-line-width);
  --normal-weight: 400;
  --bold-weight: 700;

  --radius-s: 2px;
  --radius-m: 4px;
  --radius-l: 6px;
  --radius-xl: 10px;
  --input-radius: 4px;
}

/* ------------------------------------------------------------
   3 · PAPER — light palette

   Warm ivory paper, near-black warm ink, and a clay/claret
   accent. Every grey is mixed with a little brown so nothing
   feels industrial.
   ------------------------------------------------------------ */
.theme-light {
  color-scheme: light;

  --color-base-00: #faf5ed; /* the page            */
  --color-base-05: #f4eee3; /* sidebars, panels    */
  --color-base-10: #efe8db; /* chips, code         */
  --color-base-20: #e9e1d2; /* subtle borders      */
  --color-base-25: #e2d9c8;
  --color-base-30: #d8cdba; /* hairlines           */
  --color-base-35: #c4b8a2; /* rules, hover lines  */
  --color-base-40: #aba089; /* faint text          */
  --color-base-50: #877c69; /* muted icons         */
  --color-base-60: #6a604f;
  --color-base-70: #4a4237; /* secondary text      */
  --color-base-100: #1e1b16; /* body ink           */

  /* Clay accent — warm, editorial, never neon. */
  --accent-h: 16;
  --accent-s: 51%;
  --accent-l: 44%;

  --text-selection: hsla(16, 45%, 50%, 0.18);
  --text-highlight-bg: rgba(203, 158, 60, 0.25);
  --background-modifier-hover: rgba(94, 78, 55, 0.07);

  /* Editorial section colours — muted, ink-like. */
  --color-red: #a13d34;
  --color-red-rgb: 161, 61, 52;
  --color-orange: #b4642b;
  --color-orange-rgb: 180, 100, 43;
  --color-yellow: #a8862d;
  --color-yellow-rgb: 168, 134, 45;
  --color-green: #5d7a48;
  --color-green-rgb: 93, 122, 72;
  --color-cyan: #20756c;
  --color-cyan-rgb: 32, 117, 108;
  --color-blue: #3e688c;
  --color-blue-rgb: 62, 104, 140;
  --color-purple: #6f5589;
  --color-purple-rgb: 111, 85, 137;
  --color-pink: #9c4f68;
  --color-pink-rgb: 156, 79, 104;

  --scrollbar-thumb-bg: rgba(60, 50, 35, 0.14);
  --scrollbar-active-thumb-bg: rgba(60, 50, 35, 0.3);

  /* Keep chrome surfaces warm — and fully opaque: no grey glass
     shows through, even with Translucent window enabled on macOS. */
  --background-secondary-alt: var(--color-base-10);
  --workspace-background-translucent: var(--color-base-05);
}

/* ------------------------------------------------------------
   4 · INK — dark palette

   Not black: a warm charcoal, like a reading lamp on newsprint.
   ------------------------------------------------------------ */
.theme-dark {
  color-scheme: dark;

  --color-base-00: #201e1b;
  --color-base-05: #262320;
  --color-base-10: #2a2724;
  --color-base-20: #2f2b28;
  --color-base-25: #34302b;
  --color-base-30: #3b362f;
  --color-base-35: #4a443c;
  --color-base-40: #5c554c;
  --color-base-50: #7e766a;
  --color-base-60: #99917f;
  --color-base-70: #b9b1a4;
  --color-base-100: #eae4d8;

  --accent-h: 18;
  --accent-s: 47%;
  --accent-l: 62%;
  --text-on-accent: #201e1b;
  --text-on-accent-inverted: #eae4d8;

  --text-selection: hsla(18, 40%, 60%, 0.25);
  --text-highlight-bg: rgba(203, 158, 60, 0.22);
  --background-modifier-hover: rgba(234, 228, 216, 0.06);

  --color-red: #ce8272;
  --color-red-rgb: 206, 130, 114;
  --color-orange: #ce9a66;
  --color-orange-rgb: 206, 154, 102;
  --color-yellow: #cbb273;
  --color-yellow-rgb: 203, 178, 115;
  --color-green: #9cb287;
  --color-green-rgb: 156, 178, 135;
  --color-cyan: #82b3aa;
  --color-cyan-rgb: 130, 179, 170;
  --color-blue: #8faec7;
  --color-blue-rgb: 143, 174, 199;
  --color-purple: #ac97c4;
  --color-purple-rgb: 172, 151, 196;
  --color-pink: #c495a7;
  --color-pink-rgb: 196, 149, 167;

  --scrollbar-thumb-bg: rgba(230, 220, 200, 0.1);
  --scrollbar-active-thumb-bg: rgba(230, 220, 200, 0.25);

  /* Keep chrome surfaces warm — and fully opaque: no grey glass
     shows through, even with Translucent window enabled on macOS. */
  --background-secondary-alt: var(--color-base-05);
  --workspace-background-translucent: var(--color-base-05);
}

/* ------------------------------------------------------------
   5 · HEADLINES

   A restrained editorial scale. H5 is set in small caps,
   H6 works as a kicker — the little uppercase label that
   sits above newspaper headlines.
   ------------------------------------------------------------ */
body {
  --heading-spacing: 2em;

  --h1-size: 1.9em;
  --h1-weight: 700;
  --h1-line-height: 1.2;
  --h2-size: 1.45em;
  --h2-weight: 700;
  --h2-line-height: 1.25;
  --h3-size: 1.2em;
  --h3-weight: 700;
  --h3-line-height: 1.3;
  --h4-size: 1.05em;
  --h4-weight: 700;
  --h4-line-height: 1.4;
  --h5-size: 1em;
  --h5-weight: 600;
  --h5-line-height: 1.4;
  --h6-size: 0.8em;
  --h6-weight: 600;
  --h6-line-height: 1.4;
  --h6-color: var(--text-muted);

  --inline-title-size: 2.2em;
  --inline-title-weight: 700;
  --inline-title-line-height: 1.15;
}

/* Tighter tracking on the big sizes, as display serifs want. */
.markdown-rendered h1,
.markdown-rendered h2,
.markdown-preview-view h1,
.markdown-preview-view h2,
.cm-s-obsidian .cm-header-1,
.cm-s-obsidian .cm-header-2,
.inline-title {
  letter-spacing: -0.015em;
}

/* The note title as a masthead: a hairline under the headline. */
.inline-title {
  padding-bottom: 0.3em;
  border-bottom: 1px solid var(--background-modifier-border);
  margin-bottom: 0.7em;
}

/* Section heads carry a thin rule, like column dividers. */
.markdown-rendered h2,
.markdown-preview-view h2,
.markdown-source-view.mod-cm6 .HyperMD-header-2 {
  padding-bottom: 0.25em;
  border-bottom: 1px solid var(--background-modifier-border);
}

/* H5 — small capitals. */
.markdown-rendered h5,
.markdown-preview-view h5,
.cm-s-obsidian .cm-header-5 {
  font-variant-caps: small-caps;
  letter-spacing: 0.04em;
}

/* H6 — the kicker: quiet, uppercase, letterspaced sans. */
.markdown-rendered h6,
.markdown-preview-view h6,
.cm-s-obsidian .cm-header-6 {
  font-family: var(--font-interface);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--h6-color);
}

/* ------------------------------------------------------------
   6 · BODY TEXT

   Old-style figures in running text (like FT body copy),
   lining tabular figures wherever numbers must line up.
   ------------------------------------------------------------ */
.markdown-rendered,
.markdown-preview-view,
.markdown-source-view.mod-cm6 .cm-content {
  font-variant-numeric: oldstyle-nums proportional-nums;
}

.markdown-rendered code,
.markdown-rendered pre,
.markdown-rendered table,
.cm-s-obsidian .cm-inline-code,
.cm-s-obsidian .HyperMD-codeblock,
.cm-table-widget table {
  font-variant-numeric: lining-nums tabular-nums;
}

/* A warm caret while you write. */
body {
  --caret-color: var(--text-accent);
}

/* ------------------------------------------------------------
   7 · LINKS

   Underlined, as newspapers do it: a hairline underline that
   darkens on hover, never a highlighter.
   ------------------------------------------------------------ */
body {
  --link-decoration: underline;
  --link-decoration-hover: underline;
  --link-external-decoration: underline;
}

.markdown-rendered a,
.markdown-preview-view a,
.cm-s-obsidian span.cm-link .cm-underline,
.cm-s-obsidian span.cm-hmd-internal-link .cm-underline,
.cm-s-obsidian span.cm-url .cm-underline {
  text-decoration-thickness: 1px;
  text-underline-offset: 2.5px;
  text-decoration-color: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 0.45);
}

.markdown-rendered a:hover,
.markdown-preview-view a:hover,
.cm-s-obsidian span.cm-link .cm-underline:hover,
.cm-s-obsidian span.cm-hmd-internal-link .cm-underline:hover {
  text-decoration-color: currentColor;
}

/* ------------------------------------------------------------
   8 · PULL QUOTES

   Blockquotes read like pull quotes: italic serif against a
   slim clay rule.
   ------------------------------------------------------------ */
body {
  --blockquote-border-thickness: 2px;
  --blockquote-border-color: var(--interactive-accent);
  --blockquote-font-style: italic;
  --blockquote-color: var(--text-muted);
  --blockquote-background-color: transparent;
}

.markdown-rendered blockquote,
.markdown-preview-view blockquote {
  font-size: 1.02em;
  line-height: 1.6;
}

/* ------------------------------------------------------------
   9 · RULES

   Thematic breaks are the classic double rule between
   newspaper sections.
   ------------------------------------------------------------ */
body {
  --hr-color: var(--color-base-35);
}

.markdown-rendered hr,
.markdown-preview-view hr,
.markdown-source-view hr {
  border: none;
  border-top: 4px double var(--hr-color);
}

/* ------------------------------------------------------------
   10 · TABLES

   Financial-page tables: horizontal hairlines only, a strong
   opening rule, sans-serif column heads in letterspaced caps.
   ------------------------------------------------------------ */
body {
  --table-background: transparent;
  --table-border-width: 0px;
  --table-border-color: var(--background-modifier-border);
  --table-header-background: transparent;
  --table-header-background-hover: transparent;
  --table-header-weight: 600;
  --table-header-size: 0.72em;
  --table-header-color: var(--text-muted);
  --table-text-size: 0.95em;
  --table-row-alt-background: transparent;
  --table-row-background-hover: var(--background-modifier-hover);
  --table-cell-vertical-alignment: top;
}

.markdown-rendered table,
.markdown-preview-view table,
.cm-table-widget table {
  border-collapse: collapse;
}

.markdown-rendered th,
.markdown-preview-view th,
.cm-table-widget th {
  font-family: var(--font-interface);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  border: none;
  border-top: 2px solid var(--text-normal);
  border-bottom: 1px solid var(--color-base-35);
}

.markdown-rendered td,
.markdown-preview-view td,
.cm-table-widget td {
  border: none;
  border-bottom: 1px solid var(--background-modifier-border);
}

/* ------------------------------------------------------------
   11 · CODE

   Set on a slightly deeper paper chip; monospace keeps lining
   figures.
   ------------------------------------------------------------ */
body {
  --code-size: 0.85em;
  --code-radius: var(--radius-s);
  --code-background: var(--color-base-10);
  --code-normal: var(--text-normal);
  --code-comment: var(--text-faint);
}

/* ------------------------------------------------------------
   12 · CALLOUTS

   Sidebar boxes: a hairline frame, the faintest wash of the
   callout colour, and an uppercase sans label.
   ------------------------------------------------------------ */
body {
  --callout-border-width: 1px;
  --callout-radius: var(--radius-s);
}

.callout {
  background-color: rgba(var(--callout-color), 0.05);
  border: 1px solid rgba(var(--callout-color), 0.3);
}

.callout-title-inner {
  font-family: var(--font-interface);
  font-size: 0.8em;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* Embedded notes framed like clippings. */
body {
  --embed-border-left: 2px solid var(--background-modifier-border-hover);
}

/* ------------------------------------------------------------
   13 · TAGS, TASKS & LISTS
   ------------------------------------------------------------ */
body {
  --tag-size: 0.78em;
  --tag-color: var(--text-muted);
  --tag-color-hover: var(--text-accent);
  --tag-background: transparent;
  --tag-background-hover: var(--background-modifier-hover);
  --tag-border-color: var(--background-modifier-border-hover);
  --tag-border-color-hover: var(--background-modifier-border-focus);
  --tag-border-width: 1px;
  --tag-radius: 2px;
  --tag-weight: 500;
  --tag-padding-x: 0.65em;
  --tag-padding-y: 0.12em;
}

a.tag,
.cm-s-obsidian .cm-hashtag {
  font-family: var(--font-interface);
  letter-spacing: 0.02em;
}

body {
  --checkbox-size: 1.05em;
  --checkbox-radius: 2px;
  --checkbox-border-color: var(--color-base-40);
  --checkbox-border-color-hover: var(--color-base-50);
  --checklist-done-color: var(--text-faint);
  --checklist-done-decoration: line-through;

  --list-marker-color: var(--text-faint);
  --list-marker-color-hover: var(--text-muted);
  --list-marker-color-collapsed: var(--text-accent);
  --list-spacing: 0.15em;

  --footnote-size: 0.8em;
}

/* ------------------------------------------------------------
   14 · CHROME

   The interface recedes: quiet sans, smaller sizes, warm
   panels, hairline dividers.
   ------------------------------------------------------------ */
body {
  --titlebar-background: var(--background-secondary);
  --titlebar-background-focused: var(--background-secondary);
  --ribbon-background: var(--background-secondary);
  --ribbon-background-collapsed: var(--background-secondary);

  --divider-color: var(--background-modifier-border);
  --divider-width: 1px;

  /* The tab strip is paper too — no grey window frame. */
  --tab-container-background: var(--background-secondary);
  --tab-background-active: var(--background-primary);
  --tab-divider-color: var(--background-modifier-border);
  --tab-outline-color: var(--background-modifier-border);
  --tab-font-size: 13px;

  --status-bar-background: var(--background-secondary);
  --status-bar-border-color: var(--background-modifier-border);

  --nav-item-size: 13px;
  --nav-item-color: var(--text-muted);
  --nav-item-color-active: var(--text-normal);
  --nav-item-weight-active: 600;

  --vault-name-font-size: 13px;
  --vault-name-font-weight: 600;
  --vault-name-color: var(--text-normal);
}

/* Properties panel in the interface sans. */
.metadata-container {
  font-family: var(--font-interface);
}

/* ------------------------------------------------------------
   15 · SETTINGS

   Everything below is optional. Without the Style Settings
   plugin the theme runs on the defaults you see above; with it,
   Settings → Style Settings → Newspaper offers the controls
   declared in the block that follows. Each control either sets
   a --newsprint-* variable (settable from a CSS snippet too) or
   adds a class to <body>.

   Plugin-free per-note widths: add `narrow`, `wide` or `full`
   to a note's cssclasses property.
   ------------------------------------------------------------ */

/* @settings

name: Newspaper
id: newspaper
settings:
  -
    id: newsprint-layout
    title: Layout
    type: heading
    level: 1
    collapsed: false
  -
    id: newsprint-line-width
    title: Text width
    description: "Line length of notes when Readable line length is on. Per-note overrides: add narrow, wide or full to a note's cssclasses."
    type: variable-number-slider
    default: 42
    min: 28
    max: 90
    step: 1
    format: em
  -
    id: newsprint-focus
    title: Focus mode
    description: "Hide the ribbon and status bar, and fade the tab bar until you hover it. Also available as a command."
    type: class-toggle
    default: false
    addCommand: true
  -
    id: newsprint-typography
    title: Typography
    type: heading
    level: 1
    collapsed: false
  -
    id: newsprint-line-height
    title: Line height
    description: "Leading of note text."
    type: variable-number-slider
    default: 1.7
    min: 1.4
    max: 2
    step: 0.05
  -
    id: newsprint-ui-sans
    title: Sans-serif interface
    description: "Set the interface (sidebars, tabs, labels) in the system sans instead of Georgia."
    type: class-toggle
    default: false
  -
    id: newsprint-justify
    title: Justified text
    description: "Justify paragraphs with automatic hyphenation, like newspaper columns."
    type: class-toggle
    default: false
  -
    id: newsprint-dropcap
    title: Drop cap
    description: "Open each note with a drop cap on the first paragraph (reading view)."
    type: class-toggle
    default: false
  -
    id: newsprint-no-rules
    title: Hide masthead and section rules
    description: "Remove the hairlines under the note title and under H2 headings."
    type: class-toggle
    default: false
  -
    id: newsprint-headings
    title: Headings
    type: heading
    level: 1
    collapsed: false
  -
    id: newsprint-heading-color
    title: Heading colour
    description: "Ink is the default. Accent, Muted and Claret colour H1–H3 (and the note title); Custom uses the pickers below for all six levels."
    type: class-select
    allowEmpty: false
    default: newsprint-headings-ink
    options:
      -
        label: Ink (default)
        value: newsprint-headings-ink
      -
        label: Accent
        value: newsprint-headings-accent
      -
        label: Muted
        value: newsprint-headings-muted
      -
        label: Claret
        value: newsprint-headings-claret
      -
        label: Custom
        value: newsprint-headings-custom
  -
    id: newsprint-h1-color
    title: H1 colour (also the note title)
    description: "Used only when Heading colour is set to Custom."
    type: variable-themed-color
    format: hex
    default-light: '#1e1b16'
    default-dark: '#eae4d8'
  -
    id: newsprint-h2-color
    title: H2 colour
    description: "Used only when Heading colour is set to Custom."
    type: variable-themed-color
    format: hex
    default-light: '#1e1b16'
    default-dark: '#eae4d8'
  -
    id: newsprint-h3-color
    title: H3 colour
    description: "Used only when Heading colour is set to Custom."
    type: variable-themed-color
    format: hex
    default-light: '#1e1b16'
    default-dark: '#eae4d8'
  -
    id: newsprint-h4-color
    title: H4 colour
    description: "Used only when Heading colour is set to Custom."
    type: variable-themed-color
    format: hex
    default-light: '#1e1b16'
    default-dark: '#eae4d8'
  -
    id: newsprint-h5-color
    title: H5 colour
    description: "Used only when Heading colour is set to Custom."
    type: variable-themed-color
    format: hex
    default-light: '#1e1b16'
    default-dark: '#eae4d8'
  -
    id: newsprint-h6-color
    title: H6 colour (kicker)
    description: "Used only when Heading colour is set to Custom."
    type: variable-themed-color
    format: hex
    default-light: '#4a4237'
    default-dark: '#b9b1a4'
  -
    id: newsprint-paper
    title: Paper & ink
    type: heading
    level: 1
    collapsed: false
  -
    id: newsprint-paper-tone
    title: Paper tone (light mode)
    description: "Ivory is the default. Bright is a cleaner white; Sepia is aged newsprint."
    type: class-select
    allowEmpty: false
    default: newsprint-paper-ivory
    options:
      -
        label: Ivory
        value: newsprint-paper-ivory
      -
        label: Bright
        value: newsprint-paper-bright
      -
        label: Sepia
        value: newsprint-paper-sepia
  -
    id: newsprint-ink-tone
    title: Ink tone (dark mode)
    description: "Charcoal is the default. True black suits OLED screens."
    type: class-select
    allowEmpty: false
    default: newsprint-ink-charcoal
    options:
      -
        label: Charcoal
        value: newsprint-ink-charcoal
      -
        label: True black
        value: newsprint-ink-black
  -
    id: newsprint-elements
    title: Elements
    type: heading
    level: 1
    collapsed: false
  -
    id: newsprint-links
    title: Link underlines
    type: class-select
    allowEmpty: false
    default: newsprint-links-hairline
    options:
      -
        label: Hairline (default)
        value: newsprint-links-hairline
      -
        label: On hover only
        value: newsprint-links-hover
      -
        label: None
        value: newsprint-links-none
  -
    id: newsprint-quotes
    title: Blockquote style
    description: "Pull quote applies in reading view."
    type: class-select
    allowEmpty: false
    default: newsprint-quote-rule
    options:
      -
        label: Left rule (default)
        value: newsprint-quote-rule
      -
        label: Centered pull quote
        value: newsprint-quote-pull
  -
    id: newsprint-tables
    title: Table style
    type: class-select
    allowEmpty: false
    default: newsprint-table-hairline
    options:
      -
        label: Hairlines (default)
        value: newsprint-table-hairline
      -
        label: Zebra rows
        value: newsprint-table-zebra
  -
    id: newsprint-highlight
    title: Highlight colour
    description: "Wash behind ==highlighted== text, tuned for light and dark mode."
    type: class-select
    allowEmpty: false
    default: newsprint-highlight-marker
    options:
      -
        label: Marker yellow (default)
        value: newsprint-highlight-marker
      -
        label: Rose
        value: newsprint-highlight-rose
      -
        label: Sage
        value: newsprint-highlight-sage
      -
        label: Sky
        value: newsprint-highlight-sky
  -
    id: newsprint-checkboxes
    title: Alternate checkboxes
    description: "Extra task states drawn as glyphs: [-] cancelled, [>] forwarded, [<] scheduled, [?] question, [!] important, [i] info, [*] star."
    type: class-toggle
    default: false

*/

/* --- Layout: per-note widths without any plugin ------------- */
.markdown-source-view.narrow,
.markdown-preview-view.narrow {
  --file-line-width: 34em;
}

.markdown-source-view.wide,
.markdown-preview-view.wide {
  --file-line-width: 62em;
}

.markdown-source-view.full,
.markdown-preview-view.full {
  --file-line-width: 100%;
}

/* --- Layout: focus mode ------------------------------------- */
.newsprint-focus .workspace-ribbon.mod-left,
.newsprint-focus .status-bar {
  display: none;
}

.newsprint-focus .workspace-split.mod-root .workspace-tab-header-container {
  opacity: 0;
  transition: opacity 150ms ease;
}

.newsprint-focus .workspace-split.mod-root .workspace-tab-header-container:hover {
  opacity: 1;
}

/* --- Typography: sans-serif interface ----------------------- */
.newsprint-ui-sans {
  --font-interface-theme: var(--newsprint-sans);
}

/* --- Typography: justified text ----------------------------- */
.newsprint-justify .markdown-rendered p,
.newsprint-justify .markdown-preview-view p,
.newsprint-justify .markdown-rendered li,
.newsprint-justify .markdown-preview-view li,
.newsprint-justify .markdown-source-view.mod-cm6 .cm-line:not([class*="HyperMD"]),
.newsprint-justify .markdown-source-view.mod-cm6 .cm-line.HyperMD-list-line {
  text-align: justify;
  -webkit-hyphens: auto;
  hyphens: auto;
}

/* --- Typography: drop cap on the lead paragraph ------------- */
.newsprint-dropcap .markdown-preview-view .markdown-preview-sizer > .mod-header + div > p::first-letter {
  float: left;
  font-size: 3.4em;
  line-height: 0.8;
  font-weight: 700;
  padding: 0.1em 0.12em 0 0;
  color: var(--text-normal);
}

/* --- Typography: masthead and section rules off ------------- */
.newsprint-no-rules .inline-title {
  border-bottom: none;
  padding-bottom: 0;
}

.newsprint-no-rules .markdown-rendered h2,
.newsprint-no-rules .markdown-preview-view h2,
.newsprint-no-rules .markdown-source-view.mod-cm6 .HyperMD-header-2 {
  border-bottom: none;
  padding-bottom: 0;
}

/* --- Headings: colour presets and custom colours ------------ */
.newsprint-headings-accent {
  --h1-color: var(--text-accent);
  --h2-color: var(--text-accent);
  --h3-color: var(--text-accent);
  --inline-title-color: var(--text-accent);
}

.newsprint-headings-muted {
  --h1-color: var(--text-muted);
  --h2-color: var(--text-muted);
  --h3-color: var(--text-muted);
  --inline-title-color: var(--text-muted);
}

/* Claret: the classic broadsheet headline red, lifted to a soft
   rose in dark mode so it keeps its character on charcoal and black. */
.theme-light.newsprint-headings-claret {
  --newsprint-claret: #8c1d2f;
}

.theme-dark.newsprint-headings-claret {
  --newsprint-claret: #d98f9a;
}

.newsprint-headings-claret {
  --h1-color: var(--newsprint-claret);
  --h2-color: var(--newsprint-claret);
  --h3-color: var(--newsprint-claret);
  --inline-title-color: var(--newsprint-claret);
}

.newsprint-headings-custom {
  --h1-color: var(--newsprint-h1-color, var(--text-normal));
  --h2-color: var(--newsprint-h2-color, var(--text-normal));
  --h3-color: var(--newsprint-h3-color, var(--text-normal));
  --h4-color: var(--newsprint-h4-color, var(--text-normal));
  --h5-color: var(--newsprint-h5-color, var(--text-normal));
  --h6-color: var(--newsprint-h6-color, var(--text-muted));
  --inline-title-color: var(--newsprint-h1-color, var(--text-normal));
}

/* --- Paper & ink: alternate light tones --------------------- */
.theme-light.newsprint-paper-bright {
  --color-base-00: #fdfcfa;
  --color-base-05: #f7f5f0;
  --color-base-10: #f1eee8;
  --color-base-20: #ebe7df;
  --color-base-25: #e3dfd6;
  --color-base-30: #d8d3c9;
  --color-base-35: #c6c0b4;
  --color-base-40: #aba59a;
  --color-base-50: #878175;
  --color-base-60: #69645b;
  --color-base-70: #48443e;
  --color-base-100: #1b1917;
}

.theme-light.newsprint-paper-sepia {
  --color-base-00: #f2e8d5;
  --color-base-05: #ebe0cb;
  --color-base-10: #e5d9c2;
  --color-base-20: #ded1b8;
  --color-base-25: #d6c8ad;
  --color-base-30: #cabaa0;
  --color-base-35: #b8a78a;
  --color-base-40: #9f8f79;
  --color-base-50: #7d6f5c;
  --color-base-60: #645746;
  --color-base-70: #483d30;
  --color-base-100: #231c13;
}

/* --- Paper & ink: true black for OLED ----------------------- */
.theme-dark.newsprint-ink-black {
  --color-base-00: #000000;
  --color-base-05: #0d0d0c;
  --color-base-10: #131312;
  --color-base-20: #191917;
  --color-base-25: #1f1e1c;
  --color-base-30: #282722;
  --color-base-35: #34332e;
  --color-base-40: #4a4842;
  --color-base-50: #6f6c64;
  --color-base-60: #8f8b82;
  --color-base-70: #b6b1a6;
  --color-base-100: #ece7dc;
}

/* --- Elements: link underlines ------------------------------ */
.newsprint-links-hover {
  --link-decoration: none;
  --link-external-decoration: none;
  --link-decoration-hover: underline;
}

.newsprint-links-none {
  --link-decoration: none;
  --link-external-decoration: none;
  --link-decoration-hover: none;
}

/* --- Elements: centered pull quote (reading view) ----------- */
.newsprint-quote-pull .markdown-rendered blockquote,
.newsprint-quote-pull .markdown-preview-view blockquote {
  margin: 1.6em auto;
  padding: 1em 2em 1.1em;
  border-left: none;
  border-top: 1px solid var(--background-modifier-border);
  border-bottom: 1px solid var(--background-modifier-border);
  text-align: center;
  font-size: 1.15em;
  line-height: 1.5;
}

.newsprint-quote-pull .markdown-rendered blockquote::before,
.newsprint-quote-pull .markdown-preview-view blockquote::before {
  content: "\201C";
  display: block;
  font-size: 2.6em;
  line-height: 0.6;
  margin-bottom: 0.25em;
  color: var(--text-accent);
  font-style: normal;
}

/* --- Elements: highlight washes ----------------------------- */
.theme-light.newsprint-highlight-rose {
  --text-highlight-bg: rgba(190, 80, 100, 0.2);
}

.theme-dark.newsprint-highlight-rose {
  --text-highlight-bg: rgba(217, 143, 154, 0.26);
}

.theme-light.newsprint-highlight-sage {
  --text-highlight-bg: rgba(93, 122, 72, 0.22);
}

.theme-dark.newsprint-highlight-sage {
  --text-highlight-bg: rgba(156, 178, 135, 0.26);
}

.theme-light.newsprint-highlight-sky {
  --text-highlight-bg: rgba(62, 104, 140, 0.18);
}

.theme-dark.newsprint-highlight-sky {
  --text-highlight-bg: rgba(143, 174, 199, 0.26);
}

/* --- Elements: zebra tables --------------------------------- */
.newsprint-table-zebra {
  --table-row-alt-background: var(--background-modifier-hover);
}

/* --- Elements: alternate checkboxes ------------------------- */
/* Any non-space task state renders as "done" by default; these
   states keep their text un-struck and draw a glyph instead. */
.newsprint-checkboxes .markdown-rendered li.task-list-item[data-task]:not([data-task="x"]):not([data-task="X"]):not([data-task=" "]),
.newsprint-checkboxes .markdown-preview-view li.task-list-item[data-task]:not([data-task="x"]):not([data-task="X"]):not([data-task=" "]),
.newsprint-checkboxes .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task]:not([data-task="x"]):not([data-task="X"]):not([data-task=" "]) {
  --checklist-done-decoration: none;
  --checklist-done-color: var(--text-normal);
}

.newsprint-checkboxes li[data-task="-"] > input.task-list-item-checkbox,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="-"],
.newsprint-checkboxes li[data-task=">"] > input.task-list-item-checkbox,
.newsprint-checkboxes input.task-list-item-checkbox[data-task=">"],
.newsprint-checkboxes li[data-task="<"] > input.task-list-item-checkbox,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="<"],
.newsprint-checkboxes li[data-task="?"] > input.task-list-item-checkbox,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="?"],
.newsprint-checkboxes li[data-task="!"] > input.task-list-item-checkbox,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="!"],
.newsprint-checkboxes li[data-task="i"] > input.task-list-item-checkbox,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="i"],
.newsprint-checkboxes li[data-task="*"] > input.task-list-item-checkbox,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="*"] {
  background-color: transparent;
  border-width: 1px;
  border-style: solid;
}

.newsprint-checkboxes li[data-task="-"] > input.task-list-item-checkbox::after,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="-"]::after,
.newsprint-checkboxes li[data-task=">"] > input.task-list-item-checkbox::after,
.newsprint-checkboxes input.task-list-item-checkbox[data-task=">"]::after,
.newsprint-checkboxes li[data-task="<"] > input.task-list-item-checkbox::after,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="<"]::after,
.newsprint-checkboxes li[data-task="?"] > input.task-list-item-checkbox::after,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="?"]::after,
.newsprint-checkboxes li[data-task="!"] > input.task-list-item-checkbox::after,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="!"]::after,
.newsprint-checkboxes li[data-task="i"] > input.task-list-item-checkbox::after,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="i"]::after,
.newsprint-checkboxes li[data-task="*"] > input.task-list-item-checkbox::after,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="*"]::after {
  -webkit-mask-image: none;
  mask-image: none;
  background-color: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  font-family: var(--font-interface);
  font-size: 0.72em;
  font-weight: 700;
  line-height: 1;
}

/* [-] cancelled */
.newsprint-checkboxes li[data-task="-"] > input.task-list-item-checkbox,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="-"] {
  border-color: var(--text-faint);
}
.newsprint-checkboxes li[data-task="-"] > input.task-list-item-checkbox::after,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="-"]::after {
  content: "\2013";
  color: var(--text-faint);
}
.newsprint-checkboxes .markdown-rendered li.task-list-item[data-task="-"],
.newsprint-checkboxes .markdown-preview-view li.task-list-item[data-task="-"],
.newsprint-checkboxes .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="-"] {
  --checklist-done-decoration: line-through;
  --checklist-done-color: var(--text-faint);
}

/* [>] forwarded */
.newsprint-checkboxes li[data-task=">"] > input.task-list-item-checkbox,
.newsprint-checkboxes input.task-list-item-checkbox[data-task=">"] {
  border-color: var(--color-cyan);
}
.newsprint-checkboxes li[data-task=">"] > input.task-list-item-checkbox::after,
.newsprint-checkboxes input.task-list-item-checkbox[data-task=">"]::after {
  content: "\2192";
  color: var(--color-cyan);
}

/* [<] scheduled */
.newsprint-checkboxes li[data-task="<"] > input.task-list-item-checkbox,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="<"] {
  border-color: var(--color-orange);
}
.newsprint-checkboxes li[data-task="<"] > input.task-list-item-checkbox::after,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="<"]::after {
  content: "\2190";
  color: var(--color-orange);
}

/* [?] question */
.newsprint-checkboxes li[data-task="?"] > input.task-list-item-checkbox,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="?"] {
  border-color: var(--color-blue);
}
.newsprint-checkboxes li[data-task="?"] > input.task-list-item-checkbox::after,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="?"]::after {
  content: "?";
  color: var(--color-blue);
}

/* [!] important */
.newsprint-checkboxes li[data-task="!"] > input.task-list-item-checkbox,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="!"] {
  border-color: var(--color-red);
}
.newsprint-checkboxes li[data-task="!"] > input.task-list-item-checkbox::after,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="!"]::after {
  content: "!";
  color: var(--color-red);
}

/* [i] info */
.newsprint-checkboxes li[data-task="i"] > input.task-list-item-checkbox,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="i"] {
  border-color: var(--color-blue);
}
.newsprint-checkboxes li[data-task="i"] > input.task-list-item-checkbox::after,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="i"]::after {
  content: "i";
  color: var(--color-blue);
  font-style: italic;
  font-family: var(--font-text);
}

/* [*] star */
.newsprint-checkboxes li[data-task="*"] > input.task-list-item-checkbox,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="*"] {
  border-color: var(--color-yellow);
}
.newsprint-checkboxes li[data-task="*"] > input.task-list-item-checkbox::after,
.newsprint-checkboxes input.task-list-item-checkbox[data-task="*"]::after {
  content: "\2605";
  color: var(--color-yellow);
  font-size: 0.65em;
}
body {
  --font-text-theme: "Source Serif 4", Georgia, serif;
  --font-interface-theme: "Source Serif 4", Georgia, serif;
}

.published-container {
  --page-title-font: "Source Serif 4", Georgia, serif;
}