/* Blog · stelemind.com/blog/
   The list is a stack of printouts taped to the graphite chassis; an article is one printed sheet
   with a reading column of 680 px. Built on the main sheet (styles.css): the bar, the footer, the
   paper, the tape, the button, the stamp. Sprites come through the .near variables defined there
   (the pages put .near on <main>), so their URLs carry the content hash the server adds. */

/* a short page (an empty or a short list) still ends with the footer at the bottom of the screen */
body{display:flex;flex-direction:column;min-height:100vh;min-height:100svh}
main{flex:1 0 auto}

.bar__nav a[aria-current]{color:var(--bone)}

.crumbs ol{display:flex;flex-wrap:wrap;list-style:none;color:var(--steel)}
.crumbs li + li::before{content:"/";margin:0 10px;color:#5f666d}
.crumbs a{color:var(--steel);text-decoration:none}
.crumbs a:hover,.crumbs a[aria-current]{color:var(--bone)}

/* paper, as on the main sheet's printouts */
.post__sheet,.empty,.page{position:relative;color:var(--ink);background-color:var(--bone);background-image:var(--paper);
  box-shadow:6px 8px 0 rgba(0,0,0,.35),inset 0 0 30px rgba(120,100,60,.12)}
.post__sheet ::selection,.empty ::selection,.page ::selection{background:rgba(255,90,31,.28)}
/* the top line of a printout: what it is on the left, the date on the right, a rule under it */
.post__meta,.empty__top,.page__top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;color:#5d646b;border-bottom:2px solid var(--ink);padding-bottom:8px}

/* ── the list ────────────────────────────────────────────── */
.bl{padding-top:40px}
@media (min-width:720px){.bl{padding-top:64px}}
.bl__grid{display:grid;gap:44px;grid-template-columns:minmax(0,1fr)}
@media (min-width:960px){.bl__grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:72px;align-items:start}.bl__head{position:sticky;top:104px}}
.bl__title{font-size:clamp(34px,4.2vw,58px);margin:26px 0 24px;overflow-wrap:break-word}
.bl__lead{margin-bottom:0}
.bl__list{padding-top:14px}
@media (min-width:960px){.bl__list{padding-top:46px}}

