:root {
  --page-bg: #f5f7fb;
  --panel-bg: #ffffff;
  --panel-border: #d8e0eb;
  --title-bg: #eef3fb;
  --text: #2f3d53;
  --muted: #6a778b;
  --navy: #1e4a87;
  --blue: #2d81dd;
  --green: #35b178;
  --orange: #ec9128;
  --purple: #7b66df;
  --red: #dd4c67;
  --gold: #dfab2f;
  --chip-blue: #e8f0fa;
  --chip-green: #e6f5ed;
  --chip-orange: #fbefe2;
  --chip-purple: #efebfc;
  --chip-red: #fce8ed;
  --chip-gold: #fbf0d7;
  --details-track: #dde6f1;
  --details-track-border: #c8d4e2;
  --details-track-active: #6e90c2;
  --details-track-tick: #aabbd6;
  --code-bg: #132641;
  --code-text: #d8e4ff;
  --sans: "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --mono: "IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: linear-gradient(180deg, #f9fbfe 0%, var(--page-bg) 38%, #f7f9fd 100%);
  color: var(--text);
  font-family: var(--sans);
  line-height: 1.18;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
}

.skip-link,
.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;
}

.skip-link:focus {
  width: auto;
  height: auto;
  margin: 0.75rem;
  padding: 0.65rem 0.9rem;
  clip: auto;
  background: var(--navy);
  color: #fff;
  border-radius: 999px;
  z-index: 1000;
}

.page-shell {
  width: min(1580px, calc(100vw - 24px));
  margin: 0 auto;
  padding: 12px 0 16px;
}

.hero {
  display: grid;
  grid-template-columns: minmax(240px, 300px) minmax(0, 1fr) minmax(240px, 300px);
  gap: 20px;
  align-items: start;
}

.hero__brands {
  display: grid;
  gap: 12px;
  align-self: end;
  align-content: start;
  justify-self: start;
  width: 100%;
  max-width: 300px;
  padding-top: 4px;
}

.hero__brand-row {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
}

.hero__brand--cwru {
  width: min(100%, 300px);
}

.hero__brand--scorio {
  flex: 1 1 auto;
  width: auto;
  max-width: 140px;
  min-width: 0;
}

.hero__brand--nsf {
  width: 64px;
  flex: 0 0 auto;
}

.hero__content {
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 8px;
  padding-top: 6px;
  text-align: center;
}

.hero__content h1 {
  max-width: 880px;
  margin: 0;
  font-size: clamp(1.95rem, 2.1vw, 2.95rem);
  line-height: 0.95;
  letter-spacing: -0.055em;
  font-weight: 900;
  text-wrap: balance;
}

.hero__title-line {
  display: block;
}

.hero__authors {
  margin: 6px 0 0;
  color: #717d8d;
  font-size: clamp(0.94rem, 1vw, 1.14rem);
  font-weight: 800;
}

.hero__authors a {
  text-decoration: none;
}

.hero__authors a:hover,
.hero__authors a:focus-visible {
  text-decoration: underline;
}

.hero__authors-separator {
  color: #9aa5b6;
}

.hero__qr {
  align-self: end;
  justify-self: end;
  width: 100%;
  max-width: 120px;
}

.hero__qr-image {
  width: 100%;
  padding: 8px;
  background: #fff;
  border: 1px solid var(--panel-border);
  border-radius: 18px;
}

.hero__qr-text {
  margin: 6px 0 0;
  color: var(--muted);
  text-align: center;
  font-size: 0.7rem;
  line-height: 1.12;
  font-weight: 800;
}

[hidden] {
  display: none !important;
}

.poster-view[hidden] {
  display: none !important;
}

.theme-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}

#details_filter {
  display: grid;
  width: 100%;
  justify-items: center;
  margin: 0 0 2px;
  padding: 2px 0 0;
}

.details-filter__control {
  width: min(100%, 540px);
  position: relative;
  display: grid;
  padding: 0;
  --details-slider-start: 0px;
  --details-slider-end: 0px;
  --details-slider-progress: 50%;
}

.details-filter__scale {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  align-items: start;
  pointer-events: none;
}

.details-filter__option {
  pointer-events: auto;
  display: grid;
  gap: 2px;
  width: 100%;
  max-width: none;
  justify-items: center;
  padding: 0;
  border: 0;
  background: none;
  color: #6a778b;
  font: inherit;
  cursor: pointer;
  text-align: center;
  appearance: none;
  -webkit-appearance: none;
}

.details-filter__option {
  font-size: 0.67rem;
  line-height: 1.05;
  font-weight: 720;
  letter-spacing: 0.015em;
  opacity: 0.78;
  white-space: nowrap;
  color: #7f8ea3;
  transition:
    color 140ms ease,
    opacity 140ms ease,
    transform 140ms ease,
    font-weight 140ms ease,
    filter 140ms ease;
}

.details-filter__option > span {
  display: block;
  margin-top: 3px;
}

.details-filter__option:hover {
  color: #51637d;
  opacity: 1;
}

.details-filter__option:focus-visible {
  outline: 2px solid rgba(63, 111, 179, 0.38);
  outline-offset: 4px;
  border-radius: 10px;
}

