/* Documentation: a contents rail that follows the reader, the paper's overview
   figure, and one small figure for the submission budget. */
.docs-layout{border-top:0;padding-top:0;gap:72px}
.docs-sidebar>nav{gap:0;padding-left:0}
.docs-sidebar a{display:flex;text-decoration:none;align-items:baseline;gap:12px;padding:8px 0 8px 16px;font-size:var(--fs-sm);color:var(--muted);transition:color .2s ease}
.docs-sidebar a:hover{color:var(--ink);text-decoration:none}
.docs-sidebar a.is-current{color:var(--ink);font-weight:600}
.docs-marker{position:absolute;top:0;left:-1px;width:2px;height:0;background:var(--ink);transition:transform .45s var(--ease),height .45s var(--ease)}

.docs-content>section{padding-bottom:64px;margin-bottom:64px}
.docs-content h2{margin-bottom:18px;font:800 var(--fs-2xl)/1.08 var(--display);letter-spacing:-.04em}
.docs-content>section>p{max-width:62ch;font-size:var(--fs-md);line-height:1.7;color:#545350}
.docs-content p>a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--link-rule);text-underline-offset:4px}
.docs-content .fig-label a{display:inline-block;margin:-11px 0 -11px 4px;padding-block:11px;font-weight:550}

