/* Research topics: list (/topics) and topic pages (/topics/<id>), D56.
   Builds on styles.css tokens. Reading sizes: page titles 40px at most on
   desktop and 30px on phones, list titles 16-17px, secondary text 13px. */

.tp-main{padding:56px 0 96px;position:relative}
.tp-hero{max-width:1080px}
.tp-kicker{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}
.tp-title{margin-top:14px;font-size:clamp(28px,2.8vw,40px);line-height:1.15;font-weight:600;letter-spacing:-.015em;max-width:24ch}
.tp-lede{margin-top:16px;max-width:46em;font-size:16px;line-height:1.7;color:var(--ink-muted)}
.tp-figures{display:flex;flex-wrap:wrap;gap:12px 48px;margin-top:32px}
.tp-figures div{display:flex;align-items:baseline;gap:10px}
.tp-figures dd{order:-1;font-size:28px;line-height:1;font-weight:400;color:var(--ink);font-variant-numeric:tabular-nums}
.tp-figures dt{font-size:13px;color:var(--ink-muted)}
.tp-figures[data-state="loading"] dd,.tp-figures[data-state="unavailable"] dd{color:var(--ink-faint)}
.tp-pin{display:inline-grid;grid-template-columns:auto auto;align-items:center;gap:2px 20px;margin-top:32px;padding:12px 18px 13px;border:1px solid var(--rule-strong);border-left:2px solid var(--amber);background:var(--bg-raised);text-decoration:none;color:var(--ink);max-width:100%}
.tp-pin:hover{border-color:var(--ink-muted);border-left-color:var(--amber);color:var(--ink)}
.tp-pin-label{grid-column:1;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--amber)}
.tp-pin-title{grid-column:1;font-size:15px;font-weight:600;line-height:1.4}
.tp-pin-go{grid-column:2;grid-row:1 / span 2;color:var(--ink-muted);transition:transform .25s ease}
.tp-pin:hover .tp-pin-go{transform:translateX(4px);color:var(--amber)}

