:root{
  --paper:#f3eee0; --paper-2:#e8e0c9; --card:#fbf8ee;
  --ink:#1c2a1a; --ink-soft:#48543f;
  --line: rgba(28,42,26,0.16);
  --line-strong: rgba(28,42,26,0.28);
  --green:#17563a; --green-soft: rgba(23,86,58,0.09);
  --gold:#a3711a; --gold-soft: rgba(163,113,26,0.12);
  --stamp:#95392a; --stamp-soft: rgba(149,57,42,0.10);
  --good:#1f7a4d; --bad:#a13d3d;
  --muted:#7c7660;
}
*{box-sizing:border-box;}
body{margin:0; background:var(--paper); color:var(--ink); font-family:'Inter',sans-serif; -webkit-font-smoothing:antialiased;}
h1,h2,.display{font-family:'Fraunces',serif; font-optical-sizing:auto;}
h3{font-family:'Space Grotesk',sans-serif;}
a{color:var(--green);}
.wrap{max-width:760px; margin:0 auto; padding:0 24px 80px;}

/* Ledger-paper texture: faint ruled lines + a left "binding" margin rule */
body{
  background-image:
    repeating-linear-gradient(180deg, transparent, transparent 34px, rgba(28,42,26,0.035) 35px);
}

/* Site nav */
.sitenav{border-bottom:1px solid var(--line-strong); background:var(--card); position:relative;}
.sitenav::after{content:""; position:absolute; left:0; right:0; bottom:-3px; height:3px;
  background:repeating-linear-gradient(90deg, var(--line-strong) 0 6px, transparent 6px 12px);}
