@font-face{font-family:"Pixelify Sans";src:url("fonts/PixelifySans.ttf") format("truetype");font-weight:400 700;font-display:swap}
@font-face{font-family:"Nunito";src:url("fonts/Nunito.ttf") format("truetype");font-weight:200 1000;font-display:swap}

:root{
  --bg:#FFFFFF;--surface:#F4F7FA;--ink:#141214;--muted:#5B565B;--accent:#FBE989;--accent-deep:#141214;--shadow:#38B6FF;
  --yellow:#FBE989;--blue:#38B6FF;--green:#B6DE6A;--orange:#FDB15F;--lavender:#CDB4FD;--red:#FF6666;
  --font-pixel:"Pixelify Sans",ui-monospace,monospace;--font-body:"Nunito",system-ui,sans-serif;
  --wrap:1040px;--read:720px;--radius:12px;--line:3px;
}
*,*::before,*::after{box-sizing:border-box}
:where(html,body,h1,h2,h3,h4,p,ul,ol,figure,blockquote){margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:clip}body{overflow-x:clip}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-weight:500;font-size:18px;line-height:1.65;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:3px dashed var(--ink);outline-offset:3px}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;background:var(--accent);padding:8px 12px;z-index:99}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 24px}
.pixel{font-family:var(--font-pixel)}

/* Pixel shape: stepped corners */
.px,.pbox::before{--s:6px}.px,.pbox::before{clip-path:polygon(0 calc(var(--s)*2),var(--s) calc(var(--s)*2),var(--s) var(--s),calc(var(--s)*2) var(--s),calc(var(--s)*2) 0,calc(100% - var(--s)*2) 0,calc(100% - var(--s)*2) var(--s),calc(100% - var(--s)) var(--s),calc(100% - var(--s)) calc(var(--s)*2),100% calc(var(--s)*2),100% calc(100% - var(--s)*2),calc(100% - var(--s)) calc(100% - var(--s)*2),calc(100% - var(--s)) calc(100% - var(--s)),calc(100% - var(--s)*2) calc(100% - var(--s)),calc(100% - var(--s)*2) 100%,calc(var(--s)*2) 100%,calc(var(--s)*2) calc(100% - var(--s)),var(--s) calc(100% - var(--s)),var(--s) calc(100% - var(--s)*2),0 calc(100% - var(--s)*2))}
.pbox{position:relative;isolation:isolate}
.pbox::before{content:"";position:absolute;inset:0;transform:translate(10px,10px);background:var(--shadow);z-index:-1}
.pbox__frame{background:var(--ink);padding:var(--line)}
.pbox__frame .pbox__in{background:var(--bg);--s:5px}

/* Header */
.site-header{border-bottom:var(--line) solid var(--ink);background:var(--bg);position:sticky;top:0;z-index:20}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-family:var(--font-pixel);font-size:28px;font-weight:500;letter-spacing:.01em;white-space:nowrap}
.brand svg{width:66px;height:auto}
.nav ul{display:flex;gap:10px;list-style:none;align-items:center}
.nav a{display:inline-block;font-family:var(--font-pixel);font-size:20px;text-decoration:none;padding:6px 16px;border:2px solid transparent;border-radius:var(--radius)}
.nav a:hover{border-color:var(--ink)}
.nav a[aria-current=page]{background:var(--accent);border-color:var(--ink);box-shadow:3px 3px 0 var(--accent-deep)}
.nav-toggle{display:none;background:var(--accent);border:2px solid var(--ink);border-radius:var(--radius);font-family:var(--font-pixel);font-size:18px;padding:6px 14px;cursor:pointer;color:var(--ink)}

