/* Graviton Management — v0.1.0. Rock 'n' roll backstage: zwart, merkgroen, korrel, affichetype. */
@font-face{font-family:"Anton";src:url(fonts/anton.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Oswald";src:url(fonts/oswald.woff2) format("woff2");font-weight:200 700;font-display:swap}
:root{
  --bg:#050706;--bg2:#0b0f0d;--panel:#0f1512;--ink:#eef3ef;--muted:#9fb0a8;--green:#20f58b;--green-d:#0fbf68;
  --line:rgba(32,245,139,.28);--hair:rgba(255,255,255,.09);--max:1320px;--r:4px;
  --disp:"Anton","Impact","Haettenschweiler","Arial Narrow Bold",sans-serif;
  --cond:"Oswald","Arial Narrow",system-ui,sans-serif;
  --body:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --hdr:76px;
}
*{box-sizing:border-box}
html{overflow-x:clip;scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + 10px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.65 var(--body);overflow-x:clip}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:var(--green);color:#000;padding:10px 14px;font-weight:700}
.skip:focus{left:8px}
.container{width:min(var(--max),100% - 40px);margin-inline:auto}
.narrow{max-width:900px}

/* korrel over alles */
body::after{content:"";position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:korrel 1s steps(4) infinite}
@keyframes korrel{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}100%{transform:translate(0,0)}}

/* typografie */
h1,h2,h3{font-family:var(--disp);font-weight:400;text-transform:uppercase;letter-spacing:.01em;line-height:.95;margin:0 0 .4em}
h1{font-size:clamp(3rem,9vw,8.4rem)}
h2{font-size:clamp(2.2rem,5.2vw,4.6rem)}
h3{font-size:clamp(1.3rem,2vw,1.7rem);line-height:1.05}
h1 span,h2 span{color:var(--green)}
p{margin:0 0 1.1em}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:600 .78rem/1.3 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--green);margin:0 0 18px}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--green);flex:none}
.big-copy{font-size:clamp(1.12rem,1.6vw,1.4rem);line-height:1.55;color:#dfe8e3}
.smallmuted{color:var(--muted)}

/* knoppen */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border:2px solid var(--green);
  font:600 1rem/1 var(--cond);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;cursor:pointer;position:relative;overflow:hidden;
  transition:color .25s,background .25s,transform .25s;border-radius:var(--r)}
.btn-primary{background:var(--green);color:#03150b}
.btn-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-120%);transition:transform .6s}
.btn-primary:hover::after{transform:translateX(120%)}
.btn-primary:hover{transform:translateY(-2px)}
.btn-secondary{background:transparent;color:var(--ink)}
.btn-secondary:hover{background:var(--green);color:#03150b}
.btn-small{min-height:42px;padding:0 16px;font-size:.88rem}

/* kop */
.site-header{position:fixed;inset:0 0 auto;z-index:50;height:var(--hdr);display:flex;align-items:center;transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
.site-header.vast{background:rgba(5,7,6,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--hair)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;flex:none}
.brand .glogo{height:54px;filter:drop-shadow(0 0 14px rgba(32,245,139,.25))}
.navlinks{display:flex;align-items:center;gap:4px}
.navlinks a{font:500 .92rem/1 var(--cond);letter-spacing:.07em;text-transform:uppercase;text-decoration:none;padding:10px 11px;position:relative;color:#d7e2dc}
.navlinks a:not(.btn)::after{content:"";position:absolute;left:11px;right:11px;bottom:3px;height:2px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.navlinks a:not(.btn):hover::after,.navlinks a.active::after{transform:scaleX(1)}
.navlinks a.active{color:#fff}
.navlinks .btn{margin-left:10px;color:#03150b}
.nav-toggle{display:none;width:48px;height:48px;border:1px solid var(--line);background:rgba(0,0,0,.4);color:var(--ink);border-radius:var(--r);cursor:pointer;position:relative}
.nav-toggle span{position:absolute;left:13px;right:13px;height:2px;background:currentColor;transition:transform .3s,opacity .3s}
.nav-toggle span:nth-child(1){top:16px}.nav-toggle span:nth-child(2){top:23px}.nav-toggle span:nth-child(3){top:30px}
.menu-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-open .nav-toggle span:nth-child(2){opacity:0}
.menu-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.menu-num{display:none}

@media (max-width:1180px){
  .nav-toggle{display:block;z-index:2}
  .navlinks{position:fixed;inset:0;flex-direction:column;align-items:flex-start;justify-content:center;gap:0;padding:90px 28px 40px;background:#030504;
    clip-path:circle(0 at calc(100% - 44px) 38px);transition:clip-path .6s cubic-bezier(.7,0,.2,1);visibility:hidden;overflow-y:auto}
  .menu-open .navlinks{clip-path:circle(150% at calc(100% - 44px) 38px);visibility:visible}
  .navlinks a{font:400 clamp(2rem,8vw,3.4rem)/1.05 var(--disp);padding:6px 0;display:flex;align-items:baseline;gap:14px}
  .navlinks a:not(.btn)::after{left:0;right:auto;width:60px;bottom:0}
  .menu-num{display:inline;font:600 .8rem var(--mono);color:var(--green);letter-spacing:.1em}
  .navlinks .btn{margin:24px 0 0;font:600 1rem/1 var(--cond);padding:0 22px}
  .menu-open{overflow:hidden}
}

/* held home */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding:calc(var(--hdr) + 40px) 0 0;overflow:hidden;isolation:isolate}
.dia{position:absolute;inset:0;z-index:-2}
.dia img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.12);transition:opacity 1.6s ease;filter:contrast(1.06)}
.dia img.aan{opacity:1;animation:kenburns 9s ease-out forwards}
@keyframes kenburns{from{transform:scale(1.12)}to{transform:scale(1)}}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(5,7,6,.55) 0%,rgba(5,7,6,.25) 35%,rgba(5,7,6,.85) 78%,var(--bg) 100%),
             radial-gradient(ellipse at 20% 80%,rgba(32,245,139,.18),transparent 60%)}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(0deg,rgba(0,0,0,.07) 0 1px,transparent 1px 4px);mix-blend-mode:multiply}