.details-filter__icon {
  width: 14px;
  height: 14px;
  padding: 6px;
  margin-top: 5px;
  box-sizing: content-box;
  border: 1.5px solid #c8d5e6;
  border-radius: 999px;
  overflow: visible;
  color: #9babc1;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 0 0 4px rgba(245, 247, 251, 0.96);
  transition:
    transform 140ms ease,
    color 140ms ease,
    background 140ms ease,
    border-color 140ms ease,
    box-shadow 140ms ease;
}

.details-filter__icon [stroke] {
  transition: stroke-width 140ms ease;
}

.details-filter__icon text {
  transition: font-weight 140ms ease;
}

#details_filter[data-detail="1"] .details-filter__option:nth-child(1),
#details_filter[data-detail="2"] .details-filter__option:nth-child(2),
#details_filter[data-detail="3"] .details-filter__option:nth-child(3) {
  color: #314d78;
  opacity: 1;
  font-weight: 860;
}

#details_filter[data-detail="1"] .details-filter__option:nth-child(1) .details-filter__icon,
#details_filter[data-detail="2"] .details-filter__option:nth-child(2) .details-filter__icon,
#details_filter[data-detail="3"] .details-filter__option:nth-child(3) .details-filter__icon {
  transform: scale(1.06);
  color: #ffffff;
  background: linear-gradient(180deg, #7fa7dd 0%, #547cb4 100%);
  border-color: #547cb4;
  box-shadow:
    0 0 0 4px rgba(245, 247, 251, 0.96),
    0 6px 16px rgba(84, 124, 180, 0.22);
}

#details_filter[data-detail="1"] .details-filter__option:nth-child(1) .details-filter__icon [stroke],
#details_filter[data-detail="2"] .details-filter__option:nth-child(2) .details-filter__icon [stroke],
#details_filter[data-detail="3"] .details-filter__option:nth-child(3) .details-filter__icon [stroke] {
  stroke-width: 2.05;
}

#details_filter[data-detail="1"] .details-filter__option:nth-child(1) .details-filter__icon text,
#details_filter[data-detail="2"] .details-filter__option:nth-child(2) .details-filter__icon text,
#details_filter[data-detail="3"] .details-filter__option:nth-child(3) .details-filter__icon text {
  font-weight: 900;
}

.details-filter__control input[type="range"] {
  position: absolute;
  top: 16px;
  left: var(--details-slider-start);
  right: var(--details-slider-end);
  display: block;
  width: auto;
  height: 18px;
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  cursor: pointer;
  touch-action: pan-y;
}

.details-filter__control input[type="range"]::-webkit-slider-runnable-track {
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    var(--details-track-active) 0 var(--details-slider-progress),
    var(--details-track) var(--details-slider-progress) 100%
  );
}

.details-filter__control input[type="range"]::-webkit-slider-thumb {
  width: 18px;
  height: 18px;
  margin-top: -7px;
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
}

.details-filter__control input[type="range"]::-moz-range-track {
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    var(--details-track-active) 0 var(--details-slider-progress),
    var(--details-track) var(--details-slider-progress) 100%
  );
}

.details-filter__control input[type="range"]::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
}

.details-filter__control input[type="range"]:focus-visible {
  outline: 3px solid rgba(45, 129, 221, 0.32);
  outline-offset: 4px;
}

.theme-pill {
  display: grid;
  gap: 5px;
  align-content: center;
  min-height: 66px;
  padding: 9px 14px 8px;
  text-decoration: none;
  border: 1px solid var(--panel-border);
  border-radius: 16px;
}

.theme-pill__title {
  font-size: clamp(1.36rem, 1.72vw, 1.92rem);
  line-height: 1;
  font-weight: 900;
  letter-spacing: -0.042em;
  text-align: center;
}

.theme-pill__text {
  color: #748193;
  font-size: 0.62rem;
  line-height: 1.1;
  font-weight: 700;
  text-align: center;
  text-wrap: balance;
}

.theme-pill--blue {
  background: var(--chip-blue);
  color: var(--navy);
}

.theme-pill--green {
  background: var(--chip-green);
  color: var(--green);
}

.theme-pill--orange {
  background: var(--chip-orange);
  color: var(--orange);
}

.theme-pill--purple {
  background: var(--chip-purple);
  color: var(--purple);
}

.theme-pill--gold {
  background: var(--chip-gold);
  color: #9b7320;
}

.detail-abstract {
  display: grid;
  gap: 12px;
  margin-top: 12px;
  padding: 14px 16px 15px;
  border: 1px solid var(--panel-border);
  border-radius: 20px;
  background:
    radial-gradient(circle at top left, rgba(45, 129, 221, 0.12), transparent 28%),
    radial-gradient(circle at top right, rgba(53, 177, 120, 0.12), transparent 26%),
    linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  box-shadow: 0 14px 32px rgba(26, 52, 95, 0.07);
}

.detail-abstract__header {
  display: grid;
  gap: 5px;
}

