/* Shared visual language for artwork, diagrams, tables and code. */
:root{--media-radius:6px;--technical-radius:8px}
:root[data-theme=light]{color-scheme:light}
:root[data-theme=dark]{color-scheme:dark}
.home-page .story-image,.home-page .project-diagram,.research-figure>.themed-diagram{border-radius:var(--media-radius)}
.themed-diagram{font-family:SiteSans,Arial,sans-serif;background:var(--fig-canvas)}
.research-figure>.themed-diagram{display:block;width:100%;height:auto}
.closing .hv-brand-mark{width:84px;height:84px;object-fit:contain}
@media(max-width:620px){.closing .hv-brand-mark{width:72px;height:72px}}
.article-route .research-figure figcaption{color:var(--muted)}
.research-figure figcaption a{white-space:nowrap}
.article-table,.pe-window{background:var(--fig-canvas);border:1px solid var(--fig-line);border-radius:var(--technical-radius);box-shadow:none}
.article-table table,.pe-view table{color:var(--fig-ink);background:var(--fig-canvas);font-variant-numeric:tabular-nums}
.article-table th,.pe-view th{font-family:SiteSans,Arial,sans-serif;font-weight:500;background:var(--fig-surface);color:var(--fig-ink);border-color:var(--fig-line)}
.article-table td,.pe-view td{border-color:color-mix(in srgb,var(--fig-line) 45%,var(--fig-canvas))}
.article-table tbody tr:nth-child(even),.pe-view tbody tr:nth-child(even){background:color-mix(in srgb,var(--fig-surface) 42%,var(--fig-canvas))}
.article-table tbody tr:hover,.pe-view tbody tr:hover{background:var(--fig-surface)}
.pe-window-bar{background:var(--fig-surface);color:var(--fig-muted);border-color:var(--fig-line)}
.pe-summary,.pe-symbol{color:var(--fig-ink)}
.pe-summary p{color:var(--fig-muted)}
.article-route pre{background:var(--fig-canvas);color:var(--fig-ink);border:1px solid var(--fig-line);border-radius:var(--technical-radius)}
.article-route code{background:var(--fig-surface);color:var(--fig-ink)}
.article-route pre code{background:transparent;color:inherit}
.snapshot-details>summary{color:var(--muted)}
.snapshot-details[open]>summary{color:var(--ink)}
.article-table::-webkit-scrollbar,.pe-view::-webkit-scrollbar{height:8px}
.article-table::-webkit-scrollbar-thumb,.pe-view::-webkit-scrollbar-thumb{background:var(--fig-line);border-radius:8px}

/* User-triggered theme reveal. Both snapshots share the same page geometry. */
:root.theme-switching::view-transition{pointer-events:none}
:root.theme-switching::view-transition-group(root){animation:none}
:root.theme-switching::view-transition-old(root),:root.theme-switching::view-transition-new(root){animation:none;mix-blend-mode:normal}
:root.theme-switching::view-transition-old(root){z-index:1}
:root.theme-switching::view-transition-new(root){z-index:2}
:root.theme-color-fade body,:root.theme-color-fade .header,:root.theme-color-fade .site-footer,
:root.theme-color-fade :is(h1,h2,h3,p,a,button,table,th,td,pre,code),:root.theme-color-fade .themed-diagram *{
  transition:background-color .22s ease,color .22s ease,border-color .22s ease,fill .22s ease,stroke .22s ease;
}
