/* STEF KEYCAPS — BLOG (/blog/). Loaded after sk-site.css. The list: categories along the top, the newest post as a big feature,
   the rest in a grid with "Load more" (only when there are more). A single post reads in one calm column. */
.blog-page{--bl-ink:#3b2c22;--bl-red:var(--red,#b23a34);--bl-card:var(--card,#f7f0df);--bl-paper:var(--paper-2,#e9dfc8)}
/* page frame, the same as the other pages (about, shipping...): the content starts below the fixed header, not under it */
html body.blog-page main{margin:0 auto;padding-top:150px;padding-bottom:100px}
html body.blog-page .head{margin-bottom:38px}
html body.blog-page .head h1{line-height:.88}
@media(max-width:700px){html body.blog-page main{padding-top:120px;padding-bottom:80px}}
html body.blog-page .head.is-post>p{display:none}
html body.blog-page .head.is-post{margin-bottom:34px!important}

/* ---------- list: categories along the top, the newest post as a big feature, the rest in a grid ---------- */
.bl{margin:0 0 60px}
/* category bar: one dark pill, the chosen category lifts out in paper colour; scrolls sideways on a phone */
.bl-cats{margin:0 0 30px}
.bl-cats[hidden]{display:none}
.bl-cats__in{display:inline-flex;gap:4px;max-width:100%;padding:5px;border:2px solid var(--bl-ink);border-radius:999px;box-shadow:4px 4px 0 rgba(59,44,34,.25);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.bl-cats__in::-webkit-scrollbar{display:none}
html body .bl-cat{flex:none;display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 16px;border:0;border-radius:999px;background:transparent;font:500 10px/1 var(--f-tech);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;cursor:pointer;box-shadow:none;transition:background-color .15s ease,color .15s ease}
html body .bl-cat i{font-style:normal;opacity:.55;font-size:9px}

html body .bl-cat:focus-visible{outline:2px solid var(--gold,#f4da7a);outline-offset:2px}

/* the feature */
html body a.bl-feat{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);min-height:420px;margin:0 0 46px;text-decoration:none!important;border:2px solid var(--bl-ink);border-radius:16px;overflow:hidden;box-shadow:7px 7px 0 var(--bl-ink);transition:translate .1s ease,box-shadow .1s ease}
@media (hover:hover){html body a.bl-feat:hover{translate:2px 2px;box-shadow:5px 5px 0 var(--bl-ink)}}
html body a.bl-feat:active{translate:7px 7px;box-shadow:0 0 0 var(--bl-ink)}
html body a.bl-feat:focus-visible{outline:3px solid var(--gold,#f4da7a);outline-offset:4px}
.bl-feat__txt{display:flex;flex-direction:column;gap:16px;padding:clamp(28px,3.4vw,46px)}
.bl-feat__tag{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1.5px solid rgba(247,240,223,.5);border-radius:999px;font:500 9px/1 var(--f-tech);letter-spacing:.16em;text-transform:uppercase}
.bl-feat__tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--bl-red)}
html body .bl-feat h2{margin:0;font-family:var(--f-sub)!important;font-weight:400!important;font-size:clamp(32px,3.6vw,52px)!important;line-height:1!important;letter-spacing:.01em!important;text-transform:uppercase;-webkit-text-stroke:0!important}
.bl-feat__exc{margin:0!important;max-width:42ch;font-size:15.5px!important;line-height:1.6!important}
.bl-feat__foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:auto;padding-top:14px;border-top:1.5px dashed rgba(247,240,223,.3)}
.bl-feat__go{display:inline-flex;align-items:center;gap:12px;font:500 10px/1 var(--f-tech);letter-spacing:.14em}
.bl-feat__go>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--bl-red);color:var(--bl-card);transition:background-color .15s ease,color .15s ease}
.bl-feat__go>span svg{width:15px;height:15px}
.bl-feat__meta{font:500 9.5px/1.4 var(--f-tech);letter-spacing:.12em;text-transform:uppercase}
.bl-feat__pic{position:relative;min-height:300px;border-left:2px solid var(--bl-ink);background:var(--bl-paper);overflow:hidden}
.bl-feat__pic img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;filter:sepia(.1) saturate(.94)}

