/* Research Constellation v6 --------------------------------------------- */
.research-constellation {
    --rc-story: #caa669;
    --rc-xr: #3aa8db;
    --rc-community: #79a08a;
    --rc-ai: #b66e63;
    --rc-ink: rgba(255,255,255,.96);
    --rc-muted: rgba(255,255,255,.70);
    --rc-line: rgba(255,255,255,.13);
    --rc-panel: rgba(255,255,255,.055);
    margin: 28px 0 48px;
}
.research-constellation * { box-sizing: border-box; }
.rc-intro { max-width: 980px; margin: 0 0 24px; font-size: 17px; line-height: 1.65; color: var(--rc-muted); }
.rc-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1px; border:1px solid var(--rc-line); background:var(--rc-line); margin:22px 0 26px; }
.rc-metric { background:#31485e; padding:14px 16px; }
.rc-metric strong { display:block; font-size:20px; line-height:1.1; color:var(--rc-ink); }
.rc-metric span { display:block; margin-top:5px; font-size:11px; line-height:1.3; letter-spacing:.07em; text-transform:uppercase; color:var(--rc-muted); }

.rc-toolbar { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:18px; }
.rc-filter { appearance:none; border:1px solid rgba(255,255,255,.22); background:transparent; color:var(--rc-ink); border-radius:99px; padding:8px 13px; font-size:12px; line-height:1.2; cursor:pointer; transition:.18s ease; }
.rc-filter:hover, .rc-filter:focus { border-color:rgba(255,255,255,.55); background:rgba(255,255,255,.07); }
.rc-filter[data-strand="story"] { border-color:rgba(202,166,105,.7); }
.rc-filter[data-strand="xr"] { border-color:rgba(58,168,219,.7); }
.rc-filter[data-strand="community"] { border-color:rgba(121,160,138,.7); }
.rc-filter[data-strand="ai"] { border-color:rgba(182,110,99,.7); }
.rc-filter.is-active { background:#fff; color:#31485e; border-color:#fff; }
.rc-filter[data-strand="story"].is-active { background:var(--rc-story); border-color:var(--rc-story); color:#1e2830; }
.rc-filter[data-strand="xr"].is-active { background:var(--rc-xr); border-color:var(--rc-xr); color:#12222e; }
.rc-filter[data-strand="community"].is-active { background:var(--rc-community); border-color:var(--rc-community); color:#12221a; }
.rc-filter[data-strand="ai"].is-active { background:var(--rc-ai); border-color:var(--rc-ai); color:#251816; }


.rc-viz-legend {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:14px;
    margin:-6px 0 14px;
    color:rgba(255,255,255,.52);
    font-size:10px;
    line-height:1.4;
}
.rc-viz-legend-item {
    display:inline-flex;
    align-items:center;
    gap:7px;
}
.rc-viz-legend-dot {
    display:inline-block;
    width:9px;
    height:9px;
    border-radius:50%;
    background:var(--rc-story);
    border:1px solid rgba(255,255,255,.8);
}
.rc-viz-legend-dot.is-large {
    width:15px;
    height:15px;
}
.rc-viz-legend-note {
    opacity:.82;
}
.rc-meta-sep { display:inline-block; margin:0 8px; color:rgba(255,255,255,.34); }

/* Fixed strand labels + horizontally scrollable research timeline. */
.rc-viz {
    display:grid;
    grid-template-columns: 210px minmax(0,1fr);
    border:1px solid var(--rc-line);
    background:rgba(0,0,0,.075);
    overflow:hidden;
}
.rc-lane-rail {
    position:relative;
    height:610px;
    background:#31485e;
    border-right:1px solid rgba(255,255,255,.12);
    z-index:2;
}
.rc-lane-label {
    position:absolute;
    left:20px;
    right:14px;
    transform:translateY(-50%);
    padding-left:11px;
    border-left:3px solid var(--lane-color);
}
.rc-lane-label span { display:block; color:rgba(255,255,255,.91); font-size:12px; line-height:1.28; font-weight:600; }
.rc-lane-label small { display:block; margin-top:6px; color:rgba(255,255,255,.42); font-size:9px; line-height:1.35; font-weight:400; }
.rc-lane-ai{top:92px;--lane-color:var(--rc-ai)}
.rc-lane-story{top:224px;--lane-color:var(--rc-story)}
.rc-lane-xr{top:356px;--lane-color:var(--rc-xr)}
.rc-lane-community{top:488px;--lane-color:var(--rc-community)}

.rc-scroll-wrap { min-width:0; position:relative; background:rgba(0,0,0,.03); }
.rc-scroll {
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    padding-bottom:8px;
    scrollbar-width:auto;
    scrollbar-color:#caa669 rgba(255,255,255,.09);
    -webkit-overflow-scrolling:touch;
}
.rc-scroll::-webkit-scrollbar { height:13px; }
.rc-scroll::-webkit-scrollbar-track { background:rgba(255,255,255,.07); }
.rc-scroll::-webkit-scrollbar-thumb { background:#caa669; border:3px solid #31485e; border-radius:99px; }
.rc-scroll::-webkit-scrollbar-thumb:hover { background:#d7b77e; }
.rc-scroll-hint {
    position:absolute;
    right:18px;
    top:12px;
    z-index:3;
    padding:5px 8px;
    border-radius:3px;
    background:rgba(49,72,94,.82);
    color:rgba(255,255,255,.58);
    font-size:9px;
    line-height:1.2;
    letter-spacing:.04em;
    pointer-events:none;
}
.rc-svg { display:block; width:2200px; min-width:2200px; height:610px; max-width:none; }
.rc-lane-bg { fill:rgba(255,255,255,.012); }
.rc-lane-bg.is-alt { fill:rgba(255,255,255,.026); }
.rc-band-line { stroke:rgba(255,255,255,.15); stroke-width:1; }
.rc-year-line { stroke:rgba(255,255,255,.065); stroke-width:1; stroke-dasharray:2 7; }
.rc-year-line.is-future { stroke:rgba(255,255,255,.035); }
.rc-year-label { fill:rgba(255,255,255,.62) !important; font-size:11px; font-family:Roboto,Arial,sans-serif; }
.rc-year-label.is-future { fill:rgba(255,255,255,.34) !important; }

/* Connections recede until a publication is explored. */
.rc-connection { fill:none; stroke:rgba(255,255,255,.045); stroke-width:1; opacity:.38; transition:.18s ease; }
.rc-connection.is-emphasized { stroke:rgba(255,255,255,.68); stroke-width:2; opacity:1; }

.rc-node { cursor:pointer; outline:none; transition:opacity .18s ease; }
.rc-node circle { stroke:#fff; stroke-width:1.8; transition:.18s ease; }
.rc-node .rc-node-halo { fill:none; stroke-width:1.2; opacity:0; transition:.18s ease; }
.rc-node.is-selected .rc-node-halo, .rc-node:hover .rc-node-halo, .rc-node:focus .rc-node-halo { opacity:.52; }
.rc-node:hover circle, .rc-node:focus circle, .rc-node.is-selected circle { stroke-width:3; }
.rc-node.is-dimmed { opacity:.10; }
.rc-node.is-related:not(.is-selected) { opacity:1; }
.rc-node[data-primary="story"] circle { fill:var(--rc-story); }
.rc-node[data-primary="story"] .rc-node-halo { stroke:var(--rc-story); }
.rc-node[data-primary="xr"] circle { fill:var(--rc-xr); }
.rc-node[data-primary="xr"] .rc-node-halo { stroke:var(--rc-xr); }
.rc-node[data-primary="community"] circle { fill:var(--rc-community); }
.rc-node[data-primary="community"] .rc-node-halo { stroke:var(--rc-community); }
.rc-node[data-primary="ai"] circle { fill:var(--rc-ai); }
.rc-node[data-primary="ai"] .rc-node-halo { stroke:var(--rc-ai); }

/* Only featured papers carry persistent labels. Secondary labels appear on hover/selection. */
.rc-node-label-group { opacity:.94; transition:.16s ease; pointer-events:none; }
.rc-node-label-group.is-secondary { opacity:0; }
.rc-node:hover .rc-node-label-group,
.rc-node:focus .rc-node-label-group,
.rc-node.is-selected .rc-node-label-group { opacity:1; }
.rc-mobile-list { display:none; }

.rc-detail { margin-top:16px; padding:22px 24px; border-top:3px solid #caa669; background:var(--rc-panel); display:grid; grid-template-columns:minmax(0,1fr) auto; gap:28px; align-items:end; }
.rc-kicker { margin:0 0 7px; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:#f1d8a7; }
.rc-detail h5 { margin:0 0 10px; color:var(--rc-ink); font-size:21px; line-height:1.28; }
.rc-meta { margin:0 0 12px; color:var(--rc-muted); font-size:13px; line-height:1.5; }
.rc-contribution { margin:0; max-width:950px; color:rgba(255,255,255,.84); font-size:15px; line-height:1.62; }
.rc-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:15px; }
.rc-tag { display:inline-block; border:1px solid rgba(255,255,255,.16); padding:5px 8px; border-radius:99px; color:rgba(255,255,255,.72); font-size:10px; line-height:1.3; }
.rc-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.rc-link { display:inline-block; border:1px solid rgba(255,255,255,.25); padding:9px 12px; color:#fff !important; text-align:center; font-size:10px; letter-spacing:.05em; text-transform:uppercase; white-space:nowrap; }
.rc-link:hover { background:#fff; color:#31485e !important; }
.rc-complete-heading { margin-top:42px !important; margin-bottom:16px !important; }

@media (max-width:991px){
  .rc-metrics{grid-template-columns:repeat(3,1fr)}
  .rc-viz{grid-template-columns:170px minmax(0,1fr)}
  .rc-lane-label{left:14px;right:10px;padding-left:9px}
  .rc-lane-label span{font-size:11px}
  .rc-lane-label small{display:none}
  .rc-detail{grid-template-columns:1fr}
  .rc-actions{justify-content:flex-start}
}
@media (max-width:767px){
  .rc-metrics{grid-template-columns:repeat(2,1fr)}
  .rc-viz{display:none}
  .rc-mobile-list{display:grid;gap:8px}
  .rc-mobile-node{appearance:none;width:100%;text-align:left;background:rgba(255,255,255,.05);color:#fff;border:1px solid rgba(255,255,255,.12);border-left:4px solid var(--node-color);padding:12px 13px;cursor:pointer}
  .rc-mobile-node strong{display:block;font-size:14px;line-height:1.3}
  .rc-mobile-node span{display:block;margin-top:3px;font-size:11px;color:rgba(255,255,255,.58)}
  .rc-mobile-node.is-dimmed{display:none}
  .rc-detail{padding:20px 18px}
  .rc-detail h5{font-size:19px}
}
