/* Osipov blog theme — green/white on Modernist. Loaded after modernist.css. */
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');

:root{
  --color-bg:#ffffff;
  --color-surface:#f2f6f2;
  --color-text:#17201a;
  --color-accent:#2e7d32;
  --color-accent-100:#e9f3ea;
  --color-accent-600:#256628;
  --color-accent-700:#1b4d1e;
  --color-accent-800:#143d17;
  --color-divider:color-mix(in srgb, #17201a 30%, transparent);
  --font-heading:"Manrope","Archivo",system-ui,sans-serif;
  --font-heading-weight:800;
  --font-body:"Manrope","Archivo",system-ui,sans-serif;
}
body{margin:0;background:var(--color-bg);color:var(--color-text);}
a{color:var(--color-accent);}
a:hover{color:var(--color-accent-700);}

.site{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg);}
.wrap{max-width:940px;margin:0 auto;padding-left:28px;padding-right:28px;}
.wrap-narrow{max-width:720px;margin:0 auto;padding-left:28px;padding-right:28px;}
.site-main{flex:1;}

/* header */
.masthead{border-bottom:2px solid var(--color-divider);position:sticky;top:0;background:var(--color-bg);z-index:5;}
.masthead-inner{display:flex;align-items:center;gap:26px;padding-top:15px;padding-bottom:15px;}
.brand{font-family:var(--font-heading);font-weight:800;font-size:17px;letter-spacing:.01em;text-decoration:none;color:var(--color-text);margin-right:auto;}
.topnav{display:flex;gap:20px;list-style:none;margin:0;padding:0;}
.topnav a{font-size:14px;text-decoration:none;color:var(--color-text);}
.topnav a:hover,.topnav .nav-current a{color:var(--color-accent);}

/* hero */
.hero{padding-top:76px;padding-bottom:44px;}
.hero-kicker{color:var(--color-accent);text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-family:var(--font-heading);font-weight:600;margin:0 0 20px;}
.hero h1{font-size:clamp(42px,7.5vw,76px);line-height:1;letter-spacing:-.02em;margin:0 0 26px;max-width:15ch;}
.hero-lede{font-size:19px;line-height:1.5;max-width:54ch;margin:0;color:color-mix(in srgb,var(--color-text) 62%,transparent);}

