:root{
  --bg:#FFFFFF;
  --fg:#0A1930;
  --accent:#C8102E;
  --muted:#5b6577;
  --rule:#e6e8ee;
  --soft:#f5f6f9;
  --paper:#fffef8;
  --shadow:0 1px 0 rgba(10,25,48,.04);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg);
  color:var(--fg);
  font-family:'Work Sans',system-ui,sans-serif;
  font-weight:400;
  line-height:1.6;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
}

a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

h1,h2,h3,h4{
  font-family:'Libre Baskerville',serif;
  color:var(--fg);
  line-height:1.25;
  margin:0 0 .6em;
  font-weight:700;
}
h1{font-size:2.2rem}
h2{font-size:1.55rem}
h3{font-size:1.15rem}
p{margin:0 0 1em}

.wrap{max-width:1140px;margin:0 auto;padding:0 24px}

/* Site note (imperfection strip) */
.site-note{
  background:var(--fg);
  color:#cdd3e0;
  font-size:.85rem;
  padding:8px 0;
  border-bottom:2px solid var(--accent);
}
.site-note strong{color:#fff}

/* Masthead */
.masthead{
  border-bottom:3px solid var(--fg);
  background:#fff;
  position:sticky;top:0;z-index:50;
}
.mast-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 24px;gap:20px;flex-wrap:wrap;
}
.brand{display:flex;align-items:center;gap:10px;color:var(--fg)}
.brand:hover{text-decoration:none}
.brand-mark{width:36px;height:36px;flex:0 0 auto}
.brand-text{font-family:'Libre Baskerville',serif;font-size:1.35rem}
.brand-text strong{color:var(--fg)}
.brand-text em{color:var(--accent);font-style:italic;font-weight:400}

.mainnav{display:flex;gap:22px;flex-wrap:wrap}
.mainnav a{
  color:var(--fg);
  font-weight:500;
  font-size:.95rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  padding:6px 0;
  border-bottom:2px solid transparent;
}
.mainnav a:hover{text-decoration:none;border-bottom-color:var(--accent)}
.mainnav a.active{border-bottom-color:var(--accent);color:var(--accent)}

