footer[data-astro-cid-jo6i4kqk]{text-align:center;padding-block:67px;padding-inline:var(--mobile-inline-padding);@media (width>=768px){padding-inline:0}& p span video{margin-inline:4px;display:inline-block}& P>span[data-astro-cid-jo6i4kqk]:first-child:after{content:"";margin-right:4px;display:inline-block;translate:0 -1px}& a{color:var(--text-color);transition:var(--transition-text);text-decoration:none;@media (any-hover:hover){&:hover{color:var(--text-description-color)}}}& video{translate:0 -2px}}label[data-astro-cid-wqridlde]{--padding:4px;width:50px;height:24px;padding:var(--padding);cursor:pointer;display:inline-block;position:relative;& input{opacity:0;width:0;height:0}& .toggle-thumb{--toggle-gap:8px;justify-content:space-between;align-items:center;gap:var(--toggle-gap);background-color:var(--bg-toggle-thumb);border-radius:var(--radius);transition:var(--transition-bg);display:flex;position:absolute;inset:0;overflow:hidden;&.active:before{--offset:calc(var(--padding) / 2);translate:calc(var(--size) + var(--toggle-gap) + var(--offset))}&:before{--size:16px;content:"";top:calc(var(--toggle-gap) / 2);left:calc(var(--toggle-gap) / 2);width:var(--size);height:var(--size);background-color:var(--text-color);transition:translate .3s ease, var(--transition-bg);border-radius:50%;position:absolute}& svg{&:nth-child(odd){translate:calc(var(--toggle-gap) / 2)}&:nth-child(2n){translate:calc((var(--toggle-gap) / 2) * -1)}}}}nav[data-astro-cid-l7arcky5]#menu{background-color:color-mix(in srgb, var(--bg-color), transparent 30%);backdrop-filter:blur(12px);padding-block:1rem;padding-inline:var(--mobile-inline-padding);text-align:right;z-index:1;position:sticky;top:0;@media (width>=768px){backdrop-filter:none;text-align:initial;background:0 0;padding:0;top:36px}& ul{display:none;@media (width>=768px){--gap:35px;background-color:color-mix(in srgb, var(--bg-color), transparent 30%);backdrop-filter:blur(12px);align-items:center;gap:var(--gap);border:1px solid var(--border-color);width:fit-content;transition:var(--transition-border);border-radius:1000px;margin:36px auto 0;padding:16px 24px;display:flex;& li{position:relative;&:not(:last-child):after{--size:3px;content:"";width:var(--size);height:var(--size);translate:calc(var(--gap) / 2) -50%;background-color:var(--bg-separator);transition:var(--transition-bg);border-radius:50%;position:absolute;top:50%;right:0}& .language{align-items:center;gap:4px;display:flex;& span:first-child{line-height:0}}}& a{--hover-color:color-mix(in srgb, var(--text-color), var(--bg-color) 40%);color:var(--text-color);transition:var(--transition-text);text-decoration:none;&.active,&:active,&:focus{color:var(--hover-color)}@media (any-hover:hover){&:hover{color:var(--hover-color)}}}}}& button{--hover-color:color-mix(in srgb, var(--text-color), var(--bg-color) 40%);color:var(--text-color);transform:var(--transition-text);background:0 0;border:none;padding:0;&:active{color:var(--hover-color)}@media (any-hover:hover){&:hover{color:var(--hover-color)}}@media (width>=768px){display:none}}}dialog[data-astro-cid-l7arcky5]{background-color:var(--bg-secondary-color);border-radius:var(--radius);border:1px solid var(--border-color);width:70vw;transition:opacity .3s ease, transform .3s ease, overlay .5s ease allow-discrete, display .3s ease allow-discrete;opacity:0;backdrop-filter:blur();position:fixed;transform:translateY(1em);&::backdrop{backdrop-filter:blur(4px);transition:display .3s allow-discrete, overlay .5s allow-discrete, background-color .3s;background-color:#0000}&[open]::backdrop{background-color:#00000080}&[open]{opacity:1;transform:translateY(0)}@starting-style{&[open]{opacity:0;transform:translateY(-1em)}&[open]::backdrop{background-color:#0000}}& nav{text-align:center;color:var(--text-color);flex-direction:column;gap:24px;padding:24px;display:flex;& a{color:var(--text-color);transition:var(--transition-text);text-decoration:none;&:hover{color:var(--text-description-color)}}}& #close{--position:8px;color:var(--text-color);translate:calc(var(--position) * -1) var(--position);background:0 0;border:none;position:absolute;top:0;right:0;&:active{color:var(--text-description-color)}}}body.no-scroll{overflow:hidden}.socials[data-astro-cid-fvhemjle]{display:none;@media (width>=1200px){display:initial;position:fixed;bottom:0;left:0;translate:46px;& nav{flex-direction:column;gap:24px;display:flex;&:after{content:"";background-color:var(--text-color);width:1px;height:127px;margin-inline:auto}& a{color:var(--text-color);transition:var(--transition-text);text-decoration:none;&:hover{color:var(--text-description-color)}}}}}*,:before,:after{box-sizing:border-box;background-repeat:no-repeat}:before,:after{text-decoration:inherit;vertical-align:inherit}:where(:root){cursor:default;overflow-wrap:break-word;tab-size:4;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;line-height:1.5}:where(body){margin:0}:where(h1){margin:.67em 0;font-size:2em}:where(dl,ol,ul) :where(dl,ol,ul){margin:0}:where(hr){color:inherit;height:0}:where(nav) :where(ol,ul){padding:0;list-style-type:none}:where(nav li):before{content:"​";float:left}:where(pre){font-family:monospace;font-size:1em;overflow:auto}:where(abbr[title]){text-decoration:underline dotted}:where(b,strong){font-weight:bolder}:where(code,kbd,samp){font-family:monospace;font-size:1em}:where(small){font-size:80%}:where(audio,canvas,iframe,img,svg,video){vertical-align:middle}:where(iframe){border-style:none}:where(svg:not([fill])){fill:currentColor}:where(table){border-collapse:collapse;border-color:inherit;text-indent:0}:where(button,input,select){margin:0}:where(button,[type=button i],[type=reset i],[type=submit i]){-webkit-appearance:button}:where(fieldset){border:1px solid #a0a0a0}:where(progress){vertical-align:baseline}:where(textarea){resize:vertical;margin:0}:where([type=search i]){-webkit-appearance:textfield;outline-offset:-2px}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}:where(dialog){color:#000;background-color:#fff;border:solid;width:fit-content;height:fit-content;margin:auto;padding:1em;position:absolute;left:0;right:0}:where(dialog:not([open])){display:none}:where(details>summary:first-of-type){display:list-item}:where([aria-busy=true i]){cursor:progress}:where([aria-controls]){cursor:pointer}:where([aria-disabled=true i],[disabled]){cursor:not-allowed}:where([aria-hidden=false i][hidden]){display:initial}:where([aria-hidden=false i][hidden]:not(:focus)){clip:rect(0, 0, 0, 0);position:absolute}:where(iframe,img,input,video,select,textarea){max-width:100%;height:auto}html{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}code,kbd,samp,pre{font-family:ui-monospace,Menlo,Consolas,Roboto Mono,Ubuntu Monospace,Noto Mono,Oxygen Mono,Liberation Mono,monospace,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}html{--bg-color:#000;--bg-secondary-color:#1e1e1e;--bg-toggle-thumb:#343434;--bg-card-contributions:#4847474d;--bg-separator:#5a5a5a;--text-color:#fff;--text-description-color:#a6a6a6;--font:"Inter Variable", sans-serif;--border-color:#5a5a5a;--section-divider-color:color-mix(in srgb, var(--border-color), transparent 42%);--border-card-contributions-color:#272727;--radius:24px;--mobile-inline-padding:22px;--transition-bg:background-color .15s ease;--transition-text:color .15s ease;--transition-border:border-color .15s ease;scroll-behavior:smooth;scroll-padding-top:96px;@media (width>=768px){scroll-padding-top:126px}}html.dark{--bg-color:#f7f9fb;--bg-secondary-color:#f0f3f6;--bg-toggle-thumb:#d5d5d5;--bg-card-contributions:#fff;--bg-separator:#333;--text-color:#333;--text-description-color:#646464;--border-color:#e1e6eb;--border-card-contributions-color:#e1e6eb}html[data-animations-ready=true] [data-animate-card]{opacity:0;transition:opacity .32s cubic-bezier(.16,1,.3,1),transform .32s cubic-bezier(.16,1,.3,1),box-shadow .26s cubic-bezier(.16,1,.3,1);transition-delay:var(--card-reveal-delay,0s);transform:translateY(10px)}html[data-animations-ready=true] [data-animate-card].is-visible{opacity:1;transform:translateY(0)}@media (width<768px){html[data-animations-ready=true] [data-animate-card]{transition:opacity .42s cubic-bezier(.22,1,.36,1),transform .42s cubic-bezier(.22,1,.36,1),box-shadow .3s cubic-bezier(.22,1,.36,1);transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){html[data-animations-ready=true] [data-animate-card]{opacity:1;transition:none;transform:none}}body{background-color:var(--bg-color);color:var(--text-color);font-family:var(--font);transition:var(--transition-bg), var(--transition-text)}h1{text-wrap:balance;margin:0;font-size:2.25rem;font-weight:700;@media (width>=768px){font-size:4rem}}h2{overflow-wrap:anywhere;text-wrap:balance;margin:0;font-size:2rem;font-weight:600;line-height:1.12;@media (width>=768px){font-size:2.5rem}}h3{margin:0;font-size:1.5rem;font-weight:600}h4{margin:0;font-size:1.25rem;font-weight:600}p{margin:0}.headline-1{font-size:2rem;font-weight:500;@media (width>=768px){font-size:2.5rem}}.headline-2{font-size:1.5rem;font-weight:600}.headline-3{font-size:1.4rem}.headline-4{font-size:1.25rem}.about[data-astro-cid-szf7lw6w]{padding-bottom:120px;& h2{white-space:normal;justify-content:center;align-items:center;gap:24px;display:flex;@media (width>=768px){white-space:nowrap;justify-content:start;&:after{content:"";background-color:var(--border-color);width:100%;height:1px;display:block}}}& .info{background-color:var(--bg-card-contributions);border-radius:4px;flex-direction:column;align-items:center;gap:32px;margin-top:48px;padding:24px 16px;display:flex;@media (width>=768px){max-width:470px;margin-inline:auto;padding:48px}@media (width>=1200px){flex-direction:row;max-width:fit-content}& .description{flex:1;& p{color:var(--text-description-color);margin-top:24px}}}}html{& .tech{transition:var(--transition-bg);background-color:#46505d}& .astro,& .html{transition:var(--transition-bg);background-color:#7f4932}& .css{transition:var(--transition-bg);background-color:#324b7f}& .tailwindcss,& .typescript,& .react{transition:var(--transition-bg);background-color:#32547f}& .sass{transition:var(--transition-bg);background-color:#602957}& .open-props{transition:var(--transition-bg);background-color:#3a4367}& .javascript{transition:var(--transition-bg);background-color:#665e24}& .php{transition:var(--transition-bg);background-color:#616161}& .wordpress{transition:var(--transition-bg);background-color:#3a4367}& .firebase{transition:var(--transition-bg);background-color:#7f6932}& .pwa{color:#000;transition:var(--transition-bg), var(--transition-text);background-color:#c4c4c4}& .flutter{transition:var(--transition-bg);background-color:#6cabe0}& .dart{transition:var(--transition-bg);background-color:#87d2cc}& .laravel{transition:var(--transition-bg);background-color:#f5aaa5}& .gcp{transition:var(--transition-bg);background-color:#ebd28a}& .mysql{transition:var(--transition-bg);background-color:#aebbc0}& .nextjs{transition:var(--transition-bg);background-color:#b0b0b0}& .nodejs{transition:var(--transition-bg);background-color:#355219}& .aws{transition:var(--transition-bg);background-color:#faca83}& .graphql{transition:var(--transition-bg);background-color:#d198bf}& .bootstrap{transition:var(--transition-bg);background-color:#cd99fa}& .docker{transition:var(--transition-bg);background-color:#92cefc}& .cloudflare,& .fastapi,& .fastify,& .mongo-db,& .mongoose,& .nest-js,& .openapi,& .postgressql,& .woocommerce{transition:var(--transition-bg);background-color:#496171}& .kubernetes{transition:var(--transition-bg);background-color:#6e88be}}html.dark{& .tech{background-color:#c7ced8}& .astro,& .html{background-color:#ffbc96}& .css{background-color:#1c80bf5e}& .tailwindcss,& .typescript,& .react{background-color:#bddaff}& .sass{background-color:#cfbfcd}& .open-props{background-color:#c1cbf1}& .javascript{background-color:#e2da9a}& .php{background-color:#cacaca}& .wordpress{background-color:#b1b8d1}& .firebase{background-color:#fd8}& .flutter{background-color:#88ddf8}& .nodejs{background-color:#71a243}& .nextjs{background-color:#666}& .cloudflare,& .fastapi,& .fastify,& .mongo-db,& .mongoose,& .nest-js,& .openapi,& .postgressql,& .woocommerce{background-color:#c3d7e5}}.building[data-astro-cid-si7xvzix]{padding-bottom:120px;& .section-heading{gap:12px;margin-bottom:48px;display:grid;& h2,& p{margin:0}& h2{text-align:center;white-space:normal;justify-content:center;align-items:center;gap:24px;display:flex;@media (width>=768px){white-space:nowrap;&:before,&:after{content:"";background-color:var(--border-color);width:100%;height:1px;display:block}}}& p{color:var(--text-description-color);text-align:center;@media (width>=768px){max-width:620px;margin-inline:auto}}}& .building-list{gap:32px;display:grid}& .building-card{background-color:var(--bg-card-contributions);border:1px solid var(--border-card-contributions-color);transition:var(--transition-bg), var(--transition-border);border-radius:4px;display:grid;overflow:hidden;@media (width>=960px){grid-template-columns:minmax(320px,.85fr) 1fr}}& .media{background-color:var(--bg-secondary-color);min-height:240px;@media (width>=960px){min-height:100%}}& img{object-fit:contain;width:100%;height:100%;min-height:240px;display:block}& .content{flex-direction:column;gap:20px;padding:24px;display:flex;@media (width>=768px){padding:32px}}& .meta,& .badges,& .links{flex-wrap:wrap;gap:8px;display:flex}& .meta span{border:1px solid var(--border-color);color:var(--text-description-color);border-radius:1000px;align-items:center;gap:8px;padding:4px 12px;font-size:.8125rem;display:inline-flex}& h3,& .subtitle,& .description{margin:0}& .subtitle,& .description,& li{color:var(--text-description-color)}& ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}& li{grid-template-columns:16px 1fr;gap:10px;display:grid;&:before{content:"";background-color:var(--text-color);border-radius:50%;width:6px;height:6px;margin-top:.65em}}& .badge-tech{border-radius:1000px;align-items:center;gap:8px;padding:4px 12px;font-size:.75rem;display:inline-flex}& .links{margin-top:auto;& a{color:var(--text-color);border:1px solid var(--text-color);transition:var(--transition-bg), var(--transition-text), var(--transition-border);border-radius:1000px;align-items:center;gap:10px;padding:6px 16px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex;&:hover{background-color:var(--bg-secondary-color)}}}}a[data-astro-cid-ekguhzzh]{color:var(--text-color);border:1px solid var(--text-color);transition:var(--transition-bg), var(--transition-text);border-radius:1000px;justify-content:center;gap:10px;padding:12px 40px;font-weight:500;text-decoration:none;display:inline-flex;&:hover{background-color:var(--bg-secondary-color)}&.filled{background-color:var(--text-color);color:var(--bg-color);transition:var(--transition-bg), var(--transition-text);&:hover{background-color:var(--bg-secondary-color);color:var(--text-color)}}}.contact[data-astro-cid-p2ow4bj2]{text-align:center;border:1px solid #80808054;border-radius:4px;padding-block:97px;padding-inline:1rem;position:relative;overflow:hidden;@media (width>=768px){padding-inline:0}& h3{font-weight:initial}& .buttons-container{flex-direction:column;justify-content:center;gap:13px;margin-top:24px;display:flex;@media (width>=768px){flex-direction:row}}& canvas{z-index:-1;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}}.card-contributions[data-astro-cid-sulob3zn]{background-color:var(--bg-card-contributions);border:1px solid var(--border-card-contributions-color);height:100%;transition:var(--transition-bg), box-shadow .26s cubic-bezier(.16, 1, .3, 1), transform .26s cubic-bezier(.16, 1, .3, 1);border-radius:4px;flex-direction:column;display:flex;overflow:hidden;@media (hover:hover) and (pointer:fine){&.is-visible:hover{box-shadow:0 16px 38px color-mix(in srgb, var(--text-color), transparent 90%);transition-delay:0s;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){&.is-visible:hover{box-shadow:none;transform:none}}@media (width<768px){& .links{display:grid!important;& a{justify-content:center!important}}}@media (width>=768px){margin-inline:auto}& .media{background-color:var(--bg-secondary-color);aspect-ratio:16/9;overflow:hidden}& img{object-fit:cover;width:100%;height:100%;transition:transform .28s cubic-bezier(.16,1,.3,1);display:block}@media (hover:hover) and (pointer:fine){&.is-visible:hover img[data-astro-cid-sulob3zn]{transform:scale(1.025)}}& .content{flex-direction:column;flex:1;gap:16px;padding:16px;display:flex}& h3{margin:0;& a{color:inherit;transition:var(--transition-text);text-decoration:none;&:hover{color:var(--text-description-color)}}}& p{color:var(--text-description-color);transition:var(--transition-text);margin:0}& .badges{flex-wrap:wrap;gap:12px 8px;display:flex;& .badge-tech{border-radius:1000px;align-items:center;gap:8px;padding:4px 12px;font-size:.75rem;display:inline-flex}}& .links{flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;display:flex;& a{color:var(--text-color);border:1px solid var(--text-color);transition:var(--transition-bg), var(--transition-text), transform .24s cubic-bezier(.16, 1, .3, 1);border-radius:1000px;align-items:center;gap:10px;padding:6px 16px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex;& svg{flex-shrink:0;transition:transform .24s cubic-bezier(.16,1,.3,1)}&:hover{background-color:var(--bg-secondary-color);& svg{transform:translate(2px)}}}}}.contributions[data-astro-cid-y7jqp3zd]{padding-bottom:120px;& h2{text-align:center;white-space:normal;justify-content:center;align-items:center;gap:24px;margin-bottom:48px;display:flex;@media (width>=768px){text-align:initial;white-space:nowrap;justify-content:end;&:before{content:"";background-color:var(--border-color);width:100%;height:1px;display:block}}}& .contributions-grid{align-items:stretch;gap:36px;display:grid;@media (width>=768px){grid-template-columns:repeat(2,1fr)}@media (width>=1200px){grid-template-columns:repeat(3,1fr)}}}.experience[data-astro-cid-fvemjl4k]{padding-bottom:120px;& h2{white-space:normal;justify-content:center;align-items:center;gap:24px;display:flex;@media (width>=768px){white-space:nowrap;justify-content:start;&:after{content:"";background-color:var(--border-color);width:100%;height:1px;display:block}}}}.jobs[data-astro-cid-fvemjl4k]{flex-direction:column;gap:32px;margin-top:48px;display:flex;@media (width>=768px){flex-direction:row}& .job-title{flex-direction:row;display:flex;overflow-x:auto;mask:linear-gradient(90deg,#0000,#fff 0% 70%,#0000);@media (width>=768px){flex-direction:column;mask:none}& button{color:var(--text-description-color);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;padding:16px 24px;position:relative;&:before{content:"";width:100%;height:100%;transition:var(--transition-bg), border-color .15s ease;border-bottom:2px solid #5a5a5a;position:absolute;top:0;left:0}@media (width>=768px){&:before{border-bottom:none;border-left:2px solid #5a5a5a}}&.active{color:var(--text-color);&:before{border-bottom:3px solid var(--text-color);translate:0 .8px}@media (width>=768px){&:before{border-left:3px solid var(--text-color);border-bottom:none;translate:-.5px}}}@media (any-hover:hover){&:hover{color:var(--text-color);transition:var(--transition-text)}}}}& .jobs-descriptions{flex:1;& .description{animation:1.2s fade;display:none;&.active{display:block}&>[data-astro-cid-fvemjl4k]+[data-astro-cid-fvemjl4k],& ul li{margin-top:16px}& .job-time{align-items:center;gap:16px;display:flex;& .badge{background-color:var(--bg-secondary-color);border:1px solid var(--text-color);transition:var(--transition-bg);border-radius:1000px;padding:2px 12px;font-size:.875rem}}& p{text-wrap:pretty}& .headline-4,& p,& ul{color:var(--text-description-color)}}}}@keyframes fade{0%{opacity:0}to{opacity:1}}.hero[data-astro-cid-cvys7hfr]{padding-top:20px;padding-bottom:56px;@media (width>=768px){padding-block:129px}&>div[data-astro-cid-cvys7hfr]{text-align:center;border:1px solid var(--border-color);border-radius:var(--radius);margin-inline:auto;padding:120px 29px;position:relative;overflow:hidden;@media (width>=992px){padding:148px 125px}& canvas{opacity:.6;z-index:-1;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}&>[data-astro-cid-cvys7hfr]+[data-astro-cid-cvys7hfr]:not(canvas){margin-top:24px}& .badge{background-color:var(--bg-secondary-color);border:1px solid var(--text-color);width:fit-content;transition:var(--transition-bg), var(--transition-border);border-radius:1000px;align-items:center;gap:8px;margin-inline:auto;padding:6px 12px;font-size:.875rem;display:flex;& .dot{--size:6px;--color:#22c55e;width:var(--size);height:var(--size);background-color:var(--color);box-shadow:0 0 0 0 var(--color);border-radius:50%;animation:2s infinite pulse;transform:scale(1)}}& p{color:var(--text-description-color);font-size:1.25rem;@media (width>=768px){font-size:1.5rem}&>strong[data-astro-cid-cvys7hfr]{color:var(--text-color)}}& .button-container{flex-direction:column;justify-content:center;gap:13px;display:flex;@media (width>=768px){flex-direction:row}}}}@keyframes pulse{0%{transform:scale(.95);box-shadow:0 0 #22c55eb3}70%{transform:scale(1);box-shadow:0 0 0 6px #0000}to{transform:scale(.95);box-shadow:0 0 #0000}}.open-source[data-astro-cid-zasuxfju]{padding-bottom:120px;& .section-heading{gap:12px;margin-bottom:48px;display:grid;& h2,& p{margin:0}& h2{white-space:normal;align-items:center;gap:24px;display:flex;@media (width>=768px){white-space:nowrap;&:after{content:"";background-color:var(--border-color);width:100%;height:1px;display:block}}}& p{color:var(--text-description-color);@media (width>=768px){max-width:620px}}}& .open-source-grid{gap:36px;display:grid;@media (width>=768px){grid-template-columns:repeat(2,1fr)}@media (width>=1200px){grid-template-columns:repeat(3,1fr)}}& .open-source-card{background-color:var(--bg-card-contributions);border:1px solid var(--border-card-contributions-color);height:100%;transition:var(--transition-bg), box-shadow .26s cubic-bezier(.16, 1, .3, 1), transform .26s cubic-bezier(.16, 1, .3, 1);border-radius:4px;flex-direction:column;margin-inline:auto;display:flex;overflow:hidden;@media (hover:hover) and (pointer:fine){&.is-visible:hover{box-shadow:0 16px 38px color-mix(in srgb, var(--text-color), transparent 90%);transition-delay:0s;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){&.is-visible:hover{box-shadow:none;transform:none}}}& .media{aspect-ratio:16/9;background-color:var(--bg-secondary-color);overflow:hidden}& img{object-fit:cover;width:100%;height:100%;transition:transform .28s cubic-bezier(.16,1,.3,1);display:block}@media (hover:hover) and (pointer:fine){& .open-source-card.is-visible:hover img{transform:scale(1.025)}}& .content{flex-direction:column;flex:1;gap:16px;padding:16px;display:flex}& h3,& .subtitle,& .description{margin:0}& .subtitle,& .description{color:var(--text-description-color)}& .badges,& .links{flex-wrap:wrap;gap:8px;display:flex}& .badge-tech{border-radius:1000px;align-items:center;gap:8px;padding:4px 12px;font-size:.75rem;display:inline-flex}& .links{margin-top:auto;& a{color:var(--text-color);border:1px solid var(--text-color);transition:var(--transition-bg), var(--transition-text), transform .24s cubic-bezier(.16, 1, .3, 1);border-radius:1000px;align-items:center;gap:10px;padding:6px 16px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex;& svg{flex-shrink:0;transition:transform .24s cubic-bezier(.16,1,.3,1)}&:hover{background-color:var(--bg-secondary-color);& svg{transform:translate(2px)}}}}}.card-project[data-astro-cid-tngbzbkr]{margin-bottom:86px;align-items:center;gap:48px;max-width:434px;margin-inline:auto;display:grid;@media (width<1200px){& .links{display:grid!important;& a{justify-content:center!important}}}@media (width>=1200px){grid-template-columns:434px 1fr;max-width:fit-content;&:nth-child(odd){grid-template-columns:1fr 434px;& .description{order:-1}}}& .media{border-radius:4px;transition:box-shadow .26s cubic-bezier(.16,1,.3,1),transform .26s cubic-bezier(.16,1,.3,1);overflow:hidden}& img{width:100%;height:auto;transition:transform .28s cubic-bezier(.16,1,.3,1);display:block}@media (hover:hover) and (pointer:fine){&.is-visible .media[data-astro-cid-tngbzbkr]:hover{box-shadow:0 16px 38px color-mix(in srgb, var(--text-color), transparent 90%);transform:translateY(-3px)}&.is-visible .media[data-astro-cid-tngbzbkr]:hover img[data-astro-cid-tngbzbkr]{transform:scale(1.025)}}@media (prefers-reduced-motion:reduce){&.is-visible .media[data-astro-cid-tngbzbkr]:hover{box-shadow:none;transform:none}&.is-visible .media[data-astro-cid-tngbzbkr]:hover img[data-astro-cid-tngbzbkr]{transform:none}}& .description{& h3{& a{color:inherit;transition:var(--transition-text);text-decoration:none;&:hover{color:var(--text-description-color)}}}& .badges{flex-wrap:wrap;gap:12px 8px;display:flex;& .badge-tech{border-radius:1000px;align-items:center;gap:8px;padding:4px 12px;font-size:.875rem;display:inline-flex}}& .links{align-items:center;gap:16px;display:flex;& a{color:var(--text-color);border:1px solid var(--text-color);transition:var(--transition-bg), var(--transition-text), transform .24s cubic-bezier(.16, 1, .3, 1);cursor:pointer;border-radius:1000px;align-items:center;gap:10px;padding:8px 24px;font-weight:500;text-decoration:none;display:inline-flex;& svg{flex-shrink:0;transition:transform .24s cubic-bezier(.16,1,.3,1)}&:hover{background-color:var(--bg-secondary-color);& svg{transform:translate(2px)}}}}& p{color:var(--text-description-color);font-size:1.125rem}&>[data-astro-cid-tngbzbkr]+[data-astro-cid-tngbzbkr]{margin-top:24px}}}.projects[data-astro-cid-zuc2hnyc]{padding-bottom:120px;& h2{white-space:normal;justify-content:center;align-items:center;gap:24px;margin-bottom:86px;display:flex;@media (width>=768px){white-space:nowrap;justify-content:start;&:after{content:"";background-color:var(--border-color);width:100%;height:1px;display:block}}& span{order:1}}}main[data-astro-cid-6ukhzjms]{max-width:1054px;padding-inline:var(--mobile-inline-padding);margin-inline:auto;&>section[data-astro-cid-6ukhzjms]+section[data-astro-cid-6ukhzjms]{border-top:1px solid var(--section-divider-color);padding-top:clamp(72px,10vw,120px)}@media (width>=1200px){padding-inline:0}}
