@media (prefers-reduced-motion:no-preference){@keyframes hero-in{0%{opacity:.6;transform:translateY(12px)}to{opacity:1;transform:none}}.hero__role[data-astro-cid-ge2uvauf],.hero__value[data-astro-cid-ge2uvauf],.hero[data-astro-cid-ge2uvauf] .chips,.hero__ctas[data-astro-cid-ge2uvauf]{animation:.4s ease-out backwards hero-in}.hero__value[data-astro-cid-ge2uvauf]{animation-delay:60ms}.hero[data-astro-cid-ge2uvauf] .chips{animation-delay:.12s}.hero__ctas[data-astro-cid-ge2uvauf]{animation-delay:.18s}}.hero[data-astro-cid-ge2uvauf]{justify-items:start;gap:var(--space-md);display:grid}.hero__bar[data-astro-cid-ge2uvauf]{background:linear-gradient(90deg, var(--grad-from), var(--grad-to));border-radius:2px;block-size:4px;inline-size:64px;display:block}.hero__availability[data-astro-cid-ge2uvauf]{align-items:center;gap:var(--space-sm);font-size:var(--fs-label);color:var(--ink);font-weight:600;display:inline-flex}.hero__dot[data-astro-cid-ge2uvauf]{background:var(--accent);border-radius:50%;block-size:8px;inline-size:8px}h1[data-astro-cid-ge2uvauf]{font-size:var(--fs-display);letter-spacing:-.01em;text-wrap:balance}.hero__role[data-astro-cid-ge2uvauf]{font-size:var(--fs-heading);color:var(--ink);font-weight:600;line-height:1.2}.hero__value[data-astro-cid-ge2uvauf]{max-inline-size:var(--measure);text-wrap:pretty}.hero__meta[data-astro-cid-ge2uvauf]{font-size:var(--fs-label);color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600}.hero__ctas[data-astro-cid-ge2uvauf]{gap:var(--space-sm);inline-size:100%;display:grid}@media (width>=480px){.hero__ctas[data-astro-cid-ge2uvauf]{gap:var(--space-md);inline-size:auto;display:flex}}.row[data-astro-cid-kvy7xguz]{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:12px;padding:0;text-decoration:none;display:block;position:relative}.row__inner[data-astro-cid-kvy7xguz]{border-radius:calc(var(--radius-card) - 1px);gap:0;display:grid;overflow:clip}.row__media[data-astro-cid-kvy7xguz]{min-inline-size:0;overflow:clip}@media (width>=768px){.row__inner[data-astro-cid-kvy7xguz]{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:stretch;gap:0}}.row__text[data-astro-cid-kvy7xguz]{padding:var(--space-md);align-content:center;gap:var(--space-sm);justify-items:start;min-inline-size:0;display:grid}@media (width>=768px){.row__text[data-astro-cid-kvy7xguz]{padding:var(--space-lg)}}@media (width>=1024px){.row__text[data-astro-cid-kvy7xguz]{padding-inline:var(--space-xl)}}.row__text[data-astro-cid-kvy7xguz]>[data-astro-cid-kvy7xguz]{min-inline-size:0}.row[data-astro-cid-kvy7xguz] h3[data-astro-cid-kvy7xguz]{margin:0;font-size:20px;font-weight:600}.row__summary[data-astro-cid-kvy7xguz]{max-inline-size:60ch;color:var(--muted);margin:0}.row__actions[data-astro-cid-kvy7xguz]{align-items:center;gap:var(--space-sm) var(--space-md,20px);flex-wrap:wrap;display:flex}.view-case[data-astro-cid-kvy7xguz]{align-items:center;gap:var(--space-sm);color:inherit;font-weight:600;text-decoration:none;display:inline-flex}.row__link[data-astro-cid-kvy7xguz]:after{content:"";border-radius:12px;position:absolute;inset:0}.row__live[data-astro-cid-kvy7xguz]{z-index:1;min-block-size:24px;color:var(--accent);text-underline-offset:3px;align-items:center;gap:6px;font-weight:600;text-decoration:underline;display:inline-flex;position:relative}.row__live[data-astro-cid-kvy7xguz]:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.row[data-astro-cid-kvy7xguz]:hover .view-case[data-astro-cid-kvy7xguz]{color:var(--accent)}.row[data-astro-cid-kvy7xguz]:active{transform:translateY(0)}.row[data-astro-cid-kvy7xguz]:has(.row__link:focus-visible){outline:2px solid var(--focus);outline-offset:3px}.row__link[data-astro-cid-kvy7xguz]:focus-visible{outline:none}@media (prefers-reduced-motion:no-preference){.row[data-astro-cid-kvy7xguz]{transition:transform .3s ease-out,box-shadow .3s ease-out,border-color .15s}.view-case[data-astro-cid-kvy7xguz]{transition:color .15s}.view-case__arrow[data-astro-cid-kvy7xguz]{transition:transform .15s}.row[data-astro-cid-kvy7xguz]:hover .view-case__arrow[data-astro-cid-kvy7xguz]{transform:translate(4px)}.row__media[data-astro-cid-kvy7xguz] .mockup__screen>*{transform-origin:50%;transition:transform .3s ease-out}.row[data-astro-cid-kvy7xguz]:has(.row__link:focus-visible) .row__media[data-astro-cid-kvy7xguz] .mockup__screen>*{transform:scale(1.03)}@media (hover:hover){.row[data-astro-cid-kvy7xguz]:hover .row__media[data-astro-cid-kvy7xguz] .mockup__screen>*{transform:scale(1.03)}}}.projects__intro[data-astro-cid-ftq3vvlr]{max-inline-size:var(--measure);margin:0 0 var(--space-lg,32px);color:var(--muted)}.projects-list[data-astro-cid-ftq3vvlr]{gap:32px;margin:0;padding:0;list-style:none;display:grid}@media (width>=768px){.projects-list[data-astro-cid-ftq3vvlr]{gap:48px}.projects-list[data-astro-cid-ftq3vvlr]>li[data-astro-cid-ftq3vvlr]:nth-child(2n) .row__media{order:2}.projects-list[data-astro-cid-ftq3vvlr]>li[data-astro-cid-ftq3vvlr]:nth-child(2n) .row__inner{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}}.service-icon[data-astro-cid-43js7ux2]{color:var(--muted);display:block}.services-list[data-astro-cid-lesv7jgp]{grid-template-columns:1fr;gap:16px;margin:0;padding:0;list-style:none;display:grid}.service__card[data-astro-cid-lesv7jgp]{box-sizing:border-box;background:var(--surface);border:1px solid var(--line);border-radius:12px;block-size:100%;padding:24px}.service[data-astro-cid-lesv7jgp] h3[data-astro-cid-lesv7jgp]{margin:16px 0 0;font-size:16px;font-weight:600}.service[data-astro-cid-lesv7jgp] p[data-astro-cid-lesv7jgp]{color:var(--muted);margin:8px 0 0;font-size:16px;font-weight:400}.service__example[data-astro-cid-lesv7jgp]{min-block-size:44px;color:var(--ink);text-underline-offset:3px;align-items:center;margin-block-start:16px;font-size:14px;font-weight:600;text-decoration:underline 1px;display:inline-flex}.service__example[data-astro-cid-lesv7jgp]:hover{color:var(--accent)}.services__cta[data-astro-cid-lesv7jgp]{justify-content:center;margin-block-start:32px;display:flex}@media (width>=768px){.services-list[data-astro-cid-lesv7jgp]{grid-template-columns:repeat(3,1fr)}}@media (width>=1024px){.services-list[data-astro-cid-lesv7jgp]{gap:24px}}.timeline-wrap[data-astro-cid-bl6cniha]{view-timeline:--exp block;position:relative;overflow:visible clip}.timeline[data-astro-cid-bl6cniha]{margin:0;padding:0;list-style:none}.timeline-wrap[data-astro-cid-bl6cniha]:before{content:"";background:var(--line);inline-size:2px;position:absolute;inset-block:0 4px;inset-inline-start:5px}.timeline[data-astro-cid-bl6cniha]>li[data-astro-cid-bl6cniha]{padding-inline-start:32px;position:relative}.timeline[data-astro-cid-bl6cniha]>li[data-astro-cid-bl6cniha]+li[data-astro-cid-bl6cniha]{margin-block-start:32px}.timeline[data-astro-cid-bl6cniha]>li[data-astro-cid-bl6cniha]:before{content:"";box-sizing:border-box;background:var(--bg);border:2px solid var(--muted);z-index:1;border-radius:50%;block-size:12px;inline-size:12px;position:absolute;inset-block-start:6px;inset-inline-start:0}.job[data-astro-cid-bl6cniha] h3[data-astro-cid-bl6cniha]{margin:0;font-size:16px;font-weight:600;line-height:1.5}.job__company[data-astro-cid-bl6cniha]{margin:4px 0 0;font-size:16px;font-weight:400}.job__meta[data-astro-cid-bl6cniha]{color:var(--muted);font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:14px;font-weight:600}.job__achievements[data-astro-cid-bl6cniha]{gap:8px;margin:16px 0 0;padding:0;list-style:none;display:grid}.job__achievements[data-astro-cid-bl6cniha] li[data-astro-cid-bl6cniha]{max-inline-size:var(--measure);padding-inline-start:16px;font-size:16px;font-weight:400;position:relative}.job__achievements[data-astro-cid-bl6cniha] li[data-astro-cid-bl6cniha]:before{content:"";background:var(--muted);border-radius:50%;block-size:4px;inline-size:4px;position:absolute;inset-block-start:.7em;inset-inline-start:0}.job__stack[data-astro-cid-bl6cniha]{margin-block-start:16px}.rocket-fill[data-astro-cid-bl6cniha]{background:var(--accent);transform-origin:top;pointer-events:none;inline-size:2px;position:absolute;inset-block:0 4px;inset-inline-start:5px}.rocket-rail[data-astro-cid-bl6cniha]{z-index:2;pointer-events:none;flex-direction:column;justify-content:flex-end;inline-size:24px;display:flex;position:absolute;inset-block:0 4px;inset-inline-start:-6px}.rocket[data-astro-cid-bl6cniha]{--flame-outer:#ff4d1a;--flame-mid:#ff9a1f;--flame-core:#fff6c2;flex:none;block-size:40px;inline-size:24px;position:relative}.rocket__ship[data-astro-cid-bl6cniha]{block-size:40px;inline-size:24px;color:var(--accent);position:absolute;inset-block-start:0;inset-inline-start:0}.rocket__thrust[data-astro-cid-bl6cniha]{transform-origin:50% 0;opacity:0;block-size:32px;inline-size:24px;position:absolute;inset-block-start:34px;inset-inline-start:0}.rocket__flame[data-astro-cid-bl6cniha]{block-size:32px;inline-size:24px;display:block;position:relative;overflow:visible}.flame[data-astro-cid-bl6cniha]{transform-box:fill-box;transform-origin:50% 0}.flame--outer[data-astro-cid-bl6cniha]{fill:var(--flame-outer)}.flame--mid[data-astro-cid-bl6cniha]{fill:var(--flame-mid)}.flame--core[data-astro-cid-bl6cniha]{fill:var(--flame-core)}.rocket__glow[data-astro-cid-bl6cniha]{background:radial-gradient(closest-side, color-mix(in srgb, var(--flame-mid) 60%, transparent), transparent);block-size:44px;inline-size:40px;position:absolute;inset-block-start:-6px;inset-inline-start:-8px}.dust[data-astro-cid-bl6cniha]{z-index:2;pointer-events:none;block-size:12px;inline-size:24px;position:absolute;inset-block-end:4px;inset-inline-start:-6px}.dust[data-astro-cid-bl6cniha] i[data-astro-cid-bl6cniha]{background:var(--muted);opacity:0;border-radius:50%;block-size:8px;inline-size:8px;position:absolute;inset-block-end:0;inset-inline-start:8px}.base[data-astro-cid-bl6cniha]{min-block-size:44px;font-size:var(--fs-label);color:var(--ink);align-items:flex-end;margin-block-start:32px;padding-inline-start:32px;font-weight:600;display:flex;position:relative}.base[data-astro-cid-bl6cniha]:before{content:"";background:linear-gradient(90deg, var(--grad-from), var(--grad-to));border-radius:2px;block-size:4px;inline-size:24px;position:absolute;inset-block-end:0;inset-inline-start:-6px}.base[data-astro-cid-bl6cniha]:after{content:"";background:var(--muted);block-size:6px;inline-size:4px;position:absolute;inset-block-end:4px;inset-inline-start:4px}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.rocket-rail[data-astro-cid-bl6cniha]{justify-content:flex-start}.rocket[data-astro-cid-bl6cniha]{position:sticky;inset-block-start:calc(50vh - 40px)}@keyframes rocket-fill{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes rocket-settle{0%{transform:translateY(-8px)}62%{transform:translateY(0)}72%{transform:translateY(2px)}to{transform:translateY(0)}}@keyframes rocket-thrust{0%{opacity:1;transform:scaleY(.7)}78%{opacity:1;transform:scaleY(.8)}90%{opacity:1;transform:scaleY(1.45)}96%{opacity:1;transform:scaleY(1)}99%{opacity:.7;transform:scaleY(.3)}to{opacity:0;transform:scaleY(0)}}@keyframes dust-puff{0%{opacity:0;transform:translate(0)scale(.3)}25%{opacity:.55}to{transform:translateX(var(--dx)) translateY(-3px) scale(1.7);opacity:0}}@keyframes flicker-a{0%,to{opacity:1;transform:scale(1)}20%{opacity:.9;transform:scale(.88,1.12)}45%{opacity:1;transform:scale(1.1,.9)}70%{opacity:.92;transform:scale(.94,1.08)}}@keyframes flicker-b{0%,to{transform:scale(1)}25%{transform:scale(1.12,.88)}50%{transform:scale(.86,1.14)}75%{transform:scale(1.05,.95)}}@keyframes flicker-glow{0%,to{opacity:1;transform:scale(1)}30%{opacity:.75;transform:scale(.92)}60%{opacity:.95;transform:scale(1.06)}}.rocket-fill[data-astro-cid-bl6cniha],.rocket__thrust[data-astro-cid-bl6cniha]{animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--exp;animation-range:cover 50vh cover calc(100% - 50vh)}.rocket__ship[data-astro-cid-bl6cniha]{animation:linear both rocket-settle --exp;animation-range:cover calc(100% - 70vh) cover calc(100% - 38vh)}.rocket-fill[data-astro-cid-bl6cniha]{animation-name:rocket-fill;transform:scaleY(0)}.rocket__thrust[data-astro-cid-bl6cniha]{animation-name:rocket-thrust}.dust[data-astro-cid-bl6cniha] i[data-astro-cid-bl6cniha]{animation:linear both dust-puff --exp;animation-range:cover calc(100% - 51vh) cover calc(100% - 36vh)}.dust[data-astro-cid-bl6cniha] i[data-astro-cid-bl6cniha]:nth-child(2){animation-range:cover calc(100% - 50vh) cover calc(100% - 34vh)}.dust[data-astro-cid-bl6cniha] i[data-astro-cid-bl6cniha]:nth-child(3){animation-range:cover calc(100% - 50.5vh) cover calc(100% - 35vh)}.flame--outer[data-astro-cid-bl6cniha]{animation:.47s ease-in-out infinite flicker-a}.flame--mid[data-astro-cid-bl6cniha]{animation:.37s ease-in-out infinite flicker-b}.flame--core[data-astro-cid-bl6cniha]{animation:.29s ease-in-out infinite reverse flicker-a}.rocket__glow[data-astro-cid-bl6cniha]{animation:.53s ease-in-out infinite flicker-glow}}}.skill-areas[data-astro-cid-2zwc476k]{gap:var(--space-md);grid-template-columns:1fr;margin:0;padding:0;list-style:none;display:grid}@media (width>=640px){.skill-areas[data-astro-cid-2zwc476k]{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.skill-areas[data-astro-cid-2zwc476k]{grid-template-columns:repeat(3,1fr)}}.skill-card[data-astro-cid-2zwc476k]{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:var(--space-lg)}.skill-card[data-astro-cid-2zwc476k] h3[data-astro-cid-2zwc476k],.skills-extra[data-astro-cid-2zwc476k] h3[data-astro-cid-2zwc476k]{margin:0;font-size:16px;font-weight:600;line-height:1.5}.chips-wrap[data-astro-cid-2zwc476k]{margin-block-start:16px}.skills-extra[data-astro-cid-2zwc476k]{gap:var(--space-xl);grid-template-columns:1fr;margin-block-start:var(--space-xl);display:grid}@media (width>=640px){.skills-extra[data-astro-cid-2zwc476k]{grid-template-columns:repeat(2,1fr)}}.plain-list[data-astro-cid-2zwc476k]{gap:12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.row__main[data-astro-cid-2zwc476k],.row__title[data-astro-cid-2zwc476k]{font-size:16px;font-weight:400}.row__title[data-astro-cid-2zwc476k]{font-weight:600}.row__meta[data-astro-cid-2zwc476k]{color:var(--muted);font-size:14px;font-weight:600}.row--stack[data-astro-cid-2zwc476k]{gap:2px;display:grid}.about[data-astro-cid-oxgmilyn]>h2[data-astro-cid-oxgmilyn]{text-align:center;margin-block-end:var(--space-xl)}.about__row[data-astro-cid-oxgmilyn]{justify-items:center;gap:var(--space-lg);max-inline-size:calc(65ch + 160px + var(--space-xl));grid-template-columns:1fr;margin-inline:auto;display:grid}@media (width>=640px){.about__row[data-astro-cid-oxgmilyn]{place-items:center stretch;gap:var(--space-xl);grid-template-columns:160px 1fr}}.about__text[data-astro-cid-oxgmilyn]{text-align:start}.about[data-astro-cid-oxgmilyn] .about__photo{aspect-ratio:1;object-fit:cover;border:3px solid var(--accent);block-size:160px;inline-size:160px;box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent);border-radius:50%}.about[data-astro-cid-oxgmilyn] p[data-astro-cid-oxgmilyn]{text-wrap:pretty;margin:0;font-size:16px;font-weight:400}.about[data-astro-cid-oxgmilyn] p[data-astro-cid-oxgmilyn]+p[data-astro-cid-oxgmilyn]{margin-block-start:16px}.contact-form-wrap[data-astro-cid-vekgkm42]{box-sizing:border-box;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);min-inline-size:0;padding:var(--space-md);gap:var(--space-md);align-content:start;display:grid}@media (width>=640px){.contact-form-wrap[data-astro-cid-vekgkm42]{padding:var(--space-xl)}}h3[data-astro-cid-vekgkm42]{font-size:var(--fs-heading);font-weight:600;line-height:1.2}.form-required[data-astro-cid-vekgkm42],.field__help[data-astro-cid-vekgkm42]{font-size:var(--fs-label);color:var(--muted)}form[data-astro-cid-vekgkm42]{gap:var(--space-md);display:grid}.field[data-astro-cid-vekgkm42]{gap:var(--space-xs);display:grid}.field[data-astro-cid-vekgkm42] label[data-astro-cid-vekgkm42]{font-size:var(--fs-label);color:var(--ink);font-weight:600}.field[data-astro-cid-vekgkm42] input[data-astro-cid-vekgkm42],.field[data-astro-cid-vekgkm42] textarea[data-astro-cid-vekgkm42]{box-sizing:border-box;min-block-size:48px;inline-size:100%;padding:12px var(--space-md);font:inherit;font-size:var(--fs-body);color:var(--ink);background:var(--surface);border:1px solid color-mix(in srgb, var(--ink) 45%, var(--surface));border-radius:8px}.field[data-astro-cid-vekgkm42] textarea[data-astro-cid-vekgkm42]{resize:vertical;min-block-size:160px}.field[data-astro-cid-vekgkm42] input[data-astro-cid-vekgkm42]:hover,.field[data-astro-cid-vekgkm42] textarea[data-astro-cid-vekgkm42]:hover{border-color:color-mix(in srgb, var(--ink) 70%, var(--surface))}.field[data-astro-cid-vekgkm42] input[data-astro-cid-vekgkm42]:focus,.field[data-astro-cid-vekgkm42] textarea[data-astro-cid-vekgkm42]:focus{border-color:var(--accent);outline:2px solid var(--focus);outline-offset:2px}.field[data-astro-cid-vekgkm42] input[data-astro-cid-vekgkm42][aria-invalid=true],.field[data-astro-cid-vekgkm42] textarea[data-astro-cid-vekgkm42][aria-invalid=true]{border-color:var(--danger)}.field[data-astro-cid-vekgkm42] input[data-astro-cid-vekgkm42][readonly],.field[data-astro-cid-vekgkm42] textarea[data-astro-cid-vekgkm42][readonly]{opacity:.7}@media (forced-colors:active){.field[data-astro-cid-vekgkm42] input[data-astro-cid-vekgkm42],.field[data-astro-cid-vekgkm42] textarea[data-astro-cid-vekgkm42]{border-color:canvastext}}@media (prefers-reduced-motion:no-preference){.field[data-astro-cid-vekgkm42] input[data-astro-cid-vekgkm42],.field[data-astro-cid-vekgkm42] textarea[data-astro-cid-vekgkm42]{transition:border-color .15s}}.field__error[data-astro-cid-vekgkm42]{align-items:flex-start;gap:var(--space-sm);font-size:var(--fs-label);color:var(--danger);font-weight:600;display:flex}form[data-astro-cid-vekgkm42][hidden],.field__error[data-astro-cid-vekgkm42][hidden],.form-success[data-astro-cid-vekgkm42][hidden]{display:none}.field__error[data-astro-cid-vekgkm42] svg{flex:none;margin-block-start:2px}.hp[data-astro-cid-vekgkm42]{clip-path:inset(50%);block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.cf-turnstile[data-astro-cid-vekgkm42]{min-block-size:65px;inline-size:300px;max-inline-size:100%}.form-error[data-astro-cid-vekgkm42]{font-size:var(--fs-body);color:var(--ink)}.form-error[data-astro-cid-vekgkm42]:empty{display:none}.form-error[data-astro-cid-vekgkm42]:not(:empty){padding:var(--space-md);background:var(--surface);border:1px solid var(--danger);gap:var(--space-md);border-radius:8px;display:grid}.form-status[data-astro-cid-vekgkm42]{font-size:var(--fs-label);color:var(--muted)}.form-status[data-astro-cid-vekgkm42]:empty{display:none}.form-submit[data-astro-cid-vekgkm42]{min-block-size:48px;inline-size:100%}@media (width>=640px){.form-submit[data-astro-cid-vekgkm42]{justify-self:start;inline-size:auto;min-inline-size:200px}}.form-success[data-astro-cid-vekgkm42]{gap:var(--space-md);justify-items:start;display:grid}.form-success__icon[data-astro-cid-vekgkm42]{color:var(--accent)}.form-noscript[data-astro-cid-vekgkm42]{gap:var(--space-md);color:var(--muted);display:grid}.contact__body[data-astro-cid-he3spzz3]{max-inline-size:var(--measure);color:var(--muted);margin-block-end:var(--space-xl)}.contact-layout[data-astro-cid-he3spzz3]{gap:var(--space-lg);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=1024px){.contact-layout[data-astro-cid-he3spzz3]{gap:var(--space-xl);grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-content:start;align-items:start}}
