/* ==========================================================================
   Homepage refresh — loaded only on "/".
   Colour system (one rule per colour, nothing else on the page):
     navy   #012F63  structure: headings, entities, links, filled venue badge
     navy-2 #1A4F8A  hover / secondary marks
     slate  #5B6472  secondary text, dates, icons at rest
     line   #E4E7EC  hairlines and card borders
     tint   #F4F6F9  quiet fills (statement, chips)
     coral  #FE667B  the accent: your name, numbers, action pills, heading tick
   No gradients, no green, no gold.
   ========================================================================== */
:root {
  --rf-navy: #012F63; --rf-navy-2: #1A4F8A; --rf-ink: #1A1A1A; --rf-slate: #5B6472;
  --rf-line: #E4E7EC; --rf-tint: #F4F6F9; --rf-coral: #FE667B; --rf-coral-d: #E5475D;
  --rf-serif: "Charter", "Iowan Old Style", "Source Serif 4", Georgia, serif;
}

/* ---------- 1. headings: serif + short coral tick ---------- */
.author__name { font-family: var(--rf-serif); font-weight: 600; letter-spacing: -.01em; color: var(--rf-ink); }
.page__content h1 {
  font-family: var(--rf-serif); font-weight: 600; letter-spacing: -.012em; color: var(--rf-navy);
  border-bottom: 1px solid var(--rf-line) !important; position: relative;
}
.page__content h1::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 36px; height: 2px; background: var(--rf-coral); }
.page__content h1 .fas, .page__content h1 .fab { font-size: .78em; margin-right: .15em; color: var(--rf-navy) !important; }

/* sidebar icons: one quiet colour, navy on hover */
.author__urls i, .author__urls svg, .author__urls .fas, .author__urls .fab, .author__urls .far, .author__urls .ai { color: var(--rf-slate) !important; fill: currentColor; }
.author__urls a { color: var(--rf-ink) !important; }
.author__urls a:hover { color: var(--rf-navy) !important; }
.author__urls a:hover .fas, .author__urls a:hover .fab, .author__urls a:hover .far, .author__urls a:hover .ai { color: var(--rf-navy) !important; }

/* intro: name is the one coral word, solid (no pink-to-purple gradient) */
.page__content .accent-text {
  background: none !important; -webkit-text-fill-color: currentColor !important; color: var(--rf-coral) !important; font-weight: 600;
}
.page__content .link-accent { color: var(--rf-navy); }
.page__content .link-accent:hover { color: var(--rf-coral); }

/* ---------- 2. statement: tint + serif ---------- */
.quote-accent {
  font-family: var(--rf-serif); font-size: 1.12em; line-height: 1.55; color: var(--rf-ink) !important;
  background: var(--rf-tint) !important; box-shadow: none !important;
  border-left: 3px solid var(--rf-navy) !important; padding-left: 2.4rem !important;
}
.quote-accent::before { color: var(--rf-slate) !important; opacity: .22 !important; }
.quote-accent .ink { color: var(--rf-navy); font-weight: 700; }

