:root{
  --text:#161817;
  --muted:#5f6967;
  --soft:#97a4a1;
  --line:#d8ddd9;
  --bg:#fbfaf7;
  --accent:#2f5d73;
  --accent-soft:#e9f0ee;
  --accent-2:#6d8f88;
  --max-header:920px;
  --max-page:760px;
  --max-home:940px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family: Georgia, "Times New Roman", serif;
  line-height:1.58;
  font-size:18px;
}

a{
  color:inherit;
  text-decoration:none;
  transition:color .18s ease, text-decoration-color .18s ease, background-color .18s ease, border-color .18s ease;
}
a:hover{
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-color:currentColor;
}
img{display:block;max-width:100%}

.site-header{
  max-width:var(--max-header);
  margin:0 auto;
  padding:24px 28px 10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

.brand-block{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}

.home-logo{
  width:50px;
  height:50px;
  border-radius:999px;
  overflow:hidden;
  flex:0 0 auto;
  box-shadow:0 0 0 1px rgba(47,93,115,.16);
}

.home-logo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 22%;
}

.site-title{
  font-size:1.34rem;
  line-height:1.05;
  font-weight:400;
  white-space:nowrap;
}

.site-title a:hover,
.home-logo:hover{ text-decoration:none; }

.main-nav{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  font-size:1rem;
}

.main-nav a{
  color:var(--muted);
}

.main-nav a:hover{
  color:var(--accent);
}

.main-nav a.is-active{
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:4px;
  text-decoration-thickness:1px;
}

.page,
.home-page{
  margin:0 auto;
  padding:16px 28px 64px;
}
.page{max-width:var(--max-page)}
.home-page{max-width:var(--max-home)}

.home-layout{
  display:grid;
  grid-template-columns:300px minmax(0, 1fr);
  gap:34px;
  align-items:start;
  margin-top:12px;
}

.home-figure{margin:0}
.home-figure img{
  width:100%;
  max-width:300px;
  height:auto;
  box-shadow:0 0 0 1px rgba(0,0,0,.04);
}

.home-intro{
  max-width:560px;
  padding-top:4px;
}

.intro-lead{
  margin:0 0 13px;
  font-size:1em;
  line-height:1.58;
  font-weight:400;
}

.page h1{
  margin:0 0 16px;
  font-size:1.96rem;
  line-height:1.2;
  font-weight:700;
  color:var(--accent);
}

.home-intro p,
.page p{margin:0 0 13px}

.home-intro strong{
  font-weight:700;
}

.ofvi-link{
  color:var(--accent);
}
.ofvi-link:hover{
  text-decoration:underline;
  text-decoration-color:var(--accent);
}

.home-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px 16px;
  margin-top:18px;
  font-size:0.98rem;
}

.home-links a{
  color:var(--accent);
  text-decoration:underline;
  text-decoration-color:transparent;
  text-underline-offset:3px;
}
.home-links a:hover{
  text-decoration-color:currentColor;
}

.asterism{
  margin:30px 0 0;
  text-align:center;
  color:var(--accent-2);
  letter-spacing:.32em;
  font-size:1rem;
}

.section{
  margin-top:24px;
}

.section h2,
.site-footer h2{
  margin:0 0 11px;
  font-size:1.08rem;
  line-height:1.3;
  font-weight:700;
}

.section h3{
  margin:0;
}

.bullets,
.entry-list{
  margin:0;
  padding-left:0;
  list-style:none;
}

.bullets li{
  position:relative;
  padding-left:1.05em;
  margin:0 0 7px;
}
.bullets li::before{
  content:"–";
  position:absolute;
  left:0;
  color:var(--accent-2);
}

.bullets a{
  color:var(--accent);
  text-decoration:underline;
  text-decoration-color:transparent;
  text-underline-offset:3px;
}
.bullets a:hover{
  color:var(--accent);
  text-decoration-color:currentColor;
}

.year-block{
  border-top:1px solid var(--line);
  padding-top:10px;
  margin-top:10px;
}

.year-title{
  margin:0 0 7px;
  color:var(--accent);
  font-size:0.92rem;
  font-weight:700;
  letter-spacing:.03em;
}

.entry-list li{
  margin:0 0 8px;
}

.entry-title{
  font-size:1rem;
  font-weight:400;
}

.entry-title a,
.entry-meta a{
  text-decoration:underline;
  text-decoration-color:transparent;
  text-underline-offset:3px;
  transition:text-decoration-color .15s ease, color .15s ease;
}
.entry-title a:hover,
.entry-meta a:hover{
  color:var(--accent);
  text-decoration-color:currentColor;
}

.entry-meta{
  display:block;
  color:var(--muted);
  margin-top:1px;
}

.entry-meta em,
.entry-title em{ font-style:italic; }

.planned-entry{
  opacity:.58;
}

.planned-label{
  color:var(--soft);
}

.site-footer{
  max-width:var(--max-page);
  margin:0 auto;
  padding:0 28px 46px;
}

.footer-inner{
  border-top:1px solid var(--line);
  padding-top:18px;
}

.footer-inner p{ margin:0 0 8px; }
.footer-inner a{
  color:var(--accent);
}
.small-note{
  color:var(--muted);
  font-size:.94rem;
}

@media (max-width:900px){
  .site-header{
    align-items:flex-start;
    flex-direction:column;
    gap:12px;
  }
  .main-nav{ gap:8px 16px; }
  .home-layout{
    grid-template-columns:1fr;
    gap:24px;
  }
  .home-figure img{ max-width:300px; }
}

@media (max-width:640px){
  body{font-size:17px}
  .site-header,.page,.home-page,.site-footer{padding-left:20px;padding-right:20px}
  .home-intro h1,.page h1{font-size:1.68rem}
  .site-title{font-size:1.18rem}
  .home-logo{width:46px;height:46px}
}
