:root{
  --brand:#1B1363;
  --accent:#6f62d6;
  --muted:#6b7280;
  --bg:#f8f9fb;
  --card:#ffffff;
  --radius:14px;
  --shadow:0 10px 30px rgba(11,12,35,0.06);
  --max-width:1200px;
}

*{box-sizing:border-box}
body{margin:0;font-family:Poppins,system-ui,Arial,Helvetica,sans-serif;background:var(--bg);color:#0f1724;-webkit-font-smoothing:antialiased}
.container{max-width:var(--max-width);margin:0 auto;padding:0 1rem}

/* hero */
.hero{background:linear-gradient(90deg, rgba(27,19,99,0.04), rgba(111,98,214,0.02));padding:3.5rem 0}
.tagline{font-weight:700;color:var(--brand)}
.lead{color:var(--muted)}

/* cards */
.card-geom{background:var(--card);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
.feature-card{transition:transform .35s ease,box-shadow .35s ease}
.feature-card:hover{transform:translateY(-8px);box-shadow:0 18px 40px rgba(11,12,35,0.08)}

/* buttons */
.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn-primary:hover{background:#140c46}
.btn-outline-primary{color:var(--brand);border-color:var(--brand)}

/* ticker */
.ticker{overflow:hidden;white-space:nowrap}
.ticker .items{display:inline-block;padding-left:100%;animation:tick 18s linear infinite}
@keyframes tick{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}

/* news grid */
.news-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:12px}
.news-card{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:10px;transition:transform .28s ease;box-shadow:0 8px 20px rgba(11,12,35,0.04);background:#fff}
.news-card:hover{transform:translateY(-6px)}
.news-thumb{width:120px;height:80px;border-radius:8px;background:#f3f6f7;overflow:hidden}
.news-thumb img{width:100%;height:100%;object-fit:cover}

/* research cards */
.research-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}

/* utilities */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease, transform .6s ease}
.reveal.show{opacity:1;transform:none}
.kicker{display:inline-block;padding:.2rem .6rem;border-radius:999px;background:linear-gradient(90deg,var(--accent),#9b8bff);color:#fff;font-weight:600;font-size:.8rem}

/* responsive tweaks */
@media(max-width:992px){
  .hero{padding:2rem 0}
  .news-card{flex-direction:row}
}