/* Writing pages share the site's paper, ink, and accent colors. */
.home-hero { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: 72px; align-items: center; padding: 68px 0 72px; }
.home-hero-copy { padding: 12px 0; }
.home-hero h1 { margin: 27px 0 26px; max-width: 660px; font-size: clamp(46px, 5.3vw, 70px); line-height: 1.06; letter-spacing: -2.8px; }
.home-intro { max-width: 485px; color: var(--muted); font-size: 17px; line-height: 1.75; }
.home-hero-links { display: flex; gap: 28px; flex-wrap: wrap; margin-top: 31px; font-size: 13px; }
.home-hero-links a:first-child { color: var(--accent); }
.home-hero-links span { margin-left: 6px; }
.home-writing { border-top: 1px solid var(--line); padding: 40px 0 60px; scroll-margin-top: 34px; }
.home-section-heading { display: flex; justify-content: space-between; align-items: end; margin-bottom: 29px; }
.home-section-heading h2 { font-family: Georgia, 'Times New Roman', serif; font-size: 42px; margin-top: 9px; letter-spacing: -1.1px; }
.home-count { padding-bottom: 5px; color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: .7px; }
.writing-feature { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(0, 1fr); border: 1px solid var(--line); background: var(--white); overflow: hidden; }
.writing-feature:hover, .writing-row:hover { text-decoration: none; }
.writing-feature:hover h3, .writing-row:hover h3 { color: var(--accent); }
.writing-feature-copy { padding: 38px 38px 33px; }
.writing-feature h3 { margin: 20px 0 16px; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(29px, 3.1vw, 38px); font-weight: 400; line-height: 1.16; letter-spacing: -.9px; transition: color .15s; }
.writing-description { color: var(--muted); font-size: 15px; line-height: 1.75; max-width: 590px; }
.writing-meta { display: flex; flex-wrap: wrap; gap: 7px 17px; margin-top: 24px; color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; line-height: 1.7; }
.writing-read { display: inline-block; margin-top: 23px; color: var(--accent); font-size: 13px; }
.writing-read span { margin-left: 9px; }
.writing-feature-image { min-width: 0; display: flex; flex-direction: column; justify-content: center; padding: 24px 26px; border-left: 1px solid var(--line); background: #f1f2ed; }
.writing-feature-image img { display: block; width: 100%; height: auto; aspect-ratio: 1.7; object-fit: contain; mix-blend-mode: multiply; }
.writing-image-label { display: block; margin-top: 21px; color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; text-transform: uppercase; letter-spacing: .6px; font-size: 9px; }
.writing-feature-text { grid-template-columns: 1fr; }
.writing-feature-text .writing-feature-copy { max-width: 750px; }
.writing-row { display: grid; grid-template-columns: 52px minmax(0, 1fr) 24px; gap: 24px; align-items: start; padding: 29px 0 32px; border-bottom: 1px solid var(--line); }
.writing-row-with-image { grid-template-columns: 52px minmax(0, 1fr) 160px 24px; }
.writing-row-number { margin-top: 3px; color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; }
.writing-row .writing-meta { margin-top: 0; }
.writing-row h3 { margin: 9px 0 10px; font-family: Georgia, 'Times New Roman', serif; font-weight: 400; font-size: 29px; letter-spacing: -.5px; line-height: 1.22; transition: color .15s; }
.writing-row .writing-description { max-width: 650px; font-size: 14px; }
.writing-row-image { background: #efefea; min-width: 0; align-self: center; }
.writing-row-image img { display: block; width: 100%; height: 110px; object-fit: contain; mix-blend-mode: multiply; }
.writing-row-arrow { color: var(--accent); font-size: 21px; margin-top: 18px; text-align: right; }
.writing-empty { color: var(--muted); padding: 20px 0; }
.home-notes { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 80px; padding: 17px 0 61px; }
.home-notes h2, .home-about h2 { font-family: Georgia, 'Times New Roman', serif; margin: 12px 0 16px; font-size: 37px; letter-spacing: -.8px; }
.home-notes p:not(.eyebrow) { color: var(--muted); font-size: 15px; line-height: 1.75; max-width: 330px; }
.home-text-link { display: inline-block; margin-top: 22px; font-size: 13px; color: var(--accent); }
.home-text-link span { margin-left: 8px; }
.home-note-list { border-top: 1px solid var(--line); }
.home-note-link { display: grid; grid-template-columns: 28px minmax(0, 1fr) 15px; gap: 16px; align-items: center; border-bottom: 1px solid var(--line); padding: 23px 0; font-size: 16px; }
.home-note-link:hover { text-decoration: none; color: var(--accent); }
.home-note-number { font-size: 10px; color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.home-note-link > :last-child { color: var(--accent); }
.home-about { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 80px; border-top: 1px solid var(--line); padding: 48px 0 58px; }
.home-about > div:last-child > p { color: var(--muted); font-size: 15px; line-height: 1.8; }
.home-about-links { display: flex; gap: 26px; flex-wrap: wrap; margin-top: 25px; font-size: 13px; }
.home-about-links a:first-child { color: var(--accent); }
.home-about-links span { margin-left: 7px; }
.home-profile-sections { display: flex; gap: 19px; flex-wrap: wrap; margin-top: 25px; font-size: 11px; color: var(--muted); }
.robotics-header { padding: 61px 0 43px; border-bottom: 1px solid var(--line); }
.robotics-header h1 { font-size: clamp(43px, 5.6vw, 68px); line-height: 1.09; letter-spacing: -2px; margin: 23px 0 22px; max-width: 1000px; }
.series-intro, .post-description { max-width: 740px; color: var(--muted); font-size: 18px; line-height: 1.7; }
.post-header { max-width: 1080px; margin: auto; }
.post-header h1 { max-width: 880px; }
.post-meta { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 27px; color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; line-height: 1.7; }
.report-list { padding: 7px 0 65px; }
.report-card { display: grid; grid-template-columns: 180px minmax(0, 1fr) 25px; gap: 28px; padding: 34px 0; border-bottom: 1px solid var(--line); }
.report-card:hover { text-decoration: none; }
.report-card:hover h2 { color: var(--accent); }
.report-date { display: flex; flex-direction: column; gap: 10px; color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; padding-top: 5px; }
.report-copy h2 { margin: 0 0 13px; font-family: Georgia, 'Times New Roman', serif; font-size: 33px; letter-spacing: -.7px; line-height: 1.2; }
.report-copy p { color: var(--muted); max-width: 720px; font-size: 15px; line-height: 1.75; }
.report-arrow { color: var(--accent); font-size: 22px; padding-top: 4px; }
.post-layout { display: grid; grid-template-columns: minmax(180px, 245px) minmax(0, 720px); justify-content: center; gap: 66px; align-items: start; margin: auto; padding: 43px 0 75px; }
.post-layout-without-toc { grid-template-columns: minmax(0, 720px); }
.article-toc { position: sticky; top: 25px; max-height: calc(100vh - 50px); overflow-y: auto; font-size: 12px; padding-right: 8px; }
.article-toc summary { color: var(--muted); font-weight: 500; text-transform: uppercase; letter-spacing: 1.1px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; cursor: pointer; padding: 0 0 13px; border-bottom: 1px solid var(--line); }
.article-toc ol { list-style: none; margin: 20px 0 0; padding: 0; }
.article-toc li { margin-bottom: 13px; line-height: 1.5; color: var(--muted); }
.article-toc a:hover { color: var(--accent); }
.article-toc .toc-h3 { padding-left: 14px; font-size: 11px; }
.article-body { min-width: 0; font-size: 18px; line-height: 1.85; overflow-wrap: anywhere; }
.article-body > :first-child { margin-top: 0; }
.article-body p, .article-body ul, .article-body ol { margin: 0 0 24px; }
.article-body ul, .article-body ol { padding-left: 24px; }
.article-body li { margin-bottom: 8px; }
.article-body li::marker { color: var(--muted); }
.article-body h2 { font-family: Georgia, 'Times New Roman', serif; font-size: 35px; line-height: 1.22; font-weight: 400; letter-spacing: -.7px; margin: 52px 0 23px; padding-top: 27px; border-top: 1px solid var(--line); scroll-margin-top: 25px; }
.article-body h3 { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; font-size: 27px; line-height: 1.3; letter-spacing: -.35px; margin: 36px 0 18px; scroll-margin-top: 25px; }
.article-body h4 { font-weight: 600; font-size: 19px; line-height: 1.4; margin: 29px 0 15px; }
.article-body a:not(.figure-link) { color: var(--accent); text-decoration: underline; text-decoration-color: #b44c2c66; text-underline-offset: 4px; }
.article-body a:not(.figure-link):hover { text-decoration-color: var(--accent); }
.article-body .article-figure { margin: 31px 0 37px; }
.article-body video { display: block; width: 100%; height: auto; border: 1px solid var(--line); background: #fff; }
.article-body .video-link { display: inline-block; margin-top: 6px; }
.article-body .video-mixed { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); gap: 14px; align-items: start; margin: 31px 0 37px; }
.article-body .video-mixed figure { margin: 0; }
.article-body .video-mixed figcaption { margin-top: 8px; color: var(--muted); font-size: 13px; line-height: 1.5; }
@media (max-width: 640px) { .article-body .video-mixed { grid-template-columns: minmax(0, 1fr); } .article-body .video-mixed .portrait video { max-width: 300px; } }
.article-body img { display: block; width: 100%; max-width: 100%; height: auto; border: 1px solid var(--line); background: white; }
.article-body figcaption { color: var(--muted); font-size: 12px; line-height: 1.7; margin-top: 11px; padding: 0 2px; }
.article-body blockquote { border-left: 2px solid var(--accent); margin: 26px 0; padding: 5px 23px; color: var(--muted); }
.article-body blockquote > :last-child { margin-bottom: 0; }
.article-body details { border: 1px solid var(--line); padding: 18px 23px; margin: 29px 0; background: #eeefe9; }
.article-body summary { color: var(--ink); font-weight: 600; font-size: 15px; cursor: pointer; line-height: 1.5; }
.article-body summary::marker { color: var(--accent); }
.article-body details[open] summary { margin-bottom: 22px; }
.article-body details > :last-child { margin-bottom: 0; }
.article-body pre { overflow-x: auto; padding: 20px; border: 1px solid var(--line); background: #eeefe9; font-size: 13px; line-height: 1.65; }
.article-body code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .83em; }
.article-body :not(pre) > code { background: #eeefe9; padding: 2px 5px; }
.article-body .katex { font-size: 1.07em; }
.article-body .katex-display { overflow-x: auto; overflow-y: hidden; padding: 15px 2px; margin: 23px 0; }
.article-body .katex-display > .katex { white-space: nowrap; }
.article-body .table-scroll { max-width: 100%; overflow-x: auto; margin: 27px 0; border-top: 1px solid var(--line); }
.article-body table { border-collapse: collapse; width: 100%; font-size: 14px; line-height: 1.6; }
.article-body th, .article-body td { text-align: left; vertical-align: top; padding: 13px 15px; border-bottom: 1px solid var(--line); min-width: 105px; }
.article-body th { color: var(--ink); background: #eeefe9; font-weight: 600; }
.article-body hr { border: 0; border-top: 1px solid var(--line); margin: 42px 0; }
.article-body .series-return { margin-top: 54px; padding-top: 27px; border-top: 1px solid var(--line); font-size: 14px; }
@media (max-width: 1050px) {
  .home-hero { gap: 42px; }
  .home-hero h1 { font-size: 58px; }
  .writing-feature-copy { padding: 30px; }
  .home-notes, .home-about { gap: 48px; }
  .post-layout { grid-template-columns: 185px minmax(0, 720px); gap: 38px; }
  .report-card { grid-template-columns: 145px minmax(0, 1fr) 22px; gap: 25px; }
}
@media (max-width: 800px) {
  .home-hero { grid-template-columns: 1fr; gap: 34px; padding: 43px 0 49px; }
  .home-hero .arm-demo { max-width: 520px; }
  .home-hero h1 { font-size: 47px; letter-spacing: -1.8px; }
  .home-intro { font-size: 15px; }
  .home-hero-links { gap: 18px; font-size: 12px; margin-top: 24px; }
  .writing-feature-copy { padding: 26px; }
  .writing-feature-image { padding: 20px; }
  .writing-feature h3 { font-size: 30px; }
  .writing-row-with-image { grid-template-columns: 44px minmax(0, 1fr) 120px 18px; gap: 18px; }
  .writing-row { gap: 18px; }
  .writing-row-image img { height: 95px; }
  .writing-row h3 { font-size: 26px; }
  .post-layout { display: block; max-width: 720px; padding-top: 28px; }
  .article-toc { position: static; max-height: none; margin-bottom: 33px; padding: 0 0 20px; border-bottom: 1px solid var(--line); }
  .article-toc ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 25px; }
}
@media (max-width: 600px) {
  .home-hero { grid-template-columns: 1fr; gap: 34px; padding: 37px 0 44px; }
  .home-hero-copy { padding: 0; }
  .home-hero h1 { font-size: clamp(39px, 10.4vw, 60px); letter-spacing: -1.7px; margin: 22px 0 22px; }
  .home-intro { font-size: 16px; max-width: 460px; }
  .home-hero-links { font-size: 13px; gap: 23px; }
  .home-writing { padding: 30px 0 44px; }
  .home-section-heading { margin-bottom: 23px; }
  .home-section-heading h2 { font-size: 36px; }
  .home-count { font-size: 10px; }
  .writing-feature { grid-template-columns: 1fr; }
  .writing-feature-copy { padding: 25px 24px; }
  .writing-feature h3 { font-size: 32px; margin-top: 16px; }
  .writing-feature-image { border-left: 0; border-top: 1px solid var(--line); padding: 18px 23px; }
  .writing-feature-image img { max-height: 225px; }
  .writing-image-label { margin-top: 12px; }
  .writing-meta { gap: 6px 13px; font-size: 9px; }
  .writing-row, .writing-row-with-image { grid-template-columns: 40px minmax(0, 1fr) 17px; gap: 13px; padding: 24px 0 27px; }
  .writing-row h3 { font-size: 26px; margin: 9px 0 10px; }
  .writing-row-image { display: none; }
  .writing-row-arrow { font-size: 18px; margin-top: 17px; }
  .writing-row-number { font-size: 10px; }
  .writing-row .writing-description { font-size: 14px; }
  .home-notes, .home-about { grid-template-columns: 1fr; gap: 25px; }
  .home-notes { padding: 5px 0 43px; }
  .home-notes h2, .home-about h2 { font-size: 33px; margin-top: 10px; }
  .home-notes p:not(.eyebrow) { max-width: 420px; }
  .home-note-link { padding: 21px 0; font-size: 16px; }
  .home-text-link { margin-top: 16px; }
  .home-about { padding: 35px 0 43px; gap: 6px; }
  .home-about-links { margin-top: 22px; }
  .robotics-header { padding: 38px 0 30px; }
  .robotics-header h1 { font-size: clamp(37px, 9.6vw, 48px); letter-spacing: -1.2px; margin: 20px 0; }
  .series-intro, .post-description { font-size: 16px; line-height: 1.7; }
  .post-meta { font-size: 10px; gap: 6px 17px; margin-top: 22px; }
  .report-card { grid-template-columns: minmax(0, 1fr) 19px; gap: 16px; padding: 26px 0; }
  .report-date { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; gap: 17px; padding: 0; font-size: 10px; }
  .report-copy h2 { font-size: 29px; }
  .report-copy p { font-size: 14px; }
  .article-toc ol { grid-template-columns: 1fr; }
  .article-toc li { margin-bottom: 11px; }
  .post-layout { padding: 26px 0 50px; }
  .article-body { font-size: 17px; line-height: 1.8; }
  .article-body h2 { font-size: 30px; margin-top: 43px; padding-top: 23px; }
  .article-body h3 { font-size: 25px; }
  .article-body details { padding: 16px; }
  .article-body .article-figure { margin: 26px 0 31px; }
  .article-body .katex { font-size: 1em; }
  .article-body figcaption { font-size: 11px; }
  .article-body th, .article-body td { padding: 11px 12px; }
}
@media print {
  .article-toc, .series-return { display: none; }
  .robotics-header { padding: 0 0 20px; }
  .robotics-header h1 { font-size: 32pt; }
  .post-layout { display: block; padding: 20px 0; }
  .article-body { font-size: 11pt; }
  .article-body details::details-content { content-visibility: visible; }
  .article-body h2 { font-size: 23pt; }
  .article-body figure { break-inside: avoid; }
  .home-hero { display: block; padding: 10px 0 30px; }
  .home-hero h1 { font-size: 35pt; }
  .writing-feature, .writing-row { break-inside: avoid; }
}

/* Authored stage data becomes a complete static timeline, then a scroll readout. */
.article-body-with-timeline figcaption { font-size: 13px; line-height: 1.65; }
.robotics-timeline { --rt-indigo: #414e82; --rt-indigo-soft: #e9ebf4; --rt-progress: 0; margin: 42px 0 48px; padding: 29px 26px 25px; border: 1px solid #ccd0db; background: #f0f0eb; position: relative; }
.robotics-timeline::before, .robotics-timeline::after { content: '+'; position: absolute; color: var(--rt-indigo); font: 17px var(--mono); line-height: 1; }
.robotics-timeline::before { top: -9px; left: -5px; }
.robotics-timeline::after { bottom: -9px; right: -5px; }
.article-body .robotics-timeline p { margin: 0; }
.article-body .rt-heading h2 { margin: 12px 0 15px; padding: 0; border: 0; font-size: 34px; line-height: 1.14; max-width: 540px; }
.rt-heading > p:last-child { font-size: 15px; line-height: 1.7; color: var(--muted); max-width: 560px; }
.rt-small-label { font: 9px/1.5 var(--mono); color: var(--rt-indigo); letter-spacing: .9px; text-transform: uppercase; }
.article-body .rt-nav ol { display: grid; grid-template-columns: repeat(auto-fit, minmax(105px, 1fr)); gap: 5px; margin: 25px 0 29px; padding: 0; list-style: none; }
.article-body .rt-nav li { margin: 0; min-width: 0; }
.article-body .rt-nav a { display: grid; gap: 4px; min-height: 91px; padding: 10px 11px; border: 1px solid #d0d3dd; font: 10px/1.4 var(--mono); text-decoration: none; color: var(--rt-indigo); transition: background .2s, border-color .2s; }
.rt-control-number { color: #767b8d; font-size: 9px; }
.rt-control-title { color: var(--ink); font: 13px/1.35 Arial, Helvetica, sans-serif; }
.article-body .rt-nav a:hover, .article-body .rt-nav a[aria-current] { background: var(--rt-indigo-soft); border-color: var(--rt-indigo); text-decoration: none; }
.rt-layout { min-width: 0; }
.article-body .rt-track { position: relative; list-style: none; padding: 0; margin: 0; }
.rt-track::before, .rt-track::after { content: ''; position: absolute; z-index: 0; top: 17px; bottom: 0; left: 16px; width: 1px; background: #c5c9d5; }
.rt-track::after { background: var(--rt-indigo); transform: scaleY(var(--rt-progress)); transform-origin: top; }
.article-body .rt-stage { position: relative; padding: 0 0 25px 48px; margin: 0; min-width: 0; scroll-margin-top: 40px; outline-offset: 3px; }
.article-body .rt-stage:last-child { padding-bottom: 0; }
.rt-node { position: absolute; z-index: 1; left: 0; top: 0; display: grid; place-items: center; width: 33px; height: 33px; border: 1px solid #bcc1d1; background: #f0f0eb; border-radius: 50%; color: var(--rt-indigo); font: 9px var(--mono); transition: color .3s, border-color .3s, background .3s; }
.rt-node::after { content: ''; position: absolute; inset: -5px; border: 1px solid var(--rt-indigo); border-radius: 50%; opacity: 0; transform: scale(.8); transition: opacity .3s, transform .3s; }
.rt-stage-content { position: relative; padding: 20px 22px 19px; border: 1px solid #d5d7dc; background: #f9f8f4; min-width: 0; }
.rt-stage-content::before { content: ''; position: absolute; top: 16px; left: -16px; width: 15px; height: 1px; background: #c5c9d5; }
.rt-year { display: flex; flex-wrap: wrap; gap: 6px 13px; color: var(--rt-indigo); font: 11px/1.5 var(--mono); }
.rt-year span { color: var(--muted); font-size: 9px; letter-spacing: .3px; }
.article-body .rt-stage h3 { font-size: 28px; line-height: 1.14; margin: 9px 0 15px; letter-spacing: -.6px; }
.article-body .rt-summary { font-size: 15px; line-height: 1.65; margin-bottom: 16px; }
.rt-mechanism { font-size: 13px; line-height: 1.65; color: var(--muted); }
.rt-mechanism > span { display: block; margin-bottom: 5px; font: 9px/1.5 var(--mono); color: var(--rt-indigo); text-transform: uppercase; letter-spacing: .6px; }
.rt-static-stack { margin-top: 22px; }
.rt-stack { display: grid; gap: 5px; margin: 9px 0 0; }
.rt-stack-row { background: #eeeee9; padding: 11px 12px; border-left: 2px solid #8d9388; min-width: 0; }
.rt-stack-row dt { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 10px; font-size: 11px; font-weight: 600; line-height: 1.45; }
.rt-mode { color: #58604f; font: 8px/1.5 var(--mono); text-transform: uppercase; letter-spacing: .3px; }
.rt-stack-row dd { font-size: 14px; line-height: 1.55; margin: 6px 0 0; color: var(--muted); }
.rt-stack-learned { background: var(--rt-indigo-soft); border-color: var(--rt-indigo); }
.rt-stack-learned .rt-mode { color: var(--rt-indigo); }
.rt-stack-persistent { background: #f2e9df; border-color: var(--accent); }
.rt-stack-persistent .rt-mode { color: #984225; }
.article-body .rt-stage-links { display: flex; flex-direction: column; gap: 10px; margin-top: 21px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 11px; line-height: 1.7; }
.article-body .rt-stage-links > a { align-self: flex-start; }
.rt-stage-links > a span { margin-left: 5px; }
.article-body .rt-stage-links ul { display: flex; flex-wrap: wrap; gap: 4px 16px; list-style: none; padding: 0; margin: 0; }
.article-body .rt-stage-links li { margin: 0; }
.article-body .rt-stage-links ul a { color: var(--muted); text-decoration-color: #969a9066; }
.article-body .rt-visual { margin: 20px 0 0; }
.article-body .rt-visual img { background: transparent; border: 0; }
.article-body .rt-visual figcaption { font-size: 11px; }
.article-body .rt-caption { margin-top: 25px; padding-top: 16px; border-top: 1px solid #d0d3dd; font-size: 12px; line-height: 1.65; color: var(--muted); }
.rt-inspector[hidden] { display: none; }
.rt-inspector-inner { border: 1px solid #c8cddc; padding: 16px 14px 12px; background: #f9f8f4; }
.article-body .rt-inspector h3 { font-size: 24px; margin: 7px 0 6px; }
.rt-inspector-stage { color: var(--muted); font-size: 11px; line-height: 1.5; min-height: 33px; }
.rt-inspector .rt-stack { margin-top: 14px; }
.rt-inspector .rt-stack-row { padding: 9px 10px; }
.rt-inspector .rt-stack-row dt { font-size: 12px; }
.rt-inspector .rt-stack-row dd { font-size: 13px; }
.rt-paging { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 13px; font: 10px var(--mono); color: var(--rt-indigo); }
.rt-paging button { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid #c8cddc; background: transparent; color: var(--rt-indigo); font-size: 16px; }
.rt-paging button:hover:not(:disabled) { background: var(--rt-indigo-soft); }
.rt-paging button:disabled { opacity: .35; cursor: default; }
.rt-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.robotics-timeline.is-enhanced .rt-layout { display: grid; grid-template-columns: minmax(0, 202px) minmax(0, 1fr); gap: 20px; align-items: start; }
.is-enhanced .rt-inspector { position: sticky; top: 30px; }
.is-enhanced .rt-static-stack { position: absolute; width: 1px; height: 1px; padding: 0; margin: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.is-enhanced .rt-stage-content { padding: 17px 17px 16px; opacity: 1; transform: translateY(22px); transition: transform .65s cubic-bezier(.22, 1, .36, 1), border-color .35s, box-shadow .35s; }
.is-enhanced .rt-stage.has-unfolded .rt-stage-content { opacity: 1; transform: translateY(0); }
.is-enhanced .rt-stage:focus-within .rt-stage-content { opacity: 1; transform: translateY(0); transition: none; }
.is-enhanced .rt-stage.has-unfolded .rt-node { background: var(--rt-indigo); border-color: var(--rt-indigo); color: #fff; }
.is-enhanced .rt-stage.is-active .rt-node::after { opacity: .35; transform: scale(1); }
.is-enhanced .rt-stage.is-active .rt-stage-content { border-color: #929bbd; box-shadow: 0 3px 14px #414e820a; }
.is-enhanced .rt-stage h3 { font-size: 26px; }
@media (max-width: 1050px) and (min-width: 801px) {
  .robotics-timeline.is-enhanced .rt-layout { grid-template-columns: minmax(0, 170px) minmax(0, 1fr); gap: 14px; }
  .robotics-timeline { padding: 24px 18px; }
  .article-body .rt-stage { padding-left: 42px; }
}
.robotics-timeline.is-enhanced.rt-inline-stack .rt-layout { display: block; }
.rt-inline-stack .rt-inspector { display: none; }
.rt-inline-stack .rt-static-stack { position: static; width: auto; height: auto; margin-top: 22px; overflow: visible; clip: auto; white-space: normal; }
@media (max-width: 600px), (max-height: 800px) {
  .robotics-timeline.is-enhanced .rt-layout { display: block; }
  .is-enhanced .rt-inspector { display: none; }
  .is-enhanced .rt-static-stack { position: static; width: auto; height: auto; margin-top: 22px; overflow: visible; clip: auto; white-space: normal; }
}
@media (max-width: 600px) {
  .robotics-timeline { margin: 32px 0 37px; padding: 23px 15px 21px; }
  .article-body .rt-heading h2 { font-size: 30px; }
  .rt-heading > p:last-child { font-size: 14px; }
  .article-body .rt-nav ol { gap: 5px; margin: 21px 0 25px; grid-template-columns: repeat(auto-fit, minmax(86px, 1fr)); }
  .article-body .rt-nav a { padding: 9px 8px; min-height: 87px; }
  .rt-control-title { font-size: 12px; }
  .article-body .rt-stage { padding-left: 34px; padding-bottom: 23px; }
  .rt-node { height: 25px; width: 25px; font-size: 8px; }
  .rt-track::before, .rt-track::after { left: 12px; top: 12px; }
  .rt-stage-content, .is-enhanced .rt-stage-content { padding: 16px 14px; }
  .rt-stage-content::before { left: -10px; width: 9px; top: 12px; }
  .article-body .rt-stage h3, .is-enhanced .rt-stage h3 { font-size: 26px; }
  .article-body .rt-summary { font-size: 14px; }
  .rt-year { font-size: 10px; }
  .rt-stack-row dt { font-size: 14px; }
  .rt-stack-row dd { font-size: 14px; }
  .rt-mode { font-size: 9px; }
  .rt-stage-links { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .robotics-timeline *, .robotics-timeline *::before, .robotics-timeline *::after { transition: none !important; animation: none !important; }
  .is-enhanced .rt-stage-content { opacity: 1; transform: none; }
}
@media print {
  .robotics-timeline { padding: 16px; background: transparent; border-color: #aaa; }
  .robotics-timeline *, .robotics-timeline *::before, .robotics-timeline *::after { transition: none !important; animation: none !important; }
  .robotics-timeline::before, .robotics-timeline::after, .rt-nav, .rt-inspector, .rt-sr-only { display: none !important; }
  .robotics-timeline.is-enhanced .rt-layout { display: block; }
  .is-enhanced .rt-static-stack { position: static; width: auto; height: auto; margin-top: 22px; overflow: visible; clip: auto; white-space: normal; }
  .rt-stage-content, .is-enhanced .rt-stage-content { opacity: 1; transform: none; box-shadow: none; border-color: #aaa; background: transparent; }
  .rt-stage { break-inside: avoid; }
  .rt-stack { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .article-body .rt-stage h3, .is-enhanced .rt-stage h3 { font-size: 19pt; }
  .article-body .rt-summary { font-size: 10pt; }
  .rt-track::after { transform: none; }
}

/* The two-link game sits beside its equations in the geometry article. */
.article-body .arm-demo { max-width: 640px; margin: 32px auto 40px; }
.article-body .arm-demo h2 { margin: 18px 0 0; padding: 0; border: 0; font-size: 25px; line-height: 1.2; letter-spacing: -.5px; }
.article-body .arm-demo .demo-intro { margin: 7px 0 0; font-size: 12px; }
.article-body .arm-demo .demo-units { margin: 8px 0 0; font-size: 10px; }
.article-body .arm-demo .eyebrow { margin: 0; }
.article-body .arm-demo .demo-caption a { text-decoration: none; font-size: 10px; }

/* Series navigation keeps related essays together without competing with the report header. */
.series-box { max-width: 1080px; margin: 22px auto 0; padding: 17px 20px; border: 1px solid var(--line); background: var(--white); font-size: 13px; }
.series-box-name { color: var(--muted); font: 10px/1.5 var(--mono); letter-spacing: .8px; text-transform: uppercase; }
.series-box-position { margin-top: 4px; font-family: var(--serif); font-size: 20px; }
.series-box ol { display: flex; flex-wrap: wrap; gap: 7px 22px; margin: 13px 0 0; padding: 0; list-style-position: inside; }
.series-box li { min-width: 0; }
.series-box li[aria-current="page"] { color: var(--accent); font-weight: 600; }
.series-box-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; margin-top: 13px; padding-top: 11px; border-top: 1px solid var(--line); color: var(--accent); font-size: 12px; }
.series-block { min-width: 0; margin: 25px 0 0; padding-top: 7px; border-top: 1px solid var(--line); }
.series-block > h2 { margin: 0; padding: 15px 0 2px; border: 0; font-family: var(--serif); font-size: 24px; font-weight: 400; letter-spacing: -.3px; }
.series-block-parts { min-width: 0; }
.series-block .report-card { padding: 25px 0; }
.series-block-home { margin: 0 0 8px; padding: 26px 32px 4px; border: 1px solid var(--line); background: var(--white); }
.series-block-home > h2 { padding: 8px 0 6px; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(26px, 3vw, 34px); letter-spacing: -.7px; line-height: 1.18; }
.series-block-home .writing-row:last-child { border-bottom: 0; }
.series-block-home .writing-row-number { color: var(--accent); }
.series-block-eyebrow, .other-essays-heading { margin: 0; color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; text-transform: uppercase; letter-spacing: .9px; }
.series-block-eyebrow { color: var(--accent); }
.other-essays-heading { margin-top: 46px; padding-bottom: 4px; border-bottom: 1px solid var(--line); }
.report-part { display: block; margin-bottom: 6px; color: var(--accent); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; text-transform: uppercase; letter-spacing: .7px; font-size: 10px; }
/* Hardware track: a series part about the physical build. Steel blue in place of the rust accent, a left rule in lists. */
.track-hardware { --accent: #2b6a8e; }
.track-hardware .article-body a:not(.figure-link) { text-decoration-color: #2b6a8e66; }
.writing-row.track-hardware, .series-block .report-card.track-hardware { box-shadow: inset 3px 0 0 var(--accent); padding-left: 14px; }
.writing-row.track-hardware .writing-row-number { color: var(--accent); }
.writing-row-number small { display: block; margin-top: 3px; font-size: 9px; letter-spacing: .7px; text-transform: uppercase; }
.series-box .series-part.track-hardware, .series-box .series-part.track-hardware a { color: #2b6a8e; }
.track-tag { display: inline-block; margin-left: 6px; padding: 0 5px; border: 1px solid #2b6a8e; color: #2b6a8e; font: 9px/1.6 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .6px; text-transform: uppercase; vertical-align: 1px; }


/* SO-101 widgets use local scrolling and the site's color variables. */
.article-body .so101-widget { max-width: 100%; min-width: 0; margin: 32px 0 38px; padding: 20px; border: 1px solid var(--line); background: var(--white); color: var(--ink); font-size: 14px; line-height: 1.65; overflow: hidden; }
.so101-widget > :first-child { margin-top: 0; }
.so101-widget-fallback { color: var(--muted); font-size: 13px; }
.so101-widget h3, .so101-widget h4 { margin: 0 0 8px; color: var(--ink); font-family: var(--serif); font-size: 20px; font-weight: 400; line-height: 1.3; }
.so101-widget h4 { font-size: 17px; }
.so101-widget p { margin: 0 0 12px; }
.so101-controls { display: grid; gap: 10px; margin: 14px 0; }
.so101-slider { display: grid; grid-template-columns: minmax(110px, 1fr) minmax(80px, 1.4fr) minmax(62px, auto); align-items: center; gap: 10px; color: var(--muted); font-size: 11px; }
.so101-slider input { width: 100%; min-width: 0; accent-color: var(--accent); }
.so101-slider output { color: var(--ink); font-family: var(--mono); font-size: 10px; text-align: right; }
.so101-results { margin: 13px 0; }
.so101-units { color: var(--muted); font-family: var(--mono); font-size: 10px; line-height: 1.6; overflow-wrap: anywhere; }
.so101-bars { display: grid; gap: 11px; margin: 16px 0; }
.so101-bar-row { min-width: 0; }
.so101-bar-heading { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 3px; font-size: 12px; }
.so101-bar-heading output { white-space: nowrap; font-family: var(--mono); font-size: 10px; }
.so101-bar-track { height: 9px; background: var(--line); }
.so101-bar-fill { display: block; height: 100%; background: var(--accent); transition: width .12s ease; }
.so101-bar-row:nth-child(2) .so101-bar-fill { background: var(--so101-positive, #52775a); }
.so101-bar-row:nth-child(3) .so101-bar-fill { background: var(--so101-partial, #a57a2b); }
.so101-bar-row:nth-child(4) .so101-bar-fill { background: var(--so101-negative, #9a5446); }
.so101-budget-track { display: flex; width: 100%; min-height: 20px; overflow: hidden; border: 1px solid var(--line); background: var(--paper); }
.so101-budget-segment { display: block; min-width: 0; height: 20px; border-right: 1px solid var(--white); }
.so101-budget-segment-0 { background: var(--accent); }
.so101-budget-segment-1 { background: var(--so101-positive, #52775a); }
.so101-budget-segment-2 { background: var(--so101-partial, #a57a2b); }
.so101-budget-segment-3 { background: var(--so101-negative, #9a5446); }
.so101-budget-segment-4 { background: var(--muted); }
.so101-budget { display: grid; gap: 8px; margin: 12px 0; }
.so101-budget-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; font-size: 12px; }
.so101-budget-item output { white-space: nowrap; font-family: var(--mono); font-size: 10px; }
.so101-budget-item p { grid-column: 1 / -1; margin: 0; }
.so101-total, .so101-measured { margin-top: 13px !important; font-family: var(--mono); font-size: 12px; font-weight: 600; }
.so101-measured { color: var(--muted); font-weight: 400; }
.so101-select-label, .so101-number-label, .so101-text-label { display: grid; gap: 5px; margin: 13px 0; color: var(--muted); font-size: 12px; }
.so101-widget select, .so101-widget input[type="number"], .so101-widget textarea { max-width: 100%; padding: 7px 9px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); font: inherit; }
.so101-check-label { display: flex; align-items: flex-start; gap: 8px; margin: 13px 0; font-size: 12px; }
.so101-widget button { max-width: 100%; border: 1px solid var(--line); background: var(--paper); color: var(--ink); font: inherit; cursor: pointer; }
.so101-widget button:hover { border-color: var(--accent); color: var(--accent); }
.so101-widget button:focus-visible, .so101-widget input:focus-visible, .so101-widget select:focus-visible, .so101-widget textarea:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.so101-equation { min-width: 0; }
.so101-equation-flow { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; max-width: 100%; padding: 8px 3px 14px; }
.so101-equation-arrow { align-self: center; color: var(--muted); }
.so101-equation-text { align-self: center; flex: 0 0 auto; color: var(--muted); font-family: var(--mono); font-size: 11px; }
.so101-term { flex: 0 0 auto; max-width: 245px; padding: 9px 11px; border-color: var(--line) !important; background: var(--paper) !important; color: var(--ink) !important; font-family: var(--mono) !important; font-size: 11px !important; text-align: left; }
.so101-term[aria-pressed="true"] { border-color: var(--accent) !important; color: var(--accent) !important; }
.so101-term-panel { max-width: 640px; min-height: 125px; padding: 14px 16px; border-left: 2px solid var(--accent); background: var(--paper); }
.so101-term-panel p { margin: 4px 0; }
.so101-term-unit, .so101-term-typical { color: var(--muted); font-size: 12px; }
.so101-equation-details { scroll-margin-top: 20px; }
.so101-widget [hidden] { display: none !important; }
.so101-question { min-width: 0; }
.so101-situation { padding: 12px 14px; border-left: 2px solid var(--accent); background: var(--paper); }
.so101-prompt { margin: 15px 0 !important; font-weight: 600; }
.so101-options { min-width: 0; margin: 12px 0; padding: 10px 13px; border: 1px solid var(--line); }
.so101-options legend { padding: 0 5px; color: var(--muted); font-size: 12px; }
.so101-option { display: flex; align-items: flex-start; gap: 8px; padding: 7px 0; }
.so101-option input { flex: 0 0 auto; margin-top: 5px; accent-color: var(--accent); }
.so101-option span { min-width: 0; overflow-wrap: anywhere; }
.so101-question-answer > button, .so101-question > button { margin: 6px 8px 6px 0; padding: 8px 13px; border-color: var(--accent); color: var(--accent); }
.so101-button-secondary { padding: 6px 11px; }
.so101-question-feedback { min-height: 1.5em; margin-top: 10px; }
.so101-verdict-right { color: var(--so101-positive, #52775a); font-weight: 600; }
.so101-verdict-wrong { color: var(--so101-negative, #9a5446); font-weight: 600; }
.so101-model-answer { margin-top: 13px; padding: 14px; border: 1px solid var(--line); background: var(--paper); }
.so101-order { padding-left: 25px; }
.so101-order-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--line); }
.so101-order-actions { display: flex; gap: 5px; }
.so101-order-actions button { padding: 4px 8px; font-size: 11px; }
.so101-order-actions button:disabled { opacity: .45; cursor: default; }
.so101-sim-widget { --so101-paper: var(--paper); --so101-panel: var(--white); --so101-ink: var(--ink); --so101-muted: var(--muted); --so101-rule: var(--line); --so101-accent: var(--accent); --so101-full: var(--accent); --so101-part: var(--so101-partial, #8fb0e3); --so101-none: var(--line); --so101-base: var(--ink); --so101-fb: var(--accent); --so101-adapt: var(--int, #8a5cc2); --so101-model: var(--sim, #a67708); --so101-rep: var(--rep, #0f7c86); --so101-learned: var(--so101-negative, #9a5446); box-sizing: border-box; width: min(100%, 860px); max-width: 100%; margin-inline: auto; color: var(--ink); font: inherit; }
.so101-sim-widget *, .so101-sim-widget *::before, .so101-sim-widget *::after { box-sizing: border-box; }
.so101-family-controls { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 .65rem; }
.so101-sim-widget button { border: 1px solid var(--line); border-radius: .2rem; padding: .35rem .65rem; background: var(--white); color: var(--ink); font: inherit; cursor: pointer; }
.so101-sim-widget button[aria-pressed="true"] { border-color: var(--accent); background: var(--accent); color: var(--white); }
.so101-sim-widget button:focus-visible, .so101-sim-widget a:focus-visible, .so101-sim-widget .so101-tree-scroll:focus-visible, .so101-sim-widget .so101-matrix-scroll:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.so101-tree-scroll, .so101-matrix-scroll { position: relative; max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; border: 1px solid var(--line); background: var(--white); }
.so101-tree-scroll { padding: .5rem; }
.so101-tree-svg { display: block; width: 100%; min-width: 600px; height: auto; }
.so101-tree-svg text { fill: var(--ink); font-family: inherit; }
.so101-tree-svg .mono { font-family: var(--mono); }
.so101-tree-svg .muted { fill: var(--muted); }
.so101-tree-svg .family-text { font-size: 13px; font-weight: 600; }
.so101-tree-svg .node-label { font-size: 15px; font-weight: 600; }
.so101-tree-svg .small-label { font-size: 11px; }
.so101-tree-svg .edge-label { font-size: 12px; }
.so101-tree-svg .base-line, .so101-tree-svg .branch-line { fill: none; stroke: var(--muted); stroke-width: 1.5; }
.so101-tree-svg .adapt-load-line { fill: none; stroke: var(--so101-adapt); }
.so101-tree-svg .rep-rule-line { fill: none; stroke: var(--so101-rep); }
.so101-tree-svg .learned-line { fill: none; stroke: var(--so101-learned); stroke-width: 1.5; }
.so101-tree-svg .family-base .node-box { stroke: var(--so101-base); }
.so101-tree-svg .family-fb .node-box { stroke: var(--so101-fb); }
.so101-tree-svg .family-adapt .node-box { stroke: var(--so101-adapt); }
.so101-tree-svg .family-model .node-box { stroke: var(--so101-model); }
.so101-tree-svg .family-rep .node-box { stroke: var(--so101-rep); }
.so101-tree-svg .family-learned .node-box { stroke: var(--so101-learned); }
.so101-tree-svg .node-box { fill: var(--white); stroke-width: 2; }
.so101-tree-svg .node-box.root-node { stroke-width: 3; }
.so101-tree-svg .family-fb .family-name { fill: var(--so101-fb); }
.so101-tree-svg .family-adapt .family-name { fill: var(--so101-adapt); }
.so101-tree-svg .family-model .family-name { fill: var(--so101-model); }
.so101-tree-svg .family-rep .family-name { fill: var(--so101-rep); }
.so101-tree-svg .family-learned .family-name { fill: var(--so101-learned); }
.so101-tree-svg .is-dimmed { opacity: .17; }
.so101-tree-svg a { cursor: pointer; }
.so101-tree-svg a:hover .node-box { stroke-width: 3; }
.so101-tree-svg a:focus-visible { outline: none; }
.so101-tree-svg a:focus-visible .node-box { stroke: var(--accent); stroke-width: 4; }
.so101-matrix-scroll { margin: .5rem 0; }
.so101-matrix { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; background: var(--white); color: var(--ink); font-size: .9rem; }
.so101-matrix th, .so101-matrix td { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: .4rem .5rem; text-align: center; vertical-align: middle; white-space: nowrap; }
.so101-matrix th { background: var(--paper); font-size: .78rem; font-weight: 600; }
.so101-matrix th:first-child, .so101-matrix td:first-child { position: sticky; left: 0; width: 120px; min-width: 120px; background: var(--white); text-align: left; }
.so101-matrix thead th:first-child { z-index: 3; background: var(--paper); }
.so101-matrix tbody th:first-child { z-index: 2; }
.so101-matrix thead th:not(:first-child) { min-width: 106px; }
.so101-matrix a { color: var(--accent); }
.so101-matrix-dot { display: inline-block; width: 14px; height: 14px; padding: 0; border: 1px solid var(--accent); border-radius: 50%; vertical-align: middle; }
.so101-matrix-dot.cell-F { background: var(--accent); }
.so101-matrix-dot.cell-P { background: linear-gradient(90deg, var(--accent) 50%, transparent 50%); }
.so101-matrix-dot.cell-N { background: transparent; }
.so101-matrix-legend { display: flex; flex-wrap: wrap; gap: .4rem; margin: .55rem 0; color: var(--muted); font-size: 12px; }
.so101-matrix-legend span { display: inline-flex; align-items: center; gap: 6px; }
.so101-matrix-note { border-left: 3px solid var(--so101-learned); padding-left: .6rem; color: var(--muted); font-size: 12px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 600px) {
  .series-box { padding: 15px; }
  .series-box ol { display: grid; gap: 8px; }
  .series-box-links { display: grid; }
  .series-block > h2 { font-size: 22px; }
  .series-block-home { padding: 18px 16px 2px; }
  .series-block .report-card { padding: 22px 0; }
  .article-body .so101-widget { margin: 26px 0 32px; padding: 15px 13px; font-size: 13px; }
  .so101-slider { grid-template-columns: minmax(0, 1fr) minmax(85px, 1fr); gap: 4px 9px; }
  .so101-slider-label { grid-column: 1; }
  .so101-slider input { grid-column: 2; grid-row: 1; }
  .so101-slider output { grid-column: 1 / -1; text-align: left; }
  .so101-order-item { grid-template-columns: minmax(0, 1fr); }
  .so101-order-actions { margin-top: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  .so101-widget * { scroll-behavior: auto !important; transition: none !important; }
}

/* SO-101 equation tree and general goal equation */
.so101-eqtree-equation, .so101-goal-equation { display: flex; flex-wrap: wrap; align-items: stretch; gap: 6px; }
.so101-eqtree-op, .so101-goal-op, .so101-goal-paren, .so101-goal-lhs { align-self: center; color: var(--muted); font-family: var(--serif); font-size: 18px; }
.so101-goal-lhs { color: var(--ink); white-space: nowrap; }
.so101-widget .so101-eqtree-chip { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 9px; border: 2px solid var(--line); border-radius: 4px; background: var(--paper); }
.so101-eqtree-chip[aria-pressed="true"] { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.so101-eqtree-math, .so101-goal-math { font-family: var(--serif); font-size: 17px; white-space: nowrap; }
.so101-eqtree-name, .so101-goal-slot-name { color: var(--muted); font-size: 11px; line-height: 1.2; text-align: center; }
.so101-eqtree-force { border-top-color: var(--so101-partial, #a57a2b) !important; }
.so101-eqtree-mass { border-top-color: var(--so101-positive, #52775a) !important; }
.so101-eqtree-servo { border-top-color: var(--so101-negative, #9a5446) !important; }
.so101-eqtree-status { margin: 10px 0 12px !important; color: var(--muted); font-size: 13px; }
.so101-eqtree-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; }
.so101-eqtree-group { padding: 10px 12px; border: 1px solid var(--line); border-top-width: 4px; background: var(--paper); }
.so101-eqtree-group.so101-eqtree-force { border-top-color: var(--so101-partial, #a57a2b); }
.so101-eqtree-group.so101-eqtree-mass { border-top-color: var(--so101-positive, #52775a); }
.so101-eqtree-group.so101-eqtree-servo { border-top-color: var(--so101-negative, #9a5446); }
.so101-eqtree-group.so101-eqtree-sensor { border-top-color: var(--accent); }
.so101-eqtree-lead { color: var(--muted); font-size: 13px; }
.so101-eqtree-group ul { margin: 0; padding: 0; list-style: none; }
.so101-eqtree-group li { margin: 0 0 8px; transition: opacity .15s; }
.so101-eqtree-group li.is-dim { opacity: .3; }
.so101-eqtree-problem { display: block; font-weight: 600; }
.so101-eqtree-size { display: block; color: var(--muted); font-size: 12.5px; line-height: 1.45; }
.so101-goal-families, .so101-goal-methods { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.so101-widget .so101-goal-family, .so101-widget .so101-goal-method { padding: 5px 9px; font-size: 13px; }
.so101-widget .so101-goal-method { font-family: var(--mono); }
.so101-goal-family[aria-pressed="true"], .so101-goal-method[aria-pressed="true"] { border-color: var(--accent); background: var(--accent); color: var(--white); }
.so101-widget .so101-goal-family[aria-pressed="true"]:hover, .so101-widget .so101-goal-method[aria-pressed="true"]:hover { color: var(--white); }
.so101-goal-scroll { max-width: 100%; overflow-x: auto; padding: 8px 0; }
.so101-goal-slot { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 5px 7px; border: 2px solid var(--line); border-radius: 4px; transition: opacity .15s, border-color .15s; }
.so101-goal-slot[data-state="on"] { border-color: var(--accent); background: var(--paper); }
.so101-goal-slot[data-state="learned"] { border-color: var(--so101-negative, #9a5446); border-style: dashed; background: var(--paper); }
.so101-goal-slot[data-state="off"] { opacity: .32; }
.so101-goal-equation[data-online="true"] .so101-goal-slot[data-state="on"] { border-style: dotted; }
.so101-goal-search { margin: 4px 0 8px !important; font-size: 13px; }
.so101-goal-legend { color: var(--muted); font-size: 12px; }
.so101-goal-key { display: inline-block; width: 14px; height: 10px; margin: 0 3px 0 10px; border: 2px solid var(--line); vertical-align: middle; }
.so101-goal-key:first-child { margin-left: 0; }
.so101-goal-key[data-state="on"] { border-color: var(--accent); }
.so101-goal-key[data-state="learned"] { border-color: var(--so101-negative, #9a5446); border-style: dashed; }
.so101-goal-key[data-state="off"] { opacity: .4; }
.so101-goal-panel { padding: 10px 12px; border-left: 3px solid var(--accent); background: var(--paper); }
.so101-goal-panel p:last-child { margin-bottom: 0; }
.so101-goal-problem { font-weight: 600; }
.so101-goal-off, .so101-goal-result { color: var(--muted); font-size: 13px; }
.so101-goal-slot-name { max-width: 7.5em; }
.so101-coupling-svg { display: block; width: 100%; max-width: 420px; height: auto; margin: 0 auto; }
.so101-coupling-trail { fill: none; stroke: var(--line); stroke-dasharray: 4 5; }
.so101-coupling-link { stroke: var(--ink); stroke-width: 9; stroke-linecap: round; }
.so101-coupling-joint { fill: var(--white); stroke: var(--ink); stroke-width: 2.5; }
.so101-coupling-com { fill: var(--ink); }
.so101-coupling-cf-line { stroke: var(--so101-partial, #a57a2b); stroke-width: 3.5; }
.so101-coupling-co-line { stroke: var(--accent); stroke-width: 3.5; }
path.so101-coupling-cf { fill: var(--so101-partial, #a57a2b); }
path.so101-coupling-co { fill: var(--accent); }
.so101-coupling-legend { color: var(--muted); font-size: 13px; }
.so101-coupling-key { display: inline-block; width: 16px; height: 4px; margin: 0 4px 3px 10px; vertical-align: middle; }
.so101-coupling-key:first-child { margin-left: 0; }
span.so101-coupling-cf { background: var(--so101-partial, #a57a2b); }
span.so101-coupling-co { background: var(--accent); }
.so101-coupling-readout p { margin: 0 0 6px; font-size: 13.5px; }
.llm-timeline-intro { color: var(--muted); font-size: 13px; }
.llm-timeline-stages { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
.llm-timeline-stages button { padding: 6px 10px; font-size: 12px; text-align: left; }
.llm-timeline-stages button.llm-timeline-current { font-weight: 700; }
.llm-timeline-panel { margin: 0 0 18px; padding: 12px 14px; border-left: 2px solid var(--accent); background: var(--paper); }
.llm-timeline-row { margin: 0 0 8px !important; }
.llm-timeline-note { margin: 0 !important; color: var(--muted); font-style: italic; }
.llm-timeline-note.is-current { color: var(--accent); font-style: normal; font-weight: 600; }
.llm-timeline-line { display: grid; grid-template-columns: minmax(0, 1fr) 46px minmax(0, 1fr); border-top: 1px solid var(--line); }
.llm-timeline-head { border-top: 0; color: var(--muted); font-family: var(--mono); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }
.llm-timeline-cell { display: flex; flex-wrap: wrap; align-content: center; gap: 5px; min-height: 34px; padding: 6px 4px; }
.llm-timeline-cell.cell-llm, .llm-timeline-head .llm-timeline-cell:first-child { justify-content: flex-end; text-align: right; }
.llm-timeline-cell.cell-year { justify-content: center; border-inline: 1px solid var(--line); color: var(--muted); font-family: var(--mono); font-size: 11px; }
.llm-timeline-head .llm-timeline-cell:nth-child(2) { justify-content: center; }
.llm-timeline-tag { padding: 2px 7px; border: 1px solid var(--line); background: var(--paper); font-family: var(--mono); font-size: 11px; opacity: .55; transition: opacity .2s; }
.llm-timeline-tag.lane-robot { border-color: var(--accent); }
.llm-timeline-tag.is-active { opacity: 1; font-weight: 700; background: var(--white); box-shadow: 0 0 0 1px currentColor; }
.llm-timeline-tag.lane-robot.is-active { color: var(--accent); }
.llm-timeline-pointer { flex-basis: 100%; color: var(--muted); font-size: 11px; font-style: italic; }
.llm-timeline-cell.cell-llm .llm-timeline-pointer { text-align: right; }
.llm-timeline-pointer.is-here { color: var(--accent); font-size: 13px; font-style: normal; font-weight: 700; }
.article-body .video-embed { margin: 30px 0 34px; }
.article-body .video-frame { position: relative; width: 100%; aspect-ratio: 16 / 9; border: 1px solid var(--line); background: #111; }
.article-body .video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.article-body .video-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.article-body .video-pair figcaption, .article-body .video-embed figcaption { margin-top: 8px; color: var(--muted); font-size: 13px; line-height: 1.5; }
@media (max-width: 640px) { .article-body .video-pair { grid-template-columns: minmax(0, 1fr); } }
.ca-plot { display: block; width: 100%; height: auto; margin: 8px 0; }
.ca-curve { fill: none; stroke: var(--ink); stroke-width: 2.2; }
.ca-best { stroke: var(--muted); stroke-dasharray: 4 4; }
.ca-label { font-size: 12px; fill: var(--muted); }
.ca-bin { fill: var(--line); stroke: var(--white); }
.ca-trail { fill: var(--muted); }
.ca-edit { stroke: var(--accent); stroke-width: 2; }
.ca-pick { fill: var(--accent); stroke: var(--white); stroke-width: 1.5; }
.ca-note, .ca-intro { margin: 8px 0; }
.ca-readout { margin: 6px 0 0; font-variant-numeric: tabular-nums; color: var(--muted); }