.home-hero-copy{padding-bottom:40px;max-width:1100px}
.home-hero-logo{width:min(420px,70vw);margin:0 0 26px;position:relative;transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s ease-out;will-change:transform}
/* ===== logo-animatie v0.1.5: de G draait als een wiel, rolt binnen van links naar rechts ===== */
@property --ga{syntax:"<angle>";inherits:false;initial-value:0deg}
.glogo{position:relative;display:block;aspect-ratio:1927/761;--gx:53.66%;--gy:33.9%}
.home-hero-logo .glogo{width:100%}
.gl{position:absolute;inset:0;width:100%;height:100%;display:block}
.gl-g{transform-origin:var(--gx) var(--gy);will-change:transform}
.gl-lijnen{transform-origin:42% 50%}
.gl-licht{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen}
.gl-ringlicht{--ga:0deg;background:conic-gradient(from var(--ga) at var(--gx) var(--gy),transparent 0deg,transparent 250deg,rgba(210,255,230,.15) 300deg,rgba(235,255,245,1) 352deg,transparent 360deg);
  -webkit-mask:url(/assets/img/logo/ring-900.webp) center/100% 100% no-repeat;mask:url(/assets/img/logo/ring-900.webp) center/100% 100% no-repeat;opacity:0}
.gl-woordlicht{background:linear-gradient(105deg,transparent 40%,rgba(230,255,240,.95) 50%,transparent 60%) 170% 0/250% 100% no-repeat;
  -webkit-mask:url(/assets/img/logo/woord-900.webp) center/100% 100% no-repeat;mask:url(/assets/img/logo/woord-900.webp) center/100% 100% no-repeat}
.klein .gl-ringlicht{-webkit-mask-image:url(/assets/img/logo/ring-400.webp);mask-image:url(/assets/img/logo/ring-400.webp)}
.klein .gl-woordlicht{-webkit-mask-image:url(/assets/img/logo/woord-400.webp);mask-image:url(/assets/img/logo/woord-400.webp)}

/* groot (held): binnenrollen, dan elke 7 s een toerental-stoot */
.groot{animation:gl-rol 1.5s cubic-bezier(.12,.8,.2,1) both,gl-gloei 7s ease-in-out 1.6s infinite}
.groot .gl-g{animation:gl-g-in 1.5s cubic-bezier(.12,.8,.2,1) both,gl-wiel 7s linear 1.5s infinite}
.groot .gl-lijnen{animation:gl-lijn-in 1.5s cubic-bezier(.12,.8,.2,1) both,gl-lijn-toer 7s ease-out 1.6s infinite}
.groot .gl-ring{animation:gl-fade 1s ease .1s both}
.groot .gl-ringlicht{animation:gl-ringlicht 7s linear 1.6s infinite}
.groot .gl-woord{animation:gl-slam .9s cubic-bezier(.2,1.4,.3,1) .75s both,gl-glitch 7s steps(1) 1.6s infinite}
.groot .gl-woordlicht{animation:gl-glans 7s ease-in-out 1.6s infinite}
.groot .gl-mgmt{animation:gl-mgmt .8s cubic-bezier(.2,.8,.2,1) 1.25s both}
/* klein (kop): rolt binnen, elke 9 s één wielslag; bij hover draait hij door */
.klein{animation:gl-rol-k 1.2s cubic-bezier(.12,.8,.2,1) .2s both}
.klein .gl-g{animation:gl-g-in 1.2s cubic-bezier(.12,.8,.2,1) .2s both,gl-wiel 9s linear 1.4s infinite}
.klein .gl-lijnen{animation:gl-lijn-in 1.2s cubic-bezier(.12,.8,.2,1) .2s both,gl-lijn-toer 9s ease-out 2s infinite}
.klein .gl-ringlicht{animation:gl-ringlicht 9s linear 2s infinite}
.klein .gl-woordlicht{animation:gl-glans 9s ease-in-out 2s infinite}
.brand:hover .klein .gl-g,.brand:focus-visible .klein .gl-g,.glogo.rev .gl-g{animation:gl-g-hover .9s cubic-bezier(.3,0,.2,1) infinite}
.brand:hover .klein .gl-lijnen{animation:gl-lijn-toer .9s ease-out infinite}

