/* The paper's three roles, expressed as a navigable research map. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.taxonomy{--tx-ink:#203e50;color:var(--tx-ink)}
.tx-instruction{font-size:13px;margin:0 0 20px;display:flex;gap:9px;align-items:center;color:var(--muted)}
.tx-instruction>span{display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--line);border-radius:50%;color:var(--green)}
.tx-layer{--tx-accent:#3e79a4;--tx-tint:#e9f4fc;--tx-line:#b9d4e7;--tx-hover:#d4e9f7;background:#fbfdff;border:1px solid var(--tx-line);border-radius:18px;overflow:hidden;box-shadow:0 7px 28px #203e5004}
.tx-infra{--tx-accent:#287d7a;--tx-tint:#e6f5f0;--tx-line:#afd7cc;--tx-hover:#ccebe1;background:#fcfefc}
.tx-evolve{--tx-accent:#946422;--tx-tint:#fcf2df;--tx-line:#e6cf9f;--tx-hover:#f6e5c0;background:#fffefb}
.tx-layer-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--tx-tint);padding:23px 27px;border-bottom:1px solid var(--tx-line)}
.tx-layer-heading>div{display:flex;align-items:center;gap:17px}
.tx-layer-heading h3{font-family:var(--heading);font-size:26px;letter-spacing:-.035em;margin:0;line-height:1.2}
.tx-layer-heading p{margin:0;font-size:13px;color:var(--tx-accent)}
.tx-role-tag{font-size:10px;font-weight:700;letter-spacing:.075em;padding:7px 9px;border:1px solid var(--tx-line);border-radius:6px;white-space:nowrap;color:var(--tx-accent);background:#ffffff85}
.tx-matrix-scroll{overflow-x:auto;outline-offset:-4px}
.tx-matrix{table-layout:fixed;width:100%;border-spacing:0;border-collapse:separate;min-width:690px;font-size:14px}
.tx-matrix th{font-weight:500;text-align:left}
.tx-matrix thead th{padding:15px 18px 21px;width:25%;vertical-align:bottom;border-left:1px solid var(--tx-line);background:linear-gradient(180deg,#f6fbff,var(--tx-tint))}
.tx-matrix .tx-corner{padding:22px;vertical-align:bottom;color:var(--tx-accent)}
.tx-corner span{display:block;font-size:9px;font-weight:650;letter-spacing:.09em;margin:12px 0}
.tx-matrix strong{display:block;font-size:15px;line-height:1.35;font-weight:650;letter-spacing:-.015em;margin:4px 0}
.tx-matrix small{display:block;color:#5e7889;font-size:11px;line-height:1.5;font-weight:400}
.tx-axis-id{font-size:10px;color:var(--tx-accent);font-weight:700;letter-spacing:.06em}
.tx-art{display:block;width:145px;height:90px;color:var(--tx-ink);margin-bottom:8px;overflow:visible}
.tx-art-halo{fill:var(--tx-tint)}
.tx-dash{stroke:var(--tx-accent);stroke-dasharray:4 5}
.tx-matrix tbody th{padding:22px 18px;border-top:1px solid var(--tx-line);background:linear-gradient(110deg,var(--tx-tint),#f9fcff)}
.tx-input-icon{width:36px;height:40px;float:left;margin:8px 13px 8px 0;color:var(--tx-accent)}
.tx-matrix tbody td{padding:13px;border-top:1px solid var(--tx-line);border-left:1px solid var(--tx-line);vertical-align:middle;transition:background .16s}
.tx-matrix tbody td:focus-within,.tx-matrix tbody td:hover{background:var(--tx-tint)}
.tx-pick{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 13px;min-height:44px;border:1px solid transparent;border-radius:9px;background:#ffffff9c;color:var(--tx-ink);font-size:13px;line-height:1.45;transition:background .16s,border-color .16s,transform .16s}
.tx-pick:hover,.tx-pick:focus-visible{background:var(--tx-hover);border-color:var(--tx-line);transform:translateY(-1px);outline:2px solid transparent}
.tx-pick:focus-visible{outline-color:var(--tx-accent);outline-offset:2px}
.tx-pick[aria-expanded=true]{border-color:var(--tx-accent);background:var(--tx-hover)}
.tx-pick>span:first-child{font-weight:550}
.tx-count{font-size:11px;white-space:nowrap;color:var(--tx-accent);font-variant-numeric:tabular-nums;background:var(--tx-tint);padding:4px 7px;border-radius:5px}
.tx-executors .tx-pick+.tx-pick{margin-top:4px}
.tx-bridge{display:flex;justify-content:center;gap:15%;padding:18px 15px;font-size:12px;color:#5b716a}
.tx-bridge span{display:flex;align-items:center;gap:12px}
.tx-bridge b{font-size:29px;line-height:1;font-weight:500}
.tx-up{color:#288681}.tx-down{color:#447594}
.tx-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:17px 8px}
.tx-column{padding:4px 18px 12px;position:relative;min-width:0}
.tx-column+.tx-column{border-left:1px solid var(--tx-line)}
.tx-column-head{padding:4px 6px 19px}
.tx-column-head .tx-art{width:160px;height:100px;margin:0 0 12px}
.tx-column h4{font-family:var(--heading);font-size:22px;font-weight:600;letter-spacing:-.035em;line-height:1.25;margin:0}
.tx-column-head p{font-size:11px;color:var(--tx-accent);margin:7px 0 0;line-height:1.5}
.tx-options{display:grid;gap:3px}
.tx-flow-connector{position:absolute;right:-18px;top:57px;background:#fcfefc;color:var(--tx-accent);z-index:1;padding:0 4px}
.tx-lifecycle .tx-column-head{border-radius:12px;transition:background .35s,box-shadow .35s}
.tx-lifecycle .flow-lit .tx-column-head{background:var(--tx-tint);box-shadow:0 0 18px var(--tx-tint)}
.tx-context{display:block;font-size:10px;font-weight:400;color:#856b42;margin-top:3px}
.tx-footnote{font-size:11px;color:var(--muted);margin:15px 3px 0}
.tx-dialog{--tx-accent:#3e79a4;--tx-tint:#e9f4fc;width:min(850px,94vw);padding:30px;max-height:85vh;overscroll-behavior:contain}
.tx-dialog-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:13px}
.tx-dialog-top h2{font-size:29px;line-height:1.2;margin:9px 0 0;letter-spacing:-.035em}
.tx-dialog-top button{flex-shrink:0;border:1px solid var(--line);width:36px;height:36px;border-radius:50%;background:white;font-size:24px;line-height:1}
.tx-dialog-top .tiny-label{color:var(--tx-accent)}
.tx-dialog>p{font-size:14px;line-height:1.65;margin:0 45px 22px 0}
.tx-dialog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 0;border-top:1px solid var(--line);font-size:11px}
.tx-dialog-toolbar a{font-size:11px}
.tx-paper{padding:18px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:8px 22px}
.tx-paper h3{font-family:var(--font);font-size:15px;font-weight:550;line-height:1.5;letter-spacing:-.015em;margin:0}
.tx-paper h3 a:hover{text-decoration:underline;text-underline-offset:3px}
.tx-paper-meta{grid-column:1;grid-row:1;font-size:10px;color:var(--muted)}
.tx-paper h3{grid-column:1;grid-row:2}
.tx-code{grid-column:2;grid-row:1/3;display:flex;gap:6px;align-items:center;font-size:12px;color:var(--tx-accent)}
.tx-dialog .load-more{margin-bottom:0}
@media(max-width:1000px){.tx-layer-heading{padding:20px;display:block}.tx-layer-heading p{margin:10px 0 0}.tx-layer-heading h3{font-size:25px}.tx-column{padding-left:12px;padding-right:12px}.tx-pick{padding:10px 8px;font-size:12px}.tx-count{font-size:10px;padding:3px 5px}.tx-column h4{font-size:20px}.tx-matrix strong{font-size:14px}.tx-input-icon{float:none;display:block;width:29px;height:30px;margin:0 0 7px}}
@media(max-width:720px){.tx-layer{border-radius:13px}.tx-layer-heading{padding:18px}.tx-layer-heading>div{align-items:flex-start;gap:12px}.tx-layer-heading h3{font-size:23px}.tx-role-tag{font-size:8px;padding:6px}.tx-layer-heading p{font-size:11px}.tx-instruction{font-size:11px}.tx-columns{grid-template-columns:1fr;padding:0 17px}.tx-column{padding:19px 0}.tx-column+.tx-column{border-left:0;border-top:1px solid var(--tx-line)}.tx-column-head{display:grid;grid-template-columns:95px 1fr;gap:0 14px;padding:0 0 12px;align-items:center}.tx-column-head .tx-art{width:95px;height:68px;margin:0;grid-row:1/3}.tx-column h4{font-size:22px}.tx-column-head p{grid-column:2;margin:4px 0 0}.tx-options{gap:4px}.tx-pick{font-size:13px;padding:11px}.tx-count{font-size:11px}.tx-flow-connector{right:15px;top:auto;bottom:-13px;transform:rotate(90deg)}.tx-bridge{gap:22px;justify-content:space-between;padding:15px 3px;font-size:10px}.tx-bridge span{gap:6px}.tx-bridge b{font-size:25px}.tx-dialog{padding:22px 18px}.tx-dialog-top h2{font-size:24px}.tx-dialog>p{margin-right:0;font-size:13px}.tx-dialog-toolbar{align-items:flex-start;flex-direction:column;gap:10px}.tx-paper{gap:7px 12px}.tx-paper h3{font-size:14px}.tx-code{font-size:11px}.tx-matrix thead th{padding:12px 14px 18px}.tx-matrix .tx-art{height:75px;width:125px}}

@media(prefers-reduced-motion:reduce){.tx-lifecycle .tx-column-head{transition:none}}
