.research-page .hero {
    padding-block: var(--space-6);
}

.research-page .content-container > h2,
.research-page .content-container > h3 {
    margin-top: var(--space-7);
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-3);
    color: var(--primary-color);
    border-bottom: 2px solid var(--secondary-color);
    font-size: clamp(1.3rem, 3vw, 1.65rem);
}

.reference-panel {
    margin-bottom: var(--space-6);
    padding: var(--space-5);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-resting);
}

.ref-link {
    color: var(--secondary-color);
    font-weight: 700;
    text-decoration-line: underline;
    text-decoration-style: solid;
}

.scholar-link {
    color: var(--color-link);
    font-weight: 700;
    text-decoration-line: underline;
    text-decoration-style: dashed;
    text-underline-offset: 0.2em;
}

.scholar-link:hover,
.scholar-link:focus-visible {
    color: var(--color-link-hover);
    text-decoration-style: solid;
}

/* Theme I logic-symbol selector */
.widget-container {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-5);
    margin: var(--space-5) 0;
    padding: var(--space-5);
    background: var(--color-surface-muted);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.symbol-list {
    display: flex;
    flex: 1 1 13rem;
    flex-direction: column;
    gap: var(--space-3);
    min-width: 0;
}

.symbol-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 2.75rem;
    padding: var(--space-3);
    color: var(--color-ink);
    background: var(--color-surface);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-sm);
    cursor: pointer;
    font-family: var(--font-ui);
    font-size: 1.05rem;
    line-height: 1.4;
    text-align: start;
}

.symbol-btn:hover,
.symbol-btn:focus-visible {
    border-color: var(--color-link);
}

.symbol-btn.selected {
    color: #ffffff;
    background: var(--color-link);
    border-color: var(--color-link);
    box-shadow: inset 4px 0 0 #ffffff;
    font-weight: 700;
}

.symbol-btn.selected::after {
    margin-inline-start: var(--space-2);
    content: "✓";
    font-size: 1rem;
}

.symbol-detail {
    flex: 2 1 19rem;
    min-width: 0;
    padding: var(--space-5);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--color-link);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-resting);
}

.detail-title {
    margin-bottom: var(--space-3);
    padding-bottom: var(--space-2);
    color: var(--primary-color);
    border-bottom: 1px solid var(--color-border);
    font-size: 1.2rem;
}

/* Theme II proof and topology controls */
.stepper-btn {
    min-height: 2.75rem;
    padding: var(--space-2) var(--space-4);
    color: #ffffff;
    border: 2px solid transparent;
    border-radius: var(--radius-sm);
    cursor: pointer;
    font-family: var(--font-ui);
    font-weight: 700;
    line-height: 1.35;
}

.stepper-btn:hover {
    border-color: #ffffff;
    box-shadow: 0 0 0 2px var(--primary-color);
}

.topo-container {
    margin-top: var(--space-4);
    padding: var(--space-5);
    text-align: center;
    background: #edf1f4;
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--primary-color);
    border-radius: var(--radius-md);
}

.topo-container h2,
.topo-container h4 {
    margin-bottom: var(--space-2);
    color: var(--primary-color);
}

.topo-shape {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 9.375rem;
    height: 9.375rem;
    margin: 0 auto;
    background: #405d76;
    border: 4px solid var(--primary-color);
    border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
    transition: transform 160ms ease, background-color 160ms ease,
        border-color 160ms ease;
}

.topo-interior {
    background: #526f88;
    border: 4px dashed #ffffff;
    transform: scale(0.75);
}

.topo-closure {
    background: var(--primary-color);
    border: 8px double #ffffff;
    transform: scale(1.2);
}

.topo-controls {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-3);
    margin-top: var(--space-5);
}

.topo-controls [data-topo-action="interior"] {
    background: var(--color-link) !important;
}

.topo-controls [data-topo-action="closure"] {
    background: var(--primary-color) !important;
}

.topo-controls [data-topo-action="reset"] {
    background: var(--color-muted) !important;
}

#topo-log {
    max-width: var(--measure-reading);
    margin-inline: auto;
    color: var(--primary-color) !important;
}

#math-fallback {
    margin-top: var(--space-4);
    color: #7a2e0c;
    font-weight: 650;
}

.research-2-page [style*="color:#7f8c8d"] {
    color: var(--color-muted) !important;
}

.research-2-page [style*="color:#c0392b"],
.research-2-page [style*="color: #c0392b"] {
    color: var(--secondary-color) !important;
}

/* Theme III source-and-claim presentation */
.research-authority,
.chronology-strip {
    margin-bottom: var(--space-5);
    padding: var(--space-5);
    background: var(--color-surface-muted);
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--primary-color);
    border-radius: var(--radius-md);
}

.research-authority h2,
.chronology-strip h2 {
    margin-bottom: var(--space-3);
    color: var(--primary-color);
    font-size: clamp(1.2rem, 3vw, 1.45rem);
}

.epistemic-note,
.notation-caution,
.claim-kind {
    padding: var(--space-3) var(--space-4);
    color: var(--color-ink);
    background: #f3efe5;
    border-left: 3px solid var(--secondary-color);
    border-radius: var(--radius-sm);
}

