/* Reading and media controls layered onto the existing portfolio theme. */
:root { --site-nav-height: 88px; }
:is(main section[id], main div[id]) { scroll-margin-top: calc(var(--site-nav-height) + 20px); }
:is(a, button, summary):focus-visible { outline: 3px solid #2353a2; outline-offset: 4px; }
.site-menu-toggle { display: none; }
.nav.has-site-menu { grid-template-columns: minmax(260px, auto) minmax(0, 1fr); }
.nav.has-site-menu nav { flex-wrap: wrap; overflow: visible; }
.nav.has-site-menu nav a, .nav.has-site-menu nav button { padding-inline: 11px; font-size: 14px; }
.portfolio-more-research { margin-top: 16px; }
.portfolio-more-research > summary, .evidence-disclosure > summary { padding: 15px 18px; border: 1px solid var(--line); border-radius: 9px; color: #194a77; background: #f9fbfd; font-size: 14px; font-weight: 700; cursor: pointer; }
.portfolio-more-research > .portfolio-research-list { margin-top: 16px; }
.resume-publication-card { box-shadow: none; }
.resume-publication-card .resume-card-note { margin-block: 5px; }
.portfolio-metrics > span { border-radius: 7px; }
.evidence-disclosure { margin-top: 16px; }
.evidence-disclosure > summary { display: none; }
.evidence-disclosure .research-evidence-gallery { margin-top: 0; }
.research-evidence-card { box-shadow: none; }
.video-on-demand [hidden] { display: none !important; }
.video-on-demand { position: relative; background: #101d2d; aspect-ratio: 16 / 9; }
.video-load-button { position: relative; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: pointer; }
.video-load-button img { width: 100%; height: 100%; object-fit: cover; }
.video-play-label { position: absolute; display: grid; place-items: center; gap: 7px; inset: 0; align-content: center; color: #fff; background: linear-gradient(0deg, #0c2035a6, #0c203522); font: 700 19px/1.5 var(--font-cn); }
.video-play-label > span { display: grid; place-items: center; width: 56px; height: 56px; padding-left: 4px; border: 1px solid #ffffff99; border-radius: 50%; background: #173d70df; }
.video-play-label small { font-size: 12px; font-weight: 400; }
.video-on-demand .portfolio-competition-video { width: 100%; height: 100%; min-height: 0 !important; object-fit: contain; }
.portfolio-media-note a { text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 1240px) {
  .nav.has-site-menu { grid-template-columns: minmax(0, 1fr) auto; min-height: 70px; gap: 16px; padding: 10px 20px; }
  .has-site-menu .nav-left { justify-content: flex-start; }
  .has-site-menu .nav-logos { margin-left: auto; }
  .site-menu-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-width: 76px; min-height: 44px; padding: 8px 12px; border: 1px solid #c1cede; border-radius: 7px; color: #183d70; background: white; font: 700 14px/1.4 var(--font-cn); cursor: pointer; }
  .menu-icon { width: 16px; height: 12px; border-block: 2px solid currentColor; position: relative; }
  .menu-icon::after { content: ''; position: absolute; inset: 4px 0 auto; border-top: 2px solid currentColor; }
  .nav.has-site-menu nav { display: none; position: absolute; inset: 100% 12px auto; grid-row: auto; grid-column: auto; max-height: calc(100dvh - 90px); overflow-y: auto; padding: 12px; background: #fff; border: 1px solid var(--line); border-radius: 0 0 10px 10px; box-shadow: 0 18px 28px #18304616; }
  .nav.has-site-menu.menu-open nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; }
  .nav.has-site-menu nav a, .nav.has-site-menu nav button { text-align: left; white-space: normal; border-radius: 6px; min-height: 44px; }
  .nav.has-site-menu .nav-private-divider { display: none; }
}
@media (max-width: 720px) {
  .nav.has-site-menu { min-height: 64px; padding: 8px 14px; gap: 12px; }
  .has-site-menu .nav-left { gap: 8px; }
  .has-site-menu .brand-mark, .has-site-menu .brand-mark img { width: 40px; height: 40px; }
  .has-site-menu .nav-logos { gap: 7px; padding: 5px 7px; max-width: 170px; min-height: 32px; }
  .has-site-menu .nav-logos img { max-width: 54%; max-height: 20px; }
  .site-menu-toggle { min-width: 72px; padding: 8px 10px; }
  .resume-hero-card { gap: 16px; padding: 18px; border-radius: 12px; }
  .resume-identity { align-items: center; }
  .resume-identity .eyebrow { font-size: 10px; line-height: 1.4; }
  .resume-identity h1 { font-size: 37px; }
  .resume-lead-compact { font-size: 14px; line-height: 1.7; }
  .resume-intro { font-size: 14px; line-height: 1.75; margin: 10px 0 14px; }
  .resume-hero .hero-summary { margin: 14px 0; gap: 8px; }
  .resume-hero .hero-summary > span { padding: 9px 11px; font-size: 11px; }
  .resume-hero .hero-summary strong { font-size: 26px; }
  .resume-primary-actions { display: grid; grid-template-columns: 1.2fr 1fr; gap: 8px; margin-top: 12px; }
  .resume-primary-actions .button { padding: 10px 12px; font-size: 14px; text-align: center; justify-content: center; min-height: 44px; }
  .resume-secondary-actions { gap: 8px 18px; margin-top: 7px; font-size: 12px; }
  .capability-disclosure { padding: 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: none; }
  .capability-disclosure > summary { display: list-item; padding: 14px 0 0; color: #2353a2; font-size: 13px; font-weight: 700; cursor: pointer; }
  .capability-content { padding-top: 18px; }
  .portfolio-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portfolio-project-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portfolio-project-meta > span:last-child { grid-column: 1 / -1; }
  .portfolio-research-main-image { min-height: 0; max-height: 260px; }
  .resume-publication-card { grid-template-columns: 24px minmax(0, 1fr); gap: 10px; padding: 18px 14px; }
  .resume-publication-card .tags { display: none; }
  .resume-card-authors { overflow-wrap: anywhere; }
  .evidence-disclosure > summary { display: list-item; }
  .evidence-disclosure .research-evidence-gallery { margin-top: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
