:root{--bg-primary:#0d1117;--bg-secondary:#151b24;--bg-card:#1a2332;--bg-card-hover:#243044;--text-primary:#e2e8f0;--text-secondary:#8b95a8;--accent-green:#3d9d6f;--accent-blue:#5488c7;--accent-purple:#8770b5;--accent-amber:#c89038;--accent-rose:#c05d6e;--bento-hero:#141e2b;--bento-tech:#1a1828;--bento-experience:#1f1720;--bento-projects:#141f1e;--bento-contact:#1a1a2e;--bento-imprint:#1a2420;--bento-privacy:#1e1a24;--surface-faint:#8b95a80d;--border-faint:#8b95a81a;--border-subtle:#8b95a826;--scrollbar-thumb:#8b95a833}[data-theme=light]{--bg-primary:#f5f5f7;--bg-secondary:#eaeaef;--bg-card:#fff;--bg-card-hover:#f0f0f5;--text-primary:#1a1a2e;--text-secondary:#5a6072;--accent-green:#2d8659;--accent-blue:#3b6fa8;--accent-purple:#6b56a0;--accent-amber:#a87520;--accent-rose:#a8465a;--bento-hero:#e8ecf2;--bento-tech:#eae8f2;--bento-experience:#f0e8ec;--bento-projects:#e6f0ee;--bento-contact:#e8e8f4;--bento-imprint:#e8f0ec;--bento-privacy:#ece8f0;--surface-faint:#5a60720f;--border-faint:#5a60721f;--border-subtle:#5a60722e;--scrollbar-thumb:#5a607240}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.5}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{list-style:none}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none}@font-face{font-family:Montserrat;src:url(/fonts/Montserrat-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/Montserrat-Medium.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/Montserrat-SemiBold.ttf)format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/Montserrat-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/Montserrat-ExtraBold.ttf)format("truetype");font-weight:800;font-style:normal;font-display:swap}body{color:var(--text-primary);background-color:var(--bg-primary);font-family:Montserrat,system-ui,-apple-system,sans-serif;font-weight:400;transition:background-color .3s,color .3s}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-weight:700;line-height:1.2}h1{font-size:clamp(2rem, 2rem + calc(1.5rem / (0rem + 1px) * 1) * (100vw - 375px) / 905, 3.5rem)}h2{font-size:clamp(1.5rem, 1.5rem + calc(.75rem / (0rem + 1px) * 1) * (100vw - 375px) / 905, 2.25rem)}h3{font-size:clamp(1.125rem, 1.125rem + calc(.375rem / (0rem + 1px) * 1) * (100vw - 375px) / 905, 1.5rem)}p{font-size:clamp(.938rem, .938rem + calc(.125rem / (0rem + 1px) * 1) * (100vw - 375px) / 905, 1.063rem);color:var(--text-secondary);line-height:1.7}small{color:var(--text-secondary);font-size:.875rem}.will-reveal{opacity:0;transform:translateY(40px)}.will-fade{opacity:0}@media (prefers-reduced-motion:reduce){.will-reveal,.will-fade{opacity:1;transform:none}}@keyframes pulse-green{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}.pulse-dot{animation:2s ease-in-out infinite pulse-green}.theme-toggle[data-v-bae52edd]{z-index:100;border:1px solid var(--border-subtle);background:var(--surface-faint);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;border-radius:9999px;justify-content:center;align-items:center;transition:transform .2s,background .2s,color .2s,border-color .3s;display:flex;position:fixed;top:1.5rem;right:1.5rem}@media (hover:hover){.theme-toggle[data-v-bae52edd]:hover{color:var(--text-primary);background:var(--border-faint);transform:scale(1.1)}}.theme-toggle[data-v-bae52edd]:active{transform:scale(.95)}.theme-toggle__icon[data-v-bae52edd]{transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.theme-toggle__icon--sun[data-v-bae52edd]{transform:rotate(90deg)}.stat-counter[data-v-4110acbf]{font-size:inherit;color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:800}.stat-suffix[data-v-4110acbf]{font-weight:800}.hero[data-v-8bd2e9c1]{flex-direction:column;gap:.5rem;height:100%;padding:1.5rem;display:flex;overflow:hidden}@media (width>=1024px){.hero[data-v-8bd2e9c1]{gap:1.5rem;padding:2rem}}.hero__profile[data-v-8bd2e9c1]{align-items:center;gap:1.5rem;display:flex}.hero__avatar[data-v-8bd2e9c1]{flex-shrink:0}.hero__avatar-img[data-v-8bd2e9c1]{object-fit:cover;border:3px solid var(--border-faint);border-radius:9999px;width:56px;height:56px}@media (width>=1024px){.hero__avatar-img[data-v-8bd2e9c1]{width:100px;height:100px}}.hero__info[data-v-8bd2e9c1]{flex-direction:column;gap:.25rem;display:flex}.hero__name[data-v-8bd2e9c1]{font-size:clamp(1.75rem, 1.75rem + calc(.75rem / (0rem + 1px) * 1) * (100vw - 375px) / 905, 2.5rem);line-height:1.1}.hero__role[data-v-8bd2e9c1]{color:var(--accent-blue);font-size:clamp(.938rem, .938rem + calc(.187rem / (0rem + 1px) * 1) * (100vw - 375px) / 905, 1.125rem)}.hero__badge[data-v-8bd2e9c1]{color:var(--accent-rose);align-items:center;gap:.5rem;margin-top:.25rem;font-size:.813rem;display:inline-flex}.hero__badge-dot[data-v-8bd2e9c1]{background:var(--accent-rose);border-radius:9999px;width:8px;height:8px;display:inline-block}.hero__bio[data-v-8bd2e9c1]{max-width:50ch}.hero--compact .hero__bio[data-v-8bd2e9c1]{font-size:.813rem;line-height:1.4}.hero--compact .hero__stats[data-v-8bd2e9c1]{gap:1rem}.hero--compact .hero__stat-value[data-v-8bd2e9c1]{font-size:1.25rem}.hero--compact .hero__stat-label[data-v-8bd2e9c1]{font-size:.688rem}.hero__location[data-v-8bd2e9c1]{color:var(--text-secondary);align-items:center;gap:.5rem;font-size:.875rem;display:none}@media (width>=1024px){.hero__location[data-v-8bd2e9c1]{display:flex}}.hero__stats[data-v-8bd2e9c1]{flex-wrap:wrap;gap:2rem;display:none}@media (width>=1024px){.hero__stats[data-v-8bd2e9c1]{display:flex}}.hero__stat[data-v-8bd2e9c1]{flex-direction:column;gap:2px;display:flex}.hero__stat-value[data-v-8bd2e9c1]{font-size:clamp(1.5rem, 1.5rem + calc(.5rem / (0rem + 1px) * 1) * (100vw - 375px) / 905, 2rem);font-weight:800;line-height:1.2}.hero__stat-label[data-v-8bd2e9c1]{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.tech-tag[data-v-7017f3aa]{background:color-mix(in srgb, var(--accent-purple) 10%, transparent);border:1px solid color-mix(in srgb, var(--accent-purple) 20%, transparent);color:var(--text-primary);white-space:nowrap;border-radius:8px;align-items:center;padding:6px 1rem;font-size:.813rem;font-weight:500;transition:transform .15s,background .15s,border-color .15s;display:flex}@media (hover:hover){.tech-tag[data-v-7017f3aa]:hover{background:color-mix(in srgb, var(--accent-purple) 20%, transparent);border-color:color-mix(in srgb, var(--accent-purple) 40%, transparent);transform:scale(1.05)}}.tech-tag__label[data-v-7017f3aa]{color:var(--text-primary)}.tech-stack[data-v-22500248]{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent;flex-direction:column;gap:1.5rem;height:100%;padding:2rem;display:flex;overflow-y:auto}.tech-stack__title[data-v-22500248]{font-size:clamp(1.25rem, 1.25rem + calc(.25rem / (0rem + 1px) * 1) * (100vw - 375px) / 905, 1.5rem);margin-bottom:.25rem}.tech-category[data-v-22500248]{flex-direction:column;gap:.5rem;display:flex}.tech-category__name[data-v-22500248]{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);padding-bottom:.25rem;font-size:.75rem;font-weight:600}.tech-category__tags[data-v-22500248]{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.exp-card[data-v-cf04e007]{background:var(--surface-faint);border:1px solid var(--border-faint);border-radius:8px;flex-direction:column;gap:.5rem;padding:1.5rem;display:flex}.exp-card__header[data-v-cf04e007]{align-items:center;gap:1rem;display:flex}.exp-card__company-icon[data-v-cf04e007]{background:color-mix(in srgb, var(--accent-rose) 15%, transparent);width:44px;height:44px;color:var(--accent-rose);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.125rem;font-weight:700;display:flex}.exp-card__company[data-v-cf04e007]{color:var(--text-primary);font-size:1rem;font-weight:700;line-height:1.3}.exp-card__role[data-v-cf04e007]{color:var(--text-secondary);margin:0;font-size:.875rem}.exp-card__period[data-v-cf04e007]{background:color-mix(in srgb, var(--accent-rose) 12%, transparent);width:fit-content;color:var(--accent-rose);border-radius:8px;padding:.25rem 1rem;font-size:.75rem;font-weight:600;display:inline-block}.exp-card__list[data-v-cf04e007]{flex-direction:column;gap:.5rem;display:flex}.exp-card__list li[data-v-cf04e007]{color:var(--text-secondary);padding-left:1.5rem;font-size:.875rem;line-height:1.6;position:relative}.exp-card__list li[data-v-cf04e007]:before{content:"";background:var(--accent-rose);opacity:.5;border-radius:9999px;width:6px;height:6px;position:absolute;top:.55em;left:0}.experience[data-v-f3d3dd0b]{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent;flex-direction:column;gap:1.5rem;height:100%;padding:2rem;display:flex;overflow-y:auto}.experience__title[data-v-f3d3dd0b]{font-size:clamp(1.25rem, 1.25rem + calc(.25rem / (0rem + 1px) * 1) * (100vw - 375px) / 905, 1.5rem)}.experience__list[data-v-f3d3dd0b]{flex-direction:column;gap:1rem;display:flex}.projects[data-v-99e7f6da]{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent;flex-direction:column;gap:2rem;height:100%;padding:2rem;display:flex;overflow-y:auto}.projects__section[data-v-99e7f6da]{flex-direction:column;gap:1.5rem;display:flex}.projects__title[data-v-99e7f6da]{font-size:clamp(1.25rem, 1.25rem + calc(.25rem / (0rem + 1px) * 1) * (100vw - 375px) / 905, 1.5rem)}.projects__subtitle[data-v-99e7f6da]{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem;font-weight:600}.projects__list[data-v-99e7f6da]{flex-direction:column;gap:.5rem;display:flex}.project-item[data-v-99e7f6da]{background:var(--surface-faint);border:1px solid var(--border-faint);color:inherit;border-radius:8px;gap:.5rem;padding:1rem;text-decoration:none;display:flex}.project-item--link[data-v-99e7f6da]{cursor:pointer;transition:background .15s,border-color .15s}@media (hover:hover){.project-item--link[data-v-99e7f6da]:hover{background:color-mix(in srgb, var(--text-secondary) 10%, transparent);border-color:color-mix(in srgb, var(--accent-blue) 20%, transparent)}}.project-item__dot[data-v-99e7f6da]{border-radius:9999px;flex-shrink:0;width:10px;height:10px;margin-top:4px}.project-item__content[data-v-99e7f6da]{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.project-item__title[data-v-99e7f6da]{color:var(--text-primary);font-size:.875rem;font-weight:600}.project-item__desc[data-v-99e7f6da]{color:var(--text-secondary);margin:0 0 1rem;font-size:.813rem;line-height:1.5}.project-item__tags[data-v-99e7f6da]{flex-wrap:wrap;gap:4px;display:flex}.project-item__tag[data-v-99e7f6da]{background:color-mix(in srgb, var(--accent-blue) 10%, transparent);color:var(--accent-blue);border-radius:4px;padding:2px .5rem;font-size:.688rem;font-weight:500}.contact[data-v-bf03e643]{flex-direction:column;gap:.5rem;height:100%;padding:1.5rem;display:flex;overflow:hidden}@media (width>=1024px){.contact[data-v-bf03e643]{gap:1rem;padding:2rem}}.contact__header[data-v-bf03e643]{flex-direction:column;gap:.25rem;display:flex}.contact__title[data-v-bf03e643]{color:var(--text-primary);letter-spacing:-.02em;font-size:1.25rem;font-weight:700}@media (width>=1024px){.contact__title[data-v-bf03e643]{font-size:1.5rem}}.contact__cta[data-v-bf03e643]{color:var(--text-secondary);font-size:.813rem;line-height:1.5}.contact__icons[data-v-bf03e643]{gap:.5rem;margin-top:auto;display:flex}.contact--compact .contact__icons[data-v-bf03e643]{margin-top:0}.contact--compact .contact__cta[data-v-bf03e643]{font-size:.75rem}.contact__icon-btn[data-v-bf03e643]{background:color-mix(in srgb, var(--accent-blue) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent-blue) 15%, transparent);width:40px;height:40px;color:var(--accent-blue);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:transform .15s,background .15s,color .15s;display:flex;position:relative}@media (hover:hover){.contact__icon-btn[data-v-bf03e643]:hover{background:color-mix(in srgb, var(--accent-blue) 18%, transparent);color:var(--text-primary);transform:scale(1.1)}}.contact__icon-btn[data-v-bf03e643]:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.contact__tooltip[data-v-bf03e643]{background:var(--accent-green);color:var(--bg-primary);white-space:nowrap;pointer-events:none;border-radius:4px;padding:4px 10px;font-size:.688rem;font-weight:600;animation:.2s ease-out tooltip-pop-bf03e643;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}@keyframes tooltip-pop-bf03e643{0%{opacity:0;transform:translate(-50%)translateY(4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.imprint-link[data-v-f2662811]{height:100%;color:inherit;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;padding:1.5rem;text-decoration:none;transition:background .15s;display:flex}@media (hover:hover){.imprint-link[data-v-f2662811]:hover{background:#ffffff08}.imprint-link:hover .imprint-link__arrow[data-v-f2662811]{transform:translate(4px)}}.imprint-link__title[data-v-f2662811]{color:var(--text-primary);letter-spacing:-.02em;font-size:1.125rem;font-weight:700}.imprint-link__text[data-v-f2662811]{color:var(--text-secondary);font-size:.75rem}.imprint-link__arrow[data-v-f2662811]{color:var(--text-secondary);margin-top:.25rem;font-size:1.25rem;transition:transform .15s}.privacy-link[data-v-c3573474]{height:100%;color:inherit;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;padding:1.5rem;text-decoration:none;transition:background .15s;display:flex}@media (hover:hover){.privacy-link[data-v-c3573474]:hover{background:#ffffff08}.privacy-link:hover .privacy-link__arrow[data-v-c3573474]{transform:translate(4px)}}.privacy-link__title[data-v-c3573474]{color:var(--text-primary);letter-spacing:-.02em;font-size:1.125rem;font-weight:700}.privacy-link__text[data-v-c3573474]{color:var(--text-secondary);font-size:.75rem}.privacy-link__arrow[data-v-c3573474]{color:var(--text-secondary);margin-top:.25rem;font-size:1.25rem;transition:transform .15s}.bento-layout[data-v-5d68460a]{grid-template-columns:1fr;grid-template-areas:"hero""projects""experience""tech""contact""imprint""privacy";gap:1.5rem;max-width:1400px;margin:0 auto;padding:1.5rem;display:grid}@media (width>=768px) and (width<=1023px){.bento-layout[data-v-5d68460a]{grid-template-columns:1fr 1fr;grid-template-areas:"hero tech""experience experience""projects projects""contact contact""imprint privacy"}}@media (width>=1024px){.bento-layout[data-v-5d68460a]{grid-template-rows:3fr 2fr 1fr 1fr;grid-template-columns:repeat(4,1fr);grid-template-areas:"hero hero projects projects""exp exp tech tech""exp exp contact imprint""exp exp contact privacy";height:100dvh}}section[data-v-5d68460a]{border-radius:16px;transition:background-color .3s;overflow:hidden}.bento-hero[data-v-5d68460a]{background:var(--bento-hero);grid-area:hero;height:100%}@media (width<=767px){.bento-hero[data-v-5d68460a]{height:auto}}@media (width>=768px) and (width<=1023px){.bento-hero[data-v-5d68460a]{aspect-ratio:1;height:auto}}.bento-tech[data-v-5d68460a]{background:var(--bento-tech);grid-area:tech;height:100%}@media (width<=767px){.bento-tech[data-v-5d68460a]{aspect-ratio:1;height:auto}}@media (width>=768px) and (width<=1023px){.bento-tech[data-v-5d68460a]{aspect-ratio:1;height:auto}}.bento-experience[data-v-5d68460a]{background:var(--bento-experience);grid-area:experience;height:100%}@media (width<=767px){.bento-experience[data-v-5d68460a]{aspect-ratio:1;height:auto}}@media (width>=768px) and (width<=1023px){.bento-experience[data-v-5d68460a]{aspect-ratio:2;height:auto}}@media (width>=1024px){.bento-experience[data-v-5d68460a]{grid-area:exp}}.bento-projects[data-v-5d68460a]{background:var(--bento-projects);grid-area:projects;height:100%}@media (width<=767px){.bento-projects[data-v-5d68460a]{aspect-ratio:1;height:auto}}@media (width>=768px) and (width<=1023px){.bento-projects[data-v-5d68460a]{aspect-ratio:2;height:auto}}.bento-contact[data-v-5d68460a]{background:var(--bento-contact);grid-area:contact}.bento-imprint[data-v-5d68460a]{background:var(--bento-imprint);grid-area:imprint}.bento-privacy[data-v-5d68460a]{background:var(--bento-privacy);grid-area:privacy}