.sitenav-inner{max-width:1080px; margin:0 auto; padding:16px 24px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;}
.sitenav .brand{font-family:'Fraunces',serif; font-weight:600; font-style:italic; color:var(--green); font-size:19px; text-decoration:none;}
.sitenav .links{display:flex; align-items:center; gap:22px; flex-wrap:wrap;}
.sitenav .links a{color:var(--ink-soft); text-decoration:none; font-size:13px; font-weight:500; font-family:'Space Grotesk',sans-serif;}
.sitenav .links a:hover{color:var(--green);}
.sitenav .cta{background:var(--green); color:#fff !important; padding:8px 16px; border-radius:3px; font-size:12.5px; font-weight:600; letter-spacing:0.02em;}

/* Perforated divider — a torn ledger-sheet edge, used between major sections */
.perf-divider{height:14px; margin:0 0 8px; background-image:radial-gradient(circle 4px, var(--paper) 4px, transparent 4.5px);
  background-size:16px 14px; background-position:0 -7px; border-bottom:1px dashed var(--line-strong);}

/* Page header */
.page-hero{padding:44px 0 20px; position:relative;}
.eyebrow{text-transform:uppercase; letter-spacing:0.16em; font-size:10.5px; color:var(--gold); font-weight:700; margin:0 0 12px; font-family:'Space Grotesk',sans-serif;}
.page-hero h1{font-size:32px; margin:0 0 10px; font-weight:600; letter-spacing:-0.01em; color:var(--green); line-height:1.22;}
.page-hero .meta{color:var(--muted); font-size:12.5px; font-family:'IBM Plex Mono',monospace;}
.page-hero p.dek{color:var(--ink-soft); font-size:15.5px; line-height:1.65; margin:14px 0 0; max-width:600px;}

/* Signature element: an official "verified" seal stamp, like ink on a tax document */
.seal{
  display:inline-flex; align-items:center; justify-content:center; flex-direction:column;
  width:84px; height:84px; border-radius:50%;
  border:1.5px solid var(--stamp); outline:1px solid var(--stamp); outline-offset:3px;
  color:var(--stamp); font-family:'Space Grotesk',sans-serif; font-weight:700;
  transform:rotate(-7deg); opacity:0.88; mix-blend-mode:multiply; flex-shrink:0;
}
.seal .seal-top{font-size:8px; letter-spacing:0.12em; text-transform:uppercase;}
.seal .seal-mid{font-size:17px; font-family:'Fraunces',serif; font-style:italic; margin:1px 0;}
.seal .seal-bot{font-size:7px; letter-spacing:0.1em; text-transform:uppercase;}

/* Article prose */
.prose{font-size:15.5px; line-height:1.75; color:var(--ink);}
.prose h2{font-size:20px; color:var(--green); margin:34px 0 12px; font-weight:600;}
.prose h3{font-size:16.5px; color:var(--ink); margin:26px 0 8px; font-weight:600;}
.prose p{margin:0 0 16px;}
.prose ul, .prose ol{margin:0 0 16px; padding-left:22px;}
.prose li{margin-bottom:8px;}
.prose strong{color:var(--green);}
.prose table{width:100%; border-collapse:collapse; margin:18px 0; font-size:14px;}
.prose th{text-align:left; background:var(--green-soft); color:var(--green); padding:9px 11px; font-size:11.5px; text-transform:uppercase; letter-spacing:0.04em;}
.prose td{padding:9px 11px; border-bottom:1px solid var(--line);}
.callout{background:var(--card); border:1px solid var(--line); border-left:3px solid var(--stamp); border-radius:2px; padding:16px 18px; margin:22px 0; font-size:14px; color:var(--ink-soft); position:relative;}
.callout::before{content:"NOTE"; position:absolute; top:-8px; left:14px; background:var(--paper); padding:0 6px; font-family:'Space Grotesk',sans-serif; font-size:9.5px; letter-spacing:0.1em; color:var(--stamp); font-weight:700;}
.callout b{color:var(--stamp);}

/* CTA box — framed like a claim voucher torn from the ledger */
.cta-box{border:1px dashed var(--line-strong); border-radius:2px; background:var(--card); padding:30px 26px; margin:40px 0; text-align:center; position:relative;}
.cta-box::before, .cta-box::after{content:"✂"; position:absolute; top:-11px; color:var(--muted); font-size:13px; background:var(--paper); padding:0 4px;}
.cta-box::before{left:16px;} .cta-box::after{right:16px;}
.cta-box h3{margin:0 0 6px; color:var(--green); font-family:'Fraunces',serif; font-size:19px; font-weight:600;}
.cta-box p{color:var(--ink-soft); font-size:14px; margin:0 0 18px;}
.btn-primary{display:inline-block; background:var(--green); color:#fff; text-decoration:none; padding:12px 24px; border-radius:3px; font-weight:600; font-size:14px; font-family:'Space Grotesk',sans-serif;}

/* Blog index cards */
.post-grid{display:grid; gap:1px; margin-top:24px; background:var(--line); border:1px solid var(--line);}
.post-grid .post-card{border:none; border-radius:0;}
.post-card{border:1px solid var(--line); border-radius:2px; background:var(--card); padding:22px 24px; text-decoration:none; display:block; position:relative; transition:background .15s;}
.post-card:hover{background:var(--paper-2);}
.post-card .cat{font-size:10px; text-transform:uppercase; letter-spacing:0.08em; color:var(--gold); font-weight:700; font-family:'Space Grotesk',sans-serif;}
.post-card h2{font-size:17px; margin:7px 0 6px; color:var(--ink); font-weight:600; font-family:'Fraunces',serif;}
.post-card p{color:var(--ink-soft); font-size:13.5px; line-height:1.55; margin:0;}
.post-card .meta{color:var(--muted); font-size:11px; margin-top:12px; font-family:'IBM Plex Mono',monospace;}

.site-footer{max-width:1080px; margin:0 auto; padding:32px 24px 44px; text-align:center; color:var(--muted); font-size:12px; border-top:1px dashed var(--line-strong);}
.site-footer a{color:var(--muted);}
.breadcrumb{font-size:11.5px; color:var(--muted); margin-bottom:6px; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:0.04em;}
.breadcrumb a{color:var(--muted); text-decoration:none;}
.breadcrumb a:hover{color:var(--green);}
