/* Core pages only: archives and independent microsites keep their own layout. */
.core-page { margin: 0; font-family: Arial, Helvetica, sans-serif; font-size: 1rem; line-height: 1.7; text-align: left; overflow-wrap: anywhere; }
.core-page *, .core-page *::before, .core-page *::after { box-sizing: border-box; }
.core-page .container { max-width: 48rem; margin: 0 auto; padding: 1.25rem; }
.core-page #name { font-size: clamp(2rem, 5vw, 2.9rem); line-height: 1.15; text-align: center; margin: 1rem 0 2rem; overflow-wrap: anywhere; }
.core-intro { display: grid; grid-template-columns: minmax(0, 1fr) 12rem; gap: 2rem; align-items: start; margin-bottom: 2rem; }
.intro-text { min-width: 0; }
.core-sidebar { text-align: center; }
.core-page #headshot { max-width: 100%; height: auto; object-fit: cover; }
.core-page #links { font-size: 1.15rem; line-height: 1.6; }
.core-page #links p { margin: .35rem 0; }
.core-page a { text-decoration: underline; text-underline-offset: .16em; overflow-wrap: anywhere; }
.core-page a:hover { color: var(--a-link-hover); }
.core-page a:focus-visible, .core-page button:focus-visible, .core-page summary:focus-visible { outline: 3px solid #075985; outline-offset: 4px; }
.dark-mode .core-page a:focus-visible, .dark-mode .core-page button:focus-visible, .dark-mode .core-page summary:focus-visible { outline-color: #7dd3fc; }
.skip-link { position: absolute; left: 1rem; top: 0; padding: .5rem 1rem; transform: translateY(-150%); background: var(--body-backgroud-color); z-index: 10; }
.skip-link:focus { transform: translateY(0); }
.core-page img, .core-page canvas { max-width: 100%; }
.graph-pair { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.graph-pair img { width: min(100%, 16rem); height: auto; object-fit: contain; }
.core-page .timeline { padding: 0 0 0 1rem; margin-bottom: 2rem; }
.core-page .timeline h2 { font-size: 1.35rem; border-bottom: 2px solid #4a90e2; padding-bottom: .25rem; }
.core-page .research-section { border-color: #888; }
.core-page summary { padding: 1rem; font-weight: bold; }
.core-page summary h2 { display: inline; font-size: 1.35rem; margin: 0; }
.core-page .research-content { display: flex; flex-wrap: wrap; padding: 1rem; gap: 1.5rem; }
.core-page .research-text { min-width: 0; flex: 1 1 22rem; border: 0; padding: 0; overflow-wrap: anywhere; }
.core-page .research-viz { min-width: 0; max-width: 100%; flex: 1 1 16rem; }
.core-page .research-viz img { width: 100%; height: auto; max-height: 15rem; background: #fff; padding: .5rem; }
.core-page canvas { width: 300px; height: auto; background: #fff; border: 1px solid #888; border-radius: .5rem; }
.core-page .fig-caption { color: #4b5563; font-size: .9rem; }
.dark-mode .core-page .fig-caption { color: #d1d5db; }
.core-page button { font: inherit; padding: .5rem .8rem; border: 1px solid currentColor; border-radius: .3rem; color: var(--body-color); background: var(--body-backgroud-color); cursor: pointer; min-height: 44px; }
.core-page button:hover { text-decoration: underline; }
.core-page .badge { background: #b91c1c; color: #fff; padding: .2rem .4rem; }
.core-page .badge-blue { background: #1d4ed8; }
.core-page .research-language { font-size: .8em; font-weight: normal; margin-left: .35em; }
.core-page .topic-card { padding: 1rem; }
.core-page .topic-card h2 { font-size: 1.35rem; margin: 0 0 .75rem; }
.core-page .topic-card p:last-child { margin-bottom: 0; }
.core-page table { width: 100%; table-layout: fixed; }
.core-page th, .core-page td { font-size: 1rem; overflow-wrap: anywhere; padding: .6rem; }
.core-page footer { padding: 1rem; }
.core-page li { margin-bottom: .5rem; }
@media (max-width: 600px) {
  .core-intro { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .core-sidebar { order: -1; }
  .core-page #headshot { width: 100px; }
  .core-page #links { display: flex; flex-wrap: wrap; gap: .4rem 1rem; justify-content: center; }
  .core-page #links hr { display: none; }
  .core-page .container { padding: 1rem; }
  .core-page .research-content { flex-direction: column; }
  .core-page .research-text, .core-page .research-viz { flex: auto; width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .core-page *, .core-page *::before, .core-page *::after { transition: none !important; animation: none !important; } }
