/* Shared news-card styles — used by the homepage (#news) and the /news archive page.
   Relies on the including page defining the CSS variables (--white --ice --dim --line). */
.news-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
.news-card {
  background: rgba(255,255,255,0.02); padding: 36px 32px;
  border: 1px solid var(--line); transition: background 0.3s, border-color 0.3s;
  position: relative; overflow: hidden; text-decoration: none; color: inherit; display: block;
}
.news-card::before {
  content: ''; position: absolute; bottom: 0; left: 0;
  width: 0; height: 3px; background: var(--ice); transition: width 0.4s ease;
}
.news-card:hover::before { width: 100%; }
.news-card:hover { background: rgba(168,207,224,0.04); border-color: rgba(168,207,224,0.2); }
.news-date {
  font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--dim); margin-bottom: 6px;
}
.news-cat {
  display: inline-block; font-size: 0.58rem; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--ice); opacity: 0.8;
  border: 1px solid rgba(168,207,224,0.25); padding: 3px 10px; margin-bottom: 14px;
}
.news-title { font-size: 1.05rem; font-weight: 500; margin-bottom: 10px; color: var(--white); line-height: 1.4; }
.news-summary { font-size: 0.82rem; line-height: 1.6; color: var(--dim); }
.news-empty {
  grid-column: 1 / -1; text-align: center; padding: 60px 24px;
  font-size: 0.8rem; color: var(--dim); letter-spacing: 0.1em;
}
/* optional thumbnail — bleeds to the card edges, kept subtle */
.news-thumb {
  margin: -36px -32px 24px; height: 160px; overflow: hidden;
  background: rgba(255,255,255,0.03);
}
.news-thumb img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  opacity: 0.82; transition: opacity 0.4s ease, transform 0.6s ease;
}
.news-card:hover .news-thumb img { opacity: 1; transform: scale(1.04); }

@media (max-width: 768px) {
  .news-grid { grid-template-columns: 1fr; }
}
