/* =================================================================
   kooperativo — gedeelde stijl voor index.html en blog.html
   Kleuren pas je hieronder in één keer aan (:root).
   ================================================================= */

:root{
  --white:#ffffff;
  --black:#000000;
  --ink:#000000;
  --bg:#ffffff;

  --red:#ee1b12;
  --blue:#1a1aff;
  --magenta:#f900e4;
  --cyan:#00e5ff;
  --yellow:#fff000;

  --gray:#6b6b6b;
  --rule:#000000;
  --bandtext:#ffffff;

  --maxw:78rem;
  --pad:clamp(1rem,3.5vw,2.5rem);

  /* LETTERTYPE — zie de <link> in de <head> van beide html-bestanden.
     Nu: Manrope via Google Fonts. Wil je géén Google (privacy), haal die
     <link>-regels dan weg; de regel hieronder valt dan netjes terug op het
     systeemlettertype. Zelf hosten kan ook: zet het .woff2-bestand naast
     deze css en voeg een @font-face toe. */
  --sans:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"SFMono-Regular","SF Mono","JetBrains Mono",Menlo,Consolas,monospace;
}

html[data-theme="dark"]{
  --white:#0a0a0a;
  --bg:#0a0a0a;
  --ink:#f5f5f5;
  --black:#f5f5f5;
  --rule:#f5f5f5;
  --blue:#6e6eff;
  --red:#ff4a3d;
  --gray:#8f8f8f;
}

*,*::before,*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
}

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:clamp(1rem,1.1vw,1.075rem);
  line-height:1.5;
  font-weight:500;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition:background .3s ease,color .3s ease;
}

a{color:inherit;text-decoration:none}
::selection{background:var(--yellow);color:#000}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px}

.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}

/* ---------------- header ---------------- */
.site-head{padding-top:clamp(1rem,2.5vw,1.6rem);padding-bottom:.8rem}
.head-top{
  display:flex;
  align-items:flex-start;
  gap:clamp(1rem,4vw,3rem);
  flex-wrap:nowrap;
}
.wordmark{
  color:var(--red);
  font-weight:800;
  font-size:clamp(1.15rem,2.3vw,1.6rem);
  line-height:1.05;
  letter-spacing:-.035em;
  white-space:nowrap;
}
.tagline{
  font-weight:800;
  font-size:clamp(1.15rem,2.3vw,1.6rem);
  line-height:1.05;
  letter-spacing:-.035em;
  max-width:16ch;
}
.langs{
  margin-left:auto;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  line-height:1.15;
}
.lang-btn{
  font:inherit;
  font-weight:800;
  font-size:clamp(1.05rem,2vw,1.4rem);
  letter-spacing:-.03em;
  background:none;border:0;padding:0;cursor:pointer;
  color:var(--blue);
}
.lang-btn[aria-pressed="true"]{color:var(--red)}

.site-nav{
  display:flex;
  gap:clamp(.9rem,2.5vw,1.6rem);
  flex-wrap:wrap;
  margin-top:.55rem;
  font-weight:800;
  font-size:clamp(.95rem,1.6vw,1.15rem);
  letter-spacing:-.02em;
}
.site-nav a{color:var(--blue)}
.site-nav a:hover{text-decoration:underline;text-underline-offset:3px}
.site-nav a[aria-current="page"]{color:var(--ink)}

