.mono-portfolio-wrapper{background:#0d0d0f;min-height:100vh;position:relative}.mono-portfolio-wrapper:before{content:"";pointer-events:none;z-index:1;background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:60px 60px;position:fixed;inset:0}.grid-hover-canvas{pointer-events:none;z-index:0;width:100%;position:absolute;top:0;left:0}.mono-portfolio{--bg:#050506;--bg-surface:#ffffff08;--bg-surface-open:#ffffff0d;--bg-hover:#ffffff0f;--text:#e8e8ec;--text-muted:#71717a;--border:#ffffff1a;--accent:#60a5fa;--accent-soft:#60a5fa26;--selection-bg:#60a5fa;--selection-fg:#fff;--tag-ai:#a78bfa;--tag-cv:#5eead4;--tag-ts:#93c5fd;--tag-py:#6ee7b7;--tag-csharp:#86efac;--tag-hardware:#fcd34d;--tag-azure:#7dd3fc;--tag-iot:#a3e635;--tag-ml:#fbbf24;--tag-threejs:#fca5a5;--tag-db:#7dd3fc;--tag-rtmp:#f9a8d4;--tag-neuro:#d8b4fe;--tag-rnd:#67e8f9;--tag-default:#a1a1aa;max-width:768px;color:var(--text);background:var(--bg);border:1px solid var(--border);z-index:2;transform-origin:top;min-height:100vh;margin:0 auto;padding:3rem 2.5rem;font-family:CommitMono,monospace;line-height:1.6;position:relative}@media (max-width:768px){.mono-portfolio{padding:2rem 1.5rem}}@media (max-width:480px){.mono-portfolio{padding:1.5rem 1rem}}.mono-portfolio ::selection{background-color:var(--selection-bg);color:var(--selection-fg)}.mono-portfolio h1{letter-spacing:-.02em;margin:0 0 .25rem;font-size:2rem;font-weight:600;line-height:1.3}.mono-portfolio h2{text-transform:uppercase;letter-spacing:.05em;margin:0 0 1rem;font-size:1.25rem;font-weight:600;line-height:1.3}.mono-portfolio h3{margin:0;font-size:1rem;font-weight:400;line-height:1.3}.mono-portfolio p{margin:0 0 1rem;font-size:.9375rem}.mono-portfolio hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.mono-portfolio .skip-link{background:var(--accent);color:#fff;z-index:100;padding:.5rem 1rem;font-size:.8125rem;text-decoration:none;position:absolute;top:0;left:-9999px}.mono-portfolio .skip-link:focus{left:0}.mono-portfolio .intro{margin-bottom:0}.mono-portfolio .intro__header{align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.mono-portfolio .intro__avatar{background:var(--bg-surface);border:1px solid var(--border);width:3.5rem;height:3.5rem;color:var(--text);letter-spacing:.02em;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.125rem;font-weight:600;display:flex}.mono-portfolio .intro__title-group{flex-direction:column;display:flex}.mono-portfolio .intro__title-group h1,.mono-portfolio .intro__title-group .intro__subtitle{margin:0}.mono-portfolio .intro__subtitle{color:var(--text-muted);margin:0 0 1.25rem;font-size:.9375rem;font-weight:400}.mono-portfolio .intro__about{margin:0 0 1.25rem;font-size:.9375rem}.mono-portfolio .intro__links{flex-wrap:wrap;gap:1rem;display:flex}.mono-portfolio .bracket-link{color:var(--text);cursor:pointer;font-size:.875rem;text-decoration:none;transition:color .15s}.mono-portfolio .bracket-link:before{content:"[";color:var(--text-muted)}.mono-portfolio .bracket-link:after{content:"]";color:var(--text-muted)}.mono-portfolio .bracket-link:hover,.mono-portfolio .bracket-link:focus{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);outline:none}.mono-portfolio .bracket-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono-portfolio .section-list{margin:0;padding:0;list-style:none}.mono-portfolio .section-list__year{color:var(--text-muted);white-space:nowrap;letter-spacing:-.02em;min-width:2.5rem;font-size:.875rem;font-weight:500}.mono-portfolio .section-list__item{border-left:2px solid #0000;transition:background-color .15s,border-color .15s;position:relative}.mono-portfolio .section-list__item[data-open]{background-color:var(--bg-surface-open)}.mono-portfolio .section-list__item[data-open] .section-list__marker{opacity:1;color:var(--accent)}.mono-portfolio .section-list__trigger{cursor:pointer;width:100%;color:inherit;text-align:left;background:0 0;border:none;align-items:center;padding:.375rem 0 .375rem 1.5rem;font-family:inherit;font-size:.9375rem;display:flex;position:relative}.mono-portfolio .section-list__trigger:focus{background-color:var(--bg-surface);outline:none}.mono-portfolio .section-list__trigger:focus-visible{background-color:var(--bg-surface)}.mono-portfolio .section-list__trigger:focus .section-list__marker,.mono-portfolio .section-list__trigger:focus-visible .section-list__marker{opacity:1;color:var(--accent)}.mono-portfolio .section-list__item:has(.mono-portfolio .section-list__trigger:focus){border-left-color:var(--accent)}.mono-portfolio .section-list__marker{color:var(--text);opacity:0;pointer-events:none;font-size:.875rem;transition:opacity .15s;position:absolute;top:50%;left:.25rem;transform:translateY(-50%)}.mono-portfolio .section-list__header{flex-wrap:wrap;align-items:baseline;gap:.75rem;display:flex}.mono-portfolio .section-list__title{white-space:nowrap;font-weight:400}.mono-portfolio .section-list__tags{flex-wrap:wrap;gap:.25rem;display:flex}.mono-portfolio .section-list__tag{background:var(--bg-surface);color:var(--text-muted);border:1px solid var(--border);border-radius:2px;padding:.125rem .375rem;font-size:.6875rem;font-weight:500}.mono-portfolio .section-list__tag--ai{color:var(--tag-ai);background:#a78bfa1a;border-color:#a78bfa4d}.mono-portfolio .section-list__tag--cv,.mono-portfolio .section-list__tag--computer-vision{color:var(--tag-cv);background:#5eead41a;border-color:#5eead44d}.mono-portfolio .section-list__tag--ts,.mono-portfolio .section-list__tag--typescript{color:var(--tag-ts);background:#93c5fd1a;border-color:#93c5fd4d}.mono-portfolio .section-list__tag--py,.mono-portfolio .section-list__tag--python{color:var(--tag-py);background:#6ee7b71a;border-color:#6ee7b74d}.mono-portfolio .section-list__tag--csharp,.mono-portfolio .section-list__tag--c\#{color:var(--tag-csharp);background:#86efac1a;border-color:#86efac4d}.mono-portfolio .section-list__tag--hardware{color:var(--tag-hardware);background:#fcd34d1a;border-color:#fcd34d4d}.mono-portfolio .section-list__tag--azure{color:var(--tag-azure);background:#7dd3fc1a;border-color:#7dd3fc4d}.mono-portfolio .section-list__tag--iot{color:var(--tag-iot);background:#a3e6351a;border-color:#a3e6354d}.mono-portfolio .section-list__tag--ml,.mono-portfolio .section-list__tag--machine-learning{color:var(--tag-ml);background:#fbbf241a;border-color:#fbbf244d}.mono-portfolio .section-list__tag--threejs,.mono-portfolio .section-list__tag--three\.js{color:var(--tag-threejs);background:#fca5a51a;border-color:#fca5a54d}.mono-portfolio .section-list__tag--db,.mono-portfolio .section-list__tag--postgresql,.mono-portfolio .section-list__tag--vector-db{color:var(--tag-db);background:#7dd3fc1a;border-color:#7dd3fc4d}.mono-portfolio .section-list__tag--rtmp{color:var(--tag-rtmp);background:#f9a8d41a;border-color:#f9a8d44d}.mono-portfolio .section-list__tag--neuro,.mono-portfolio .section-list__tag--neuroscience{color:var(--tag-neuro);background:#d8b4fe1a;border-color:#d8b4fe4d}.mono-portfolio .section-list__tag--rnd,.mono-portfolio .section-list__tag--r\&d{color:var(--tag-rnd);background:#67e8f91a;border-color:#67e8f94d}.mono-portfolio .section-list__tag--mantine{color:var(--tag-azure);background:#7dd3fc1a;border-color:#7dd3fc4d}.mono-portfolio .section-list__tag--zustand{color:var(--text-muted);border-color:var(--border);background:#a1a1aa14}.mono-portfolio .section-list__date{color:var(--text-muted);white-space:nowrap;letter-spacing:.02em;min-width:5.5rem;font-size:.8125rem}.mono-portfolio .section-list__role{font-size:.9375rem}.mono-portfolio .section-list__company-link{color:var(--text);cursor:pointer;text-decoration:none;transition:color .15s}.mono-portfolio .section-list__company-link:hover,.mono-portfolio .section-list__company-link:focus{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.mono-portfolio .section-list__company-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono-portfolio .detail-panel{opacity:0;height:0;margin-top:0;padding-left:1.5rem;transition:height .2s ease-out,opacity .15s ease-out,margin-top .2s ease-out;overflow:hidden}.mono-portfolio .detail-panel[data-open]{opacity:1;height:auto;margin-top:.75rem}.mono-portfolio .detail-panel[hidden]{display:block!important}.mono-portfolio .detail-panel__content{background:var(--bg-surface);border:1px solid var(--border);border-radius:2px;margin-left:0;padding:.75rem 1rem}.mono-portfolio .detail-panel__description{color:var(--text);margin:0 0 .75rem;font-size:.875rem;line-height:1.6}.mono-portfolio .detail-panel__description-list{margin:0 0 .75rem;padding:0;list-style:none}.mono-portfolio .detail-panel__description-list li{color:var(--text);padding-left:1rem;font-size:.875rem;line-height:1.6;position:relative}.mono-portfolio .detail-panel__description-list li:before{content:"-";color:var(--text-muted);position:absolute;left:0}.mono-portfolio .detail-panel__description-list li+li{margin-top:.25rem}.mono-portfolio .detail-panel__links{gap:.75rem;display:flex}.mono-portfolio .ascii-footer{text-align:center;margin-top:0;padding-top:0}.mono-portfolio .ascii-footer__art{white-space:pre;color:var(--text);margin-bottom:1rem;font-size:.8125rem;line-height:1.4}.mono-portfolio .ascii-footer__tagline{color:var(--text-muted);letter-spacing:.02em;font-size:.75rem}.mono-portfolio .keyboard-shortcuts{margin-top:0}.mono-portfolio .keyboard-shortcuts__grid{grid-template-columns:1fr 1fr;gap:1rem 2rem;display:grid}@media (max-width:480px){.mono-portfolio .keyboard-shortcuts__grid{grid-template-columns:1fr;gap:.75rem}}.mono-portfolio .keyboard-shortcuts__group{flex-direction:column;gap:.375rem;display:flex}.mono-portfolio .keyboard-shortcuts__row{align-items:center;gap:.75rem;font-size:.8125rem;display:flex}.mono-portfolio .keyboard-shortcuts__keys{align-items:center;gap:.125rem;min-width:5.5rem;display:flex}.mono-portfolio .keyboard-shortcuts__keys kbd{border:1px solid var(--border);background:var(--bg-surface);border-radius:2px;padding:.125rem .375rem;font-family:CommitMono,monospace;font-size:.6875rem}.mono-portfolio .keyboard-shortcuts__action{color:var(--text-muted);font-size:.75rem}@media (prefers-reduced-motion:reduce){.mono-portfolio .detail-panel,.mono-portfolio .bracket-link,.mono-portfolio .section-list__item,.mono-portfolio .section-list__marker{transition:none}}
