.news-home-link { color:var(--ink); font-size:12px; font-weight:800; text-decoration:none; }
.news-home-link:hover { color:var(--red); }
.news-page { padding-bottom:54px; }
.news-hero { display:grid; grid-template-columns:1.15fr .85fr; align-items:end; gap:70px; padding:46px 0 34px; border-bottom:1px solid var(--line); }
.news-kicker, .news-feed-heading span, .news-card-category, .news-card-source { color:var(--red); font-family:Consolas,monospace; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.news-hero h1 { margin:13px 0 0; font-family:"Arial Narrow","Aptos Display",sans-serif; font-size:clamp(58px,8vw,102px); line-height:.86; letter-spacing:-.065em; }
.news-hero h1 em { color:var(--red); font-style:normal; }
.news-hero p { margin:0; color:var(--ink); font-size:20px; font-weight:720; line-height:1.45; letter-spacing:-.02em; }
.news-hero small { display:block; margin-top:15px; color:var(--muted); font-size:12px; line-height:1.55; }
.news-feed-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; padding:27px 0 15px; }
.news-feed-heading h2 { margin:6px 0 0; font-size:25px; letter-spacing:-.035em; }
.news-feed-heading p { margin:0; color:var(--muted); font-family:Consolas,monospace; font-size:10px; text-transform:uppercase; }
.news-feed { border-top:1px solid var(--line); }
.news-card { position:relative; display:grid; grid-template-columns:145px minmax(0,1fr) minmax(210px,.45fr); gap:30px; padding:30px 0 31px 22px; border-bottom:1px solid var(--line); }
.news-card::before { content:""; position:absolute; top:0; bottom:0; left:0; width:3px; background:var(--soft); }
.news-card:first-child::before { background:var(--red); }
.news-card-date { font-family:Consolas,monospace; font-size:12px; font-weight:800; }
.news-card-date span { display:block; margin-top:7px; color:var(--muted); font-size:10px; font-weight:700; text-transform:uppercase; }
.news-card h2 { margin:8px 0 11px; font-size:clamp(24px,3vw,37px); line-height:1.06; letter-spacing:-.045em; }
.news-card-summary { margin:0; color:var(--muted); font-size:14px; line-height:1.65; }
.news-card-context { align-self:start; padding:18px; background:var(--surface); border:1px solid var(--line); }
.news-card-context > span { color:var(--blue); font-family:Consolas,monospace; font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.news-card-context p { margin:9px 0 17px; color:var(--ink); font-size:12px; line-height:1.55; }
.news-card-source { display:block; color:var(--red); line-height:1.45; text-decoration:none; }
.news-card-source:hover { text-decoration:underline; text-underline-offset:3px; }
.news-loading, .news-empty { min-height:260px; display:grid; place-items:center; align-content:center; gap:14px; color:var(--muted); text-align:center; }
.news-loading span { width:24px; height:24px; border:2px solid var(--line); border-top-color:var(--red); border-radius:50%; animation:news-spin .8s linear infinite; }
.news-loading p, .news-empty p { margin:0; }
.news-empty h2 { margin:0; color:var(--ink); font-size:25px; }
.news-footer { display:flex; align-items:flex-start; justify-content:space-between; gap:30px; padding-top:22px; color:var(--muted); font-size:11px; line-height:1.55; }
.news-footer p { max-width:700px; margin:0; }
.news-footer a { flex:0 0 auto; color:var(--blue); font-weight:800; }
@keyframes news-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .news-loading span { animation:none; } }
@media (max-width:800px) {
  .news-hero { grid-template-columns:1fr; gap:25px; padding-top:32px; }
  .news-card { grid-template-columns:105px minmax(0,1fr); gap:20px; }
  .news-card-context { grid-column:2; }
}
@media (max-width:560px) {
  .news-home-link { display:none; }
  .news-hero h1 { font-size:54px; }
  .news-hero p { font-size:17px; }
  .news-feed-heading { align-items:flex-start; flex-direction:column; gap:9px; }
  .news-card { grid-template-columns:1fr; gap:13px; padding:24px 0 25px 15px; }
  .news-card-date, .news-card-context { grid-column:1; }
  .news-card-date span { display:inline; margin:0 0 0 7px; }
  .news-card h2 { font-size:28px; }
  .news-card-context { padding:16px; }
  .news-footer { flex-direction:column; }
}
