/*
  LMOD+ · Design System
  EB Garamond (display) + Source Sans 3 (UI)
  #00356b  #bd8b13  #08142a
*/

:root {
    --blue:       #00356b;
    --blue-dark:  #08142a;
    --blue-navy:  #0b1e38;
    --blue-mid:   #1a5c96;
    --blue-light: #2980b9;
    --gold:       #bd8b13;
    --gold-l:     #d4a534;
    --gold-pale:  rgba(189,139,19,0.1);
    --white:      #ffffff;
    --warm:       #faf9f5;
    --paper:      #f2efe7;
    --border:     #dedad0;
    --border-d:   #c6c0b4;
    --text:       #18202c;
    --text-mid:   #4a5568;
    --text-soft:  #718096;

    --sh-sm:  0 1px 4px rgba(0,0,0,0.07);
    --sh-md:  0 4px 20px rgba(0,53,107,0.10);
    --sh-lg:  0 12px 48px rgba(0,53,107,0.15);
    --sh-xl:  0 24px 80px rgba(0,53,107,0.20);

    --ease:   cubic-bezier(0.22, 1, 0.36, 1);
    --tr:     0.25s var(--ease);
    --r:      8px;
    --rl:     16px;
    --rxl:    24px;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html  { scroll-behavior:smooth; }
body  {
    font-family: 'Source Sans 3', 'Source Sans Pro', -apple-system, BlinkMacSystemFont, sans-serif;
    color: var(--text); line-height:1.7;
    background: var(--warm); overflow-x:hidden;
}
a    { text-decoration:none; color:var(--blue-mid); transition:var(--tr); }
a:hover { color:var(--blue); }
ul   { list-style:none; }
.container { max-width:1160px; margin:0 auto; padding:0 2rem; }

h1,h2,h3,h4 {
    font-family: 'EB Garamond', Georgia, 'Times New Roman', serif;
    line-height:1.2; font-weight:600;
}

.eyebrow {
    font-family: 'Source Sans 3', sans-serif;
    font-size:0.68rem; font-weight:700;
    letter-spacing:3px; text-transform:uppercase;
    color:var(--gold);
}


/* ════════════════════════════
   NAVBAR
   ════════════════════════════ */
.navbar {
    position:sticky; top:0; width:100%; z-index:1000;
    background:rgba(255,255,255,0.92);
    backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
    border-bottom:1px solid rgba(0,53,107,0.08);
    transition:var(--tr);
}
.navbar.scrolled {
    background:rgba(255,255,255,0.98);
    box-shadow:var(--sh-md); border-bottom-color:var(--border);
}
.nav-inner {
    max-width:1160px; margin:0 auto; padding:0 2rem;
    height:62px; display:flex; align-items:center; justify-content:space-between;
}
.nav-brand { display:flex; align-items:center; gap:0.6rem; }
.nav-logo-img {
    height:34px; width:auto;
    object-fit:contain; flex-shrink:0;
}
.nav-wordmark {
    font-family:'EB Garamond', Georgia, serif;
    font-size:1.45rem; font-weight:700;
    color:var(--blue); letter-spacing:0.3px;
    display:inline-flex; align-items:center;
}
.nav-plus {
    color:var(--gold);
    font-family:'Source Sans 3', sans-serif;
    font-weight:700; font-size:0.92em;
    line-height:1; margin-left:0.05em;
}

.nav-links { display:flex; gap:2.25rem; }
.nav-links a {
    font-size:0.875rem; font-weight:600;
    color:var(--text-mid); position:relative; transition:var(--tr);
}
.nav-links a::after {
    content:''; position:absolute; bottom:-3px; left:0;
    width:0; height:2px; background:var(--gold);
    transition:width 0.22s ease;
}
.nav-links a:hover { color:var(--blue); }
.nav-links a:hover::after { width:100%; }

.nav-toggle {
    display:none; flex-direction:column; gap:5px;
    background:none; border:none; cursor:pointer; padding:4px;
}
.nav-toggle span {
    display:block; width:22px; height:2px;
    background:var(--text-mid); border-radius:2px;
}
.nav-links.mobile-open { display:flex !important; }


/* ════════════════════════════
   HERO
   ════════════════════════════ */
.hero {
    position:relative; min-height:100vh;
    display:flex; align-items:center; justify-content:center;
    padding:6rem 2rem 5.5rem;
    background:var(--blue-dark);
    overflow:hidden;
}

/* Gold base line */
.hero-rule {
    position:absolute; bottom:0; left:0; right:0; height:3px;
    background:linear-gradient(90deg, transparent, var(--gold) 30%, var(--gold) 70%, transparent);
    opacity:0.65;
}

/* Retinal art */
.retina-art {
    position:absolute; top:50%; right:-8%;
    transform:translateY(-50%);
    width:min(75vh,680px); height:min(75vh,680px);
    pointer-events:none;
}
.ra-ring {
    position:absolute; top:50%; left:50%;
    transform:translate(-50%,-50%);
    border-radius:50%;
    border:1px solid rgba(255,255,255,0.12);
}
.ra-r1 { width:100%; height:100%; animation:pulse 9s ease-in-out infinite 0s; }
.ra-r2 { width:78%;  height:78%;  animation:pulse 9s ease-in-out infinite 0.8s; }
.ra-r3 { width:57%;  height:57%;  animation:pulse 9s ease-in-out infinite 1.6s; }
.ra-r4 { width:37%;  height:37%;  animation:pulse 9s ease-in-out infinite 2.4s; }
.ra-r5 { width:18%;  height:18%;  animation:pulse 9s ease-in-out infinite 3.2s; }
.ra-core {
    position:absolute; top:50%; left:50%;
    width:5%; height:5%;
    background:rgba(255,255,255,0.4);
    border-radius:50%; transform:translate(-50%,-50%);
}
.ra-v {
    position:absolute; top:50%; left:50%;
    height:1px;
    background:linear-gradient(90deg, rgba(255,255,255,0.22) 0%, transparent 100%);
    transform-origin:left center;
}
.ra-v1 { width:47%; transform:rotate(22deg); }
.ra-v2 { width:43%; transform:rotate(88deg); }
.ra-v3 { width:48%; transform:rotate(155deg); }
.ra-v4 { width:42%; transform:rotate(228deg); }
.ra-v5 { width:45%; transform:rotate:300deg; transform:rotate(300deg); }

@keyframes pulse {
    0%,100% { opacity:0.25; transform:translate(-50%,-50%) scale(1); }
    50%      { opacity:0.6;  transform:translate(-50%,-50%) scale(1.018); }
}

/* Hero content */
.hero-content {
    position:relative; z-index:2;
    max-width:860px; text-align:center;
    display:flex; flex-direction:column; align-items:center; gap:0;
}

/* ACM pill */
.acm-pill {
    display:inline-flex; align-items:center; gap:0.7rem;
    background:rgba(255,255,255,0.06);
    border:1px solid rgba(255,255,255,0.14);
    border-radius:50px; padding:0.42rem 1rem;
    margin-bottom:0.9rem;
}
.ext-note {
    font-size:0.82rem; color:rgba(255,255,255,0.42);
    margin-bottom:2rem; font-style:italic;
}
.ext-note a { color:var(--gold-l); }
.ext-note a:hover { color:#e8c46a; }
.acm-mark {
    background:#e53e3e; color:#fff;
    font-family:'Source Sans 3', sans-serif;
    font-size:0.65rem; font-weight:800; letter-spacing:1px;
    padding:0.18rem 0.45rem; border-radius:3px; flex-shrink:0;
}
.acm-sep {
    width:1px; height:14px;
    background:rgba(255,255,255,0.2); flex-shrink:0;
}
.acm-name {
    font-size:0.8rem; color:rgba(255,255,255,0.72); font-weight:400;
}

/* Logo */
.hero-logo-wrap { margin-bottom:1.5rem; }
.hero-logo-img {
    height:90px; width:auto; object-fit:contain;
    filter:drop-shadow(0 8px 24px rgba(0,0,0,0.4));
}

/* Title — the big Garamond statement */
.hero-h1 {
    font-family:'EB Garamond', Georgia, serif;
    font-size:clamp(4rem, 10vw, 7.5rem);
    font-weight:700; color:var(--white);
    letter-spacing:-2px; line-height:1;
    margin-bottom:1rem;
    display:inline-flex; align-items:center; justify-content:center;
}
.h1-plus {
    color:var(--gold-l);
    font-family:'Source Sans 3', sans-serif;
    font-weight:600; font-size:0.82em;
    line-height:1; margin-left:0.04em;
}

.hero-desc {
    font-family:'EB Garamond', Georgia, serif;
    font-size:clamp(1rem, 1.8vw, 1.3rem);
    font-style:italic; font-weight:400;
    color:rgba(255,255,255,0.52);
    max-width:680px; line-height:1.6;
    margin-bottom:1.4rem;
}

/* Hero stats row */
.hero-stats {
    display:flex; align-items:center; gap:0;
    background:rgba(255,255,255,0.04);
    border:1px solid rgba(255,255,255,0.09);
    border-radius:var(--rl); overflow:hidden;
    margin-bottom:2rem;
}
.hs-item {
    display:flex; flex-direction:column; align-items:center;
    padding:1rem 1.75rem; flex:1;
}
.hs-n {
    font-family:'EB Garamond', Georgia, serif;
    font-size:2rem; font-weight:700; color:var(--white); line-height:1;
}
.hs-l {
    font-size:0.7rem; font-weight:600; letter-spacing:0.5px;
    color:rgba(255,255,255,0.38); text-transform:uppercase;
    margin-top:0.25rem;
}
.hs-sep {
    width:1px; background:rgba(255,255,255,0.08);
    align-self:stretch; flex-shrink:0;
}

/* Authors */
.author-box {
    background:rgba(255,255,255,0.04);
    border:1px solid rgba(255,255,255,0.08);
    border-radius:var(--rl); padding:1.25rem 1.75rem;
    margin-bottom:2rem; width:100%;
}
.authors {
    display:flex; flex-wrap:wrap; justify-content:center;
    gap:0.15rem 0.85rem; margin-bottom:0.65rem;
}
.authors span {
    font-size:0.86rem; color:rgba(255,255,255,0.75); font-weight:400;
}
.authors sup { font-size:0.55rem; color:rgba(255,255,255,0.4); }

.affils {
    display:flex; flex-wrap:wrap; justify-content:center;
    gap:0.1rem 1rem; margin-bottom:0.55rem;
}
.affils span {
    font-size:0.73rem; color:rgba(255,255,255,0.3);
    display:inline-flex; align-items:center; gap:0.3rem;
}
.affils sup  { font-size:0.52rem; color:rgba(255,255,255,0.35); }
.flag {
    width:16px; height:auto; border-radius:2px;
    opacity:0.75; flex-shrink:0;
}

.author-footer {
    display:flex; flex-wrap:wrap; justify-content:center; gap:0.5rem 1rem;
    font-size:0.7rem; color:rgba(255,255,255,0.22); font-style:italic;
}
.af-dot { opacity:0.4; }

/* Buttons */
.hero-btns { display:flex; gap:0.6rem; flex-wrap:wrap; justify-content:center; }
.btn-solid, .btn-ghost {
    display:inline-flex; align-items:center; gap:0.45rem;
    padding:0.58rem 1.3rem; border-radius:var(--r);
    font-family:'Source Sans 3', sans-serif;
    font-size:0.875rem; font-weight:600;
    cursor:pointer; transition:var(--tr); white-space:nowrap;
}
.btn-solid {
    background:var(--gold); color:var(--blue-dark);
    border:1px solid var(--gold);
}
.btn-solid:hover {
    background:var(--gold-l); color:var(--blue-dark);
    transform:translateY(-2px);
    box-shadow:0 6px 24px rgba(189,139,19,0.38);
}
.btn-ghost {
    background:rgba(255,255,255,0.06); color:rgba(255,255,255,0.8);
    border:1px solid rgba(255,255,255,0.16);
}
.btn-ghost:hover {
    background:rgba(255,255,255,0.12); color:var(--white);
    border-color:rgba(255,255,255,0.36); transform:translateY(-2px);
}
.btn-ghost.disabled { opacity:0.35; pointer-events:none; cursor:not-allowed; }


/* ════════════════════════════
   SECTIONS
   ════════════════════════════ */
.section { padding:6.5rem 0; }

.sec-hd { text-align:center; margin-bottom:4rem; }
.sec-hd .eyebrow { display:block; margin-bottom:0.75rem; font-size:0.74rem; letter-spacing:3.5px; }
.sec-hd h2 {
    font-size:clamp(2.2rem, 4vw, 3.2rem);
    color:var(--blue-dark); margin-bottom:1.1rem;
}
.sec-hd p {
    font-size:1.05rem; color:var(--text-mid);
    max-width:660px; margin:0 auto; line-height:1.8;
}


/* ════════════════════════════
   ABSTRACT
   ════════════════════════════ */
.abstract-sec {
    background:var(--warm); padding:5rem 0;
    border-bottom:1px solid var(--border);
}
.abstract-layout {
    display:grid; grid-template-columns:180px 1fr; gap:4rem;
    align-items:start;
}
.ab-label {
    padding-top:0.35rem; position:relative;
}
.eyebrow-line {
    width:32px; height:2px; background:var(--gold);
    margin-top:0.6rem;
}
.ab-body p {
    font-size:1.06rem; color:var(--text-mid);
    margin-bottom:1.2rem; line-height:1.85;
}
.ab-body p:last-child { margin-bottom:0; }
.ab-body strong { color:var(--blue); font-weight:600; }


/* ════════════════════════════
   STATS BAR
   ════════════════════════════ */
.stats-bar { background:var(--blue); }
.stats-inner {
    max-width:1160px; margin:0 auto; padding:0 2rem;
    display:flex; align-items:stretch;
}
.sb-item { flex:1; text-align:center; padding:2.75rem 1rem; }
.sb-num {
    font-family:'EB Garamond', Georgia, serif;
    font-size:3.25rem; font-weight:700;
    color:var(--white); line-height:1; margin-bottom:0.4rem;
}
.sb-lbl {
    font-size:0.73rem; font-weight:700;
    color:rgba(255,255,255,0.45);
    text-transform:uppercase; letter-spacing:1px;
}
.sb-div {
    width:1px; background:rgba(255,255,255,0.09);
    margin:1.5rem 0; flex-shrink:0;
}


/* ════════════════════════════
   DATASET
   ════════════════════════════ */
.dataset-sec { background:var(--paper); }

.mod-grid {
    display:grid; grid-template-columns:repeat(5,1fr); gap:1rem;
}
.mod-card {
    background:var(--white); border:1px solid var(--border);
    border-radius:var(--rl); padding:1.4rem 1.1rem;
    transition:transform var(--tr), box-shadow var(--tr), border-color var(--tr);
    position:relative; overflow:hidden;
    display:flex; flex-direction:column;
}
.mod-card::before {
    content:''; position:absolute; top:0; left:0; right:0; height:3px;
    background:var(--c, var(--blue));
    transform:scaleX(0); transform-origin:left; transition:transform 0.3s ease;
}
.mod-card:hover::before { transform:scaleX(1); }
.mod-card:hover {
    transform:translateY(-5px);
    box-shadow:var(--sh-lg); border-color:transparent;
}

.mc-head { display:flex; align-items:center; gap:0.75rem; margin-bottom:0.85rem; }
.mc-icon {
    width:40px; height:40px; flex-shrink:0; border-radius:10px;
    display:flex; align-items:center; justify-content:center;
    color:var(--c, var(--blue));
    background:color-mix(in srgb, var(--c, var(--blue)) 10%, transparent);
}
.mc-icon svg { width:26px; height:26px; }
.mc-tag {
    font-size:0.62rem; font-weight:800;
    letter-spacing:2px; text-transform:uppercase;
    color:var(--c, var(--blue));
}
.mod-card h3 {
    font-family:'Source Sans 3', sans-serif;
    font-size:0.82rem; font-weight:700;
    color:var(--text); margin-bottom:0.6rem; line-height:1.3;
}
.mc-count {
    font-family:'EB Garamond', Georgia, serif;
    font-size:1.7rem; font-weight:600;
    color:var(--blue-dark); line-height:1; margin-bottom:0.6rem;
}
.mc-count span {
    font-family:'Source Sans 3', sans-serif;
    font-size:0.73rem; color:var(--text-soft); font-weight:400;
}
.mod-card p {
    font-size:0.77rem; color:var(--text-mid);
    line-height:1.65; flex:1; margin-bottom:0.75rem;
}
.mc-src {
    font-size:0.66rem; font-weight:700;
    color:var(--c, var(--blue)); opacity:0.65;
    border-top:1px solid var(--border); padding-top:0.6rem;
    letter-spacing:0.3px;
}


/* ════════════════════════════
   BENCHMARK
   ════════════════════════════ */
.bench-sec { background:var(--warm); }

.task-grid {
    display:grid; grid-template-columns:repeat(4,1fr); gap:1rem;
    margin-bottom:2.25rem;
}
.task-card {
    --tc: var(--blue);
    background:var(--white); border:1px solid var(--border);
    border-top:3px solid var(--tc);
    border-radius:var(--rl); padding:2rem 1.5rem;
    position:relative; overflow:hidden;
    transition:transform var(--tr), box-shadow var(--tr);
    display:flex; flex-direction:column;
}
.task-card:hover { transform:translateY(-4px); box-shadow:var(--sh-lg); }

.tc-num {
    font-family:'EB Garamond', Georgia, serif;
    font-size:5rem; font-weight:700; line-height:1;
    color:color-mix(in srgb, var(--tc) 9%, transparent);
    position:absolute; top:0.5rem; right:1rem;
    letter-spacing:-3px; pointer-events:none;
}

.tc-icon {
    width:42px; height:42px; border-radius:10px;
    background:color-mix(in srgb, var(--tc) 10%, transparent);
    display:flex; align-items:center; justify-content:center;
    color:var(--tc); margin-bottom:1.25rem; flex-shrink:0;
}
.tc-icon svg { width:22px; height:22px; }

.task-card h3 {
    font-size:1.15rem; font-weight:600;
    color:var(--blue-dark); margin-bottom:0.65rem;
}

.task-card p {
    font-size:0.82rem; color:var(--text-mid);
    line-height:1.7; flex:1; margin-bottom:1.2rem;
}

.tc-metrics { display:flex; flex-wrap:wrap; gap:0.35rem; }
.tc-metrics span {
    background:color-mix(in srgb, var(--tc) 8%, transparent);
    color:var(--tc);
    font-size:0.63rem; font-weight:700;
    padding:0.2rem 0.55rem; border-radius:50px; letter-spacing:0.2px;
    white-space:nowrap;
}

/* Failure panel */
.failure-panel {
    background:var(--paper); border:1px solid var(--border-d);
    border-left:4px solid var(--gold);
    border-radius:0 var(--rl) var(--rl) 0;
    padding:1.4rem 2rem;
}
.fp-label {
    font-size:0.8rem; font-weight:700; color:var(--text);
    display:flex; align-items:center; gap:0.45rem;
    margin-bottom:0.85rem;
}
.fp-label svg { color:var(--gold); flex-shrink:0; }
.fp-chips { display:flex; flex-wrap:wrap; gap:0.45rem; }
.fp-chips span {
    background:var(--white); border:1px solid var(--border-d);
    border-radius:50px; padding:0.28rem 0.8rem;
    font-size:0.77rem; font-weight:500; color:var(--text-mid);
    transition:var(--tr);
}
.fp-chips span:hover {
    border-color:var(--gold); color:var(--blue-dark); background:var(--gold-pale);
}


/* ════════════════════════════
   RESULTS
   ════════════════════════════ */
.results-sec { background:var(--paper); }

.results-stack { display:flex; flex-direction:column; gap:1.5rem; }

.tbl-card {
    background:var(--white); border:1px solid var(--border);
    border-radius:var(--rl); overflow:hidden;
}
.tbl-caption {
    padding:1rem 1.25rem 0;
    font-size:0.77rem; color:var(--text-soft); font-style:italic;
}
.tbl-caption a { color:var(--blue-mid); }
.tbl-caption a:hover { color:var(--blue); }

.res-tbl { width:100%; border-collapse:collapse; font-size:0.84rem; }
.res-tbl th {
    background:var(--blue); color:rgba(255,255,255,0.88);
    font-family:'Source Sans 3', sans-serif;
    font-weight:700; font-size:0.74rem; padding:0.82rem 0.9rem;
    text-align:center; letter-spacing:0.2px;
    border-bottom:1px solid rgba(255,255,255,0.07);
}
.th-left { text-align:left; }
.res-tbl td {
    padding:0.68rem 0.9rem; text-align:center;
    color:var(--text-mid); border-bottom:1px solid var(--border);
    transition:background var(--tr);
}
.res-tbl tbody tr:hover td { background:rgba(0,53,107,0.02); }
.res-tbl tbody tr:last-child td { border-bottom:none; }
.td-left  { text-align:left; font-weight:500; color:var(--text); }
.td-b     { font-weight:700; color:var(--blue); }
.tr-top td { background:rgba(0,53,107,0.025); }
.tr-avg    { border-top:2px solid var(--border-d); }
.tr-avg td {
    background:rgba(189,139,19,0.13) !important;
    color:var(--text); font-style:italic; font-weight:600;
}

/* Findings row */
.findings-row {
    display:grid; grid-template-columns:repeat(4,1fr); gap:1rem;
}
.finding-card {
    background:var(--white); border:1px solid var(--border);
    border-radius:var(--rl); padding:1.4rem 1.3rem;
    transition:transform var(--tr), box-shadow var(--tr);
}
.finding-card:hover { transform:translateY(-3px); box-shadow:var(--sh-md); }
.fd {
    width:10px; height:10px; border-radius:50%;
    margin-bottom:0.75rem;
}
.finding-card strong {
    display:block; font-size:0.88rem;
    color:var(--text); margin-bottom:0.35rem;
    font-family:'Source Sans 3', sans-serif; font-weight:700;
}
.finding-card p { font-size:0.79rem; color:var(--text-mid); line-height:1.65; }


/* ════════════════════════════
   CITATION
   ════════════════════════════ */
.cite-sec { background:var(--warm); border-top:1px solid var(--border); }
.bib-grid {
    display:grid; grid-template-columns:1fr 1fr; gap:1.5rem;
    align-items:start;
}
.bib-col { display:flex; flex-direction:column; min-width:0; }
.bib-hd {
    display:flex; align-items:center; gap:0.7rem;
    margin-bottom:0.7rem;
}
.bib-which {
    font-family:'EB Garamond', Georgia, serif;
    font-size:1.15rem; font-weight:700; color:var(--blue);
}
.bib-venue {
    font-size:0.75rem; font-weight:600; color:var(--text-soft);
    letter-spacing:0.3px;
}
.bib-wrap { position:relative; flex:1; min-width:0; }
.bib {
    background:var(--blue-dark); color:rgba(255,255,255,0.8);
    font-family:'Courier New', monospace;
    font-size:0.7rem; line-height:1.75;
    padding:1.5rem; border-radius:var(--rl);
    overflow-x:auto; white-space:pre; tab-size:2;
    height:100%;
}
.copy-btn {
    position:absolute; top:1rem; right:1rem;
    display:inline-flex; align-items:center; gap:0.35rem;
    background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.13);
    color:rgba(255,255,255,0.58); font-size:0.75rem; font-weight:600;
    padding:0.32rem 0.75rem; border-radius:var(--r);
    cursor:pointer; transition:var(--tr);
    font-family:'Source Sans 3', sans-serif;
}
.copy-btn:hover { background:rgba(255,255,255,0.16); color:var(--white); }
.copy-btn.copied { background:rgba(0,121,107,0.25); border-color:rgba(0,121,107,0.5); color:#80cbc4; }


/* ════════════════════════════
   FOOTER
   ════════════════════════════ */
.footer { background:var(--blue-dark); padding:4rem 0 2rem; }
.footer-grid {
    display:grid; grid-template-columns:1fr 140px 180px;
    gap:4rem; padding-bottom:3rem;
    border-bottom:1px solid rgba(255,255,255,0.07); margin-bottom:2rem;
}
.footer-brand p {
    font-size:0.875rem; color:rgba(255,255,255,0.38);
    line-height:1.75; margin-top:0.85rem; max-width:380px;
}
.fb-logo { display:flex; align-items:center; gap:0.75rem; }
.fb-img  { height:46px; width:auto; object-fit:contain; filter:brightness(1.1); }
.fb-name {
    font-family:'EB Garamond', Georgia, serif;
    font-size:1.5rem; font-weight:700; color:var(--white); line-height:1;
    display:inline-flex; align-items:center;
}
.fb-name span {
    color:var(--gold-l);
    font-family:'Source Sans 3', sans-serif;
    font-weight:700; font-size:0.92em;
    line-height:1; margin-left:0.05em;
}
.fb-sub  { font-size:0.7rem; color:rgba(255,255,255,0.3); margin-top:0.15rem; }

.footer-col { display:flex; flex-direction:column; gap:0.45rem; }
.footer-col h4 {
    font-family:'Source Sans 3', sans-serif;
    font-size:0.64rem; font-weight:800;
    letter-spacing:2.5px; text-transform:uppercase;
    color:var(--gold); margin-bottom:0.3rem;
}
.footer-col a { font-size:0.85rem; color:rgba(255,255,255,0.4); }
.footer-col a:hover { color:rgba(255,255,255,0.88); }

.footer-email {
    font-size:0.75rem !important;
    color:rgba(255,255,255,0.26) !important;
    margin-top:-0.25rem; margin-bottom:0.35rem;
}
.footer-email:hover { color:rgba(255,255,255,0.6) !important; }
.footer-bottom {
    display:flex; justify-content:space-between;
    font-size:0.73rem; color:rgba(255,255,255,0.2);
}


/* ════════════════════════════
   ANIMATIONS
   ════════════════════════════ */
.anim-up {
    opacity:0; transform:translateY(22px);
    transition:opacity 0.6s ease, transform 0.6s ease;
}
.anim-up.visible { opacity:1; transform:translateY(0); }


/* ════════════════════════════
   RESPONSIVE
   ════════════════════════════ */
@media (max-width:1100px) {
    .mod-grid  { grid-template-columns:repeat(3,1fr); }
    .findings-row { grid-template-columns:repeat(2,1fr); }
    .bib-grid  { grid-template-columns:1fr; }
    .footer-grid { grid-template-columns:1fr 1fr; gap:2.5rem; }
    .footer-brand { grid-column:span 2; }
    .abstract-layout { grid-template-columns:130px 1fr; gap:2.5rem; }
}

@media (max-width:900px) {
    .task-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width:820px) {
    .mod-grid   { grid-template-columns:repeat(2,1fr); }
    .stats-inner { flex-wrap:wrap; }
    .sb-item    { min-width:50%; }
    .sb-div     { display:none; }
    .footer-grid { grid-template-columns:1fr; }
    .footer-brand { grid-column:auto; }
    .footer-bottom { flex-direction:column; gap:0.3rem; text-align:center; }
    .abstract-layout { grid-template-columns:1fr; gap:1.25rem; }
    .eyebrow-line { display:none; }
    .findings-row { grid-template-columns:1fr; }
}

@media (max-width:768px) {
    .nav-links { display:none; flex-direction:column; }
    .nav-links.mobile-open {
        position:fixed; top:62px; left:0; right:0;
        background:rgba(255,255,255,0.98); backdrop-filter:blur(12px);
        padding:1rem 2rem 1.5rem;
        border-bottom:1px solid var(--border); box-shadow:var(--sh-md);
    }
    .nav-links.mobile-open li { padding:0.65rem 0; border-bottom:1px solid var(--border); }
    .nav-links.mobile-open li:last-child { border-bottom:none; }
    .nav-links.mobile-open a { font-size:1rem; }
    .nav-toggle { display:flex; }

    .hero  { padding:5rem 1.5rem 4rem; }
    .hero-h1 { font-size:clamp(3rem,12vw,5rem); }
    .hero-desc { font-size:1rem; }
    .hero-stats { flex-direction:column; border-radius:var(--r); }
    .hs-item { padding:0.85rem 1rem; }
    .hs-sep  { width:100%; height:1px; align-self:auto; }
    .author-box { padding:1rem; }
    .affils { gap:0.1rem 0.6rem; }
    .author-footer { flex-direction:column; align-items:center; gap:0.25rem; }
    .hero-btns { flex-direction:column; align-items:center; }
    .btn-solid, .btn-ghost { width:100%; max-width:260px; justify-content:center; }

    .task-grid { grid-template-columns:1fr; }
    .section   { padding:3.5rem 0; }
    .retina-art { right:-25%; width:min(60vw,320px); height:min(60vw,320px); }

    .container { padding:0 1.25rem; }
    .nav-inner { padding:0 1.25rem; }

    /* Results table scrolls horizontally instead of squishing */
    .tbl-card { overflow-x:auto; -webkit-overflow-scrolling:touch; }
    .res-tbl  { min-width:560px; }

    /* BibTeX blocks */
    .bib {
        font-size:0.62rem; line-height:1.7;
        padding:2.4rem 1rem 1.1rem;
        border-radius:var(--r);
    }
    .bib-hd { flex-wrap:wrap; gap:0.2rem 0.7rem; }
    .copy-btn { top:0.6rem; right:0.6rem; padding:0.26rem 0.6rem; font-size:0.7rem; }

    .footer-bottom { align-items:center; }
}

@media (max-width:520px) {
    .mod-grid   { grid-template-columns:1fr; }
    .stats-inner { flex-direction:column; }
    .sb-item    { min-width:100%; padding:1.4rem 1rem; }
    .hero-h1    { font-size:3rem; }
    .res-tbl    { font-size:0.77rem; }
    .res-tbl th, .res-tbl td { padding:0.55rem 0.5rem; }
    .acm-pill   { flex-direction:column; gap:0.35rem; border-radius:var(--r); }
    .acm-sep    { display:none; }
}