.detail-abstract__eyebrow {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 5px 9px;
  border-radius: 999px;
  background: #e7eef8;
  color: var(--navy);
  font-size: 0.58rem;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.detail-abstract h2 {
  margin: 0;
  color: #24364f;
  font-size: clamp(1.22rem, 1.55vw, 1.78rem);
  line-height: 1.02;
  letter-spacing: -0.04em;
  font-weight: 900;
}

.detail-abstract__body {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.detail-abstract__body p {
  margin: 0;
  color: #536276;
  font-size: 0.71rem;
  line-height: 1.24;
}

.detail-abstract__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.detail-abstract__chip {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 6px 10px;
  border: 1px solid #d8e2ee;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.84);
  color: #2e466d;
  font-size: 0.6rem;
  line-height: 1.08;
  font-weight: 800;
}

.code-abstract {
  display: grid;
  grid-template-columns: minmax(0, 1.22fr) minmax(320px, 0.78fr);
  gap: 16px;
  margin-top: 12px;
  padding: 16px;
  border: 1px solid var(--panel-border);
  border-radius: 20px;
  background:
    radial-gradient(circle at top left, rgba(45, 129, 221, 0.15), transparent 30%),
    radial-gradient(circle at bottom right, rgba(123, 102, 223, 0.1), transparent 32%),
    linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  box-shadow: 0 14px 32px rgba(26, 52, 95, 0.07);
}

.code-abstract__copy {
  display: grid;
  gap: 12px;
  align-content: start;
}

.code-abstract__header {
  display: grid;
  gap: 6px;
}

.code-abstract__eyebrow {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 5px 9px;
  border-radius: 999px;
  background: #e7eef8;
  color: var(--navy);
  font-size: 0.58rem;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.code-abstract h2 {
  margin: 0;
  color: #24364f;
  font-size: clamp(1.2rem, 1.52vw, 1.74rem);
  line-height: 1.02;
  letter-spacing: -0.04em;
  font-weight: 900;
  text-wrap: balance;
}

.code-abstract__body {
  display: grid;
  gap: 10px;
}

.code-abstract__body p {
  margin: 0;
  color: #536276;
  font-size: 0.75rem;
  line-height: 1.26;
}

.code-abstract__list {
  display: grid;
  gap: 4px;
  margin: 0;
  padding-left: 1rem;
  color: #4f6075;
  font-size: 0.66rem;
  line-height: 1.18;
}

.code-abstract__list strong {
  color: #31455f;
}

.code-abstract__algorithm {
  display: grid;
  gap: 8px;
  padding: 11px 12px 12px;
  border: 1px solid #d9e4f0;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(247, 250, 255, 0.96) 0%, rgba(255, 255, 255, 0.98) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.88);
}

.code-abstract__algorithm-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.code-abstract__algorithm-title {
  color: #28415f;
  font-size: 0.58rem;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.code-abstract__algorithm-meta {
  color: #6c7b90;
  font-size: 0.58rem;
  line-height: 1;
  font-weight: 800;
}

.code-abstract__algorithm pre {
  margin: 0;
  padding: 10px 11px;
  overflow-x: auto;
  border-radius: 14px;
  background: linear-gradient(180deg, #19304d 0%, #13263f 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.code-abstract__algorithm code {
  display: block;
  color: #dbe8ff;
  font-family: var(--mono);
  font-size: 0.61rem;
  line-height: 1.42;
  white-space: pre;
}

.code-abstract__body code,
.code-fact__value,
.api-summary__call,
.api-summary__returns {
  font-family: var(--mono);
}

.code-abstract__facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.code-fact {
  display: grid;
  gap: 6px;
  padding: 10px 11px;
  border: 1px solid #d9e4f0;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.82);
}

.code-fact__label {
  color: #587195;
  font-size: 0.56rem;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.code-fact__value {
  color: #243a61;
  font-size: 0.69rem;
  line-height: 1.16;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.poster-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-areas:
    "why convergence benchmarks"
    "decision leaderboard categorical";
  gap: 14px;
  margin-top: 14px;
  align-items: stretch;
}

#why-passk {
  grid-area: why;
}

#convergence {
  grid-area: convergence;
}

#benchmarks {
  grid-area: benchmarks;
}

#decision-rule {
  grid-area: decision;
}

#leaderboard {
  grid-area: leaderboard;
}

#categorical {
  grid-area: categorical;
}

.theme-strip--code {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 12px;
}

.poster-grid--code {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-areas: "binary intervals api";
  gap: 16px;
  margin-top: 16px;
  align-items: start;
}

.poster-view--code .card {
  min-width: 0;
  box-shadow: 0 12px 28px rgba(26, 52, 95, 0.06);
  align-self: start;
}

#code-binary {
  grid-area: binary;
}

#code-intervals {
  grid-area: intervals;
}

#code-api {
  grid-area: api;
}

.poster-grid--detail {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-areas:
    "setup setup setup setup estimator estimator estimator estimator algorithm algorithm algorithm algorithm"
    "convergence convergence convergence convergence convergence convergence convergence decision decision decision decision decision"
    "prior prior prior prior prior prior prior categorical categorical categorical categorical categorical";
  gap: 16px;
  margin-top: 16px;
  align-items: start;
}

.poster-view--detail .theme-strip--detail {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-top: 0;
}

.poster-grid--detail .card {
  box-shadow: 0 12px 28px rgba(26, 52, 95, 0.06);
  align-self: start;
}

#detail-setup {
  grid-area: setup;
}

#detail-estimator {
  grid-area: estimator;
}

#detail-algorithm {
  grid-area: algorithm;
}

#detail-convergence {
  grid-area: convergence;
}

#detail-decision {
  grid-area: decision;
}

#detail-categorical {
  grid-area: categorical;
}

