:root {
  --bg:      #000000;
  --panel:   #0a0a0a;
  --panel2:  #0d0d0d;
  --text:    #FFFFFF;
  --gold:    #c9a227;
  --gold-dim: #8a6f1c;
  --green:   #3fb950;
  --tag:     #9AA0A6;
  --muted:   #7F858C;
  --line:    #1c1c1c;
  --line2:   #242424;
  --maxw:    1400px;
  --mono: "SF Mono", ui-monospace, "JetBrains Mono", Menlo, Consolas, monospace;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--bg); }
body {
  color:var(--text);
  font-family:"Space Grotesk", Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  position:relative;
}
a { color:var(--gold); }
a:hover { color:#e0b93a; }

/* fixed decorative blueprint grid */
.bg-grid {
  position:fixed; inset:0; z-index:-2; pointer-events:none;
  background-image:
    linear-gradient(var(--line2) 1px, transparent 1px),
    linear-gradient(90deg, var(--line2) 1px, transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(ellipse 100% 90% at 50% 20%, #000 55%, transparent 100%);
}
.bg-glow {
  position:fixed; inset:-20%; z-index:-1; pointer-events:none;
  background:
    radial-gradient(700px 500px at 20% 15%, rgba(201,162,39,.22), transparent 65%),
    radial-gradient(600px 600px at 80% 40%, rgba(201,162,39,.16), transparent 65%),
    radial-gradient(650px 500px at 45% 90%, rgba(201,162,39,.12), transparent 65%);
  animation:drift 22s ease-in-out infinite alternate;
  will-change:transform;
}
@keyframes drift {
  0%   { transform:translate(-8%, -6%); }
  50%  { transform:translate(6%, 4%); }
  100% { transform:translate(-4%, 8%); }
}
@media (prefers-reduced-motion:reduce){ .bg-glow{ animation:none; transform:none; } }

.wrap { max-width:var(--maxw); margin:0 auto; padding:0 clamp(24px, 5vw, 64px); }

/* ---- top bar ---- */
header {
  position:sticky; top:0; z-index:40;
  background:rgba(0,0,0,.82);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.bar {
  max-width:var(--maxw); margin:0 auto; padding:18px clamp(24px, 5vw, 64px);
  display:flex; align-items:center; justify-content:space-between;
}
.logo { font-weight:700; letter-spacing:.22em; font-size:27px; color:#FFFFFF; text-decoration:none; }
.nav { display:flex; align-items:center; gap:28px; font-size:13px; letter-spacing:.04em; color:#FFFFFF; }
.nav a { color:var(--text); text-decoration:none; transition:color .2s; }
.nav a:hover { color:var(--gold); }
.nav a.active { color:var(--gold); }

@media (min-width:761px){
  .nav a.nav-cta {
    background:var(--gold); color:#000; padding:8px 18px;
    border:1px solid var(--gold); border-radius:2px;
    font-weight:500; transition:background .2s, color .2s;
  }
  .nav a.nav-cta:hover { background:transparent; color:var(--gold); }
}
.back { font-size:13px; color:#FFFFFF; text-decoration:none; letter-spacing:.03em; }
.back:hover { color:var(--gold); }

.nav-toggle { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px; }
.nav-toggle-bar { display:block; width:24px; height:2px; background:var(--gold); transition:transform .25s, opacity .25s; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:760px){
  .nav-toggle{ display:flex; }
  .nav{
    display:none; position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:flex-start; gap:0;
    background:var(--panel); border-bottom:1px solid var(--line);
    padding:8px 8vw 20px;
  }
  .nav.open{ display:flex; }
  .nav a{ padding:14px 0; width:100%; border-bottom:1px solid var(--line2); font-size:15px; }
  .nav a:last-child{ border-bottom:none; }
}

@keyframes pulse {
  0%   { box-shadow:0 0 0 0 rgba(201,162,39,.55); }
  70%  { box-shadow:0 0 0 7px rgba(201,162,39,0); }
  100% { box-shadow:0 0 0 0 rgba(201,162,39,0); }
}

/* ---- hero ---- */
.hero { padding-top:70px; padding-bottom:6vh; position:relative; }
.hero-grid {
  display:grid; grid-template-columns:1.15fr .85fr; gap:60px; align-items:center;
  min-height:calc(100vh - 61px - 52px - 18vh);
  padding-bottom:3vh;
}
@media (max-width:960px){ .hero-grid{ grid-template-columns:1fr; min-height:auto; padding-top:2vh; } }

.eyebrow {
  color:var(--gold);
  font-size:13px; letter-spacing:.28em; text-transform:uppercase;
  font-weight:500;
  margin-bottom:26px;
  display:flex; align-items:center; gap:14px;
}
.hero .wrap > .eyebrow { margin-bottom:20px; }
.eyebrow::before { content:""; width:38px; height:1px; background:var(--gold); }
h1.brand {
  font-size:clamp(35px, 6vw, 50px);
  font-weight:700; letter-spacing:.06em; line-height:.98;
}
.brand .thin { color:var(--gold); }
.rot-word { color:var(--gold); display:inline-block; }
@keyframes wordIn { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion:reduce){ .rot-word{ animation:none!important; } }
.lede { margin-top:30px; font-size:clamp(17px,2.1vw,21px); color:var(--tag); font-weight:400; }
.cta-row { margin-top:44px; display:flex; gap:16px; flex-wrap:wrap; }
.btn {
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 26px; font-size:14px; letter-spacing:.04em;
  text-decoration:none; font-weight:500;
  border:1px solid var(--gold);
  transition:all .2s;
}
.btn.primary { background:var(--gold); color:#000; }
.btn.primary:hover { background:transparent; color:var(--gold); }
.btn.ghost { color:var(--text); border-color:var(--line); }
.btn.ghost:hover { border-color:var(--gold); color:var(--gold); }

/* ---- terminal panel ---- */
.term {
  background:var(--panel); border:1px solid var(--line);
  font-family:var(--mono); font-size:13px;
  box-shadow:0 30px 80px -30px rgba(0,0,0,.8);
}
.term-bar {
  display:flex; align-items:center; gap:8px;
  padding:12px 16px; border-bottom:1px solid var(--line);
}
.term-bar span { width:9px; height:9px; border-radius:50%; background:var(--line); }
.term-title {
  margin-left:8px; color:var(--muted); font-size:11.5px; letter-spacing:.03em;
}
.term-body { padding:22px 20px; display:flex; flex-direction:column; gap:11px; min-height:300px; justify-content:flex-start; }
.term-body .line { color:var(--tag); }
.term-body .prompt { color:var(--gold); margin-right:8px; }
.term-body .line.ok { color:#e8e8e8; }
.term-body .line.ok::before { content:"✓ "; color:var(--gold); }
.term-body .line.active { color:var(--text); }
.term-body .line.active::before { content:"▸ "; color:var(--gold); }
.term-body .line.done { color:#e8e8e8; }
.term-body .line.done::before { content:"▸ "; color:var(--gold); }
.term-body .typed { color:var(--tag); }
.cursor { display:inline-block; color:var(--gold); animation:blink 1s step-end infinite; }
@keyframes blink { 0%,100% { opacity:1; } 50% { opacity:0; } }
.term-status {
  display:flex; align-items:center; gap:9px;
  padding:14px 20px; border-top:1px solid var(--line);
  font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
}
.term-status .dot { width:6px; height:6px; border-radius:50%; background:var(--gold); animation:pulse 2.2s infinite; }
.term-status .dot.ready { background:var(--green); animation:none; }

/* ---- marquee ---- */
.marquee {
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  overflow:hidden; white-space:nowrap; background:var(--panel);
}
.marquee-track {
  display:inline-flex; gap:26px; padding:14px 0;
  animation:marquee 32s linear infinite;
}
.marquee-track span {
  font-family:var(--mono); font-size:12.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); display:inline-flex; gap:26px;
}
.marquee-track span em { color:var(--gold); font-style:normal; }
@keyframes marquee { from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .marquee-track{ animation:none; } }

/* ---- section frame ---- */
section.block { padding:56px 0; border-top:1px solid var(--line); position:relative; }
@media (max-width:760px){ section.block{ padding:44px 0; } }
.sec-label {
  color:var(--gold); font-size:12px; letter-spacing:.24em; font-family:var(--mono);
  text-transform:uppercase; font-weight:500; margin-bottom:34px;
  display:flex; align-items:center; gap:12px;
}
.sec-label .idx { color:var(--muted); }
h2 { font-size:clamp(26px,3.4vw,40px); font-weight:600; letter-spacing:.01em; margin-bottom:10px; }
.name-note { font-family:var(--mono); font-size:14px; color:var(--muted); margin:0 0 20px; letter-spacing:.01em; }
.name-note .name { color:var(--gold); }
.sec-intro { color:var(--tag); font-size:17px; background:transparent; }

/* ---- services grid ---- */
.grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line);
        margin-top:48px; border:1px solid var(--line); overflow:hidden; }
@media (max-width:820px){ .grid{ grid-template-columns:1fr; } }
.card { background:var(--panel); padding:34px 30px; position:relative; transition:background .25s; }
.card::before {
  content:""; position:absolute; top:0; left:0; right:0; height:2px;
  background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .3s;
}
.card:hover::before { transform:scaleX(1); }
.card:hover { background:#111111; }
.card .num { color:var(--gold); font-size:13px; letter-spacing:.1em; font-weight:500; font-family:var(--mono); }
.card .icon { display:block; width:32px; height:32px; margin-bottom:16px; color:var(--gold); }
.card .icon svg { width:100%; height:100%; stroke:currentColor; stroke-width:1.5; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.card h3 { font-size:19px; font-weight:600; margin:16px 0 10px; }
.card p  { color:var(--tag); font-size:14.5px; }
a.card { text-decoration:none; color:inherit; display:block; }

/* ---- portfolio ---- */
.portfolio-grid { margin-top:48px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
@media (max-width:960px){ .portfolio-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .portfolio-grid{ grid-template-columns:1fr; } }
.pf-card { background:var(--bg); display:flex; flex-direction:column; transition:background .25s; }
.pf-card:hover { background:var(--panel2); }
.pf-shot { aspect-ratio:16/10; border-bottom:1px solid var(--line); }
.pf-body { padding:22px 24px 28px; }
.pf-tag { font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-bottom:10px; }
.pf-body .name { font-weight:600; font-size:18px; letter-spacing:.02em; margin-bottom:8px; }
.pf-body .desc { color:var(--tag); font-size:14px; }

/* ---- compliance ---- */
.comply { margin-top:46px; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media (max-width:820px){ .comply{ grid-template-columns:1fr; } }
.badge { background:var(--bg); border:1px solid var(--line); padding:28px 26px; transition:border-color .25s; }
.badge:hover { border-color:var(--gold-dim); }
.badge .k { color:var(--gold); font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:500; font-family:var(--mono); }
.badge h4 { font-size:17px; font-weight:600; margin:14px 0 8px; }
.badge p { color:var(--tag); font-size:14px; }
.disclaimer { margin-top:26px; color:var(--muted); font-size:12.5px; }
.commitments h3,
.compliance-block h3 { font-size:20px; font-weight:600; color:var(--gold); margin-bottom:14px; letter-spacing:.01em; }
.block .compliance-block { margin-top:56px; }

/* ---- contact ---- */
.contact-block { text-align:left; }
.contact-block .big { font-size:clamp(15px,3.4vw,18px); font-weight:600; margin-top:8px; font-family:var(--mono); display:flex; align-items:center; gap:2px; }
.contact-block a.mail { color:var(--gold); text-decoration:none; }
.contact-block a.mail:hover { text-decoration:underline; }
.contact-form { margin-top:36px; display:flex; flex-direction:column; gap:16px; transition:opacity .2s ease; }
.form-row { display:flex; gap:16px; flex-wrap:wrap; }
.form-row input { flex:1; min-width:200px; }
.contact-form input, .contact-form textarea {
  background:var(--panel); border:1px solid var(--line); color:var(--text);
  font-family:inherit; font-size:15px; padding:13px 16px; width:100%;
  transition:border-color .2s;
}
.contact-form input::placeholder, .contact-form textarea::placeholder { color:var(--muted); }
.contact-form input:focus, .contact-form textarea:focus { outline:none; border-color:var(--gold); }
.contact-form textarea { resize:vertical; }
.contact-form .btn { align-self:flex-start; cursor:pointer; border:1px solid var(--gold); }
.form-note { font-size:12.5px; color:var(--muted); margin-top:4px; }
.contact-form[hidden] { display:none; }
.form-success.term { background:var(--panel); border:1px solid var(--line); box-shadow:0 30px 80px -30px rgba(0,0,0,.8); margin-top:24px; max-width:560px; transition:opacity .3s ease; }
.form-success .term-body { min-height:auto; }
.term-body .line.arrow::before { content:"→ "; color:var(--gold); }
.term-body .line.dim { color:var(--muted); margin-top:6px; }
#form-success .line.ok::before { color:var(--green); }

/* ---- footer ---- */
footer { background:var(--bg); border-top:1px solid var(--line); padding:40px 0 60px; font-size:12.5px; color:var(--muted); }
.foot-row { display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; align-items:center; }
.foot-links { display:flex; gap:22px; flex-wrap:wrap; }
.foot-links a { color:var(--muted); text-decoration:none; }
.foot-links a:hover { color:var(--gold); }
.foot-legal { margin-top:22px; line-height:1.7; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.foot-status { display:flex; align-items:center; gap:8px; font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.foot-status .dot { width:6px; height:6px; border-radius:50%; background:var(--green); animation:pulse 2.2s infinite; }

/* ---- legal pages ---- */
.hd { padding:70px 0 40px; }
.updated { color:var(--muted); font-size:13px; margin-top:16px; font-family:var(--mono); }
main.legal { padding-bottom:90px; }
main.legal section { padding:26px 0; border-top:1px solid var(--line); }
main.legal h2 { font-size:20px; font-weight:600; color:var(--gold); margin-bottom:14px; letter-spacing:.01em; }
main.legal h3 { font-size:15px; font-weight:600; margin:18px 0 6px; }
main.legal p { color:var(--tag); font-size:17px; margin-bottom:12px; }
main.legal ul { color:var(--tag); font-size:17px; margin:0 0 12px 20px; }
main.legal li { margin-bottom:7px; }
main.legal strong { color:var(--text); font-weight:600; }
main.legal table { width:100%; border-collapse:collapse; margin:10px 0 16px; font-size:14px; }
main.legal td, main.legal th { border:1px solid var(--line); padding:10px 12px; text-align:left; vertical-align:top; color:var(--tag); }
main.legal th { color:var(--text); font-weight:600; background:var(--panel); }

/* ---- about page ---- */
.facts { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin:40px 0; }
.fact { background:var(--bg); padding:28px 30px; }
.fact .n { font-family:var(--mono); font-size:32px; font-weight:600; color:var(--gold); line-height:1; }
.fact .l { color:var(--tag); font-size:14px; margin-top:8px; }
@media (max-width:760px){ .facts{ grid-template-columns:1fr; } }

main.legal section.compliance-block { padding:64px 0 56px; margin-top:8px; }

/* ---- steps (werkwijze/approach) ---- */
.steps { margin-top:48px; display:grid; grid-template-columns:1fr 1fr; gap:40px 48px; }
.step { display:grid; grid-template-columns:64px 1fr; gap:28px; padding-bottom:40px; position:relative; }
.step-marker { display:flex; flex-direction:column; align-items:center; gap:12px; }
.step-num { font-family:var(--mono); font-size:22px; font-weight:600; color:var(--gold); line-height:1; }
.step-icon { width:28px; height:28px; color:var(--gold); }
.step-icon svg { width:100%; height:100%; stroke:currentColor; stroke-width:1.5; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.step-body h2 { font-size:20px; font-weight:600; color:var(--text); margin-bottom:10px; }
.step-body p { color:var(--tag); font-size:15.5px; max-width:640px; }
.step-meta { color:var(--gold); font-size:11.5px; letter-spacing:.18em; font-family:var(--mono); text-transform:uppercase; font-weight:500; margin-bottom:10px; }
.step-result { margin-top:12px; }
.step-result strong { color:var(--text); }
@media (max-width:760px){ .steps{ grid-template-columns:1fr; } }
@media (max-width:620px){ .step{ grid-template-columns:48px 1fr; gap:20px; } }

/* ---- cookie banner ---- */
.cookie { position:fixed; left:0; right:0; bottom:0; z-index:60; background:var(--panel); border-top:1px solid var(--gold); padding:22px clamp(24px, 5vw, 64px); display:none; }
.cookie.show { display:block; }
.cookie-inner { max-width:var(--maxw); margin:0 auto; display:flex; gap:26px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.cookie p { font-size:13.5px; color:var(--tag); max-width:640px; }
.cookie p a { color:var(--gold); }
.cookie-btns { display:flex; gap:12px; flex-wrap:wrap; }
.cookie-btns button {
  font-family:inherit; cursor:pointer;
  padding:11px 22px; font-size:13px; letter-spacing:.03em;
  border:1px solid var(--line); background:transparent; color:var(--text);
  transition:all .2s;
}
.cookie-btns .accept { background:var(--gold); color:#000; border-color:var(--gold); }
.cookie-btns .accept:hover { background:transparent; color:var(--gold); }
.cookie-btns .decline:hover { border-color:var(--gold); color:var(--gold); }

/* ---- reveal-on-scroll ---- */
[data-reveal] { opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
[data-reveal].in { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ [data-reveal]{ opacity:1; transform:none; transition:none; } }

:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

/* ---- language switcher ---- */
.bar-right { display:flex; align-items:center; gap:24px; }
.lang-link {
  font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--muted); text-decoration:none;
  border:1px solid var(--line); border-radius:4px;
  padding:5px 10px; transition:all .2s;
}
.lang-link:hover { color:var(--gold); border-color:var(--gold-dim); }
.nav .lang-link { margin-left:4px; }
