.ui-locale-switcher[data-v-af3b6786]{background:transparent;border:1px solid;border-radius:4px;color:inherit;cursor:pointer;font-family:inherit;font-size:.8125rem;font-weight:600;letter-spacing:.05em;padding:.25rem .625rem;text-decoration:none}.ui-locale-switcher[data-v-af3b6786]:hover{background:#ffffff1a;color:inherit}.ui-section[data-v-2900c5e6]{padding-block:4rem;padding-inline:2rem}.ui-section .content[data-v-2900c5e6]{margin:0 auto;max-width:var(--max-width)}.ui-section.is--dark[data-v-2900c5e6]{background:var(--color-bg-dark);color:var(--color-text-on-dark)}.ui-section:not(.is--dark)+.ui-section[data-v-2900c5e6]:not(.is--dark){padding-block-start:0}.header-section .top[data-v-589a6596]{align-items:center;display:flex;justify-content:space-between;margin-bottom:2.5rem}.header-section .name[data-v-589a6596]{font-size:2.5rem;font-weight:700;margin-bottom:.5rem}@media(max-width:600px){.header-section .name[data-v-589a6596]{font-size:1.75rem}}.header-section .title[data-v-589a6596]{color:var(--color-accent-on-dark);font-size:1.125rem;margin-bottom:.25rem}@media(max-width:600px){.header-section .title[data-v-589a6596]{font-size:1rem}}.header-section .description[data-v-589a6596]{color:var(--color-accent-on-dark);font-size:.9375rem;margin-bottom:.375rem;opacity:.8}@media(max-width:600px){.header-section .description[data-v-589a6596]{font-size:.875rem}}.header-section .location[data-v-589a6596]{color:#b0b0b0;font-size:.9375rem;margin-bottom:1.5rem}.header-section .links[data-v-589a6596]{display:flex;flex-wrap:wrap;gap:1.25rem}.header-section .links a[data-v-589a6596]{color:var(--color-accent-on-dark);font-size:.875rem;font-weight:500;transition:color .2s ease}.header-section .links a[data-v-589a6596]:hover{color:var(--color-accent-on-dark-hover)}.ui-section-title[data-v-c20c5cd2]{font-size:1.75rem;font-weight:600;margin-block:0 2rem;position:relative}.ui-section-title.is--small[data-v-c20c5cd2]{font-size:1.125rem;margin-bottom:1rem}.ui-section-title[data-v-c20c5cd2]:not(.is--small):after{background:var(--color-accent-warm);border-radius:1px;bottom:-6px;content:"";height:2px;left:0;position:absolute;width:40px}.line[data-v-8155e323]{color:var(--color-text-light);margin-bottom:1rem}.ui-skill[data-v-fe939a64]{align-items:flex-start;border:1px solid var(--color-border);border-radius:8px;display:flex;gap:.75rem;padding:1rem}.ui-skill .icon[data-v-fe939a64]{flex-shrink:0;height:28px;width:28px}.ui-skill .name[data-v-fe939a64]{color:var(--color-text);font-size:.9375rem;font-weight:600;line-height:1.3}.ui-skill .detail[data-v-fe939a64]{color:var(--color-text-light);font-size:.8125rem;margin-top:.125rem}.skills[data-v-5baaf391]{display:grid;gap:1rem;grid-template-columns:repeat(3,1fr)}@media(max-width:600px){.skills[data-v-5baaf391]{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.skills[data-v-5baaf391]{grid-template-columns:1fr}}.certifications-row[data-v-667253bc]{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem}@media(max-width:600px){.certifications-row[data-v-667253bc]{flex-direction:column}}.certifications-row .item[data-v-667253bc]{flex:0 1 45%;text-decoration:none}.certifications-row .item:hover .image[data-v-667253bc]{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.certifications-row .image[data-v-667253bc]{border:1px solid var(--color-border);border-radius:6px;height:auto;transition:transform .2s ease,box-shadow .2s ease;width:100%}.ui-badge[data-v-ddbee26f]{align-items:center;border-radius:2px;color:#fff;display:inline-flex;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.ui-badge.size--small[data-v-ddbee26f]{font-size:.5625rem;padding:.0625rem .375rem}.ui-badge.size--medium[data-v-ddbee26f]{font-size:.6875rem;padding:.125rem .5rem}.ui-badge.color--neutral[data-v-ddbee26f]{background-color:var(--color-text-light);border:1px solid var(--color-text-light)}.ui-badge.color--warm[data-v-ddbee26f]{background-color:var(--color-accent-warm);border:1px solid var(--color-accent-warm)}.ui-badge.is--outlined[data-v-ddbee26f]{background-color:transparent}.ui-badge.is--outlined.color--neutral[data-v-ddbee26f]{color:var(--color-text-light)}.ui-badge.is--outlined.color--warm[data-v-ddbee26f]{color:var(--color-accent-warm)}.section-title[data-v-6ebce875]{align-items:center;display:flex;justify-content:space-between}.dev-filter[data-v-6ebce875]{align-items:center;border:1px solid var(--color-border);border-radius:100vw;color:var(--color-accent-warm);cursor:pointer;display:flex;font-size:.75rem;gap:.45rem;padding:.3rem .7rem;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.dev-filter[data-v-6ebce875]:has(input:checked){background-color:var(--color-accent-soft);border-color:var(--color-accent-warm);color:var(--color-accent-warm)}.experiences[data-v-6ebce875]{display:flex;flex-direction:column;gap:2rem}.experiences .experience[data-v-6ebce875]{border-left:2px solid var(--color-accent);border-radius:0 4px 4px 0;padding:.75rem 1.5rem;transition:background-color .2s ease}.experiences .experience[data-v-6ebce875]:hover{background-color:var(--color-accent-soft)}.experiences .experience.freelance[data-v-6ebce875]{border-left-color:var(--color-accent-warm)}.experiences .experience.compact[data-v-6ebce875]{border-left-color:var(--color-border);border-left-width:1px;padding:.5rem 1rem}.experiences .experience.compact .company[data-v-6ebce875]{font-size:.9375rem}.experiences .experience.compact .role[data-v-6ebce875]{color:var(--color-text-light);font-size:.8125rem}.experiences .experience.compact .description[data-v-6ebce875]{font-size:.8125rem;margin-bottom:0}.experiences .header[data-v-6ebce875]{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.5rem}.experiences .title-row[data-v-6ebce875]{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.experiences .company[data-v-6ebce875]{color:var(--color-text);font-size:1.125rem;font-weight:600}.experiences .role[data-v-6ebce875]{color:var(--color-accent);font-size:.9375rem}.experiences .period[data-v-6ebce875]{flex-shrink:0;white-space:nowrap}.experiences .location[data-v-6ebce875],.experiences .period[data-v-6ebce875]{color:var(--color-text-light);font-size:.8125rem}.experiences .location[data-v-6ebce875]{margin-bottom:.375rem}.experiences .description[data-v-6ebce875]{color:var(--color-text-light);font-size:.9375rem;line-height:1.6;margin-bottom:.75rem}.experiences .stack[data-v-6ebce875]{display:flex;flex-wrap:wrap;gap:.5rem}.experiences .tag[data-v-6ebce875]{background:var(--color-bg-dark);border-radius:3px;color:var(--color-text-on-dark);font-size:.75rem;font-weight:500;padding:.2rem .6rem}@media(max-width:600px){.experiences .header[data-v-6ebce875]{flex-direction:column;gap:.25rem}}.footer-section .links[data-v-d1f8c05a]{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center;margin-bottom:1.25rem}.footer-section .links a[data-v-d1f8c05a]{color:var(--color-accent-on-dark);font-size:.875rem}.footer-section .links a[data-v-d1f8c05a]:hover{color:var(--color-accent-on-dark-hover)}.footer-section .copy[data-v-d1f8c05a]{color:#b0b0b0;font-size:.8125rem;text-align:center}
