/* Public software, methods, and skills share the site's semantic design roles. */
.catalog-hero { background: var(--night); color: var(--white); }
.catalog-section { padding-block: var(--space-section); }
.catalog-intro { display: grid; grid-template-columns: 1.1fr 1fr; gap: var(--space-column); align-items: start; margin-bottom: var(--space-flow); }
.catalog-intro h2 { font-size: var(--type-section); line-height: var(--line-display); letter-spacing: -.04em; }
.catalog-intro p { max-width: var(--content-measure); color: var(--muted); font-size: var(--type-body); }
.catalog-subintro { margin-top: var(--space-section); }
.system-study { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-column); padding-block: var(--space-section); border-top: 1px solid var(--line); scroll-margin-top: calc(var(--header-height) + 24px); }
.study-copy h2 { font-size: var(--type-section); line-height: var(--line-display); letter-spacing: -.04em; margin-bottom: var(--space-flow); }
.study-copy p { color: var(--muted); max-width: var(--content-measure); margin-top: 16px; }
.study-copy .study-description { color: var(--ink); font-size: var(--type-intro); line-height: 1.4; }
.study-method { min-width: 0; }
.catalog-list { border-top: 1px solid var(--line); }
.catalog-row { display: grid; grid-template-columns: minmax(130px, 22%) minmax(0, 1fr); gap: var(--space-column); align-items: start; padding-block: var(--space-flow); border-bottom: 1px solid var(--line); scroll-margin-top: calc(var(--header-height) + 24px); }
.catalog-label { color: var(--muted); font-size: var(--type-small); padding-top: 6px; }
.catalog-row h2, .catalog-row h3 { font-size: var(--type-card); line-height: 1.2; letter-spacing: -.025em; margin-bottom: 12px; }
.catalog-row p { color: var(--muted); max-width: var(--content-measure); font-size: var(--type-body); }
.catalog-row .catalog-credit { margin-top: 14px; font-size: var(--type-small); }
.catalog-row .page-actions { margin-top: 14px; }
.study-evidence { border-top: 1px solid var(--line); margin-top: var(--space-flow); padding-top: 18px; color: var(--muted); font-size: var(--type-small); }
.study-evidence summary { cursor: pointer; color: var(--ink); min-height: 40px; padding-block: 6px; }
.study-evidence p { margin-block: 12px; font-size: var(--type-small); }
.study-evidence p a { text-decoration: underline; text-underline-offset: 3px; }
.study-evidence .text-link { font-size: var(--type-small); }
.catalog-outro { padding-bottom: var(--space-section); }
.catalog-outro .container { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-column); }
.catalog-callout { border-top: 1px solid var(--line); padding-top: var(--space-flow); }
.catalog-callout h2 { font-size: var(--type-card); margin-bottom: 14px; line-height: 1.2; }
.catalog-callout p { color: var(--muted); margin-bottom: 22px; }
.catalog-search { display: grid; grid-template-columns: minmax(0, 480px) 1fr; align-items: end; gap: 12px 24px; margin-bottom: var(--space-flow); }
.catalog-search label { grid-column: 1 / -1; font-size: var(--type-small); }
.catalog-search input { width: 100%; min-width: 0; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-small); padding: 14px 18px; min-height: var(--control-height); }
.catalog-search p { color: var(--muted); font-size: var(--type-small); padding-bottom: 12px; }
.catalog-empty { padding-block: var(--space-flow); color: var(--muted); }
.catalog-fine { font-size: var(--type-small); color: var(--muted); max-width: var(--content-measure); margin-block: var(--space-flow); }
.catalog-row[hidden] { display: none; }
@media (max-width: 760px) { .catalog-intro, .system-study, .catalog-outro .container { grid-template-columns: 1fr; gap: var(--space-flow); } .catalog-row { grid-template-columns: 1fr; gap: 12px; } .catalog-search { grid-template-columns: 1fr; } .catalog-search p { padding: 0; } }

.catalog-industries .catalog-row { grid-template-columns: 140px minmax(130px, 20%) minmax(0, 1fr) 24px; align-items: center; gap: var(--space-flow); padding-inline: 16px; border-radius: var(--radius-small); transition: background-color var(--image-duration) var(--ease); }
.catalog-art { width: 140px; height: 140px; border-radius: var(--radius-small); display: grid; place-items: center; }
.catalog-art img { width: 100%; height: 100%; object-fit: contain; }
.catalog-industries .catalog-row:is(:hover, :focus-visible) { background: var(--citrus); }
.catalog-industries .catalog-label { padding: 0; color: var(--ink); }
@media(max-width:760px) { .catalog-industries .catalog-row { grid-template-columns: 80px minmax(0, 1fr) 24px; gap: 16px; padding: 20px 12px; } .catalog-art { width: 80px; height: 80px; } .catalog-industries .catalog-row > div { grid-column: 1 / -1; } .catalog-industries .catalog-action { grid-column: 3; grid-row: 1; } }
