/* ═══════════════════════════════════════════════════════════════
   MasterStart — donker, dynamisch
   ───────────────────────────────────────────────────────────────
   BEWEGINGSSYSTEEM: alle timing en easing komt uit de tokens
   hieronder. Wil je de hele site sneller/trager? Pas --d2 aan.
   Er wordt uitsluitend transform en opacity geanimeerd.
   ═══════════════════════════════════════════════════════════════ */
:root{
  --disp:"Sora",system-ui,sans-serif;
  --sans:"Sora",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;

  --void:#0A0908; --deep:#0F0E0C; --surf:#151311; --raise:#1C1917;
  --line:#241F1B; --line2:#332C26;
  --text:#F4F0E8; --text2:#9A9086; --text3:#665F57;
  --brass:#B08D57; --brassL:#CDA765; --champ:#EBD9AE;
  --live:#4FD18B; --wax:#6E1F23;

  /* bewegingstokens */
  --d1:.26s; --d2:.5s; --d3:.9s; --d4:1.3s;
  --e-out:cubic-bezier(.22,1,.36,1);
  --e-io:cubic-bezier(.65,0,.35,1);
  --e-spring:cubic-bezier(.34,1.4,.64,1);

  --gut:clamp(20px,5vw,80px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--void)}
body{margin:0;background:var(--void);color:var(--text);font-family:var(--sans);
  font-weight:300;font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.locked{overflow:hidden;height:100vh}
h1,h2,h3,h4{font-family:var(--disp);font-weight:600;line-height:1.05;letter-spacing:-.045em;margin:0}
p{margin:0 0 1.1em}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
::selection{background:var(--brass);color:var(--void)}
:focus-visible{outline:1px solid var(--brass);outline-offset:4px}
.wrap{max-width:1240px;margin:0 auto;padding:0 var(--gut);position:relative;z-index:2}

/* ── paginaovergangen (native, geen framework) ── */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vtOut .3s var(--e-io) both}
::view-transition-new(root){animation:vtIn .45s var(--e-out) both}
@keyframes vtOut{to{opacity:0;transform:translateY(-14px)}}
@keyframes vtIn{from{opacity:0;transform:translateY(18px)}}

/* ── korrel ── */
body::before{content:"";position:fixed;inset:0;z-index:9;pointer-events:none;opacity:.28;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
  mix-blend-mode:overlay}

/* ── AURORA: messing/champagne glow achter alles ── */
.aurora{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;contain:strict}
.aurora b{position:absolute;display:block;border-radius:50%;filter:blur(90px);
  mix-blend-mode:screen;will-change:transform}
.aurora b:nth-child(1){width:58vw;height:58vw;left:-12vw;top:-8vw;
  background:radial-gradient(circle,rgba(176,141,87,.30),transparent 68%);animation:au1 26s ease-in-out infinite}
.aurora b:nth-child(2){width:46vw;height:46vw;right:-8vw;top:22vh;
  background:radial-gradient(circle,rgba(235,217,174,.16),transparent 68%);animation:au2 34s ease-in-out infinite}
.aurora b:nth-child(3){width:52vw;height:52vw;left:24vw;bottom:-16vw;
  background:radial-gradient(circle,rgba(110,31,35,.24),transparent 70%);animation:au3 30s ease-in-out infinite}
@keyframes au1{50%{transform:translate3d(9vw,7vh,0) scale(1.15)}}
@keyframes au2{50%{transform:translate3d(-7vw,-9vh,0) scale(1.2)}}
@keyframes au3{50%{transform:translate3d(6vw,-6vh,0) scale(1.1)}}
@media(max-width:700px){.aurora b{filter:blur(60px)}}

/* ── voortgangsbalk: native scroll-timeline waar het kan ── */
#prog{position:fixed;top:0;left:0;height:2px;width:100%;background:var(--brass);z-index:80;
  transform-origin:0 50%;transform:scaleX(0)}
@supports (animation-timeline:scroll()){
  #prog{animation:pg linear;animation-timeline:scroll(root)}
  @keyframes pg{to{transform:scaleX(1)}}
}

/* ── aangepaste cursor (alleen muis) ── */
body.cur-on{cursor:none}
body.cur-on a,body.cur-on button,body.cur-on .ag,body.cur-on .bx,
body.cur-on .hs-card,body.cur-on summary{cursor:none}
.cur,.cur-r{position:fixed;top:0;left:0;z-index:95;pointer-events:none;border-radius:50%;
  transform:translate3d(-50%,-50%,0);opacity:0;transition:opacity .3s}
.cur{width:5px;height:5px;background:var(--champ)}
.cur-r{width:34px;height:34px;border:1px solid rgba(176,141,87,.45);
  transition:opacity .3s,width .3s var(--e-out),height .3s var(--e-out),background .3s}
body.cur-on .cur,body.cur-on .cur-r{opacity:1}
body.cur-hot .cur-r{width:58px;height:58px;background:rgba(176,141,87,.10)}
@media(pointer:coarse){.cur,.cur-r{display:none}}

/* ── typografie ── */
.lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--brass)}
.rule{display:flex;align-items:center;gap:16px;margin-bottom:28px}
.rule::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line2),transparent)}
.lead{color:var(--text2);max-width:60ch;font-size:clamp(16px,1.65vw,18.5px)}
.hd{font-size:clamp(30px,5vw,60px);max-width:19ch}
.hd em,h1 em{font-style:normal;color:var(--champ)}
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5.5vw,88px);align-items:start}
@media(max-width:900px){.split{grid-template-columns:1fr}}
section{padding:clamp(76px,10vw,150px) 0;position:relative}
.surf{background:rgba(15,14,12,.72)}

/* ── reveals ── */
.rv{opacity:0;transform:translateY(28px);
  transition:opacity var(--d3) var(--e-out),transform var(--d3) var(--e-out)}
.rv.in{opacity:1;transform:none}
.wr span{display:inline-block;opacity:0;transform:translateY(.55em) rotate(1.5deg);
  transition:opacity var(--d2) var(--e-out),transform var(--d2) var(--e-out)}
.wr.in span{opacity:1;transform:none}
.ch span{display:inline-block;opacity:0;transform:translateY(.7em);
  transition:opacity .55s var(--e-out),transform .55s var(--e-out)}
.ch.in span{opacity:1;transform:none}

/* beeldonthulling — bewust met opacity i.p.v. clip-path.
   Faalt dit, dan is het beeld gewoon meteen zichtbaar in plaats van
   voorgoed verborgen. Veilige faalrichting. */
.rev-img{opacity:0;transform:scale(1.03);
  transition:opacity 1s var(--e-out),transform 1.2s var(--e-out)}
.rev-img.in{opacity:1;transform:none}

/* ── knoppen ── */
button.btn{-webkit-appearance:none;appearance:none;background:transparent;cursor:pointer;
  line-height:1.7;text-align:center}
.btn{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;padding:15px 30px;border:1px solid var(--line2);color:var(--champ);
  position:relative;overflow:hidden;isolation:isolate;
  transition:color var(--d2) var(--e-out),border-color var(--d2),transform var(--d1) var(--e-out)}
.btn::before{content:"";position:absolute;inset:0;background:var(--champ);
  transform:translateY(101%);transition:transform var(--d2) var(--e-out);z-index:-1}
.btn:hover{color:var(--void);border-color:var(--champ)}
.btn:hover::before{transform:translateY(0)}
.btn.solid{background:var(--champ);color:var(--void);border-color:var(--champ)}
.btn.solid::before{background:var(--void)}
.btn.solid:hover{color:var(--champ)}

/* ── nav ── */
.nav{position:fixed;top:0;left:0;right:0;z-index:70;height:74px;display:flex;align-items:center;
  transition:background var(--d2),border-color var(--d2);border-bottom:1px solid transparent}
.nav.stuck{background:rgba(10,9,8,.82);backdrop-filter:blur(16px) saturate(1.2);border-bottom-color:var(--line)}
.nav .wrap{display:flex;align-items:center;gap:clamp(12px,2vw,26px);width:100%}
.nav .bd{font-family:var(--disp);font-weight:600;font-size:18px;letter-spacing:-.05em;margin-right:auto}
.nav .bd span{color:var(--brass)}
.nav a.l{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--text2);transition:color var(--d1);white-space:nowrap;position:relative}
.nav a.l::after{content:"";position:absolute;left:0;right:100%;bottom:-5px;height:1px;
  background:var(--brass);transition:right var(--d2) var(--e-out)}
