/* A native link covers each card; the independent model stays above it. */
.project-card { position:relative; isolation:isolate; }
.project-main-link::after { content:""; position:absolute; inset:0; z-index:1; }
.project-main-link:focus-visible { outline:none; }
.project-card:has(.project-main-link:focus-visible) { outline:2px solid var(--amber); outline-offset:7px; }
.project-card:has(.project-main-link:hover) h3 { color:var(--amber); }
.board-specimen { z-index:2; }
.news-section { margin-block:var(--section-space); border-top:1px solid var(--keyline); padding-top:30px; }
.news-heading { display:flex; align-items:baseline; justify-content:space-between; gap:16px 30px; flex-wrap:wrap; margin-bottom:26px; }
.news-heading h2 { margin:0; }
.news-edition { font:500 12px/1.6 var(--mono); color:var(--muted); }
.news-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px 32px; list-style:none; margin:0; padding:0; }
.news-item { min-width:0; border-top:1px solid var(--keyline-soft); padding-top:15px; display:flex; flex-direction:column; align-items:flex-start; overflow-wrap:anywhere; }
.news-topic { color:var(--amber); font:500 11px/1.5 var(--mono); margin-bottom:12px; }
.news-item h3 { font:600 24px/1.2 var(--display); letter-spacing:-.01em; margin:0; }
.news-item h3 a { text-decoration:none; }
.news-item h3 a:hover { color:var(--amber); text-decoration:underline; text-underline-offset:4px; }
.news-summary { font:400 14px/1.65 var(--sans); color:var(--paper); margin-top:12px; }
.news-use { font:400 13px/1.6 var(--sans); color:var(--muted); margin-top:10px; }
.news-source { font:400 11px/1.7 var(--sans); color:var(--muted); padding-top:16px; margin-top:auto; }
.news-source time { white-space:nowrap; }
.news-footer { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:14px 28px; border-top:1px solid var(--keyline-soft); margin-top:28px; padding-top:16px; font-size:12px; color:var(--muted); }
.news-footer nav { display:flex; gap:24px; }
.news-footer a { color:var(--paper); text-underline-offset:4px; }
.news-empty { color:var(--muted); font-size:14px; }
.news-page { max-width:1160px; padding:32px; margin:auto; }
.news-page > header { display:flex; justify-content:space-between; align-items:center; gap:20px; border-bottom:1px solid var(--keyline); padding-bottom:22px; }
.news-page > header a { text-decoration:none; }
.news-page h1 { font:600 46px/1.1 var(--display); margin-top:42px; }
.news-page .news-section { border-top:0; margin-top:28px; }
.news-archive { margin-top:32px; list-style:none; padding:0; }
.news-archive li { border-top:1px solid var(--keyline-soft); }
.news-archive a { display:flex; justify-content:space-between; gap:24px; padding:20px 0; text-decoration:none; overflow-wrap:anywhere; }
.news-archive a:hover { color:var(--amber); }
.news-pager { display:flex; gap:24px; margin-top:28px; }
@media(max-width:1000px) { .news-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .news-grid { grid-template-columns:1fr; gap:25px; } .news-item h3 { font-size:25px; } .news-heading { margin-bottom:20px; } .news-page { padding:24px 20px; } .news-page h1 { font-size:36px; } }