/* Hero */
.hero{text-align:center;padding:56px 0 24px}
.hero__logo{width:min(260px,62vw);margin:0 auto 8px}
.hero__title{font-family:var(--font-pixel);font-weight:500;font-size:clamp(46px,9vw,92px);line-height:1;letter-spacing:.01em}
.hero__sub{position:relative;display:inline-block;margin-top:22px;padding:0 64px;font-family:var(--font-pixel);font-size:clamp(18px,2.4vw,24px);line-height:1.45}
.spark{position:absolute;top:50%;width:40px;height:56px;transform:translateY(-50%)}
.spark--l{left:0}.spark--r{right:0;transform:translateY(-50%) scaleX(-1)}

/* Ask form */
.ask{max-width:860px;margin:48px auto 0}
.ask .pbox__in{padding:32px 40px 36px}
.ask__head{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.ask__head svg{width:52px;flex:none}
.ask__head h2{font-family:var(--font-pixel);font-weight:500;font-size:clamp(26px,3.4vw,34px);line-height:1.1}
.field{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.field svg{width:28px;flex:none}
.field--full{display:block}
.ask label.vh,.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ask input[type=text],.ask input[type=email],.ask textarea{width:100%;font:500 18px/1.5 var(--font-pixel);color:var(--ink);background:var(--bg);border:2px solid var(--ink);border-radius:var(--radius);padding:12px 18px}
.ask textarea{min-height:180px;resize:vertical;font-family:var(--font-body);font-size:18px}
.ask ::placeholder{color:#76707a;opacity:1}
.ask input:focus,.ask textarea:focus{outline:none;box-shadow:0 0 0 4px var(--shadow)}
.ask__hint{font-size:15px;color:var(--muted);margin:-6px 0 16px 42px;line-height:1.5}
.ask__foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:8px}
.ask__safe{font-size:15px;color:var(--muted);max-width:420px;line-height:1.5}
.ask__safe a{font-weight:700;color:var(--ink)}
.hp{position:absolute!important;left:-10000px!important}
.btn{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-pixel);font-size:21px;font-weight:500;color:var(--ink);background:var(--accent);border:var(--line) solid var(--ink);border-radius:var(--radius);padding:10px 26px;box-shadow:5px 5px 0 var(--accent-deep);cursor:pointer;text-decoration:none;transition:transform .12s ease,box-shadow .12s ease}
.btn svg{width:24px}
.btn:hover{transform:translate(-1px,-1px);box-shadow:6px 6px 0 var(--accent-deep)}
.btn:active{transform:translate(4px,4px);box-shadow:1px 1px 0 var(--accent-deep)}
.notice{font-family:var(--font-pixel);font-size:19px;border:2px solid var(--ink);border-radius:var(--radius);padding:14px 18px;margin-bottom:20px;line-height:1.4}
.notice--ok{background:var(--green)}.notice--err{background:var(--red)}
.counter{font-family:var(--font-pixel);font-size:14px;color:var(--muted);text-align:right;margin-top:6px}

/* Divider */
.divider{display:flex;align-items:center;gap:24px;max-width:880px;margin:72px auto}
.divider::before,.divider::after{content:"";flex:1;height:3px;background:var(--ink)}
.divider svg{width:54px}

/* Sections */
.section{padding:8px 0 24px}
.h2{font-family:var(--font-pixel);font-weight:500;font-size:clamp(30px,4.6vw,48px);line-height:1.1;text-align:center}
.lead{max-width:var(--read);margin:18px auto 0;text-align:center;font-size:19px;color:var(--ink)}
.lead+.lead{margin-top:12px}

.friend{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;max-width:960px;margin:0 auto}
.friend .h2{text-align:left}
.friend p{margin-top:16px}
.quote .pbox__in{padding:30px 32px;background:var(--surface)}
.quote p{font-family:var(--font-pixel);font-size:23px;line-height:1.4;margin:0}
.quote .sig{display:block;margin-top:16px;font-size:18px}

.topics{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;max-width:960px;margin:36px auto 0}
.tile{grid-column:span 2;background:var(--ink);padding:var(--line)}
.tile:nth-child(1),.tile:nth-child(2){grid-column:span 3}.tile:nth-child(6){grid-column:1/-1}.tile:nth-child(6) .tile__in{text-align:center}.tile:nth-child(6) p{max-width:560px;margin-left:auto;margin-right:auto}
.tile__in{height:100%;padding:22px 22px 24px;--s:5px}
.tile h3{font-family:var(--font-pixel);font-weight:500;font-size:24px;line-height:1.15}
.tile p{margin-top:8px;font-size:16px;line-height:1.55}
.t-yellow{background:var(--yellow)}.t-blue{background:var(--blue)}.t-green{background:var(--green)}.t-orange{background:var(--orange)}.t-lav{background:var(--lavender)}.t-red{background:var(--red)}

.how{max-width:900px;margin:36px auto 0}
.how .pbox__in{padding:10px 36px}
.how ol{list-style:none;counter-reset:s}
.how li{counter-increment:s;display:grid;grid-template-columns:56px 1fr;gap:18px;align-items:start;padding:24px 0;border-bottom:2px dashed var(--ink)}
.how li:last-child{border-bottom:0}
.how li::before{content:counter(s);display:grid;place-items:center;width:48px;height:48px;background:var(--accent);border:2px solid var(--ink);border-radius:var(--radius);font-family:var(--font-pixel);font-size:24px}
.how h3{font-family:var(--font-pixel);font-weight:500;font-size:24px;line-height:1.2}
.how p{margin-top:4px}

.human{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;max-width:960px;margin:0 auto}
.human .h2{text-align:left;font-size:clamp(34px,5vw,56px)}
.human .h2 em{font-style:normal;background:var(--accent);padding:0 8px}
.checks{list-style:none;display:grid;gap:14px}
.checks li{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start}
.checks svg{width:26px;margin-top:4px}
.checks strong{font-family:var(--font-pixel);font-weight:500;font-size:21px;display:block;line-height:1.3}
.cta-row{text-align:center;margin-top:48px}

/* Pages */
.page-hero{text-align:center;padding:56px 0 8px}
.page-hero svg{width:110px;margin:0 auto 14px}
.page-hero h1{font-family:var(--font-pixel);font-weight:500;font-size:clamp(40px,7vw,72px);line-height:1.05}
.page-hero p{font-family:var(--font-pixel);font-size:21px;margin-top:14px}
.prose-box{max-width:820px;margin:44px auto 0}
.prose-box .pbox__in{padding:40px 48px}
.prose{max-width:var(--read)}
.prose>*+*{margin-top:1em}
.prose h2{font-family:var(--font-pixel);font-weight:500;font-size:30px;line-height:1.15;margin-top:1.6em}
.prose h2:first-child{margin-top:0}
.prose h3{font-family:var(--font-pixel);font-weight:500;font-size:23px;line-height:1.2;margin-top:1.4em}
.prose ul{padding-left:1.2em}
.prose li+li{margin-top:.4em}
.prose a{font-weight:700}
.prose .callout{background:var(--yellow);border:2px solid var(--ink);border-radius:var(--radius);padding:18px 22px}
.prose .callout--red{background:var(--accent)}
.prose strong{font-weight:800}

/* Footer */
.site-footer{margin-top:96px;border-top:var(--line) solid var(--ink);padding:40px 0 32px}
.site-footer .wrap{display:grid;grid-template-columns:1.2fr 1fr;gap:32px;align-items:start}
.site-footer .brand{font-size:24px}
.site-footer p{font-size:15px;color:var(--muted);margin-top:12px;max-width:440px}
.foot-nav{list-style:none;display:flex;gap:18px;flex-wrap:wrap;justify-content:flex-end;font-family:var(--font-pixel);font-size:18px}
.foot-help{grid-column:1/-1;background:var(--surface);border:2px solid var(--ink);border-radius:var(--radius);padding:14px 18px;font-size:15px;line-height:1.55}
.foot-help strong{font-family:var(--font-pixel);font-weight:500;font-size:17px}
.copy{grid-column:1/-1;font-family:var(--font-pixel);font-size:14px;color:var(--muted)}

@media (max-width:860px){
  .friend,.human{grid-template-columns:1fr;gap:32px}
  .topics{grid-template-columns:1fr 1fr}
  .tile,.tile:nth-child(1),.tile:nth-child(2),.tile:nth-child(6){grid-column:span 1}
  .tile:nth-child(6) .tile__in{text-align:left}
  .site-footer .wrap{grid-template-columns:1fr}
  .foot-nav{justify-content:flex-start}
}
@media (max-width:640px){
  body{font-size:17px}
  .wrap{padding:0 16px}
  .brand{font-size:22px}.brand svg{width:52px}
  .nav-toggle{display:inline-block}
  .nav{position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:var(--line) solid var(--ink);display:none;padding:12px 16px 18px}
  .nav.is-open{display:block}
  .nav ul{flex-direction:column;align-items:stretch}
  .nav a{display:block;text-align:center}
  .hero{padding-top:36px}
  .hero__sub{padding:0 40px;font-size:17px}
  .spark{width:28px;height:40px}
  .ask .pbox__in{padding:24px 18px 26px}
  .ask__hint{margin-left:0}
  .field svg{display:none}
  .topics{grid-template-columns:1fr}
  .how .pbox__in{padding:6px 18px}
  .how li{grid-template-columns:44px 1fr;gap:12px}
  .how li::before{width:40px;height:40px;font-size:20px}
  .prose-box .pbox__in{padding:26px 20px}
  .btn{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Laadbalk bij versturen */
.sending{display:none;text-align:center;padding:28px 0 8px}
.ask.is-sending form{display:none}
.ask.is-sending .sending{display:block}
.sending__title{font-family:var(--font-pixel);font-size:24px;line-height:1.3}
.sending__sub{font-size:16px;color:var(--muted);margin-top:6px}
.pixbar{display:inline-flex;gap:6px;padding:8px;border:var(--line) solid var(--ink);background:var(--bg);margin-top:22px;box-shadow:6px 6px 0 var(--shadow)}
.pixbar i{display:block;width:22px;height:28px;background:var(--surface);border:2px solid transparent}
.pixbar i.on{background:var(--shadow);border-color:var(--ink)}
.pixbar i.on:nth-child(3n+2){background:var(--accent)}
.sending__pct{font-family:var(--font-pixel);font-size:18px;margin-top:14px}
@media (max-width:640px){.pixbar{gap:4px;padding:6px}.pixbar i{width:14px;height:22px}}

/* Blog */
.blog-list{max-width:960px;margin:44px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:34px 30px}
.post-card{background:var(--ink);padding:var(--line);text-decoration:none;display:block;transition:transform .12s ease}
.post-card:hover{transform:translate(-2px,-2px)}
.post-card__in{height:100%;background:var(--bg);--s:5px;display:flex;flex-direction:column}
.post-card__band{height:96px;display:grid;place-items:center;border-bottom:var(--line) solid var(--ink)}
.post-card__band svg{width:60px}
.post-card__body{padding:22px 24px 26px}
.post-card__meta{font-family:var(--font-pixel);font-size:15px;color:var(--muted)}
.post-card h2{font-family:var(--font-pixel);font-weight:500;font-size:26px;line-height:1.15;margin-top:6px}
.post-card p{font-size:16px;line-height:1.6;margin-top:10px}
.post-card__more{font-family:var(--font-pixel);font-size:17px;margin-top:14px;display:inline-block;border-bottom:2px solid var(--ink)}
.post-card--lead{grid-column:1/-1}
.post-card--lead .post-card__in{flex-direction:row}
.post-card--lead .post-card__band{height:auto;min-width:220px;border-bottom:0;border-right:var(--line) solid var(--ink)}
.post-card--lead .post-card__band svg{width:96px}
.post-card--lead h2{font-size:34px}
.post-card--lead .post-card__body{padding:30px 34px 34px}
.b-yellow{background:var(--yellow)}.b-blue{background:var(--blue)}.b-green{background:var(--green)}.b-orange{background:var(--orange)}.b-lav{background:var(--lavender)}.b-red{background:var(--red)}
.post-meta{font-family:var(--font-pixel);font-size:18px;margin-top:12px;color:var(--muted)}
.promise{max-width:820px;margin:28px auto 0;background:var(--surface);border:2px solid var(--ink);border-radius:var(--radius);padding:14px 18px;font-size:15px;line-height:1.55}
.promise strong{font-family:var(--font-pixel);font-weight:500;font-size:17px}
.pager{display:flex;justify-content:center;gap:12px;margin-top:40px;font-family:var(--font-pixel);font-size:18px}
.pager a,.pager span{padding:6px 14px;border:2px solid var(--ink);border-radius:var(--radius);text-decoration:none}
.pager .current{background:var(--accent)}
.empty{max-width:640px;margin:44px auto 0;text-align:center}
@media (max-width:860px){.blog-list{grid-template-columns:1fr}.post-card--lead .post-card__in{flex-direction:column}.post-card--lead .post-card__band{min-width:0;height:110px;border-right:0;border-bottom:var(--line) solid var(--ink)}.post-card--lead h2{font-size:28px}.post-card--lead .post-card__body{padding:22px 24px 26px}}
.nav a{white-space:nowrap}
@media (max-width:980px){.nav ul{gap:4px}.nav a{font-size:17px;padding:6px 10px}.brand{font-size:24px}.brand svg{width:56px}}
@media (min-width:641px) and (max-width:780px){.brand span{display:none}}

/* Formulier v2 */
.tips{background:var(--surface);border:2px solid var(--ink);border-radius:var(--radius);padding:16px 20px;margin-bottom:22px;text-align:left}
.tips__title{font-family:var(--font-pixel);font-size:20px;margin-bottom:8px}
.tips ul{list-style:none;display:grid;gap:8px}
.tips li{position:relative;padding-left:22px;font-size:16px;line-height:1.55}
.tips li::before{content:"";position:absolute;left:0;top:.5em;width:10px;height:10px;background:var(--shadow);border:2px solid var(--ink)}
.tips strong{font-weight:800}
.jar-form{text-align:left}
.row2{display:grid;grid-template-columns:1fr 160px;gap:16px;margin-bottom:16px}
.lbl{display:block;font-family:var(--font-pixel);font-size:18px;margin:0 0 6px}
.lbl span{font-family:var(--font-body);font-size:14px;color:var(--muted)}
.ask input[type=number]{width:100%;font:500 18px/1.5 var(--font-pixel);color:var(--ink);background:var(--bg);border:2px solid var(--ink);border-radius:var(--radius);padding:12px 18px}
.ask textarea{min-height:240px}
.jar-form input[type=email]{margin-bottom:16px}
.check{display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:start;font-size:15px;line-height:1.5;margin-bottom:12px}
.check input{width:20px;height:20px;margin-top:2px;accent-color:#141214}
.check a{font-weight:700}
.topics--8 .tile,.topics--8 .tile:nth-child(6){grid-column:span 2}
.topics--8 .tile:nth-child(1),.topics--8 .tile:nth-child(2){grid-column:span 3}
.topics--8 .tile:nth-child(6) .tile__in{text-align:left}
.topics--8 .tile:nth-child(6) p{margin-left:0}
@media (max-width:860px){.topics--8 .tile,.topics--8 .tile:nth-child(1),.topics--8 .tile:nth-child(2),.topics--8 .tile:nth-child(6){grid-column:span 1}}
@media (max-width:640px){.row2{grid-template-columns:1fr 110px}}
.chips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:960px;margin:28px auto 0}
.chips a{font-family:var(--font-pixel);font-size:17px;text-decoration:none;padding:6px 14px;border:2px solid var(--ink);border-radius:var(--radius);background:var(--bg)}
.chips a:hover{background:var(--surface)}
.chips a[aria-current=page]{background:var(--accent);box-shadow:3px 3px 0 var(--ink)}
.cat-desc{max-width:640px;margin-left:auto;margin-right:auto;font-family:var(--font-body)!important;font-size:18px!important;line-height:1.6}
.prose-box+.ask{margin-top:56px}
.price-note{font-size:15px;color:var(--muted)}
/* ===== Animaties ===== */
@keyframes jar-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes jar-type{0%,100%{opacity:.15}33%{opacity:1}}
@keyframes jar-blink{0%,100%{opacity:1}50%{opacity:.25}}
@keyframes jar-spark{0%,100%{transform:translateY(-50%) scale(1)}50%{transform:translateY(-50%) scale(1.15)}}
@keyframes jar-spark-r{0%,100%{transform:translateY(-50%) scaleX(-1) scale(1)}50%{transform:translateY(-50%) scaleX(-1) scale(1.15)}}
@keyframes jar-pop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.08);opacity:1}100%{transform:scale(1)}}
@keyframes jar-wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}