.nav a.l:hover{color:var(--champ)} .nav a.l:hover::after{right:0}
.nav a.l[aria-current]{color:var(--champ)} .nav a.l[aria-current]::after{right:0}
.nav .btn{padding:12px 20px}
.burger{display:none;background:none;border:0;font-family:var(--mono);font-size:11px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--text);cursor:pointer;padding:8px}
@media(max-width:1040px){.nav a.l,.nav .btn{display:none}.burger{display:block}}
#menu{position:fixed;inset:0;z-index:90;background:rgba(10,9,8,.97);backdrop-filter:blur(20px);
  display:none;flex-direction:column;justify-content:center;gap:4px;padding:0 var(--gut)}
#menu.on{display:flex}
#menu a{font-family:var(--disp);font-weight:600;font-size:clamp(26px,7vw,46px);letter-spacing:-.05em;
  padding:11px 0;border-bottom:1px solid var(--line);opacity:0;transform:translateY(18px);
  animation:mIn .55s var(--e-out) forwards}
#menu.on a:nth-of-type(2){animation-delay:.05s}#menu.on a:nth-of-type(3){animation-delay:.1s}
#menu.on a:nth-of-type(4){animation-delay:.15s}#menu.on a:nth-of-type(5){animation-delay:.2s}
#menu.on a:nth-of-type(6){animation-delay:.25s}#menu.on a:nth-of-type(7){animation-delay:.3s}
@keyframes mIn{to{opacity:1;transform:none}}
#menu .x{position:absolute;top:24px;right:var(--gut);background:none;border:0;color:var(--text2);
  font-family:var(--mono);font-size:12px;letter-spacing:.16em;cursor:pointer}

/* paginakop — was weggevallen bij de omzetting naar donker,
   waardoor elke subpagina de volle sectie-padding kreeg (150px). */
/* 74px = hoogte van de vaste nav. Zonder deze marge schuift de
   paginakop op mobiel onder het logo. */
.phead{padding:calc(74px + clamp(26px,4vw,44px)) 0 clamp(18px,2.4vw,34px)}
.phead h1{font-size:clamp(30px,4.8vw,58px);max-width:18ch;letter-spacing:-.05em}
.phead p{margin-top:20px;max-width:58ch;color:var(--text2);font-size:clamp(16px,1.65vw,18.5px)}

/* ══ HERO ══ */
.hero{min-height:100svh;display:flex;align-items:center;padding:112px 0 92px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(30px,4.5vw,68px);align-items:center;width:100%}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr}}
.hero h1{font-size:clamp(34px,5.6vw,74px);letter-spacing:-.055em;max-width:14ch}
/* grid-stapeling: de container groeit mee met de langste regel,
   dus er wordt nooit meer tekst afgekapt. Wrapt netjes op mobiel. */
.rot{display:grid;overflow:hidden;color:var(--champ);
  padding-bottom:.1em;margin-bottom:-.1em}
.rot i{grid-area:1/1;font-style:normal;opacity:0;
  transform:translateY(.9em);transition:opacity var(--d2) var(--e-out),transform var(--d2) var(--e-out)}
.rot i.on{opacity:1;transform:none}
.rot i.out{opacity:0;transform:translateY(-.9em)}
.hero p{margin-top:26px;max-width:44ch;color:var(--text2);font-size:clamp(16px,1.7vw,18.5px)}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}
.scroller{position:absolute;left:var(--gut);bottom:30px;z-index:3;font-family:var(--mono);
  font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--text3);
  display:flex;align-items:center;gap:14px}
.scroller u{display:block;width:46px;height:1px;background:var(--line2);text-decoration:none;overflow:hidden}
.scroller u i{display:block;width:100%;height:1px;background:var(--brass);animation:sc 2.6s var(--e-io) infinite}
@keyframes sc{0%{transform:scaleX(0);transform-origin:left}45%{transform:scaleX(1);transform-origin:left}
  55%{transform:scaleX(1);transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}
@media(max-width:980px){.scroller{display:none}}

/* ══ TERMINAL — het product is de demo ══ */
.term{background:rgba(13,12,10,.86);backdrop-filter:blur(18px);border:1px solid var(--line2);
  box-shadow:0 40px 90px -32px rgba(0,0,0,.9),0 0 0 1px rgba(176,141,87,.06);overflow:hidden}
.term-bar{display:flex;align-items:center;gap:8px;padding:11px 14px;border-bottom:1px solid var(--line);
  background:rgba(20,18,15,.7)}
.term-bar .d{width:9px;height:9px;border-radius:50%;background:var(--line2)}
.term-bar .t{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--text3);margin-left:8px;flex:1}
.term-bar .lv{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--live);display:flex;align-items:center;gap:6px}
.term-bar .lv::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--live);
  animation:blip 1.9s ease-in-out infinite}
.term-body{padding:16px 16px 18px;font-family:var(--mono);font-size:12.2px;line-height:1.95;
  min-height:290px;max-height:290px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}
@media(max-width:520px){.term-body{font-size:11px;min-height:250px;max-height:250px}}
.tl{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:baseline;
  opacity:0;transform:translateY(6px);animation:tlIn .45s var(--e-out) forwards}
@keyframes tlIn{to{opacity:1;transform:none}}
.tl .ag{color:var(--brassL);white-space:nowrap}
.tl .ms{color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl .ok{color:var(--live);white-space:nowrap;font-size:10.5px}
.tl.run .ok{color:var(--text3)}
.caret{display:inline-block;width:7px;height:1.05em;background:var(--champ);vertical-align:-2px;
  animation:cr 1s steps(1) infinite}
@keyframes cr{50%{opacity:0}}

/* ══ marquee ══ */
.mq{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;
  overflow:hidden;background:rgba(15,14,12,.6)}
.mq-t{display:flex;width:max-content;animation:mq 40s linear infinite}
.mq:hover .mq-t{animation-play-state:paused}
.mq-t span{font-family:var(--mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--text3);padding:0 28px;white-space:nowrap}
.mq-t span b{color:var(--brass);font-weight:400}
@keyframes mq{to{transform:translateX(-50%)}}

/* merkenbalk — groter en zelfverzekerder dan de capaciteitenbalk */
.mq.brands{padding:26px 0 24px;background:rgba(15,14,12,.75)}
.mq.brands .wrap{padding-bottom:18px}
.mq.brands .mq-t{animation-duration:52s}
.mq.brands .mq-t span{font-family:var(--disp);font-weight:600;font-size:clamp(17px,2.1vw,25px);
  letter-spacing:-.035em;text-transform:none;color:var(--text);padding:0 22px;opacity:.82}
.mq.brands .mq-t span.dot{color:var(--brass);opacity:1;padding:0;font-size:16px}

/* ══ ADEMMOMENT — één zin, verder niets ══ */
.breath{min-height:88svh;display:grid;place-items:center;text-align:center}
.breath h2{font-size:clamp(30px,7vw,92px);letter-spacing:-.055em;max-width:16ch;line-height:1.02}
.breath h2 em{font-style:normal;color:var(--brass)}
.breath .sub{margin-top:26px;font-family:var(--mono);font-size:10.5px;letter-spacing:.26em;
  text-transform:uppercase;color:var(--text3)}

/* ══ BENTO ══ */
.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:46px}
@media(max-width:1000px){.bento{grid-template-columns:repeat(4,1fr)}}
@media(max-width:640px){.bento{grid-template-columns:1fr;gap:10px}}
.bx{position:relative;background:rgba(21,19,17,.72);border:1px solid var(--line);
  padding:clamp(20px,2.4vw,30px);overflow:hidden;grid-column:span 2;
  transition:border-color var(--d2),transform var(--d2) var(--e-out),background var(--d2)}
@media(max-width:640px){.bx{grid-column:span 1!important}}
.bx.w3{grid-column:span 3}
.bx.w4{grid-column:span 4}
.bx:hover{border-color:var(--line2);background:rgba(28,25,23,.8)}
.bx::before{content:"";position:absolute;inset:0;opacity:0;transition:opacity var(--d2);
  background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(176,141,87,.16),transparent 62%)}
