/* ASENA's editorial research layout. Media and results retain their own UI. */
@font-face {
  font-family: 'Source Serif 4';
  src: url('../fonts/source-serif-4-latin.woff2') format('woff2');
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
}
@font-face {
  font-family: 'JetBrains Mono';
  src: url('../fonts/jetbrains-mono-latin.woff2') format('woff2');
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
}
:root {
  color-scheme: light;
  --bg: #f6f6ef;
  --surface: #fafaf5;
  --surface-2: #edeee7;
  --ink: #0c0c0c;
  --ink-2: #2b2c28;
  --muted: #696a63;
  --hairline: rgba(12,12,12,.17);
  --grid: #dedfd6;
  --accent: #45576e;
  --accent-text: #35455d;
  --accent-soft: rgba(69,87,110,.09);
  --accent-ink: #fff;
  --font-sans: 'Source Serif 4', Georgia, serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
  --nav-h: 0px;
  --col: 100%;
  --col-wide: 100%;
  --radius: 4px;
  --shadow-card: none;
}
html { background: var(--bg); scroll-padding-top: 46px; }
body { font-size: 19px; line-height: 1.6; background: var(--bg); color: var(--ink); }
body::before { display: none; }
button, input, select { font-family: inherit; }
a { color: inherit; }
a:hover { text-underline-offset: 4px; }
:focus-visible { outline: 2px solid #566b83; outline-offset: 5px; }
[hidden] { display: none !important; }
.skip-link { background: var(--bg); color: var(--ink); }

/* Let the 16:9 film set its own height, including in narrow browser windows.
   A viewport-height wrapper would introduce letterboxing with object-fit. */
.research-hero {
  aspect-ratio: 16 / 9;
  height: auto;
  min-height: 0;
  width: 100%;
  background: var(--bg);
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
/* Reserve the featured replay while its data loads, so the two later
   recordings stay below it instead of all becoming near-viewport at once. */
#player:empty, #player.is-loading { min-height: clamp(320px, 42vw, 620px); }
.pl-compact:not(.pl-root), .pl-compact.is-loading { min-height: 320px; }

.hero-film { position: absolute; inset: 0; margin: 0; }
#hero-video { display: block; width: 100%; height: 100%; object-fit: contain; background: transparent; }
.hero-wordmark {
  position: absolute; left: 4%; bottom: 7.5%; z-index: 1;
  margin: 0; color: #fff; pointer-events: none;
  font-size: clamp(64px, 13vw, 210px); line-height: .9;
  letter-spacing: .025em; font-weight: 500;
  text-shadow: 0 2px 30px rgba(0,0,0,.25);
  opacity: 0; transform: translateY(var(--wordmark-offset, 14px));
  will-change: opacity, transform;
}
.hero-caption {
  position: absolute; top: 24px; left: 32px; z-index: 2;
  margin: 0; color: #fff; font-size: 15px; letter-spacing: .025em;
  text-shadow: 0 1px 10px #000;
  opacity: var(--caption-opacity, 1);
}
.hero-scroll {
  position: absolute; bottom: 28px; left: 50%; transform: translateX(-50%); z-index: 2;
  /* A wide 16:9 film can extend below the opening viewport. Keep the cue
     inside both the film and the visible screen; it still scrolls with the hero. */
  bottom: max(28px, calc(100% - 100svh + 28px));
  display: flex; gap: 12px; align-items: center;
  color: #fff; font-size: 14px; letter-spacing: .09em;
  text-transform: uppercase; text-shadow: 0 1px 8px #000;
}
.hero-scroll span { font-size: 24px; line-height: 1; }
.hero-scroll:hover { text-decoration: none; }

/* Wide, centered paper column, with a quiet persistent outline to its left. */
.research-layout {
  display: grid; grid-template-columns: minmax(190px,1fr) minmax(0,965px) minmax(90px,1fr);
  column-gap: 42px; align-items: start;
  padding: 76px 48px 100px; max-width: 1800px; margin: 0 auto;
}
.contents-sidebar { grid-column: 1; position: sticky; top: 92px; min-width: 0; max-height: calc(100svh - 124px); overflow-y: auto; scrollbar-width: thin; }
.contents-brand {
  display: inline-block; font-size: 21px; letter-spacing: .055em; margin: 0 0 27px;
  color: var(--ink); text-decoration: none;
}
.contents-sidebar nav { border-left: 1px solid var(--hairline); padding-left: 14px; }
[data-section-link] {
  display: block; position: relative; padding: 8px 0;
  font-size: 15px; line-height: 1.28; font-weight: 400;
  color: #66675f; transition: color .15s;
}
[data-section-link][data-level='2'] { font-size: 13px; padding: 5px 0 5px 12px; color: #7a7b72; }
[data-section-link]::before {
  content: ''; position: absolute; left: -15px; top: 50%; width: 1px;
  height: 0; transform: translateY(-50%); background: var(--ink); transition: height .15s;
}
[data-section-link]:hover, [data-section-link][aria-current='location'] { color: var(--ink); text-decoration: none; }
[data-section-link]:hover::before, [data-section-link][aria-current='location']::before { height: 21px; }
.research-main { grid-column: 2; width: 100%; min-width: 0; }
.research-main .section { padding: 0; margin: 0 0 76px; border: 0; scroll-margin-top: 48px; }
.research-main .col, .research-main .col--wide { padding: 0; max-width: none; width: 100%; }
.research-main #overview { padding-bottom: 36px; border-bottom: 1px solid var(--hairline); margin-bottom: 66px; scroll-margin-top: 30px; }
.research-main #overview .kicker { display: none; }
.research-main .page-title {
  font-size: clamp(34px,3.4vw,49px); font-weight: 400; line-height: 1.09;
  letter-spacing: -.025em; text-wrap: balance; margin: 0 0 22px;
}
.page-title .project-name { font-weight: 500; }
.research-main .page-title .accent { display: inline; color: inherit; }
.research-main .page-subline { font-size: 19px; line-height: 1.55; color: #56584f; max-width: none; margin: 0 0 24px; }
.research-main .authors { font-size: 18px; line-height: 1.65; margin: 0 0 8px; }
.research-main .author { white-space: nowrap; }
.research-main .author a { text-decoration: underline; text-decoration-color: #b5b8ac; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.research-main .author a:hover { text-decoration-color: currentColor; }
.research-main .affiliations { font-size: 15px; line-height: 1.55; color: #64665d; margin-bottom: 8px; }
.research-main .authors-note { font: 14px/1.5 var(--font-sans); margin: 0 0 20px; }
.research-main .authors-note:empty, .research-main .affiliations:empty { display: none; }
.research-main .hero-links { margin: 22px 0 0; gap: 10px; align-items: center; }
.affiliation-logos {
  display: grid; grid-template-columns: 190fr 230fr 230fr; align-items: center;
  gap: clamp(24px, 3vw, 36px); width: min(100%, 722px); margin-top: 28px;
}
.affiliation-logos img { display: block; width: 100%; height: auto; min-width: 0; }
@media (max-width: 540px) {
  .affiliation-logos { grid-template-columns: 190fr 230fr; max-width: 456px; }
}
.research-main .btn {
  background: transparent; border: 1px solid #c7c9bf; border-radius: 6px;
  color: var(--ink); padding: 7px 14px; font: 500 15px/1.5 var(--font-sans); min-height: 39px;
  flex-direction: row; gap: 8px;
}
.research-main .btn[href='#embodied-eqa'] { order: 2; }
.research-main .btn small { font-size: 11px; }
.research-main .btn:hover { filter: none; background: #0c0c0c06; border-color: #6e7067; }
.research-main .section h2 { font-size: clamp(29px,2.7vw,36px); line-height: 1.14; font-weight: 400; letter-spacing: -.015em; margin: 0 0 26px; }
.research-main .section h3.subhead { font-size: 25px; font-weight: 400; letter-spacing: -.01em; }
/* A single method chapter, organized by subject instead of caption bands. */
.research-main .method-section > h2 { margin-bottom: 32px; }
.method-part { scroll-margin-top: 48px; }
.method-part + .method-part { margin-top: 64px; }
.research-main .method-part > h3,
.research-main .method-part summary h3 { font-size: 27px; font-weight: 400; line-height: 1.25; letter-spacing: -.015em; margin: 0 0 16px; }
.research-main .method-part > p,
.research-main .method-part .policy-dataset > p { margin: 0 0 26px; max-width: none; font-size: 19px; line-height: 1.6; }
.research-main .method-part .policy-examples { border: 0; }
.research-main .method-part .policy-examples summary { display: flex; align-items: baseline; gap: 12px; padding: 0; list-style: none; }
.research-main .method-part .policy-examples summary::-webkit-details-marker { display: none; }
.research-main .method-part .policy-examples summary::after { content: '⌄'; color: var(--muted); font-size: 20px; }
.research-main .method-part .policy-examples:not([open]) summary::after { transform: rotate(-90deg); }
.research-main .method-part .policy-dataset { padding: 0; }
.research-main .kicker { font-family: var(--font-sans); font-size: 14px; letter-spacing: .025em; text-transform: none; color: #74756c; margin: 0 0 10px; }
.research-main .col > p { font-size: 19px; line-height: 1.6; }
.research-main #abstract-text { margin: 0 0 24px !important; }
.research-main .contributions { margin: 28px 0 0; padding: 24px 0 0 23px; border-top: 1px solid var(--hairline); }
.research-main .contributions li { font-size: 17px; line-height: 1.55; padding-left: 3px; margin: 0 0 12px; }
.research-main .contributions li::marker { color: #85887c; }
.research-main .section-note, .research-main .col > .section-note { font-size: 14px; line-height: 1.6; }
.research-main .demo-map-note { font-style: italic; font-size: 16px; margin-bottom: 30px; }
.research-main .eqa-intro { display: block; margin-bottom: 28px; }
.research-main .eqa-intro h2 { margin-bottom: 18px; }
.research-main .eqa-deck { max-width: none; font-size: 19px; line-height: 1.6; }
.research-main .eqa-missions { border-radius: 3px 3px 0 0; }
.research-main .eqa-missions button { padding: 18px 16px; }
.research-main .eqa-missions strong { font-size: 17px; }
.research-main .learning-loop { border-radius: 4px; box-shadow: none; }
.research-main .method-tools { gap: 28px; }
.research-main .method-tool h3, .research-main .policy-architecture h3 { font-size: 19px; font-weight: 500; }
.research-main .method-tool p, .research-main .policy-architecture p { font-size: 16px; line-height: 1.55; }
.research-main .method-control-note { color: #5f6259; font-size: 16px; }
.research-main .bibtex-box { border-radius: 4px; background: #eeeeE7; }
.research-main #acknowledgements { margin-bottom: 0; border-top: 1px solid var(--hairline); padding-top: 40px; }
.research-main #acknowledgements p { font-size: 17px; }
.research-footer { margin-top: 64px; padding-top: 22px; border-top: 1px solid var(--hairline); font-size: 14px; color: #73756b; display: flex; justify-content: space-between; }

/* Native modal gives the compact contents menu a proper focus boundary. */
#contents-toggle { display: none; }
#contents-panel {
  position: fixed; inset: 0 0 0 auto; margin: 0; padding: 28px 25px;
  height: 100dvh; max-height: none; width: min(84vw,340px); max-width: none;
  border: 0; border-left: 1px solid var(--hairline); background: var(--bg); color: var(--ink);
}
#contents-panel::backdrop { background: rgba(12,12,12,.38); backdrop-filter: blur(3px); }
.contents-panel-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 26px; }
.contents-panel-head h2 { font-size: 25px; font-weight: 400; margin: 0; }
#contents-close { border: 1px solid var(--hairline); background: transparent; border-radius: 50%; width: 42px; height: 42px; font-size: 23px; cursor: pointer; }
#contents-panel nav { border-left: 1px solid var(--hairline); padding-left: 14px; }
#contents-panel [data-section-link] { min-height: 39px; display: flex; align-items: center; font-size: 16px; }
#contents-panel [data-level='2'] { min-height: 33px; font-size: 14px; }

@media (min-width: 1560px) {
  .contents-sidebar { width: 210px; justify-self: start; }
}
@media (min-width: 821px) and (max-width: 1239px) {
  .research-layout { grid-template-columns: 168px minmax(0,1fr); gap: 34px; padding: 60px 32px 90px; }
  .contents-sidebar { top: 64px; }
  .research-main .page-title { font-size: 41px; }
  .research-main .col > p { font-size: 18px; }
  .research-main .method-tools { grid-template-columns: 1fr; }
  .research-main .loop-steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 820px) {
  body { font-size: 17px; line-height: 1.55; }
  .research-hero { display: flex; flex-direction: column; aspect-ratio: auto; margin: 0; width: 100%; background: transparent; overflow: visible; }
  .hero-film { position: relative; aspect-ratio: 16/9; }
  #hero-video { width: 100%; height: auto; aspect-ratio: 16/9; }
  .hero-caption { position: static; order: 2; padding: 16px 20px 0; color: var(--ink); text-shadow: none; font-size: 15px; opacity: 1; }
  .hero-wordmark { top: calc(56.25vw - 16px); bottom: auto; left: 20px; transform: translateY(-100%); font-size: clamp(40px,11vw,80px); }
  .hero-scroll { display: none; }
  .research-layout { display: block; padding: 42px 20px 72px; }
  .contents-sidebar { display: none; }
  .research-main .section { margin-bottom: 54px; scroll-margin-top: 28px; }
  .research-main #overview { padding-bottom: 28px; margin-bottom: 43px; scroll-margin-top: 0; }
  .research-main .page-title { font-size: clamp(33px,6.8vw,44px); letter-spacing: -.025em; line-height: 1.1; margin-bottom: 19px; }
  .research-main .page-subline, .research-main .col > p, .research-main .eqa-deck { font-size: 17px; line-height: 1.55; }
  .research-main .authors { font-size: 16px; line-height: 1.6; }
  .research-main .affiliations { font-size: 14px; }
  .research-main .section h2 { font-size: 29px; margin-bottom: 22px; }
  .method-part { scroll-margin-top: 28px; }
  .method-part + .method-part { margin-top: 46px; }
  .research-main .method-part > h3,
  .research-main .method-part summary h3 { font-size: 24px; }
  .research-main .method-part > p,
  .research-main .method-part .policy-dataset > p { font-size: 17px; line-height: 1.55; }
  .research-main .contributions li { font-size: 16px; }
  .research-main .hero-links { gap: 8px; }
  .research-main .btn { font-size: 14px; padding: 7px 11px; }
  .research-main .eqa-missions button { padding: 13px 10px; }
  .research-main .eqa-missions strong { font-size: 14px; }
  #contents-toggle {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    position: fixed; z-index: 40; right: 20px; bottom: 20px;
    border: 1px solid #c4c7bb; border-radius: 6px; background: rgba(246,246,239,.95);
    color: var(--ink); padding: 10px 15px; min-height: 46px;
    font: 15px/1.4 var(--font-sans); box-shadow: 0 3px 18px #0c0c0c13; cursor: pointer;
    opacity: 0; visibility: hidden; transition: opacity .2s;
  }
  .article-visible #contents-toggle { opacity: 1; visibility: visible; }
  .research-footer { margin-bottom: 36px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero-wordmark { --wordmark-offset: 0px !important; }
  [data-section-link], [data-section-link]::before { transition: none; }
}

/* Native policy diagram, adapted from the research-design slide components. */
.research-main .vln-architecture {
  container: vln / inline-size; margin: 28px 0 0;
  --vln-green: #285e46; --vln-line: #ccd4c6;
}
.vln-flow {
  display: grid; grid-template-columns: minmax(0,1.05fr) 18px minmax(0,1fr) 18px minmax(0,1.1fr);
  align-items: center; gap: 14px; padding: 0;
}
.vln-flow > * { min-width: 0; }
.vln-inputs { display: grid; gap: 24px; }
.research-main .vln-architecture .vln-stage-label {
  margin: 0 0 13px; font: 12px/1.5 var(--font-mono); color: #49654c;
}
.vln-instruction-fields { margin: 0; display: grid; gap: 12px; }
.vln-instruction-fields dt { font: 12px/1.5 var(--font-mono); color: #436e52; }
.vln-instruction-fields dt span { font: 12px/1.5 var(--font-sans); color: var(--muted); margin-left: 5px; }
.vln-instruction-fields dd { margin: 2px 0 0; color: #835c3e; font-size: 17px; line-height: 1.4; }
.vln-history { border: 0; padding: 0; }
.vln-history-frames { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.vln-history-frame { min-width: 0; }
.vln-history-frame img { display: block; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: contain; border-radius: 3px; border: 1px solid #bac5b0; }
.vln-history-age { display: block; margin-top: 5px; color: var(--muted); font-size: 12px; }
.vln-history-tokens { display: grid; grid-template-columns: repeat(4,5px); gap: 3px; height: 29px; margin-top: 7px; align-content: start; }
.vln-history-tokens i { width: 5px; height: 5px; border-radius: 1px; background: #aab7a1; }
.vln-history-frame:nth-child(2) i { background: #6f9270; }
.vln-history-frame:nth-child(3) i { background: #286c50; }
.vln-architecture .vln-detail { margin: 12px 0 0; font-size: 14px; line-height: 1.5; color: #64745f; }
.vln-flow-arrow { color: #87a27c; font-size: 25px; line-height: 1; text-align: center; }
.vln-decoder {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-height: 256px; padding: 25px 12px; border: 1px solid #224d3c; border-radius: 9px;
  background: #1c4535; color: #edf2df; text-align: center; box-shadow: 5px 5px 0 #d3dfc8;
}
.vln-decoder-layers { position: relative; width: 58px; height: 43px; margin: 0 0 22px; }
.vln-decoder-layers i { position: absolute; width: 47px; height: 30px; border: 1px solid #b2d094; border-radius: 4px; background: #4e7553; left: 0; top: 12px; }
.vln-decoder-layers i:nth-child(2) { left: 6px; top: 6px; background: #759760; }
.vln-decoder-layers i:nth-child(3) { left: 12px; top: 0; background: #aac781; }
.research-main .vln-decoder h4 { font-size: clamp(22px,2.1vw,29px); font-weight: 500; letter-spacing: -.035em; margin: 0 0 10px; line-height: 1.15; color: #edf2df; }
.vln-decoder p { margin: 0; font-size: 16px; line-height: 1.4; color: #e0e8d8; }
.vln-decoder-count { font: 11px/1.5 var(--font-mono); margin-top: 22px; color: #b6d593; }
.vln-outputs { display: grid; gap: 19px; }
.vln-output { --token: #3f7458; border-left: 2px solid #c5d1bd; padding-left: 12px; }
.vln-output-pixel { --token: #8c6349; border-color: #d9c9b8; }
.vln-output-text { --token: #596e65; border-color: #c5ceca; }
.vln-output-reasoning { --token: #776057; border-color: #d0c5ba; }
.vln-output-tokens { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 8px; }
.vln-output-tokens > span { display: inline-flex; align-items: center; justify-content: center; padding: 5px 8px; min-width: 28px; border-radius: 3px; background: var(--token); color: #fff; font: 13px/1.35 var(--font-mono); }
.vln-output-reasoning .vln-output-tokens > span:last-child { background: #3f7458; }
.research-main .vln-output h4 { margin: 0 0 4px; font-size: 17px; line-height: 1.25; font-weight: 500; color: #263e2d; }
.vln-output p { margin: 0; font-size: 14px; line-height: 1.4; color: #65715f; }
@container vln (max-width: 740px) {
  .vln-flow { grid-template-columns: minmax(0,1fr); gap: 22px; }
  .vln-inputs { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 24px; }
  .vln-history { border: 0; padding: 0; }
  .vln-flow-arrow { font-size: 0; }
  .vln-flow-arrow::before { content: '↓'; font-size: 26px; }
  .vln-decoder { min-height: 0; padding: 24px; display: grid; grid-template-columns: 70px minmax(0,1fr); column-gap: 18px; text-align: left; }
  .vln-decoder-layers { grid-row: 1/4; align-self: center; margin: 0; }
  .research-main .vln-decoder h4 { font-size: 28px; }
  .vln-decoder p br { display: none; }
  .vln-decoder-count { margin-top: 12px; }
  .vln-outputs { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
}
@container vln (max-width: 460px) {
  .vln-inputs { grid-template-columns: minmax(0,1fr); }
  .vln-instruction-fields { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
  .vln-instruction-fields > div:first-child { grid-column: 1/-1; }
  .vln-history { border: 0; padding: 0; }
  .vln-history-tokens { grid-template-columns: repeat(4,6px); height: 33px; }
  .vln-history-tokens i { width: 6px; height: 6px; }
  .vln-history-age { font-size: 14px; }
  .vln-decoder { padding: 23px 18px; column-gap: 10px; grid-template-columns: 55px minmax(0,1fr); }
  .vln-decoder-layers { transform: scale(.8); transform-origin: left center; }
  .research-main .vln-decoder h4 { font-size: 25px; }
  .vln-outputs { column-gap: 14px; }
  .vln-output { padding-left: 9px; }
  .vln-output-tokens > span { font-size: 12px; padding: 5px 6px; min-width: 22px; }
}

/* Original slide 8 editor and pinned bulletin styles, scoped for the article. */
#simulation-evolution-diagram .r2-evolution{display:grid;grid-template-columns:928px 448px;gap:68px;align-content:start}#simulation-evolution-diagram .r2-seed{height:63px;display:flex;align-items:center;gap:22px;border-top:1px solid #c7cfc5;border-bottom:1px solid #c7cfc5;margin-bottom:29px;padding:0 9px}#simulation-evolution-diagram .r2-seed>span{font-size:18px;color:#6a7b71}#simulation-evolution-diagram .r2-seed>span:first-child{color:#344c41}#simulation-evolution-diagram .r2-seed b{font-weight:600}#simulation-evolution-diagram .r2-seed i{font-style:normal;font-size:24px;color:#9da99d;margin-left:auto}#simulation-evolution-diagram .r2-seed sub{font-size:.65em}#simulation-evolution-diagram .r2-workers{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}#simulation-evolution-diagram .r2-worker{border:1px solid #c9cec5;border-radius:6px;background:#fafaf6;overflow:hidden;position:relative}#simulation-evolution-diagram .r2-worker-top{height:39px;display:flex;align-items:center;gap:8px;border-bottom:1px solid #d7dbd2;padding:0 12px;background:#eaece7}#simulation-evolution-diagram .r2-worker-top>b{font-size:13px;font-weight:500}#simulation-evolution-diagram .r2-worker-top>span:last-child{font-size:10px;color:#929b8e;margin-left:auto}#simulation-evolution-diagram .r2-worker-dot{height:6px;width:6px;border-radius:50%;background:#afbfac}#simulation-evolution-diagram .r2-worker:nth-child(2) .r2-worker-dot{background:#c4aa92}#simulation-evolution-diagram .r2-worker:nth-child(3) .r2-worker-dot{background:#99adb9}#simulation-evolution-diagram .r2-worker-task{font-size:16px;padding:16px 11px 14px;font-weight:500;letter-spacing:-.025em}#simulation-evolution-diagram .r2-worker-file{font-family:ui-monospace,SFMono-Regular,monospace;background:#f0f1eb;font-size:11px;color:#7c8f80;padding:8px 12px;border-top:1px solid #e3e6dc;border-bottom:1px solid #e3e6dc}#simulation-evolution-diagram .r2-worker-code{height:153px;padding:15px 0}#simulation-evolution-diagram .r2-writing-row{display:flex;height:23px;line-height:23px}#simulation-evolution-diagram .r2-writing-row>i{width:27px;padding-left:11px;font-size:9px;color:#bbc3b5;font-style:normal;flex:none}#simulation-evolution-diagram .r2-writing-row>code{font-size:12.5px;white-space:pre;color:#496459;display:block;clip-path:inset(0 0 0 0);animation:evo-type-code 12s steps(30,end) infinite;animation-delay:calc(var(--offset) + var(--row)*.7s);animation-play-state:paused}#simulation-evolution-diagram .r2-writing-row em{color:#a48268;font-style:normal}#simulation-evolution-diagram.evo-playing .r2-writing-row>code{animation-play-state:running}#simulation-evolution-diagram .r2-new-skill{margin:0 11px 16px;padding:13px 8px 11px;background:#e9eee4;border:1px solid #d1dac8;border-radius:4px;display:flex;align-items:center;gap:9px;animation:evo-skill-created 12s infinite;animation-delay:var(--offset);animation-play-state:paused}#simulation-evolution-diagram.evo-playing .r2-new-skill{animation-play-state:running}#simulation-evolution-diagram .r2-worker:nth-child(2) .r2-new-skill{background:#f0e9df;border-color:#ddd0bf}#simulation-evolution-diagram .r2-worker:nth-child(3) .r2-new-skill{background:#e6edef;border-color:#cad7da}#simulation-evolution-diagram .r2-new-skill>span{font-size:22px;color:#91aa8a}#simulation-evolution-diagram .r2-new-skill b{display:block;font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;font-weight:500}#simulation-evolution-diagram .r2-new-skill small{font-size:9px;color:#87957d;display:block;margin-top:4px}#simulation-evolution-diagram .r2-new-skill>i{font-size:12px;font-style:normal;margin-left:auto;color:#7e9c6b}#simulation-evolution-diagram .r2-worker-footer{font-size:10px;color:#85927f;border-top:1px solid #d7ddd1;text-align:center;padding:9px}#simulation-evolution-diagram .r2-merge{display:flex;gap:20px;align-items:center;margin-top:27px;border:1px solid #b7c6b5;background:#e6ecdf;border-radius:6px;padding:18px 22px}#simulation-evolution-diagram .r2-merge-icon{font-size:36px;color:#82997b}#simulation-evolution-diagram .r2-merge b{font-size:24px;font-weight:500;display:block;letter-spacing:-.03em}#simulation-evolution-diagram .r2-merge span{font-size:14px;color:#7c8e74;display:block;margin-top:7px}#simulation-evolution-diagram .r2-merge>strong{margin-left:auto;font-size:36px;font-weight:500;letter-spacing:-.05em;color:#78936c}#simulation-evolution-diagram .r2-merge>i{font-style:normal;font-size:36px;font-weight:400;color:#93a48b;margin-left:7px}#simulation-evolution-diagram .r2-evolve-return{font-size:13px;color:#8b9781;text-align:center;margin-top:16px}#simulation-evolution-diagram .r2-board{border:1px solid #cec3b5;border-radius:7px;background:#eae5db;padding:22px 23px;height:562px;position:relative;box-shadow:4px 4px 0 #e3dfd6}#simulation-evolution-diagram .r2-board-head{display:flex;align-items:center;gap:11px;margin-bottom:21px}#simulation-evolution-diagram .r2-board-head>span{font-size:21px;color:#b19277}#simulation-evolution-diagram .r2-board-head>b{font-size:23px;font-weight:500;letter-spacing:-.03em}#simulation-evolution-diagram .r2-board-head>small{margin-left:auto;font-size:9px;color:#a19483;letter-spacing:.06em}#simulation-evolution-diagram .r2-post{position:relative;background:#faf8f0;border:1px solid #d9cebc;border-radius:3px;padding:17px 18px;margin-bottom:16px;box-shadow:1px 2px 2px #b4a99422}#simulation-evolution-diagram .r2-post:before{content:'';position:absolute;right:13px;top:13px;height:6px;width:6px;background:#b5a590;border-radius:50%}#simulation-evolution-diagram .r2-post>span{font-size:10px;letter-spacing:.065em;color:#ae9479;display:block}#simulation-evolution-diagram .r2-post code{display:block;font-size:15px;margin-top:10px;color:#7f806a}#simulation-evolution-diagram .r2-post p{font-size:16px!important;line-height:1.5!important;margin:9px 0 0!important;color:#877f6e}#simulation-evolution-diagram .r2-post-pulse{position:absolute;bottom:0;left:0;width:100%;height:3px;background:#c9b599;transform:scaleX(.3);transform-origin:left;animation:evo-post-progress 12s linear infinite;animation-play-state:paused}#simulation-evolution-diagram .r2-post.second .r2-post-pulse{animation-delay:4s}#simulation-evolution-diagram.evo-playing .r2-post-pulse{animation-play-state:running}#simulation-evolution-diagram .r2-briefing{padding:4px 1px 0}#simulation-evolution-diagram .r2-briefing>b{display:block;font-size:18px;font-weight:500;color:#80725f}#simulation-evolution-diagram .r2-briefing p{font-size:17px!important;line-height:1.5!important;color:#8f826d;margin:9px 0 10px!important}#simulation-evolution-diagram .r2-briefing small{font-size:11px;color:#ad9a81}#simulation-evolution-diagram .r2-board-boundary{font-size:11px;line-height:1.6;color:#a29079;border-top:1px solid #d3c7b5;padding-top:14px;margin-top:16px}#simulation-evolution-diagram .r2-sharing-paths{position:absolute;inset:0;width:1444px;height:565px;pointer-events:none;z-index:0}#simulation-evolution-diagram .r2-evolve-workers,#simulation-evolution-diagram .r2-board{position:relative;z-index:1}
#simulation-evolution-diagram .r3-board{background-color:#e7dfca!important;background-image:radial-gradient(#a99a7624 .7px,transparent .7px);background-size:7px 7px}#simulation-evolution-diagram .r3-board .r2-post{transform:rotate(-2deg);margin:20px 4px 22px 0;background:#fff2b8;box-shadow:2px 5px 8px #746f4623;border-color:#e0cb84}#simulation-evolution-diagram .r3-board .r2-post.second{transform:rotate(2deg);margin-left:10px;background:#deebe5;border-color:#b9cdbf}#simulation-evolution-diagram .r3-board .r2-post:before{content:'';position:absolute;top:8px;left:50%;width:8px;height:8px;border-radius:50%;background:#a9614c;box-shadow:0 3px 1px #6b3d3633}#simulation-evolution-diagram .r3-board .r2-post>span{color:#8a622d}#simulation-evolution-diagram .r3-board .r2-post.second>span{color:#467568}#simulation-evolution-diagram .r3-board .r2-post code{color:#6e6637;font-weight:700;font-size:16px}#simulation-evolution-diagram .r3-board .r2-post.second code{color:#356755}#simulation-evolution-diagram .r3-board .r2-post p{font-family:Georgia,serif;font-style:italic;color:#6f6542;font-size:20px;line-height:1.38}#simulation-evolution-diagram .r3-board .r2-post.second p{color:#4b6c5c}#simulation-evolution-diagram .r3-board .r2-post-pulse{display:none}#simulation-evolution-diagram .r3-board .r2-briefing{padding-top:2px}#simulation-evolution-diagram .r3-board .r2-board-boundary{margin-top:12px}
@keyframes evo-type-code{0%,3%{clip-path:inset(0 100% 0 0)}20%,90%{clip-path:inset(0 0 0 0)}100%{clip-path:inset(0 0 0 0)}}
@keyframes evo-skill-created{0%,24%{opacity:.25;transform:translateY(3px)}35%,95%{opacity:1;transform:translateY(0)}100%{opacity:.25}}
@keyframes evo-post-progress{0%,30%{transform:scaleX(0)}60%,92%{transform:scaleX(1)}100%{transform:scaleX(0)}}

/* Responsive article adaptation: keep the original code readable at 965px. */
#simulation-evolution-diagram { container: simulation-evolution / inline-size; margin: 30px 0 0; padding: 0; color: #234936; font-family: var(--font-sans, 'Source Serif 4', Georgia, serif); }
#simulation-evolution-diagram * { box-sizing: border-box; }
#simulation-evolution-diagram h4 { margin: 0; font-family: inherit; font-weight: 500; line-height: 1.3; }
#simulation-evolution-diagram .r2-evolution { --evo-layout: wide; position: relative; isolation: isolate; grid-template-columns: minmax(0, 2.12fr) minmax(0, 1fr); gap: 22px 48px; align-items: start; }
#simulation-evolution-diagram .r2-evolve-workers { display: contents; }
#simulation-evolution-diagram .r2-seed { grid-column: 1; grid-row: 1; height: auto; min-height: 53px; border: 0; margin: 0; padding: 0; gap: 18px; }
#simulation-evolution-diagram .r2-seed > span { font-size: 19px; }
#simulation-evolution-diagram .r2-seed > i { margin-left: auto; }
#simulation-evolution-diagram .evo-illustrative { display: block; font-size: 11px; margin-top: 3px; color: #89917f; }
#simulation-evolution-diagram .r2-workers { grid-column: 1; grid-row: 2; min-width: 0; position: relative; z-index: 1; gap: 16px; }
#simulation-evolution-diagram .r2-worker { min-width: 0; }
#simulation-evolution-diagram .r2-worker-task { display: flex; align-items: center; min-height: 68px; font-size: 17px; padding: 12px; }
#simulation-evolution-diagram .r2-worker-file { overflow: hidden; white-space: nowrap; }
#simulation-evolution-diagram .r2-worker-code { height: 153px; }
#simulation-evolution-diagram .r2-writing-row > code { min-width: 0; animation: none; font-family: var(--font-mono, ui-monospace, monospace); font-size: 11.5px; }
#simulation-evolution-diagram .r2-writing-row > i { font-family: var(--font-mono, ui-monospace, monospace); }
#simulation-evolution-diagram .r2-new-skill { animation: none; gap: 8px; }
#simulation-evolution-diagram .r2-new-skill b { font-size: 11px; white-space: nowrap; }
#simulation-evolution-diagram .r2-new-skill small { font-size: 10px; line-height: 1.3; }
#simulation-evolution-diagram .r2-worker-footer { font-size: 11px; }
#simulation-evolution-diagram .r2-board { grid-column: 2; grid-row: 1 / 4; width: auto; height: auto; padding: 22px; }
#simulation-evolution-diagram .r2-board-head h4 { font-size: 23px; letter-spacing: -.025em; }
#simulation-evolution-diagram .r2-post > span { font-family: var(--font-mono, ui-monospace, monospace); font-size: 9px; }
#simulation-evolution-diagram .r2-post code { font-family: var(--font-mono, ui-monospace, monospace); font-size: 13px; }
#simulation-evolution-diagram .r2-post p { font-size: 18px !important; line-height: 1.4 !important; }
#simulation-evolution-diagram .r2-briefing h4 { font-size: 18px; color: #80725f; }
#simulation-evolution-diagram .r2-briefing p { font-size: 17px !important; line-height: 1.5 !important; }
#simulation-evolution-diagram .r2-merge { grid-column: 1; grid-row: 3; position: relative; z-index: 1; margin: 0; padding: 17px 20px; gap: 17px; }
#simulation-evolution-diagram .r2-merge h4 { font-size: 23px; letter-spacing: -.025em; }
#simulation-evolution-diagram .r2-merge > strong { font-size: 32px; white-space: nowrap; }
#simulation-evolution-diagram .r2-merge > i { font-size: 32px; }
#simulation-evolution-diagram .r2-evolve-return { grid-column: 1; grid-row: 4; font-size: 14px; line-height: 1.4; margin: -6px 0 0; }
#simulation-evolution-diagram .r2-sharing-paths { width: 100%; height: 100%; overflow: visible; }
#simulation-evolution-diagram .r2-sharing-paths > path { fill: none; stroke: #baa48d; stroke-width: 1.3; stroke-dasharray: 4 4; }
#simulation-evolution-diagram .evo-packet { opacity: 0; }
#simulation-evolution-diagram .evo-post-packet { fill: #b19172; }
#simulation-evolution-diagram .evo-brief-packet { fill: #789590; }
#simulation-evolution-diagram.evo-animation-ready .r2-writing-row > code { animation: evo-type-code 12s steps(30,end) infinite both; animation-delay: calc(var(--offset) + var(--row)*.7s); animation-play-state: paused; }
#simulation-evolution-diagram.evo-animation-ready .r2-new-skill { animation: evo-skill-created 12s infinite both; animation-delay: var(--offset); animation-play-state: paused; }
#simulation-evolution-diagram.evo-animation-ready .r2-post { animation: evo-note-arrives 12s infinite; animation-delay: 2.5s; animation-play-state: paused; }
#simulation-evolution-diagram.evo-animation-ready .r2-post.second { animation-delay: 6.5s; }
#simulation-evolution-diagram.evo-playing .r2-writing-row > code,
#simulation-evolution-diagram.evo-playing .r2-new-skill,
#simulation-evolution-diagram.evo-playing .r2-post { animation-play-state: running; }
#simulation-evolution-diagram.evo-playing .evo-packet { opacity: 1; }
@keyframes evo-note-arrives { 0%,12% { opacity: .4; translate: 0 -3px; } 22%,94% { opacity: 1; translate: 0 0; } 100% { opacity: .4; } }
@container simulation-evolution (max-width: 1319px) {
  #simulation-evolution-diagram .r2-evolution { --evo-layout: stacked; grid-template-columns: minmax(0, 1fr); row-gap: 22px; }
  #simulation-evolution-diagram .r2-board { grid-column: 1; grid-row: 3; margin-top: 18px; display: grid; grid-template-columns: 1fr 1fr .92fr; gap: 14px 26px; padding: 19px 23px 23px; }
  #simulation-evolution-diagram .r2-board-head { grid-column: 1 / -1; margin-bottom: 0; }
  #simulation-evolution-diagram .r3-board .r2-post { margin: 0; }
  #simulation-evolution-diagram .r2-briefing { align-self: center; }
  #simulation-evolution-diagram .r2-merge { grid-row: 4; }
  #simulation-evolution-diagram .r2-evolve-return { grid-row: 5; }
  #simulation-evolution-diagram .r2-writing-row > code { font-size: 12px; }
}
@container simulation-evolution (max-width: 939px) {
  #simulation-evolution-diagram .r2-evolution { --evo-layout: mobile; row-gap: 19px; max-width: 480px; margin-inline: auto; }
  #simulation-evolution-diagram .r2-seed { gap: 12px; }
  #simulation-evolution-diagram .r2-seed > span { font-size: 16px; }
  #simulation-evolution-diagram .evo-illustrative { font-size: 10px; }
  #simulation-evolution-diagram .r2-workers { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  #simulation-evolution-diagram .r2-worker-task { min-height: 0; font-size: 18px; padding: 12px 15px; }
  #simulation-evolution-diagram .r2-worker-top { padding-inline: 15px; }
  #simulation-evolution-diagram .r2-worker-file { padding-inline: 15px; }
  #simulation-evolution-diagram .r2-worker-code { height: 145px; }
  #simulation-evolution-diagram .r2-writing-row > i { width: 30px; padding-left: 14px; }
  #simulation-evolution-diagram .r2-writing-row > code { font-size: 12px; }
  #simulation-evolution-diagram .r2-new-skill { margin-inline: 14px; padding: 10px; }
  #simulation-evolution-diagram .r2-new-skill small { font-size: 11px; }
  #simulation-evolution-diagram .r2-board { grid-template-columns: minmax(0, 1fr); margin-top: 18px; row-gap: 21px; padding: 21px 24px 24px; }
  #simulation-evolution-diagram .r2-board-head { grid-column: 1; }
  #simulation-evolution-diagram .r2-post { padding: 21px 18px 18px; }
  #simulation-evolution-diagram .r2-post p { font-size: 19px !important; }
  #simulation-evolution-diagram .r2-merge { padding: 14px 15px; gap: 11px; }
  #simulation-evolution-diagram .r2-merge-icon { display: none; }
  #simulation-evolution-diagram .r2-merge h4 { font-size: 21px; }
  #simulation-evolution-diagram .r2-merge span { max-width: 220px; font-size: 13px; line-height: 1.4; }
  #simulation-evolution-diagram .r2-merge > strong { font-size: 27px; }
  #simulation-evolution-diagram .r2-merge > i { display: none; }
  #simulation-evolution-diagram .r2-evolve-return { font-size: 13px; }
}
@container simulation-evolution (max-width: 339px) {
  #simulation-evolution-diagram .r2-writing-row > code { font-size: 10.5px; }
  #simulation-evolution-diagram .r2-seed { flex-wrap: wrap; }
  #simulation-evolution-diagram .r2-seed > i { display: none; }
  #simulation-evolution-diagram .r2-seed > span:last-child { width: 100%; }
  #simulation-evolution-diagram .r2-merge h4 { font-size: 19px; }
}
@media (prefers-reduced-motion: reduce) {
  #simulation-evolution-diagram .r2-writing-row > code,
  #simulation-evolution-diagram .r2-new-skill,
  #simulation-evolution-diagram .r2-post { animation: none !important; clip-path: none !important; opacity: 1 !important; transform: none !important; translate: none !important; }
  #simulation-evolution-diagram .evo-packet { display: none; }
}
@media print {
  #simulation-evolution-diagram .r2-writing-row > code,
  #simulation-evolution-diagram .r2-new-skill,
  #simulation-evolution-diagram .r2-post { animation: none !important; clip-path: none !important; opacity: 1 !important; translate: none !important; }
  #simulation-evolution-diagram .evo-packet { display: none; }
}

/* Rotate archived examples in the same three editors, keeping the figure still. */
#simulation-evolution-diagram .evo-example-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin: 0 0 20px;
  color: #73816d;
  font-size: 13px;
}
#simulation-evolution-diagram .evo-example-navigation { display: flex; align-items: center; gap: 10px; }
#simulation-evolution-diagram .evo-example-position { min-width: 82px; text-align: center; font-variant-numeric: tabular-nums; }
#simulation-evolution-diagram .evo-example-navigation button {
  min-width: 44px; min-height: 44px; padding: 4px 10px;
  border: 1px solid #c5cec0; border-radius: 4px;
  background: transparent; color: #41624b; font-size: 20px;
  line-height: 1; cursor: pointer;
}
#simulation-evolution-diagram .evo-example-navigation button:hover { background: #e7ece0; }
#simulation-evolution-diagram .r2-worker-task { height: 68px; min-height: 68px; }
#simulation-evolution-diagram .r2-worker-file { text-overflow: ellipsis; }
#simulation-evolution-diagram .r2-worker-code { height: 168px; }
#simulation-evolution-diagram .r2-writing-row > code { font-size: 12px; }
#simulation-evolution-diagram .r3-board .r2-post { min-height: 178px; }
#simulation-evolution-diagram.evo-animation-ready .r2-writing-row > code {
  animation: evo-code-type 1.1s steps(26, end) both;
  animation-delay: calc(var(--offset) + var(--row) * .3s);
  animation-play-state: paused;
}
#simulation-evolution-diagram.evo-animation-ready .r2-new-skill {
  animation: evo-skill-appear 1.2s both;
  animation-delay: calc(3.4s + var(--offset));
  animation-play-state: paused;
}
#simulation-evolution-diagram.evo-animation-ready .r2-post {
  animation: evo-skill-appear 1s both;
  animation-delay: 5.5s;
  animation-play-state: paused;
}
#simulation-evolution-diagram.evo-animation-ready .r2-post.second { animation-delay: 7.5s; }
#simulation-evolution-diagram.evo-playing .r2-writing-row > code,
#simulation-evolution-diagram.evo-playing .r2-new-skill,
#simulation-evolution-diagram.evo-playing .r2-post { animation-play-state: running; }
@keyframes evo-code-type { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0); } }
@keyframes evo-skill-appear { from { opacity: .16; translate: 0 3px; } to { opacity: 1; translate: 0 0; } }
@container simulation-evolution (max-width: 939px) {
  #simulation-evolution-diagram .evo-example-controls { max-width: 480px; margin-inline: auto; }
}
@container simulation-evolution (max-width: 339px) {
  #simulation-evolution-diagram .r2-writing-row > code { font-size: 10.5px; }
}

/* Compact citation: a single heading row and a content-sized code block. */
.research-main #bibtex { margin-bottom: 42px; }
#bibtex .citation-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 12px;
}
.research-main #bibtex h2 { margin: 0; }
#bibtex .bibtex-copy {
  position: static;
  flex: 0 0 auto;
  align-self: auto;
  min-width: 58px;
  min-height: 44px;
  padding: 6px 12px;
  font-size: 11px;
  line-height: 1.2;
}
.research-main #bibtex .bibtex-box {
  display: block;
  min-height: 0;
  padding: 18px 22px;
  border: 1px solid var(--hairline);
  border-radius: 4px;
  background: #eeeee7;
}
#bibtex .bibtex-box pre {
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  overflow-x: auto;
  tab-size: 2;
  font-size: 12px;
  line-height: 1.6;
}
#bibtex .bibtex-box code {
  display: block;
  font-family: var(--font-mono);
  font-size: inherit;
  line-height: inherit;
  color: var(--ink-2);
}
@media (max-width: 600px) {
  .research-main #bibtex { margin-bottom: 34px; }
  #bibtex .citation-heading { gap: 12px; margin-bottom: 10px; }
  .research-main #bibtex .bibtex-box { padding: 15px; }
  #bibtex .bibtex-box pre { font-size: 11px; line-height: 1.6; }
}