#detail-prior {
  grid-area: prior;
}

.card {
  display: grid;
  position: relative;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  min-height: 0;
  background: var(--panel-bg);
  border: 1px solid var(--panel-border);
  border-radius: 18px;
  overflow: hidden;
  scroll-margin-top: 18px;
  transform-origin: center top;
  transition:
    transform 260ms cubic-bezier(0.22, 1, 0.36, 1);
}

.card__header {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 11px 12px 0;
}

.card__header h2 {
  width: 100%;
  margin: 0;
  padding: 8px 12px;
  border-radius: 13px;
  background: var(--title-bg);
  color: #304159;
  font-size: clamp(0.98rem, 1.15vw, 1.5rem);
  line-height: 1.04;
  letter-spacing: -0.035em;
  font-weight: 900;
  text-wrap: balance;
}

.card__accent {
  flex: 0 0 7px;
  width: 7px;
  height: 27px;
  margin-top: 6px;
  border-radius: 999px;
}

.card__body {
  display: grid;
  align-content: start;
  gap: 9px;
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
  min-height: 0;
  padding: 9px 12px 11px;
}

.poster-grid--detail .card__header h2 {
  font-size: clamp(0.96rem, 1.02vw, 1.16rem);
  line-height: 1.06;
}

.poster-grid--detail .card__body {
  gap: 12px;
  padding: 11px 13px 13px;
}

.poster-view.is-topic-focused .card.is-card-focused {
  transform: translateY(-11px) scale(1.045);
  z-index: 24;
}

.card__body--split {
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}

.card__body--chart-copy {
  grid-template-columns: minmax(0, 1.45fr) minmax(138px, 0.55fr);
  gap: 12px;
  align-items: start;
}

.card__body--prior {
  grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.9fr);
  gap: 14px;
  align-items: start;
}

.card__column {
  min-width: 0;
  display: grid;
  gap: 8px;
  align-content: start;
}

.card__column--supporting {
  gap: 10px;
  padding-top: 6px;
}

.card__list {
  margin: 0;
  padding-left: 15px;
  color: var(--text);
  font-size: 0.69rem;
  line-height: 1.17;
}

.card__list li + li {
  margin-top: 0.2rem;
}

.card__list--compact {
  font-size: 0.66rem;
}

.inline-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  white-space: nowrap;
}

.inline-brand img {
  width: 1.15em;
  height: 1.15em;
  flex: 0 0 auto;
}

.supporting-copy {
  margin: 0;
  color: #5c6a7e;
  font-size: 0.65rem;
  line-height: 1.14;
}

.supporting-copy strong {
  color: #36475f;
  font-weight: 900;
}

.workflow {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 7px;
  align-items: stretch;
  margin: 5px 0 0;
  padding: 0;
  list-style: none;
}

.workflow__arrow {
  display: none;
}

.workflow__step {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 6px;
  align-items: center;
  min-width: 0;
  min-height: 52px;
  padding: 7px 8px;
  border-radius: 14px;
}

.workflow__step--blue {
  background: var(--chip-blue);
}

.workflow__step--green {
  background: var(--chip-green);
}

.workflow__step--orange {
  background: var(--chip-orange);
}

.workflow__step--purple {
  background: var(--chip-purple);
}

.workflow__step--navy {
  background: #e7eef8;
}

.workflow__badge {
  display: grid;
  place-items: center;
  width: 20px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--blue);
  color: #fff;
  font-size: 0.6rem;
  font-weight: 900;
}

.workflow__step--green .workflow__badge {
  background: var(--green);
}

.workflow__step--orange .workflow__badge {
  background: var(--orange);
}

.workflow__step--purple .workflow__badge {
  background: var(--purple);
}

.workflow__step--navy .workflow__badge {
  background: var(--navy);
}

.workflow__label {
  min-width: 0;
  font-size: 0.58rem;
  line-height: 1.06;
  font-weight: 800;
}

.figure {
  margin: 0;
  display: grid;
  gap: 5px;
  min-width: 0;
}

.figure img {
  width: 100%;
  border-radius: 11px;
  background: #fff;
  object-fit: contain;
}

.figure figcaption {
  margin: 0;
  color: var(--muted);
  font-size: 0.6rem;
  line-height: 1.14;
}

.equation-set {
  display: grid;
  gap: 5px;
  margin: 0;
}

.equation-set--detail {
  gap: 7px;
  padding: 10px 11px;
  border: 1px solid #dbe5f1;
  border-radius: 15px;
  background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
  box-shadow: none;
  position: relative;
}

.equation-set--detail::before {
  content: "";
  display: block;
  width: 54px;
  height: 3px;
  margin-bottom: 2px;
  border-radius: 999px;
  background: rgba(45, 129, 221, 0.34);
}

.equation-set__label {
  margin: 0;
  color: #5d6a7e;
  font-size: 0.66rem;
  font-weight: 900;
}