/* list */
.tp-section{margin-top:56px}
.tp-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;padding-bottom:12px;border-bottom:1px solid var(--ink-muted)}
.tp-bar-title{margin-right:auto;font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.tp-bar-title .mono{color:var(--ink-muted);font-weight:400;margin-left:6px}
.tp-filter{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-muted)}
.tp-filter select{appearance:none;-webkit-appearance:none;max-width:min(40ch,64vw);min-height:36px;padding:4px 12px;border:1px solid var(--rule-strong);border-radius:0;background:var(--bg);color:var(--ink);font-size:13px;text-overflow:ellipsis}
.tp-filter select:disabled{color:var(--ink-faint)}
.tp-bar .text-link{min-height:36px;font-size:13px}
.tp-columns,.tp-link{display:grid;grid-template-columns:minmax(0,1fr) repeat(5,5.6rem) 3rem 6.6rem 7.4rem;gap:0 10px;align-items:baseline}
.tp-columns{padding:10px 0 8px;border-bottom:1px solid var(--rule-strong);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint)}
.tp-columns span:not(:first-child){text-align:right}
.tp-columns span:nth-child(8),.tp-columns span:nth-child(9){text-align:left;padding-left:12px}
.tp-state{margin-top:20px;font-size:14px;color:var(--ink-muted)}
.tp-row{border-bottom:1px solid var(--rule)}
.tp-link{padding:16px 0 17px;text-decoration:none;color:var(--ink);transition:background-color .2s ease}
.tp-link:hover{background:var(--bg-raised);color:var(--ink)}
.tp-link:hover .tp-name{text-decoration:underline;text-decoration-color:var(--amber);text-underline-offset:4px}
.tp-topic{display:grid;gap:4px;min-width:0;padding-right:8px}
.tp-tag{font-size:12.5px;line-height:1.4;color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tp-name{font-size:16.5px;line-height:1.45;font-weight:600;overflow-wrap:anywhere}
.tp-name[data-state="loading"],.tp-name[data-state="missing"]{color:var(--ink-faint);font-weight:400}
.tp-n,.tp-agents{font-family:var(--mono);font-size:14px;text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}
.tp-n[data-zero="true"]{color:var(--ink-faint)}
.tp-n[data-group="CHALLENGE"]:not([data-zero="true"]){color:var(--amber)}
.tp-conclusion,.tp-when{font-size:13px;color:var(--ink-muted);padding-left:12px}
.tp-compact{display:none}
.tp-pages{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:24px;font-size:13px}
.tp-numbers{display:flex;flex-wrap:wrap;gap:6px}
.tp-pages a{display:inline-grid;place-items:center;min-width:44px;min-height:44px;padding:0 12px;border:1px solid var(--rule-strong);text-decoration:none;color:var(--ink-muted)}
.tp-pages a:hover{border-color:var(--ink-muted);color:var(--ink)}
.tp-pages a[aria-current="page"]{border-color:var(--amber);color:var(--amber)}
.tp-gap{display:inline-grid;place-items:center;min-width:28px;color:var(--ink-faint)}
.tp-range{margin-top:12px;font-size:13px;color:var(--ink-faint)}

/* folds: early records, about, verification */
.tp-early{margin-top:64px}
.tp-about{margin-top:20px;max-width:1080px}
.tp-fold{border-top:1px solid var(--rule)}
.tp-fold>summary{display:flex;align-items:center;gap:10px;min-height:48px;font-size:14px;color:var(--ink-muted);cursor:pointer;list-style:none}
.tp-fold>summary::-webkit-details-marker{display:none}
.tp-fold>summary::before{content:"+";font-family:var(--mono);width:1em;color:var(--ink-faint)}
.tp-fold[open]>summary::before{content:"−"}
.tp-fold>summary:hover{color:var(--ink)}
.tp-fold-body{padding:4px 0 24px 1.6em}
.tp-fold-note{max-width:52em;font-size:14px;line-height:1.7;color:var(--ink-muted)}
.tp-early-list{display:grid;gap:0;margin-top:16px;border-top:1px solid var(--rule)}
.tp-early-item{padding:12px 0;border-bottom:1px solid var(--rule);display:grid;gap:3px;max-width:60em}
.tp-early-q{font-size:13px;color:var(--ink-faint)}
.tp-early-line{font-size:14.5px;line-height:1.6;color:var(--ink-muted)}
.tp-early-meta{font-size:12px;color:var(--ink-faint)}
.tp-rules{border-top:1px solid var(--rule);max-width:880px}
.tp-rules div{display:grid;grid-template-columns:7em 1fr;gap:16px;padding:10px 0;border-bottom:1px solid var(--rule);font-size:14px}
.tp-rules dt{color:var(--ink-faint);font-size:13px}.tp-rules dd{color:var(--ink-muted);overflow-wrap:anywhere}
.tp-rules dd.mono{font-size:12px}
.tp-read{margin-top:12px;font-size:12px;line-height:1.6;color:var(--ink-faint);overflow-wrap:anywhere}
.tp-about .risk-note{margin-top:28px}

/* topic page */
.td-main{padding-top:28px}
.td.result{padding:0;border:0}
.td-crumbs{font-size:13px}
.td-crumbs a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink-muted)}
.td-head{margin-top:20px;max-width:1080px;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--g5)}
.td-head>*{grid-column:1}
.td-building{grid-column:2;grid-row:1 / span 4;align-self:end;width:min(500px,38vw);margin:0;padding:var(--g2);background:var(--plate);border:1px solid var(--hair)}
.td-building[data-kind="landmark"],.td-building[data-kind="star"]{width:min(240px,22vw)}.td-building[data-kind="landmark"] svg{max-height:220px;margin:0 auto}
.td-building-art svg{display:block;width:100%;height:auto}
.td-building figcaption{margin-top:var(--g1);font-size:var(--fs-xs);line-height:1.5;color:var(--ink-faint)}
.td-cell{margin-left:10px;font-size:12px;color:var(--amber);opacity:.85}
.td-label{font-size:13px;color:var(--amber);letter-spacing:.02em}
.td-title{margin-top:10px;font-size:clamp(26px,2.8vw,40px);line-height:1.2;font-weight:600;letter-spacing:-.015em;max-width:30ch;overflow-wrap:anywhere}
.td-title[data-state="missing"]{color:var(--ink-faint);font-weight:400}
.td-meta{display:grid;grid-template-columns:repeat(4,minmax(0,auto));justify-content:start;gap:12px 48px;margin-top:24px}
.td-meta dt{font-size:12px;color:var(--ink-faint)}
.td-meta dd{margin-top:2px;font-size:14px;color:var(--ink)}
.td-section{margin-top:56px;padding-top:16px;border-top:1px solid var(--rule-strong);max-width:1080px}
.td-h{font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.td-sub{margin:20px 0 6px;font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint)}
.td-prose{font-size:15.5px;line-height:1.75;color:var(--ink);max-width:44em;overflow-wrap:anywhere}
.td-prose-muted{color:var(--ink-muted)}
.td-q-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px}
.td-q-main>div:first-child .td-sub{margin-top:14px}
.td-q-facts .td-sub{margin-top:14px}
.td-facts-fold>summary{display:flex;align-items:baseline;gap:8px;cursor:pointer;list-style:none}
.td-facts-fold>summary::-webkit-details-marker{display:none}
.td-facts-fold>summary .mono{font-size:12px;color:var(--ink-faint)}
.td-facts-fold>summary::after{content:"+";font-family:var(--mono);font-size:12px;color:var(--ink-faint)}
.td-facts-fold[open]>summary::after{content:"−"}
.td-q-facts dl div{display:grid;grid-template-columns:2.2rem minmax(0,1fr);gap:8px;padding:8px 0;border-top:1px solid var(--rule)}
.td-q-facts dt{font-size:12px;color:var(--amber)}
.td-q-facts dd{font-size:13.5px;line-height:1.65;color:var(--ink-muted);overflow-wrap:anywhere}
.td-c-state{margin-top:14px;font-size:20px;font-weight:600;color:var(--ink)}
.td-c-note{margin-top:6px;max-width:44em;font-size:14px;line-height:1.7;color:var(--ink-muted)}
.td-points{display:grid;gap:0;margin-top:18px;border-top:1px solid var(--rule)}
.td-point{padding:14px 0;border-bottom:1px solid var(--rule);max-width:56em}
.td-point-text{font-size:16px;line-height:1.65;color:var(--ink);overflow-wrap:anywhere}
.td-point-text.is-missing,.td-point.is-empty{color:var(--ink-faint);font-size:14px}
.td-point-by{margin-top:4px;font-size:13px;color:var(--ink-faint)}
.td-point-by a{color:var(--ink-muted)}
.td-d-note{margin-top:6px;font-size:14px;color:var(--ink-muted)}
.td-groups-nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.td-chip{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 12px;border:1px solid var(--rule-strong);font-size:13px;color:var(--ink-muted);text-decoration:none}
a.td-chip:hover{border-color:var(--ink-muted);color:var(--ink)}
.td-chip-n{color:var(--ink)}
.is-zero .td-chip{border-style:dashed;color:var(--ink-faint)}.is-zero .td-chip-n{color:var(--ink-faint)}
.td-group{margin-top:32px;scroll-margin-top:16px}
.td-group-title{display:flex;align-items:baseline;gap:10px;font-size:16px;font-weight:600}
.td-group-n{font-size:13px;font-weight:400;color:var(--ink-faint)}
.td-group[id="g-CHALLENGE"] .td-group-title span:first-child{color:var(--amber)}
.td-group-note{margin-top:2px;font-size:13px;color:var(--ink-faint)}
.td-cards{margin-top:10px;border-top:1px solid var(--rule)}
.td-card{border-bottom:1px solid var(--rule);scroll-margin-top:16px}
.td-card-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 24px;padding:14px 0 15px;cursor:pointer;list-style:none}
.td-card-head::-webkit-details-marker{display:none}
.td-card-head:hover .td-card-point{text-decoration:underline;text-decoration-color:var(--rule-strong);text-underline-offset:4px}
.td-card-point{grid-column:1;font-size:16px;line-height:1.6;color:var(--ink);overflow-wrap:anywhere;max-width:52em}
.td-card-point.is-missing{color:var(--ink-faint);font-size:14px}
.td-card-meta{grid-column:1;display:flex;flex-wrap:wrap;gap:2px 16px;font-size:13px;color:var(--ink-faint)}
.td-card-to{color:var(--ink-faint)}
.td-card-flag{color:var(--amber)}
.td-card-more{grid-column:2;grid-row:1 / span 2;align-self:center;font-size:13px;color:var(--ink-muted);white-space:nowrap}
.td-card-more::after{content:" +";font-family:var(--mono)}
.td-card-fold[open] .td-card-more::after{content:" −"}
.td-card.is-focus>.td-card-fold>.td-card-head .td-card-point,.td-card:target .td-card-point{color:var(--amber)}
.td-card-body{padding:0 0 22px;max-width:52em}
.td-card-body>.td-sub:first-child{margin-top:4px}
.td-findings{counter-reset:finding;display:grid;gap:14px}
.td-finding{counter-increment:finding;position:relative;padding-left:2.2rem}
.td-finding::before{content:counter(finding,decimal-leading-zero);position:absolute;left:0;top:.25em;font-family:var(--mono);font-size:12px;color:var(--ink-faint)}
.td-finding-claim{font-size:15px;line-height:1.75;color:var(--ink);overflow-wrap:anywhere}
.td-finding-basis{margin-top:2px;font-size:12.5px;color:var(--ink-faint)}
.td-finding-check{margin-top:6px;font-size:13.5px;line-height:1.65;color:var(--ink-muted);overflow-wrap:anywhere}
.td-finding-check-label{display:block;font-size:12px;color:var(--ink-faint)}
.td-limits{display:grid;gap:6px}
.td-limits li{position:relative;padding-left:2.2rem;font-size:14px;line-height:1.7;color:var(--ink-muted);overflow-wrap:anywhere}
.td-limits li::before{content:"—";position:absolute;left:0;color:var(--ink-faint)}
.td-integrity{margin-top:18px;font-size:12.5px;color:var(--ink-faint)}
.td-integrity.is-match{color:var(--ink-muted)}
.td-integrity.is-failed{color:var(--amber)}
.td-ref{display:inline;padding:0 3px;border:1px solid var(--rule-strong);font-family:var(--mono);font-size:.82em;color:var(--ink-muted);text-decoration:none;white-space:nowrap}
a.td-ref:hover{border-color:var(--amber);color:var(--ink)}
.td-section-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 24px}
.td-t-note{font-size:13px;color:var(--ink-faint)}
.td-trail-host{margin-top:14px;min-height:170px;border:1px solid var(--rule);background:var(--bg-sunk)}
.td-trail-svg{display:block;width:100%;height:auto;overflow:visible}
.td-edge{fill:none;stroke:var(--rule-strong);stroke-width:1;stroke-dasharray:1;animation:td-draw .9s cubic-bezier(.2,.6,.2,1) both}
.td-edge.is-lineage{stroke:var(--ink);stroke-width:1.4}
.td-node rect,.td-node circle{fill:var(--bg-sunk);stroke:var(--ink-muted);stroke-width:1.2}
.td-node.is-question rect{stroke:var(--amber)}
.td-node.is-challenge rect{stroke:var(--amber)}
.td-node.is-result circle,.td-node.is-results circle{fill:var(--ink-muted);stroke:none}
.td-node.is-current circle{fill:var(--amber)}
.td-node.is-lineage rect{stroke:var(--ink)}
.td-node-label{font-family:var(--sans);font-size:12.5px;fill:var(--ink-muted)}
.td-node-sub{font-family:var(--mono);font-size:10.5px;fill:var(--ink-faint)}
.td-trail-svg a:hover .td-node-label{fill:var(--ink);text-decoration:underline}
.td-trail-summary{margin-top:8px;font-size:12.5px;color:var(--ink-faint)}
.td-verify{margin-top:56px;max-width:1080px}
.td-v-line{max-width:52em;font-size:13.5px;line-height:1.7;color:var(--ink-muted)}
.td-v-line+.td-v-line{margin-top:10px}
.td-v-records{margin-top:14px;border-top:1px solid var(--rule)}
.td-v-records div{display:grid;grid-template-columns:12rem minmax(0,1fr);gap:12px;padding:8px 0;border-bottom:1px solid var(--rule);font-size:11.5px}
.td-v-records dt{color:var(--ink-muted)}
.td-v-records dd{white-space:pre-line;overflow-wrap:anywhere;color:var(--ink-faint)}
.td-risk{margin-top:48px;max-width:1080px}

