:root{
  --ink:#000;
  --paper:#fff;
  --rule:#d9d9d9;
  --rule-soft:#ececec;
  --quiet:#5c5c5c;
  --red:#a3281e;
  --red-wash:#fbf3f2;
  --font:"STIX Two Text","Times New Roman",Times,serif;
  font-family:var(--font);
  color:var(--ink);
  background:var(--paper);
  font-size:17px;
  line-height:1.5;
  font-synthesis:none;
  -webkit-text-size-adjust:100%;
}
*{box-sizing:border-box}
body{margin:0}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
a{color:var(--red);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:.15em}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--red);outline-offset:3px}
p{margin:0}

header{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:22px 40px;
  border-bottom:1px solid var(--rule);
  font-size:15px;
}
.brand{color:var(--ink);font-style:italic}
.repo{color:var(--quiet)}

main{max-width:1240px;margin:0 auto;padding:0 40px}

.titleblock{text-align:center;padding:84px 0 56px;max-width:640px;margin:0 auto}
h1{font-size:clamp(48px,7vw,84px);font-weight:400;line-height:1;letter-spacing:-.02em;margin:0 0 20px}
.deck{font-size:clamp(20px,2.2vw,26px);font-style:italic;margin-bottom:28px}
.abstract{font-size:17px;line-height:1.6;color:var(--ink)}
.summary{margin-top:26px;font-size:17px;line-height:1.6;color:var(--quiet)}
.summary b{font-weight:400;color:var(--ink);font-variant-numeric:tabular-nums}
.method-link{margin-top:14px;font-size:15px}
.method-link button{color:var(--red)}
.method-link button:hover{text-decoration:underline;text-underline-offset:.15em}

.method{
  max-width:640px;margin:0 auto 56px;
  padding:28px 0 8px;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  font-size:16px;line-height:1.6;
}
.method h2{font-size:22px;font-weight:400;font-style:italic;margin:0 0 14px}
.method p{margin-bottom:14px}

.workspace{
  display:grid;grid-template-columns:minmax(380px,5fr) minmax(360px,6fr);
  align-items:start;
  border-top:2px solid var(--ink);
}
.ranking{border-right:1px solid var(--rule)}

.controls{
  display:flex;align-items:center;gap:20px;
  padding:16px 0 16px;
  border-bottom:1px solid var(--rule);
  margin-right:28px;
}
.search{flex:1;min-width:0}
input[type=search]{
  width:100%;border:0;border-bottom:1px solid var(--rule);background:transparent;
  padding:6px 0;font-size:17px;font-style:italic;
  -webkit-appearance:none;appearance:none;border-radius:0;
}
input[type=search]::placeholder{color:var(--quiet);font-style:italic}
input[type=search]:focus{outline:none;border-bottom-color:var(--ink)}
input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}
.sort{white-space:nowrap;color:var(--quiet);font-size:15px}
select{
  border:0;border-bottom:1px solid var(--rule);background:transparent;
  padding:6px 0;font-size:15px;color:var(--ink);border-radius:0;
  -webkit-appearance:none;appearance:none;
}

.tablehead,.author-row{
  display:grid;grid-template-columns:44px 1fr 80px;gap:14px;align-items:baseline;
  padding:0 28px 0 12px;
}
.tablehead{
  padding-top:14px;padding-bottom:8px;
  font-size:14px;font-style:italic;color:var(--quiet);
  border-bottom:1px solid var(--rule);
}
.tablehead span:last-child{text-align:right}

.author-row{
  width:100%;text-align:left;
  padding-top:11px;padding-bottom:11px;
  border-bottom:1px solid var(--rule-soft);
  position:relative;
}
.author-row:hover{background:var(--red-wash)}
.author-row.active{background:var(--red-wash)}
.author-row.active::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--red)}
.rank{color:var(--quiet);font-variant-numeric:tabular-nums;font-size:15px}
.author-row.active .rank{color:var(--red)}
.name{font-size:18px;line-height:1.3}
.sub{display:block;font-size:14px;color:var(--quiet);margin-top:1px}
.count{text-align:right;font-size:18px;font-variant-numeric:tabular-nums}
.author-row.active .count{color:var(--red)}

.tablefoot{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:16px 28px 24px 12px;font-size:15px;color:var(--quiet);
}
.tablefoot button,.loadrefs{color:var(--red)}
.tablefoot button:hover,.loadrefs:hover{text-decoration:underline;text-underline-offset:.15em}

aside{
  padding:28px 0 40px 36px;
  position:sticky;top:0;max-height:100vh;overflow-y:auto;
}
h2.author-name{font-size:clamp(28px,3vw,40px);font-weight:400;line-height:1.1;letter-spacing:-.01em;margin:0 0 10px}
.detail-stats{font-size:16px;color:var(--quiet);margin-bottom:6px}
.detail-stats b{font-weight:400;color:var(--ink);font-variant-numeric:tabular-nums}
.aliases{font-size:15px;color:var(--quiet);font-style:italic;margin-bottom:6px}
.section-heading{
  display:flex;justify-content:space-between;align-items:baseline;
  margin:28px 0 6px;padding-bottom:8px;border-bottom:1px solid var(--ink);
  font-size:18px;font-style:italic;
}
.section-heading span{font-size:15px;font-style:normal;color:var(--quiet)}

.reference{display:grid;grid-template-columns:44px 1fr;gap:10px;padding:14px 0;border-bottom:1px solid var(--rule-soft);font-size:16px;line-height:1.5}
.ref-num{color:var(--quiet);font-variant-numeric:tabular-nums}
.ref-source{color:var(--quiet);margin-top:4px;font-size:15px}
.reference details{margin-top:6px;font-size:14px;color:var(--quiet)}
.reference summary{cursor:pointer;color:var(--red);list-style:none;display:inline}
.reference summary::-webkit-details-marker{display:none}
.reference summary:hover{text-decoration:underline;text-underline-offset:.15em}
.reference .raw{overflow-wrap:anywhere;margin:8px 0 0;font-style:italic}
.reference .raw a{display:inline-block;margin-top:4px;font-style:normal}
.loadrefs{margin-top:20px;font-size:16px}
.loading{padding:28px 0;color:var(--quiet);font-style:italic}

footer{
  max-width:1240px;margin:40px auto 0;padding:24px 40px 48px;
  border-top:1px solid var(--rule);
  display:flex;justify-content:space-between;gap:24px;
  font-size:14px;color:var(--quiet);
}

@media(max-width:900px){
  header,main{padding-left:24px;padding-right:24px}
  footer{padding-left:24px;padding-right:24px}
  .titleblock{padding:56px 0 40px}
  .workspace{display:block;border-top:2px solid var(--ink)}
  .ranking{border-right:0}
  .controls{margin-right:0}
  .tablehead,.author-row{padding-right:0}
  .tablefoot{padding-right:0}
  aside{position:static;max-height:none;padding:28px 0 0;border-top:2px solid var(--ink);margin-top:8px}
}
@media(max-width:560px){
  header{flex-direction:column;gap:4px;align-items:flex-start;padding:16px 20px}
  main{padding:0 20px}
  footer{padding:20px 20px 40px;flex-direction:column;gap:8px}
  .titleblock{padding:44px 0 32px}
  .abstract,.summary{font-size:16px}
  .controls{flex-wrap:wrap;gap:10px}
  .sort{width:100%}
  .tablehead,.author-row{grid-template-columns:34px 1fr 64px;gap:10px}
  .name{font-size:17px}
  .reference{grid-template-columns:36px 1fr}
}
@media(prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
}
