/* Self-Modeling Stable Control.
   GEAR-style research page: a fixed left rail carrying title, authors and abstract,
   with the study scrolling on the right. Instrument-neutral palette, a reading serif
   for the argument, a mono for every number and equation, and one quiet signature,
   a hairline that splits from grey into green under each heading, which is the
   baseline-drifts-while-adaptive-holds result drawn as the page's own motif. */

:root{
  --ink:#1a1c20;
  --muted:#5f636a;
  --faint:#9498a0;
  --line:#e5e4e0;
  --bg:#fcfcfb;
  --rail:#f6f5f2;
  --base:#868b93;     /* the baseline grey that drifts */
  --adapt:#2f7d5a;    /* the adaptive green that holds */
  --warn:#9a3b32;
  --amber:#8a6d2f;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:"Source Serif 4",Georgia,serif;
  font-size:18px;line-height:1.66;font-optical-sizing:auto;
  -webkit-font-smoothing:antialiased;
}

/* layout */
.layout{display:flex;align-items:flex-start;max-width:1280px;margin:0 auto;}
.rail{
  width:360px;flex:0 0 360px;position:sticky;top:0;height:100vh;
  background:var(--rail);border-right:1px solid var(--line);
  overflow-y:auto;
}
.rail-inner{padding:48px 36px 40px;}
.content{flex:1 1 auto;min-width:0;padding:60px 64px 120px;max-width:780px;}

/* rail content */
.kicker{
  font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.05em;
  text-transform:uppercase;color:var(--faint);margin-bottom:26px;line-height:1.5;
}
.rail h1{
  font-family:"Inter",sans-serif;font-size:33px;line-height:1.1;font-weight:700;
  letter-spacing:-.02em;margin:0 0 16px;color:var(--ink);
}
.sub{font-size:17px;line-height:1.5;color:var(--muted);font-style:italic;margin:0 0 28px;}
.authors{margin:0 0 8px;}
.a-name{font-family:"Inter",sans-serif;font-weight:600;font-size:15px;}
.a-aff{font-family:"Inter",sans-serif;font-size:13px;color:var(--muted);}
.rail-links{margin:20px 0 30px;display:flex;gap:8px;flex-wrap:wrap;}
.rail-links a{
  font-family:"Inter",sans-serif;font-size:13.5px;text-decoration:none;color:var(--ink);
  padding:5px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;
}
.rail-links a:hover{border-color:var(--adapt);color:var(--adapt);}

.abstract{border-top:1px solid var(--line);padding-top:20px;margin-top:6px;}
.abstract-h{
  font-family:"Inter",sans-serif;font-size:12px;letter-spacing:.04em;text-transform:uppercase;
  color:var(--faint);margin-bottom:10px;
}
.abstract p{font-size:14px;line-height:1.6;color:#3c4046;margin:0;}
.rail-foot{
  margin-top:26px;font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--faint);
  line-height:1.6;
}

/* content */
section{margin-top:8px;}
.content h2{
  font-family:"Inter",sans-serif;font-size:23px;font-weight:700;letter-spacing:-.015em;
  margin:54px 0 14px;padding-bottom:10px;position:relative;line-height:1.2;
}
.content h2::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--line);}
.content h2::before{
  content:"";position:absolute;left:0;bottom:-1px;width:58px;height:2px;
  background:linear-gradient(to right,var(--base),var(--adapt));z-index:1;
}
.content h3{font-family:"Inter",sans-serif;font-size:16.5px;font-weight:600;margin:24px 0 6px;}
.content p{margin:0 0 18px;}

.m{font-family:"IBM Plex Mono",monospace;font-size:.82em;color:#2a2d33;white-space:nowrap;}

/* citations */
a.cite{color:var(--adapt);text-decoration:none;font-weight:500;font-variant-numeric:tabular-nums;}
a.cite:hover{text-decoration:underline;}

/* lead video */
figure{margin:30px 0;}
figure.lead{margin:0 0 20px;}
figure video,figure.lead video{width:100%;border:1px solid var(--line);border-radius:6px;background:#000;display:block;}
figure img{max-width:100%;height:auto;border:1px solid var(--line);border-radius:6px;background:#fff;display:block;}
figcaption{
  font-family:"Inter",sans-serif;font-size:13px;line-height:1.55;color:var(--muted);
  margin-top:10px;
}

/* tables */
table{width:100%;border-collapse:collapse;margin:20px 0;font-family:"IBM Plex Mono",monospace;font-size:12.5px;}
caption{caption-side:top;text-align:left;color:var(--muted);font-family:"Inter",sans-serif;font-size:13px;line-height:1.55;margin-bottom:12px;}
th,td{text-align:right;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;}
th:first-child,td:first-child{text-align:left;}
thead th{border-bottom:1.5px solid #d2d1cb;font-weight:600;color:var(--ink);font-family:"Inter",sans-serif;font-size:12px;}
tbody tr:hover{background:#f5f5f1;}
td.good{color:var(--adapt);font-weight:500;}
td.bad{color:var(--warn);font-weight:500;}
td.warnc{color:var(--amber);}

/* callout */
.callout{border:1px solid var(--line);border-left:3px solid var(--warn);background:#fbf6f5;padding:18px 22px;margin:28px 0;border-radius:0 6px 6px 0;}
.callout h3{margin-top:0;color:var(--warn);}
.callout p{margin-bottom:0;}

/* refs + bibtex */
.refs{font-family:"Inter",sans-serif;font-size:14px;line-height:1.55;color:#33373d;padding-left:22px;}
.refs li{margin-bottom:10px;}
.refs li::marker{color:var(--faint);}
.bibtex{margin-top:18px;}
.bibtex summary{font-family:"Inter",sans-serif;font-size:13.5px;color:var(--adapt);cursor:pointer;}
pre{
  font-family:"IBM Plex Mono",monospace;font-size:12px;line-height:1.6;
  background:#f6f6f2;border:1px solid var(--line);border-radius:6px;padding:16px 18px;
  overflow-x:auto;color:#33373d;margin-top:12px;
}

footer{margin-top:64px;padding-top:22px;border-top:1px solid var(--line);color:var(--muted);font-family:"Inter",sans-serif;font-size:13px;line-height:1.6;}

/* responsive: rail collapses to top banner */
@media(max-width:920px){
  .layout{flex-direction:column;}
  .rail{position:static;width:100%;flex:none;height:auto;border-right:none;border-bottom:1px solid var(--line);}
  .rail-inner{padding:40px 28px 32px;max-width:780px;margin:0 auto;}
  .content{padding:36px 28px 90px;max-width:780px;margin:0 auto;}
  .rail h1{font-size:30px;}
}
@media(max-width:560px){
  body{font-size:16.5px;}
  .content h2{font-size:20px;}
  table{font-size:11px;}
  th,td{padding:6px 7px;}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