.equation {
  margin: 0;
  font-size: 0.76rem;
  line-height: 1.12;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.equation--dense {
  font-size: 0.67rem;
  line-height: 1.18;
  letter-spacing: -0.015em;
  overflow-wrap: anywhere;
}

.katex {
  font-size: 1em;
}

.katex-display {
  margin: 0.12em 0;
  overflow-x: auto;
  overflow-y: hidden;
}

.equation .katex-display {
  margin: 0;
}

.poster-view--detail .equation-set__label {
  font-size: 0.64rem;
}

.poster-view--detail .equation-set--detail .equation-set__label:not(:first-child) {
  margin-top: 2px;
}

.poster-view--detail .equation--dense {
  font-size: 0.71rem;
  line-height: 1.2;
}

.note {
  margin: 0;
  padding: 7px 9px;
  border-radius: 12px;
  font-size: 0.65rem;
  line-height: 1.13;
}

.note--soft {
  color: #5a6780;
  background: #ecf2fb;
}

.note--orange {
  color: #8b5d28;
  background: #fae7d7;
}

.note--green {
  color: #2b7858;
  background: #ddf0e5;
}

.detail-metrics {
  display: grid;
  gap: 0;
}

.detail-metric {
  display: grid;
  grid-template-columns: minmax(84px, 104px) minmax(0, 1fr);
  gap: 8px 14px;
  align-items: baseline;
  min-height: 0;
  padding: 8px 0;
  border-top: 1px solid #dce6f2;
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.detail-metric:last-child {
  border-bottom: 1px solid #dce6f2;
}

.detail-metric__label {
  color: #547098;
  font-size: 0.57rem;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.detail-metric__value {
  color: #213b62;
  font-size: 0.68rem;
  line-height: 1.22;
  font-weight: 800;
}

.algorithm-block {
  display: grid;
  align-content: start;
  min-height: 178px;
  padding: 15px 16px;
  border: 1px solid #44475a;
  border-radius: 18px;
  background:
    radial-gradient(circle at top right, rgba(189, 147, 249, 0.14), transparent 34%),
    linear-gradient(180deg, #2c2f3d 0%, #262938 100%);
  color: #f8f8f2;
  box-shadow:
    0 16px 30px rgba(24, 26, 35, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
  position: relative;
}

.algorithm-block::before {
  content: "";
  display: block;
  width: 86px;
  height: 3px;
  margin-bottom: 10px;
  border-radius: 999px;
  background: linear-gradient(90deg, #ff79c6 0%, #bd93f9 52%, #8be9fd 100%);
}

.algorithm-block pre {
  margin: 0;
  white-space: pre-wrap;
}

.algorithm-block code {
  display: block;
  font-family: var(--mono);
  font-size: 0.66rem;
  line-height: 1.4;
  color: inherit;
}

.snippet-shell {
  display: grid;
  gap: 4px;
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
  min-height: 0;
  padding: 12px 13px 13px;
  border: 1px solid #2c4160;
  border-radius: 17px;
  background:
    radial-gradient(circle at top right, rgba(138, 228, 196, 0.12), transparent 30%),
    linear-gradient(180deg, #1b2d49 0%, #14233a 100%);
  color: var(--code-text);
  overflow: hidden;
  box-shadow: 0 14px 28px rgba(12, 26, 49, 0.16);
}

.snippet-shell--hero {
  min-height: 100%;
  padding: 14px 15px 15px;
}

.snippet-shell pre {
  margin: 0;
  min-width: 0;
  max-width: 100%;
  overflow: auto;
}

.snippet-shell code {
  display: block;
  font-family: var(--mono);
  font-size: 0.64rem;
  line-height: 1.45;
  color: inherit;
  white-space: pre;
}

.api-reference {
  display: grid;
  gap: 12px;
  align-content: start;
  min-height: 100%;
  padding: 14px 15px 15px;
  border: 1px solid #d7e1ec;
  border-radius: 18px;
  background:
    radial-gradient(circle at top right, rgba(102, 164, 221, 0.1), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.88),
    0 14px 28px rgba(22, 48, 86, 0.09);
}

.api-reference__header {
  display: grid;
  gap: 6px;
}

.api-reference__eyebrow {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 5px 9px;
  border-radius: 999px;
  background: #ebf2fa;
  color: #36527e;
  font-size: 0.56rem;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.api-reference__title {
  margin: 0;
  color: #213552;
  font-size: 0.94rem;
  line-height: 1;
  font-weight: 900;
  letter-spacing: -0.03em;
}

.api-reference__table-wrap {
  overflow-x: auto;
}

.api-reference__table {
  width: 100%;
  min-width: 470px;
  border-collapse: collapse;
  border-top: 2px solid #233b5d;
  color: #23364f;
}

.api-reference__table thead th {
  padding: 8px 10px 7px 0;
  border-bottom: 1px solid #aebfd2;
  color: #253a59;
  font-size: 0.62rem;
  line-height: 1.05;
  font-weight: 900;
  text-align: left;
}

.api-reference__table th:last-child,
.api-reference__table td:last-child {
  padding-right: 0;
}

.api-reference__table tbody + tbody tr:first-child td {
  border-top: 1px solid #aebfd2;
}

.api-reference__table tbody tr:last-child td {
  border-bottom: 1px solid #d5dfeb;
}

.api-reference__table td {
  padding: 6px 10px 6px 0;
  vertical-align: top;
  color: #46586f;
  font-size: 0.61rem;
  line-height: 1.14;
}

.api-reference__table td code {
  font-family: var(--mono);
  color: #233b61;
  font-size: 0.62rem;
  line-height: 1.12;
  white-space: nowrap;
}

.api-reference__note {
  margin: 0;
  color: #536276;
  font-size: 0.59rem;
  line-height: 1.16;
}

.api-reference__note code {
  font-family: var(--mono);
  color: #243a61;
  font-size: 0.59rem;
}

.api-summary {
  display: grid;
  gap: 0;
  border-top: 1px solid #dce6f2;
}

.api-summary__row {
  display: grid;
  gap: 6px;
  padding: 10px 0;
  border-bottom: 1px solid #dce6f2;
}

.api-summary__calls {
  display: grid;
  gap: 5px;
}

.api-summary__entry {
  display: grid;
  gap: 2px;
}

.api-summary__call {
  color: #223b61;
  font-size: 0.66rem;
  line-height: 1.25;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.api-summary__returns {
  color: #5e7392;
  font-size: 0.61rem;
  line-height: 1.08;
  font-weight: 900;
}

.api-summary__desc {
  margin: 0;
  color: #536276;
  font-size: 0.66rem;
  line-height: 1.2;
}

.mini-figures {
  display: grid;
  gap: 10px;
}

.mini-figure {
  align-content: start;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
}

.mini-figure img {
  aspect-ratio: 1200 / 640;
  padding: 6px;
  border: 1px solid #dde7f3;
  border-radius: 13px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.mini-figure figcaption {
  padding: 0 2px;
  font-size: 0.58rem;
}

.detail-schema {
  display: grid;
  gap: 7px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: #7f5d26;
}

.detail-schema__title {
  margin: 0;
  font-size: 0.65rem;
  line-height: 1.06;
  font-weight: 900;
}

.detail-schema__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 8px;
  font-size: 0.62rem;
  line-height: 1.14;
  font-weight: 800;
}

.detail-schema__grid span {
  padding: 7px 8px;
  border: 1px solid #ecdeb9;
  border-radius: 11px;
  background: #fcf5e7;
}

.note--takeaway {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
}

.note--takeaway img {
  width: 38px;
  height: 38px;
  object-fit: contain;
}

.note--takeaway p {
  margin: 0;
  color: #22324a;
}

.acknowledgement {
  margin: 0;
  color: #647185;
  font-size: 0.59rem;
  line-height: 1.12;
}

.poster-view--detail .supporting-copy {
  font-size: 0.68rem;
  line-height: 1.18;
}

.poster-view--detail .card__list,
.poster-view--detail .card__list--compact {
  font-size: 0.68rem;
  line-height: 1.2;
}

.poster-view--detail .figure {
  gap: 7px;
}

.poster-view--detail .figure img {
  padding: 6px;
  border: 1px solid #dde7f3;
  border-radius: 13px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  box-shadow: none;
}

.poster-view--detail .figure figcaption {
  font-size: 0.61rem;
  line-height: 1.16;
}

.poster-view--detail #detail-convergence .card__body {
  grid-template-columns: minmax(0, 1.32fr) minmax(230px, 0.88fr);
  gap: 16px;
}

.poster-view--detail #detail-convergence .card__column--supporting {
  gap: 12px;
  padding-top: 2px;
}

.poster-view--detail #detail-categorical .card__body--split {
  grid-template-columns: minmax(0, 1.02fr) minmax(280px, 0.98fr);
  gap: 16px;
}

.poster-view--detail #detail-prior .card__body--prior {
  grid-template-columns: minmax(0, 1.3fr) minmax(250px, 0.7fr);
  gap: 16px;
}

#detail-prior .figure img {
  aspect-ratio: 1848 / 631;
}

#detail-decision .card__body {
  grid-template-columns: minmax(0, 0.88fr) minmax(290px, 0.94fr);
  grid-template-areas:
    "equation figures"
    "metrics figures"
    "list figures";
  gap: 12px 16px;
  align-items: start;
}

#detail-decision .card__body > .equation-set {
  grid-area: equation;
}

#detail-decision .card__body > .detail-metrics {
  grid-area: metrics;
}

#detail-decision .card__body > .mini-figures {
  grid-area: figures;
}