@keyframes gl-rol{0%{transform:translateX(-75vw);opacity:0}15%{opacity:1}80%{transform:translateX(2%)}100%{transform:none}}
@keyframes gl-rol-k{0%{transform:translateX(-160%);opacity:0}20%{opacity:1}100%{transform:none}}
@keyframes gl-g-in{0%{transform:rotate(-1440deg);filter:blur(3px)}70%{filter:blur(0)}100%{transform:rotate(0)}}
@keyframes gl-g-toer{0%{transform:rotate(0)}6%{transform:rotate(-25deg)}22%{transform:rotate(720deg)}25%{transform:rotate(712deg)}28%,100%{transform:rotate(720deg)}}
@keyframes gl-g-hover{to{transform:rotate(360deg)}}
/* het wiel stopt nooit: rustig draaien, dan optrekken tot volle toeren, terug rustig (naadloos: 1440 = 4 x 360) */
@keyframes gl-wiel{0%{transform:rotate(0)}30%{transform:rotate(200deg)}38%{transform:rotate(330deg)}62%{transform:rotate(1150deg)}75%{transform:rotate(1310deg)}100%{transform:rotate(1440deg)}}
@keyframes gl-lijn-in{0%{transform:translateX(-30%) scaleX(2.6);opacity:0}40%{opacity:1}100%{transform:none}}
@keyframes gl-lijn-toer{0%,5%{transform:none;opacity:1}9%{transform:translateX(-7%) scaleX(1.5);opacity:.55}13%{opacity:1}16%{opacity:.6}24%,100%{transform:none;opacity:1}}
@keyframes gl-ringlicht{0%,5%{--ga:0deg;opacity:0}8%{opacity:1}22%{--ga:720deg;opacity:1}27%,100%{--ga:760deg;opacity:0}}
@keyframes gl-slam{0%{opacity:0;transform:scale(1.9) skewX(-28deg);filter:blur(8px)}60%{opacity:1;filter:blur(0)}100%{transform:none}}
@keyframes gl-glitch{0%,54%,61%,100%{transform:none;filter:none}55%{transform:translate(-5px,1px) skewX(-8deg);filter:drop-shadow(-6px 0 rgba(255,40,90,.85)) drop-shadow(6px 0 rgba(0,255,210,.85))}57%{transform:translate(4px,-1px);filter:drop-shadow(5px 0 rgba(255,40,90,.85)) drop-shadow(-5px 0 rgba(0,255,210,.85))}59%{transform:translate(-2px,0) skewX(4deg);filter:drop-shadow(-3px 0 rgba(255,40,90,.6))}}
@keyframes gl-glans{0%,24%{background-position:170% 0}42%,100%{background-position:-70% 0}}
@keyframes gl-mgmt{0%{clip-path:inset(0 50% 0 50%);opacity:0}100%{clip-path:inset(0 0 0 0);opacity:1}}
@keyframes gl-fade{from{opacity:0}to{opacity:1}}
@keyframes gl-gloei{0%,4%,40%,100%{filter:drop-shadow(0 0 26px rgba(32,245,139,.3))}20%{filter:drop-shadow(0 0 60px rgba(32,245,139,.75))}}
.hero h1{margin:0 0 .15em;text-shadow:0 6px 40px rgba(0,0,0,.6)}
.hero h1>span:not(.l){display:block;-webkit-text-stroke:2px var(--green);color:transparent;text-shadow:none}
.home-tagline{font:500 clamp(1.1rem,2.2vw,1.6rem)/1.3 var(--cond);letter-spacing:.12em;text-transform:uppercase;color:#e6efe9;margin:0 0 26px}
.mini-proof{display:flex;flex-wrap:wrap;gap:10px}
.mini-proof span{font:600 .74rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;padding:11px 14px 11px 30px;background:rgba(5,7,6,.7);border:1px solid var(--line);position:relative;backdrop-filter:blur(6px)}
.mini-proof span::before{content:"";position:absolute;left:12px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green);animation:puls 2s infinite}
@keyframes puls{50%{opacity:.35}}
.scroll-cue{position:absolute;right:28px;bottom:120px;font:600 .7rem var(--mono);letter-spacing:.3em;writing-mode:vertical-rl;color:var(--muted);text-decoration:none}
.scroll-cue::after{content:"";display:block;width:1px;height:70px;margin:12px auto 0;background:linear-gradient(var(--green),transparent);animation:val 2s infinite}
@keyframes val{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* tourband */
.ticker{position:relative;z-index:3;background:var(--green);color:#03150b;transform:rotate(-1.6deg);margin:-14px -20px 0;padding:14px 0;overflow:hidden;box-shadow:0 10px 40px rgba(0,0,0,.6)}
.ticker-track{display:flex;width:max-content;animation:tick 34s linear infinite}
.ticker span{font:400 clamp(1.4rem,2.6vw,2.2rem)/1 var(--disp);text-transform:uppercase;padding:0 26px;white-space:nowrap;display:flex;align-items:center;gap:26px}
.ticker span::after{content:"✕";font-size:.6em}
@keyframes tick{to{transform:translateX(-50%)}}

/* paginaheld */
.page-hero{position:relative;padding:calc(var(--hdr) + 90px) 0 80px;min-height:72svh;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.page-hero .bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;filter:grayscale(.55) contrast(1.1) brightness(.75);transform:scale(1.08);animation:kenburns 14s ease-out forwards}
.page-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(5,7,6,.92) 0%,rgba(5,7,6,.6) 55%,rgba(5,7,6,.35) 100%),linear-gradient(0deg,var(--bg) 0%,transparent 40%)}
.page-hero h1{font-size:clamp(2.8rem,7.6vw,7rem);max-width:15ch}
.page-hero h1 span{display:block}
.page-hero p:not(.eyebrow){max-width:62ch;font-size:clamp(1.05rem,1.5vw,1.3rem);color:#dfe8e3}
.page-hero.plain{min-height:auto;padding-bottom:30px}
.page-hero.plain::before{background:radial-gradient(ellipse at 10% 0%,rgba(32,245,139,.12),transparent 60%)}
.kruimel{display:flex;gap:10px;align-items:center;font:600 .74rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 26px}
.kruimel a{text-decoration:none;color:var(--green)}
.kruimel a:hover{text-decoration:underline}
.kruimel li{list-style:none;display:flex;gap:10px;align-items:center}
.kruimel li+li::before{content:"/";color:var(--muted)}
.kruimel ol{display:flex;gap:10px;margin:0;padding:0}

/* secties */
.section{padding:clamp(70px,10vw,140px) 0;position:relative}
.section-line{border-top:1px solid var(--hair)}
.gescheurd{background:var(--bg2);clip-path:polygon(0 18px,4% 4px,9% 16px,15% 2px,22% 14px,28% 0,35% 12px,41% 3px,48% 16px,55% 2px,61% 13px,68% 0,74% 15px,80% 4px,87% 14px,93% 1px,100% 12px,100% 100%,0 100%)}
.section-head{max-width:860px;margin-bottom:50px}
.section-head p:not(.eyebrow){color:var(--muted);font-size:1.12rem}
.two-col{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(30px,6vw,90px);align-items:start}
.content-narrow{max-width:960px}

/* fotoblokken */
.foto{margin:0;position:relative;overflow:hidden;background:#111;border-radius:var(--r)}
.foto img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1),filter .6s;filter:grayscale(.35) contrast(1.05)}
.foto:hover img{transform:scale(1.05);filter:none}
.foto::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);pointer-events:none}
.collage{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(90px,11vw,150px);gap:12px;margin-top:60px}
.collage .foto:nth-child(1){grid-column:1/4;grid-row:span 3}
.collage .foto:nth-child(2){grid-column:4/7;grid-row:span 2}
.collage .foto:nth-child(3){grid-column:4/6;grid-row:span 2}
.collage .foto:nth-child(4){grid-column:6/7;grid-row:span 2}
.collage .foto:nth-child(5){grid-column:1/4;grid-row:span 1}
.stempel{position:absolute;left:14px;bottom:14px;font:600 .66rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;background:var(--green);color:#03150b;padding:7px 9px;transform:rotate(-2deg)}
.zijfoto{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:30px}
.zijfoto .foto{aspect-ratio:4/5}
.zijfoto .foto:first-child{transform:translateY(30px)}
.wide-photo{aspect-ratio:16/7;margin-top:50px}

/* acht stappen: de cirkel */
.cirkel-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:40px}
.cycle-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair)}
.step{background:var(--bg);padding:28px 24px 30px;position:relative;transition:background .3s}
.step:hover,.step.actief{background:#0c1410}
.step .icon{font:400 3.2rem/1 var(--disp);color:transparent;-webkit-text-stroke:1.5px var(--green);margin-bottom:22px;transition:color .3s}
.step:hover .icon,.step.actief .icon{color:var(--green)}
.step h3{margin-bottom:10px}
.step p{color:var(--muted);margin:0;font-size:.98rem}
@media (min-width:1000px){
  .dial{position:relative;width:min(760px,100%);aspect-ratio:1;margin:0 auto}
  .dial .ring{position:absolute;inset:7%;border-radius:50%;border:1px dashed var(--line)}
  .dial .ring::before{content:"";position:absolute;inset:-1px;border-radius:50%;border:2px solid transparent;border-top-color:var(--green);transform:rotate(var(--hoek,0deg));transition:transform .8s cubic-bezier(.6,0,.2,1)}
  .dial .cycle-grid{position:absolute;inset:0;display:block;background:none;border:0}
  .dial .step{position:absolute;left:50%;top:50%;width:150px;height:150px;margin:-75px 0 0 -75px;border-radius:50%;border:1px solid var(--line);
    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:14px;cursor:pointer;
    transform:rotate(var(--a)) translate(0,-310px) rotate(calc(-1 * var(--a)));background:var(--bg)}
  .dial .step .icon{font-size:2.2rem;margin:0 0 6px}
  .dial .step h3{font-size:1rem;margin:0}
  .dial .step p{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .dial .step.actief{border-color:var(--green);box-shadow:0 0 0 6px rgba(32,245,139,.08),0 0 40px rgba(32,245,139,.25)}
  .dial-midden{position:absolute;left:50%;top:50%;width:380px;transform:translate(-50%,-50%);text-align:center}
  .dial-midden .n{font:400 6rem/1 var(--disp);color:var(--green);display:block}
  .dial-midden h3{font-size:2.2rem}
  .dial-midden p{color:var(--muted);margin:0}
}
@media (max-width:999px){.dial-midden,.dial .ring{display:none}}

/* ===== fotokaarten v0.1.5: elke stap een bewegende foto, tekst op donkere verloop ===== */
.kaart{position:relative;overflow:hidden;isolation:isolate;min-height:330px;display:flex;flex-direction:column;justify-content:flex-end}
.kaart .stap-foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:grayscale(.3) brightness(.62) contrast(1.05);transform:scale(1.18);transition:filter .6s,transform 1.4s cubic-bezier(.2,.7,.2,1);animation:kaart-drift 16s ease-in-out infinite alternate}
.kaart:nth-child(even) .stap-foto{animation-direction:alternate-reverse;animation-duration:19s}
.kaart::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(5,7,6,.15) 0%,rgba(5,7,6,.55) 40%,rgba(5,7,6,.93) 78%,rgba(5,7,6,.98) 100%)}
.kaart::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--green),transparent);box-shadow:0 0 18px var(--green);opacity:0;z-index:1}
.kaart.in::after{animation:kaart-scan 1.4s cubic-bezier(.4,0,.2,1) .2s}
.kaart:hover .stap-foto,.kaart.actief .stap-foto{filter:grayscale(0) brightness(.75)}
.kaart h3{color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.8)}
.kaart p{color:#e2ebe6!important;text-shadow:0 1px 10px rgba(0,0,0,.9)}
.kaart .icon,.kaart .n{color:transparent;-webkit-text-stroke:1.5px var(--green);text-shadow:0 0 24px rgba(32,245,139,.35)}
.kaart.in .icon,.kaart.in .n{animation:kaart-nummer 1.6s ease .4s both}
.detail.kaart:not(.in){opacity:0;transform:translateY(50px) scale(.97)}
@media (max-width:999px){.step.kaart:not(.in){opacity:0;transform:translateY(50px) scale(.97)}}
.kaart{transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
@keyframes kaart-drift{0%{transform:scale(1.18) translate(-3%,-2%)}100%{transform:scale(1.08) translate(3%,2%)}}
@keyframes kaart-scan{0%{top:0;opacity:1}100%{top:100%;opacity:0}}
@keyframes kaart-nummer{0%{color:transparent}35%{color:var(--green)}100%{color:transparent}}
@media (min-width:1000px){
  .dial .kaart{min-height:0;justify-content:center;opacity:1!important}
  .dial .kaart::before,.dial .kaart::after{display:none}
  .dial .kaart .stap-foto{display:none}
  .dial-midden{width:430px;height:430px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;overflow:hidden;isolation:isolate}
  .midden-foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;opacity:.5;filter:grayscale(.2);transition:opacity .5s;animation:kaart-drift 12s ease-in-out infinite alternate}
  .dial-midden::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle,rgba(5,7,6,.55) 0%,rgba(5,7,6,.9) 70%,var(--bg) 100%)}
  .dial-midden p{color:#e2ebe6}
}
/* ===== cirkelgraaf v0.1.5: de volle cirkel live — fotoknopen, gloeiende baan, rondlopende komeet ===== */
.cg{margin:60px auto 0;width:min(1120px,100%)}
.cg-vak{position:relative;aspect-ratio:1}
.cg-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.cg-baan{fill:none;stroke:rgba(32,245,139,.18);stroke-width:2}
.cg-stroom{fill:none;stroke:var(--green);stroke-width:3;stroke-dasharray:14 30;stroke-linecap:round;animation:cg-stroom 3s linear infinite}
.cg-pijl{fill:none;stroke:#7dffbe;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;animation:cg-pijl 2.4s ease-in-out infinite;animation-delay:calc(var(--i)*.3s)}
.cg-komeet circle{fill:#eafff3}
.cg-komeet.k2 circle{fill:var(--green)}
@keyframes cg-stroom{to{stroke-dashoffset:-88}}
@keyframes cg-pijl{0%,100%{opacity:.35}40%{opacity:1;stroke:#fff}}
.cg-midden{position:absolute;left:50%;top:50%;width:41%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  background:radial-gradient(circle at 50% 40%,#0f2a1c 0%,#06100b 65%);border:3px solid var(--green);box-shadow:0 0 30px rgba(32,245,139,.55),inset 0 0 50px rgba(32,245,139,.25);animation:cg-adem 3.2s ease-in-out infinite;isolation:isolate}
.cg-midden::before{content:"";position:absolute;inset:-14px;border-radius:50%;z-index:-1;background:conic-gradient(from 0deg,transparent 0 75%,rgba(32,245,139,.9) 95%,transparent);-webkit-mask:radial-gradient(circle,transparent 66%,#000 67%);mask:radial-gradient(circle,transparent 66%,#000 67%);animation:cg-draai 4s linear infinite}
.cg-pulse{position:absolute;inset:0;border-radius:50%;border:2px solid var(--green);animation:cg-golf 3.2s ease-out infinite;pointer-events:none}
.cg-t1,.cg-t2{font:400 clamp(1.5rem,3.4vw,2.9rem)/1.02 var(--disp);letter-spacing:.02em;color:#fff}
.cg-t2{color:var(--green);text-shadow:0 0 18px rgba(32,245,139,.7)}
.cg-streep{display:block;width:70px;height:3px;background:var(--green);margin:14px auto;box-shadow:0 0 12px var(--green)}
.cg-t3{font:500 clamp(.95rem,1.4vw,1.25rem)/1.2 var(--cond);letter-spacing:.06em;color:#dfe9e3}
.cg-t4{font:600 .72rem/1 var(--mono);letter-spacing:.2em;color:var(--green);margin-top:12px}
@keyframes cg-adem{0%,100%{box-shadow:0 0 26px rgba(32,245,139,.45),inset 0 0 40px rgba(32,245,139,.2)}50%{box-shadow:0 0 60px rgba(32,245,139,.85),inset 0 0 70px rgba(32,245,139,.35)}}
@keyframes cg-draai{to{transform:rotate(360deg)}}
@keyframes cg-golf{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.45);opacity:0}}
.cg-knopen{list-style:none;margin:0;padding:0}
.cg-knoop{position:absolute;left:var(--x);top:var(--y);width:23%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;overflow:hidden;isolation:isolate;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:6%;border:3px solid var(--green);background:#06100b;
  box-shadow:0 0 18px rgba(32,245,139,.45);animation:cg-knoop 4s ease-in-out infinite;animation-delay:calc(var(--i)*.5s);transition:transform .4s cubic-bezier(.2,1.4,.3,1),box-shadow .4s;cursor:default}
.cg-knoop::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle,rgba(4,10,7,.5) 0%,rgba(4,10,7,.72) 62%,rgba(4,10,7,.85) 100%)}
.cg-foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:grayscale(.25) brightness(.85);animation:kaart-drift 14s ease-in-out infinite alternate}
.cg-knoop:hover,.cg-knoop.actief{transform:translate(-50%,-50%) scale(1.12);z-index:3;box-shadow:0 0 0 6px rgba(32,245,139,.15),0 0 60px rgba(32,245,139,.9)}
.cg-knoop:hover::before,.cg-knoop.actief::before{background:radial-gradient(circle,rgba(4,10,7,.35) 0%,rgba(4,10,7,.75) 70%)}
.cg-knoop:hover .cg-foto,.cg-knoop.actief .cg-foto{filter:none}
.cg-n{font:400 clamp(1rem,1.7vw,1.5rem)/1 var(--disp);color:#fff;margin-bottom:6px}
.cg-titel{font:600 clamp(.82rem,1.25vw,1.08rem)/1.15 var(--cond);color:#fff;text-shadow:0 2px 10px #000}
.cg-tag{font:600 clamp(.55rem,.72vw,.66rem)/1.35 var(--mono);letter-spacing:.06em;color:#bff5d8;margin-top:7px;text-transform:uppercase;text-shadow:0 1px 8px #000}
@keyframes cg-knoop{0%,100%{box-shadow:0 0 14px rgba(32,245,139,.35)}50%{box-shadow:0 0 34px rgba(32,245,139,.85)}}
/* gsm: midden bovenaan, knopen als tijdlijn met stromend gloeilicht */
@media (max-width:899px){
  .cg-vak{aspect-ratio:auto;display:flex;flex-direction:column;align-items:stretch}
  .cg-svg{display:none}
  .cg-midden{position:relative;left:auto;top:auto;transform:none;width:min(300px,82vw);margin:0 auto 34px}
  .cg-knopen{position:relative;padding-left:4px}
  .cg-knopen::before{content:"";position:absolute;left:51px;top:20px;bottom:20px;width:3px;background:linear-gradient(180deg,transparent,var(--green) 20%,#eafff3 50%,var(--green) 80%,transparent) 0 0/100% 300%;box-shadow:0 0 14px var(--green);animation:cg-lijn 2.6s linear infinite}
  .cg-knoop{position:relative;left:auto;top:auto;transform:none;width:auto;aspect-ratio:auto;border-radius:0;border:0;box-shadow:none;background:none;overflow:visible;
    display:grid;grid-template-columns:96px 1fr;grid-template-rows:1fr auto auto auto 1fr;column-gap:16px;align-items:center;text-align:left;padding:10px 0;animation:none}
  .cg-knoop::before{display:none}
  .cg-foto{position:relative;grid-row:1/6;width:96px;height:96px;border-radius:50%;border:3px solid var(--green);box-shadow:0 0 18px rgba(32,245,139,.6);z-index:1;animation:cg-knoop 4s ease-in-out infinite;animation-delay:calc(var(--i)*.4s)}
  .cg-n{grid-column:2;grid-row:2;margin:0;color:var(--green)}
  .cg-titel{grid-column:2;grid-row:3;font-size:1.05rem}
  .cg-tag{grid-column:2;grid-row:4;font-size:.7rem;margin-top:4px}
  .cg-knoop:hover,.cg-knoop.actief{transform:none;box-shadow:none}
}
@keyframes cg-lijn{to{background-position:0 -300%}}
/* ===== graviton-cirkel met beschrijvingen: midden toont de actieve stap ===== */
.cg-kop,.cg-info{display:flex;flex-direction:column;align-items:center;transition:opacity .5s,transform .5s}
.cg-info{position:absolute;inset:12%;justify-content:center;opacity:0;transform:scale(.92)}
.cg-lang.info-aan .cg-kop{opacity:0;transform:scale(1.08)}
.cg-lang.info-aan .cg-info{opacity:1;transform:none}
.cg-info .cg-n{font-size:clamp(2.4rem,4.4vw,4rem);color:var(--green);text-shadow:0 0 24px rgba(32,245,139,.7);margin:0 0 4px}
.cg-info .cg-titel{font:400 clamp(1.2rem,2.2vw,1.9rem)/1.05 var(--disp);text-transform:uppercase;margin-bottom:10px}
.cg-info .cg-tekst{font:400 clamp(.85rem,1.15vw,1rem)/1.45 var(--body);color:#dfe9e3;max-width:30ch}
@media (min-width:900px){.cg-lang .cg-knoop .cg-tag{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}
@media (max-width:899px){.cg-info{display:none}.cg-lang .cg-tag{font:400 .92rem/1.45 var(--body);text-transform:none;letter-spacing:0;color:#d5e0da}}

/* ===== home spectaculairder v0.1.11: vonken, lichtbundels, letterslag, cursorlicht, reuzenband ===== */
.vonken{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;mix-blend-mode:screen}
.home-hero .container{position:relative;z-index:1}
.bundels{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;mix-blend-mode:screen}
.bundels i{position:absolute;top:-20%;width:46vw;height:150%;transform-origin:50% 0;background:conic-gradient(from 168deg at 50% 0,transparent 0deg,rgba(32,245,139,.22) 12deg,rgba(200,255,225,.28) 12.5deg,rgba(32,245,139,.2) 13deg,transparent 24deg);filter:blur(6px);animation:bundel 9s ease-in-out infinite alternate}
.bundels i:nth-child(1){left:2%;animation-delay:-2s}
.bundels i:nth-child(2){left:38%;animation-duration:11s;opacity:.7}
.bundels i:nth-child(3){left:70%;animation-delay:-5s;animation-duration:8s}
@keyframes bundel{0%{transform:rotate(-24deg)}100%{transform:rotate(22deg)}}
.home-hero::before{background:radial-gradient(600px circle at var(--mx,30%) var(--my,60%),rgba(32,245,139,.16),transparent 60%),linear-gradient(180deg,rgba(5,7,6,.55) 0%,rgba(5,7,6,.25) 35%,rgba(5,7,6,.85) 78%,var(--bg) 100%)}
.splits .l{display:inline-block;opacity:0;transform:translateY(60%) rotate(8deg) scale(1.4);filter:blur(8px);animation:letter .8s cubic-bezier(.2,1.3,.3,1) forwards;animation-delay:calc(.15s + var(--k)*.03s)}
.splits .l{color:inherit}
.splits .flits .l{-webkit-text-stroke:2px var(--green);color:transparent}
.splits span.flits .l{animation:letter .8s cubic-bezier(.2,1.3,.3,1) forwards,neon 5s steps(1) 3s infinite;animation-delay:calc(.15s + var(--k)*.03s),calc(3s + var(--k)*.03s)}
@keyframes letter{to{opacity:1;transform:none;filter:none}}
@keyframes neon{0%,88%,100%{color:transparent;text-shadow:none}90%,94%{color:var(--green);text-shadow:0 0 30px var(--green)}92%{color:transparent}}
.reuzenband{overflow:hidden;padding:10px 0 30px;pointer-events:none}
.rb-track{display:flex;width:max-content;transform:translateX(var(--rb,0px)) skewX(var(--sk,0deg));will-change:transform}
.rb-track span{font:400 clamp(4rem,12vw,11rem)/1 var(--disp);text-transform:uppercase;white-space:nowrap;padding-right:.4em;color:transparent;-webkit-text-stroke:1.5px rgba(32,245,139,.5)}
.rb-track span:nth-child(even){-webkit-text-stroke:0;color:rgba(32,245,139,.12)}
.collage .foto{will-change:transform}
/* ===== 3D-wereld op de home v0.2.0 (wereld.js): sticky podium, tekst scrolt er native overheen ===== */
.wereld{position:relative;isolation:isolate}
.wereld-podium{position:sticky;top:0;height:100svh;margin-bottom:-100svh;overflow:hidden;z-index:0}
.wereld-podium .dia{position:absolute;inset:0}
.wereld-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 1.2s ease}
.wereld-aan .wereld-canvas{opacity:1}
.wereld-aan .dia,.wereld-aan .bundels{display:none}
.wereld-podium::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(5,7,6,.78) 0%,rgba(5,7,6,.35) 38%,transparent 62%),linear-gradient(0deg,var(--bg) 0%,transparent 22%),radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.55) 100%)}
.wereld:not(.wereld-aan) .wereld-podium::after{background:linear-gradient(180deg,rgba(5,7,6,.55) 0%,rgba(5,7,6,.25) 35%,rgba(5,7,6,.85) 78%,var(--bg) 100%)}
.wereld .vonken{z-index:1}
.wereld-hfst{position:relative;z-index:2;min-height:120svh;display:flex;align-items:center;pointer-events:none}
.wereld-hfst a,.wereld-hfst .home-hero-logo{pointer-events:auto}
.wereld-hfst:first-of-type{min-height:100svh;align-items:flex-end;padding:calc(var(--hdr) + 40px) 0 70px}
.wereld-hfst .rechts{display:flex;justify-content:flex-end;text-align:right}
.wereld-kop{font:400 clamp(3.4rem,10vw,9.5rem)/.9 var(--disp);text-transform:uppercase;max-width:9ch;margin:0;color:#fff;text-shadow:0 8px 50px rgba(0,0,0,.8);
  opacity:.12;transform:translateY(40px) skewY(3deg);filter:blur(6px);transition:opacity .9s,transform .9s cubic-bezier(.2,.8,.2,1),filter .9s}
.wereld-kop::first-line{color:var(--green)}
.wereld-hfst.nu .wereld-kop{opacity:1;transform:none;filter:none}
.wereld .scroll-cue{bottom:40px}
.wereld h1{margin:0 0 .15em;text-shadow:0 6px 40px rgba(0,0,0,.6)}
.wereld h1>span:not(.l):not(.w){display:block;-webkit-text-stroke:2px var(--green);color:transparent;text-shadow:none}
.splits .w{display:inline-block;white-space:nowrap}
@media (max-width:899px){
  .wereld-podium::after{background:linear-gradient(0deg,rgba(5,7,6,.92) 0%,rgba(5,7,6,.4) 45%,rgba(5,7,6,.25) 100%)}
  .wereld-hfst{align-items:flex-end;padding-bottom:12svh}
  .wereld-hfst .rechts{justify-content:flex-start;text-align:left}
}
/* detailraster (full circle) */
.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair)}
.detail{background:var(--bg);padding:34px 30px;position:relative;overflow:hidden;transition:background .3s}
.detail:hover{background:#0c1410}
.detail .n{font:400 4rem/1 var(--disp);color:transparent;-webkit-text-stroke:1.5px var(--green);display:block;margin-bottom:16px}
.detail p{color:var(--muted);margin:0}
.detail.breed{grid-column:1/-1}
.detail.breed p{max-width:80ch}
.full-circle-intro{max-width:900px}
.full-circle-graphic{margin-top:50px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#020a12;box-shadow:0 0 80px rgba(32,245,139,.1)}
.full-circle-graphic img{width:100%;height:auto}
.badge-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.badge{font:600 .82rem/1 var(--cond);letter-spacing:.1em;text-transform:uppercase;padding:12px 18px 12px 16px;border:1px dashed var(--green);color:var(--green);position:relative;border-radius:2px}
.badge::before{content:"";position:absolute;left:-6px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:var(--bg)}

/* setlist */
.checklist{list-style:none;margin:0;padding:0;counter-reset:s;border-top:1px solid var(--hair)}
.checklist li{counter-increment:s;display:grid;grid-template-columns:56px 1fr;gap:14px;padding:18px 0;border-bottom:1px solid var(--hair);font:500 clamp(1.05rem,1.5vw,1.25rem)/1.35 var(--cond);letter-spacing:.02em;transition:padding .3s,color .3s}
.checklist li::before{content:counter(s,decimal-leading-zero);font:600 .8rem/1.9 var(--mono);color:var(--green);letter-spacing:.1em}
.checklist li:hover{padding-left:10px;color:#fff}

/* artiest */
.artist-partner-tagline{font:400 clamp(1.4rem,2.6vw,2.1rem)/1.15 var(--disp);text-transform:uppercase;border-left:4px solid var(--green);padding:6px 0 6px 22px;margin-top:40px}
.artist-partner-tagline strong{font-weight:400}

/* partners */
.partner-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:50px}
.partner-card{background:var(--panel);border:1px solid var(--hair);border-radius:var(--r);padding:22px;transition:transform .4s,border-color .4s}
.partner-card:hover{transform:translateY(-6px) rotate(-.6deg);border-color:var(--green)}
.partner-logo-box{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:#000;border-radius:2px;margin-bottom:18px;overflow:hidden;padding:18px}
.partner-card:not(.partner-dark) .partner-logo-box{background:#fff;padding:0}
.partner-logo-box img{max-height:100%;width:auto;object-fit:contain}
.partner-card h3{margin:0;font-size:1.3rem}
.partners-note{margin-top:40px;max-width:70ch;color:var(--muted);font-size:1.1rem}
.partner-intro{max-width:880px}

/* fotomuur */
.muur{padding:20px 0 0;overflow:hidden}
.muur-rij{display:flex;gap:12px;width:max-content;animation:tick 70s linear infinite;margin-bottom:12px}
.muur-rij.terug{animation-direction:reverse;animation-duration:80s}
.muur:hover .muur-rij{animation-play-state:paused}
.muur .foto{height:clamp(170px,22vw,280px);flex:none}
.muur .foto img{width:auto;height:100%}

/* oproep */
.quote-band{position:relative;background:var(--green);color:#03150b;padding:clamp(70px,9vw,120px) 0;overflow:hidden;isolation:isolate}
.quote-band::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.18;background:repeating-linear-gradient(-45deg,#000 0 2px,transparent 2px 14px)}
.quote-band .container{display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap}
.quote-band .eyebrow{color:#03150b}.quote-band .eyebrow::before{background:#03150b}
.quote-band h2{font-size:clamp(2.6rem,6vw,5.4rem);max-width:13ch;margin:0 0 .25em}
.quote-band p:not(.eyebrow){font-size:1.2rem;margin:0;max-width:44ch}
.quote-band .btn{background:#03150b;color:var(--green);border-color:#03150b;min-height:64px;padding:0 34px;font-size:1.1rem}
.quote-band .btn:hover{background:#000}

/* formulieren */
.contact-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(30px,5vw,80px);align-items:start}
.form-card,.contact-card{background:var(--panel);border:1px solid var(--hair);border-radius:var(--r);padding:clamp(24px,3vw,40px);position:relative}
.form-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--green)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1/-1}
.field label{font:600 .74rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.field input,.field textarea{background:#050807;border:1px solid rgba(255,255,255,.14);color:var(--ink);font:400 1rem/1.4 var(--body);padding:14px 16px;border-radius:var(--r);min-height:52px;transition:border-color .2s,box-shadow .2s;width:100%}
.field textarea{min-height:150px;resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(32,245,139,.15)}
.form-disclaimer{font-size:.86rem;color:var(--muted);margin:14px 0 0}
.form-status{margin:14px 0 0;font:500 .98rem/1.4 var(--cond);letter-spacing:.03em}
.form-status.ok{color:var(--green)}.form-status.fout{color:#ff7a6b}
.hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}
.contact-card h2{font-size:clamp(1.8rem,3vw,2.6rem)}
.contact-card a{color:var(--green);font:500 1.25rem var(--cond);word-break:break-word}
.team-spotlight-card{margin-top:36px;background:var(--panel);border:1px solid var(--hair);border-radius:var(--r);padding:24px}
.team-spotlight-media{aspect-ratio:13/12;overflow:hidden;border-radius:var(--r);margin-bottom:18px}
.team-spotlight-media img{width:100%;height:100%;object-fit:cover}
.team-spotlight-card p:last-child{margin:0;color:#d5dfda}

/* ===== formulierpagina's v0.1.6: reuzen-G draait in de achtergrond, gloeiende formulierrand ===== */
.formsectie{overflow:hidden;isolation:isolate}
.formsectie::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse 60% 70% at 85% 45%,rgba(32,245,139,.14),transparent 70%)}
.logo-achter{position:absolute;z-index:-1;left:-22vw;top:40%;width:min(1500px,130vw);aspect-ratio:1927/761;transform:translateY(-58%);opacity:.22;pointer-events:none;filter:drop-shadow(0 0 40px rgba(32,245,139,.6))}
.logo-achter img{position:absolute;inset:0;width:100%;height:100%}
.la-g{transform-origin:53.66% 33.9%;animation:la-draai 14s cubic-bezier(.6,0,.3,1) infinite}
.la-ring{animation:la-gloei 3.5s ease-in-out infinite}
.la-lijnen{transform-origin:42% 50%;animation:la-lijnen 3.5s ease-in-out infinite}
@keyframes la-draai{0%{transform:rotate(0)}40%{transform:rotate(-20deg)}70%,100%{transform:rotate(720deg)}}
@keyframes la-gloei{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes la-lijnen{0%,100%{transform:none;opacity:.7}50%{transform:translateX(-5%) scaleX(1.25);opacity:1}}
.formsectie .form-card{background:rgba(11,16,13,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:0;overflow:hidden;isolation:isolate;box-shadow:0 30px 80px rgba(0,0,0,.5),0 0 50px rgba(32,245,139,.12)}
.formsectie .form-card::before{content:"";position:absolute;inset:-60%;height:auto;z-index:-2;background:conic-gradient(from 0deg,transparent 0 70%,rgba(32,245,139,.95) 85%,transparent 100%);animation:cg-draai 5s linear infinite}
.formsectie .form-card::after{content:"";position:absolute;inset:2px;z-index:-1;border-radius:3px;background:#0a0f0c}
.formsectie h2{text-shadow:0 0 40px rgba(32,245,139,.25)}
.formsectie .field input:focus,.formsectie .field textarea:focus{box-shadow:0 0 0 3px rgba(32,245,139,.18),0 0 24px rgba(32,245,139,.25)}
.formsectie .btn-primary{animation:btn-puls 2.6s ease-in-out infinite}
@keyframes btn-puls{0%,100%{box-shadow:0 0 0 0 rgba(32,245,139,.5)}50%{box-shadow:0 0 0 10px rgba(32,245,139,0),0 0 30px rgba(32,245,139,.5)}}
@media (max-width:1000px){.logo-achter{left:-75vw;top:18%;width:220vw;opacity:.2}}
/* juridisch */
.legal{font-size:1.1rem;max-width:75ch}

/* voet */
.site-footer{border-top:1px solid var(--hair);padding:80px 0 30px;background:#030504;position:relative;overflow:hidden}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.3fr 1fr;gap:40px}
.footer-grid h3{font:600 .76rem/1 var(--mono);letter-spacing:.2em;color:var(--green);margin:0 0 18px}
.footer-grid a,.footer-grid p,.footer-grid button{display:block;color:var(--muted);text-decoration:none;margin:0 0 10px;font-size:.98rem}
.footer-grid a:hover,.footer-grid button:hover{color:#fff}
.footer-grid button{background:none;border:0;padding:0;font:inherit;cursor:pointer;text-align:left}
.footer-brand-text{font:400 1.6rem/1 var(--disp);letter-spacing:.04em;margin-bottom:14px}
.footer-logo{width:220px;height:auto;margin-bottom:18px}
.footer-reus{font:400 clamp(4rem,15vw,15rem)/.8 var(--disp);color:transparent;-webkit-text-stroke:1px rgba(32,245,139,.22);white-space:nowrap;margin:60px 0 0;text-align:center;user-select:none;letter-spacing:.02em}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid var(--hair);margin-top:30px;padding:22px 80px 0 0;font:500 .78rem var(--mono);letter-spacing:.1em;color:var(--muted);text-transform:uppercase}

/* terug naar boven: de volle cirkel */
.naar-boven{position:fixed;right:18px;bottom:18px;z-index:45;width:58px;height:58px;border-radius:50%;border:0;background:rgba(5,7,6,.85);color:var(--green);cursor:pointer;
  display:grid;place-items:center;opacity:0;transform:translateY(20px);pointer-events:none;transition:opacity .3s,transform .3s;backdrop-filter:blur(8px)}
.naar-boven.zicht{opacity:1;transform:none;pointer-events:auto}
.naar-boven svg{position:absolute;inset:0;transform:rotate(-90deg)}
.naar-boven circle{fill:none;stroke-width:3}
.naar-boven .spoor{stroke:rgba(32,245,139,.18)}
.naar-boven .vol{stroke:var(--green);stroke-dasharray:163.4;stroke-dashoffset:163.4}
.naar-boven b{font:400 1.3rem/1 var(--disp)}

/* onthullen */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.1s}.reveal.d2{transition-delay:.2s}.reveal.d3{transition-delay:.3s}

@media (max-width:1000px){
  .two-col,.contact-grid{grid-template-columns:1fr}
  .cycle-grid{grid-template-columns:repeat(2,1fr)}
  .detail-grid{grid-template-columns:repeat(2,1fr)}
  .partner-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  :root{--hdr:66px}
  body{font-size:16px}
  .brand .glogo{height:40px}
  .cycle-grid,.detail-grid,.form-grid{grid-template-columns:1fr}
  .collage{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}
  .collage .foto:nth-child(n){grid-column:auto;grid-row:span 1}
  .collage .foto:nth-child(1){grid-column:1/-1;grid-row:span 2}
  .footer-grid{grid-template-columns:1fr}
  .scroll-cue{display:none}
  .page-hero{min-height:64svh}
  .quote-band .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  .dia img.aan{transform:none}
}