/* search (D54) */
.tp-search{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:14px 0;border-bottom:1px solid var(--rule)}
.tp-q{flex:1 1 280px;min-width:0;display:flex}
.tp-q input{width:100%;min-height:40px;padding:6px 12px;border:1px solid var(--rule-strong);border-radius:0;background:var(--bg-sunk);color:var(--ink);font-size:14px}
.tp-q input::placeholder{color:var(--ink-faint)}
.tp-q input:focus-visible{border-color:var(--ink-muted)}
.tp-search .tp-filter select{max-width:16ch}
.tp-search .text-link{min-height:36px;font-size:13px}
.tp-check-box{margin-top:14px;padding:14px 16px;border:1px solid var(--rule-strong);border-left:2px solid var(--amber);font-size:14px;color:var(--ink-muted)}
.tp-check-box div{margin-top:10px;min-height:65px}
.tp-hits{display:grid;gap:4px;margin-top:8px;padding-left:12px;border-left:1px solid var(--rule-strong)}
.tp-hits[hidden]{display:none}
.tp-hit{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13.5px;line-height:1.5;color:var(--ink-muted);overflow-wrap:anywhere}
.tp-hit-label{margin-right:8px;font-size:12px;color:var(--amber)}
.tp-hit-more{font-size:12px;color:var(--ink-faint)}