#detail-decision .card__body > .card__list {
  grid-area: list;
}

.card--orange .card__accent {
  background: var(--orange);
}

.card--green .card__accent {
  background: var(--green);
}

.card--blue .card__accent {
  background: var(--blue);
}

.card--purple .card__accent {
  background: var(--purple);
}

.card--red .card__accent {
  background: var(--red);
}

.card--gold .card__accent {
  background: var(--gold);
}

#why-passk .card__body {
  gap: 11px;
}

#convergence .figure img {
  aspect-ratio: 1200 / 588;
}

#benchmarks .figure img {
  aspect-ratio: 1200 / 596;
}

#decision-rule .card__body {
  gap: 9px;
}

.card__body--decision {
  grid-template-columns: minmax(0, 1.36fr) minmax(170px, 0.72fr);
  grid-template-areas:
    "copy side"
    "protocol protocol";
  column-gap: 12px;
  row-gap: 10px;
}

.card__column--decision {
  grid-area: copy;
  gap: 9px;
}

.card__column--decision-side {
  grid-area: side;
  grid-template-rows: auto auto;
  gap: 8px;
  align-content: start;
  justify-items: stretch;
}

.figure--decision {
  width: 100%;
  margin-top: 2px;
}

.figure--decision img {
  aspect-ratio: 1200 / 323;
}