.bx:hover::before{opacity:1}
.bx>*{position:relative;z-index:1}
/* scanlijn: leest als "wordt uitgelezen", niet als glitter */
.bx::after{content:"";position:absolute;top:0;bottom:0;left:0;width:36%;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(235,217,174,.075),transparent);
  transform:translateX(-180%);opacity:0}
.bx:hover::after{opacity:1;animation:sweep 1.15s var(--e-out)}
@keyframes sweep{to{transform:translateX(400%)}}
.bx .st-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--live);
  margin-right:8px;vertical-align:middle;opacity:.5;transition:opacity var(--d2)}
.bx:hover .st-dot{opacity:1;animation:blip 1.9s ease-in-out infinite}
.bx .n{font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--brass)}
.bx h3{font-size:clamp(17px,1.9vw,21px);margin:12px 0 8px}
.bx p{color:var(--text2);font-size:14.5px;margin:0}
.bx .cost{margin-top:14px;font-family:var(--mono);font-size:11px;color:var(--brass)}
.bx .cost s{color:var(--text3)}

/* ══ PIN: weken met voortgang ══ */
.pin{position:relative}
.pin-stick{position:sticky;top:0;min-height:100svh;display:flex;align-items:center;overflow:hidden}
.pin-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(24px,5vw,80px);width:100%;align-items:center}
@media(max-width:900px){.pin-grid{grid-template-columns:1fr;gap:26px}}
.pin-num{font-family:var(--disp);font-weight:600;font-size:clamp(64px,17vw,220px);line-height:.86;
  letter-spacing:-.07em;color:transparent;-webkit-text-stroke:1px var(--line2)}
.pin-bar{height:1px;background:var(--line);margin-top:26px;position:relative;overflow:hidden}
.pin-bar i{position:absolute;inset:0;background:var(--brass);transform-origin:0 50%;
  transform:scaleX(0);transition:transform .2s linear}
.pin-slides{position:relative;min-height:220px}
.pin-s{position:absolute;inset:0;opacity:0;transform:translateY(22px);
  transition:opacity var(--d2) var(--e-out),transform var(--d2) var(--e-out);pointer-events:none}
.pin-s.on{opacity:1;transform:none;pointer-events:auto}
.pin-s .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--brass)}
.pin-s h3{font-size:clamp(24px,3.4vw,38px);margin:14px 0 12px}
.pin-s p{color:var(--text2);max-width:52ch;margin:0}

/* ══ HORIZONTALE SCROLL ══ */
.hs{position:relative}
.hs-stick{position:sticky;top:0;height:100svh;display:flex;align-items:center;overflow:hidden}
.hs-track{display:flex;gap:clamp(14px,2vw,26px);padding:0 var(--gut);will-change:transform}
.hs-card{flex:0 0 clamp(260px,32vw,420px);border:1px solid var(--line);background:rgba(21,19,17,.7);
  overflow:hidden;transition:border-color var(--d2)}
.hs-card:hover{border-color:var(--line2)}
.hs-card .im{aspect-ratio:4/3;overflow:hidden;background:var(--surf)}
.hs-card .im img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--e-out)}
.hs-card:hover .im img{transform:scale(1.06)}
.hs-card .bd{padding:22px 22px 26px}
.hs-card .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass)}
.hs-card h3{font-size:22px;margin:10px 0 8px}
.hs-card p{color:var(--text2);font-size:14.5px;margin:0}

/* ── lijsten / kaarten ── */
.recog{list-style:none;padding:0;margin:0}
.recog li{padding:18px 0;border-bottom:1px solid var(--line);font-size:16.5px;color:var(--text2);
  transition:color var(--d1),padding-left var(--d2) var(--e-out)}
.recog li:first-child{border-top:1px solid var(--line)}
.recog li:hover{color:var(--text);padding-left:10px}
.recog li b{color:var(--text);font-weight:400}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(266px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);margin-top:44px}
.card{position:relative;background:rgba(10,9,8,.86);padding:clamp(24px,3vw,36px);
  display:flex;flex-direction:column;overflow:hidden;transition:background var(--d2) var(--e-out)}
.card::before{content:"";position:absolute;inset:0;opacity:0;transition:opacity var(--d2);
  background:radial-gradient(300px circle at var(--mx,50%) var(--my,50%),rgba(176,141,87,.14),transparent 60%)}
a.card:hover::before{opacity:1}
.card>*{position:relative;z-index:1}
.card .k{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass)}
.card h3{font-size:21px;margin:12px 0 10px}
.card p{color:var(--text2);font-size:15.5px;margin:0}
.card .more{margin-top:auto;padding-top:20px;font-family:var(--mono);font-size:10.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--brass)}

/* ── media / parallax (native scroll-timeline waar mogelijk) ── */
.fig{position:relative;overflow:hidden;background:var(--surf)}
.fig.empty,.im.empty{display:none}
/* ontbreekt een casebeeld, dan pakt de tekst de volle breedte
   in plaats van een halve lege kolom achter te laten */
.case:has(.fig.empty){grid-template-columns:1fr}
.fig img{width:100%;height:100%;object-fit:cover;will-change:transform}
.fig.tall{aspect-ratio:4/5}
.fig.wide{aspect-ratio:16/10}
.fig.sq{aspect-ratio:4/3}
@supports (animation-timeline:view()){
  .fig.par{overflow:hidden}
  .fig.par img{animation:par linear both;animation-timeline:view();
    animation-range:cover 0% cover 100%;transform-origin:center}
  @keyframes par{from{transform:translate3d(0,-6%,0) scale(1.14)}
                 to{transform:translate3d(0,6%,0) scale(1.14)}}
}

/* ── systemen ── */
.sys{margin-top:44px;border-top:1px solid var(--line2)}
.sy{display:grid;grid-template-columns:156px 1fr;gap:clamp(14px,3vw,50px);padding:26px 0;border-bottom:1px solid var(--line)}
@media(max-width:760px){.sy{grid-template-columns:1fr;gap:6px}}
.sy .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);padding-top:8px}
.sy h3{font-size:21px}
.sy p{margin:9px 0 0;color:var(--text2);font-size:15.5px;max-width:64ch}

/* ── sticky index ── */
.ss{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(24px,5vw,80px);margin-top:50px}
@media(max-width:880px){.ss{grid-template-columns:1fr}}
.ss-ix{position:sticky;top:118px;align-self:start}
@media(max-width:880px){.ss-ix{display:none}}
.ss-i{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--text3);padding:13px 0 13px 22px;border-left:1px solid var(--line);
  transition:color var(--d2),border-color var(--d2),padding-left var(--d2) var(--e-out)}
.ss-i.on{color:var(--champ);border-color:var(--brass);padding-left:32px}
.ss-b{padding:clamp(28px,4vw,54px) 0;border-bottom:1px solid var(--line)}
.ss-b:first-child{padding-top:0}
.ss-b .n{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--brass);display:block;margin-bottom:14px}
.ss-b h3{font-size:clamp(22px,3vw,32px)}
.ss-b p{margin:12px 0 0;color:var(--text2);font-size:16px;max-width:60ch}

/* ── twee kolommen ── */
.cols{display:grid;grid-template-columns:1fr 1fr;margin-top:44px;border:1px solid var(--line)}
@media(max-width:880px){.cols{grid-template-columns:1fr}}
.col{padding:clamp(24px,3.2vw,38px)}
.col+.col{border-left:1px solid var(--line);background:rgba(15,14,12,.6)}
@media(max-width:880px){.col+.col{border-left:0;border-top:1px solid var(--line)}}
.col h3{font-size:19px;margin-bottom:6px}
.col .note{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--text3);margin-bottom:18px}
.col ul{list-style:none;padding:0;margin:0}
.col li{padding:10px 0 10px 24px;position:relative;font-size:15.5px;color:var(--text2);border-bottom:1px solid var(--line)}
.col li:last-child{border-bottom:0}
.col li::before{content:"+";position:absolute;left:0;font-family:var(--mono);color:var(--text3)}
.col+.col li::before{content:"\2192";color:var(--brass)}