/* picture placeholder (a post without a cover): its first letter on kraft paper */
.bl-ph{position:absolute;inset:0;display:grid;place-items:center;font:400 clamp(70px,9vw,130px)/1 var(--f-head);color:var(--bl-card);
  background:repeating-linear-gradient(-45deg,rgba(59,44,34,.06) 0 10px,transparent 10px 20px),#c99a62;text-shadow:3px 3px 0 var(--bl-ink)}

/* the date as a postage stamp on the feature's picture */
.bl-date{position:absolute;right:16px;top:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;width:62px;height:70px;padding:6px 4px;
  background:var(--bl-card);color:var(--bl-ink);transform:rotate(4deg);font:500 9px/1 var(--f-tech);letter-spacing:.14em;text-align:center;
  border:1.5px dashed var(--bl-ink);outline:3px solid var(--bl-card);box-shadow:0 0 0 4.5px var(--bl-ink),4px 5px 0 4.5px var(--bl-ink)}
.bl-date b{display:block;font:800 26px/1 var(--f-text);letter-spacing:-.02em;margin-bottom:4px;color:var(--bl-red)}
.bl-date small{display:block;margin-top:4px;font-size:7.5px;opacity:.7}

/* the grid */
.bl-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 20px;padding-bottom:12px;border-bottom:2px solid var(--bl-ink)}
.bl-head[hidden]{display:none}
.bl-head b{font:500 10px/1 var(--f-tech);letter-spacing:.16em;text-transform:uppercase;color:var(--bl-ink)}
.bl-head i{font:500 9.5px/1 var(--f-tech);font-style:normal;letter-spacing:.12em;color:rgba(59,44,34,.6)}
.bl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 30px;align-items:start}
.bl-grid:empty{display:none}
html body a.bl-card{display:flex;flex-direction:column;gap:14px;min-width:0;color:var(--bl-ink);text-decoration:none!important}
.bl-card .bl-pic{position:relative;aspect-ratio:16/11;border:2px solid var(--bl-ink);border-radius:12px;background:var(--bl-paper);overflow:hidden;
  box-shadow:4px 4px 0 var(--bl-ink);transition:translate .1s ease,box-shadow .1s ease}
