:root {
  --accent-color: #3276ad;
  --text-color: #181818;
  --muted-color: #6d6a65;
  --border-color: #18181824;
  --accent-text-color: #181818;
  --shadow: 0 12px 30px #141c2614;
  --radius: 20px;
  --hero-font-size: 2.5rem;
  --section-font-size: 1.4rem;
  --metadata-font-size: 0.9375rem;
  --body-font-size: 1rem;
  --subheading-font-size: 1.25rem;
  --copy-color: #363532;
  --caption-color: #76716a;
  --body-font: "Roboto Mono", "Courier New", monospace;
  --page-background: #fdfaf4;
  --heading-font: Georgia, "Times New Roman", serif;
  --caption-font-size: 0.875rem;
  --formula-size: 1.4rem;
  --formula-row-height: calc(var(--formula-size) * 1.7);
  --link-hover-gradient: linear-gradient(290deg, transparent 45%, #efe4d1 72%, #e0e9df);
  --tracking: #8f6b32;
  --balancing: #35664b;
  --execution: #4f4b43;
  --diagram-line: #b8b0a2;
  --tracking-wash: #f3ecdc;
  --balancing-wash: #eaf0e6;
  --chart-dkwbc: #448660;
  --chart-sonic: #ad8238;
}
*,
::after,
::before {
  box-sizing: border-box;
}
html {
  font-family: sans-serif;
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
}
article,
aside,
figcaption,
figure,
header,
main,
nav,
section {
  display: block;
}
body {
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans",
    sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #212529;
  text-align: left;
  background-color: #fff;
}
h1,
h2,
h3 {
  margin-bottom: 0.5rem;
}
h1,
h2,
h3,
p {
  margin-top: 0;
}
p {
  margin-bottom: 1rem;
}
small {
  font-size: 80%;
}
sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
a {
  color: #007bff;
  text-decoration: none;
  background-color: transparent;
}
a:hover {
  color: #0056b3;
  text-decoration: underline;
}
a:not([href]),
a:not([href]):hover {
  color: inherit;
  text-decoration: none;
}
code,
pre {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 1em;
}
pre {
  margin-top: 0;
  margin-bottom: 1rem;
  overflow: auto;
}
figure {
  margin: 0 0 1rem;
}
img {
  border-style: none;
}
img,
svg {
  vertical-align: middle;
}
svg {
  overflow: hidden;
}
caption {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  color: #6c757d;
  text-align: left;
  caption-side: bottom;
}
label {
  display: inline-block;
  margin-bottom: 0.5rem;
}
button {
  border-radius: 0;
}
button:focus {
  outline: 1px dotted;
  outline: 5px auto -webkit-focus-ring-color;
}
button,
select,
textarea {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
button {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
select {
  word-wrap: normal;
}
[type="button"],
button {
  -webkit-appearance: button;
}
[type="button"]:not(:disabled),
button:not(:disabled) {
  cursor: pointer;
}
[type="button"]::-moz-focus-inner,
button::-moz-focus-inner {
  padding: 0;
  border-style: none;
}
textarea {
  overflow: auto;
  resize: vertical;
}
progress {
  vertical-align: baseline;
}
::-webkit-file-upload-button {
  font: inherit;
  -webkit-appearance: button;
}
.h1,
.h2,
.h3,
h1,
h2,
h3 {
  margin-bottom: 0.5rem;
  font-weight: 500;
  line-height: 1.2;
}
.h1,
h1 {
  font-size: 2.5rem;
}
.h2,
h2 {
  font-size: 2rem;
}
.h3,
h3 {
  font-size: 1.75rem;
}
.small,
small {
  font-size: 80%;
  font-weight: 400;
}
.figure {
  display: inline-block;
}
code {
  font-size: 87.5%;
  color: #e83e8c;
  word-wrap: break-word;
}
a > code {
  color: inherit;
}
pre {
  display: block;
  font-size: 87.5%;
  color: #212529;
}
pre code {
  font-size: inherit;
  color: inherit;
  word-break: normal;
}
.row {
  margin-right: -15px;
  margin-left: -15px;
}
.row,
.nav {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.nav {
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}
.progress {
  display: -ms-flexbox;
  display: flex;
  height: 1rem;
  overflow: hidden;
  font-size: 0.75rem;
  background-color: #e9ecef;
  border-radius: 0.25rem;
}
.close {
  float: right;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 #fff;
  opacity: 0.5;
}
.close:hover {
  color: #000;
  text-decoration: none;
}
.close:not(:disabled):not(.disabled):focus,
.close:not(:disabled):not(.disabled):hover {
  opacity: 0.75;
}
button.close {
  padding: 0;
  background-color: transparent;
  border: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
a.close.disabled {
  pointer-events: none;
}
.tooltip {
  position: absolute;
  z-index: 1070;
  display: block;
  margin: 0;
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans",
    sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-style: normal;
  font-weight: 400;
  line-height: 1.5;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  letter-spacing: normal;
  word-break: normal;
  word-spacing: normal;
  white-space: normal;
  line-break: auto;
  font-size: 0.875rem;
  word-wrap: break-word;
  opacity: 0;
}
.tooltip.show {
  opacity: 0.9;
}
.sr-only {
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}
.shadow {
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}
.visible {
  visibility: visible !important;
}
@media print {
  *,
  ::after,
  ::before {
    text-shadow: none !important;
    box-shadow: none !important;
  }
  a:not(.btn) {
    text-decoration: underline;
  }
  pre {
    white-space: pre-wrap !important;
    border: 1px solid #adb5bd;
  }
  pre,
  img {
    page-break-inside: avoid;
  }
  h2,
  h3,
  p {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  @page {
    size: a3;
  }
  body {
    min-width: 992px !important;
  }
}
.fa {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.fa-github:before {
  content: "\f09b";
}
.fa-quote-right:before {
  content: "\f10e";
}
.fa-sliders:before {
  content: "\f1de";
}
.fa-hourglass-o:before {
  content: "\f250";
}
.fa-hand-pointer-o:before {
  content: "\f25a";
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: "Source Sans 3", sans-serif;
  background: #fff;
}

a {
  color: var(--accent-color);
  transition: color 0.18s ease;
}

a:hover {
  color: var(--accent-text-color);
  text-decoration: none;
}

.page {
  margin: 0 auto;
  padding: 28px 24px 40px;
}

.side-nav {
  left: max(16px, calc((100vw - 1100px) / 2 - 210px));
  top: 50%;
  transform: translateY(-50%);
  width: 120px;
  border-radius: var(--radius);
  z-index: 1000;
  opacity: 1;
  visibility: visible;
  transition:
    opacity 0.24s ease,
    transform 0.24s ease,
    visibility 0s linear 0s;
}

.side-nav a {
  display: block;
  padding: 10px 12px;
  border-radius: 12px;
  color: var(--muted-color);
  font-weight: 700;
  font-size: 0.88rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
}

.side-nav a:hover {
  background-color: #f5f8ff;
}

.side-nav a.active {
  background-color: #eef4ff;
  color: var(--accent-text-color);
  font-weight: 600;
}

.content {
  display: grid;
  gap: 0;
}

.content-group {
  display: grid;
  gap: 32px;
}

.content-group-intro {
  gap: 42px;
  padding-top: 20px;
}

.content-group-main {
  gap: 56px;
}

.content-group-citation {
  padding-bottom: 64px;
}

.content-group + .content-group {
  margin-top: 136px;
  padding-top: 0;
  border-top: none;
}

.hero,
.section-card {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.hero {
  padding: 0;
}

.hero,
.hero-title-region {
  text-align: center;
  display: grid;
  gap: 28px;
  justify-items: center;
}

.hero-title-region {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 32px 22px 36px;
  box-sizing: border-box;
  border-radius: var(--radius);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

h1,
h2,
h3 {
  font-weight: 700;
}

h1 {
  margin: 0;
  line-height: 1.18;
  letter-spacing: -0.02em;
  word-spacing: 0.08em;
  font-weight: 600;
}

h2 {
  margin: 0 0 10px;
  font-size: var(--section-font-size);
  letter-spacing: 0.03em;
}

h2,
h3 {
  text-align: center;
}

h3 {
  font-size: var(--metadata-font-size);
  font-weight: 500;
}

.title-mark {
  display: inline-block;
  background: linear-gradient(to top, #5c8576 0%, #709d88 52%, #8ab39d 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  font-weight: 700;
  font-style: italic;
  letter-spacing: 0.04em;
  margin-right: 0.18em;
  text-shadow: 0 1px 3px rgba(112, 157, 136, 0.16);
}

.authors {
  max-width: 1100px;
  margin: 0 auto;
  color: #344054;
  line-height: 1.9;
}

.affiliations {
  color: var(--muted-color);
  font-size: var(--body-font-size);
  line-height: 1.8;
}

.hero-buttons {
  color: #475467;
  font-size: var(--metadata-font-size);
  line-height: 1.8;
}

.hero-button {
  display: inline-block;
  position: relative;
  color: #23334c;
}

.hero-button i {
  margin-right: 6px;
}

.button-sep {
  color: #98a2b3;
  margin: 0 10px;
}

.section-card {
  padding: 0;
}

.section-header {
  margin-bottom: 18px;
  text-align: center;
}

.section-card p {
  color: #475467;
  line-height: 1.8;
}

.section-card p:not(.tldr-inline) {
  text-indent: 2em;
}

.method-figure {
  margin-top: 20px;
}

.method-figure img,
.method-figure video {
  width: 100%;
  border-radius: 12px;
  background: #fff;
}

.method-figure video {
  display: block;
}

pre {
  margin: 0;
  padding: 18px;
  border-radius: 16px;
  background: #f8fafc;
  border: 1px solid var(--border-color);
  color: #334155;
  white-space: pre-wrap;
  word-break: break-word;
}

@media (max-width: 1400px) {
  .side-nav {
    display: none;
  }
}

@media (max-width: 768px) {
  .page {
    padding: 18px;
  }

  .hero {
    padding: 0;
  }

  .hero-title-region {
    padding: 24px 16px 28px;
    border-radius: 16px;
  }

  .section-card {
    padding: 0;
  }
}
* {
  box-sizing: border-box;
}
body {
  line-height: 1.7;
}
a {
  text-underline-offset: 4px;
}
button,
a,
video,
[tabindex] {
  -webkit-tap-highlight-color: transparent;
}
button:focus-visible,
a:focus-visible,
video:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid #527d69 !important;
  outline-offset: 4px;
}
[hidden] {
  display: none !important;
}
.page {
  max-width: 1100px;
  padding-top: 36px;
}
.hero-title-region {
  padding: 38px 24px 34px;
  gap: 22px;
}
h1 {
  line-height: 1.25;
}
.authors {
  font-size: 1.15rem;
}
.hero {
  gap: 23px;
}
.hero-buttons {
  font-size: 1.15rem;
}
.hero-button {
  margin: 0 4px;
}

.ai {
  font-family: "Academicons";
  font-weight: 400;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1;
}
.ai-arxiv::before {
  content: "\e974";
}
.content-group-intro {
  gap: 30px;
  padding-top: 0;
}
.content-group + .content-group {
  margin-top: 88px;
}
.content-group-main {
  gap: 82px;
}
.section-card {
  scroll-margin-top: 36px;
}
.section-header p {
  color: var(--muted-color);
  margin-top: 12px;
}
figure {
  margin: 0;
}
video {
  display: block;
  width: 100%;
  background: #101211;
  border-radius: 12px;
}
figcaption {
  text-align: center;
  color: var(--muted-color);
  font-size: 0.94rem;
  line-height: 1.5;
  margin-top: 12px;
}
.method-figure img {
  display: block;
  height: auto;
  border-radius: 0;
}
.step-label {
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  font-weight: 600;
  text-transform: uppercase;
  color: #477561;
}
.tracking-term {
  color: #3972a7;
  text-align: center;
}
.balance-term {
  color: #946892;
  text-align: center;
}
.condition-tabs [aria-pressed="true"] {
  background: #e9f1ec;
  border-color: #9db9a7;
  color: #315940;
}
.side-nav {
  width: 142px;
}
.side-nav a {
  font-size: 0.75rem;
  padding: 10px 8px;
  letter-spacing: 0.07em;
}
.side-nav a.active {
  background-color: #edf4ee;
  color: #42624e;
}
.skip-link {
  position: fixed;
  top: -80px;
  left: 14px;
  background: #fff;
  padding: 12px;
  z-index: 2000;
}
.skip-link:focus {
  top: 10px;
}
dialog {
  width: min(1060px, 94vw);
  max-height: 92vh;
  padding: 18px;
  border: 0;
  border-radius: 16px;
  color: var(--text-color);
}
dialog::backdrop {
  background: rgba(12, 20, 16, 0.75);
}
.dialog-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 12px;
}
.dialog-header h2 {
  font-size: 1.15rem;
  margin: 0;
}
.dialog-header button {
  background: #f0f4f1;
  border: 0;
  border-radius: 50%;
  font-size: 1.6rem;
  width: 40px;
  height: 40px;
  cursor: pointer;
}
dialog video {
  max-height: 75vh;
}
body.dialog-open {
  overflow: hidden;
}
@media (max-width: 1400px) {
  .side-nav {
    display: flex;
    position: static;
    width: 100%;
    transform: none;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 24px;
    gap: 4px;
  }
  .side-nav a {
    padding: 6px 10px;
  }
}
@media (max-width: 700px) {
  .page {
    padding: 18px;
  }
  .hero-title-region {
    padding: 30px 15px;
  }
  h1 {
    font-size: 1.85rem;
  }
  .content-group + .content-group {
    margin-top: 56px;
  }
  .content-group-main {
    gap: 56px;
  }
  .side-nav a {
    font-size: 0.63rem;
    padding: 5px 8px;
  }
  .hero-buttons {
    font-size: 1.05rem;
  }
  .button-sep {
    margin: 0 5px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    transition: none !important;
  }
}
.content,
.content-group,
.section-card {
  min-width: 0;
}
.authors {
  column-gap: 16px;
  row-gap: 4px;
  font-size: var(--metadata-font-size);
}
.authors,
.affiliations {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
.affiliations {
  column-gap: 20px;
  row-gap: 6px;
}
@media (max-width: 700px) {
  .authors {
    font-size: 1.08rem;
    column-gap: 12px;
  }
  .affiliations {
    font-size: 0.9rem;
  }
}
.hero-title-region {
  background-image: none;
  background-color: transparent;
  padding-bottom: 14px;
}
.title-tracking {
  color: #3774ba;
}
.title-balancing {
  color: #a56b99;
}
.scaling-switch [aria-pressed="true"] {
  background: #fff;
  color: #315c41;
  box-shadow: 0 1px 4px #1b39211a;
}
#scaling-fallback h3 {
  margin-top: 24px;
}
.video-wall {
  margin: 0 auto;
  width: 100%;
  scroll-margin-top: 24px;
}
.wall-stage {
  position: relative;
  overflow: hidden;
  transition: height 1.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.wall-grid,
.generated-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px 12px;
  width: 100%;
}
.wall-enhanced .wall-grid {
  position: absolute;
  top: 0;
  left: 0;
}
.wall-tile {
  display: block;
  color: #5d7265;
  min-width: 0;
  opacity: 1;
  transition: opacity 0.8s ease;
}
.wall-tile:hover {
  text-decoration: none;
  color: #315c41;
}
.featured-tile {
  position: relative;
  z-index: 3;
  transform-origin: top left;
}
.wall-media {
  position: relative;
  aspect-ratio: 16/9;
  overflow: hidden;
  border-radius: 7px;
  background: white;
}
.wall-media video,
.wall-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 0;
}
.wall-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #ffffffdb;
  color: #345842;
  opacity: 0;
  transition: opacity 0.2s;
  font-size: 13px;
  box-shadow: 0 2px 12px #0002;
}
.wall-tile:hover .wall-play,
.wall-tile:focus-visible .wall-play {
  opacity: 1;
}
.wall-intro .wall-tile:not(.featured-tile),
.wall-intro .wall-play {
  opacity: 0;
  pointer-events: none;
}
.curve-legend [aria-pressed="false"] {
  opacity: 0.35;
}
.curve-canvas svg {
  width: 100%;
  height: auto;
  display: block;
  overflow: visible;
}
.curve-axis-label {
  fill: #737e79;
}
.curve-axis-label,
.curve-unit {
  font:
    15px "Source Sans 3",
    sans-serif;
}
.curve-unit {
  fill: #51645a;
}
.curve-gridline {
  stroke: #e8eeea;
  stroke-width: 1;
}
.curve-axis {
  stroke: #a3afa7;
  stroke-width: 1;
  fill: none;
}
.curve-guide {
  stroke: #bbc7bd;
  stroke-dasharray: 4 4;
  pointer-events: none;
}
.curve-point {
  cursor: pointer;
  outline: none;
}
.curve-point:focus-visible > circle:first-child {
  fill: #e2ebe4;
  stroke: #839e8d;
}
@media (max-width: 700px) {
  .wall-grid,
  .generated-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px 10px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .wall-stage {
    transition: none;
  }
}
.skip-link:not(:focus) {
  clip-path: inset(50%);
  width: 1px;
  height: 1px;
  overflow: hidden;
  padding: 0;
}
.wall-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}
.wall-heading h2 {
  margin: 0;
  text-align: left;
  font-size: 1.23rem;
  letter-spacing: 0;
  font-weight: 500;
  color: #486552;
}
.wall-heading button {
  border: 1px solid #dce5df;
  border-radius: 20px;
  padding: 6px 14px;
  background: white;
  color: #4d7058;
  font:
    400 0.85rem "Source Sans 3",
    sans-serif;
  cursor: pointer;
  flex-shrink: 0;
}
.wall-intro .wall-tile .wall-play,
.wall-revealing .wall-tile .wall-play {
  display: none;
}
.curve-value {
  font:
    500 16px "Source Sans 3",
    sans-serif;
  paint-order: stroke;
  stroke: white;
  stroke-width: 3px;
  stroke-linejoin: round;
}
@media (max-width: 700px) {
  .wall-heading h2 {
    font-size: 1rem;
  }
  .wall-heading button {
    padding: 5px 10px;
    font-size: 0.76rem;
  }
}
.motivation-interactive {
  margin-top: 38px;
}
.motivation-interactive + .motivation-interactive {
  border-top: 0;
  padding-top: 34px;
  margin-top: 34px;
}
.motivation-interactive > h3 {
  font-size: 1.45rem;
  font-weight: 500;
  margin: 10px 0 14px;
}
.motivation-interactive > p {
  color: #586371;
}
.motivation-interactive figure {
  margin: 28px 0 0;
}
.diagram-controls {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}
.diagram-controls button {
  border: 0;
  border-bottom: 2px solid transparent;
  padding: 9px 4px;
  background: transparent;
  color: #7c8781;
  font:
    400 0.94rem "Source Sans 3",
    sans-serif;
  cursor: pointer;
}
.diagram-controls button[aria-pressed="true"] {
  color: #365e48;
  border-bottom-color: #7ea38d;
}
.diagram-controls > span {
  color: #b5bfb9;
}
.diagram-controls button:focus {
  outline: none !important;
  box-shadow: none;
}
.diagram-controls button:focus-visible {
  text-decoration: underline;
  text-underline-offset: 5px;
}
.dynamics-equations {
  display: grid;
  align-items: center;
  min-height: 166px;
  padding: 26px 10px 10px;
}
.native-equation {
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: 14px;
  flex-wrap: wrap;
  font:
    1.65rem Cambria,
    "Times New Roman",
    serif;
  color: #2f3643;
  line-height: 1.7;
}
.native-equation > span {
  white-space: nowrap;
}
.native-equation sub,
.native-equation sup {
  font-size: 0.65em;
}
.equation-contribution {
  position: relative;
  padding-bottom: 25px;
}
.equation-contribution small {
  display: block;
  position: absolute;
  bottom: 0;
  width: 100%;
  text-align: center;
  font:
    0.83rem "Source Sans 3",
    sans-serif;
}
#motivation figcaption {
  text-align: center;
  color: #8a948e;
  font-size: 0.82rem;
  line-height: 1.6;
  margin-top: 22px;
}
.sonic-node[aria-pressed="true"] {
  color: #365e48;
  border-bottom-color: #7ea38d;
  background: #f7faf8;
}
.pd-equation {
  font-size: 1.4rem;
}
@media (max-width: 700px) {
  .diagram-controls {
    gap: 6px;
  }
  .diagram-controls button {
    font-size: 0.77rem;
  }
  .diagram-controls > span {
    display: none;
  }
  .native-equation {
    font-size: 1.17rem;
    gap: 7px;
  }
  .dynamics-equations {
    min-height: 170px;
    padding-left: 0;
    padding-right: 0;
  }
  .equation-contribution small {
    font-size: 0.66rem;
  }
  .pd-equation {
    font-size: 1.23rem;
  }
}

.title-acronym {
  display: block;
  font-size: 1.5em;
  line-height: 1.1;
  margin-bottom: 16px;
}
.timeline-ready .dynamics-equations {
  position: relative;
}
.timeline-ready [data-equation-step] {
  grid-area: 1 / 1;
  pointer-events: none;
}
.sonic-node[aria-pressed="true"] {
  background: rgba(230, 234, 231, calc(var(--stage-focus, 0) * 0.5));
  border-bottom-color: #e9eeeb;
}
.torque-term {
  color: #be8845;
}
.story-canvas {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
  margin: 4px auto 10px;
}
.story-canvas text {
  font:
    18px "Source Sans 3",
    sans-serif;
  fill: #69766e;
  stroke: none;
}
.story-canvas .small-svg {
  font-size: 15px;
  fill: #869089;
}
.story-canvas .ground {
  fill: none;
  stroke: #c7ceca;
  stroke-width: 1.5;
}
.story-canvas .contact-force {
  fill: none;
  stroke: #a56b99;
  stroke-width: 2.5;
  stroke-linecap: round;
}
.story-canvas .contact-force circle {
  fill: #a56b99;
  stroke: white;
  stroke-width: 1;
}
.story-canvas .contact-force text {
  fill: #a56b99;
  font-size: 14px;
}
.story-canvas .target-cloud > path {
  fill: #f7fafe;
  stroke: #7ba1cb;
  stroke-width: 1.8;
}
.story-canvas .target-cloud > circle {
  fill: #f7fafe;
  stroke: #7ba1cb;
  stroke-width: 1.5;
}
.story-canvas .target-cloud > text {
  fill: #3774ba;
  font-size: 18px;
}
.story-canvas .model-ink {
  fill: #3774ba;
}
.story-canvas .support-ink {
  fill: #a56b99;
}
.story-canvas .torque-ink {
  fill: #be8845;
}
.story-canvas .sonic-pd {
  fill: white;
  stroke: #be8845;
  stroke-width: 2;
}
.story-canvas .sonic-pd text {
  fill: #be8845;
}
.story-canvas .sling {
  fill: none;
  stroke: #b9c1c7;
  stroke-width: 2;
  stroke-dasharray: 5 4;
}
.story-canvas .policy-symbol {
  stroke: #87998c;
  stroke-width: 2;
}
.story-canvas .feedback-wire {
  fill: none;
  stroke: #b1bbb5;
  stroke-width: 1.5;
  stroke-dasharray: 5 5;
}
@media (max-width: 700px) {
  .story-canvas {
    margin-top: 10px;
  }
}
.dynamics-equations {
  min-height: 112px;
  padding: 18px 0 8px;
}
.story-canvas image {
  pointer-events: none;
}
.story-canvas .contribution-links {
  fill: none;
  stroke: #bcc5c0;
  stroke-width: 1.6;
}
.story-canvas .formula-svg {
  font:
    28px Cambria,
    "Times New Roman",
    serif;
}
.story-canvas .sling {
  stroke: #bcc5c0;
  stroke-width: 1.5;
  stroke-dasharray: none;
}
.story-canvas .contact-force {
  stroke: #bcc5c0;
  stroke-width: 1.8;
}
.story-canvas .contact-force path:first-child {
  stroke-width: 1.2;
}
.story-canvas .ground {
  stroke: #d2d8d4;
  stroke-width: 1.3;
}
.story-canvas .total-label {
  font-size: 20px;
}
.story-canvas .sonic-input-wires,
.story-canvas .control-link {
  stroke: #bcc5c0;
  stroke-width: 1.6;
  fill: none;
}
.story-canvas .policy-symbol {
  fill: white;
}
.story-canvas .policy-symbol,
.story-canvas .sonic-pd {
  stroke: #bcc5c0;
  stroke-width: 1.6;
}
.story-canvas .sonic-pd text {
  fill: #69766e;
}
.story-canvas .feedback-wire {
  stroke: #c7ceca;
  stroke-width: 1.2;
  stroke-dasharray: 3 5;
}
#motivation figcaption {
  margin-top: 12px;
}
@media (max-width: 700px) {
  .dynamics-equations {
    min-height: 120px;
  }
}
.story-canvas .sonic-target image {
  filter: url(#pd-yellow);
  opacity: 0.62;
}
.story-canvas .coupling-links {
  fill: none;
  stroke: #bcc5c0;
  stroke-width: 1.6;
}
.story-canvas .policy-output > .torque-ink {
  fill: #b99b25;
}
.story-canvas .tracking-ground {
  fill: none;
}
.story-canvas .ground-plane {
  fill: url(#ground-surface);
  stroke: none;
}
.story-canvas .ground-shadow {
  fill: url(#foot-shadow);
  stroke: none;
}
.story-canvas .suspended-ground .ground-shadow {
  opacity: 0.5;
}
.story-canvas .coupling-links {
  stroke-dasharray: 4 5;
}
.method-interactive-figure {
  margin: 30px 0 25px;
}
.method-canvas {
  margin-top: 25px;
}
.story-canvas .method-math {
  font:
    25px Cambria,
    "Times New Roman",
    serif;
}
.story-canvas .method-sum {
  fill: white;
  stroke: #bcc5c0;
  stroke-width: 1.6;
}
.story-canvas .method-observation-link {
  fill: none;
  stroke: #bcc5c0;
  stroke-width: 1.5;
  stroke-dasharray: 4 5;
}
#methods .method-interactive-figure figcaption {
  text-align: center;
  margin-top: 12px;
  color: #8a948e;
  font-size: 0.82rem;
}
@media (max-width: 700px) {
  .method-controls {
    gap: 5px 10px;
  }
  .method-controls button {
    font-size: 0.73rem;
  }
}
.method-interactive-figure [data-method-equation] {
  grid-area: 1 / 1;
  pointer-events: none;
}
.method-equations {
  min-height: 94px;
}
.method-equations .native-equation {
  font-size: 1.4rem;
}
.method-equations .native-equation > span {
  white-space: normal;
}
@media (max-width: 700px) {
  .method-equations .native-equation {
    font-size: 1rem;
  }
  .method-equations {
    min-height: 90px;
  }
}
.method-canvas .tracking-lane {
  fill: #f3f7fb;
}
.method-canvas .balancing-lane {
  fill: #faf5f9;
}
.method-canvas .lane-title {
  font-size: 20px;
  font-weight: 500;
}
.method-canvas .module-title {
  font-size: 17px;
}
.method-reference-ghost {
  filter: url(#method-reference-blue);
  opacity: 0.38;
}

[data-equation-step="2"] .equation-contribution {
  min-width: 160px;
  text-align: center;
}
[data-equation-step="2"] .equation-contribution small {
  white-space: normal;
  line-height: 1.2;
}
@media (max-width: 700px) {
  [data-equation-step="2"] .equation-contribution {
    min-width: 110px;
  }
}
.opening-results {
  min-width: 0;
  margin-top: 18px;
}
.opening-results .result-showcase {
  min-width: 0;
}
.opening-results .result-showcase + .result-showcase {
  margin-top: 44px;
  padding-top: 36px;
  border-top: 0;
}
.opening-results .showcase-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  margin: 0 0 22px;
}
.opening-results .showcase-heading h2 {
  margin: 0;
  text-align: left;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0;
  color: #365b47;
}
.opening-results .showcase-kicker {
  margin: 0 0 8px;
  color: #829087;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  line-height: 1.5;
  text-align: left;
}
@media (max-width: 700px) {
  .opening-results {
    margin-top: 6px;
  }
  .opening-results .result-showcase + .result-showcase {
    margin-top: 30px;
    padding-top: 26px;
  }
  .opening-results .showcase-heading {
    gap: 10px;
    align-items: flex-start;
    margin-bottom: 18px;
  }
  .opening-results .showcase-heading h2 {
    font-size: 1.13rem;
  }
  .opening-results .showcase-kicker {
    font-size: 0.64rem;
    letter-spacing: 0.07em;
  }
  .opening-results .wall-heading button {
    margin-top: 22px;
    padding: 4px 8px;
    font-size: 0.7rem;
  }
}

.opening-results .showcase-kicker {
  text-indent: 0;
}
.opening-results .scaling-feature {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.7fr);
  gap: 44px;
  align-items: center;
}
.scaling-copy,
.scaling-visual {
  min-width: 0;
}
.opening-results .scaling-copy .showcase-heading {
  margin-bottom: 20px;
}
.opening-results .scaling-copy h2 {
  font-size: 1.65rem;
  line-height: 1.28;
}
.scaling-copy p {
  text-indent: 0;
  text-align: left;
}
.scaling-fallback {
  width: 100%;
  height: auto;
}
.scaling-combined .metric-title {
  font:
    500 18px "Source Sans 3",
    sans-serif;
  fill: #566b5d;
}
.scaling-combined .curve-axis-label {
  font-size: 14px;
}
.scaling-combined .curve-value {
  font-size: 16px;
  font-weight: 500;
  paint-order: stroke;
  stroke: white;
  stroke-width: 4px;
  stroke-linejoin: round;
}
.wall-media video {
  pointer-events: none;
}
@media (max-width: 800px) {
  .opening-results .scaling-feature {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .opening-results .scaling-copy h2 {
    font-size: 1.4rem;
  }
}
.opening-results .scaling-copy p {
  text-indent: 0;
  text-align: left;
}
@media (max-width: 700px) {
  .scaling-combined .curve-axis-label {
    font-size: 18px;
  }
  .scaling-combined .metric-title {
    font-size: 21px;
  }
  .scaling-combined .curve-value {
    font-size: 20px;
  }
}

.balancing-video-frame,
.balancing-video {
  width: 100%;
  height: 100%;
}
.balancing-video {
  display: block;
  background: transparent;
  border-radius: 0;
  object-fit: contain;
  pointer-events: none;
}

.interactive-canvas {
  cursor: pointer;
  touch-action: manipulation;
}
.interactive-canvas:focus {
  outline: none !important;
  box-shadow: none;
}
figure:has(.interactive-canvas:focus-visible) [aria-pressed="true"] {
  text-decoration: underline;
  text-underline-offset: 5px;
}
.story-canvas
  :is(
    .contribution-links path,
    .sonic-input-wires path,
    .control-link,
    .coupling-links,
    .feedback-wire,
    .method-observation-link
  ) {
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.story-canvas :is(.coupling-links, .feedback-wire, .method-observation-link) {
  stroke-dasharray: 4 5;
}
.method-canvas .method-box .module-title,
.method-canvas .method-policy-title {
  font-size: 16px;
}
.method-canvas .method-box .small-svg {
  font-size: 13px;
}
.method-canvas .method-module-icon {
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.method-module-icon circle {
  fill: white;
}
.method-junction {
  fill: #bcc5c0;
  stroke: none;
}

.method-model-icon {
  color: #3774ba;
}
.method-network-icon {
  color: #a56b99;
}
.sonic-canvas {
  margin-top: 8px;
}
.sonic-controls {
  margin: 16px 0;
}
.sonic-canvas .sonic-policy-panel {
  fill: #f5f7f6;
  stroke: none;
}
.sonic-canvas .sonic-policy-box text {
  fill: #69766e;
  stroke: none;
}
.sonic-canvas .lane-title {
  font-size: 20px;
  font-weight: 500;
}
.sonic-canvas .sonic-policy-caption {
  font-size: 16px;
}
.sonic-canvas .comparison-module-icon {
  color: #87998c;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.comparison-module-icon circle {
  fill: white;
}

.comparison-equation {
  min-height: 50px;
  padding: 8px 0;
  display: grid;
  place-items: center;
}
.dynamics-algebra {
  display: none;
  grid-area: 1 / 1;
  width: 100%;
  max-width: 900px;
  height: auto;
  justify-self: center;
  overflow: visible;
}
.timeline-ready .dynamics-algebra {
  display: block;
}
.dynamics-algebra text {
  font:
    28px Cambria,
    "Times New Roman",
    serif;
  fill: #2f3643;
}
.dynamics-algebra .tracking-term {
  fill: #3774ba;
}
.dynamics-algebra .balance-term {
  fill: #a56b99;
}
.dynamics-algebra .torque-term {
  fill: #be8845;
}
.dynamics-algebra .algebra-caption {
  font:
    15px "Source Sans 3",
    sans-serif;
}
.algebra-sign {
  fill: none;
  stroke: #2f3643;
  stroke-width: 1.6;
  stroke-linecap: round;
}
.scaling-combined .curve-gridline {
  stroke: #edf1ee;
  stroke-width: 0.8;
}
.scaling-combined .curve-axis {
  stroke: #d3dcd6;
  stroke-width: 0.8;
}
.scaling-combined .metric-title {
  font-size: 17px;
  font-weight: 400;
}
.scaling-combined .curve-unit {
  font-size: 13px;
  fill: #8a948e;
}
.scaling-combined .curve-axis-label {
  font-size: 13px;
  fill: #849088;
}
.scaling-combined .data-curve {
  stroke-linecap: round;
}
.scaling-combined .curve-end-label {
  font:
    14px "Source Sans 3",
    sans-serif;
}
.scaling-combined .curve-end-value {
  font-weight: 500;
}
@media (max-width: 600px) {
  .scaling-combined .curve-axis-label {
    font-size: 16px;
  }
  .scaling-combined .metric-title {
    font-size: 19px;
  }
  .scaling-combined .curve-unit {
    font-size: 16px;
  }
  .scaling-combined .curve-end-label {
    font-size: 17px;
  }
}
body {
  line-height: 1.65;
}
h1,
.title-description {
  font-size: var(--hero-font-size);
}
.title-description {
  line-height: 1.3;
}
.authors,
.affiliations,
.hero-buttons {
  font-size: var(--body-font-size);
}
.section-header h2 {
  font-weight: 500;
  letter-spacing: 0;
}
.section-header h2,
.opening-results .showcase-heading h2,
.opening-results .scaling-copy h2 {
  font-size: var(--section-font-size);
  line-height: 1.35;
}
.motivation-interactive > h3 {
  font-size: var(--subheading-font-size);
  line-height: 1.4;
}
.motivation-interactive > p,
#methods > p {
  font-size: var(--body-font-size);
  line-height: 1.65;
}
.opening-results .showcase-kicker,
.step-label {
  font-size: var(--caption-font-size);
  font-weight: 500;
  letter-spacing: 0.06em;
}
.side-nav a,
.wall-heading button {
  font-size: var(--caption-font-size);
  letter-spacing: 0.04em;
}
.diagram-controls button,
.method-controls button {
  font-size: 0.9375rem;
  line-height: 1.5;
}
.scaling-combined .metric-title {
  font-size: 18px;
}
.scaling-combined .curve-unit,
.scaling-combined .curve-axis-label,
.scaling-combined .curve-end-label {
  font-size: 16px;
}
@media (max-width: 800px) {
  :root {
    --section-font-size: 1.5rem;
    --subheading-font-size: 1.25rem;
    --hero-font-size: 1.625rem;
  }
  .title-acronym {
    font-size: 2.375rem;
  }
  .diagram-controls button,
  .method-controls button {
    font-size: var(--caption-font-size);
  }
  .opening-results .wall-heading button {
    margin-top: 0;
  }
  .scaling-combined .curve-axis-label,
  .scaling-combined .curve-unit {
    font-size: 18px;
  }
  .scaling-combined .metric-title {
    font-size: 20px;
  }
  .scaling-combined .curve-end-label {
    font-size: 17px;
  }
}
body {
  line-height: 1.625;
}
h1,
.title-description,
.section-header h2,
.opening-results .showcase-heading h2,
.opening-results .scaling-copy h2,
.motivation-interactive > h3 {
  font-family: var(--heading-font);
  font-weight: 400;
  line-height: 1.25;
}
.title-acronym {
  font-size: 3rem;
  font-weight: 600;
  letter-spacing: -0.025em;
}
.title-acronym,
button {
  font-family: var(--body-font);
}
.motivation-interactive > p,
#methods > p {
  line-height: 1.625;
}
.story-canvas
  text:not(.formula-svg):not(.method-math):not(.policy-letter):not(.method-policy-letter),
.dynamics-algebra .algebra-caption,
.scaling-combined text {
  font-family: var(--body-font);
}
.diagram-controls {
  gap: 8px;
}
.diagram-controls button {
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid #dce5df;
  border-radius: 7px;
  background: #fafcfb;
}
.diagram-controls button[aria-pressed="true"] {
  background: #edf4ef;
  border-color: #739581;
}
.diagram-controls button:disabled {
  opacity: 0.65;
}
.diagram-controls button {
  position: relative;
}
.step-click-icon {
  position: absolute;
  right: -5px;
  bottom: -7px;
  display: grid;
  place-items: center;
  width: 23px;
  height: 23px;
  border: 1px solid #dce5df;
  border-radius: 50%;
  background: white;
  color: #365b47;
  font-size: 14px;
  pointer-events: none;
  visibility: hidden;
}
.is-suggested > .step-click-icon,
.is-transitioning > .step-click-icon {
  visibility: visible;
}
.is-transitioning > .step-click-icon {
  font-size: 12px;
}
.wall-load-status,
.motion-load-status {
  font: 400 1rem/1.4 var(--body-font);
  min-height: 44px;
  padding: 9px 16px;
  border: 1px solid #cbd9d0;
  border-radius: 7px;
  background: #fff;
  color: #365b47;
  cursor: pointer;
}
.interactive-canvas[aria-disabled="true"] {
  cursor: pointer;
}
.wall-load-status,
.motion-load-status {
  display: block;
  margin: 10px auto;
  font-size: 0.875rem;
}
.wall-load-status:disabled,
.motion-load-status:disabled {
  border-color: transparent;
  cursor: default;
}
@media (max-width: 800px) {
  :root {
    --hero-font-size: 1.875rem;
    --section-font-size: 1.625rem;
    --subheading-font-size: 1.375rem;
  }
  .title-acronym {
    font-size: 2.375rem;
  }
  .diagram-controls {
    flex-wrap: wrap;
  }
  .diagram-controls button {
    font-size: 0.875rem;
  }
}
.diagram-controls {
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 12px;
}
.diagram-controls button {
  flex: 1 1 0;
  min-width: 0;
  min-height: 76px;
  padding: 13px 16px;
  font-size: var(--subheading-font-size);
  line-height: 1.25;
  white-space: normal;
  overflow-wrap: break-word;
}
.diagram-controls > span {
  align-self: center;
  flex: 0 0 auto;
}
.story-pointer-cue {
  position: fixed;
  z-index: 2000;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 9px 13px;
  border: 1px solid #dce5df;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 4px 16px rgba(32, 59, 44, 0.1);
  color: #365b47;
  font: 400 15px/1.4 var(--body-font);
  white-space: nowrap;
  pointer-events: none;
}
.story-pointer-cue .fa {
  font-size: 16px;
}
.story-touch-cue {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #65776c;
  font: 400 14px/1.5 var(--body-font);
  margin-top: 8px;
}
.story-touch-cue.is-keyboard-visible {
  display: flex;
}
@media (max-width: 800px) {
  .diagram-controls {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  .diagram-controls > span {
    display: none;
  }
  .diagram-controls button {
    font-size: var(--subheading-font-size);
    min-height: 76px;
    padding: 12px;
  }
  .diagram-controls button:last-child:nth-child(4n + 1) {
    grid-column: 1 / -1;
  }
}
@media (hover: none), (pointer: coarse) {
  .story-touch-cue {
    display: flex;
  }
}
.opening-results .scaling-setup {
  margin: 20px 0 0;
  padding: 18px 20px;
  border-left: 3px solid #8ba694;
  border-radius: 0 8px 8px 0;
  background: #f4f7f5;
  color: #586b60;
}
.scaling-setup h3 {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 14px;
  font: 500 15px/1.4 var(--body-font);
}
.opening-results .scaling-setup p {
  margin: 0 0 13px;
  text-align: left;
  text-indent: 0;
  font: 400 16px/1.5 var(--body-font);
}
.setup-label {
  display: block;
  margin-bottom: 3px;
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6c8072;
}
.opening-results .scaling-setup .setup-note {
  margin: 0;
  padding-top: 12px;
  border-top: 1px solid #dce5df;
  font-size: 14px;
  color: #6c8072;
}
#motivation .motivation-interactive figure,
#methods .method-interactive-figure {
  width: 92%;
  margin-left: auto;
  margin-right: auto;
}
.diagram-controls button {
  min-height: 68px;
  padding: 11px 14px;
}
@media (max-width: 800px) {
  #motivation .motivation-interactive figure,
  #methods .method-interactive-figure {
    width: 96%;
  }
  .diagram-controls button {
    font-size: calc(var(--subheading-font-size) - 2px);
    min-height: 68px;
    padding: 10px;
  }
}
html,
body {
  background: var(--page-background);
}
body {
  font-family: var(--body-font);
  color: var(--text-color);
  font-size: var(--body-font-size);
  line-height: 1.72;
}
::selection {
  background: #3276ad33;
  color: var(--text-color);
}
a {
  color: inherit;
}
.site-nav {
  position: sticky;
  top: 0;
  z-index: 1100;
  border-bottom: 1px solid #18181814;
  background: #fdfaf4ed;
  backdrop-filter: blur(14px);
}
.site-nav-inner {
  max-width: 1344px;
  margin: auto;
  padding: 14px 24px;
}
.nav-brand {
  display: inline-block;
  font: 400 23px/1.15 var(--heading-font);
  text-decoration: none;
}
.nav-brand,
.nav-brand:hover {
  color: var(--text-color);
}
.page {
  max-width: 1080px;
  padding: 0 24px 88px;
}
.content-group-intro {
  padding-top: 68px;
  gap: 64px;
}
.content-group-main {
  gap: 80px;
}
.content-group + .content-group {
  margin-top: 80px;
}
.hero {
  justify-items: stretch;
  scroll-margin-top: 90px;
}
.hero,
.hero-title-region {
  text-align: left;
  gap: 20px;
}
.hero-title-region {
  padding: 0;
  justify-items: start;
  background: transparent;
}
.hero h1 {
  text-align: left;
  width: 100%;
  font-weight: 400;
  letter-spacing: 0;
  word-spacing: 0;
}
.hero .title-acronym {
  display: block;
  margin: 0 0 8px;
  font: 700 clamp(2.4rem, 4vw, 3.35rem)/1.1 var(--heading-font);
  color: var(--text-color);
  background: none;
  -webkit-text-fill-color: currentColor;
  font-style: normal;
  letter-spacing: -0.035em;
  text-shadow: none;
}
.title-description {
  display: block;
  max-width: 100%;
  font: 400 clamp(1.25rem, 1.7vw, 1.58rem)/1.35 var(--heading-font);
  color: var(--text-color);
}
.title-description br {
  display: none;
}
.title-tracking,
.title-balancing {
  color: inherit;
}
.authors {
  justify-content: flex-start;
  margin: 0;
  font: 500 0.9375rem/1.6 var(--body-font);
  color: var(--text-color);
}
.publication-authors {
  display: grid;
  gap: 12px;
  width: 100%;
  min-width: 0;
}
.authors.author-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 0;
}
.author-entry {
  display: inline-block;
  white-space: nowrap;
}
.author-entry a {
  color: inherit;
}
.author-entry:not(:last-child)::after {
  content: "\00b7";
  margin: 0 0.58rem;
  color: #18181857;
  font-weight: 400;
}
.publication-authors sup {
  font-size: 0.7em;
  line-height: 0;
  margin-left: 0.12em;
}
.affiliation-list {
  display: flex;
  flex-wrap: wrap;
  max-width: 100%;
  gap: 4px 20px;
  margin-top: 0;
  color: #65615b;
  font: 500 0.8125rem/1.6 var(--body-font);
}
.affiliation-list span {
  white-space: nowrap;
}
.affiliation-list > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.affiliation-list .fa {
  font-size: 1em;
}
.affiliation-list sup,
.author-notes sup {
  margin-left: 0;
}
.author-notes {
  gap: 4px 20px;
  margin-top: 0;
  color: #88847d;
  font: 400 0.75rem/1.6 var(--body-font);
}
.author-notes,
.hero-buttons {
  display: flex;
  flex-wrap: wrap;
}
.hero-buttons {
  justify-content: flex-start;
  gap: 8px 24px;
  font: 600 1.0625rem/1.4 var(--body-font);
}
.hero-buttons,
.hero-button {
  align-items: center;
  margin: 0;
}
.hero-button {
  display: inline-flex;
  padding: 3px 0;
  font-weight: 600;
}
.hero-button::before {
  content: "[";
}
.hero-button::after {
  content: "]";
}
.hero-button i,
.button-sep {
  display: none;
}
.side-nav {
  display: flex;
  position: fixed;
  flex-direction: column;
  gap: 10px;
  top: 92px;
  right: clamp(8px, 1.1vw, 22px);
  left: auto;
  transform: none;
  width: 168px;
  padding: 14px 12px;
  margin: 0;
  border: 1px solid #1818181a;
  border-radius: 8px;
  background: #fdfaf4ed;
  box-shadow: var(--shadow);
  backdrop-filter: blur(14px);
}
.toc-title {
  color: #88847d;
  font-size: 0.72rem;
  line-height: 1;
  text-transform: uppercase;
  margin-bottom: 2px;
}
.side-nav a {
  padding: 0;
  border-radius: 0;
  color: #77736c;
  font: 400 0.78rem/1.3 var(--body-font);
  letter-spacing: 0;
  text-transform: none;
  text-align: left;
  transition:
    color 0.16s,
    transform 0.16s;
}
.side-nav a:hover,
.side-nav a.active {
  color: var(--text-color);
  background-color: transparent;
}
.side-nav a.active {
  transform: translateX(4px);
  font-weight: 500;
}
.section-card,
.video-wall {
  scroll-margin-top: 86px;
}
.section-header {
  text-align: left;
  margin-bottom: 26px;
}
.method-kicker {
  display: block;
  margin-bottom: 10px;
}
.section-header h2,
.opening-results .showcase-heading h2,
.opening-results .scaling-copy h2 {
  display: flex;
  align-items: baseline;
  gap: 11px;
  margin: 0;
  text-align: left;
  font: 700 var(--section-font-size)/1.35 var(--body-font);
  letter-spacing: -0.035em;
  color: var(--text-color);
}
.section-header h2::before,
.opening-results .showcase-heading h2::before,
.motivation-interactive > h3::before {
  content: "";
  display: inline-block;
  flex: 0 0 11px;
  width: 11px;
  height: 11px;
  background: var(--text-color);
}
.opening-results .showcase-heading {
  margin-bottom: 24px;
}
.opening-results .showcase-kicker,
.step-label {
  color: var(--caption-color);
  font: 400 1rem/1.5 var(--body-font);
  letter-spacing: 0.035em;
}
.opening-results .showcase-kicker {
  margin-bottom: 10px;
}
.section-card p.showcase-kicker {
  text-indent: 0;
}
.opening-results .result-showcase + .result-showcase {
  margin-top: 64px;
  padding-top: 44px;
  border-color: var(--border-color);
}
.opening-results .scaling-feature {
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.7fr);
  gap: 32px;
}
.opening-results .scaling-setup {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0 0 0 16px;
  color: var(--copy-color);
}
.scaling-setup h3 {
  font-family: var(--body-font);
  font-size: 0.875rem;
  color: var(--text-color);
}
.opening-results .scaling-setup p {
  font: 400 0.875rem/1.7 var(--body-font);
  color: var(--copy-color);
}
.setup-label {
  color: var(--caption-color);
  font-size: 0.6875rem;
  letter-spacing: 0.04em;
}
.opening-results .scaling-setup .setup-note {
  display: block;
  margin-top: 6px;
  padding: 0;
  border: 0;
  color: var(--caption-color);
  font-size: 0.8125rem;
}
.motivation-interactive > h3 {
  display: flex;
  align-items: baseline;
  gap: 11px;
  text-align: left;
  font: 600 var(--subheading-font-size)/1.4 var(--body-font);
  color: var(--text-color);
  margin-top: 8px;
}
.motivation-interactive > p,
#methods > p {
  color: var(--copy-color);
  font: 400 1rem/1.72 var(--body-font);
  text-align: left;
  text-indent: 0;
}
.diagram-controls button {
  font-family: var(--body-font);
  font-size: calc(var(--subheading-font-size) - 2px);
  font-weight: 400;
  color: #57534d;
  border-color: var(--border-color);
  border-radius: 8px;
  background: #ffffff57;
}
.diagram-controls button[aria-pressed="true"] {
  border-color: #18181866;
  background: #eee9df;
}
.diagram-controls button:hover {
  border-color: #18181866;
}
.wall-heading button,
.wall-load-status,
.motion-load-status {
  font-family: var(--body-font);
  color: #57534d;
  border-color: var(--border-color);
  background: var(--page-background);
}
.story-pointer-cue {
  font-family: var(--body-font);
  font-size: 0.8125rem;
  color: var(--text-color);
  border-color: var(--border-color);
  background: #fdfaf4f5;
}
.story-touch-cue {
  font-family: var(--body-font);
  color: var(--caption-color);
}
.dynamics-equations,
.comparison-equation {
  min-width: 0;
  min-height: calc(var(--formula-row-height) + 16px);
  padding: 8px 0;
}
.dynamics-equations {
  margin-top: 6px;
}
#dynamics-equations {
  margin-top: 16px;
}
.native-equation,
.pd-equation,
.method-equations .native-equation {
  font-size: var(--formula-size);
  line-height: 1.7;
}
.dynamics-algebra {
  height: var(--formula-row-height);
}
.dynamics-algebra text {
  font-size: var(--formula-size);
}
.dynamics-algebra tspan {
  font-size: 0.65em;
}
.dynamics-algebra .algebra-caption {
  font-size: 12px;
}
.dynamics-figure > .story-canvas,
.sonic-figure > .story-canvas,
.method-interactive-figure > .story-canvas {
  margin-top: 8px;
}
#video-wall {
  --wall-video-aspect: 1284 / 556;
  padding: 16px 20px;
}
#video-wall:not(.wall-intro):not(.wall-revealing) .wall-stage {
  overflow: visible;
}
.wall-media {
  aspect-ratio: var(--wall-video-aspect);
  border: 1px solid #1818180f;
  border-radius: 10px;
}
.wall-media video {
  background: white;
}
.scaling-combined text {
  font-family: var(--body-font);
}
.scaling-combined .curve-gridline {
  stroke: #18181814;
}
.content-group-citation {
  padding-bottom: 0;
}
.citation-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 18px;
}
.citation-heading .section-header {
  margin: 0;
}
#copy-bibtex {
  flex-shrink: 0;
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid var(--border-color);
  border-radius: 7px;
  background: #ffffff57;
  color: var(--text-color);
  font: 500 0.8125rem/1.4 var(--body-font);
  cursor: pointer;
}
#copy-bibtex:hover {
  background: #eee9df;
  border-color: #18181866;
}
.citation-bibtex {
  margin: 0;
  padding: 22px 24px;
  border: 1px solid var(--border-color);
  border-radius: 10px;
  background: #ffffff57;
  color: var(--text-color);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: normal;
}
.citation-bibtex code {
  padding: 0;
  color: inherit;
  background: transparent;
  font: 400 0.8125rem/1.8 var(--body-font);
  white-space: inherit;
}
.citation-copy-status {
  display: block;
  min-height: 28px;
  margin-top: 8px;
  color: var(--caption-color);
  font: 400 0.75rem/1.6 var(--body-font);
}
.story-canvas
  text:not(.formula-svg):not(.method-math):not(.policy-letter):not(.method-policy-letter),