/* ── agents register ── */
.metrics{display:flex;gap:clamp(20px,4vw,58px);flex-wrap:wrap;margin-top:40px;padding:20px 0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.mt .k{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--text3)}
.mt .v{font-family:var(--disp);font-weight:600;font-size:clamp(21px,2.8vw,29px);letter-spacing:-.045em;margin-top:4px}
.mt .v i{font-style:normal;color:var(--live)}
.roster{margin-top:46px;border-top:1px solid var(--line2)}
.tier{padding:26px 0 12px}
.tier:first-child{padding-top:14px}
.ag{border-bottom:1px solid var(--line);cursor:pointer;transition:background var(--d2) var(--e-out)}
.ag:hover,.ag.open{background:rgba(21,19,17,.8)}
.ag-top{display:grid;grid-template-columns:52px 1.5fr 1fr auto;gap:clamp(12px,2.4vw,34px);align-items:center;padding:23px 18px 23px 4px}
@media(max-width:820px){.ag-top{grid-template-columns:38px 1fr auto;padding:19px 10px}.ag-top .fn{display:none}}
.ag .no{font-family:var(--mono);font-size:11px;color:var(--brass)}
.ag .nm{font-family:var(--disp);font-weight:600;font-size:clamp(18px,2.3vw,23px);letter-spacing:-.045em}
.ag .fn{font-size:13.5px;color:var(--text2)}
.ag .cost{font-family:var(--mono);font-size:12px;color:var(--brass);text-align:right;white-space:nowrap}
.ag .cost s{color:var(--text3)}
.ag-body{max-height:0;overflow:hidden;transition:max-height .7s var(--e-out)}
.ag.open .ag-body{max-height:360px}
.ag-in{padding:0 18px 28px 56px;color:var(--text2);font-size:15.5px;max-width:78ch}
@media(max-width:820px){.ag-in{padding:0 10px 24px 40px}}
.ag-in b{color:var(--text);font-weight:400}
.econ{margin-top:60px;border:1px solid var(--line2);background:rgba(21,19,17,.8);display:grid;grid-template-columns:1fr 1fr}
@media(max-width:820px){.econ{grid-template-columns:1fr}}
.ec{padding:clamp(26px,4.2vw,50px)}
.ec+.ec{border-left:1px solid var(--line2)}
@media(max-width:820px){.ec+.ec{border-left:0;border-top:1px solid var(--line2)}}
.ec .k{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--text2);margin-bottom:16px}
.ec .v{font-family:var(--disp);font-weight:600;font-size:clamp(34px,5.6vw,62px);letter-spacing:-.055em;line-height:1}
.ec .v.gold{color:var(--champ);font-size:clamp(23px,3.2vw,34px)}
.ec .sub{margin-top:15px;font-size:14.5px;color:var(--text2)}
.honest{margin-top:26px;padding:26px 30px;border-left:2px solid var(--brass);background:rgba(21,19,17,.8);
  font-size:16px;color:var(--text2);max-width:76ch}
.honest b{color:var(--text);font-weight:600;display:block;margin-bottom:8px;font-family:var(--disp);font-size:18px;letter-spacing:-.03em}

/* ── toasts ── */
#toasts{position:fixed;right:26px;bottom:26px;z-index:60;width:min(348px,calc(100vw - 40px));
  display:flex;flex-direction:column;gap:10px;pointer-events:none}
@media(max-width:640px){#toasts{right:14px;left:14px;bottom:14px;width:auto}}
.toast{background:rgba(21,19,17,.94);backdrop-filter:blur(14px);border:1px solid var(--line2);
  border-left:2px solid var(--live);padding:13px 15px;opacity:0;transform:translateX(30px) scale(.97);
  transition:opacity var(--d2) var(--e-out),transform var(--d2) var(--e-out)}
.toast.in{opacity:1;transform:none}
.toast.out{opacity:0;transform:translateX(24px) scale(.97)}
.toast .r1{display:flex;align-items:center;gap:9px;margin-bottom:6px}
.toast .dot{width:6px;height:6px;border-radius:50%;background:var(--live);flex:none;animation:blip 1.9s ease-in-out infinite}
@keyframes blip{0%,100%{box-shadow:0 0 0 0 rgba(79,209,139,.45)}55%{box-shadow:0 0 0 6px rgba(79,209,139,0)}}
.toast .who{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);flex:1}
.toast .ago{font-family:var(--mono);font-size:9.5px;color:var(--text3)}
.toast .msg{font-size:14px;line-height:1.45;color:var(--text)}
.toast .meta{font-family:var(--mono);font-size:10.5px;color:var(--text2);margin-top:5px}

/* ── portfolio / mensen ── */
.cases{margin-top:46px;display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.case{background:rgba(10,9,8,.86);display:grid;grid-template-columns:.85fr 1.15fr}
@media(max-width:820px){.case{grid-template-columns:1fr}}
.case .bd{padding:clamp(24px,3.4vw,44px);display:flex;flex-direction:column;justify-content:center}
.case .k{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass)}
.case h3{font-size:clamp(24px,3.2vw,34px);margin:12px 0}
.case p{color:var(--text2);font-size:15.5px}
.stats{display:flex;gap:clamp(18px,3vw,40px);flex-wrap:wrap;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.st .v{font-family:var(--disp);font-weight:600;font-size:22px;letter-spacing:-.045em}
.st .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--text3);margin-top:2px}
.ppl{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,58px);margin-top:46px}
@media(max-width:760px){.ppl{grid-template-columns:1fr}}
.pn .fig{margin-bottom:22px;border:1px solid var(--line);filter:contrast(1.06) saturate(.92) brightness(.96)}
.pn .r{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass)}
.pn h3{font-size:27px;margin:12px 0 10px}
.pn p{color:var(--text2);font-size:15.5px}
.quote{margin:0;padding:clamp(28px,4.5vw,56px);background:rgba(21,19,17,.7);border:1px solid var(--line);
  font-family:var(--disp);font-weight:400;font-size:clamp(20px,2.8vw,30px);line-height:1.32;
  letter-spacing:-.04em;max-width:26ch;color:var(--text)}

/* ── formulier ── */
.form{margin-top:38px;max-width:640px}
.f-row{margin-bottom:18px}
.f-row label{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--text3);margin-bottom:8px}
.f-row input,.f-row select,.f-row textarea{width:100%;background:rgba(15,14,12,.8);border:1px solid var(--line2);
  padding:13px 14px;font-family:var(--sans);font-size:16px;color:var(--text);font-weight:300;
  transition:border-color var(--d1)}
.f-row textarea{min-height:130px;resize:vertical}
.f-row input:focus,.f-row select:focus,.f-row textarea:focus{border-color:var(--brass);outline:none}
.f-row select option{background:#0F0E0C}

/* ── voet ── */
footer{background:rgba(15,14,12,.8);border-top:1px solid var(--line);padding:clamp(52px,7vw,84px) 0 38px;position:relative;z-index:2}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(24px,4vw,60px)}
@media(max-width:820px){.fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.fgrid{grid-template-columns:1fr}}
footer h4{font-family:var(--mono);font-weight:400;font-size:10px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--brass);margin-bottom:16px}
footer .bd{font-family:var(--disp);font-weight:600;font-size:22px;letter-spacing:-.05em;color:var(--text);margin-bottom:12px}
footer p{font-size:14.5px;color:var(--text2);max-width:38ch}
footer a{display:block;font-size:14px;color:var(--text2);padding:5px 0;transition:color var(--d1)}
footer a:hover{color:var(--champ)}
.fbot{margin-top:clamp(40px,5vw,64px);padding-top:24px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--text3)}

/* ══ TOEGANKELIJKHEID: alles uit bij voorkeur voor minder beweging ══ */
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  .rv,.wr span,.ch span{opacity:1;transform:none}
  .rev-img{clip-path:none}
  .rot{height:auto}.rot i{position:static;opacity:1;transform:none}
  .rot i:not(:first-of-type){display:none}
  #toasts,.cur,.cur-r,.aurora{display:none}
  body.cur-on,body.cur-on *{cursor:auto!important}
  .pin-stick,.hs-stick{position:static;min-height:0;height:auto}
  .pin-s{position:static;opacity:1;transform:none;margin-bottom:34px}
  .hs-track{flex-wrap:wrap}
  #prog{display:none}
}

