:root{--ink:#111827;--muted:#667085;--paper:#f7f7f4;--white:#fff;--line:#dfe3e8;--blue:#1f6feb;--cyan:#19a7ae;--orange:#f04b2f;--dark:#0d1117;--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:16px/1.65 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.wrap{width:min(var(--max),calc(100% - 40px));margin:auto}.nav{position:sticky;top:0;z-index:30;background:rgba(247,247,244,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.nav .wrap{height:72px;display:flex;align-items:center;justify-content:space-between}.brand{font-weight:900;letter-spacing:-.04em;font-size:22px}.brand span{color:var(--blue)}.navlinks{display:flex;gap:26px;font-size:14px;font-weight:700}.menu{display:none;border:0;background:none;font-size:24px}.hero{min-height:78vh;display:grid;align-items:center;padding:70px 0}.hero-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:70px;align-items:center}.eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:800;color:var(--blue)}h1{font-size:clamp(52px,8vw,96px);line-height:.92;letter-spacing:-.065em;margin:18px 0 24px}h2{font-size:clamp(34px,5vw,58px);line-height:1.02;letter-spacing:-.045em;margin:12px 0 24px}h3{font-size:23px;letter-spacing:-.025em;margin:0 0 10px}.lead{font-size:clamp(19px,2.2vw,27px);max-width:760px;color:#374151}.muted{color:var(--muted)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 17px;border-radius:999px;border:1px solid var(--ink);font-size:14px;font-weight:800}.btn.primary{background:var(--ink);color:#fff}.btn.light{border-color:var(--line);background:#fff}.portrait{aspect-ratio:4/5;border-radius:28px;background:linear-gradient(145deg,#e8edf2,#cfd7df);display:grid;place-items:center;overflow:hidden;box-shadow:0 25px 80px rgba(17,24,39,.12)}.portrait.placeholder:after{content:"Profilfoto\A bestehendes Bild einsetzen";white-space:pre;text-align:center;color:#667085;font-weight:700}.section{padding:100px 0;border-top:1px solid var(--line)}.section.dark{background:var(--dark);color:#f8fafc}.section-head{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:42px}.section-head p{max-width:600px}.grid{display:grid;gap:18px}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;min-height:190px;transition:.25s transform,.25s box-shadow}.card:hover{transform:translateY(-4px);box-shadow:0 18px 50px rgba(17,24,39,.08)}.dark .card{background:#141a22;border-color:#26303d}.project-card{min-height:290px;display:flex;flex-direction:column;justify-content:space-between}.project-card .no{font:700 12px/1 ui-monospace,monospace;color:#8b98a7}.project-card h3{font-size:30px}.tags{display:flex;gap:7px;flex-wrap:wrap}.tag{border:1px solid currentColor;border-radius:999px;padding:5px 9px;font-size:11px;opacity:.75}.timeline{max-width:850px}.job{display:grid;grid-template-columns:120px 1fr;gap:28px;padding:28px 0;border-top:1px solid var(--line)}.job time{font-weight:900;color:var(--blue)}.skills{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.metric{font-size:42px;font-weight:900;letter-spacing:-.05em}.footer{padding:60px 0;background:#0a0d12;color:#c9d1d9}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}.project-hero{padding:90px 0 70px;background:var(--dark);color:#fff}.project-hero h1{font-size:clamp(54px,9vw,110px)}.project-hero .lead{color:#b9c3cf}.diagram{font:600 13px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre;overflow:auto;background:#0b1220;color:#dbeafe;padding:28px;border-radius:18px}.feature-image{border-radius:20px;border:1px solid var(--line);box-shadow:0 20px 60px rgba(17,24,39,.08)}.steps{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.step{padding:18px 10px;background:#fff;border:1px solid var(--line);border-radius:14px;text-align:center;font-weight:800;font-size:12px}.step b{display:block;color:var(--orange);font-size:18px}.publication{display:flex;gap:20px;align-items:center}.publication img{width:150px;border-radius:8px;border:1px solid var(--line)}.note{border-left:4px solid var(--blue);padding:14px 18px;background:#edf5ff;border-radius:0 12px 12px 0}.reveal{opacity:0;transform:translateY(18px);transition:.65s}.reveal.visible{opacity:1;transform:none}@media(max-width:850px){.navlinks{display:none}.navlinks.open{display:flex;position:absolute;left:0;right:0;top:72px;padding:20px;background:var(--paper);flex-direction:column;border-bottom:1px solid var(--line)}.menu{display:block}.hero-grid,.grid-3,.grid-2,.skills,.footer-grid{grid-template-columns:1fr}.hero{min-height:auto}.portrait{max-width:360px}.section{padding:70px 0}.section-head{display:block}.job{grid-template-columns:1fr;gap:5px}.steps{grid-template-columns:repeat(2,1fr)}.publication{align-items:flex-start}.publication img{width:110px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