.dynamics-algebra .algebra-caption {
  font-family: "Source Sans 3", Arial, sans-serif;
}
@media (min-width: 1301px) {
  .page {
    position: relative;
    left: -32px;
  }
}
@media (max-width: 1300px) {
  .side-nav {
    position: static;
    flex-direction: row;
    flex-wrap: wrap;
    width: 100%;
    box-shadow: none;
    gap: 10px 18px;
    margin: 26px 0 0;
    padding: 12px 14px;
  }
  .side-nav a {
    font-size: 0.8125rem;
  }
  .side-nav a.active {
    transform: none;
  }
  .toc-title {
    align-self: center;
    margin: 0;
  }
  .content-group-intro {
    padding-top: 42px;
  }
}
@media (max-width: 800px) {
  :root {
    --section-font-size: 1.25rem;
    --subheading-font-size: 1.125rem;
  }
  .page {
    padding: 0 20px 56px;
  }
  .site-nav-inner {
    padding: 12px 20px;
  }
  .nav-brand {
    font-size: 21px;
  }
  .content-group-intro {
    padding-top: 36px;
    gap: 44px;
  }
  .content-group-main {
    gap: 56px;
  }
  .content-group + .content-group {
    margin-top: 56px;
  }
  .hero,
  .hero-title-region {
    gap: 20px;
  }
  .hero .title-acronym {
    font-size: 2.5rem;
  }
  .title-description {
    font-size: 1.375rem;
    line-height: 1.35;
  }
  .hero-buttons {
    gap: 8px 24px;
    font-size: 1rem;
  }
  .authors {
    font-size: 0.875rem;
  }
  .opening-results .scaling-feature {
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
  }
  .opening-results .scaling-setup {
    margin-top: 18px;
  }
  .opening-results .result-showcase + .result-showcase {
    margin-top: 44px;
    padding-top: 32px;
  }
  .motivation-interactive > p,
  #methods > p {
    font-size: 0.9375rem;
  }
  .section-header h2,
  .opening-results .showcase-heading h2,
  .motivation-interactive > h3 {
    gap: 9px;
  }
  .section-header h2::before,
  .opening-results .showcase-heading h2::before,
  .motivation-interactive > h3::before {
    flex-basis: 9px;
    width: 9px;
    height: 9px;
  }
}
@media (max-width: 400px) {
  .page {
    padding-right: 16px;
    padding-left: 16px;
  }
  .side-nav {
    gap: 10px 14px;
  }
  .toc-title {
    width: 100%;
  }
  .hero-buttons {
    gap: 8px 20px;
  }
  .title-description {
    font-size: 1.25rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
@media (max-width: 700px) {
  :root {
    --formula-size: 1.23rem;
    --formula-row-height: calc(var(--formula-size) * 3.4);
  }
  #video-wall {
    padding: 12px;
  }
  .dynamics-algebra .algebra-caption {
    font-size: 11px;
  }
}
a:not(.wall-tile),
.wall-play {
  background-image: var(--link-hover-gradient);
  background-size: 230% 100%;
  background-position: 100% 0;
  transition:
    background-position 0.3s ease,
    color 0.2s ease,
    transform 0.16s ease,
    opacity 0.2s ease;
}
a:not(.wall-tile) {
  text-decoration: none;
  border-radius: 3px;
}
a:not(.wall-tile):hover,
a:not(.wall-tile):focus-visible,
.wall-tile:hover .wall-play,
.wall-tile:focus-visible .wall-play {
  color: var(--text-color);
  background-image: var(--link-hover-gradient);
  background-position: 0 0;
  text-decoration: none;
}
.native-equation,
.algebra-neutral {
  color: var(--execution);
}
.dynamics-algebra .algebra-neutral,
.story-canvas .algebra-neutral {
  fill: var(--execution);
}
.tracking-term {
  color: var(--tracking);
}
.balance-term {
  color: var(--balancing);
}
.torque-term {
  color: var(--execution);
}
.story-canvas text {
  fill: var(--execution);
}
.story-canvas .small-svg {
  fill: #7b756b;
}
.story-canvas .model-ink,
.dynamics-algebra .tracking-term {
  fill: var(--tracking);
}
.story-canvas .support-ink,
.dynamics-algebra .balance-term {
  fill: var(--balancing);
}
.story-canvas .torque-ink,
.dynamics-algebra .torque-term,
.story-canvas .policy-output > .torque-ink {
  fill: var(--execution);
}
.method-model-icon {
  color: var(--tracking);
}
.method-network-icon {
  color: var(--balancing);
}
.method-canvas .tracking-lane {
  fill: var(--tracking-wash);
}
.method-canvas .balancing-lane {
  fill: var(--balancing-wash);
}
.story-canvas .target-cloud > path,
.story-canvas .target-cloud > circle {
  fill: var(--tracking-wash);
  stroke: var(--tracking);
}
.story-canvas .target-cloud > text {
  fill: var(--tracking);
}
.story-canvas .ground-plane {
  fill: #eae7df;
}
.story-canvas .ground {
  stroke: #cdc7bc;
}
.story-canvas .contribution-links,
.story-canvas .control-link,
.story-canvas .sonic-input-wires,
.story-canvas .coupling-links,
.story-canvas .sling,
.story-canvas .contact-force {
  stroke: var(--diagram-line);
}
.story-canvas .feedback-wire,
.story-canvas .method-observation-link {
  stroke: #c5beb2;
}
.story-canvas .method-sum,
.story-canvas .policy-symbol,
.story-canvas .sonic-pd {
  fill: #fffaf1;
  stroke: var(--diagram-line);
}
.story-canvas .sonic-pd text {
  fill: var(--execution);
}
.method-junction {
  fill: var(--diagram-line);
}
.sonic-canvas .sonic-policy-panel {
  fill: #f0ece3;
}
.sonic-canvas .sonic-policy-box text {
  fill: var(--execution);
}
.sonic-canvas .comparison-module-icon {
  color: #746d61;
}
.method-canvas .method-module-icon {
  fill: none;
  stroke: currentColor;
}
.method-module-icon circle {
  fill: #fffaf1;
}
.dynamics-algebra text {
  fill: var(--execution);
}
.algebra-sign {
  stroke: var(--execution);
}
.balancing-video {
  filter: hue-rotate(-135deg) saturate(0.85);
}
.diagram-controls button {
  transition:
    border-color 0.2s,
    background 0.2s,
    box-shadow 0.2s,
    transform 0.2s;
}
.diagram-controls button[aria-pressed="true"] {
  color: var(--text-color);
  background: #eeece7;
  border-color: #cbc7be;
  box-shadow:
    inset 0 -3px #c5c1b9,
    0 4px 12px #1818180d;
  transform: translateY(-2px);
}
.diagram-controls button:disabled {
  cursor: pointer;
}
.diagram-controls button[aria-pressed="true"]:disabled {
  opacity: 0.85;
}
.diagram-controls button:hover:not(:disabled) {
  border-color: #bab6ad;
}
.step-click-icon {
  color: var(--balancing);
  background: #fffdf8;
}
.step-click-icon,
.story-pointer-cue {
  border-color: #d1cabc;
}
.story-touch-cue {
  color: #797267;
}

.scaling-combined .metric-title,
.scaling-combined .curve-unit,
.scaling-combined .curve-axis-label {
  fill: var(--execution);
}
.scaling-combined .curve-value {
  stroke: var(--page-background);
}
.scaling-combined .curve-point:focus-visible > circle:first-child {
  fill: #eaf0e6;
  stroke: var(--balancing);
}
#motivation > .section-header h2::before {
  display: none;
}
.scaling-combined .curve-end-label[data-method="DKWBC"],
.scaling-combined .curve-value[data-method="DKWBC"] {
  fill: var(--balancing);
}
.scaling-combined .curve-end-label[data-method="SONIC"],
.scaling-combined .curve-value[data-method="SONIC"] {
  fill: var(--tracking);
}