.figure--decision figcaption {
  display: none;
}

.note--decision-rule {
  padding: 9px 11px 8px;
  border-radius: 14px;
  font-size: 0.61rem;
  line-height: 1.12;
}

.note--protocol {
  grid-area: protocol;
  padding: 7px 11px;
  border-radius: 14px;
  font-size: 0.61rem;
  line-height: 1.1;
}

#leaderboard .figure img {
  aspect-ratio: 1200 / 274;
}

#leaderboard .card__header h2 {
  font-size: clamp(0.74rem, 0.83vw, 1.02rem);
  line-height: 1;
  white-space: nowrap;
  text-wrap: nowrap;
}

#categorical .card__body--split {
  grid-template-columns: minmax(168px, 0.92fr) minmax(0, 1fr);
}

#categorical .figure img {
  aspect-ratio: 1200 / 911;
  object-position: top;
}

.footer-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 0.86fr)) minmax(0, 1.54fr);
  gap: 13px;
  margin-top: 14px;
  align-items: stretch;
}

.cta-card,
.code-card {
  min-height: 0;
  border: 1px solid var(--panel-border);
  border-radius: 16px;
}

.cta-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 104px;
  padding: 10px 12px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(26, 52, 95, 0.06);
}

.cta-card__meta {
  min-width: 0;
  display: grid;
  gap: 6px;
}

.cta-card__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  padding: 5px 9px;
  border-radius: 999px;
  background: #edf3fb;
  color: #213b63;
  font-size: 0.6rem;
  font-weight: 900;
}

.cta-card__chip img {
  width: 14px;
  height: 14px;
  object-fit: contain;
}

.cta-card__chip--icon-only {
  gap: 0;
  line-height: 0;
}

.cta-card__chip--icon-only img {
  width: auto;
  height: 1rem;
}

.cta-card__url {
  display: block;
  color: #29456d;
  font-size: 0.68rem;
  line-height: 1.08;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.cta-card__desc {
  color: #71819a;
  font-size: 0.56rem;
  line-height: 1.18;
  font-weight: 700;
}

.cta-card__qr {
  width: 56px;
  padding: 4px;
  background: #fff;
  border: 1px solid #d4deea;
  border-radius: 12px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.8);
}