/* ---------- 3. highlight cards: navy entities, coral numbers ---------- */
.highlight-block { box-shadow: none !important; border-color: var(--rf-line) !important; }
.highlight-block::before { background: var(--rf-navy) !important; height: 3px !important; }
.highlight-block h3 {
  background: none !important; -webkit-text-fill-color: currentColor !important; color: var(--rf-navy) !important;
  font-family: var(--rf-serif); font-weight: 600 !important; font-size: 1.28em !important;
}
.highlight-block h3 i { font-size: .8em; margin-right: .2em; }
.highlight-block ul li { color: #3A424D !important; }
.highlight-block ul li::before { color: var(--rf-slate) !important; opacity: .55; }
.highlight-block .ink, .highlight-block a { color: var(--rf-navy) !important; font-weight: 600; }
.highlight-block a:hover { color: var(--rf-coral) !important; }
.highlight-block b.stat { color: var(--rf-coral) !important; font-weight: 700; font-variant-numeric: tabular-nums; }

/* ---------- 4. publications: small mark before the title ---------- */
.pub-item { box-shadow: none !important; border-color: var(--rf-line) !important; }
.pub-item:hover { box-shadow: 0 6px 18px rgba(1,47,99,.07) !important; border-color: #D3D9E2 !important; }
.pub-item h3 { font-size: 1.04rem !important; color: var(--rf-ink) !important; }
.pub-item h3 a:hover { color: var(--rf-navy) !important; }
.pub-mark { display: inline-block; width: 1.25em; height: 1.25em; vertical-align: -.24em; margin-right: .42em; }
.pub-mark svg { width: 100%; height: 100%; display: block; }
/* marks drawn in the site palette only */
.pub-mark .f1, .pub-mark .f2 { fill: var(--rf-navy); }
.pub-mark .f3 { fill: #9FB0C7; }
.pub-mark .fa { fill: var(--rf-coral); }
.pub-mark .fb { fill: #fff; }
.pub-mark .s1, .pub-mark .s2 { fill: none; stroke: var(--rf-navy); stroke-linecap: square; }
.pub-mark .s3 { fill: none; stroke: #9FB0C7; }
.pub-authors { color: var(--rf-slate) !important; }
.pub-authors strong { color: var(--rf-ink); }
/* venue status */
/* metadata = squared tag, actions = round pill */
.pub-venue-badge { font-size: .72rem !important; border-radius: 4px !important; padding: .14rem .5rem !important; font-weight: 600; }
.pub-venue-badge.is-venue    { background: var(--rf-navy) !important; color: #fff !important; }
.pub-venue-badge.is-preprint { background: #fff !important; color: var(--rf-navy) !important; box-shadow: inset 0 0 0 1.5px var(--rf-navy); }
/* action pills: same coral pill, one size smaller, flat */
.pub-links a { box-shadow: none !important; font-size: .78rem !important; padding: .24rem .66rem !important; background: var(--rf-coral) !important; }
.pub-links a:hover { transform: none !important; background: var(--rf-coral-d) !important; box-shadow: none !important; }
.pub-links a i { color: #fff !important; }

/* open source: category as a quiet tint chip, stars in slate */
a.pub-item-link .pub-venue-badge { background: var(--rf-tint) !important; color: var(--rf-navy) !important; }
.gh-stars, .gh-stars i { color: var(--rf-slate) !important; }

/* ---------- 5. education / internships: timeline ---------- */
.tl { border-top: 1px solid var(--rf-line); margin: .4rem 0 1.2rem; }
.tl-row { display: grid; grid-template-columns: 168px 1fr; gap: 20px; padding: .72rem 0; border-bottom: 1px solid var(--rf-line); align-items: baseline; }
.tl-date { font-size: .82em; color: var(--rf-slate); font-variant-numeric: tabular-nums; letter-spacing: .01em; white-space: nowrap; }
.tl-body b { display: block; color: var(--rf-ink); font-weight: 600; }
.tl-body b a { color: var(--rf-navy) !important; font-weight: 600; }
.tl-body > span { display: block; font-size: .9em; color: var(--rf-slate); margin-top: 2px; }
.tl-body > span a { color: var(--rf-navy) !important; }

/* ---------- 6. blog cards ---------- */
.blog-card { box-shadow: none !important; border: 1px solid var(--rf-line) !important; height: 100%; display: flex; flex-direction: column; }
.blog-card-link { height: 100%; }
.blog-card-link:hover .blog-card { box-shadow: 0 8px 22px rgba(1,47,99,.09) !important; }
.blog-badge, .blog-lang {
  position: absolute; top: 12px; z-index: 10; padding: .32em .72em; border-radius: 9999px; font-size: .72em; font-weight: 700; letter-spacing: .02em;
  background: rgba(255,255,255,.95) !important; color: var(--rf-navy) !important;
  box-shadow: 0 0 0 1px rgba(1,47,99,.16), 0 2px 6px rgba(0,0,0,.12) !important;
}
.blog-badge { left: 12px; }
.blog-lang { right: 12px; font-weight: 600; }
.blog-title {
  font-family: var(--rf-serif); font-weight: 600 !important; letter-spacing: -.005em; color: var(--rf-navy) !important;
  -webkit-line-clamp: 3 !important; line-clamp: 3; min-height: 3.9em;
}
.blog-description { -webkit-line-clamp: 3 !important; line-clamp: 3; color: var(--rf-slate) !important; }

/* footer */
.site-footer { border-top: 1px solid var(--rf-line); margin-top: 3rem; }
.site-footer a { color: var(--rf-slate); font-weight: 600; }
.site-footer a:hover { color: var(--rf-navy); }

@media (max-width: 768px) {
  .tl-row { grid-template-columns: 1fr; gap: 2px; }
  .blog-title { min-height: 0; }
}
