:root, [data-theme="paper"] { --paper:#f6f1e7; --ink:#1d1a16; --soft:#3a342c; --muted:#6f6659; --rule:#d9d0bf; --accent:#b4431f; color-scheme:light; }
[data-theme="newsprint"]    { --paper:#ffffff; --ink:#111111; --soft:#333333; --muted:#666666; --rule:#dddddd; --accent:#c8102e; color-scheme:light; }
[data-theme="sage"]         { --paper:#eef1e8; --ink:#1a211b; --soft:#343d35; --muted:#5f6b5d; --rule:#cfd6c6; --accent:#2f6b3f; color-scheme:light; }
[data-theme="ink"]          { --paper:#171512; --ink:#ece5d8; --soft:#cfc7b8; --muted:#9a9183; --rule:#3a352d; --accent:#e8a04c; color-scheme:dark; }
[data-theme="dusk"]         { --paper:#121829; --ink:#e6e9f2; --soft:#c3c9d9; --muted:#8f98b0; --rule:#2c3550; --accent:#ff9d7a; color-scheme:dark; }

* { box-sizing:border-box; margin:0; padding:0; }
body { background:var(--paper); color:var(--ink); font-family:'Newsreader', Georgia, serif; font-size:19px; line-height:1.55; -webkit-font-smoothing:antialiased; }
body.is-admin { padding-bottom:64px; }
a { color:inherit; text-decoration:none; }
.wrap { max-width:1080px; margin:0 auto; padding:0 28px; }

.masthead { display:flex; justify-content:space-between; align-items:baseline; padding:26px 0 18px; border-bottom:1px solid var(--ink); font-size:15px; letter-spacing:.08em; text-transform:uppercase; }
.masthead nav { display:flex; gap:28px; }
.masthead nav a:hover { color:var(--accent); }
.dateline { font-size:14px; font-style:italic; color:var(--muted); padding:10px 0; border-bottom:1px solid var(--rule); }

.hero { padding:88px 0 96px; }
.hero h1 { font-family:'Instrument Serif', serif; font-weight:400; font-size:clamp(44px, 7.4vw, 104px); line-height:1.02; letter-spacing:-.015em; max-width:17ch; }
.hero h1 em { color:var(--accent); }
.bio { margin-top:40px; max-width:30em; font-size:clamp(22px, 2.5vw, 30px); line-height:1.36; color:var(--soft); }
.bio p + p { margin-top:.75em; }
.bio a { color:var(--ink); border-bottom:1px solid var(--accent); }
.bio a:hover { color:var(--accent); }
.bio p:first-child::first-letter { font-family:'Instrument Serif', serif; font-size:3.2em; float:left; line-height:.82; padding:6px 10px 0 0; color:var(--accent); }

.cols { display:grid; grid-template-columns:2fr 1fr; gap:64px; border-top:1px solid var(--ink); padding:40px 0 80px; }
h2 { font-size:14px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:22px; }
.essay { display:grid; grid-template-columns:86px 1fr; gap:18px; padding:20px 0; border-bottom:1px solid var(--rule); }
.essay time { font-size:15px; font-style:italic; color:var(--muted); padding-top:8px; }
.essay h3 { font-family:'Instrument Serif', serif; font-weight:400; font-size:32px; line-height:1.12; }
a.essay:hover h3, .essay h3 a:hover { color:var(--accent); }
.essay p { font-size:17px; color:var(--muted); margin-top:6px; }
.empty { color:var(--muted); font-style:italic; }
h2 a:hover { color:var(--accent); }
.group + .group { margin-top:56px; }
.titles { list-style:none; }
.titles li { display:flex; justify-content:space-between; align-items:baseline; gap:18px; padding:10px 0; border-bottom:1px solid var(--rule); font-size:21px; }
.titles a:hover { color:var(--accent); }
.titles span { color:var(--muted); font-style:italic; font-size:15px; white-space:nowrap; }

.subscribe { border-top:1px solid var(--ink); padding:44px 0 64px; }
.subscribe h2 { font-family:'Instrument Serif', serif; font-size:36px; font-weight:400; letter-spacing:0; text-transform:none; color:var(--ink); margin-bottom:8px; }
.subscribe p { color:var(--muted); font-size:17px; }
.subscribe .notice { color:var(--accent); font-style:italic; margin-top:10px; }
.subscribe form { display:flex; gap:10px; margin-top:20px; max-width:460px; }
.subscribe input[type=email] { flex:1; min-width:0; font:inherit; font-size:17px; color:var(--ink); background:transparent; border:1px solid var(--muted); padding:11px 14px; border-radius:0; }
.subscribe input[type=email]:focus { outline:2px solid var(--accent); outline-offset:-1px; }
.subscribe button { font:inherit; font-size:15px; letter-spacing:.08em; text-transform:uppercase; padding:11px 20px; border:1px solid var(--ink); background:var(--ink); color:var(--paper); cursor:pointer; }
.subscribe button:hover { background:var(--accent); border-color:var(--accent); }
.trap, .visually-hidden { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
aside section + section { margin-top:44px; }
aside li { list-style:none; padding:11px 0; border-bottom:1px solid var(--rule); display:flex; justify-content:space-between; gap:12px; }
aside li span { color:var(--muted); font-style:italic; font-size:16px; text-align:right; }
aside a:hover { color:var(--accent); }
.now { font-size:17px; color:var(--soft); }

/* Section and entry pages */
.page-head { padding:64px 0 36px; border-bottom:1px solid var(--ink); }
.page-head h1, .entry h1 { font-family:'Instrument Serif', serif; font-weight:400; font-size:clamp(40px, 6vw, 76px); line-height:1.04; letter-spacing:-.015em; }
.page-head a { color:var(--accent); }
.list { padding:16px 0 80px; max-width:760px; }
.entry { max-width:720px; padding:64px 0 88px; }
.kicker { font-size:14px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:18px; }
.kicker a:hover { color:var(--accent); }
.kicker .draft { color:var(--accent); font-weight:500; }
.lede { font-size:24px; line-height:1.4; font-style:italic; color:var(--soft); margin-top:20px; }
.visit { margin-top:22px; }
.visit a { color:var(--accent); border-bottom:1px solid currentColor; }
.prose { margin-top:40px; padding-top:36px; border-top:1px solid var(--rule); font-size:21px; line-height:1.65; color:var(--soft); }
.prose > * + * { margin-top:1.1em; }
.prose h2, .prose h3 { font-family:'Instrument Serif', serif; font-weight:400; color:var(--ink); letter-spacing:0; text-transform:none; line-height:1.15; margin:1.7em 0 0; }
.prose h2 { font-size:36px; }
.prose h3 { font-size:28px; }
.prose a { color:var(--accent); border-bottom:1px solid currentColor; }
.prose ul, .prose ol { padding-left:1.3em; }
.prose li + li { margin-top:.35em; }
.prose blockquote { border-left:2px solid var(--accent); padding-left:22px; font-style:italic; color:var(--ink); }
.prose code { font-family:ui-monospace, Menlo, monospace; font-size:.8em; background:var(--rule); padding:.1em .35em; border-radius:3px; }
.prose pre { background:var(--rule); padding:16px 18px; overflow-x:auto; border-radius:4px; line-height:1.5; }
.prose pre code { background:none; padding:0; }
.prose img { max-width:100%; height:auto; }
.prose hr { border:0; border-top:1px solid var(--rule); margin:2em 0; }

.colophon { border-top:1px solid var(--ink); padding:22px 0 44px; display:flex; justify-content:space-between; font-size:15px; color:var(--muted); font-style:italic; }

/* Admin-only theme previewer (never sent to visitors) */
.adminbar { position:fixed; left:50%; bottom:14px; transform:translateX(-50%); display:flex; align-items:center; gap:10px; max-width:calc(100vw - 24px); padding:7px 8px 7px 16px; border-radius:999px; background:#16161a; color:#ececf0; font:500 13px/1 ui-sans-serif, system-ui, sans-serif; box-shadow:0 8px 30px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.12); white-space:nowrap; z-index:10; }
.adminbar a { color:#ececf0; }
.adminbar a:hover { text-decoration:underline; }
.adminbar .sep { width:1px; height:16px; background:#3a3a44; }
.adminbar .cap, .adminbar .name { color:#a5a5b2; }
.adminbar .name { min-width:9.5em; }
.adminbar .swatches { display:flex; }
.adminbar .swatches button { width:28px; height:28px; border:0; background:none; cursor:pointer; display:grid; place-items:center; border-radius:50%; }
.adminbar .swatches i { width:17px; height:17px; border-radius:50%; background:linear-gradient(135deg, var(--sw-bg) 50%, var(--sw-ac) 50%); box-shadow:0 0 0 1px #55555f; }
.adminbar .swatches button[aria-pressed="true"] i { box-shadow:0 0 0 2px #16161a, 0 0 0 4px #fff; }
.adminbar .swatches button:focus-visible { outline:2px solid #8f8ff8; }
.adminbar form { display:flex; }
.adminbar [data-save] { font:inherit; border:0; border-radius:999px; padding:8px 14px; background:#ececf0; color:#16161a; cursor:pointer; }
.adminbar [data-save][hidden] { display:none; }

@media (max-width:760px) {
  body { font-size:17px; }
  .wrap { padding:0 16px; }
  .masthead { flex-direction:column; gap:10px; }
  .masthead nav { gap:18px; }
  .hero { padding:52px 0 60px; }
  .bio { margin-top:28px; }
  .titles li { font-size:19px; }
  .cols { grid-template-columns:1fr; gap:48px; }
  .essay { grid-template-columns:1fr; gap:2px; }
  .essay h3 { font-size:27px; }
  .page-head { padding:40px 0 26px; }
  .entry { padding:40px 0 64px; }
  .lede { font-size:21px; }
  .prose { font-size:19px; }
  .colophon { flex-direction:column; gap:6px; }
  .adminbar { padding-left:12px; gap:6px; }
  .adminbar .cap, .adminbar .name, .adminbar .sep { display:none; }
}