.cta-card--github {
  background: linear-gradient(180deg, #ffffff 0%, #f6f9ff 100%);
}

.cta-card--paper {
  background: linear-gradient(180deg, #ffffff 0%, #fff8f5 100%);
}

.cta-card--paper .cta-card__chip {
  background: #fff1ea;
  color: #8a3d1c;
}

.cta-card--docs {
  background: linear-gradient(180deg, #ffffff 0%, #f6fbf8 100%);
}

.cta-card--docs .cta-card__chip {
  background: #ebf7ef;
  color: #226046;
}

.install-card {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  gap: 12px;
  min-height: 0;
  padding: 12px 14px 13px;
  border: 1px solid #2a4163;
  border-radius: 16px;
  background:
    radial-gradient(circle at top right, rgba(255, 205, 86, 0.12), transparent 28%),
    linear-gradient(180deg, #1b2d49 0%, #14233a 100%);
  color: var(--code-text);
  box-shadow: 0 14px 28px rgba(12, 26, 49, 0.18);
}

.install-card__brand {
  display: grid;
  align-content: start;
  justify-items: start;
  color: inherit;
  text-decoration: none;
}

.install-card__logo {
  width: 82px;
  height: auto;
  object-fit: contain;
}

.install-card__commands {
  display: grid;
  gap: 8px;
}

.install-card__command {
  display: grid;
  gap: 4px;
  padding: 9px 10px;
  border: 1px solid rgba(161, 188, 231, 0.18);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
}

.install-card__command-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.install-card__label {
  color: #90b4e8;
  font-size: 0.55rem;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.install-card__copy {
  flex: 0 0 auto;
  min-width: 52px;
  padding: 3px 8px;
  border: 1px solid rgba(168, 196, 238, 0.22);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  color: #d8e7ff;
  font: inherit;
  font-size: 0.52rem;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  cursor: pointer;
}

.install-card__copy:hover {
  background: rgba(255, 255, 255, 0.11);
}

.install-card__copy:focus-visible {
  outline: 2px solid rgba(122, 183, 255, 0.45);
  outline-offset: 2px;
}

.install-card code {
  font-family: var(--mono);
  color: #edf4ff;
  font-size: 0.62rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.code-card {
  padding: 11px 13px 12px;
  background: linear-gradient(180deg, #1b2d49 0%, #14233a 100%);
  color: var(--code-text);
  box-shadow: 0 14px 28px rgba(12, 26, 49, 0.18);
}

.code-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
  margin-bottom: 0;
}

.code-card__dots {
  display: flex;
  gap: 5px;
  margin-bottom: 0;
}

.code-card__dots span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #f5d264;
}

.code-card__dots span:nth-child(2) {
  background: #8ae4c4;
}

.code-card__dots span:nth-child(3) {
  background: #7ab7ff;
}

.code-card pre {
  margin: 0;
  white-space: pre-wrap;
}

.code-card__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 9px;
  border: 1px solid rgba(184, 209, 255, 0.2);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  color: #e4edff;
  font-size: 0.57rem;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.code-card__label--copy {
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  flex: 0 0 auto;
  font: inherit;
}

.snippet-shell .code-card__label--copy {
  padding: 3px 7px;
  font-size: 0.49rem;
}

.code-card__label--copy:hover {
  background: rgba(255, 255, 255, 0.11);
}

.code-card__label--copy:focus-visible {
  outline: 2px solid rgba(122, 183, 255, 0.45);
  outline-offset: 2px;
}

.code-card code {
  font-family: var(--mono);
  font-size: 0.6rem;
  line-height: 1.28;
}

@media (max-width: 1260px) {
  .page-shell {
    width: min(100vw - 18px, 1180px);
  }

  .hero {
    grid-template-columns: 1fr;
    gap: 14px;
    justify-items: center;
  }

  .hero__brands {
    justify-items: center;
    max-width: none;
  }

  .hero__brand-row {
    justify-content: center;
    gap: 24px;
  }

  .hero__brand--cwru {
    width: min(100%, 410px);
  }

  .hero__brand--scorio {
    flex: 0 1 auto;
    width: min(185px, 100%);
    max-width: none;
    min-width: auto;
  }

  .hero__brand--nsf {
    width: 86px;
  }

  .hero__qr {
    justify-self: center;
    max-width: 130px;
  }

  .theme-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .poster-view--detail .theme-strip--detail {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .poster-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "why convergence"
      "benchmarks decision"
      "leaderboard categorical";
  }

  .code-abstract {
    grid-template-columns: 1fr;
  }

  .code-abstract__facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .poster-grid--code {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "binary intervals"
      "api api";
  }

  .poster-grid--detail {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas: none;
  }

  #code-binary,
  #code-intervals,
  #code-api,
  #detail-setup,
  #detail-estimator,
  #detail-algorithm,
  #detail-convergence,
  #detail-decision,
  #detail-categorical,
  #detail-prior {
    grid-area: auto;
  }

  .footer-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .code-card,
  .install-card {
    grid-column: 1 / -1;
  }

  .install-card {
    grid-template-columns: 92px minmax(0, 1fr);
  }

  .card__body--chart-copy,
  .card__body--split,
  .card__body--prior,
  .card__body--decision,
  #categorical .card__body--split {
    grid-template-columns: 1fr;
    grid-template-areas: none;
  }

  .card__column--decision,
  .card__column--decision-side,
  .figure--decision,
  .note--decision-rule,
  .note--protocol {
    grid-area: auto;
  }

  .figure--decision figcaption {
    display: block;
  }

  .poster-view--detail #detail-convergence .card__body,
  #detail-decision .card__body,
  .poster-view--detail #detail-categorical .card__body--split,
  .poster-view--detail #detail-prior .card__body--prior {
    grid-template-columns: 1fr;
    grid-template-areas: none;
  }

  #leaderboard .card__header h2 {
    white-space: normal;
    text-wrap: balance;
  }

  .poster-view.is-topic-focused .card.is-card-focused {
    transform: translateY(-8px) scale(1.028);
  }

  .detail-abstract__body,
  .code-abstract__facts,
  .mini-figures {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .page-shell {
    width: min(100vw - 12px, 900px);
    padding-top: 10px;
  }

  .hero__content h1 {
    font-size: clamp(2rem, 7.8vw, 2.8rem);
  }

  .hero__brand-row {
    gap: 18px;
  }

  .hero__brand--nsf {
    width: 72px;
  }

  .details-filter__control {
    width: min(100%, 420px);
  }

  .details-filter__scale {
    gap: 0;
  }

  .details-filter__option {
    font-size: 0.61rem;
  }

  .details-filter__icon {
    width: 12px;
    height: 12px;
    padding: 5px;
    margin-top: 4px;
  }

  .details-filter__control input[type="range"] {
    top: 14px;
  }

  .detail-abstract {
    padding-left: 12px;
    padding-right: 12px;
  }

  .code-abstract {
    padding-left: 12px;
    padding-right: 12px;
  }

  .detail-abstract__body,
  .detail-metrics {
    grid-template-columns: 1fr;
  }

  .detail-metric {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .detail-schema__grid {
    grid-template-columns: 1fr;
  }

  .theme-strip,
  .poster-grid,
  .poster-grid--code,
  .footer-strip {
    grid-template-columns: 1fr;
    grid-template-areas: none;
  }

  #why-passk,
  #convergence,
  #benchmarks,
  #decision-rule,
  #leaderboard,
  #categorical,
  #code-binary,
  #code-intervals,
  #code-api,
  .poster-grid > * {
    grid-area: auto;
  }

  .workflow {
    grid-template-columns: 1fr;
  }

  .card__header {
    padding-left: 10px;
    padding-right: 10px;
  }

  .card__body {
    padding-left: 10px;
    padding-right: 10px;
  }

  .theme-pill__text,
  .figure figcaption,
  .cta-card__url,
  .cta-card__desc,
  .code-card code,
  .install-card code,
  .card__list,
  .card__list--compact,
  .note,
  .workflow__label,
  .supporting-copy,
  .acknowledgement {
    font-size: 0.78rem;
  }

  .install-card {
    grid-template-columns: 1fr;
  }

  .install-card__brand {
    justify-items: center;
  }

  .install-card__command-header {
    align-items: start;
    flex-wrap: wrap;
  }
}
