/* Preserve AcademicPages content and routes within the new editorial theme. */
html { scroll-padding-top: 6rem; }
body { min-height: 100vh; }
main.site-container { width: 100%; min-height: 65vh; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.sr-only, .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.home-heading { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-1) var(--space-4); margin-bottom: var(--space-1); }
.home-heading .home-hero { margin-bottom: 0; }
.home-cv-link { font-size: .875rem; line-height: 1.5; }
.profile-education { text-align: left; margin: var(--space-4) 0 0; list-style: none; padding: 0; }
.profile-education li { font-size: .875rem; color: var(--text-secondary); padding: var(--space-1) 0; }
.sidebar-news { margin-top: var(--space-6); }
.sidebar-news h2 { margin-top: 0; font-size: 1.125rem; }
.sidebar-news-list { list-style: none; padding: 0; margin: 0; }
.sidebar-news .news-archive-link { margin: var(--space-4) 0 0; }
.chip-static { cursor: default; }
.chip-static:hover { background-color: var(--accent-light); color: var(--accent); }
.btn-pill.btn-arxiv { background-color: var(--accent); color: var(--on-accent); }
.btn-pill.btn-arxiv:hover { background-color: var(--accent-hover); color: var(--on-accent); }
.site-footer .footer-contact { grid-template-columns: minmax(0, 1fr); }
.teaching-details { margin-top: var(--space-3); }
.teaching-details p { max-width: none; margin-bottom: var(--space-2); font-size: .9375rem; line-height: 1.65; }
.teaching-details p:last-child { margin-bottom: 0; }
.teaching-resources { max-width: none; margin: var(--space-3) 0 0; font-size: .9375rem; line-height: 1.65; }
.content-page { min-width: 0; }
.page__title { margin-top: 0; overflow-wrap: anywhere; }
.page__content, .archive { min-width: 0; }
.page__content h2:not(:first-child), .archive > h2:not(:first-child) { margin-top: var(--space-10); }
.page__content h3:not(:first-child) { margin-top: var(--space-8); }
.page__content p, .page__content li { max-width: 75ch; }
.home-content .page__content p, .home-content .page__content li { max-width: 65ch; }
.page__content a, .archive a { overflow-wrap: anywhere; }
.page__content img { max-width: 100%; height: auto; border-radius: var(--radius-md); }
.page__content iframe { max-width: 100%; }
.page__content blockquote { margin: var(--space-6) 0; padding: var(--space-2) 0 var(--space-2) var(--space-4); border-left: 3px solid var(--accent); color: var(--text-muted); }
.page__content blockquote p:last-child { margin-bottom: 0; }
.page__content table { display: block; max-width: 100%; overflow-x: auto; margin-bottom: var(--space-6); }
.page__content th, .page__content td { padding: var(--space-2) var(--space-3); border: 1px solid var(--border-color); }
.page__content th { background: var(--bg-secondary); }
.page__content figcaption { font-size: .85rem; color: var(--text-muted); }
.page__content .align-center { display: block; margin-left: auto; margin-right: auto; }
.page__content .align-right { float: right; margin-left: 1rem; }
.page__content .align-left { float: left; margin-right: 1rem; }
.news-list { list-style: none; margin: 0; padding: 0; }
.news-list .news-date, .news-list .news-headline { display: block; }
.news-list .news-date { text-transform: none; letter-spacing: .035em; font-size: .78rem; }
.news-list .news-headline { font-size: .9375rem; }
.news-card { margin-top: var(--space-4); }
.news-year-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); cursor: pointer; list-style: none; font-family: "Source Serif 4", Georgia, serif; font-size: 1.375rem; font-weight: 700; color: var(--text-primary); }
.news-year-heading::-webkit-details-marker { display: none; }
.news-year-toggle { width: .5rem; height: .5rem; margin-right: .25rem; flex: 0 0 auto; border-right: 2px solid var(--accent); border-bottom: 2px solid var(--accent); transform: rotate(-45deg); }
.news-year[open] > .news-year-heading { margin-bottom: var(--space-6); }
.news-year[open] > .news-year-heading .news-year-toggle { transform: rotate(45deg); }
.news-date-note { margin-top: var(--space-4); font-size: .75rem; color: var(--text-muted); }
.news-item:first-child { padding-top: 0; }
.news-item:last-child { padding-bottom: 0; }
.pub-entry .pub-title { font-size: 1rem; line-height: 1.6; }
.pub-entry { scroll-margin-top: var(--space-4); }
.pub-collapse.show { max-height: none; }
.copy-wrapper { position: relative; }
.copy-btn { opacity: 1; top: var(--space-3); right: var(--space-3); min-height: 2rem; }
.copy-wrapper:focus-within .copy-btn { opacity: 1; }
.pub-collapse .pub-bibtex { padding-top: 3.5rem; overflow-wrap: anywhere; }
.pub-bibtex code { font-size: inherit; white-space: inherit; overflow-wrap: anywhere; }
.pub-collapse .pub-abstract-text { font: inherit; }
.pub-abstract-source { margin: var(--space-2) 0 0; font-size: .75rem; color: var(--text-muted); }
.publication-group + .publication-group { margin-top: var(--space-8); }
.pub-equal { font-size: .875rem; color: var(--text-muted); }
.publication-year + .publication-year { margin-top: var(--space-8); }
.publication-year h2 { margin-bottom: 0; }
.publication-year .pub-entry:last-child { border-bottom: none; }
.page__meta, .page__date { font-size: .875rem; color: var(--text-muted); }
.page__meta-title, .page__share-title { font-size: 1rem; }
.page__share { margin-top: var(--space-8); padding-top: var(--space-4); border-top: 1px solid var(--border-color); }
.page__share .btn { display: inline-block; color: var(--text-secondary); font-size: .8rem; border: 1px solid var(--border-color); border-radius: var(--radius-full); padding: .25rem .75rem; margin-right: .25rem; }
.page__taxonomy-item { padding: .1rem .4rem; background: var(--accent-light); border-radius: var(--radius-sm); }
.pagination { display: flex; gap: 1rem; justify-content: space-between; margin-top: var(--space-6); }
.pagination--pager { padding: .3rem .85rem; border: 1px solid var(--border-color); border-radius: var(--radius-full); font-size: .875rem; }
.pagination--pager.disabled { color: var(--text-muted); pointer-events: none; }
.page__related { margin-top: var(--space-8); }
.grid__wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
.archive__item { padding: var(--space-6) 0; border-bottom: 1px solid var(--border-color); }
.archive__item-title, .page__content .archive__item-title { font-size: 1.375rem; margin: 0 0 var(--space-3); }
.archive__item-title::after { display: none; }
.archive__item-excerpt { font-size: .9375rem; }
.footer-pages { margin-bottom: var(--space-4); line-height: 2; }
.footer-pages a { white-space: nowrap; }
.search-overlay:not(.open) { visibility: hidden; }
.search-input { min-width: 0; width: 100%; }
.search-kbd { cursor: pointer; }
.search-modal { margin: 0 var(--space-4); }
.back-to-top:not(.visible) { visibility: hidden; }
.toc { padding: var(--space-4); background: var(--bg-secondary); border: 1px solid var(--border-color); border-radius: var(--radius-md); margin-bottom: var(--space-6); font-size: .875rem; }
.toc .nav__title { font-size: 1rem; }
.highlight .c, .highlight .c1, .highlight .cm { color: var(--text-muted); }
.highlight .k, .highlight .kd, .highlight .kn, .highlight .nt { color: var(--accent); }
.highlight .s, .highlight .s1, .highlight .s2 { color: var(--accent-hover); }
pre code { color: var(--text-primary); }
@media (max-width: 767px) {
  .section-card { padding: var(--space-6); }
  .home-content, .home-sidebar { width: 100%; }
  .profile-card { padding: var(--space-6); }
  .profile-photo { width: 112px !important; height: 112px !important; }
  .grid__wrapper { grid-template-columns: minmax(0, 1fr); }
  .site-container { --container-padding: 1rem; }
  .page__title { font-size: 1.75rem; }
  .page__content h2 { font-size: 1.5rem; }
  .navbar-brand { font-size: 1.05rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media print { .page__share, .pagination, .search-overlay { display: none !important; } .home-sidebar { order: 0; } }