/* Text-generated references, presented in the same editorial style as the motion wall. */
#generated-motions {
  padding-right: 20px;
  padding-left: 20px;
}
#generated-motions p {
  text-indent: 0;
  text-align: left;
}
#generated-motions .generated-intro {
  max-width: 88ch;
  margin-bottom: 12px;
  color: var(--copy-color);
  font: 400 1rem/1.75 var(--body-font);
}
#generated-motions .generated-source {
  max-width: 100ch;
  margin-bottom: 24px;
  color: var(--muted-color);
  font: 400 0.875rem/1.75 var(--body-font);
}
.generated-source a {
  color: var(--balancing);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.generated-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px 20px;
  margin-bottom: 18px;
  color: var(--caption-color);
  font: 400 0.8125rem/1.6 var(--body-font);
}
.generated-preview-toggle {
  padding: 6px 11px;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  background: transparent;
  color: var(--copy-color);
  font: inherit;
  cursor: pointer;
}
.generated-preview-toggle:hover {
  background: var(--balancing-wash);
}
.generated-clip {
  min-width: 0;
  margin: 0;
}
a.generated-video-link {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 1284 / 556;
  border: 1px solid #1818180f;
  border-radius: 10px;
  background: white;
}
.generated-video-link video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 0;
  background: white;
}
.generated-play {
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  transform: translate(-50%, -50%);
  border: 1px solid var(--border-color);
  border-radius: 50%;
  background: #fffffff0;
  color: var(--balancing);
  font-size: 12px;
}
.generated-expand {
  position: absolute;
  right: 9px;
  bottom: 8px;
  padding: 3px 6px;
  border-radius: 3px;
  background: #fffffff0;
  color: var(--copy-color);
  font: 400 0.6875rem/1.5 var(--body-font);
  opacity: 0;
}
.generated-video-link:hover .generated-expand,
.generated-video-link:focus-visible .generated-expand {
  opacity: 1;
}
.generated-video-link:focus-visible,
.generated-preview-toggle:focus-visible {
  outline: 2px solid var(--balancing);
  outline-offset: 4px;
}
.generated-clip figcaption {
  margin-top: 12px;
  text-align: left;
}
.generated-prompt-label {
  display: flex;
  justify-content: space-between;
  color: var(--caption-color);
  font: 400 0.6875rem/1.5 var(--body-font);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
#generated-motions .generated-prompt {
  margin: 7px 0 0;
  color: var(--copy-color);
  font: 400 0.875rem/1.4 var(--body-font);
}
@media (max-width: 700px) {
  #generated-motions {
    padding-right: 12px;
    padding-left: 12px;
  }
}