/* ═══════════════════════════════════════════════════════════
   LEVERINGSSPECIFICATIE — offerte-esthetiek, geen coachingstack
   ═══════════════════════════════════════════════════════════ */
.spec{margin-top:44px;border:1px solid var(--line2);background:rgba(15,14,12,.6)}
.spec-h{display:grid;grid-template-columns:1fr auto;gap:20px;padding:16px 22px;
  border-bottom:1px solid var(--line2);font-family:var(--mono);font-size:10px;
  letter-spacing:.22em;text-transform:uppercase;color:var(--text3)}
@media(max-width:640px){.spec-h span:last-child{display:none}}
.spec-g{border-bottom:1px solid var(--line)}
.spec-g:last-of-type{border-bottom:0}
.spec-gt{display:flex;align-items:center;gap:14px;padding:20px 22px 10px}
.spec-gt i{font-family:var(--mono);font-style:normal;font-size:10.5px;letter-spacing:.2em;color:var(--brass)}
.spec-gt b{font-family:var(--disp);font-weight:600;font-size:17px;letter-spacing:-.03em;color:var(--text)}
.spec-r{display:grid;grid-template-columns:1fr auto;gap:clamp(14px,3vw,40px);align-items:baseline;
  padding:11px 22px;transition:background var(--d2) var(--e-out)}
.spec-r:hover{background:rgba(28,25,23,.7)}
.spec-r:last-child{padding-bottom:20px}
.spec-r .d{font-size:15px;color:var(--text)}
.spec-r .d small{display:block;font-size:13px;color:var(--text3);margin-top:2px;line-height:1.5}
.spec-r .p{font-family:var(--mono);font-size:12px;color:var(--brass);white-space:nowrap;text-align:right}
@media(max-width:640px){.spec-r{grid-template-columns:1fr}.spec-r .p{text-align:left;margin-top:4px}}
.spec-f{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;
  padding:22px;border-top:1px solid var(--line2);background:rgba(28,25,23,.6)}
@media(max-width:640px){.spec-f{grid-template-columns:1fr;gap:10px}}
.spec-f .l{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--text3)}
.spec-f .v{font-family:var(--disp);font-weight:600;font-size:clamp(20px,2.6vw,28px);
  letter-spacing:-.04em;color:var(--champ);text-align:right}
@media(max-width:640px){.spec-f .v{text-align:left}}
.catch{margin-top:22px;padding:24px 26px;border-left:2px solid var(--brass);
  background:rgba(21,19,17,.7);font-size:15.5px;color:var(--text2);max-width:74ch}
.catch b{color:var(--text);font-weight:400}

/* vergelijkingstabel diensten */
.cmp{margin-top:46px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.cmp table{width:100%;min-width:720px;border-collapse:collapse;font-size:14.5px}
.cmp th,.cmp td{text-align:left;padding:15px 16px;border-bottom:1px solid var(--line);vertical-align:top}
.cmp thead th{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--brass);border-bottom:1px solid var(--line2);white-space:nowrap}
.cmp tbody th{font-family:var(--disp);font-weight:600;font-size:16px;letter-spacing:-.03em;color:var(--text);white-space:nowrap}
.cmp td{color:var(--text2)}
.cmp tbody tr:hover{background:rgba(28,25,23,.55)}
.cmp .pr{font-family:var(--mono);font-size:12.5px;color:var(--champ);white-space:nowrap}


/* ═══ HERO-DIENST: de Build Week moet domineren ═══ */
.flag{border:1px solid var(--line2);background:rgba(21,19,17,.72);position:relative;overflow:hidden;
  padding:clamp(28px,4vw,56px);margin-top:40px}
.flag::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(700px circle at 78% 0%,rgba(176,141,87,.11),transparent 62%)}
.flag>*{position:relative;z-index:1}
.flag .tag{display:inline-block;font-family:var(--mono);font-size:9.5px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--void);background:var(--champ);padding:6px 12px;margin-bottom:22px}
.flag h2{font-size:clamp(30px,5vw,56px);letter-spacing:-.05em}
.flag .sub{margin-top:18px;max-width:56ch;color:var(--text2);font-size:clamp(16px,1.65vw,18.5px)}
.flag-num{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);margin:clamp(26px,3.4vw,40px) 0}
.flag-num div{background:rgba(15,14,12,.8);padding:20px 22px}
.flag-num .v{font-family:var(--disp);font-weight:600;font-size:clamp(21px,2.7vw,30px);letter-spacing:-.045em}
.flag-num .v em{font-style:normal;color:var(--champ)}
.flag-num .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--text3);margin-top:5px}
.flag-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:clamp(18px,2.6vw,34px);margin-top:6px}
.flag-cols h4{font-family:var(--mono);font-weight:400;font-size:10px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--brass);margin-bottom:12px}
.flag-cols ul{list-style:none;padding:0;margin:0}
.flag-cols li{font-size:14.5px;color:var(--text2);padding:6px 0 6px 16px;position:relative}
.flag-cols li::before{content:"";position:absolute;left:0;top:14px;width:5px;height:1px;background:var(--brass)}
.flag .cta-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:clamp(26px,3.4vw,40px);
  padding-top:clamp(22px,3vw,32px);border-top:1px solid var(--line2)}
.flag .price{font-family:var(--disp);font-weight:600;font-size:clamp(26px,3.4vw,38px);
  letter-spacing:-.05em;color:var(--champ);margin-right:auto}
.flag .price small{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--text3);margin-top:6px}

/* compacte dienstrijen */
.svc{margin-top:44px;border-top:1px solid var(--line2)}
.svc-r{display:grid;grid-template-columns:.9fr 1.5fr auto;gap:clamp(16px,3vw,44px);align-items:center;
  padding:26px 4px;border-bottom:1px solid var(--line);transition:background var(--d2) var(--e-out)}
.svc-r:hover{background:rgba(21,19,17,.6)}
@media(max-width:820px){.svc-r{grid-template-columns:1fr;gap:8px;padding:22px 4px}}
.svc-r h3{font-size:clamp(19px,2.2vw,24px)}
.svc-r .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--brass);margin-bottom:8px}
.svc-r p{color:var(--text2);font-size:15px;margin:0}
.svc-r .pr{font-family:var(--mono);font-size:12.5px;color:var(--champ);white-space:nowrap;text-align:right}
@media(max-width:820px){.svc-r .pr{text-align:left}}

/* ═══ DEAL-LEDGER (partners) ═══ */
.deal{display:grid;grid-template-columns:1fr auto 1fr;gap:0;margin-top:44px;
  border:1px solid var(--line2);background:rgba(15,14,12,.6)}
@media(max-width:880px){.deal{grid-template-columns:1fr}}
.deal-c{padding:clamp(26px,3.4vw,44px)}
.deal-c h3{font-size:clamp(20px,2.4vw,26px);margin-bottom:6px}
.deal-c .k{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--brass);margin-bottom:16px}
.deal-c ul{list-style:none;padding:0;margin:18px 0 0}
.deal-c li{padding:11px 0 11px 20px;position:relative;font-size:15px;color:var(--text2);
  border-bottom:1px solid var(--line)}
.deal-c li:last-child{border-bottom:0}
.deal-c li::before{content:"";position:absolute;left:0;top:19px;width:7px;height:1px;background:var(--brass)}
.deal-c li b{color:var(--text);font-weight:400}
/* fasen-tijdlijn */
.phase{margin-top:46px;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line)}
.phase div{background:rgba(15,14,12,.8);padding:clamp(20px,2.6vw,30px);position:relative}
.phase .n{font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--brass)}
.phase h4{font-family:var(--disp);font-weight:600;font-size:18px;letter-spacing:-.03em;margin:12px 0 8px}
.phase p{color:var(--text2);font-size:14.5px;margin:0}

/* statement-band, geeft lucht na een paginakop */
.band{padding:clamp(48px,7vw,96px) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:rgba(15,14,12,.55)}
.band .q{font-family:var(--disp);font-weight:600;font-size:clamp(24px,4vw,46px);letter-spacing:-.05em;
  line-height:1.1;max-width:22ch;margin:0}