/* ---------------- kleurbanden ---------------- */
.bands{margin-top:.9rem}
.band{
  overflow:hidden;
  white-space:nowrap;
  user-select:none;-webkit-user-select:none;
  padding:.06em 0;
}
.band__track{
  display:inline-flex;
  font-weight:800;
  font-size:clamp(2.6rem,7.5vw,5.4rem);
  line-height:1.15;
  letter-spacing:-.035em;
  animation:slide 52s linear infinite;
  will-change:transform;
}
.band__track span{padding-right:.35em}
.band--magenta{background:var(--magenta);color:#fff}
.band--commons{background:var(--bg);color:var(--red)}
.band--cyan{background:var(--cyan);color:#fff}
.band--rev .band__track{animation-direction:reverse;animation-duration:64s}
.band--slow .band__track{animation-duration:76s}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------------- secties ---------------- */
.section{
  border-top:2px solid var(--rule);
  padding:clamp(1.6rem,4vw,2.6rem) 0 clamp(2rem,5vw,3.2rem);
}
.section:first-of-type{border-top:2px solid var(--rule)}
.section__grid{
  display:grid;
  grid-template-columns:11rem minmax(0,1fr);
  gap:clamp(.6rem,3vw,2rem);
  align-items:start;
}
.label{
  font-family:var(--mono);
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.1em;
  padding-top:.6rem;
  color:var(--ink);
}
.section__body{max-width:56rem}
.section__body p{margin:0 0 .85rem;max-width:62ch}
.section__body p:last-child{margin-bottom:0}
.section__body em{font-style:italic}

/* markeer-koppen */
.hl{
  display:inline-block;
  font-weight:800;
  font-size:clamp(1.9rem,5.2vw,3rem);
  line-height:1.05;
  letter-spacing:-.04em;
  padding:.06em .22em .12em;
  margin:0 0 .9rem;
}
.hl--yellow{background:var(--yellow);color:#000}
.hl--red{background:var(--red);color:#fff}
.hl--cyan{background:var(--cyan);color:#000}

.big{
  font-weight:800;
  font-size:clamp(1.5rem,4.2vw,2.4rem);
  line-height:1.1;
  letter-spacing:-.04em;
  margin:1.4rem 0 .5rem;
  max-width:20ch;
}
.muted{color:var(--gray)}

.reflist{list-style:none;margin:1.2rem 0 0;padding:0}
.reflist li{margin:0 0 .45rem}
.reflist a{color:var(--blue);font-weight:800}
.reflist a:hover{text-decoration:underline;text-underline-offset:3px}
.reflist .dash{color:var(--gray);font-weight:500}

.btn-box{
  display:inline-block;
  border:2px solid var(--rule);
  padding:.35rem .7rem;
  font-family:var(--mono);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.03em;
  transition:background .15s,color .15s;
}
.btn-box:hover{background:var(--ink);color:var(--bg)}

/* ---------------- blog ---------------- */
.tags{
  display:flex;flex-wrap:wrap;gap:.4rem;
  margin:0 0 1.6rem;padding:0;list-style:none;
}
.tag{
  font-family:var(--mono);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.03em;
  border:2px solid var(--rule);
  background:none;color:var(--ink);
  padding:.28rem .6rem;
  cursor:pointer;
  transition:background .15s,color .15s;
}
.tag:hover{background:var(--yellow);color:#000}
.tag[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.tag .count{opacity:.55;margin-left:.35rem;font-weight:500}

.toc{margin:0 0 2.2rem;max-width:46rem}
.toc h2{
  font-family:var(--mono);
  font-size:.7rem;font-weight:700;letter-spacing:.12em;
  margin:0 0 .6rem;
}
.toc ol{list-style:none;margin:0;padding:0;border-top:2px solid var(--rule)}
.toc li{border-bottom:1px solid var(--rule)}
.toc a{
  display:flex;gap:.9rem;align-items:baseline;
  padding:.5rem 0;font-weight:800;color:var(--blue);
  letter-spacing:-.01em;
}
.toc a:hover{background:var(--yellow);color:#000}
.toc .n{font-family:var(--mono);font-size:.7rem;font-weight:700;color:var(--gray);min-width:2rem}
.toc .yr{margin-left:auto;font-family:var(--mono);font-size:.7rem;font-weight:500;color:var(--gray)}

.post{
  max-width:46rem;
  border-top:2px solid var(--rule);
  padding:1rem 0 1.4rem;
}
.posts-end{max-width:46rem;border-top:2px solid var(--rule)}
.post__date{font-family:var(--mono);font-size:.72rem;font-weight:700;color:var(--gray)}
.post__title{
  font-weight:800;
  font-size:clamp(1.25rem,3.2vw,1.7rem);
  letter-spacing:-.03em;
  line-height:1.15;
  margin:.15rem 0 .5rem;
}
.post__body p{margin:0 0 .7rem;max-width:60ch}
.post__body p:last-child{margin-bottom:0}
.post__tags{margin-top:.7rem;display:flex;gap:.35rem;flex-wrap:wrap}
.post__tags span{
  font-family:var(--mono);font-size:.66rem;font-weight:700;
  color:var(--gray);letter-spacing:.04em;
}
.post__tags span::before{content:"#"}
.post[hidden]{display:none}

.empty{
  font-family:var(--mono);font-size:.8rem;color:var(--gray);
  padding:1.5rem 0;
}
.more{color:var(--gray);margin:1.4rem 0 0}

/* ---------------- footer ---------------- */
.site-foot{
  background:#000;color:#fff;
  margin-top:clamp(2rem,6vw,4rem);
}
html[data-theme="dark"] .site-foot{background:#141414}
.site-foot__inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;padding-top:1.2rem;padding-bottom:1.2rem;
  font-weight:800;font-size:clamp(.85rem,1.6vw,1rem);
  letter-spacing:-.02em;
}
.theme-btn{
  font:inherit;font-size:1.15rem;line-height:1;
  background:none;border:0;cursor:pointer;
  color:var(--yellow);padding:.2rem .5rem;
}
.theme-btn:hover{color:var(--cyan)}

.skip{position:absolute;left:-9999px;top:0;background:#000;color:#fff;padding:.6rem 1rem;z-index:99}
.skip:focus{left:0}

/* ---------------- klein scherm ---------------- */
@media (max-width:760px){
  .head-top{flex-wrap:wrap}
  .tagline{max-width:100%;flex-basis:100%;order:3}
  .langs{flex-direction:row;gap:.6rem;align-items:baseline}
  .section__grid{grid-template-columns:1fr;gap:.3rem}
  .label{padding-top:0;margin-bottom:.5rem}
}

@media print{
  .bands,.langs,.theme-btn,.tags{display:none}
  body{background:#fff;color:#000}
  .site-foot{background:#fff;color:#000;border-top:2px solid #000}
}