.docs-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:30px 0 40px;border-block:1px solid var(--line)}
.docs-stats div{padding:18px 0 20px 22px;border-left:1px solid var(--line)}
.docs-stats div:first-child{padding-left:0;border-left:0}
.docs-stats dt{font:500 var(--fs-sm)/1.3 var(--sans);color:var(--muted)}
.docs-stats dd{margin:10px 0 0 -.05em;font:800 var(--fs-2xl)/1 var(--display);letter-spacing:-.045em;font-variant-numeric:tabular-nums;color:var(--ink)}
.paper-figure{margin-top:0}
.paper-figure>a{padding:16px;border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;transition:border-color .15s ease}
.paper-figure>a:hover{border-color:#a7a7a3}
.paper-figure .fig-label{margin-top:14px}

.kind-list [data-type=data]{--k:var(--t-data)}
.kind-list [data-type=tools]{--k:var(--t-tools)}
.kind-list [data-type=strategy]{--k:var(--t-strategy)}
.kind-list [data-type=user]{--k:var(--t-user)}
.kind-list [data-type=domain]{--k:var(--t-domain)}
.docs-content .definition-list>div{grid-template-columns:190px minmax(0,1fr);gap:24px;padding:16px 0;font-size:var(--fs-md)}
.docs-content .definition-list dt{font-weight:650;color:var(--ink)}
.docs-content .kind-list dt{display:flex;align-items:center;gap:10px;color:var(--k)}
.kind-list dt i{width:9px;height:9px;border-radius:50%;background:var(--k)}
.docs-content .definition-list{margin-bottom:28px;border-bottom:1px solid var(--line)}

.protocol-flow{margin:32px 0 40px}

/* Figure 2: how the levels grow. Each measure is a row. Bars are scaled to the row's largest
   value; the file-reference row is scaled to all 120 tasks, so its bars read as the share. */
.level-stats{margin:8px 0 40px}
.level-stats table{width:100%;min-width:0;margin-top:16px;border-collapse:collapse;table-layout:fixed;font-variant-numeric:tabular-nums}
.level-stats th,.level-stats td{padding:12px 0;border-bottom:1px solid var(--line);white-space:normal;color:var(--ink)}
.level-stats thead th{padding:0 0 8px;border-bottom:1px solid var(--ink);font:500 var(--fs-xs)/1.5 var(--sans);color:var(--muted);text-align:left}
.level-stats thead th:first-child{width:200px}
.level-stats tbody th{width:200px;padding-right:16px;font:600 var(--fs-sm)/1.4 var(--sans);text-align:left;vertical-align:bottom}
.level-stats tbody th .nobr{white-space:nowrap}
.level-stats tbody th small{display:block;font:400 var(--fs-xs)/1.5 var(--sans);color:var(--muted)}
.level-stats td{padding-right:12px;text-align:left;vertical-align:bottom}
.level-stats td i{display:block;width:calc(var(--v) * 100%);height:4px;margin-bottom:8px;background:var(--muted)}
.level-stats td span{font:650 var(--fs-sm)/1.2 var(--sans)}
.level-stats td small{font:400 var(--fs-xs)/1 var(--sans);color:var(--muted)}
.level-stats td.is-none span{color:var(--muted);font-weight:400}
.level-stats tbody tr:hover{background:none}
.level-stats tbody tr:last-child th,.level-stats tbody tr:last-child td{border-bottom:1px solid var(--line)}
.flow-lane{display:grid;grid-template-columns:96px minmax(0,1fr);gap:20px;align-items:center;padding:18px 0;border-top:1px solid var(--line)}
.flow-lane:last-child{border-bottom:1px solid var(--line)}
.lane-label b{display:block;font:750 var(--fs-md)/1.2 var(--display);color:var(--ink)}
.lane-label span{font:var(--fs-xs)/1 var(--sans);color:var(--muted)}
.flow-lane ol{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px;margin:0;padding:0;list-style:none}
.flow-lane li{--step-ink:var(--ink);--step-line:#d2d2cf;position:relative;display:flex;align-items:center;justify-content:center;min-height:54px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;font-size:var(--fs-xs);font-weight:600;line-height:1.3;text-align:center;color:var(--ink)}
.flow-lane li:not(:last-child)::after{content:'';position:absolute;top:50%;left:calc(100% + 1px);width:17px;height:1px;background:#aeaeab}
.flow-lane li.lane-skip{grid-column:span 3;border-style:dashed;background:transparent;box-shadow:none;font:500 var(--fs-xs)/1.4 var(--sans);color:var(--muted)}
.flow-lane li.lane-feedback{--step-ink:var(--accent);--step-line:var(--accent);border-color:var(--accent);color:var(--accent)}
.flow-lane li.lane-end{display:block;padding:8px 12px;font-weight:500;font-size:var(--fs-xs);line-height:1.5;text-align:left}
.lane-end b{margin-right:4px;font-weight:700}
.lane-if{position:absolute;bottom:calc(100% + 3px);left:-9px;transform:translateX(-50%);font:600 var(--fs-xs)/1 var(--sans);letter-spacing:0;white-space:nowrap;color:var(--accent)}
.lane-note{margin-top:12px;font-size:var(--fs-sm);color:var(--muted)}
.protocol-flow.is-in li[style]{animation:step-lit 5.4s calc(.9s + var(--n) * .55s) infinite}
@keyframes step-lit{0%,15%,100%{background:#fff;border-color:var(--step-line);color:var(--step-ink)}4%,9%{background:var(--ink);border-color:var(--ink);color:#fff}}
.protocol-pair{gap:32px;padding:0;border-block:0}
.protocol-pair article{padding-top:16px;border-top:2px solid var(--ink)}
.protocol-pair .eyebrow{font:600 var(--fs-sm)/1.5 var(--sans);letter-spacing:0;text-transform:none;color:var(--muted)}
.protocol-pair h3{margin:8px 0 6px;font:750 var(--fs-lg)/1.25 var(--display);letter-spacing:-.02em}
.protocol-pair p{font-size:var(--fs-md)}

.docs-content .metric-list>div{grid-template-columns:190px minmax(0,1fr) auto}
.metric-list code{align-self:start;padding:3px 8px;border-radius:var(--radius);background:var(--surface);font:500 var(--fs-xs)/1.5 var(--mono);color:var(--ink);white-space:nowrap}

.resource-list a{padding:16px 4px 16px 0;text-decoration:none;font-size:var(--fs-md);font-weight:550;color:var(--ink);transition:padding .3s var(--ease),background-color .2s}
.resource-list a:hover{padding-left:10px;background:#fff;text-decoration:none}
.resource-list a>span:last-child{font:550 var(--fs-sm)/1.9 var(--sans);color:var(--ink);transition:transform .25s var(--ease)}
.resource-list a:hover>span:last-child{transform:translateX(-4px)}

.citation-box{border:0;border-radius:var(--radius);background:var(--ink);overflow:hidden}
.citation-top span{font-size:var(--fs-xs)}
.citation-top{padding:12px 18px;border-bottom:1px solid #ffffff1f;color:#afaeab}
.citation-top button{min-height:40px;padding:6px 12px;border:1px solid #ffffff38;border-radius:var(--radius);font:600 var(--fs-sm)/1.2 var(--sans);color:#fff;transition:background-color .2s,border-color .2s}
.citation-top button:hover{background:#ffffff14;border-color:#ffffff66}
.citation-box pre{padding:24px 16px;font-size:var(--fs-sm);color:#edece9}

@media(max-width:860px){
  .docs-marker{display:none}
  .docs-sidebar>nav{gap:0 20px}
  .docs-sidebar a{gap:8px;padding:10px 0}
}
@media(max-width:760px){
  .flow-lanes{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .flow-lane{grid-template-columns:1fr;align-items:start;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
  .flow-lane ol{grid-template-columns:1fr;grid-auto-rows:54px;gap:12px}
  .flow-lane li.lane-skip{grid-column:auto;grid-row:span 3;writing-mode:horizontal-tb;padding:12px}
  .flow-lane li:not(:last-child)::after{top:100%;left:50%;width:1px;height:11px}
  .lane-if{bottom:auto;top:-6px;left:auto;right:6px;transform:translateY(-100%)}
}
@media(max-width:600px){
  .docs-content>section{padding-bottom:40px;margin-bottom:40px}
  .docs-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .docs-stats div:nth-child(3){padding-left:0;border-left:0}
  .docs-stats div:nth-child(n+3){border-top:1px solid var(--line)}
  .docs-stats dd{font-size:var(--fs-2xl)}
  .docs-content .definition-list>div,.docs-content .metric-list>div{grid-template-columns:1fr;gap:6px}
  /* Phones: the measure names take their own line above the five values. */
  .level-stats table,.level-stats thead,.level-stats tbody{display:block}
  .level-stats thead th:first-child{width:0;padding:0}
  .level-stats tbody tr{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:8px;border-bottom:1px solid var(--line)}
  .level-stats tbody th{grid-column:1/-1;width:auto;padding:12px 0 4px;border:0}
  .level-stats td,.level-stats tbody tr:last-child th,.level-stats tbody tr:last-child td{padding:4px 0 12px;border:0}
  .level-stats tbody tr:last-child th{padding:12px 0 4px}
  .level-stats td.is-none span{display:block;margin-top:12px}
  .level-stats thead tr{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:8px}
  .level-stats thead th:first-child{display:none}
  .level-stats thead tr{border-bottom:1px solid var(--ink)}
  .level-stats thead th{border:0}
}
@media(prefers-reduced-motion:reduce){
}


.paper-figure figcaption.fig-label,.paper-figure figcaption.fig-label a{font-size:var(--fs-sm)}
