body{font-family:ibm plex mono,SFMono-Regular,Consolas,liberation mono,Menlo,monospace!important}h1,h2,h3,h4,h5,h6{font-family:ibm plex mono,SFMono-Regular,Consolas,liberation mono,Menlo,monospace!important}nav,footer{font-family:ibm plex mono,SFMono-Regular,Consolas,liberation mono,Menlo,monospace!important}.navigation a,.navigation span,.navigation-title,.navigation-link{font-family:ibm plex mono,SFMono-Regular,Consolas,liberation mono,Menlo,monospace!important}code,pre{font-family:ibm plex mono,SFMono-Regular,Consolas,liberation mono,Menlo,monospace!important}body,h1,h2,h3,h4,h5,h6,code,pre,.navigation a,.navigation span{font-variant-ligatures:normal;font-feature-settings:"liga" 1,"calt" 1;-webkit-font-feature-settings:"liga" 1,"calt" 1;-moz-font-feature-settings:"liga" 1,"calt" 1;text-rendering:optimizeLegibility}.projects-intro{margin-bottom:3rem}.projects-intro p{font-size:2.6rem;line-height:1.8;color:var(--text-secondary,#666)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:2rem;margin-top:2rem}@media(max-width:768px){.projects-grid{grid-template-columns:1fr;gap:1.5rem}}.project-card{background:var(--card-bg,#fff);border:1px solid var(--border-color,#e1e4e8);border-radius:8px;padding:1.5rem;display:flex;flex-direction:column;transition:all .3s ease}.project-card:hover{transform:translateY(-4px);box-shadow:0 10px 30px rgba(0,0,0,.1);border-color:var(--accent-color,#1565c0)}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem}.project-name{font-size:2.8rem;font-weight:600;margin:0;flex:1}.project-name a{color:var(--accent-color,#1565c0);text-decoration:none;transition:color .2s ease}.project-name a:hover{color:var(--accent-color-hover,#0d47a1);text-decoration:underline}.project-language{display:flex;align-items:center;gap:.4rem;font-size:2rem;color:var(--text-secondary,#666);white-space:nowrap;flex-shrink:0}.language-dot{display:inline-block;width:12px;height:12px;border-radius:50%;background-color:var(--lang-color,#ccc)}.project-description{color:var(--text-secondary,#666);font-size:2.2rem;line-height:1.6;margin-bottom:1rem;flex-grow:1}.project-description.project-description-empty{font-style:italic;opacity:.6}.project-topics{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;min-height:28px}.topic-tag{display:inline-block;padding:.25rem .75rem;background:var(--tag-bg,#f1f8ff);color:var(--tag-color,#1565c0);border-radius:12px;font-size:1.7rem;font-weight:500;text-transform:lowercase;transition:all .2s ease}.topic-tag:hover{background:var(--tag-hover-bg,#0366d6);color:var(--tag-hover-color,#fff)}.project-footer{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid var(--border-color,#e1e4e8);margin-top:auto}.project-stats{display:flex;gap:1rem;align-items:center}.stat{display:flex;align-items:center;gap:.25rem;font-size:2rem;color:var(--text-secondary,#666)}.stat .stat-icon{fill:currentColor;opacity:.6}.project-links{display:flex;gap:.75rem;align-items:center}.project-link{display:flex;align-items:center;gap:.35rem;padding:.4rem .75rem;background:var(--button-bg,#f6f8fa);color:var(--text-primary,#333);border-radius:6px;font-size:2rem;font-weight:500;text-decoration:none;transition:all .2s ease}.project-link svg{fill:currentColor;flex-shrink:0}.project-link:hover{background:var(--accent-color,#2196F3);color:#fff;transform:translateY(-1px)}.projects-empty{text-align:center;padding:3rem 1rem;color:var(--text-secondary,#666)}.projects-empty p{font-size:2.3rem;margin-bottom:.5rem}.projects-empty p:last-child{font-size:2rem;opacity:.8}@media(prefers-color-scheme:dark){.project-card{--card-bg:#1a1a1a;--border-color:#333;--text-primary:#e1e1e1;--text-secondary:#aaa;--accent-color:#42a5f5;--accent-color-hover:#64b5f6;--tag-bg:#1f6feb1a;--tag-color:#42a5f5;--tag-hover-bg:#1f6feb;--tag-hover-color:#fff;--button-bg:#21262d}.project-card:hover{box-shadow:0 10px 30px rgba(0,0,0,.4)}}@media(max-width:768px){.project-card-header{flex-direction:column;align-items:flex-start}.project-language{margin-top:.25rem}.project-footer{flex-direction:column;gap:1rem;align-items:flex-start}.project-links{width:100%;justify-content:flex-start}}.resume-container{max-width:100%;padding:2rem 1rem;min-height:calc(100vh - 200px)}@media(max-width:768px){.resume-container{padding:1rem .5rem}}.resume-content{width:100%}.resume-content .title{text-align:center;margin-bottom:2rem;font-size:2.5rem;color:var(--fg-color)}@media(max-width:768px){.resume-content .title{font-size:2rem;margin-bottom:1.5rem}}.resume-viewer{position:relative;width:100%;max-width:1e3px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.resume-pdf-iframe{width:100%;height:calc(100vh - 250px);min-height:800px;border:1px solid var(--fg-color);border-opacity:.2;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);background:#fff}@media(max-width:768px){.resume-pdf-iframe{height:calc(100vh - 200px);min-height:600px}}@media(prefers-color-scheme:dark){.resume-pdf-iframe{box-shadow:0 4px 12px rgba(0,0,0,.3)}}.resume-fallback{display:none;width:100%;max-width:1e3px;margin:0 auto}@supports not (aspect-ratio:1){.resume-fallback{display:block}}.resume-fallback-image{width:100%;height:auto;border:1px solid var(--fg-color);border-opacity:.2;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1)}@media(prefers-color-scheme:dark){.resume-fallback-image{box-shadow:0 4px 12px rgba(0,0,0,.3)}}.resume-download{display:flex;justify-content:center;margin-top:1rem}.resume-download-button{display:inline-flex;align-items:center;gap:.75rem;padding:1rem 2rem;background:#1565c0;color:#fff!important;border-radius:8px;text-decoration:none;font-weight:600;font-size:1.1rem;transition:all .3s ease;box-shadow:0 2px 8px rgba(21,101,192,.3)}@media(max-width:768px){.resume-download-button{font-size:1rem;padding:.875rem 1.5rem}}.resume-download-button svg{flex-shrink:0}.resume-download-button:hover{background:#104d92;transform:translateY(-2px);box-shadow:0 4px 12px rgba(21,101,192,.4);text-decoration:none}.resume-download-button:active{transform:translateY(0)}@media(prefers-color-scheme:dark){.resume-download-button{background:#42a5f5;box-shadow:0 2px 8px rgba(66,165,245,.3)}.resume-download-button:hover{background:#72bcf8;box-shadow:0 4px 12px rgba(66,165,245,.4)}}.resume-viewer::before{content:"Lebenslauf wird geladen...";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--fg-color);opacity:.5;font-size:1.2rem;z-index:-1;pointer-events:none}@media print{.resume-container{padding:0}.resume-download{display:none}.title{page-break-after:avoid}.resume-pdf-iframe{border:none;box-shadow:none;min-height:100vh}}