.bl-card .bl-pic img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;filter:sepia(.12) saturate(.92);transition:scale .4s ease}
.bl-card .bl-ph{font-size:clamp(54px,6vw,84px)}
@media (hover:hover){
  html body a.bl-card:hover .bl-pic{translate:2px 2px;box-shadow:2px 2px 0 var(--bl-ink)}
  html body a.bl-card:hover .bl-pic img{scale:1.03}
  html body a.bl-card:hover h3{color:var(--bl-red)!important}
}
html body a.bl-card:active .bl-pic{translate:4px 4px;box-shadow:0 0 0 var(--bl-ink)}
html body a.bl-card:focus-visible{outline:3px solid var(--gold,#f4da7a);outline-offset:6px;border-radius:12px}
.bl-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;font:500 9px/1 var(--f-tech);letter-spacing:.14em;text-transform:uppercase;color:rgba(59,44,34,.65)}
.bl-meta .bl-tag{padding:5px 8px;border-radius:999px;background:rgba(178,58,52,.1);color:var(--bl-red)}
html body .bl-card h3{margin:0!important;font-family:var(--f-text)!important;font-weight:800!important;font-size:clamp(19px,1.55vw,22px)!important;line-height:1.22!important;
  letter-spacing:-.012em!important;text-transform:none!important;color:var(--bl-ink)!important;text-shadow:none!important;-webkit-text-stroke:0!important;transition:color .16s ease}
.bl-card .bl-exc{margin:0!important;font-size:14px!important;line-height:1.55!important;color:rgba(59,44,34,.78);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bl-by{display:flex;align-items:center;gap:9px;font:500 9.5px/1 var(--f-tech);letter-spacing:.1em;text-transform:uppercase;color:rgba(59,44,34,.8)}
.bl-by img{flex:none;width:26px;height:26px;border:1.5px solid var(--bl-ink);border-radius:50%;object-fit:cover;object-position:50% 18%;background:#f7f0df}
.bl-by i{font-style:normal;opacity:.6}

.bl-skel{height:360px;border:2px dashed rgba(59,44,34,.3);border-radius:12px;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.35),rgba(255,255,255,0)) 0 0/200% 100%;animation:blShim 1.4s linear infinite}
.bl-skel.wide{grid-column:1/-1;height:420px;border-radius:16px}
.bl-skel.tall{height:520px}
@keyframes blShim{to{background-position:-200% 0}}
.bl-empty{grid-column:1/-1;max-width:620px;background:var(--bl-card)}
.bl-empty__in{padding:26px 26px 28px;display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.bl-empty__in p{margin:0!important;font-size:15.5px!important;line-height:1.6!important}
.bl-empty__in a:not(.button){text-decoration:underline;text-underline-offset:3px}
.bl-err{grid-column:1/-1;font-size:15px;color:rgba(59,44,34,.8)}
.bl-err .linkish{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
.bl-more{display:flex;justify-content:center;margin-top:52px}
.bl-more[hidden]{display:none}

/* ---------- byline (always Stefan) ---------- */
.b-by{display:flex;align-items:center;gap:12px}
.b-av{flex:none;display:block;width:42px;height:42px;padding:3px;border:2px solid var(--bl-ink);border-radius:50%;background:#f7f0df;overflow:hidden}
.b-av img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 18%}
.b-by b{display:block;font:500 10.5px/1.3 var(--f-tech);letter-spacing:.12em;text-transform:uppercase}
.b-by small{display:block;margin-top:3px;font:400 12.5px/1.3 var(--f-text);color:rgba(59,44,34,.72)}

/* ---------- one post ---------- */
.bp{margin:0 0 60px}
.bp-col{max-width:760px;margin:0 auto}
html body .bp-back{display:inline-block;margin-bottom:26px;font:500 9.5px/1 var(--f-tech);letter-spacing:.14em;color:var(--bl-ink);text-decoration:none!important;transition:color .16s ease}
html body .bp-back:hover{color:var(--bl-red)}
.bl-tags{margin:0!important;font:500 9px/1.3 var(--f-tech)!important;letter-spacing:.16em!important;text-transform:uppercase;color:var(--bl-red)}
.bp .bl-tags{margin-bottom:12px!important}
html body .bp-title{margin:0;font-family:var(--f-sub)!important;font-weight:400!important;font-size:clamp(34px,5vw,58px)!important;line-height:1.02!important;letter-spacing:.01em!important;
  text-transform:uppercase;color:var(--fxg-fill,#c8463d)!important;text-shadow:var(--sh-g)!important}
.bp-dek{margin:18px 0 0!important;font-size:clamp(17px,1.6vw,20px)!important;line-height:1.5!important;color:rgba(59,44,34,.82)}
.bp .b-by{margin:26px 0 0}
.bp-cover{margin:30px 0 0;border:2px solid var(--bl-ink);border-radius:12px;overflow:hidden;box-shadow:6px 6px 0 var(--bl-ink);background:var(--bl-paper)}
.bp-cover img{display:block;width:100%;height:auto;max-height:620px;object-fit:cover}
.b-body{margin-top:36px;padding-top:30px;border-top:2px dashed rgba(59,44,34,.4);font:400 17px/1.78 var(--f-text);color:var(--bl-ink)}
.b-body>*:first-child{margin-top:0!important}
html body .b-body p{margin:0 0 1.15em!important;font-size:17px!important;line-height:1.78!important}
html body .b-body h2{margin:1.7em 0 .55em!important;font-family:var(--f-text)!important;font-weight:800!important;font-size:27px!important;line-height:1.2!important;letter-spacing:-.015em!important;
  text-transform:none!important;color:var(--bl-ink)!important;text-shadow:none!important}
html body .b-body h3{margin:1.5em 0 .45em!important;font:800 21px/1.25 var(--f-text)!important;color:var(--bl-ink)}
html body .b-body h4{margin:1.4em 0 .45em!important;font:500 11px/1.3 var(--f-tech)!important;letter-spacing:.16em;text-transform:uppercase;color:var(--bl-red)}
html body .b-body a{color:var(--bl-red);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px}
/* links in a post: always clickable, and on hover / tap / keyboard focus they turn the colour of the text around them (underline stays) */
html body .b-body a:not(#_):not(#_){cursor:pointer;pointer-events:auto;position:relative;z-index:1;transition:color .16s ease,text-decoration-color .16s ease}
@media (hover:hover){html body .b-body a:not(#_):not(#_):hover{color:inherit!important;text-decoration-color:currentColor}}
html body .b-body a:not(#_):not(#_):active,html body .b-body a:not(#_):not(#_):focus-visible{color:inherit!important;text-decoration-color:currentColor}
.b-body blockquote{margin:1.6em 0;padding:16px 20px;border:2px solid var(--bl-ink);border-left-width:6px;border-radius:4px 10px 10px 4px;background:var(--bl-card)}
html body .b-body blockquote p{margin:0!important;font-style:italic;font-size:18px!important}
.b-body ul,.b-body ol{margin:0 0 1.15em;padding-left:1.4em}
.b-body li{margin:.3em 0}
.b-body ul li::marker{color:var(--bl-red)}
.b-body hr{border:0;height:8px;margin:2.4em 0;border-block:2px solid var(--bl-ink);background:repeating-linear-gradient(-45deg,#b23a34 0 7px,#f7f0df 7px 14px,#2c5a8c 14px 21px,#f7f0df 21px 28px)}
.b-body code{font:500 .86em/1 var(--f-tech);background:rgba(59,44,34,.08);padding:2px 5px;border-radius:4px}
.b-body pre{margin:0 0 1.3em;padding:16px 18px;border:2px solid var(--bl-ink);border-radius:10px;background:var(--bl-card);overflow-x:auto;box-shadow:4px 4px 0 var(--bl-ink)}
.b-body pre code{background:none;padding:0;font-size:13.5px;line-height:1.6}
.b-body figure{margin:2em 0}
.b-body figure img{display:block;width:100%;height:auto;border:2px solid var(--bl-ink);border-radius:10px;box-shadow:5px 5px 0 var(--bl-ink)}
.b-body figcaption{margin-top:12px;font:500 9.5px/1.5 var(--f-tech);letter-spacing:.1em;text-transform:uppercase;color:rgba(59,44,34,.72)}
.bp-sign{margin-top:44px;padding:20px 22px;border:2px solid var(--bl-ink);border-radius:12px;background:var(--bl-card);box-shadow:5px 5px 0 var(--bl-ink)}
.bp-sign>small{display:block;margin-bottom:12px;font:500 9px/1 var(--f-tech);letter-spacing:.18em;color:var(--bl-red)}
.bp-nav{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:40px}
html body .bp-nav a{display:flex;flex-direction:column;gap:8px;padding:16px 18px;border:2px solid var(--bl-ink);border-radius:10px;background:var(--bl-card);color:var(--bl-ink);
  text-decoration:none!important;box-shadow:3px 3px 0 var(--bl-ink);transition:translate .1s ease,box-shadow .1s ease}
html body .bp-nav a.older{text-align:right;align-items:flex-end}
@media (hover:hover){html body .bp-nav a:hover{translate:1px 1px;box-shadow:2px 2px 0 var(--bl-ink)}html body .bp-nav a:hover b{color:var(--bl-red)}}
html body .bp-nav a:active{translate:3px 3px;box-shadow:0 0 0 var(--bl-ink)}
.bp-nav small{font:500 9px/1 var(--f-tech);letter-spacing:.16em;color:rgba(59,44,34,.7)}
.bp-nav b{font:700 15px/1.3 var(--f-text);transition:color .16s ease}

/* tablets: the feature stacks (picture on top), two posts a row; phones (the site's one phone breakpoint, 800px): one */
@media(max-width:900px){
  .bl-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 24px}
  html body a.bl-feat{grid-template-columns:1fr;min-height:0}
  .bl-feat__pic{order:-1;min-height:0;aspect-ratio:16/10;border-left:0;border-bottom:2px solid var(--bl-ink)}
}
@media(max-width:800px){
  .bl-grid{grid-template-columns:1fr;gap:34px}
  .bl-cats{margin-bottom:24px}
  html body a.bl-feat{margin-bottom:38px;box-shadow:5px 5px 0 var(--bl-ink)}
  .bl-feat__txt{gap:14px;padding:24px 22px 22px}
  .bl,.bp{margin-bottom:40px}
  .bp-nav{grid-template-columns:1fr}
  html body .b-body p{font-size:16px!important}
}
@media(prefers-reduced-motion:reduce){.bl-skel{animation:none}.bl-card .bl-pic img{transition:none}}

/* ================= V5 (2026-10-14) · NO BLACK PANELS =================
   The newest-post feature and the category bar were solid dark ink; they're now warm paper with ink outlines and red accents,
   like the rest of the site. Layout unchanged. */
html body a.bl-feat{background:#fbf6ec;color:var(--bl-ink)}
.bl-feat__txt{background:repeating-linear-gradient(0deg,transparent 0 31px,rgba(59,44,34,.05) 31px 32px),#fbf6ec}
.bl-feat__tag{border-color:var(--bl-ink);color:var(--bl-ink)}
html body .bl-feat h2{color:var(--bl-red)!important;text-shadow:3px 3px 0 var(--bl-ink)!important}
.bl-feat__exc{color:#5a4a3e}
.bl-feat__foot{border-top-color:rgba(59,44,34,.35)}
.bl-feat__go{color:var(--bl-ink)}
.bl-feat__meta{color:#6b5a4c}
@media (hover:hover){html body a.bl-feat:hover .bl-feat__go>span{background:var(--bl-ink);color:var(--bl-card)}}
.bl-cats__in{background:#fbf6ec}
html body .bl-cat{color:var(--bl-ink)}
@media (hover:hover){html body .bl-cat:hover:not([aria-pressed="true"]){background:rgba(178,58,52,.1);color:var(--bl-red)}}
html body .bl-cat[aria-pressed="true"]{background:var(--bl-red);color:var(--bl-card)}
