@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800;900&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f1f5f9;--surface: #ffffff;--surface2: #f8fafc;--border: #e2e8f0;--accent: #2563eb;--accent-light: #eff6ff;--accent2: #16a34a;--accent2-light: #f0fdf4;--muted: #64748b;--text: #1e293b;--radius: 12px;--shadow: 0 1px 3px rgba(0,0,0,.07), 0 4px 16px rgba(0,0,0,.08)}html{scroll-behavior:smooth}body{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}h1,h2{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:0 2.5rem;height:58px;background:#ffffffeb;-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);border-bottom:1px solid var(--border)}nav .logo-wrap{display:flex;align-items:center;gap:.65rem;text-decoration:none}nav .logo-badge{width:32px;height:32px;border-radius:7px;background:#0f172a;display:flex;align-items:center;justify-content:center;font-family:SF Mono,Fira Code,Fira Mono,Roboto Mono,monospace;font-weight:700;font-size:.72rem;color:#4ade80;letter-spacing:-.01em}nav .logo-text{font-family:SF Mono,Fira Code,Fira Mono,Roboto Mono,monospace;font-weight:700;font-size:.88rem;color:var(--text);letter-spacing:-.01em;white-space:nowrap}nav .logo-text .logo-domain{color:var(--accent)}nav .nav-menu{display:contents}nav ul{list-style:none;display:flex;gap:.2rem}nav ul a{text-decoration:none;color:var(--muted);font-size:.8rem;font-weight:500;padding:.4rem .85rem;border-radius:7px;transition:background .15s,color .15s;display:block}nav ul a:hover{background:var(--accent-light);color:var(--accent)}nav .nav-cta{text-decoration:none;font-size:.8rem;font-weight:600;color:#fff;background:var(--accent);padding:.45rem 1.1rem;border-radius:8px;transition:background .15s}nav .nav-cta:hover{background:#1d4ed8}.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;background:none;border:none;cursor:pointer;padding:4px}.nav-toggle span{display:block;height:2px;border-radius:2px;background:var(--muted);transition:transform .25s,opacity .25s}.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle.open span:nth-child(2){opacity:0}.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media (max-width: 720px){nav{padding:0 1.2rem}.nav-toggle{display:flex}nav .nav-menu{display:none;position:fixed;top:58px;left:0;right:0;flex-direction:column;background:#fffffff7;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);padding:.5rem .8rem .8rem}nav.menu-open .nav-menu{display:flex}nav ul{flex-direction:column;gap:0}nav ul li a{padding:.7rem .9rem;font-size:.9rem}nav .nav-cta{border-radius:8px;text-align:center;margin:.5rem .4rem .2rem}}#hero-wrap{position:relative;overflow:hidden;background:linear-gradient(160deg,#1e3a5f,#1a4a7a 60%,#1e3a5f);min-height:100vh;display:flex;align-items:center}#hero-wrap:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background-image:radial-gradient(rgba(255,255,255,.12) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}.hero-blob{position:absolute;border-radius:50%;filter:blur(120px);pointer-events:none;z-index:1}.hero-blob-1{width:600px;height:600px;background:radial-gradient(circle,rgba(255,255,255,.12) 0%,transparent 70%);top:-160px;right:-100px}.hero-blob-2{width:500px;height:500px;background:radial-gradient(circle,rgba(245,158,11,.14) 0%,transparent 70%);bottom:-100px;left:10%}#hero{position:relative;z-index:1;width:100%;max-width:1040px;margin:0 auto;padding:7rem 2.5rem 5rem;display:grid;grid-template-columns:1fr auto;gap:4rem;align-items:center}@media (max-width: 720px){#hero{grid-template-columns:1fr;padding:5rem 1.5rem 3rem}.hero-avatar-mobile{display:none}.hero-visual{width:100%;min-width:0;flex-shrink:unset}.avatar-card{width:100%;max-width:100%;box-sizing:border-box}.hero-visual .cert-card-mini{display:none}.avatar-card{text-align:left;display:flex;align-items:center;gap:1rem;padding:1.2rem 1.4rem;width:100%}.avatar-photo{width:72px;height:72px;margin:0;flex-shrink:0}.avatar-text{display:flex;flex-direction:column;min-width:0;overflow:hidden}.avatar-text .avatar-name,.avatar-text .avatar-role{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.hero-avatar-mobile{display:none;width:90px;height:90px;border-radius:50%;object-fit:cover;object-position:center top;margin-bottom:1.4rem;box-shadow:0 0 0 4px #2563eb40,0 0 0 8px #2563eb1a}.hero-tag{display:inline-flex;align-items:center;gap:.45rem;font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#86efac;background:#86efac1a;border:1px solid rgba(134,239,172,.25);border-radius:20px;padding:.28rem .9rem;margin-bottom:1.4rem}.hero-tag span{width:6px;height:6px;border-radius:50%;background:#86efac;display:inline-block;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}h1{font-size:clamp(2.4rem,5vw,3.8rem);font-weight:900;line-height:1.08;letter-spacing:-.03em;margin-bottom:.6rem;color:#f8fafc}h1 .name-accent{background:linear-gradient(90deg,#60a5fa,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:clamp(.95rem,2vw,1.15rem);color:#94a3b8;margin-bottom:1rem;font-weight:400}.hero-location{font-size:.83rem;color:#64748b;margin-bottom:2.2rem;display:flex;align-items:center;gap:.4rem}.hero-location svg{width:13px;height:13px;fill:#64748b;flex-shrink:0}.hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:3rem}.btn{text-decoration:none;border-radius:10px;padding:.65rem 1.4rem;font-size:.875rem;font-weight:600;transition:all .2s;display:inline-flex;align-items:center;gap:.45rem}.btn-primary{background:#2563eb;color:#fff;box-shadow:0 2px 12px #2563eb66}.btn-primary:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 20px #2563eb80}.btn-secondary{background:#ffffff14;color:#cbd5e1;border:1px solid rgba(255,255,255,.14);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.btn-secondary:hover{background:#ffffff24;color:#f1f5f9}.hero-stats{display:flex;gap:2rem;flex-wrap:wrap}.stat-num{font-size:1.6rem;font-weight:800;color:#f8fafc;line-height:1}.stat-label{font-size:.75rem;color:#64748b;margin-top:.2rem}.hero-visual{width:100%;flex-shrink:0;display:flex;flex-direction:column;gap:1rem}.avatar-card{background:#ffffff12;border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:2rem 1.5rem;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.avatar-photo{width:165px;height:165px;border-radius:50%;object-fit:cover;object-position:center top;margin:0 auto 1rem;display:block;box-shadow:0 0 0 4px #2563eb40,0 0 0 8px #2563eb1a}.avatar-name{font-size:.95rem;font-weight:700;color:#f8fafc}.avatar-role{font-size:.75rem;color:#94a3b8;margin-top:.2rem}.avatar-location-tag{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;color:#64748b;margin-top:.6rem}.avatar-location-tag svg{width:11px;height:11px;fill:#64748b}.tech-chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1rem}.chip{font-size:.7rem;font-weight:600;padding:.2rem .65rem;border-radius:20px;background:#2563eb26;border:1px solid rgba(37,99,235,.25);color:#93c5fd}.chip.g{background:#10b9811f;border-color:#10b98140;color:#6ee7b7}.chip.p{background:#7c3aed1f;border-color:#7c3aed40;color:#c4b5fd}.cert-card-mini{background:#ffffff12;border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:1rem 1.2rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;gap:.8rem}.cert-icon{width:38px;height:38px;border-radius:10px;flex-shrink:0;background:linear-gradient(135deg,#f59e0b,#d97706);display:flex;align-items:center;justify-content:center;font-size:1rem}.cert-card-mini .cert-text-name{font-size:.78rem;font-weight:700;color:#f8fafc}.cert-card-mini .cert-text-issuer{font-size:.68rem;color:#94a3b8;margin-top:.1rem}section{padding:5rem 2.5rem}.container{max-width:900px;margin:0 auto}.section-label{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:.3rem}h2{font-size:1.85rem;font-weight:800;margin-bottom:1.5rem;letter-spacing:-.02em;color:var(--text)}h2 em{font-style:normal;color:var(--muted);font-weight:400}#about{background:var(--surface)}#about .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem}@media (max-width: 620px){#about .about-grid{grid-template-columns:1fr}}.about-text p{color:var(--muted);margin-bottom:1rem;font-size:.93rem}.about-cards{display:flex;flex-direction:column;gap:.9rem}.card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.3rem;box-shadow:var(--shadow)}.card-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.4rem}.card-value{font-size:.93rem;color:var(--text);font-weight:500}#skills{background:var(--bg)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1.3rem}.skill-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem 1.3rem;box-shadow:var(--shadow)}.skill-group-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.75rem;font-weight:700}.tags{display:flex;flex-wrap:wrap;gap:.4rem}.tag{font-size:.78rem;font-weight:500;padding:.22rem .72rem;border-radius:20px;background:var(--accent-light);border:1px solid rgba(37,99,235,.18);color:var(--accent)}.tag.green{background:var(--accent2-light);border-color:#16a34a2e;color:var(--accent2)}.tag.orange{background:#ea580c1a;border-color:#ea580c40;color:#ea580c}.tag.cyan{background:#06b6d41a;border-color:#06b6d440;color:#0891b2}.tag.gray{background:#f8fafc;border-color:var(--border);color:var(--muted)}.tag.ai{background:#d946ef1a;border-color:#d946ef40;color:#c026d3}#experience{background:var(--surface)}.timeline{position:relative;padding-left:1.6rem}.timeline:before{content:"";position:absolute;left:0;top:.6rem;bottom:0;width:2px;background:linear-gradient(180deg,var(--accent) 0%,var(--border) 100%)}.timeline-item{position:relative;margin-bottom:2.6rem}.timeline-item:before{content:"";position:absolute;left:calc(-1.6rem - 4px);top:.48rem;width:10px;height:10px;border-radius:50%;background:var(--surface);border:2px solid var(--border)}.timeline-item:first-child:before{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 3px #2563eb26}.timeline-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:1.3rem 1.5rem;box-shadow:var(--shadow);transition:box-shadow .2s}.timeline-card:hover{box-shadow:0 4px 20px #00000017}.job-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:.3rem}.job-title{font-size:1rem;font-weight:700;color:var(--text);margin:0}.job-company{color:var(--accent);font-weight:600;font-size:.9rem;margin-top:.1rem}.job-meta{font-size:.78rem;color:var(--muted);text-align:right;line-height:1.5}.job-desc{margin-top:.7rem;font-size:.875rem;color:var(--muted)}.job-bullets{margin-top:.5rem;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:.35rem}.job-bullets li{font-size:.875rem;color:var(--muted);padding-left:1.1rem;position:relative;line-height:1.5}.job-bullets li:before{content:"→";position:absolute;left:0;color:var(--accent);font-size:.75rem;top:.05em}.job-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.75rem}.job-tag{font-size:.68rem;font-weight:600;letter-spacing:.04em;padding:.18rem .6rem;border-radius:20px}.job-tag.cloud{background:var(--accent2-light);color:var(--accent2);border:1px solid rgba(22,163,74,.18)}.job-tag.web{background:var(--accent-light);color:var(--accent);border:1px solid rgba(37,99,235,.18)}#projects{background:var(--bg)}.projects-intro{color:#94a3b8;margin-bottom:2rem;max-width:640px;line-height:1.7}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.4rem}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.8rem;transition:box-shadow .2s,transform .2s}.project-card:hover{box-shadow:0 6px 24px #0000001c;transform:translateY(-2px)}.project-kind{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.2rem .65rem;border-radius:20px;display:inline-block;width:fit-content}.project-kind.cloud{background:var(--accent2-light);color:var(--accent2);border:1px solid rgba(22,163,74,.18)}.project-kind.web{background:var(--accent-light);color:var(--accent);border:1px solid rgba(37,99,235,.18)}.project-kind.fullstack{background:#7c3aed14;color:#7c3aed;border:1px solid rgba(124,58,237,.18)}.project-title{font-size:1rem;font-weight:700;color:var(--text);line-height:1.3}.project-desc{font-size:.875rem;color:var(--muted);line-height:1.6;flex:1}.project-stack{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.2rem}.project-stack span{font-size:.72rem;font-weight:500;padding:.18rem .6rem;border-radius:20px;background:var(--surface2);border:1px solid var(--border);color:var(--muted)}.project-note{font-size:.72rem;color:#94a3b8;font-style:italic;margin-top:.2rem}#certs-edu{background:var(--bg)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:3rem}@media (max-width: 620px){.two-col{grid-template-columns:1fr}}.cert-item,.edu-item{margin-bottom:1.3rem}.cert-card,.edu-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.3rem;box-shadow:var(--shadow);display:flex;gap:.9rem;align-items:flex-start}.cert-icon-box{width:40px;height:40px;border-radius:10px;flex-shrink:0;background:linear-gradient(135deg,#fef3c7,#fde68a);display:flex;align-items:center;justify-content:center;font-size:1.1rem}.edu-icon-box{width:40px;height:40px;border-radius:10px;flex-shrink:0;background:linear-gradient(135deg,#ede9fe,#c4b5fd);display:flex;align-items:center;justify-content:center;font-size:1.1rem}.cert-name{font-weight:700;font-size:.9rem;color:var(--text)}.cert-issuer{font-size:.78rem;color:var(--accent);margin-top:.15rem;font-weight:500}.cert-badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#b45309;background:#fef3c7;border:1px solid #fde68a;border-radius:20px;padding:.18rem .6rem;margin-top:.4rem}.edu-degree{font-weight:700;font-size:.9rem;color:var(--text)}.edu-school{font-size:.8rem;color:var(--muted);margin-top:.1rem}.edu-period{font-size:.73rem;color:var(--muted);margin-top:.15rem}.werkwijze-arrow{display:flex;justify-content:center;margin:.15rem 0;color:var(--accent);opacity:.5}#contact{text-align:center;background:linear-gradient(160deg,#071525,#1a4a7a 35%,#2563a8,#1a3f6b 75%,#071525);position:relative;overflow:hidden}#contact:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,255,255,.12) 1px,transparent 1px);background-size:28px 28px}#contact .container{position:relative;z-index:1}#contact .section-label{color:#86efac}#contact h2{color:#f8fafc}#contact p{color:#94a3b8;max-width:460px;margin:0 auto 2.2rem}.contact-links{display:flex;justify-content:center;flex-wrap:wrap;gap:1rem}.btn-contact-primary{background:#2563eb;color:#fff;box-shadow:0 2px 16px #2563eb80;border:none}.btn-contact-primary:hover{background:#1d4ed8;transform:translateY(-1px)}.btn-contact-secondary{background:#ffffff14;color:#cbd5e1;border:1px solid rgba(255,255,255,.14)}.btn-contact-secondary:hover{background:#ffffff24;color:#f1f5f9}.contact-form{max-width:560px;margin:0 auto;text-align:left}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 500px){.form-row{grid-template-columns:1fr}}.form-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.form-group label{font-size:.78rem;font-weight:600;color:#94a3b8;letter-spacing:.03em}.form-group input,.form-group textarea{background:#ffffff12;border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:.65rem .9rem;font-size:.9rem;color:#f1f5f9;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s;resize:vertical}.form-group input::placeholder,.form-group textarea::placeholder{color:#94a3b8}.form-group input:focus,.form-group textarea:focus{border-color:#2563eb99;box-shadow:0 0 0 3px #2563eb33}.contact-form-footer{display:flex;align-items:center;flex-wrap:wrap;gap:1rem}.contact-form-footer .btn{flex-shrink:0}.contact-form-footer .btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.form-feedback{font-size:.85rem;margin:0}.form-feedback--success{color:#86efac}.form-feedback--error{color:#fca5a5}.form-feedback--error a{color:#93c5fd}footer{text-align:center;padding:1.8rem;font-size:.78rem;color:#475569;border-top:1px solid var(--border);background:var(--surface)}