/* heat (D55) */
.tp-heat{margin-top:56px}
.tp-heat-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 24px;padding-bottom:12px;border-bottom:1px solid var(--ink-muted)}
.tp-heat-note{flex:1 1 30em;font-size:13px;color:var(--ink-faint)}
.tp-heat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;margin-top:18px}
.tp-board-title{font-size:15px;font-weight:600}
.tp-board-note{margin-top:2px;font-size:12.5px;color:var(--ink-faint)}
.tp-board-list{margin-top:10px;border-top:1px solid var(--rule);counter-reset:board}
.tp-board-item{counter-increment:board;position:relative;padding:9px 0 10px 2rem;border-bottom:1px solid var(--rule)}
.tp-board-item::before{content:counter(board);position:absolute;left:0;top:10px;font-family:var(--mono);font-size:12px;color:var(--ink-faint)}
.tp-board-link{display:flex;justify-content:space-between;gap:16px;text-decoration:none;color:var(--ink)}
.tp-board-link:hover .tp-board-name{text-decoration:underline;text-decoration-color:var(--amber);text-underline-offset:4px}
.tp-board-name{font-size:14.5px;line-height:1.45;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tp-board-value{flex:none;font-size:14px;color:var(--amber)}
.tp-board-sub{display:block;margin-top:2px;font-size:12px;color:var(--ink-faint)}
.tp-board-state{margin-top:10px;font-size:13px;color:var(--ink-faint)}

/* likes on the topic page */
.td-like{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:20px}
.td-like[hidden]{display:none}
.td-like-button{min-height:36px;padding:0 14px;border:1px solid var(--rule-strong);font-size:13px;color:var(--ink)}
.td-like-button:hover:not(:disabled){border-color:var(--amber)}
.td-like-button:disabled{color:var(--ink-faint)}
.td-like-count,.td-like-state{font-size:13px;color:var(--ink-muted)}
.td-like-widget:empty{display:none}
.td-like-widget{flex-basis:100%}
.td-like-note{flex-basis:100%;font-size:12px;color:var(--ink-faint)}
.td-card-body .td-like{margin-top:14px}

@keyframes td-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}

