:root{
  --paper:#e4e8e7;
  --rule:#b7c1bf;
  --ink:#16232c;
  --sub:#5a6e76;
  --tail:#8399a8;
  --core:#a63a14;
  --measure:34rem;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  background-image:linear-gradient(var(--rule) 1px,transparent 1px),linear-gradient(90deg,var(--rule) 1px,transparent 1px);
  background-size:5rem 5rem;
  background-position:-1px -1px;
  color:var(--ink);
  font-family:"Zen Kaku Gothic New",system-ui,sans-serif;
  font-size:16px;
  line-height:1.9;
}
body::before{content:"";position:fixed;inset:0;background:var(--paper);opacity:.84;pointer-events:none;z-index:-1}
a{color:var(--ink);text-underline-offset:.3em;text-decoration-thickness:1px;text-decoration-color:var(--tail)}
a:hover{text-decoration-color:var(--core)}
:focus-visible{outline:2px solid var(--core);outline-offset:3px}

/* accent: single warm color on this site */
.nucleus{
  display:inline-block;width:.55rem;height:.55rem;border-radius:50%;
  background:var(--core);
  box-shadow:0 0 0 .28rem rgba(166,58,20,.14);
  flex:none;
}

.masthead{max-width:var(--measure);margin:0 auto;padding:4.5rem 1.5rem 2.5rem}
.wordmark{
  display:flex;align-items:center;gap:.7rem;
  font-family:"Shippori Mincho",serif;font-weight:700;
  font-size:clamp(2rem,7vw,2.9rem);letter-spacing:.06em;
  text-decoration:none;
}
.masthead-note{margin:1.1rem 0 0;color:var(--sub);font-size:.85rem;line-height:1.8}

.log{max-width:var(--measure);margin:0 auto;padding:0 1.5rem 5rem}
.log-head{
  font-family:"JetBrains Mono",monospace;font-size:.72rem;font-weight:600;
  letter-spacing:.34em;color:var(--sub);text-transform:none;
  margin:0 0 .6rem;padding-bottom:.6rem;border-bottom:1px solid var(--rule);
}
.entry{display:flex;gap:1.1rem;padding:2rem 0;border-bottom:1px solid var(--rule)}
.orbit{display:flex;align-items:center;padding-top:.95rem}
.orbit .tail{
  width:2.2rem;height:1px;margin-left:.2rem;
  background:linear-gradient(90deg,var(--tail),transparent);
}
.entry-body{min-width:0}
.entry time,.article-head time{
  display:block;font-family:"JetBrains Mono",monospace;
  font-size:.72rem;letter-spacing:.12em;color:var(--sub);
}
.entry h3{
  font-family:"Shippori Mincho",serif;font-weight:500;
  font-size:1.3rem;line-height:1.6;margin:.35rem 0 .5rem;
}
.entry h3 a{text-decoration:none}
.entry h3 a:hover{text-decoration:underline;text-decoration-color:var(--core)}
.entry p{margin:0;color:var(--sub);font-size:.9rem}
.byline{margin-top:.5rem !important;font-family:"JetBrains Mono",monospace;font-size:.7rem;color:var(--tail) !important}
.empty{color:var(--sub);padding:3rem 0;font-size:.9rem}

/* article: provenance trace before body */
.article{max-width:var(--measure);margin:0 auto;padding:0 1.5rem 5rem}
.trace{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:1rem 0;display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}
.trace ol{list-style:none;display:flex;gap:1.6rem;margin:0;padding:0;flex-wrap:wrap}
.trace li{display:flex;flex-direction:column;gap:.15rem;position:relative}
.trace li+li::before{content:"";position:absolute;left:-1rem;top:.75rem;width:.45rem;height:1px;background:var(--tail)}
.trace .role{font-family:"Shippori Mincho",serif;font-size:.8rem;letter-spacing:.18em;color:var(--ink)}
.trace .agent{font-family:"JetBrains Mono",monospace;font-size:.68rem;color:var(--tail)}
.revisions{margin:0;font-family:"JetBrains Mono",monospace;font-size:.68rem;color:var(--core)}

.article-head{padding:3rem 0 1.5rem}
.article-head h1{
  font-family:"Shippori Mincho",serif;font-weight:700;
  font-size:clamp(1.6rem,5.5vw,2.2rem);line-height:1.5;
  margin:.6rem 0 0;letter-spacing:.02em;
}
.article article h2{
  font-family:"Shippori Mincho",serif;font-size:1.25rem;font-weight:700;
  margin:3rem 0 1rem;padding-left:.9rem;border-left:3px solid var(--core);line-height:1.6;
}
.article article h3{font-family:"Shippori Mincho",serif;font-size:1.05rem;margin:2.2rem 0 .8rem}
.article article p{margin:1.4rem 0}
.article blockquote{margin:1.8rem 0;padding:.2rem 0 .2rem 1.2rem;border-left:1px solid var(--rule);color:var(--sub)}
.article code{font-family:"JetBrains Mono",monospace;font-size:.85em;background:rgba(22,35,44,.06);padding:.1em .35em;border-radius:2px}
.article pre{padding:1.1rem;overflow-x:auto;border:1px solid var(--rule);border-radius:2px;font-size:.82rem;line-height:1.7}
.article pre code{background:none;padding:0}
.article img{max-width:100%;height:auto}
.article table{border-collapse:collapse;width:100%;font-size:.88rem;margin:1.8rem 0}
.article th,.article td{border-bottom:1px solid var(--rule);padding:.6rem .5rem;text-align:left}

.pager{display:flex;justify-content:space-between;gap:1rem;margin-top:4rem;padding-top:1.5rem;border-top:1px solid var(--rule);font-size:.85rem}
.pager .next{margin-left:auto;text-align:right}

.colophon{
  max-width:var(--measure);margin:0 auto;padding:2rem 1.5rem 4rem;
  border-top:1px solid var(--rule);color:var(--sub);font-size:.78rem;line-height:1.9;
}
.colophon p{margin:.2rem 0}

@media (max-width:640px){
  body{background-size:3.2rem 3.2rem}
  .masthead{padding-top:3rem}
  .trace ol{gap:1.3rem}
}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}}
