:root { --scarlet:#ba0c2f; --scarlet-dark:#70071c; --ink:#212325; --muted:#646a6e; --line:#cfd4d8; --wash:#eff1f2; --focus:#005eb8; --card:#fff;
  --serif:Georgia,"Times New Roman",Cambria,serif; --sans:Arial,"Helvetica Neue",Helvetica,sans-serif; }
* { box-sizing:border-box; }
html { background:#fff; }
body { margin:0; color:var(--ink); font:16px/1.5 var(--serif); }
h1,h2,h3 { letter-spacing:-0.01em; }
button, input, select { font:inherit; }
button, a, input, select, summary { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
a { color:var(--scarlet); }
a:hover { color:var(--scarlet-dark); }
:focus-visible { outline:3px solid var(--scarlet); outline-offset:3px; }
.skip-link { position:absolute; z-index:20; top:-4rem; left:.75rem; padding:.55rem .8rem; color:#fff; background:#111; border-radius:0 0 .25rem .25rem; }
.skip-link:focus { top:0; }
.site-header { max-width:1180px; margin:0 auto; padding:1.1rem 1.25rem .55rem; }
.back-link { font-weight:700; text-decoration:none; }
.conference-mark { display:block; width:min(100%,720px); max-height:145px; object-fit:contain; object-position:left center; margin:.7rem 0 0; }
.page-shell { max-width:1180px; margin:0 auto 2.25rem; padding:0 1.25rem; }
.page-heading { background:#fff; padding:.35rem 0 1.2rem; }
.page-heading h1 { padding-bottom:.7rem; border-bottom:3px solid var(--scarlet); display:inline-block; }
.eyebrow { margin:0 0 .5rem; color:var(--muted); font-family:var(--serif); font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
h1,h2,h3,p { overflow-wrap:anywhere; }
h1 { margin:0; font-size:clamp(1.8rem,4vw,2.55rem); line-height:1.15; }
.page-heading > p:not(.eyebrow) { max-width:48rem; margin:.65rem 0 0; color:var(--muted); }
.explain { margin-top:.9rem; max-width:48rem; }
.explain[open] > p { margin:.55rem 0 0; padding:.75rem .9rem; background:var(--wash); border-left:3px solid var(--scarlet); }
.site-footer { max-width:1180px; margin:0 auto; padding:1.25rem; color:var(--muted); font-size:.82rem; }
.loading,.notice { margin:1rem 0; padding:1rem; background:#fff; border-left:4px solid var(--scarlet); box-shadow:0 1px 3px rgb(0 0 0 / 8%); }
.notice.error { border-color:#a01818; }
.app { margin-top:1rem; }
.toolbar { display:grid; grid-template-columns:minmax(15rem,1fr) auto auto auto; gap:.75rem; align-items:end; padding:1rem; background:#fff; border:1px solid var(--line); }
.field { display:grid; gap:.3rem; font-size:.9rem; font-weight:700; }
.field input,.field select { min-height:2.65rem; padding:.5rem .65rem; color:var(--ink); background:#fff; border:1px solid #90959c; border-radius:.25rem; }
.button { min-height:2.65rem; padding:.5rem .8rem; color:#fff; background:var(--scarlet); border:1px solid var(--scarlet); border-radius:.25rem; font-weight:700; text-decoration:none; }
.button:hover { background:var(--scarlet-dark); border-color:var(--scarlet-dark); }
.button.secondary { color:var(--scarlet-dark); background:#fff; border-color:#9b9b9b; }
.button.secondary:hover { background:#f5edef; }
.button:disabled { cursor:not-allowed; color:#777; background:#eee; border-color:#ccc; }
.view-switch { display:flex; align-self:end; border:1px solid #90959c; border-radius:.25rem; overflow:hidden; }
.view-switch button { min-height:2.65rem; padding:.4rem .7rem; color:#333; background:#fff; border:0; border-right:1px solid #90959c; font-weight:700; }
.view-switch button:last-child { border-right:0; }
.view-switch button[aria-pressed="true"] { color:#fff; background:var(--scarlet); }
.result-summary { margin:.8rem 0; color:var(--muted); font-size:.93rem; }
.layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(19rem,.85fr); gap:1rem; align-items:start; }
.layout.layout-with-profile { grid-template-columns:minmax(16rem,.8fr) minmax(25rem,1.4fr); }
.content-panel,.profile-panel,.themes { background:var(--card); border:1px solid var(--line); }
.content-panel { min-height:22rem; }
.result-list { list-style:none; padding:0; margin:0; }
.result-list li + li { border-top:1px solid var(--line); }
.result-button { width:100%; padding:1rem; text-align:left; color:var(--ink); background:#fff; border:0; }
.result-button:hover,.result-button[aria-current="true"] { background:#fbf1f3; }
.result-title { display:block; font-weight:800; color:#5b0b1e; }
.result-meta,.card-meta { display:block; margin-top:.2rem; color:var(--muted); font-size:.9rem; }
.track { display:inline-block; margin-left:.45rem; padding:.07rem .4rem; color:#333; background:#e9eaec; border-radius:99px; font-size:.75rem; font-weight:800; vertical-align:middle; }
.track.industry { background:#e2eef8; }
.empty-state { padding:1.5rem; color:var(--muted); }
.profile-panel { position:sticky; top:.75rem; max-height:calc(100vh - 1.5rem); overflow-y:auto; padding:1.15rem; }
.profile-topline { display:flex; gap:.6rem; justify-content:space-between; align-items:start; }
.profile-panel h2 { margin:.1rem 0 .35rem; font-size:1.28rem; line-height:1.25; }
.profile-panel h3 { margin:1.1rem 0 .35rem; font-size:1rem; }
.profile-panel p { margin:.35rem 0; }
.profile-close { flex:0 0 auto; width:2.15rem; height:2.15rem; padding:0; color:#444; background:#fff; border:1px solid #999; border-radius:.25rem; font-size:1.35rem; }
.author-list { margin:.3rem 0; padding-left:1.15rem; }
.schedule { padding:.65rem; background:var(--wash); border-left:3px solid var(--scarlet); }
.filter-note { margin:.6rem 0 0; padding:.55rem .65rem; background:#fff8dc; border-left:3px solid #9a6a00; font-size:.9rem; }
.recommendations { margin-top:1rem; }
.recommendation-grid { display:grid; gap:.7rem; }
.match-card { padding:.85rem; background:#fff; border:1px solid var(--line); border-left:4px solid var(--scarlet); }
.match-card h3 { margin:.1rem 0 .2rem; font-size:1rem; }
.match-card p { margin:.45rem 0; }
.match-label { display:inline-block; margin:.1rem .25rem .1rem 0; padding:.08rem .4rem; color:#4c151f; background:#f7dfe4; border-radius:99px; font-size:.75rem; font-weight:800; }
.match-label.collaborator { color:#5b4800; background:#fff0b6; }
.match-action { margin-top:.55rem; color:#7b0922; background:transparent; border:0; border-bottom:1px solid currentColor; padding:0; font-weight:800; }
.schedule-link { display:inline-block; margin-top:.55rem; color:#7b0922; font-weight:800; text-decoration:none; border-bottom:1px solid currentColor; }
.schedule-link:hover { color:#5b0b1e; }
.match-card .schedule-link { margin-left:1rem; }
.profile-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1rem; margin-top:.55rem; }
.profile-actions .schedule-link { margin-top:0; }
.profile-actions .button { margin-top:0; }
.match-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:1rem; margin-top:.55rem; }
.match-actions .schedule-link { margin-top:0; margin-left:0; }
.match-actions .button { margin-top:0; }
details { margin-top:.55rem; color:#45484c; font-size:.9rem; }
details summary { cursor:pointer; color:#5b0b1e; font-weight:700; }
.abstract-details { padding:.65rem; background:var(--wash); border-left:3px solid var(--scarlet); }
.abstract-details p { margin:.55rem 0 0; }
.evidence-list { margin:.45rem 0 0; padding-left:1rem; }
.evidence-heading { margin:.45rem 0 0; font-weight:700; }
.more-button { width:100%; margin-top:.7rem; }
.themes { margin-top:1rem; padding:1rem; }
.themes h2 { margin:0; font-size:1.1rem; }
.themes > p { margin:.25rem 0 .7rem; color:var(--muted); font-size:.88rem; }
.theme-list { display:grid; gap:.55rem; }
.theme-button { width:100%; padding:.65rem; text-align:left; color:var(--ink); background:#fff; border:1px solid var(--line); border-left:5px solid var(--theme-color,#999); border-radius:.2rem; }
.theme-button[aria-pressed="true"] { background:#fbf1f3; box-shadow:inset 0 0 0 1px var(--scarlet); }
.theme-button strong,.theme-button span { display:block; }
.theme-button span { margin-top:.15rem; color:var(--muted); font-size:.84rem; }
.map-panel { padding:.5rem; }
#constellation-plot { width:100%; height:540px; }
.map-help { padding:.25rem .5rem .6rem; color:var(--muted); font-size:.87rem; }
.map-unavailable { padding:1.5rem; color:var(--muted); }
.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
@media (max-width:820px) { .toolbar { grid-template-columns:1fr 1fr; } .toolbar .field:first-child { grid-column:1/-1; } .layout,.layout.layout-with-profile { grid-template-columns:1fr; } .content-panel { min-height:0; } .profile-panel { position:static; max-height:none; overflow:visible; } }
@media (max-width:460px) { body { font-size:15px; } .site-header,.page-shell,.site-footer { padding-left:.75rem; padding-right:.75rem; } .page-heading { padding:1rem; } .toolbar { grid-template-columns:1fr; } .toolbar .field:first-child { grid-column:auto; } .view-switch { align-self:stretch; } .view-switch button { flex:1; } #constellation-plot { height:360px; } }
