:root {
  --paper: #ffffff;
  --ink: #20201d;
  --muted: #6f6d62;
  --rule: #e7e3da;
  --accent: #2f6b4f;
  --serif: 'Newsreader', Georgia, "Times New Roman", serif;
  --mono: 'IBM Plex Mono', ui-monospace, Menlo, monospace;
}

html,
body {
  margin: 0;
  padding: 0;
  background: var(--paper);
  color: var(--ink);
}  ::selection{background:var(--accent);color:#fff;}

body {
  font-family: var(--serif);
  font-size: 19px;
  line-height: 1.45;
}

/* wide shell for the editorial home; article/list re-narrow themselves below */
.site-shell {
  max-width: 1040px;
  margin: 0 auto;
  padding: 0 24px;
}

.masthead {
  padding: 54px 0 18px;
  border-bottom: 1px solid var(--rule);
}

.masthead-row,
.footer-row {
  display: flex;
  align-items:baseline;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.site-title {
  color: var(--ink);
  text-decoration: none;
  font-size: 34px;
  line-height: 1.05;
}

.site-kicker{
    font-family: var(--mono);
    color: var(--muted);
    font-size:12px
}

.tagline{
  margin:8px 0 0;
  font-family: var(--mono);
  color: var(--muted);
  font-size:12.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.site-nav{
  display:flex;
  align-items:baseline;
  gap:12px;
  margin-top:18px;
  font-family:var(--mono);
  font-size:14px;
  flex-wrap:wrap;
}

.section-label,
.footer-row,
.article-header time {
  font-family: var(--mono);
  color: var(--muted);
  font-size:12px
}

.tagline,
.section-label {
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.site-nav {
  display: flex;
  gap: 12px;
  margin-top: 18px;
  flex-wrap: wrap;
}

.site-nav a {
  color: var(--ink);
  text-decoration: none;
}

.site-nav a:hover,
.site-nav a.is-active,
a {
  color: var(--accent);
}

.home-page{
  padding:34px 0 10px;
  min-height:46vh;
}
.article-page,
.list-page {
  padding: 34px 0 10px;
  min-height: 46vh;
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}

.intro {
  margin:0 0 20px;
  font-size: 21px;
  line-height: 1.55;
}

/* ---------- home hero row: intro + now, side by side ---------- */
.home-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:40px;
  align-items:end;
  padding:6px 0 4px;
  border-bottom:1px solid var(--rule);
}
.home-hero .intro{ margin:0; }
.home-hero .now-box{ margin:0; }

.now-box {
  margin: 30px 0;
  padding: 18px 20px;
  border: 1px solid var(--rule);
  background: rgba(0, 0, 0, 0.012);
}
.now-list{
  margin:0;
  padding-left:18px;
  font-size:17.5px;
  line-height:1.7;
}

.pulse-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--accent);
  margin-right: 7px;
  animation: pulse 1.8s ease-in-out infinite;
}

.home-page .section-label{ margin:46px 0 18px; }

/* ---------- featured card (1a) ---------- */
.featured{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:36px;
  align-items:center;
  text-decoration:none;
  color:inherit;
  transition:transform .3s cubic-bezier(.2,.7,.3,1);
}
.featured:hover{ transform:translateY(-3px); }
.featured-media{ aspect-ratio:4/3; }
.featured-title{
  font-size:36px;
  line-height:1.1;
  letter-spacing:-.015em;
  font-weight:500;
  margin:12px 0 0;
  color:var(--ink);
  transition:color .2s ease;
  text-wrap:pretty;
}
.featured:hover .featured-title{ color:var(--cat); }
.featured-body .card-desc{ font-size:18px; }

/* ---------- card grid (1a) ---------- */
.card-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:44px 30px;
}
.card{
  display:block;
  text-decoration:none;
  color:inherit;
  transition:transform .3s cubic-bezier(.2,.7,.3,1);
}
.card:hover{ transform:translateY(-4px); }

.card-media{
  position:relative;
  overflow:hidden;
  aspect-ratio:16/10;
  border-radius:2px;
  background:#f2efe9;
}
.card-media-img{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  transition:transform .6s cubic-bezier(.2,.7,.3,1);
}
.card:hover .card-media-img{ transform:scale(1.05); }
.card-media-tint{
  position:absolute;
  inset:0;
  background:var(--cat);
  mix-blend-mode:multiply;
  opacity:.34;
  transition:opacity .45s ease;
}
.card:hover .card-media-tint{ opacity:.1; }

/* empty (no image): a colored diagonal hatch that intensifies on hover */
.card-media--empty .card-media-img{
  background:repeating-linear-gradient(135deg, var(--cat) 0 1.5px, transparent 1.5px 12px);
  opacity:.5;
}
.card-media--empty .card-media-tint{ opacity:0; }
.card:hover .card-media--empty .card-media-img{ opacity:.75; }

