/* Site-wide overlay for pages without a native block-print template.
   Loaded after global.css when HUGO_PARAMS_BLOCKPRINT is set. Maps the
   design tokens onto paper, ink, cyan, and orange. */

:root, [data-theme="rust"] {
  --paper: #FCFBF7;
  --cyan: #0099C9;
  --cyan-press: #0085AF;
  --orange: #E56300;

  /* palette collapse */
  --bg: var(--paper);
  --surface-subtle: var(--paper);
  --bg-surface: var(--paper);
  --surface: var(--paper);
  --surface-alt: var(--paper);
  --card-featured: var(--paper);
  --border: var(--ink);
  --border-strong: var(--ink);
  --text: var(--ink);
  --text-muted: var(--ink);
  --text-subtle: var(--ink);
  --label-muted: var(--ink);
  --decoration-muted: var(--ink);
  --decoration-accent: var(--cyan);
  --accent: var(--cyan);
  --accent-hover: var(--cyan-press);
  --accent-deep: var(--cyan-press);
  --accent-light: var(--cyan);
  --accent-soft: var(--paper);
  --secondary: var(--orange);
  --secondary-light: var(--orange);
  --secondary-deep: var(--orange);
  --secondary-darkest: var(--orange);
  --secondary-soft: var(--paper);
  --tertiary: var(--ink);
  --tertiary-soft: var(--paper);
  --structural: var(--ink);
  --structural-soft: var(--ink);
  --code-bg: transparent;

  /* shadows off */
  --shadow-stamp: none;
  --shadow-stamp-sm: none;
  --shadow-stamp-card: none;
  --shadow-stamp-accent: none;
  --shadow-tooltip: none;
}

/* flat surfaces */
body.blockprint * { border-radius: 0 !important; box-shadow: none !important; }
body.blockprint { background: var(--paper); color: var(--ink); }
body.blockprint :focus-visible { outline: 2px solid var(--cyan); outline-offset: 3px; }
body.blockprint hr { border: 0; height: 0; margin: 2rem 0; }

/* rules off */
body.blockprint .site-header,
body.blockprint .site-header__inner,
body.blockprint .paper-header,
body.blockprint .blog-sheet,
body.blockprint .toc,
body.blockprint .references-block,
body.blockprint .foot,
body.blockprint .foot__frame,
body.blockprint .blog-card,
body.blockprint .item { border-color: transparent !important; }

/* header */
body.blockprint .site-header__wordmark { color: var(--ink); }
body.blockprint .site-header__nav a {
  font-family: var(--font-mono); font-size: 11px; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink);
}
body.blockprint .site-header__nav a:hover { color: var(--cyan); }

/* type */
body.blockprint .prose,
body.blockprint .prose p,
body.blockprint .prose li,
body.blockprint .sidenote,
body.blockprint figcaption,
body.blockprint .paper-header__hero-caption,
body.blockprint .references-list,
body.blockprint .byline-block,
body.blockprint .paper-meta,
body.blockprint .toc a { color: var(--ink); }
body.blockprint .prose a,
body.blockprint .references-list a { color: var(--cyan); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
body.blockprint .prose a:hover { color: var(--cyan-press); }
body.blockprint .prose code { background: transparent; color: inherit; }
body.blockprint .prose pre { background: transparent; border: 1.5px solid var(--ink); }

/* chips */
body.blockprint .research-bar__label,
body.blockprint .blog-card__meta .chip,
body.blockprint .paper-header .chip {
  background: var(--cyan); color: var(--paper); border: 0;
}
body.blockprint .research-bar__line { background: var(--ink); height: 1.5px; }

/* figures */
body.blockprint .stamp { background: var(--cyan); padding: 18px 22px 16px; }
body.blockprint .stamp__header {
  font-family: var(--font-mono); font-size: 11px; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--paper); margin-bottom: 14px;
}
body.blockprint .stamp__caption {
  margin-top: 14px; font-family: var(--font-mono); font-size: 11px; line-height: 1.6; color: var(--paper);
}
body.blockprint .stamp__caption a { color: var(--paper); }
body.blockprint .post-figure:not(.plotly-figure):not(.explorer-embed-figure):not(.explorer-figure) {
  background: var(--cyan); padding: 18px 22px 16px;
}
body.blockprint .post-figure:not(.plotly-figure):not(.explorer-embed-figure):not(.explorer-figure) figcaption {
  font-family: var(--font-mono); font-size: 11px; line-height: 1.6; color: var(--paper); margin-top: 14px;
}
body.blockprint .post-figure:not(.plotly-figure):not(.explorer-embed-figure):not(.explorer-figure) figcaption .figure-num {
  text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600; color: var(--paper);
}
/* static SVG figures: inverted to paper on cyan */
body.blockprint .post-figure:not(.plotly-figure):not(.explorer-embed-figure):not(.explorer-figure) svg {
  filter: invert(1) hue-rotate(180deg) saturate(0) brightness(1.1);
  mix-blend-mode: screen;
}
body.blockprint .plotly-figure figcaption { display: none; } /* caption is inside the figure block */
body.blockprint .explorer-embed { border: 2.5px solid var(--ink); }

/* sidenotes and citations */
body.blockprint .sidenote { color: var(--ink); font-size: 12px; line-height: 1.45; }
body.blockprint .sidenote-number,
body.blockprint .prose .citation-ref a { font-family: var(--font-mono); font-weight: 600; }
body.blockprint .prose .citation-ref a { color: var(--cyan); }

/* cite-as block */
body.blockprint .cite-as-box {
  font-family: var(--font-mono); font-size: 11px; line-height: 1.7;
  color: var(--paper); background: var(--cyan); border: 0; padding: 16px 18px;
}
body.blockprint .cite-as-box * { color: var(--paper); }

/* footer */
body.blockprint .foot { background: var(--paper); color: var(--ink); }
body.blockprint .foot a { color: var(--ink); font-family: var(--font-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
body.blockprint .foot a:hover { color: var(--cyan); }
body.blockprint .foot__tagline { font-family: var(--font-sans); font-weight: 700; color: var(--ink); }

/* wordmark */
body.blockprint .site-header__wordmark { color: var(--ink); }

/* loading skeleton */
body.blockprint .skeleton-bar { background: var(--ink); opacity: 1 !important; animation: bp-step 1.2s steps(4, end) infinite; }
@keyframes bp-step { from { width: 20%; } to { width: 100%; } }

/* plotly containers inside a figure block */
body.blockprint .stamp .plotly-container { display: block; overflow: visible; }
body.blockprint .stamp .plotly-container g.annotation rect.bg,
body.blockprint .stamp .plotly-container .legend > rect.bg { filter: none; }

/* explorer inside a figure block */
.stamp .explorer--figure { background: var(--paper); border: 2.5px solid var(--paper); padding: 10px 12px 12px; }
.stamp .explorer--figure .graph-hint { display: none; }