.posts{list-style:none;display:grid;grid-template-columns:minmax(0,1fr);gap:40px}
.post__sheet{padding:34px 22px 26px;rotate:-.5deg;transition:rotate .2s,translate .2s}
.post:nth-child(even) .post__sheet{rotate:.45deg}
.post__sheet:hover{rotate:0deg;translate:0 -2px}
.post__sheet:has(a:focus-visible){outline:2px solid var(--orange);outline-offset:6px}
@media (min-width:720px){.post__sheet{padding:40px 36px 30px}}
.post__tape{top:-13px;left:calc(50% - 48px);rotate:-3deg}
.post:nth-child(even) .post__tape{left:auto;right:16%;rotate:4deg}
.post__meta{margin-bottom:20px}
.post__draft{color:#c2410c;font-weight:700}
.post__title{font:800 clamp(22px,2.4vw,30px)/1.12 "Archivo","Wide Cyrillic",sans-serif;font-stretch:125%;letter-spacing:-.012em;margin-bottom:12px;text-wrap:balance;overflow-wrap:break-word}
.post__title a{color:inherit;text-decoration:none}
.post__title a::after{content:"";position:absolute;inset:0;z-index:1} /* the whole sheet opens the article */
.post__title a:focus-visible{outline:none}
.post__desc{font-size:16.5px;line-height:1.55;color:#2b3036;max-width:58ch}
.post__more{display:inline-flex;gap:8px;margin-top:18px;color:var(--ink);font-weight:700}
.post__more::after{content:"→";color:var(--orange)}

/* nothing published yet: one sheet that says so, and the call */
.empty{padding:36px 22px 30px;rotate:.8deg;
  background-image:var(--coffee,none),var(--paper);background-size:200px 200px,auto;background-position:right -122px bottom -118px,0 0;background-repeat:no-repeat,repeat;background-blend-mode:multiply,normal}
@media (min-width:720px){.empty{padding:42px 38px 36px}}
.empty__tape{top:-15px;left:calc(50% - 66px);rotate:-2deg}
.empty__top{margin-bottom:26px}
.empty__title{font:800 clamp(22px,6.4vw,38px)/1.06 "Archivo","Wide Cyrillic",sans-serif;font-stretch:125%;letter-spacing:-.012em;margin-bottom:14px;text-wrap:balance;overflow-wrap:break-word}
.empty__text{font-size:17px;line-height:1.6;max-width:44ch;margin-bottom:26px}
.empty__cta,.cta__row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px}
.empty .btn,.cta .btn{box-shadow:3px 3px 0 var(--ink)}
.empty__note,.cta__note{color:#3a3f45;font-size:27px;line-height:1;rotate:-4deg} /* pencil on paper */

/* ── an article: one printed sheet ───────────────────────── */
.read{padding-top:36px}
@media (min-width:720px){.read{padding-top:56px}}
.read .crumbs{max-width:808px;margin:0 auto 30px}
.page{max-width:808px;margin:0 auto;padding:46px 20px 34px;
  background-image:var(--coffee,none),var(--paper);background-size:170px 170px,auto;background-position:right -122px bottom -122px,0 0;background-repeat:no-repeat,repeat;background-blend-mode:multiply,normal}
@media (min-width:720px){.page{padding:68px 48px 52px;background-size:220px 220px,auto;background-position:right -150px bottom -150px,0 0}}
@media (min-width:1000px){.page{padding:76px 64px 60px}}
/* crop marks in the corners, as on a printer's proof */
.page::before{content:"";position:absolute;inset:12px;pointer-events:none;opacity:.5;
  --m:linear-gradient(var(--ink),var(--ink));
  background:var(--m) 0 0/14px 1px no-repeat,var(--m) 0 0/1px 14px no-repeat,var(--m) 100% 0/14px 1px no-repeat,var(--m) 100% 0/1px 14px no-repeat,
    var(--m) 0 100%/14px 1px no-repeat,var(--m) 0 100%/1px 14px no-repeat,var(--m) 100% 100%/14px 1px no-repeat,var(--m) 100% 100%/1px 14px no-repeat}
.page__stamp{top:26px;right:22px;bottom:auto;z-index:2;background:rgba(233,230,223,.6)}
@media (max-width:719px){.page--draft{padding-top:84px}.page__stamp{top:24px;right:14px;font-size:11px;padding:6px 10px}}
.page__head,.prose,.cta,.page__foot,.cover{max-width:680px;margin-left:auto;margin-right:auto}
.page__head{margin-bottom:38px}
.page__top{margin-bottom:28px}
.page__title{font:800 clamp(25px,4.4vw,46px)/1.08 "Archivo","Wide Cyrillic",sans-serif;font-stretch:125%;letter-spacing:-.015em;margin-bottom:20px;text-wrap:balance;overflow-wrap:break-word}
.page__by{display:flex;flex-wrap:wrap;gap:4px 20px;color:#4c5258}
.cover{margin-bottom:38px}
.cover img{display:block;width:100%;height:auto;box-shadow:4px 5px 0 rgba(0,0,0,.28)}

/* the text: a book serif at reading size, about 70 characters to the line */
.prose{font-size:17px;line-height:1.65;counter-reset:sec;overflow-wrap:break-word}
@media (min-width:720px){.prose{font-size:19px;line-height:1.7}}
@media (min-width:1000px){.prose{font-size:20px}}
.prose > *{margin:0 0 1.05em}
.prose > :last-child{margin-bottom:0}
.prose h2,.prose h3,.prose h4{scroll-margin-top:84px;text-wrap:balance}
.prose h2{counter-increment:sec;margin:2.1em 0 .7em;font:800 clamp(21px,2.5vw,28px)/1.16 "Archivo","Wide Cyrillic",sans-serif;font-stretch:125%;letter-spacing:-.012em}
.prose h2::before{content:counter(sec,decimal-leading-zero);display:block;margin-bottom:10px;font:700 11px/1 "JetBrains Mono",monospace;letter-spacing:.14em;color:var(--orange)}
.prose h3{margin:1.8em 0 .5em;font:800 clamp(17px,1.9vw,20px)/1.25 "Archivo","Wide Cyrillic",sans-serif;font-stretch:125%;letter-spacing:-.008em}
.prose h4{margin:1.6em 0 .4em;font:700 12px/1.4 "JetBrains Mono",monospace;letter-spacing:.12em;text-transform:uppercase}
.prose h2 + *,.prose h3 + *,.prose h4 + *{margin-top:0}
.prose a{color:inherit;text-decoration:underline;text-decoration-color:var(--orange);text-decoration-thickness:2px;text-underline-offset:.18em}
.prose a:hover{color:#b33c0b}
.prose strong{font-weight:600}
.prose ul{padding-left:1.5em}
.prose ol{padding-left:1.9em} /* room for the mono "01." inside the column */
.prose li{margin:.4em 0;padding-left:.25em}
.prose ul{list-style:square}
.prose ul > li::marker{color:var(--orange)}
.prose ol{list-style:decimal-leading-zero}
.prose ol > li::marker{font:700 .74em "JetBrains Mono",monospace;color:var(--orange)}
.prose li > ul,.prose li > ol{margin:.4em 0 .2em}
.prose li > p{margin:0 0 .6em}
.prose li > p:last-child{margin-bottom:0}
/* a checklist: boxes drawn in ink, a tick in orange */
.prose .tasks{list-style:none;padding-left:0}
.prose .task{position:relative;padding-left:2.1em}
.prose .task__box{position:absolute;left:.1em;top:.3em;width:1.05em;height:1.05em;border:2px solid var(--ink);border-radius:2px;rotate:-3deg}
.prose .task.is-done .task__box::after{content:"";position:absolute;left:.27em;top:-.08em;width:.34em;height:.68em;border:solid var(--orange);border-width:0 3px 3px 0;rotate:40deg}
.prose blockquote{padding:.15em 0 .15em 1.1em;border-left:3px solid var(--orange);color:#30353a}
.prose blockquote > *,.prose .callout > *{margin:0 0 .8em}
.prose blockquote > :last-child,.prose .callout > :last-child{margin-bottom:0}
.prose .callout{padding:18px 20px;border:2px solid transparent;border-image:var(--box-ink,none) 28 / 14px / 0 stretch}
.prose .callout__label{color:#5d646b}
.prose code{font:500 .84em "JetBrains Mono",monospace;background:rgba(27,30,33,.07);padding:.1em .35em;border-radius:2px;overflow-wrap:anywhere}
.prose pre{padding:14px 16px;overflow-x:auto;background:rgba(27,30,33,.06);border-left:3px solid var(--ink);font-size:14px;line-height:1.55}
.prose pre code{background:none;padding:0;font-size:inherit;overflow-wrap:normal}
.prose hr{height:7px;border:0;margin:2.2em 0;background:var(--rule,none) 0 50%/100% 7px no-repeat}
.prose img{max-width:100%;height:auto}
.prose del{text-decoration-color:var(--orange);text-decoration-thickness:2px}
.prose .table{overflow-x:auto;margin-bottom:1.3em}
.prose table{width:100%;border-collapse:collapse;font-size:.84em;line-height:1.45}
.prose th{text-align:left;vertical-align:bottom;font:700 11px/1.3 "JetBrains Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:#4c5258;border-bottom:2px solid var(--ink);padding:8px 12px 8px 0}
.prose td{vertical-align:top;border-bottom:1px solid var(--line-p);padding:10px 12px 10px 0}
.prose .ta-center{text-align:center}
.prose .ta-right{text-align:right}

/* figures: a little wider than the text where there is room; a tap opens the full size */
.prose .fig{margin:2em 0 2.2em}
@media (min-width:720px){.prose .fig{margin:2.2em -24px 2.4em}}
.fig__img{display:block;background:var(--graphite);box-shadow:4px 5px 0 rgba(0,0,0,.28)}
.fig__img img{display:block;width:100%;height:auto}
.fig figcaption{margin-top:12px;color:#5d646b}
.fig__slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;aspect-ratio:16/9;padding:16px;border:2px dashed rgba(27,30,33,.32);color:#5d646b;text-align:center}

/* the soft call at the end: a box drawn round it in ink */
.cta{margin-top:60px;padding:26px 22px 28px;border:2px solid transparent;border-image:var(--box-ink,none) 28 / 14px / 0 stretch}
@media (min-width:720px){.cta{padding:32px 34px 34px}}
.cta__label{color:#5d646b;margin-bottom:10px}
.cta__t{font:800 clamp(21px,2.5vw,29px)/1.12 "Archivo","Wide Cyrillic",sans-serif;font-stretch:125%;letter-spacing:-.012em;margin-bottom:12px;text-wrap:balance;overflow-wrap:break-word}
.cta__text{font-size:17px;line-height:1.6;max-width:48ch;margin-bottom:24px}

.page__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;margin-top:40px;padding-top:16px;border-top:1px solid var(--line-p)}
.tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none}
.tags li{padding:4px 8px;border:1px solid rgba(27,30,33,.28);color:#4c5258}
.page__back{color:var(--ink);font-weight:700;text-decoration:none}
.page__back::before{content:"← ";color:var(--orange)}
.page__back:hover{color:#b33c0b}
