:root{
  --bg:#1B1B16;
  --paper:#E7E2D3;
  --muted:#9C9684;
  --accent:#B98A55;
  --slate:#6E8580;
  --rule:#33332C;
  --transmission-bg:rgba(110,133,128,0.06);
}
html[data-theme="light"]{
  --bg:#F2EEE1;
  --paper:#1C1914;
  --muted:#6B6457;
  --accent:#8A2E12;
  --slate:#3F4F49;
  --rule:#C7BFA7;
  --transmission-bg:rgba(63,79,73,0.05);
}
*{box-sizing:border-box;}
html,body{margin:0;background:var(--bg);transition:background 0.2s ease;}
body{
  font-family:'Source Serif 4', serif;
  color:var(--paper);
  -webkit-font-smoothing:antialiased;
  transition:color 0.2s ease;
}
a{color:inherit;}
.page{max-width:760px;margin:0 auto;padding:64px 32px 96px;}

.theme-toggle{font-family:'IBM Plex Mono', monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);background:none;border:1px solid var(--rule);border-radius:0;padding:6px 12px;cursor:pointer;}
.theme-toggle:hover{color:var(--accent);border-color:var(--accent);}

.masthead{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--rule);padding-bottom:18px;margin-bottom:8px;}
html[data-theme="light"] .masthead{border-bottom:4px double var(--rule);}
.wordmark{font-family:'Fraunces', serif;font-weight:900;font-optical-sizing:auto;font-size:34px;letter-spacing:-0.5px;color:var(--paper);margin:0;text-decoration:none;display:inline-block;}
.wordmark span{color:var(--accent);}
.tagline{font-family:'IBM Plex Mono', monospace;font-size:11px;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;margin:0;}

.index-label{font-family:'IBM Plex Mono', monospace;font-size:11px;letter-spacing:2px;color:var(--slate);text-transform:uppercase;margin:40px 0 18px;}

.entry{display:grid;grid-template-columns:88px 1fr;gap:20px;padding:20px 0;border-bottom:1px solid var(--rule);}
.entry:first-of-type{border-top:1px solid var(--rule);}
.entry-date{font-family:'IBM Plex Mono', monospace;font-size:11px;color:var(--muted);padding-top:4px;}
.entry-title{font-family:'Fraunces', serif;font-weight:600;font-size:20px;line-height:1.3;margin:0 0 6px;color:var(--paper);}
.entry-title a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;}
.entry-title a:hover{border-bottom-color:var(--accent);color:var(--accent);}
.entry-dek{font-size:15px;line-height:1.55;color:var(--muted);margin:0;}
.entry-tag{font-family:'IBM Plex Mono', monospace;font-size:10px;color:var(--accent);letter-spacing:1px;text-transform:uppercase;margin-top:8px;display:inline-block;}

.back-link{font-family:'IBM Plex Mono', monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);text-decoration:none;display:inline-block;margin-bottom:32px;}
.back-link:hover{color:var(--accent);}

.article-meta{font-family:'IBM Plex Mono', monospace;font-size:11px;color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:10px;}
.article-title{font-family:'Fraunces', serif;font-weight:700;font-size:38px;line-height:1.15;letter-spacing:-0.5px;color:var(--paper);margin:0 0 28px;}

.prose{font-size:18px;line-height:1.75;color:var(--paper);max-width:66ch;}
.prose p{margin:0 0 22px;}
.prose .lede::first-letter{font-family:'Fraunces', serif;font-weight:700;font-size:54px;line-height:0.85;float:left;padding:4px 8px 0 0;color:var(--accent);}

.transmission{
  font-family:'IBM Plex Mono', monospace;
  font-size:13.5px;
  line-height:1.85;
  color:var(--slate);
  border-left:2px solid var(--slate);
  padding:18px 22px;
  margin:36px 0;
  background:var(--transmission-bg);
}
.transmission-tag{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:10px;}
.signal-mark{letter-spacing:0;font-size:11px;opacity:0.9;}