.claim-kind {
    color: var(--color-muted);
    font-size: 0.95rem;
    font-weight: 650;
}

.source-chronology {
    margin: var(--space-3) 0 0;
}

.source-chronology li,
.result-list li,
.source-list li {
    margin-bottom: var(--space-3);
}

.table-scroll {
    max-width: 100%;
    margin: var(--space-5) 0;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    scrollbar-width: thin;
}

.research-table {
    width: 100%;
    min-width: 42rem;
    border-collapse: collapse;
    background: var(--color-surface);
}

.research-table caption {
    padding: var(--space-3) var(--space-4);
    color: var(--primary-color);
    background: var(--color-surface-muted);
    border-bottom: 1px solid var(--color-border);
    font-family: var(--font-reading);
    font-weight: 700;
    text-align: start;
}

.research-table th,
.research-table td {
    padding: var(--space-3) var(--space-4);
    border-right: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    text-align: start;
    vertical-align: top;
}

.research-table th {
    color: var(--primary-color);
    background: var(--color-surface-muted);
}

.research-table tr:last-child > * {
    border-bottom: 0;
}

.research-table tr > *:last-child {
    border-right: 0;
}

.notation-table {
    min-width: 48rem;
}

.theorem-table {
    min-width: 58rem;
}

.theorem-table td:nth-child(2) {
    white-space: nowrap;
}

.tang-formula-block {
    margin: var(--space-4) 0;
    padding: var(--space-4);
    border-radius: var(--radius-sm);
}

.boundary-box {
    margin: var(--space-5) 0;
    padding: var(--space-4) var(--space-5);
    background: #fff8ef;
    border: 1px solid #c9a77b;
    border-left: 4px solid var(--secondary-color);
    border-radius: var(--radius-sm);
}

.boundary-box h3 {
    margin-bottom: var(--space-3);
    font-size: 1.1rem;
}

.research-3-page .reference-panel h3,
.research-4-page .reference-panel h3 {
    margin: var(--space-5) 0 var(--space-3);
    font-size: 1.15rem;
}

.research-3-page .reference-panel h3:first-child,
.research-4-page .reference-panel h3:first-child {
    margin-top: 0;
}

.research-3-page .source-list,
.research-4-page .source-list {
    padding-inline-start: 1.75rem;
}

.research-4-page .verification-note,
.research-4-page .translation-caution {
    padding: var(--space-4);
    background: #fff8ef;
    border: 1px solid #c9a77b;
    border-left: 4px solid var(--secondary-color);
    border-radius: var(--radius-sm);
}

.book-architecture {
    margin-block: var(--space-6);
    padding: var(--space-5);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

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

.transcription-panel {
    margin-block: var(--space-5);
    padding: var(--space-5);
    background: #f7fafc;
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--primary-color);
    border-radius: var(--radius-sm);
}

.transcription-panel blockquote {
    margin: var(--space-4) 0;
    padding-inline-start: var(--space-4);
    color: var(--primary-color);
    border-left: 2px solid var(--color-border);
    font-family: var(--font-reading);
    font-size: clamp(1.1rem, 2.5vw, 1.35rem);
}

.passage-label,
.site-translation {
    margin: 0;
    color: var(--color-muted);
    font-size: 0.95rem;
}

.jin-forms-table {
    min-width: 44rem;
}

.jin-forms-table td:nth-child(2) {
    font-family: var(--font-reading);
}

.research-2-page [style*="color:#27ae60"],
.research-2-page [style*="color:#1e8449"],
.research-2-page [style*="color:#145a32"] {
    color: #276749 !important;
}

.research-2-page [style*="color: #2980b9"],
.research-2-page [style*="color:#2980b9"] {
    color: var(--color-link) !important;
}

.research-2-page #proof-step-5 {
    border-left-color: #276749 !important;
}

.research-2-page #proof-step-5 .proof-step-title-final {
    line-height: 1.5;
}

.proof-reconstruction-title {
    color: #276749 !important;
    font-size: clamp(1.2rem, 3vw, 1.5rem);
}

.proof-final-formula {
    padding-bottom: var(--space-1);
}

/* Reference target highlighting shared by both research pages */
.pub-list li {
    padding-block: var(--space-2);
    border-radius: var(--radius-sm);
    transition: background-color 180ms ease;
}

.pub-list li:target {
    padding-inline-start: var(--space-3);
    background: #fff1c9;
    border-left: 4px solid var(--secondary-color);
}

.research-page .pub-list a {
    overflow-wrap: anywhere;
}

@media (max-width: 40rem) {
    .widget-container,
    .symbol-detail,
    .topo-container,
    .reference-panel {
        padding: var(--space-4);
    }

    .architecture-list {
        grid-template-columns: 1fr;
    }

    .symbol-list,
    .symbol-detail {
        flex-basis: 100%;
    }

    .topo-controls .stepper-btn {
        flex: 1 1 9rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .topo-shape,
    .pub-list li {
        transition: none;
    }
}