/* Hero */
.hero{
  background:var(--fg);
  color:#fff;
  border-bottom:6px solid var(--accent);
}
.hero-inner{
  display:grid;grid-template-columns:1.1fr 1fr;gap:40px;
  align-items:center;padding:48px 24px;
}
.hero-poster{
  border:1px solid rgba(255,255,255,.1);
  background:#000;
  overflow:hidden;
  box-shadow:0 12px 40px rgba(0,0,0,.4);
}
.hero-poster svg{display:block;width:100%;height:auto}
.hero-copy h1{color:#fff;font-size:2.4rem;margin-bottom:.5em}
.hero-copy .lede{color:#cdd3e0;font-size:1.05rem}
.hero-copy .kicker{color:var(--accent)}

.kicker{
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.78rem;
  font-weight:600;
  color:var(--accent);
  margin:0 0 .8em;
}

.btn{
  display:inline-block;
  background:var(--accent);
  color:#fff;
  padding:12px 22px;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  font-size:.85rem;
  border:2px solid var(--accent);
}
.btn:hover{text-decoration:none;background:#a30d24;border-color:#a30d24}
.btn-ghost{
  display:inline-block;
  color:#fff;
  margin-left:8px;
  padding:12px 4px;
  font-weight:500;
  letter-spacing:.04em;
  font-size:.9rem;
}
.btn-ghost:hover{color:var(--accent);text-decoration:none}

/* Page banner (non-home) */
.page-banner{
  background:var(--soft);
  border-bottom:1px solid var(--rule);
  padding:40px 0 32px;
}
.page-banner h1{margin-bottom:.3em}
.page-banner .lede{color:var(--muted);font-size:1.05rem;max-width:680px}

/* Layout */
.layout{
  display:grid;
  grid-template-columns:1fr 300px;
  gap:48px;
  padding:48px 24px 72px;
}

/* Posts */
.post-card{
  border-bottom:1px solid var(--rule);
  padding-bottom:32px;
  margin-bottom:32px;
}
.post-card:last-of-type{border-bottom:none}
.post-meta{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  margin-bottom:10px;
  color:var(--muted);
}
.post-meta .cat{
  background:var(--fg);
  color:#fff;
  padding:3px 10px;
  font-weight:600;
}
.post-meta .date{font-weight:500}
.post-meta .tag.new{
  background:var(--accent);
  color:#fff;
  padding:3px 8px;
  font-weight:700;
  letter-spacing:.14em;
  font-size:.72rem;
  transform:rotate(-2deg);
  display:inline-block;
}
.post-card h2{font-size:1.6rem;margin-bottom:.4em}
.post-card h2 a{color:var(--fg)}
.post-card h2 a:hover{color:var(--accent);text-decoration:none}
.readmore a{
  font-weight:600;
  text-transform:uppercase;
  font-size:.82rem;
  letter-spacing:.08em;
}

/* Pagination */
.pager{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:20px;
  font-size:.9rem;
  color:var(--muted);
}
.pager a{font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.82rem}

/* Full post */
.post-full .post-head{margin-bottom:24px}
.post-full h2{font-size:2rem;margin-bottom:.3em}
.post-full h3{font-size:1.2rem;margin-top:1.8em;color:var(--fg)}
.post-full hr{
  border:none;border-top:2px solid var(--fg);
  margin:32px 0;width:60px;
}
.post-full ol{padding-left:20px}
.post-full ol li{margin-bottom:10px}
.post-full em{font-style:italic}

.correction{
  background:var(--soft);
  border-left:3px solid var(--accent);
  padding:14px 18px;
  font-size:.95rem;
  color:var(--muted);
  margin:24px 0;
}
.correction strong{color:var(--fg)}

/* Inline diagrams / figures */
.inline-diagram,.card-figure{
  margin:28px 0;
}
.inline-diagram svg,.card-figure svg{
  display:block;width:100%;height:auto;max-width:560px;
  border:1px solid var(--rule);
}
.inline-diagram figcaption,.card-figure figcaption{
  font-size:.88rem;color:var(--muted);
  margin-top:8px;max-width:560px;
  font-style:italic;
}

/* Sidebar */
.sidebar{display:flex;flex-direction:column;gap:28px}
.widget{
  background:var(--soft);
  border-left:3px solid var(--accent);
  padding:20px 22px;
}
.widget h3{
  font-family:'Work Sans',sans-serif;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.82rem;
  color:var(--fg);
  margin-bottom:12px;
  font-weight:700;
}
.widget p{font-size:.94rem;color:var(--fg)}
.widget .widget-note{font-size:.88rem;color:var(--muted);font-style:italic}
.widget.callout{
  background:var(--fg);
  border-left-color:var(--accent);
}
.widget.callout h3{color:#fff}
.widget.callout p{color:#cdd3e0}

.catlist{list-style:none;padding:0;margin:0}
.catlist li{
  display:flex;justify-content:space-between;
  padding:7px 0;
  border-bottom:1px dotted var(--rule);
  font-size:.93rem;
}
.catlist li:last-child{border-bottom:none}
.catlist li a{color:var(--fg);font-weight:500}
.catlist li a:hover{color:var(--accent);text-decoration:none}
.catlist li span{color:var(--muted);font-size:.82rem}

/* Glossary layout with TOC sidebar (left) */
.gloss-layout{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:48px;
  padding:48px 24px 72px;
}
.toc{
  position:sticky;top:90px;align-self:start;
  border-left:3px solid var(--accent);
  padding:16px 18px;
  background:var(--soft);
}
.toc-label{
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.74rem;
  color:var(--muted);
  font-weight:700;
  margin:0 0 10px;
}
.toc ul{list-style:none;padding:0;margin:0}
.toc li{padding:5px 0;font-size:.92rem;border-bottom:1px dotted var(--rule)}
.toc li:last-child{border-bottom:none}
.toc li a{color:var(--fg);font-weight:500}
.toc li a:hover{color:var(--accent);text-decoration:none}

.gloss-body section{margin-bottom:36px}
.gloss-body h3{
  font-size:1.3rem;
  border-bottom:2px solid var(--fg);
  padding-bottom:6px;
  margin-bottom:16px;
  scroll-margin-top:90px;
}
.gloss{margin:0}
.gloss dt{
  font-family:'Libre Baskerville',serif;
  font-weight:700;
  font-size:1.02rem;
  color:var(--fg);
  margin-top:14px;
}
.gloss dt .coined{
  font-family:'Work Sans',sans-serif;
  font-weight:500;
  font-style:italic;
  font-size:.8rem;
  color:var(--accent);
  letter-spacing:.04em;
  margin-left:6px;
}
.gloss dd{
  margin:4px 0 0;
  padding-left:0;
  color:var(--fg);
}
.foot-note{color:var(--muted);margin-top:32px;font-style:italic}

/* Archive */
.archive-body{grid-column:1 / -1}
.layout .archive-body{grid-column:auto}
.archive-year{margin-bottom:40px}
.archive-year h3{
  font-size:1.3rem;
  border-bottom:2px solid var(--fg);
  padding-bottom:6px;
  margin-bottom:14px;
}
.archlist{list-style:none;padding:0;margin:0}
.archlist li{
  display:grid;
  grid-template-columns:54px 110px 1fr;
  gap:14px;align-items:baseline;
  padding:9px 0;
  border-bottom:1px dotted var(--rule);
  font-size:.96rem;
}
.arch-date{
  color:var(--muted);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:600;
}
.arch-cat{
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--fg);
  background:var(--soft);
  border-left:2px solid var(--accent);
  padding:2px 8px;
  font-weight:600;
  justify-self:start;
}
.archlist li a{color:var(--fg);font-weight:500}
.archlist li a:hover{color:var(--accent);text-decoration:none}

/* Footer */
.foot{
  background:var(--fg);
  color:#cdd3e0;
  padding:28px 0;
  border-top:6px solid var(--accent);
}
.foot p{margin:0 0 4px;font-size:.92rem}
.foot .small{font-size:.82rem;color:#8a93a8}

/* 404 */
.notfound{
  padding:80px 24px;
  display:flex;justify-content:center;
}
.nf-card{
  max-width:520px;text-align:center;
}
.nf-svg{width:240px;height:auto;margin-bottom:24px}
.nf-card h1{font-size:1.8rem}

/* Responsive */
@media (max-width:980px){
  .gloss-layout{grid-template-columns:1fr;gap:28px;padding:36px 24px 56px}
  .toc{position:static;top:auto}
}
@media (max-width:880px){
  .hero-inner{grid-template-columns:1fr;gap:28px;padding:36px 24px}
  .hero-copy h1{font-size:1.9rem}
  .layout{grid-template-columns:1fr;gap:40px;padding:36px 24px 56px}
  h1{font-size:1.8rem}
  .mast-inner{padding:14px 24px}
  .mainnav{gap:14px}
  .mainnav a{font-size:.82rem}
  .brand-text{font-size:1.15rem}
  .archlist li{grid-template-columns:50px 1fr;row-gap:4px}
  .arch-cat{grid-column:2 / 3;justify-self:start}
  .archlist li a{grid-column:1 / -1}
}
@media (max-width:480px){
  body{font-size:16px}
  .hero-copy h1{font-size:1.6rem}
  .post-card h2{font-size:1.3rem}
  .post-full h2{font-size:1.5rem}
  .btn{padding:10px 16px;font-size:.78rem}
  .btn-ghost{display:block;margin:10px 0 0}
  .site-note{font-size:.78rem}
}