.band .q em{font-style:normal;color:var(--brass)}
.band .meta{margin-top:22px;font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--text3)}
.band-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(26px,5vw,70px);align-items:end}
@media(max-width:820px){.band-grid{grid-template-columns:1fr;align-items:start}}

/* ═══════════════ STARTKLAAR-TEST ═══════════════ */
.quiz{margin-top:40px;max-width:780px;border:1px solid var(--line2);background:rgba(15,14,12,.75);
  position:relative;overflow:hidden}
.quiz::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(600px circle at 85% 0%,rgba(176,141,87,.09),transparent 60%)}
.q-bar{height:2px;background:var(--line)}
.q-fill{height:100%;width:0;background:var(--brass);transition:width .45s var(--e-out)}
.q-body{padding:clamp(26px,4vw,44px);position:relative;z-index:1;min-height:400px}
.q-step{font-family:var(--mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--text3);margin-bottom:20px;display:flex;justify-content:space-between;gap:16px}
.q-title{font-family:var(--disp);font-weight:600;font-size:clamp(21px,2.9vw,30px);
  letter-spacing:-.04em;line-height:1.14;margin-bottom:8px}
.q-help{color:var(--text2);font-size:14.5px;margin-bottom:24px;max-width:52ch}
.opt{display:block;width:100%;text-align:left;background:transparent;color:var(--text);
  border:1px solid var(--line2);padding:15px 18px;margin-bottom:9px;font-family:var(--sans);
  font-weight:300;font-size:15.5px;cursor:pointer;position:relative;
  transition:border-color var(--d1),background var(--d1),transform var(--d1) var(--e-out)}
.opt:hover{border-color:var(--brass);background:rgba(28,25,23,.7)}
.opt.sel{border-color:var(--brass);background:rgba(176,141,87,.09);color:var(--champ)}
.opt.sel::after{content:"";position:absolute;right:16px;top:50%;width:6px;height:6px;
  border-radius:50%;background:var(--brass);transform:translateY(-50%)}
.q-text,.q-input{width:100%;background:rgba(10,9,8,.7);border:1px solid var(--line2);color:var(--text);
  padding:14px;font-family:var(--sans);font-weight:300;font-size:15.5px;transition:border-color var(--d1)}
.q-text{min-height:120px;resize:vertical}
.q-input{margin-bottom:10px}
.q-text:focus,.q-input:focus{border-color:var(--brass);outline:none}
.q-count{font-family:var(--mono);font-size:10.5px;color:var(--text3);margin-top:6px}
.q-nav{display:flex;justify-content:space-between;align-items:center;margin-top:26px;gap:12px}
.q-back{background:none;border:0;color:var(--text3);font-family:var(--mono);font-size:11px;
  letter-spacing:.16em;cursor:pointer;padding:6px 0;transition:color var(--d1)}
.q-back:hover{color:var(--champ)}

/* uitslag */
.score{font-family:var(--disp);font-weight:600;font-size:clamp(56px,11vw,104px);line-height:.9;
  letter-spacing:-.06em;color:var(--champ)}
.score em{font-style:normal;font-size:.26em;color:var(--text3);font-family:var(--mono);
  letter-spacing:.16em;display:block;margin-top:14px;text-transform:uppercase}
.verdict{font-size:16.5px;margin:20px 0 30px;max-width:56ch;color:var(--text2)}
.bars{margin:0 0 30px}
.bar-row{display:grid;grid-template-columns:96px 1fr 42px;gap:14px;align-items:center;padding:8px 0}
.bar-row .bl{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--text3)}
.bar-track{height:5px;background:var(--line)}
.bar-fill{height:100%;background:var(--brass);width:0;transition:width .9s var(--e-out)}
.bar-fill.low{background:var(--wax)}
.bar-row .bv{font-family:var(--mono);font-size:11.5px;text-align:right;color:var(--text2)}
.weak{padding:22px 24px;border-left:2px solid var(--brass);background:rgba(28,25,23,.65);margin-bottom:26px}
.weak .k{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--text3)}
.weak h3{font-family:var(--disp);font-weight:600;font-size:24px;letter-spacing:-.04em;margin:8px 0 8px}
.weak p{color:var(--text2);font-size:15px;margin:0}
.q-price{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;padding:20px 0 22px;
  border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);margin-bottom:24px}
.q-price .v{font-family:var(--disp);font-weight:600;font-size:clamp(28px,4vw,40px);
  letter-spacing:-.05em;color:var(--champ)}
.q-price .l{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--text3)}

/* ═══ FEITENBALK — visueel bewijs zonder tweede kop ═══ */
.factbar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:rgba(15,14,12,.6);padding:0}
.factbar .wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0}
.factbar .f{padding:clamp(26px,3.4vw,40px) clamp(14px,2vw,28px);position:relative}
.factbar .f+.f::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:var(--line)}
@media(max-width:640px){.factbar .f+.f::before{left:0;right:0;top:0;bottom:auto;width:auto;height:1px}}
.factbar .v{font-family:var(--disp);font-weight:600;font-size:clamp(24px,3.2vw,36px);
  letter-spacing:-.05em;line-height:1}
.factbar .v em{font-style:normal;color:var(--champ)}
.factbar .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--text3);margin-top:10px;line-height:1.7}

/* ═══ VERDEELBALK — het aandeel in beeld i.p.v. in tekst ═══ */
.splitbar{margin-top:40px}
.splitbar .lbls{display:flex;justify-content:space-between;gap:20px;margin-bottom:12px}
.splitbar .lbls span{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase}
.splitbar .lbls .a{color:var(--champ)}
.splitbar .lbls .b{color:var(--text3)}
.splitbar .track{display:flex;height:10px;border:1px solid var(--line2);overflow:hidden}
.splitbar .track i{display:block;height:100%}
.splitbar .track .a{background:var(--brass);width:30%;
  background-image:repeating-linear-gradient(135deg,rgba(0,0,0,.16) 0 4px,transparent 4px 8px)}
.splitbar .track .b{background:var(--line2);flex:1}
.splitbar .amt{display:flex;justify-content:space-between;gap:20px;margin-top:12px}
.splitbar .amt span{font-family:var(--disp);font-weight:600;font-size:clamp(19px,2.4vw,26px);letter-spacing:-.045em}
.splitbar .amt .a{color:var(--champ)}
.splitbar .amt .b{color:var(--text2)}
.splitbar .note{margin-top:14px;font-size:14px;color:var(--text3);max-width:70ch}

/* deal-kolommen zonder middenbalk */
.deal{grid-template-columns:1fr 1fr}
@media(max-width:880px){.deal{grid-template-columns:1fr}}
.deal-c+.deal-c{border-left:1px solid var(--line2)}
@media(max-width:880px){.deal-c+.deal-c{border-left:0;border-top:1px solid var(--line2)}}

/* ═══ TIJDLIJN met ruggengraat ═══ */
.tline{margin-top:44px;position:relative;padding-left:clamp(30px,5vw,58px)}
.tline::before{content:"";position:absolute;left:6px;top:10px;bottom:10px;width:1px;
  background:linear-gradient(180deg,var(--brass),var(--line) 85%)}
.tstep{position:relative;padding:0 0 clamp(30px,4vw,46px)}
.tstep:last-child{padding-bottom:0}
.tstep::before{content:"";position:absolute;left:calc(-1 * clamp(30px,5vw,58px) + 2px);top:7px;
  width:9px;height:9px;border-radius:50%;background:var(--void);border:1px solid var(--brass)}
.tstep.on::before{background:var(--brass);box-shadow:0 0 0 4px rgba(176,141,87,.18)}
.tstep .wk{font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--brass);display:block;margin-bottom:10px}
.tstep h3{font-size:clamp(19px,2.4vw,25px);margin-bottom:10px}
.tstep p{color:var(--text2);font-size:15.5px;margin:0;max-width:64ch}
.tstep .tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.tstep .tags span{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--text3);
  border:1px solid var(--line);padding:5px 9px}

/* groot statement, gecentreerd, zonder concurrerende kop */
.solo{text-align:center;padding:clamp(56px,8vw,110px) 0}
.solo p{font-family:var(--disp);font-weight:600;font-size:clamp(26px,4.6vw,54px);letter-spacing:-.05em;
  line-height:1.1;max-width:20ch;margin:0 auto}