/* feed */
.feed-head{display:flex;align-items:baseline;justify-content:space-between;border-bottom:2px solid var(--color-divider);padding-bottom:14px;}
.feed-head .count{font-size:13px;color:color-mix(in srgb,var(--color-text) 50%,transparent);}
.post-row{cursor:pointer;display:grid;grid-template-columns:56px 1fr;gap:26px;padding:30px 8px;border-bottom:1px solid var(--color-divider);text-decoration:none;color:inherit;transition:background .12s;}
.post-row:hover{background:var(--color-surface);color:inherit;}
.post-row .num{font-family:var(--font-heading);font-weight:800;font-size:15px;color:var(--color-accent);padding-top:7px;}
.post-row .body{min-width:0;}
.post-row-meta{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.post-row h2{font-size:clamp(26px,4vw,36px);line-height:1.06;letter-spacing:-.015em;margin:0 0 12px;}
.dek{font-size:16px;line-height:1.55;margin:0;max-width:62ch;color:color-mix(in srgb,var(--color-text) 60%,transparent);}
.meta-line{font-size:12px;color:color-mix(in srgb,var(--color-text) 48%,transparent);}
.tag.tag-accent{font-family:var(--font-heading);font-weight:600;text-decoration:none;}

/* article */
.article{padding-top:60px;padding-bottom:20px;}
.back-link{font-size:13px;text-decoration:none;color:color-mix(in srgb,var(--color-text) 55%,transparent);font-family:var(--font-heading);font-weight:600;}
.article-meta{display:flex;align-items:center;gap:12px;margin:28px 0 18px;}
.article h1{font-size:clamp(34px,5.5vw,54px);line-height:1.03;letter-spacing:-.02em;margin:0 0 24px;}
.article-lede{font-size:20px;line-height:1.5;margin:0 0 8px;color:color-mix(in srgb,var(--color-text) 70%,transparent);}
.post-body{font-size:17px;line-height:1.72;}
.post-body p{margin:0 0 18px;}
.post-body h2{font-size:28px;line-height:1.12;letter-spacing:-.015em;margin:38px 0 14px;}
.post-body h3{font-size:22px;margin:30px 0 12px;}
.post-body img{width:100%;height:auto;filter:grayscale(1) contrast(1.08);margin:26px 0;}
.post-body blockquote{margin:34px 0;padding-left:22px;border-left:3px solid var(--color-accent);font-family:var(--font-heading);font-weight:600;font-size:24px;line-height:1.25;letter-spacing:-.01em;}
.post-body pre{background:var(--color-surface);border:1px solid var(--color-divider);padding:20px 22px;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13.5px;line-height:1.7;margin:26px 0;}
.post-body code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;}
.post-body :not(pre)>code{background:var(--color-surface);padding:1px 5px;}
.post-footer{display:flex;align-items:center;justify-content:space-between;padding:8px 0 4px;flex-wrap:wrap;gap:16px;}
.author-chip{display:flex;align-items:center;gap:14px;}
.author-badge{width:44px;height:44px;background:var(--color-accent);color:#fff;display:grid;place-items:center;font-family:var(--font-heading);font-weight:800;font-size:16px;}
.author-chip .name{font-family:var(--font-heading);font-weight:800;font-size:15px;}

/* about / tag headers */
.page-kicker{color:var(--color-accent);text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-family:var(--font-heading);font-weight:600;margin:0 0 18px;}
.section-head{display:flex;align-items:baseline;gap:16px;border-bottom:2px solid var(--color-divider);padding-bottom:20px;margin-bottom:0;}
.section-head h1{font-size:clamp(38px,6vw,60px);line-height:1;letter-spacing:-.02em;margin:0;}
.section-head .count{font-size:15px;color:color-mix(in srgb,var(--color-text) 50%,transparent);}
.tag-row{display:flex;flex-wrap:wrap;gap:10px;}
.tag-row .tag{text-decoration:none;font-family:var(--font-heading);font-weight:600;font-size:13px;padding:6px 14px;}

/* footer */
.site-footer{border-top:2px solid var(--color-divider);margin-top:72px;}
.site-footer .inner{display:flex;flex-wrap:wrap;gap:24px;align-items:baseline;justify-content:space-between;padding-top:34px;padding-bottom:34px;}
.site-footer .brand-sm{font-family:var(--font-heading);font-weight:800;font-size:16px;margin-bottom:6px;}
.site-footer .tagline{font-size:13px;color:color-mix(in srgb,var(--color-text) 50%,transparent);}
.footer-nav{display:flex;gap:22px;align-items:baseline;}
.footer-nav a{font-size:13px;text-decoration:none;color:var(--color-text);}
.footer-nav a:hover{color:var(--color-accent);}
.footer-nav .muted{font-size:13px;color:color-mix(in srgb,var(--color-text) 50%,transparent);}
.pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:30px 0;font-family:var(--font-heading);font-weight:600;font-size:14px;}
.pag-link{text-decoration:none;color:var(--color-accent);}
.pag-link:hover{color:var(--color-accent-700);}
.pag-disabled{color:color-mix(in srgb,var(--color-text) 30%,transparent);}
.pag-page{font-weight:400;font-size:13px;color:color-mix(in srgb,var(--color-text) 50%,transparent);}

/* tables created in the Ghost editor (no .table class) */
.post-body table{width:100%;border-collapse:collapse;font-size:14px;margin:26px 0;}
.post-body th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--color-text) 60%,transparent);padding:8px;border-bottom:2px solid var(--color-divider);}
.post-body td{padding:8px;border-bottom:1px solid var(--color-divider);}
