/* ============================================
   TOOLBOX NOTES — design system
   Ink navy + warm paper, amber/forest tags styled
   like physical inventory labels with a punch-hole.
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --ink:#16213E;
  --ink-70: rgba(22,33,62,.7);
  --paper:#FAF9F5;
  --paper-dim:#F1EEE5;
  --amber:#E8A33D;
  --amber-deep:#C97F1E;
  --forest:#2D6A4F;
  --forest-deep:#1F4D39;
  --slate:#6B7280;
  --rule:#DDD6C6;
  --card:#FFFFFF;
  --radius: 2px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

a{color:inherit;}

.mono{
  font-family:'IBM Plex Mono',monospace;
  letter-spacing:.04em;
}

/* ---------- Layout shells ---------- */
.wrap{max-width:1120px;margin:0 auto;padding:0 24px;}
.wrap-narrow{max-width:720px;margin:0 auto;padding:0 24px;}

/* ---------- Header / masthead ---------- */
.masthead{
  border-bottom:1px solid var(--rule);
  background:var(--paper);
}
.masthead-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:22px 24px;
  max-width:1120px;
  margin:0 auto;
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:var(--ink);
}
.brand-mark{
  width:34px;height:34px;
  background:var(--ink);
  color:var(--paper);
  display:flex;align-items:center;justify-content:center;
  font-family:'Fraunces',serif;
  font-weight:700;
  font-size:18px;
  border-radius:var(--radius);
  flex-shrink:0;
}
.brand-name{
  font-family:'Fraunces',serif;
  font-weight:600;
  font-size:19px;
  line-height:1;
}
.brand-sub{
  display:block;
  font-family:'IBM Plex Mono',monospace;
  font-size:10px;
  letter-spacing:.12em;
  color:var(--slate);
  margin-top:3px;
  text-transform:uppercase;
}
.nav-links{
  display:flex;
  gap:28px;
  font-family:'IBM Plex Mono',monospace;
  font-size:12.5px;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.nav-links a{
  text-decoration:none;
  color:var(--ink-70);
  padding-bottom:2px;
  border-bottom:1px solid transparent;
  transition:border-color .15s ease, color .15s ease;
}
.nav-links a:hover{color:var(--ink);border-color:var(--amber-deep);}

/* ---------- Hero (index page) ---------- */
.journal-hero{
  padding:64px 24px 40px;
  border-bottom:1px solid var(--rule);
}
.journal-hero-inner{max-width:1120px;margin:0 auto;}
.hero-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--forest-deep);
  margin-bottom:18px;
}
.hero-eyebrow::before{
  content:'';
  width:7px;height:7px;
  border-radius:50%;
  background:var(--amber);
  display:inline-block;
}
.journal-hero h1{
  font-family:'Fraunces',serif;
  font-weight:600;
  font-size:clamp(2.2rem,5vw,3.4rem);
  line-height:1.05;
  margin:0 0 18px;
  max-width:14ch;
}
.journal-hero p{
  color:var(--ink-70);
  font-size:1.08rem;
  max-width:52ch;
  margin:0;
}

/* ---------- Ledger row (stats strip) ---------- */
.ledger{
  display:flex;
  flex-wrap:wrap;
  gap:0;
  border-bottom:1px solid var(--rule);
  background:var(--paper-dim);
}
.ledger-item{
  flex:1;
  min-width:160px;
  padding:18px 24px;
  border-right:1px dashed var(--rule);
  font-family:'IBM Plex Mono',monospace;
}
.ledger-item:last-child{border-right:none;}
.ledger-num{font-size:1.3rem;font-weight:600;color:var(--ink);}
.ledger-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);}