.solo p em{font-style:normal;color:var(--brass)}
.solo .meta{margin-top:24px;font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--text3)}

/* ═══ TEST: breder en rustiger op desktop ═══
   overschrijft de eerdere quiz-regels */
.quiz{max-width:920px;margin-left:auto;margin-right:auto;margin-top:0}
.q-body{padding:clamp(28px,4.5vw,56px);min-height:430px;display:flex;flex-direction:column}
@media(min-width:900px){
  .q-title{font-size:clamp(26px,2.6vw,34px)}
  .opt{padding:17px 22px;font-size:16px}
}
.q-opts{display:grid;gap:9px}
@media(min-width:760px){.q-opts.two{grid-template-columns:1fr 1fr}}
.q-nav{margin-top:auto;padding-top:26px}

/* rekenscherm */
.calc{display:flex;flex-direction:column;justify-content:center;min-height:430px;gap:0}
.calc .t{font-family:var(--disp);font-weight:600;font-size:clamp(22px,2.6vw,30px);
  letter-spacing:-.04em;margin-bottom:30px}
.calc-l{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;
  padding:13px 0;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:12.5px;
  color:var(--text3);opacity:0;transform:translateY(6px);
  transition:opacity .4s var(--e-out),transform .4s var(--e-out),color .4s}
.calc-l.in{opacity:1;transform:none}
.calc-l.done{color:var(--text2)}
.calc-l .s{color:var(--text3)}
.calc-l.done .s{color:var(--live)}

/* uitslag breed */
.res-head{display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,4vw,52px);align-items:center;
  padding-bottom:clamp(24px,3vw,34px);border-bottom:1px solid var(--line2);margin-bottom:clamp(24px,3vw,34px)}
@media(max-width:700px){.res-head{grid-template-columns:1fr;gap:16px}}
.bar-row{grid-template-columns:110px 1fr 46px}
.bar-track{height:6px}
.bar-fill{transition:width 1.1s var(--e-out)}
.pain{margin:26px 0;padding:22px 24px;border:1px solid var(--line2);background:rgba(28,25,23,.6)}
.pain .v{font-family:var(--disp);font-weight:600;font-size:clamp(22px,3vw,32px);letter-spacing:-.045em;color:var(--champ)}
.pain p{margin:8px 0 0;color:var(--text2);font-size:15px}

/* ═══════════════════════════════════════════════════════════════
   MOBIEL — systematisch nagelopen op 390px breed
   ═══════════════════════════════════════════════════════════════ */
@media(max-width:760px){
  /* koppen mogen niet meer over vijf regels breken */
  .phead h1{font-size:clamp(26px,7.4vw,34px);max-width:none;letter-spacing:-.045em}
  .phead p{font-size:16px;margin-top:16px}
  .phead{padding:calc(74px + 24px) 0 22px}
  .hd{font-size:clamp(24px,6.6vw,32px);max-width:none}
  .state,.solo p{font-size:clamp(24px,7.6vw,36px);max-width:none}
  .band .q{font-size:clamp(22px,6.4vw,30px)}
  .breath h2{font-size:clamp(26px,8vw,40px)}

  /* feitenbalk: twee kolommen i.p.v. een stapel losse regels */
  .factbar .wrap{grid-template-columns:1fr 1fr;padding-left:var(--gut);padding-right:var(--gut)}
  .factbar .f{padding:20px 0}
  .factbar .f:nth-child(odd){padding-right:16px}
  .factbar .f:nth-child(even){padding-left:16px}
  .factbar .f+.f::before{content:none}
  .factbar .f:nth-child(even)::after{content:"";position:absolute;left:0;top:20%;bottom:20%;
    width:1px;background:var(--line)}
  .factbar .f:nth-child(n+3)::before{content:"";position:absolute;left:0;right:0;top:0;
    height:1px;background:var(--line)}
  .factbar .v{font-size:22px}
  .factbar .k{font-size:9px;letter-spacing:.14em;margin-top:7px}

  /* secties compacter */
  section{padding:clamp(50px,10vw,72px) 0}
  .lead{font-size:16px}
  .rule{margin-bottom:20px}

  /* tijdlijn */
  .tline{padding-left:26px}
  .tline::before{left:4px}
  .tstep::before{left:-26px}
  .tstep{padding-bottom:30px}
  .tstep h3{font-size:19px}
  .tstep p{font-size:15px}
  .tstep .tags span{font-size:9.5px;padding:4px 7px}

  /* specificatie */
  .spec-h{padding:14px 16px;font-size:9px}
  .spec-gt{padding:18px 16px 8px}
  .spec-r{padding:11px 16px}
  .spec-r .d{font-size:14.5px}
  .spec-r .d small{font-size:12.5px}
  .spec-f{padding:18px 16px}
  .spec-f .v{font-size:22px}

  /* uitgelicht dienstblok */
  .flag{padding:24px 20px}
  .flag h2{font-size:clamp(26px,7.4vw,34px)}
  .flag-num{grid-template-columns:1fr 1fr}
  .flag-num div{padding:16px 14px}
  .flag-num .v{font-size:19px}
  .flag .cta-row{flex-direction:column;align-items:flex-start}
  .flag .price{font-size:26px;margin-right:0}
  .flag .cta-row .btn{width:100%;text-align:center}

  /* deal + splitbar */
  .deal-c{padding:24px 20px}
  .splitbar .amt span{font-size:18px}

  /* kaarten en tabellen */
  .card{padding:22px 20px}
  .cmp table{min-width:600px;font-size:13.5px}
  .cmp th,.cmp td{padding:12px}

  /* mensen en cases */
  .case .bd{padding:24px 20px}
  .ppl{gap:34px}

  /* knoppen: volle breedte leest beter op een telefoon */
  .hero .cta{flex-direction:column;align-items:stretch}
  .hero .cta .btn{text-align:center}
  .btn{padding:14px 22px}

  /* formulier */
  .form{margin-top:28px}
}

/* ── de test op mobiel ── */
@media(max-width:760px){
  .quiz{margin-left:calc(-1 * var(--gut));margin-right:calc(-1 * var(--gut));
    border-left:0;border-right:0}
  .q-body{padding:24px 20px;min-height:0}
  .q-title{font-size:21px}
  .q-help{font-size:14px;margin-bottom:20px}
  .q-opts.two{grid-template-columns:1fr}
  .opt{padding:15px 16px;font-size:15px}
  .q-nav{flex-direction:column-reverse;align-items:stretch;gap:10px}
  .q-nav .btn{width:100%;text-align:center}
  .q-back{text-align:center;padding:10px 0}
  .res-head{grid-template-columns:1fr}
  .score{font-size:64px}
  .bar-row{grid-template-columns:84px 1fr 34px;gap:10px}
  .bar-row .bl{font-size:9px;letter-spacing:.1em}
  .calc{min-height:280px}
  .calc .t{font-size:19px;margin-bottom:20px}
  .calc-l{font-size:11.5px}
  .q-price{flex-direction:column;gap:4px}
}

/* ── heel smalle toestellen ── */
@media(max-width:400px){
  .factbar .wrap{grid-template-columns:1fr}
  .factbar .f:nth-child(even)::after{content:none}
  .factbar .f:nth-child(n+2)::before{content:"";position:absolute;left:0;right:0;top:0;
    height:1px;background:var(--line)}
  .factbar .f{padding:16px 0!important}
  .flag-num{grid-template-columns:1fr}
}


/* ═══════════════════════════════════════════════════════════════
   DE DEMO — vrijdagavond 21:14
   Traag, met zichtbaar denkwerk. Kleur draagt betekenis:
   amber = bezig, groen = klaar, oxbloed = binnenkomend,
   champagne = wacht op de mens.
   ═══════════════════════════════════════════════════════════════ */
.demo{margin-top:38px;border:1px solid var(--line2);background:rgba(11,10,8,.92);
  overflow:hidden;position:relative;box-shadow:0 40px 90px -40px #000}
.demo::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(760px circle at 84% -10%,rgba(176,141,87,.10),transparent 60%)}
.demo>*{position:relative;z-index:1}

