
:root{
  --bg:#fbfaf7;
  --surface:#f2f0eb;
  --text:#1c1c1c;
  --muted:#5b5b5b;
  --link:#064f9b;
  --link-hover:#00366f;
  --rule:#d4d1ca;
  --accent:#1c1c1c;
  --focus:#b00020;
  --max:1180px;
  --measure:72ch;
  --sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
  --body-size:1.08rem;
  --line:1.68;
}
*{box-sizing:border-box}
html{font-size:100%;scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--serif);
  font-size:var(--body-size);
  line-height:var(--line);
  text-rendering:optimizeLegibility;
}
body:has(#contrast-toggle:checked){
  --bg:#fff;
  --surface:#fff;
  --text:#000;
  --muted:#111;
  --link:#003b8e;
  --link-hover:#001f4d;
  --rule:#000;
  --focus:#b00020;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#161616;--surface:#222;--text:#f1f1f1;--muted:#c8c8c8;
    --link:#8fc5ff;--link-hover:#c4e1ff;--rule:#555;--accent:#fff;
  }
  body:has(#contrast-toggle:checked){
    --bg:#000;--surface:#000;--text:#fff;--muted:#fff;
    --link:#fff;--link-hover:#fff;--rule:#fff;
  }
}
@media (prefers-contrast:more){
  :root{--text:#000;--muted:#111;--link:#003b8e;--rule:#000}
}
a{color:var(--link);text-decoration-thickness:.08em;text-underline-offset:.14em}
a:hover{color:var(--link-hover)}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
img{max-width:100%;height:auto}
figure{margin:1.8rem 0}
figcaption{font-family:var(--sans);font-size:.88rem;color:var(--muted);line-height:1.45;margin-top:.5rem}
.skip-link{
  position:absolute;left:1rem;top:-5rem;padding:.7rem 1rem;
  background:var(--text);color:var(--bg);z-index:100;border-radius:0 0 .3rem .3rem;
}
.skip-link:focus{top:0}
.site-header{
  border-bottom:1px solid var(--rule);
  background:var(--bg);
}
.header-inner{
  max-width:var(--max);margin:auto;padding:1.25rem 1.25rem .85rem;
  display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;
}
.brand{color:var(--text);text-decoration:none}
.brand-name{font-family:var(--sans);font-size:1.35rem;font-weight:750;letter-spacing:-.02em}
.brand-tag{display:block;color:var(--muted);font-family:var(--sans);font-size:.83rem;line-height:1.35;margin-top:.1rem}
.nav-toggle{display:none}
.site-nav ul{display:flex;gap:1.15rem;list-style:none;padding:0;margin:0;flex-wrap:wrap;justify-content:flex-end}
.site-nav a{font-family:var(--sans);font-size:.91rem;text-decoration:none;color:var(--text)}
.site-nav a:hover{text-decoration:underline}
.header-tools{
  max-width:var(--max);margin:auto;padding:0 1.25rem .7rem;
  display:flex;justify-content:flex-end;gap:.6rem;
}
.contrast-label{
  font-family:var(--sans);font-size:.76rem;color:var(--muted);cursor:pointer;
  border:1px solid var(--rule);padding:.25rem .5rem;border-radius:.25rem;
}
#contrast-toggle{position:absolute;opacity:0;width:1px;height:1px}
main{max-width:var(--max);margin:auto;padding:3.2rem 1.25rem 5rem}
.page-intro{max-width:var(--measure);margin-bottom:2.6rem}
h1,h2,h3,h4{
  font-family:var(--sans);line-height:1.12;letter-spacing:-.025em;
  color:var(--text);
}
h1{font-size:clamp(2.15rem,5vw,4rem);margin:0 0 1rem}
h2{font-size:clamp(1.45rem,3vw,2.05rem);margin:2.8rem 0 .9rem}
h3{font-size:1.2rem;margin:2rem 0 .5rem}
p,ul,ol,blockquote,table{max-width:var(--measure)}
p{margin:0 0 1.15rem}
ul,ol{padding-left:1.35rem}
li{margin:.35rem 0}
blockquote{
  margin:1.5rem 0;padding:.2rem 0 .2rem 1.2rem;
  border-left:4px solid var(--rule);font-style:italic;
}
hr{border:0;border-top:1px solid var(--rule);margin:3rem 0}
.site-footer{
  border-top:1px solid var(--rule);font-family:var(--sans);font-size:.82rem;
  color:var(--muted);max-width:var(--max);margin:auto;padding:1.4rem 1.25rem 3rem;
}
.home-grid{
  display:grid;grid-template-columns:minmax(0,1.4fr) minmax(250px,.6fr);
  gap:4rem;align-items:start;
}
.home-lede{font-size:clamp(1.25rem,2.4vw,1.65rem);line-height:1.5;max-width:34ch}
.home-links{border-top:1px solid var(--rule)}
.home-links a{
  display:block;padding:.85rem 0;border-bottom:1px solid var(--rule);
  text-decoration:none;font-family:var(--sans);font-weight:650;
}
.section-kicker{
  font-family:var(--sans);text-transform:uppercase;letter-spacing:.1em;
  font-size:.72rem;font-weight:750;color:var(--muted);margin-bottom:.6rem;
}
.post-list{max-width:var(--measure)}
.post{
  padding:2.1rem 0;border-top:1px solid var(--rule);
}
.post:first-child{border-top:0;padding-top:0}
.post-title{font-size:clamp(1.4rem,2.6vw,2rem);margin:0 0 .35rem}
.post-title a{text-decoration:none;color:var(--text)}
.post-meta{
  font-family:var(--sans);font-size:.77rem;color:var(--muted);
  margin-bottom:1rem;
}
.post-excerpt{margin-bottom:.65rem}
.read-more{font-family:var(--sans);font-size:.88rem;font-weight:650}
.post-single{max-width:var(--measure)}
.post-single .post-meta{margin-bottom:2rem}
.post-single .post-content{font-size:1.08rem}
.post-content img{display:block;margin:1.5rem auto}
.post-content .alignleft,.post-content .alignright{float:none!important;margin:1.5rem auto}
.post-content table{border-collapse:collapse;width:100%;font-family:var(--sans);font-size:.9rem}
.post-content td,.post-content th{border:1px solid var(--rule);padding:.5rem}
.blog-intro{max-width:var(--measure);margin-bottom:2rem}
.archive-note{
  font-family:var(--sans);font-size:.83rem;color:var(--muted);
  margin:0 0 2rem;
}
.pagination{display:flex;justify-content:space-between;border-top:1px solid var(--rule);padding-top:1rem;font-family:var(--sans);font-size:.9rem}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.2rem;margin:1.5rem 0 2rem}
.card{border:1px solid var(--rule);padding:1.1rem;background:var(--surface)}
.card h3{margin-top:0}
.small{font-family:var(--sans);font-size:.86rem;color:var(--muted)}
.contact-block{font-family:var(--sans);font-size:1rem}
@media (max-width:760px){
  html{font-size:100%}
  body{font-size:1.06rem}
  .header-inner{align-items:center;padding-top:1rem}
  .brand-tag{display:none}
  .site-nav ul{gap:.7rem .9rem}
  .site-nav a{font-size:.84rem}
  main{padding-top:2.3rem}
  .home-grid{grid-template-columns:1fr;gap:2.2rem}
  .home-lede{max-width:none}
}
@media (max-width:560px){
  .header-inner{display:block}
  .brand{display:block;margin-bottom:.8rem}
  .site-nav ul{justify-content:flex-start;gap:.45rem .8rem}
  .header-tools{justify-content:flex-start}
  main{padding-left:1rem;padding-right:1rem;padding-bottom:3.5rem}
  .site-footer{padding-left:1rem;padding-right:1rem}
  h1{font-size:2.25rem}
  h2{font-size:1.5rem}
  .post{padding:1.7rem 0}
  .post-content{overflow-wrap:anywhere}
}
@media (forced-colors:active){
  a{color:LinkText}
  .site-header,.site-footer,.post,.home-links a{border-color:CanvasText}
  .contrast-label{border-color:ButtonText}
}
@media print{
  .site-header,.header-tools,.site-footer,.skip-link{display:none}
  main{max-width:none;padding:0}
  a{color:inherit;text-decoration:none}
  .post{break-inside:avoid}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
}

/* Direction 4 branding: circular FG monogram */
.brand {
  display: inline-flex;
  align-items: center;
  gap: .85rem;
}
.brand-mark {
  display: block;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
}
.brand-copy {
  display: inline-flex;
  flex-direction: column;
  min-width: 0;
}
.brand-name {
  line-height: 1.05;
}
.brand-tag {
  margin-top: .18rem;
}
@media (max-width: 600px) {
  .brand {
    gap: .65rem;
  }
  .brand-mark {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }
}
