@font-face{font-family:Bricolage Grotesque;src:url(/fonts/bricolage-latin.woff2) format("woff2");font-weight:300 800;font-display:swap}@font-face{font-family:"Source Sans 3";src:url(/fonts/sourcesans3-latin.woff2) format("woff2");font-weight:300 700;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Regular.woff2) format("woff2");font-weight:400;font-display:swap}:root{--bg: #F9F8F3;--card: #FFFEF9;--ink: #141210;--muted-text: #5F594C;--border: #E7E2D3;--teal: #0E7C85;--gold: #DE9C36;--shadow-card: 0 1px 2px rgba(20, 18, 16, .04), 0 10px 30px rgba(20, 18, 16, .06);--shadow-card-hover: 0 2px 4px rgba(20, 18, 16, .05), 0 18px 44px rgba(20, 18, 16, .1);--pad-x: max(clamp(1.5rem, 6vw, 4.5rem), env(safe-area-inset-left));color-scheme:light only}*{margin:0;padding:0;box-sizing:border-box}html{background-color:var(--bg);overflow-x:hidden}body{font-family:"Source Sans 3",-apple-system,Helvetica Neue,sans-serif;font-size:1.0625rem;line-height:1.6;background-color:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent;overflow-x:hidden;min-height:100svh}::selection{background:var(--gold);color:#141210}:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:6px}img{max-width:100%;height:auto}.topnav{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;justify-content:center;align-items:center;background:var(--bg);border-bottom:1px solid var(--border);padding-block:.75rem;padding-top:max(.75rem,env(safe-area-inset-top))}.topnav-links{list-style:none;margin:0;padding:0;display:flex;gap:clamp(1.25rem,3vw,2.25rem)}.topnav-links a{font-family:"Source Sans 3",-apple-system,Helvetica Neue,sans-serif;font-size:.98rem;font-weight:400;color:var(--muted-text);text-decoration:none;padding:.4rem .85rem;border-radius:10px;display:inline-block;transition:color .2s ease,background .2s ease,transform .25s ease,box-shadow .25s ease}.topnav-links a.active{background:var(--card);color:var(--ink);box-shadow:0 3px 0 var(--border),0 7px 16px #1412101f;transform:rotate(-2deg) translateY(-2px)}.topnav-burger{display:none;width:38px;height:38px;border:none;background:transparent;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer}.topnav-burger span{width:20px;height:2px;background:var(--ink);border-radius:2px}.mobilemenu{position:fixed;inset:0;z-index:30;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}.mobilemenu[hidden]{display:none}.mobilemenu-close{position:absolute;top:max(.8rem,env(safe-area-inset-top));right:1rem;width:40px;height:40px;font-size:1.7rem;background:none;border:none;color:var(--ink);cursor:pointer;line-height:1}.mobilemenu-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:1.3rem}.mobilemenu-links a{font-family:"Source Sans 3",-apple-system,Helvetica Neue,sans-serif;font-size:1.3rem;font-weight:400;color:var(--muted-text);text-decoration:none;padding:.5rem 1.2rem;border-radius:10px;transition:background .2s ease,color .2s ease,transform .25s ease,box-shadow .25s ease}.mobilemenu-links a.active{background:var(--card);color:var(--ink);box-shadow:0 3px 0 var(--border),0 8px 18px #14121024;transform:rotate(-2deg)}.topnav-spacer{height:3.7rem}section[id]{scroll-margin-top:4.5rem}@media(max-width:700px)and (orientation:portrait){.topnav-links{display:none}.topnav-burger{display:flex}}@media(prefers-reduced-motion:reduce){.topnav-links a,.mobilemenu-links a{transition:none}}.shell{max-width:66rem;margin:0 auto;min-height:100svh;display:flex;flex-direction:column;gap:clamp(2.75rem,6vh,4rem);padding-top:clamp(3.5rem,10vh,6rem);padding-inline:var(--pad-x);padding-bottom:max(2.5rem,env(safe-area-inset-bottom))}.brand{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}.mark{width:76px;height:76px}.wordmark{font-family:Bricolage Grotesque,"Source Sans 3",sans-serif;font-size:clamp(2.1rem,6vw,3.2rem);font-weight:700;letter-spacing:-.02em;line-height:1.12}.brand-link{font-size:.95rem;font-weight:600;color:var(--teal);text-decoration:none;position:relative;display:inline-block;padding-bottom:2px}.brand-link:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--gold);transform-origin:left;animation:brandstrich 7s ease-in-out 1.2s infinite}@keyframes brandstrich{0%{transform:scaleX(0);transform-origin:left}16%,62%{transform:scaleX(1);transform-origin:left}80%,to{transform:scaleX(0);transform-origin:right}}.block{display:flex;flex-direction:column;gap:1.4rem}.label{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-text);text-align:center}.trenner{width:min(100%,20rem);margin-inline:auto;display:flex;align-items:center;gap:.8rem}.trenner:before,.trenner:after{content:"";flex:1;height:1px;background:linear-gradient(to right,transparent,var(--border))}.trenner:after{background:linear-gradient(to left,transparent,var(--border))}.trenner span{width:5px;height:5px;transform:rotate(45deg);background:var(--gold);border-radius:1px}.werke{display:grid;grid-template-columns:repeat(auto-fit,minmax(17.5rem,1fr));gap:1.5rem;align-items:stretch;max-width:52rem;width:100%;margin-inline:auto}#apps .werke,#techdemos .werke{max-width:58rem}@media(min-width:640px){#techdemos .werke{grid-template-columns:repeat(2,minmax(0,1fr));max-width:46rem}}.karte{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.9rem;padding-top:3.5rem;padding-inline:1.6rem;padding-bottom:1.8rem;border:1px solid var(--border);border-radius:20px;background:var(--card);box-shadow:var(--shadow-card);transition:box-shadow .25s ease,transform .25s ease}.badge{position:absolute;top:.9rem;right:.9rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-text);border:1px dashed var(--border);border-radius:999px;padding:.25rem .6rem}.art{width:112px;height:112px;border-radius:24px;filter:drop-shadow(0 6px 14px rgba(20,18,16,.16))}.karte h2{font-family:Bricolage Grotesque,"Source Sans 3",sans-serif;font-size:1.35rem;font-weight:600;letter-spacing:-.01em;line-height:1.2}.karte p{color:var(--muted-text);max-width:30ch;font-size:1rem}.links{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:auto;padding-top:.4rem}@supports (grid-template-rows: subgrid){.werke .karte{display:grid;grid-template-rows:subgrid;grid-row:span 4;row-gap:.9rem;justify-items:center;align-items:start;align-content:start}.werke .karte .links{margin-top:0;align-self:start}}.buch{max-width:26rem;width:100%;margin-inline:auto;padding-top:2rem}.cover{width:200px;height:200px;border-radius:16px;box-shadow:0 6px 18px #14121024}.seiten{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}.seite{display:flex;flex-direction:column;gap:.15rem;text-decoration:none;color:var(--ink);transition:transform .25s ease}.werkstatt-cta{margin-top:.6rem;display:flex;flex-direction:column;align-items:center;gap:.9rem;text-align:center}.werkstatt-cta p{color:var(--muted-text);max-width:34ch;font-size:1rem}.thumb{width:100%;aspect-ratio:16 / 10;object-fit:cover;border-radius:12px;border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow-card);margin-bottom:.7rem;transition:box-shadow .25s ease}.seite-name{font-weight:600;font-size:1rem;line-height:1.3}.seite-sub{color:var(--muted-text);font-size:.9rem;line-height:1.4}.kontakt{display:flex;flex-direction:column;align-items:center;gap:.7rem;text-align:center}.mail{font-size:clamp(1rem,2.2vw,1.1rem);font-weight:600;color:var(--teal);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--teal) 35%,transparent);padding-bottom:2px;transition:border-color .2s ease}.portfolio-link{display:inline-flex;align-items:center;min-height:44px;font-size:.95rem;color:var(--muted-text);text-decoration:none}@media(hover:hover){.karte:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.seite:hover{transform:translateY(-2px)}.seite:hover .thumb{box-shadow:var(--shadow-card-hover)}.pill:hover{background:color-mix(in srgb,var(--teal) 10%,transparent)}.pill-primary:hover{background:color-mix(in srgb,var(--gold) 88%,#141210)}.mail:hover{border-bottom-color:var(--teal)}.portfolio-link:hover{color:var(--ink)}.brand-link:hover:after{animation-play-state:paused;transform:scaleX(1);transform-origin:left}.topnav-links a:not(.active):hover{background:var(--card);color:var(--ink);box-shadow:0 2px 0 var(--border),0 4px 10px #14121012;transform:translateY(-1px)}.mobilemenu-links a:hover{color:var(--ink)}}.pill:active,.seite:active{transform:translateY(1px)}@media(prefers-reduced-motion:reduce){.karte,.pill,.seite,.thumb,.topnav-links a{transition:none}.brand-link:after{animation:none;transform:scaleX(1);opacity:.6}.karte:hover,.seite:hover,.topnav-links a:hover{transform:none}}.pill{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding-inline:1.15rem;border-radius:11px;border:1px solid var(--teal);color:var(--teal);background:transparent;text-decoration:none;font-weight:600;font-size:.95rem;transition:background .2s ease,color .2s ease,box-shadow .2s ease}.pill-primary{background:var(--gold);border-color:var(--gold);color:#141210;box-shadow:0 1px 2px #1412101a}.fuss{margin-top:auto;display:flex;justify-content:center;align-items:center;gap:.6rem;font-size:.9rem;color:var(--muted-text);padding-top:1rem}.fuss a{color:var(--muted-text);text-decoration:none;border-bottom:1px solid var(--border);padding-bottom:1px}@media(hover:hover){.fuss a:hover{color:var(--ink)}}@media(max-width:900px){.seiten{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.shell{gap:2.5rem}.seiten{gap:1.5rem}}@media(max-width:520px){.seiten{grid-template-columns:1fr}}