/* kopbalk met hartslag */
.dh{display:flex;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid var(--line);
  background:rgba(19,17,14,.9);flex-wrap:wrap}
.dh .dot3{display:flex;gap:5px}
.dh .dot3 i{width:8px;height:8px;border-radius:50%;background:var(--line2)}
.dh .t{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--text3)}
.dh .pulse{margin-left:auto;display:flex;align-items:center;gap:9px}
.dh .pulse svg{display:block}
.dh .pulse .cl{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--brass)}
.hb{stroke:var(--line2);stroke-width:1.4;fill:none;transition:stroke .5s}
.demo.busy .hb{stroke:var(--warn)}
.demo.idle .hb{stroke:var(--live)}
.demo.busy .hb-run{stroke-dasharray:88;stroke-dashoffset:88;animation:hbrun 1.6s linear infinite}
@keyframes hbrun{to{stroke-dashoffset:-88}}

/* voortgangsspoor i.p.v. namenrij */
.dsteps{display:flex;gap:0;border-bottom:1px solid var(--line);background:rgba(15,14,12,.7);
  padding:0 4px;overflow-x:auto;scrollbar-width:none}
.dsteps::-webkit-scrollbar{display:none}
.dstep{flex:1;min-width:74px;padding:13px 8px 12px;text-align:center;position:relative;
  font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--text3);transition:color .5s}
.dstep::after{content:"";position:absolute;left:8px;right:8px;bottom:0;height:2px;background:var(--line2);
  transform:scaleX(0);transform-origin:left;transition:transform .5s var(--e-out),background .4s}
.dstep.act{color:var(--warn)}
.dstep.act::after{background:var(--warn);transform:scaleX(1);animation:stepfill 2.4s linear}
@keyframes stepfill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.dstep.did{color:var(--live)}
.dstep.did::after{background:var(--live);transform:scaleX(1)}

/* de thread */
.thread{padding:22px 18px 10px;min-height:400px}
.msg{display:grid;grid-template-columns:34px 1fr;gap:14px;margin-bottom:22px;
  opacity:0;transform:translateY(10px);animation:msgIn .6s var(--e-out) forwards}
@keyframes msgIn{to{opacity:1;transform:none}}
.msg .av{width:34px;height:34px;border:1px solid var(--line2);display:grid;place-items:center;
  font-family:var(--mono);font-size:10px;color:var(--brass);background:rgba(21,19,17,.9)}
.msg.sys .av{border-color:rgba(184,74,80,.55);color:#D4848A;background:rgba(64,22,25,.4)}
/* een systeembericht kan ook een goede afloop zijn; dan hoort het groen */
.msg.sys.good .av{border-color:rgba(79,209,139,.5);color:var(--live);background:rgba(24,58,42,.4)}
.msg.sys.good .who{color:var(--live)}
.msg.sys.good .quote{border-left-color:rgba(79,209,139,.45)}
.msg.you .av{border-color:var(--champ);color:var(--champ);background:rgba(176,141,87,.16)}
.msg.done .av{border-color:rgba(79,209,139,.5);color:var(--live)}
.msg .hd2{display:flex;align-items:baseline;gap:10px;margin-bottom:7px;flex-wrap:wrap}
.msg .who{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--champ)}
.msg.sys .who{color:#D4848A}
.msg.done .who{color:var(--live)}
.msg .role{font-size:11.5px;color:var(--text3)}
.msg .tm{font-family:var(--mono);font-size:9.5px;color:var(--text3);margin-left:auto}
.msg .bd{font-size:15px;line-height:1.68;color:var(--text2)}
.msg .bd b{color:var(--text);font-weight:400}
.msg .quote{display:block;margin-top:12px;padding:14px 16px;border-left:2px solid var(--brass);
  background:rgba(24,21,18,.85);font-size:14px;color:var(--text2);line-height:1.65}
.msg.sys .quote{border-left-color:rgba(184,74,80,.5)}
.msg .chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.msg .chips span{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--brassL);
  border:1px solid rgba(176,141,87,.32);background:rgba(176,141,87,.07);padding:6px 10px}
.msg .ok{display:inline-flex;align-items:center;gap:7px;margin-top:12px;font-family:var(--mono);
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--live)}
.msg .ok::before{content:"\2713";font-size:12px}

/* het denken */
.think{display:grid;grid-template-columns:34px 1fr;gap:14px;margin-bottom:22px}
.think .av{width:34px;height:34px;border:1px solid var(--line2);display:grid;place-items:center;
  font-family:var(--mono);font-size:10px;color:var(--warn);background:rgba(21,19,17,.9);
  animation:avpulse 1.8s ease-in-out infinite}
@keyframes avpulse{0%,100%{box-shadow:0 0 0 0 rgba(217,138,70,.4)}55%{box-shadow:0 0 0 7px rgba(217,138,70,0)}}
.think .who{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--warn);margin-bottom:9px;display:flex;align-items:center;gap:9px}
.think .who i{display:flex;gap:3px}
.think .who i b{width:4px;height:4px;border-radius:50%;background:var(--warn);display:block;
  animation:tp 1.3s ease-in-out infinite}
.think .who i b:nth-child(2){animation-delay:.18s}
.think .who i b:nth-child(3){animation-delay:.36s}
@keyframes tp{0%,60%,100%{opacity:.2;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.tl2{font-family:var(--mono);font-size:11.5px;color:var(--text3);padding:5px 0 5px 16px;position:relative;
  opacity:0;transform:translateX(-4px);animation:tlin .45s var(--e-out) forwards}
@keyframes tlin{to{opacity:1;transform:none}}
.tl2::before{content:"";position:absolute;left:0;top:12px;width:7px;height:1px;background:var(--warn)}
.tl2.hit{color:var(--text2)}
.tl2.hit::before{background:var(--live)}

/* beslismoment */
.gate{border-top:1px solid var(--line2);background:linear-gradient(180deg,rgba(30,26,22,.9),rgba(21,19,17,.9));
  padding:20px 18px;display:none}
.gate.on{display:block;animation:msgIn .6s var(--e-out) forwards}
.gate .lbl2{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--champ);margin-bottom:11px;display:flex;align-items:center;gap:9px}
.gate .lbl2 i{width:6px;height:6px;border-radius:50%;background:var(--champ);
  animation:blip 1.8s ease-in-out infinite}
.gate p{font-size:15px;color:var(--text2);margin:0 0 16px;max-width:62ch}
.gate p b{color:var(--text);font-weight:400}
.gate .row{display:flex;gap:10px;flex-wrap:wrap}
.gate .btn{padding:13px 22px;font-size:10.5px}

.dfoot{border-top:1px solid var(--line);padding:15px 18px;display:flex;gap:14px;align-items:center;
  flex-wrap:wrap}
.dfoot .btn{padding:11px 18px;font-size:10px}
.dfoot .note{margin-left:auto;font-size:12.5px;color:var(--text3)}

.dstart{display:grid;place-items:center;min-height:400px;text-align:center;padding:40px 24px}
.dstart .t{font-family:var(--disp);font-weight:600;font-size:clamp(21px,2.8vw,29px);
  letter-spacing:-.04em;max-width:24ch;margin:0 auto 14px;line-height:1.2}
.dstart p{color:var(--text2);font-size:15px;max-width:42ch;margin:0 auto 26px}

@media(max-width:760px){
  .demo{margin-left:calc(-1 * var(--gut));margin-right:calc(-1 * var(--gut));border-left:0;border-right:0}
  .dstep{min-width:62px;font-size:8px;padding:11px 5px 10px}
  .thread{padding:18px 15px 6px;min-height:0}
  .msg,.think{grid-template-columns:28px 1fr;gap:11px}
  .msg .av,.think .av{width:28px;height:28px;font-size:9px}
  .msg .bd{font-size:14.5px}
  .gate .row{flex-direction:column}
  .gate .btn{width:100%;text-align:center}
  .dfoot{flex-direction:column;align-items:stretch}
  .dfoot .note{margin-left:0;text-align:center}
  .dfoot .btn{width:100%;text-align:center}
}
@media(prefers-reduced-motion:reduce){
  .msg,.gate,.tl2{animation:none;opacity:1;transform:none}
  .think{display:none}
}