.signature-rule{
  display:block;
  text-align:center;
  font-family:'IBM Plex Mono', monospace;
  letter-spacing:7px;
  font-size:14px;
  color:var(--slate);
  margin:48px 0;
  -webkit-mask-image:linear-gradient(to right, transparent, #000 30%, #000 70%, transparent);
  mask-image:linear-gradient(to right, transparent, #000 30%, #000 70%, transparent);
}

.masthead-right{display:flex;align-items:center;gap:20px;}
.site-nav{display:flex;gap:18px;font-family:'IBM Plex Mono', monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;}
.site-nav a{color:var(--muted);text-decoration:none;}
.site-nav a:hover{color:var(--accent);}
.site-nav a.active{color:var(--accent);border-bottom:1px solid var(--accent);padding-bottom:2px;}

.archive-year{font-family:'Fraunces', serif;font-weight:600;font-size:15px;color:var(--muted);margin:40px 0 4px;}
.archive-year:first-of-type{margin-top:8px;}
.archive-row{display:grid;grid-template-columns:64px 1fr 110px;gap:16px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--rule);}
.archive-row:first-of-type{border-top:1px solid var(--rule);}
.archive-date{font-family:'IBM Plex Mono', monospace;font-size:11px;color:var(--muted);}
.archive-title{font-size:15.5px;color:var(--paper);text-decoration:none;}
.archive-title:hover{color:var(--accent);}
.archive-tag{font-family:'IBM Plex Mono', monospace;font-size:10px;color:var(--accent);letter-spacing:1px;text-transform:uppercase;text-align:right;}

.hero{padding-bottom:40px;border-bottom:1px solid var(--rule);margin-bottom:48px;}
.hero-meta{font-family:'IBM Plex Mono', monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin:0;}
.hero-meta .accent-tag{color:var(--accent);}
.hero-title{font-family:'Fraunces', serif;font-weight:700;font-size:42px;line-height:1.1;letter-spacing:-0.5px;color:var(--paper);margin:14px 0 16px;}
.hero-title a{color:inherit;text-decoration:none;}
.hero-title a:hover{color:var(--accent);}
.hero-dek{font-size:18px;line-height:1.6;color:var(--muted);max-width:60ch;margin:0 0 4px;}

.section-label{font-family:'IBM Plex Mono', monospace;font-size:11px;letter-spacing:2px;color:var(--slate);text-transform:uppercase;margin:0 0 20px;}

.featured-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:0;margin-bottom:40px;}
.featured-item{padding:0 28px;}
.featured-item:first-child{padding-left:0;}
.featured-item:not(:first-child){border-left:1px solid var(--rule);}
.featured-tag{display:block;font-family:'IBM Plex Mono', monospace;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--accent);margin-bottom:10px;}
.featured-title{font-family:'Fraunces', serif;font-weight:600;font-size:17px;line-height:1.3;margin:0 0 8px;}
.featured-title a{color:var(--paper);text-decoration:none;}
.featured-title a:hover{color:var(--accent);}
.featured-dek{font-size:13.5px;line-height:1.5;color:var(--muted);margin:0 0 10px;}
.featured-date{font-family:'IBM Plex Mono', monospace;font-size:10px;color:var(--muted);letter-spacing:1px;}

.archive-cta{text-align:center;margin-top:8px;}
.archive-cta a{font-family:'IBM Plex Mono', monospace;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);text-decoration:none;}
.archive-cta a:hover{color:var(--accent);}

.hero-image{aspect-ratio:16/9;width:100%;overflow:hidden;margin-bottom:22px;border:1px solid var(--rule);}
.hero-image img{display:block;width:100%;height:100%;object-fit:cover;}

.featured-image{aspect-ratio:16/9;width:100%;overflow:hidden;margin-bottom:14px;border:1px solid var(--rule);}
.featured-image img{display:block;width:100%;height:100%;object-fit:cover;}

.article-hero-image{aspect-ratio:16/9;width:100%;overflow:hidden;margin:28px 0 36px;border:1px solid var(--rule);}
.article-hero-image img{display:block;width:100%;height:100%;object-fit:cover;}

.photo{filter:grayscale(85%) contrast(1.08) brightness(0.95) sepia(8%);}
html[data-theme="light"] .photo{filter:grayscale(75%) contrast(1.05) brightness(1.02) sepia(5%);}

.figure{margin:36px 0;}
.figure .photo-frame{aspect-ratio:16/9;width:100%;overflow:hidden;border:1px solid var(--rule);}
.figure .photo-frame img{display:block;width:100%;height:100%;object-fit:cover;}
.figure figcaption{font-family:'IBM Plex Mono', monospace;font-size:11px;letter-spacing:0.5px;color:var(--muted);margin-top:10px;line-height:1.5;}
.figure figcaption .plate-num{color:var(--accent);margin-right:8px;}

.media-placeholder{
  aspect-ratio:16/9;
  width:100%;
  background-color:var(--bg);
  background-image:repeating-linear-gradient(135deg, var(--rule) 0, var(--rule) 1px, transparent 1px, transparent 10px);
  border:1px dashed var(--rule);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.media-placeholder span{
  font-family:'IBM Plex Mono', monospace;
  font-size:11px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--muted);
  padding:0 24px;
}

.coming-soon{font-family:'IBM Plex Mono', monospace;font-size:12px;letter-spacing:1px;color:var(--muted);text-align:center;padding:32px 0;margin-bottom:40px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