@media (max-width:1180px){
  .tp-columns{display:none}
  .tp-link{display:block;padding:14px 0 15px}
  .tp-n,.tp-agents,.tp-conclusion,.tp-when{display:none}
  .tp-compact{display:block;margin-top:6px;font-size:13px;line-height:1.55;color:var(--ink-muted)}
}
@media (max-width:900px){
  .td-q-grid{grid-template-columns:1fr;gap:8px}
  .td-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px}
}
@media (max-width:760px){
  .td-head{grid-template-columns:minmax(0,1fr)}.td-building{grid-column:1;grid-row:auto;width:min(300px,100%);margin-top:var(--g3)}
  .tp-main{padding:32px 0 72px}
  .tp-title{font-size:clamp(24px,7vw,30px)}
  .tp-lede{font-size:15px}
  .tp-figures{gap:10px 28px;margin-top:24px}
  .tp-figures dd{font-size:24px}
  .tp-pin{display:grid;width:100%;margin-top:24px}
  .tp-section{margin-top:40px}
  .tp-bar-title{width:100%}
  .tp-filter{width:100%}.tp-filter span{white-space:nowrap}.tp-filter select{flex:1;min-width:0;width:100%;max-width:none}
  .tp-main .risk-note{grid-template-columns:1fr}.tp-main .risk-note a{grid-column:1}
  .tp-name{font-size:16px}
  .tp-pages .tp-step{flex:1}
  .tp-fold-body{padding-left:0}
  .tp-rules div{grid-template-columns:1fr;gap:2px}
  .tp-heat-grid{grid-template-columns:1fr;gap:28px}
  .tp-search{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
  .tp-search .tp-q{grid-column:1 / -1}
  .tp-search .tp-filter{width:auto;display:grid;gap:4px;font-size:12px}.tp-search .tp-filter select{max-width:none;width:100%}
  .tp-search .text-link{grid-column:1 / -1;justify-self:start}
  .td-title{font-size:clamp(22px,6.4vw,30px)}
  .td-section{margin-top:40px}
  .td-card-head{grid-template-columns:1fr}
  .td-card-more{grid-column:1;grid-row:auto;justify-self:start}
  .td-card-point,.td-point-text{font-size:15.5px}
  .td-v-records div{grid-template-columns:1fr;gap:2px}
}
@media (prefers-reduced-motion:reduce){
  .td-edge{animation:none}
  .tp-link,.tp-pin-go{transition:none}
}
@media (max-width:1080px){.td-head{grid-template-columns:minmax(0,1fr)}.td-building,.td-building[data-kind="landmark"],.td-building[data-kind="star"]{grid-column:1;grid-row:auto;width:min(520px,100%);margin-top:var(--g3)}}
