/* subpages don't run the homepage's scroll-linked flying-logo animation,
   so the header logo (opacity:0 by default in common.css) needs forcing on */
#header-logo-slot{ opacity:1 !important; }

/* ---------- news archive (list) — reuses the news-row style from the TOP page ---------- */
.news-archive-section{ padding:150px 0 140px; }
.news-archive-inner{ max-width:1360px; margin:0 auto; padding:0 clamp(20px,4vw,56px); }
.news-archive-heading{ font-weight:900; font-size:clamp(2.6rem,5vw,4.4rem); line-height:1; letter-spacing:-.01em; margin-bottom:56px; }

.news-list{ border-top:1px solid var(--border); }
.news-row{ display:flex; align-items:center; gap:28px; padding:26px 4px; border-bottom:1px solid var(--border); text-decoration:none; color:var(--ink); transition:opacity .2s ease; }
.news-row:hover{ opacity:.55; }
.news-date{ font-family:"Space Mono",monospace; font-size:13px; color:var(--ink-dim); flex:0 0 100px; }
.news-tag{ font-family:"Space Mono",monospace; font-weight:700; font-size:11px; letter-spacing:.05em; border:1.5px solid var(--ink); border-radius:99px; padding:5px 13px; flex:0 0 88px; text-align:center; }
.news-title{ font-size:15.5px; font-weight:700; flex:1; }
.news-arrow{ flex:0 0 auto; opacity:.4; }

.news-empty{ padding:60px 0; color:var(--ink-dim); font-size:15px; }

/* pagination */
.news-pagination{ display:flex; justify-content:center; gap:10px; margin-top:56px; }
.news-pagination a, .news-pagination span{
	display:inline-flex; align-items:center; justify-content:center; min-width:40px; height:40px; padding:0 6px;
	border-radius:999px; border:1.5px solid var(--border); font-family:"Space Mono",monospace; font-size:13px;
	text-decoration:none; color:var(--ink); transition:border-color .2s ease, background-color .2s ease;
}
.news-pagination a:hover{ border-color:var(--ink); }
.news-pagination .current{ background:var(--ink); color:#fff; border-color:var(--ink); }

@media(max-width:640px){
	.news-row{ flex-wrap:wrap; gap:10px 20px; }
	.news-title{ flex:1 1 100%; order:3; }
}

/* ---------- news single (article detail) ---------- */
.news-single-section{ padding:150px 0 140px; }
.news-single-inner{ max-width:820px; margin:0 auto; padding:0 clamp(20px,4vw,56px); }
.news-single-meta{ display:flex; align-items:center; gap:16px; margin-bottom:22px; }
.news-single-back{ display:inline-flex; align-items:center; gap:8px; font-family:"Space Mono",monospace; font-size:13px; color:var(--ink-dim); text-decoration:none; margin-bottom:40px; }
.news-single-back:hover{ color:var(--ink); }
.news-single-title{ font-weight:900; font-size:clamp(1.9rem,4vw,2.8rem); line-height:1.4; margin-bottom:44px; letter-spacing:-.01em; }
.news-single-thumb{ width:100%; aspect-ratio:16/9; border-radius:24px; overflow:hidden; margin-bottom:48px; }
.news-single-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }

.news-single-body{ font-size:16px; line-height:2.1; color:var(--ink); }
.news-single-body p{ margin-bottom:1.6em; }
.news-single-body h2{ font-weight:900; font-size:1.5rem; margin:2.4em 0 0.9em; letter-spacing:-.01em; }
.news-single-body h3{ font-weight:700; font-size:1.2rem; margin:2em 0 0.8em; }
.news-single-body img{ max-width:100%; border-radius:16px; margin:1.6em 0; }
.news-single-body a{ color:var(--acc-01); text-decoration:underline; text-underline-offset:3px; }
.news-single-body ul, .news-single-body ol{ margin:0 0 1.6em 1.4em; }
.news-single-body blockquote{ border-left:3px solid var(--border); padding-left:20px; color:var(--ink-dim); margin:1.6em 0; }

.news-single-nav{ display:flex; justify-content:space-between; gap:20px; margin-top:64px; padding-top:32px; border-top:1px solid var(--border); }
.news-single-nav a{ font-family:"Space Mono",monospace; font-size:13px; color:var(--ink-dim); text-decoration:none; max-width:45%; }
.news-single-nav a:hover{ color:var(--ink); }