.hero__logo svg{animation:jar-bob 2.4s steps(4,end) infinite}
.hero__logo rect,.divider rect{animation:jar-type 1.2s steps(1,end) infinite}
.hero__logo rect:nth-of-type(2),.divider rect:nth-of-type(2){animation-delay:.4s}
.hero__logo rect:nth-of-type(3),.divider rect:nth-of-type(3){animation-delay:.8s}
.spark--l{animation:jar-spark 1.6s steps(2,end) infinite}
.spark--r{animation:jar-spark-r 1.6s steps(2,end) infinite .8s}
.hero__title{animation:jar-pop .7s steps(6,end) both .1s}
.ask__head svg{transform-origin:50% 100%}
.ask:hover .ask__head svg{animation:jar-wiggle .5s steps(4,end)}
.brand:hover svg{animation:jar-bob .6s steps(2,end) 2}
.page-hero svg{animation:jar-bob 2.4s steps(4,end) infinite}
.page-hero svg rect{animation:jar-type 1.2s steps(1,end) infinite}
.page-hero svg rect:nth-of-type(2){animation-delay:.4s}.page-hero svg rect:nth-of-type(3){animation-delay:.8s}

/* tegels en kaarten: pixel-sprongetje bij hover */
.tile{transition:transform .15s steps(3,end)}
.tile:hover{transform:translate(-4px,-4px)}
.tile:hover h3{animation:jar-blink .6s steps(1,end) 2}
.checks li:hover svg{animation:jar-wiggle .5s steps(4,end)}
.btn svg{transition:transform .15s steps(3,end)}
.btn:hover svg{transform:translate(3px,-3px)}
.chips a{transition:transform .12s steps(2,end)}
.chips a:hover{transform:translateY(-3px)}

/* Scroll-onthulling: alleen als JS actief is */
.js-anim .reveal{opacity:0;transform:translateY(24px);transition:opacity .5s ease,transform .5s steps(5,end)}
.js-anim .reveal.is-in{opacity:1;transform:none}
.js-anim .reveal.pbox::before{transform:translate(0,0);transition:transform .45s steps(5,end) .25s}
.js-anim .reveal.pbox.is-in::before{transform:translate(10px,10px)}
.js-anim .how li.reveal{transform:translateX(-24px)}
.js-anim .how li.reveal.is-in{transform:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important}
  .js-anim .reveal{opacity:1!important;transform:none!important}
  .js-anim .reveal.pbox::before{transform:translate(10px,10px)!important}
}
.js-anim .tile.reveal.is-in:hover{transform:translate(-4px,-4px)}
.js-anim .post-card.reveal.is-in:hover{transform:translate(-2px,-2px)}