.card-lock{
  position:absolute;
  top:12px;
  right:12px;
  width:34px;
  height:34px;
  border-radius:999px;
  background:rgba(20,19,17,.72);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
}

.card-cat{
  display:flex;
  align-items:center;
  gap:7px;
  font-family:var(--mono);
  font-size:12px;
  color:var(--muted);
  margin:13px 0 0;
}
.card-kind{ color:var(--cat); font-weight:600; }
.card-sep{ color:var(--muted); }

.card-title{
  font-size:23px;
  line-height:1.18;
  letter-spacing:-.01em;
  font-weight:500;
  margin:9px 0 0;
  color:var(--ink);
  transition:color .2s ease;
  text-wrap:pretty;
}
.card:hover .card-title{ color:var(--cat); }

.card-desc{
  font-size:16px;
  line-height:1.5;
  color:#4c4a43;
  margin:9px 0 0;
  text-wrap:pretty;
}
.card-meta{
  font-family:var(--mono);
  font-size:12px;
  color:var(--muted);
  margin:12px 0 0;
}

@media (max-width: 860px){
  .card-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .featured,
  .home-hero{ grid-template-columns:1fr; align-items:start; }
}
@media (max-width: 560px){
  .card-grid{ grid-template-columns:1fr; }
}

/* ---------- article header (variant A: illustrated + centered) ---------- */
.article-hero{
  text-align:center;
  margin:8px 0 0;
}
.article-hero img{
  max-width:200px;
  height:auto;
  display:inline-block;
}
.article-header--centered{
  text-align:center;
  border-bottom:0;
  padding-top:24px;
}
.article-kicker{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin:0;
}
.article-header--centered h1{
  font-size:44px;
  line-height:1.08;
  letter-spacing:-.02em;
  font-weight:600;
  margin:14px auto 0;
  max-width:20ch;
  text-wrap:balance;
}
.article-byline{
  font-family:var(--mono);
  font-size:12.5px;
  color:var(--muted);
  margin:16px 0 0;
}
.article-rule{
  width:44px;
  height:1px;
  background:var(--rule);
  margin:24px auto 30px;
}

/* subtle drop cap on essays */
.article--essay .article-content > p:first-of-type::first-letter{
  float:left;
  font-size:64px;
  line-height:.72;
  padding:6px 10px 0 0;
  font-weight:500;
}

.tag-list {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 28px;
}

.tag {
  font-family: var(--mono);
  font-size: 12px;
}

.post-list {
  list-style: none;
  padding: 0;
}

.post-list li {
  padding: 14px 0;
  border-bottom: 1px solid var(--rule);
}

.backlinks {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid var(--rule);
}

.article-content img {
  max-width: 100%;
}

.article-content code {
  font-family: var(--mono);
}

.site-footer {
  padding: 18px 0 56px;
  border-top: 1px solid var(--rule);
  margin-top: 30px;
}

.footer-stars {
  text-align: center;
  color: var(--rule);
  letter-spacing: 0.5em;
}

/* ============================================================
   MARGINALIA — unchanged from your original system
   ============================================================ */
.article-content .margin-figure {
  margin: 2rem 0;
}

.article-content .margin-figure img {
  display: block;
  width: 100%;
  max-width: 100%;
}

.article-content .margin-figure figcaption,
.article-content .marginalia {
  font-family: var(--mono);
  font-size: 13px;
  line-height: 1.35;
  color: var(--muted);
}

.article-content .margin-figure figcaption,
.article-content .marginalia {
  border-left: 1px solid var(--accent);
  padding-left: 14px;
}

.article-content .marginalia {
  margin: 1.25rem 0;
}

@media (min-width: 1050px) {
  .article-content .margin-figure {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 220px;
    column-gap: 28px;
    align-items: start;
    width: calc(100% + 248px);
  }

  .article-content .margin-figure img {
    grid-column: 1;
  }

  .article-content .margin-figure figcaption {
    grid-column: 2;
  }

  .article-content .marginalia {
    width: 220px;
    float: right;
    clear: right;
    margin-right: -248px;
    margin-left: 28px;
  }

  .article-content .marginalia--left {
    float: left;
    clear: left;
    margin-left: -248px;
    margin-right: 28px;
    border-left: 0;
    border-right: 1px solid var(--accent);
    padding-left: 0;
    padding-right: 14px;
    text-align: right;
  }
}

@media (max-width: 1049px) {
  .article-content .margin-figure figcaption {
    margin-top: 0.75rem;
  }
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.25; }
}
