/* Public blog layout follows the preserved Velin theme. */
:root{--bg:#fff;--surface:#fff;--ink:#333;--muted:#555;--accent:#333;--line:#dcdcde;--radius:0;line-height:1.75}
a{color:inherit}a:hover{color:#111}
button,.file-button{background:#ffc107;border-color:#e0a800;color:#111;border-radius:0}
.secondary,.subtle{background:#fff;color:#333;border-color:#999}
input:not([type=checkbox]):not([type=file]),textarea,select{border-color:#999;border-radius:0}
.site-header{max-width:1170px;margin:auto;padding:24px 1rem 20px;border:0;align-items:start}
.brand{font-size:42px;line-height:1.2;color:#333;font-weight:700}
.site-description{font-size:15px;margin:.75rem 0 0}
.public-menu{padding-top:0;padding-bottom:0;min-height:42px;align-items:center;gap:24px}
.public-menu a{text-decoration:none}
.public-menu .public-search{margin-left:auto;display:flex;gap:.5rem;min-width:0}
.public-search input{width:180px;min-width:0}
.page-heading{margin-bottom:24px}.page-heading h1{font-size:1.5rem}
footer{background:#000;color:#fff;border:0}footer .public-menu{justify-content:center;margin-bottom:1rem}
footer .public-menu a:hover,footer .public-menu a:focus-visible{color:#ffc107}
footer .public-menu a:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.site-header nav{font-size:.9rem}.single-featured{margin:1.5rem 0}.single-featured img{max-width:100%;height:auto;display:block;margin:auto}
main,.public-menu{max-width:1170px}
.post-summary{margin:0 0 42px;padding:0 0 28px;border-bottom:1px dotted currentColor}
.post-summary h2{font-size:1.70625rem;line-height:1.25;margin:0 0 4px}
.post-summary h2 a{text-decoration:none}
.entry-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px;font-size:.9rem;line-height:1.5;margin-bottom:6px}
.entry-meta time:after{content:"/";margin-left:9px}
.entry-meta a{color:inherit;text-decoration:none}
.summary-body{display:flex;align-items:flex-start;gap:12px}
.summary-thumbnail{flex:0 0 140px;width:140px;height:140px;border:1px solid currentColor}
.summary-thumbnail img{width:100%;height:100%;object-fit:cover;display:block}
.summary-copy{flex:1 1 0%;min-width:0}
.summary-copy>p{margin:0;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;line-height:1.55}
.summary-tags{display:flex;justify-content:flex-end;gap:.3rem .65rem;flex-wrap:wrap;font-size:.9rem;margin-top:4px}
.summary-tags a{color:inherit}
.reading{max-width:1170px;border-radius:0;padding:0}
.reading>h1{border-bottom:1px solid currentColor;padding-bottom:12px}
@media(max-width:720px){.site-header{flex-wrap:wrap}.brand{font-size:34px}.public-menu{gap:1rem}.public-menu .public-search{margin:0;width:100%}.public-search input{flex:1}.summary-thumbnail{flex-basis:96px;width:96px;height:96px}.entry-meta{justify-content:flex-start}.post-summary h2{font-size:1.35rem}.summary-tags{justify-content:flex-start}}

/* Ads occupy their own grid cells; the article list never contains a slot. */
.listing-layout{position:relative;min-width:0}.listing-posts{min-width:0}
.velin-adsense{box-sizing:border-box;float:none;clear:both;width:100%;max-width:100%;min-width:0;height:auto;margin:28px 0}
.velin-adsense-list-left,.velin-adsense-list-right{display:none}
.velin-adsense-list-bottom{width:min(100%,970px);margin:28px auto}
.site-header>div{flex-shrink:0}.site-description{max-width:30rem}
@media(min-width:1580px){.velin-adsense-list-left,.velin-adsense-list-right{display:block;position:absolute;top:0;width:160px;margin:0}.velin-adsense-list-left{right:calc(100% + 20px)}.velin-adsense-list-right{left:calc(100% + 20px)}}

.neighbors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.neighbors a{display:flex;align-items:center;gap:12px;min-width:0;overflow-wrap:anywhere}.neighbors .next-post{grid-column:2;justify-content:flex-end;text-align:right}.neighbors a>span[aria-hidden]{flex-shrink:0;font-size:24px}
/* Auto ads may add a sibling to the brand and navigation. Give it a full row,
   without resizing, moving or clipping Google's creative/iframe. */
.site-header{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:16px;align-items:start}
.site-header>nav{min-width:0;justify-content:flex-end}
.google-auto-placed{box-sizing:border-box;min-width:0;max-width:100%;grid-column:1/-1;flex:0 0 100%;clear:both}
.summary-body{flex-wrap:wrap}
/* Keep injected auto ads after the thumbnail/copy pair, even if inserted between them. */
.summary-body>.google-auto-placed{order:1}
@media(max-width:720px){.site-header{grid-template-columns:minmax(0,1fr)}.site-header>nav{justify-content:flex-start}}
/* Paragraph rhythm and alignment from the preserved Velin single-post theme. */
.reading .prose{font-size:1rem;line-height:1.9;margin-bottom:45px;display:flow-root}
.prose p{margin:0 0 1.2em}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{line-height:1.3}
.prose td,.prose th{padding:8px;border-color:currentColor}
.prose .alignleft{float:left;margin-right:18px}.prose .alignright{float:right;margin-left:18px}.prose .aligncenter{display:block;margin-left:auto;margin-right:auto}