/* ---------- Tool-tag (signature element) ---------- */
.tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:5px 10px 5px 8px;
  border-radius:1px;
  position:relative;
  border:1px solid currentColor;
}
.tag::before{
  content:'';
  width:5px;height:5px;
  border-radius:50%;
  background:var(--paper);
  border:1px solid currentColor;
  flex-shrink:0;
}
.tag--pdf{color:var(--amber-deep);background:rgba(232,163,61,.10);}
.tag--ai{color:var(--forest-deep);background:rgba(45,106,79,.10);}
.tag--excel{color:#3457A6;background:rgba(52,87,166,.09);}
.tag--tips{color:#8A3E2F;background:rgba(138,62,47,.09);}

/* ---------- Post grid ---------- */
.post-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1px;
  background:var(--rule);
  border:1px solid var(--rule);
  margin:40px 0 72px;
}
.post-card{
  background:var(--card);
  padding:32px;
  display:flex;
  flex-direction:column;
  gap:14px;
  text-decoration:none;
  color:var(--ink);
  transition:background .15s ease;
}
.post-card:hover{background:var(--paper-dim);}
.post-card:hover .post-title{color:var(--forest-deep);}
.post-meta-row{display:flex;justify-content:space-between;align-items:center;}
.post-index{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  color:var(--slate);
}
.post-title{
  font-family:'Fraunces',serif;
  font-weight:600;
  font-size:1.4rem;
  line-height:1.22;
  margin:0;
  transition:color .15s ease;
}
.post-excerpt{
  color:var(--ink-70);
  font-size:.96rem;
  line-height:1.6;
  margin:0;
  flex:1;
}
.post-foot{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-top:14px;
  border-top:1px dashed var(--rule);
  font-family:'IBM Plex Mono',monospace;
  font-size:11.5px;
  color:var(--slate);
}
.read-more{
  color:var(--forest-deep);
  font-weight:600;
}

@media (max-width:720px){
  .post-grid{grid-template-columns:1fr;}
  .nav-links{display:none;}
}

/* ---------- Footer ---------- */
.site-footer{
  border-top:1px solid var(--rule);
  padding:36px 24px;
  margin-top:40px;
}
.site-footer-inner{
  max-width:1120px;margin:0 auto;
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:12px;
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  color:var(--slate);
}
.site-footer a{text-decoration:underline;text-underline-offset:3px;}

/* ============================================
   SINGLE POST PAGE
   ============================================ */
.post-hero{
  padding:56px 24px 36px;
  border-bottom:1px solid var(--rule);
}
.post-hero-inner{max-width:720px;margin:0 auto;}
.breadcrumb{
  font-family:'IBM Plex Mono',monospace;
  font-size:11.5px;
  color:var(--slate);
  text-transform:uppercase;
  letter-spacing:.05em;
  margin-bottom:22px;
}
.breadcrumb a{text-decoration:none;color:var(--slate);}
.breadcrumb a:hover{color:var(--ink);}
.post-hero h1{
  font-family:'Fraunces',serif;
  font-weight:600;
  font-size:clamp(1.9rem,4.4vw,2.7rem);
  line-height:1.12;
  margin:16px 0 20px;
}
.post-hero-meta{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  align-items:center;
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  color:var(--slate);
}
.dot-sep{width:3px;height:3px;border-radius:50%;background:var(--rule);}

article.post-body{
  max-width:720px;
  margin:0 auto;
  padding:44px 24px 20px;
  font-size:1.06rem;
  line-height:1.75;
  color:#2A2E3A;
}
article.post-body h2{
  font-family:'Fraunces',serif;
  font-weight:600;
  font-size:1.5rem;
  margin:2.2em 0 .6em;
  color:var(--ink);
}
article.post-body h2:first-child{margin-top:0;}
article.post-body h3{
  font-family:'Fraunces',serif;
  font-weight:600;
  font-size:1.18rem;
  margin:1.8em 0 .5em;
  color:var(--ink);
}
article.post-body p{margin:0 0 1.1em;}
article.post-body ul,article.post-body ol{margin:0 0 1.3em;padding-left:1.3em;}
article.post-body li{margin-bottom:.5em;}
article.post-body strong{color:var(--ink);}
article.post-body a{color:var(--forest-deep);text-decoration:underline;text-underline-offset:2px;}
.callout{
  background:var(--paper-dim);
  border-left:3px solid var(--amber);
  padding:18px 22px;
  margin:1.8em 0;
  font-size:.98rem;
}
.callout strong{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--amber-deep);margin-bottom:6px;}

.cta-block{
  max-width:720px;
  margin:48px auto 0;
  padding:32px 24px;
}
.cta-card{
  background:var(--ink);
  color:var(--paper);
  padding:36px;
  border-radius:var(--radius);
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:18px;
}
.cta-card h3{
  font-family:'Fraunces',serif;
  font-size:1.3rem;
  margin:0 0 6px;
  font-weight:600;
}
.cta-card p{margin:0;color:rgba(250,249,245,.7);font-size:.95rem;}
.cta-btn{
  background:var(--amber);
  color:var(--ink);
  font-family:'IBM Plex Mono',monospace;
  font-size:12.5px;
  letter-spacing:.04em;
  text-transform:uppercase;
  font-weight:600;
  padding:13px 22px;
  border-radius:1px;
  text-decoration:none;
  white-space:nowrap;
  flex-shrink:0;
}

.related{
  max-width:720px;
  margin:20px auto 60px;
  padding:0 24px;
}
.related h4{
  font-family:'IBM Plex Mono',monospace;
  font-size:11.5px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--slate);
  border-bottom:1px solid var(--rule);
  padding-bottom:12px;
  margin-bottom:16px;
}
.related-list a{
  display:block;
  padding:12px 0;
  border-bottom:1px dashed var(--rule);
  text-decoration:none;
  font-family:'Fraunces',serif;
  font-weight:500;
  font-size:1.02rem;
  color:var(--ink);
}
.related-list a:hover{color:var(--forest-deep);}
