:root{--archive-accent:#174ebf;--archive-ink:#171915;--archive-paper:#f4f1e8;--archive-line:rgba(23,25,21,.2)}
*{box-sizing:border-box}
body.archive-page{margin:0;background:var(--archive-paper);color:var(--archive-ink);font-family:"Noto Sans SC","PingFang SC",sans-serif;overflow-x:hidden}
.archive-page--finance{--archive-accent:#123f91}.archive-page--tech{--archive-accent:#087f78}.archive-page--smartcity{--archive-accent:#175a9d}.archive-page--open-source{--archive-accent:#17694b}.archive-page--hardware{--archive-accent:#a65722}.archive-page--ideas{--archive-accent:#8c3f57}
.archive-shell{width:min(1180px,calc(100% - 56px));margin:0 auto;padding:58px 0 70px;min-width:0}
.archive-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:end;padding-bottom:30px;border-bottom:1px solid var(--archive-line)}
.archive-eyebrow,.archive-kicker{margin:0 0 12px;color:var(--archive-accent);font:700 .72rem/1.4 ui-monospace,SFMono-Regular,monospace;letter-spacing:.2em;text-transform:uppercase}
.archive-hero h1{margin:0;font:700 clamp(2.5rem,6vw,5.6rem)/.98 Georgia,"Songti SC",serif;letter-spacing:-.05em}
.archive-subtitle{max-width:720px;margin:20px 0 0;color:#666861;font-size:1rem;line-height:1.8}
.archive-count{margin:0;color:#6c6e67;font:600 .8rem/1.4 ui-monospace,monospace;white-space:nowrap}
.archive-feature{display:grid;grid-template-columns:160px minmax(0,1fr);gap:34px;padding:42px 0;border-bottom:1px solid var(--archive-line);min-width:0}
.archive-feature__date{color:var(--archive-accent);font:700 2rem/1 Georgia,serif}
.archive-feature__content{min-width:0}.archive-feature h2{margin:0;font:700 clamp(1.8rem,3.5vw,3.2rem)/1.25 Georgia,"Songti SC",serif}.archive-feature h2 a,.archive-entry h3 a{color:inherit;text-decoration:none}.archive-feature h2 a:hover,.archive-entry h3 a:hover{color:var(--archive-accent)}
.archive-summary{margin:18px 0 0;color:#555851;font-size:1rem;line-height:1.9;overflow-wrap:anywhere}.archive-read{display:inline-block;margin-top:22px;color:var(--archive-accent);font-weight:700;text-decoration:none}
.archive-history{padding-top:42px}.archive-history__title{margin:0 0 28px;font:700 1.35rem/1.3 Georgia,"Songti SC",serif}.archive-year{display:grid;grid-template-columns:120px minmax(0,1fr);gap:40px;padding:28px 0;border-top:1px solid var(--archive-line);min-width:0}.archive-year>h2{margin:0;color:var(--archive-accent);font:700 1.5rem/1 Georgia,serif}.archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 46px;min-width:0}.archive-entry{padding:0 0 28px;min-width:0}.archive-entry__date{color:#75776f;font:600 .74rem/1.4 ui-monospace,monospace}.archive-entry h3{margin:8px 0 0;font:700 1.2rem/1.45 Georgia,"Songti SC",serif}.archive-entry .archive-summary{margin-top:10px;font-size:.9rem;line-height:1.75}.archive-empty{padding:50px 0;color:#686a63}
.archive-footer{border-top:1px solid var(--archive-line);padding:24px;text-align:center;color:#73756e;font-size:.76rem}.archive-footer a{color:inherit;text-decoration:none}
@media(max-width:768px){.archive-shell{width:100%;padding:30px 16px 48px}.archive-hero{grid-template-columns:1fr;gap:16px}.archive-hero h1{font-size:clamp(2.25rem,15vw,4rem)}.archive-count{white-space:normal}.archive-feature{grid-template-columns:1fr;gap:14px;padding:30px 0}.archive-feature__date{font-size:1.35rem}.archive-year{grid-template-columns:1fr;gap:18px}.archive-grid{grid-template-columns:1fr}.archive-summary{font-size:.94rem;line-height:1.78;overflow-wrap:anywhere}.archive-entry{padding-bottom:24px}}

/* Night mode. theme.js sets data-theme on <html>; site-nav.css already followed
   it, which is why the bar changed and the page under it did not. The palette
   here is variable-driven, but each column sets --archive-accent on the body
   element, and a body rule outranks a :root override -- so every column
   modifier needs its own dark accent. */
[data-theme="dark"]{--archive-accent:#7aa7ff;--archive-ink:#e7e8ef;--archive-paper:#0c0d12;--archive-line:rgba(255,255,255,.14)}
[data-theme="dark"] .archive-page--finance{--archive-accent:#83b0ff}
[data-theme="dark"] .archive-page--tech{--archive-accent:#4fd0c5}
[data-theme="dark"] .archive-page--smartcity{--archive-accent:#79b8ff}
[data-theme="dark"] .archive-page--open-source{--archive-accent:#5fd39b}
[data-theme="dark"] .archive-page--hardware{--archive-accent:#f0a05a}
[data-theme="dark"] .archive-page--ideas{--archive-accent:#e08aa3}
[data-theme="dark"] .archive-subtitle,[data-theme="dark"] .archive-summary{color:#a3a7b4}
[data-theme="dark"] .archive-count,[data-theme="dark"] .archive-entry__date,[data-theme="dark"] .archive-empty,[data-theme="dark"] .archive-footer{color:#8b90a0}
