@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8d697b304b401681-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba015fad6dcf6784-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/569ce4b8f30dc480-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_5cfdac{font-family:Geist,Geist Fallback;font-style:normal}.__variable_5cfdac{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9610d9e46709d722-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/747892c23ea88013-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/93f479601ee12b01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9a8899{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_9a8899{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}:root{--easeOutQuint:cubic-bezier(0.22,1,0.36,1)}.dark-mode{--background:#13151b;--foreground:#f1f1f1;--background-secondary:#1d2027;--background-tertiary:#292d37;--background-comment-author:#1f1b17;--background-comment-author-secondary:#332922;--foreground-outside-line:#70778a;--blog-article-rect:#312820;--link:#9A8973;--filter-default-icon:invert();--color-success:#154d15;--color-failure:#681e1e}.light-mode{--background:#eee5d7;--foreground:#171717;--background-secondary:#b4aca4;--background-tertiary:#918b83;--background-comment-author:#b3a898;--background-comment-author-secondary:#a39074;--foreground-outside-line:#8a7f70;--blog-article-rect:#b3a898;--link:#9c7846;--filter-default-icon:none;--color-success:#154d15;--color-failure:#681e1e}body,html{max-width:100vw;max-height:100vh;overflow-x:auto;overflow:hidden}body{color:var(--foreground);background:var(--background);font-family:Poppins,sans-serif,Arial,Helvetica}*{box-sizing:border-box;padding:0;margin:0}a{color:var(--link);text-decoration:none}.v-box{display:flex;flex-flow:column;height:100%}.h-box{display:flex;flex-flow:row;width:100%}.flex-center{margin:auto}.h-center{margin:0 auto}.v-center{margin:auto 0}.center-items{margin:auto}.v-flex{display:flex;flex-flow:column}.h-flex{display:flex;flex-flow:row}.v-flex-center{display:flex;flex-flow:column;margin:auto}.h-flex-center{display:flex;flex-flow:row;margin:auto}.sized-content{flex:0 1 auto}.sized-remaining{flex:1 1 auto}.sized-fixed{flex:0 1 var(--fixed-size)}.p-center{align-items:center}.d-center{justify-content:center}.radius-container{border-radius:10px}.cancel-button{border-radius:10px 0 0 10px;background-color:var(--color-failure)}.confirm-button{border-radius:0 10px 10px 0;background-color:var(--color-success)}.main-body-scroll{width:100%;margin:0 auto;overflow:auto;padding:10px}.main-body-div{max-width:800px;width:100%;margin:0 auto}.main-header{gap:10px;padding:5px;min-height:60px;overflow-x:auto}.header-btn{color:var(--foreground);border:0;background-color:transparent;padding:10px;font-weight:700;font-size:medium}.header-btn:hover{background-color:var(--background-secondary);padding:10px;border-radius:10px}.footer{grid-row-start:3;display:flex;gap:24px}.footer a{display:flex;margin-left:auto;margin-right:auto;gap:8px}.footer img{flex-shrink:0}.icon-default-filter{filter:var(--filter-default-icon)}button{cursor:pointer;justify-content:center;align-items:center}button,input,textarea{color:var(--foreground);background-color:var(--background-secondary);border:0;border-radius:10px;padding:10px}textarea{outline:none;box-shadow:none}select{background-color:var(--background-secondary);border:0;border-radius:10px;padding:10px;color:var(--foreground)}.fade-in-element{opacity:0;transform:translateX(-100px);visibility:hidden;transition:opacity .45s var(--easeOutQuint),transform .45s var(--easeOutQuint);will-change:opacity,visibility}.fade-in-element.is-visible{opacity:1;transform:none;visibility:visible}.stretch-element{align-self:stretch}.main-head-welcome{font-weight:700;font-size:xx-large}.main-head-welcome-subtitle{font-style:italic;opacity:70%}.main-head-paragraph{font-size:medium}.layout-icon{width:20px}.line-splitter span{min-height:10px}.link-tree-main-page{gap:50px}.link-tree-container{flex-wrap:wrap;max-width:600px;width:100%;gap:20px;align-items:flex-start}.link-tree-link{gap:10px}.main-head-container{height:500px;gap:20px}.main-head-image{width:300px;height:300px;border-radius:50%}.main-page-container{margin-bottom:400px;gap:80px}.section-spacer-container{position:relative}.section-main-container{max-width:1100px;width:100%;gap:20px}.section-title{font-weight:700;font-size:x-large}.outside-line-container{position:relative}.outside-line-circle{position:absolute;border-radius:50%;border:2px solid #70778a;background-color:var(--background);width:10px;height:10px}.section-line{position:absolute;border-left:2px dashed #70778a}.section-line-external-circle{position:absolute;border-radius:50%;border:2px solid #70778a;background-color:transparent;display:inline-block;content:"";width:20px;height:20px}.text-section{max-width:800px;width:100%;text-align:justify}.text-section>span{margin-bottom:10px}.experience-section-container{gap:25px}.job-description-container{max-width:900px;width:100%;gap:10px}.job-description-line-container{gap:5px}.job-description-circle{border-radius:50%;background-color:var(--foreground);width:15px;height:15px}.job-description-line{border-radius:2px;background-color:var(--foreground);width:5px;height:1px}.job-description-main{gap:10px}.job-description-metadata{gap:2px}.job-description-title{font-weight:700;font-size:large}.job-description-company{font-style:italic;font-size:small}.job-description-date,.job-description-location{font-style:italic;font-size:small;opacity:70%}.projects-main-container{gap:60px}.projects-main-container .line-splitter>span{margin-bottom:10px}.project-header-container{gap:5px}.projects-projects-container{gap:10px}.project-container{background-color:var(--background-secondary);padding:10px;border-radius:10px;gap:5px;align-self:stretch}.project-name{font-weight:700;font-size:large}.project-link{width:10px}.project-description span{min-height:10px}.project-image{max-width:900px;width:100%}.support-me-btn,.support-me-btn-area{padding:10px;gap:10px}.support-me-btn{border-radius:10px;background-color:var(--background-secondary)}.blog-card,.blog-card-container{padding:10px;gap:10px}.blog-card{max-width:700px;width:100%;min-height:150px;background-color:var(--background-secondary);color:var(--foreground)}.blog-card-title{font-size:large;font-weight:700}.blog-card-thumbnail,.blog-card-thumbnail-container{height:150px;width:240px;object-fit:contain}.blog-card-stats{font-size:small;opacity:50%;font-style:italic}.blog-post-container{max-width:100%}.blog-post-line{min-height:1rem}.blog-article{max-width:700px;width:100%;gap:10px}.blog-article .rect{background-color:var(--blog-article-rect);padding:5px;border-radius:5px}.blog-article-image,.blog-article-video{border-radius:10px;width:100%;height:100%}.blog-post-back-btn{margin-bottom:50px}.blog-article{position:relative;line-height:22px;text-justify:auto;text-align:justify}.blog-article>h1{margin:auto}.blog-article details{padding:10px;border-radius:10px;background-color:var(--background-secondary)}.blog-article details>.collapsible-body{margin-top:20px;margin-left:15px}.blog-article ul{margin-left:25px;gap:10px}.blog-article ul>li{margin:15px 0}.blog-article-container{position:relative;max-width:100%;margin:auto;transition:all .2s ease-out;translate:0}.blog-article-container:has(.blog-chapters-toggle.opened){translate:-55px}[custom-param=note]{background-color:var(--blog-article-rect);padding:5px;border-radius:5px;cursor:pointer;position:relative}.floating-note{position:absolute;width:200px;opacity:0;transition:opacity .1s ease-in-out;z-index:10000;box-shadow:1px 1px 25px black;text-justify:auto;text-align:left}.floating-note.shown{opacity:100%}.blog-chapters-container{position:absolute;top:0;left:-250px;height:90vh;gap:20px;text-justify:auto;text-align:left}.blog-chapter{background-color:var(--background-secondary);padding:10px;border-radius:10px}.blog-chapter.hidden{display:none}.blog-article-container{display:flex;align-items:flex-start}.blog-chapters-container{position:-webkit-sticky;position:sticky;margin-right:10px}.blog-chapters{overflow:hidden;left:2000px;transition:all .2s ease-out;gap:10px;width:0;padding:1rem;opacity:0;pointer-events:none}.blog-chapters.opened{width:180px;opacity:100%;pointer-events:all}.blog-chapters-area{overflow-y:auto;display:flex;flex-direction:column;justify-content:flex-start;gap:1rem;height:90vh;margin-right:10px;top:0;width:180px}.blog-chapters a{color:white}.blog-chapter-link{text-decoration:none;font-size:.9rem;width:145px}.blog-article-content{flex:1 1;padding:1rem 2rem}.blog-chapters-toggle{opacity:0;transition:opacity .5s ease-out;position:relative;cursor:pointer;z-index:15}.blog-chapters-toggle.opened,.blog-chapters-toggle.showed,.blog-chapters-toggle:hover{opacity:100%}.blog-chapters-toggle-show-area{position:absolute;width:400px;height:400px;z-index:10;cursor:default}.blog-chapters-toggle-icon{pointer-events:none;width:15px;height:15px;transition:rotate .2s ease-out;rotate:180deg}.blog-chapters-toggle-icon.opened{rotate:0deg}.comments-area{max-width:500px}.post-comment-area{border-radius:10px}.post-comment-area,.post-comment-area-text{background-color:var(--background-tertiary)}.post-comment-area-text{border-radius:0 0 10px 10px;max-width:100%}.post-comment-area-controls{gap:5px;padding:5px;border-radius:10px 10px 0 0}.post-comment-area-preview{overflow:hidden;background-color:var(--background-tertiary);border-radius:10px;opacity:0;min-height:0;height:0;transition:all .2s ease-out}.comment-post-reply-area{padding:10px;background-color:var(--background-secondary);border-radius:10px}.comment-post-reply-area:has(.post-comment-area:focus-within) .post-comment-area-preview,.post-comment-area-preview.writing{min-height:7rem;opacity:100%;padding:10px;overflow:auto}.post-comment-area-preview span{opacity:50%}.post-comment-area-preview.writing span{opacity:100%}.post-comment-area-preview p,.post-comment-text-area p{min-height:1rem}.post-comment-container{padding:10px;background-color:var(--background-secondary);border-radius:10px}.post-comment-container.author{background-color:var(--background-comment-author)}.post-comment-container-btn{background-color:var(--background-tertiary)}.post-comment-container.author .post-comment-container-btn{background-color:var(--background-comment-author-secondary)}.post-comment-like img.disabled,.post-comment-like img.liked,.post-comment-like.disabled,.post-comment-reply.disabled{opacity:50%;pointer-events:none}.post-comment-like img.liked{color:#8a1313;filter:invert(17%) sepia(73%) saturate(5123%) hue-rotate(356deg) brightness() contrast(102%)}.post-comment-replies-vertical-line{margin-left:15px;margin-right:15px;border-left:2px solid var(--background-tertiary);margin-bottom:10px}.token.string.prompt-prefix{color:#6aad6a}.token.symbol.prompt-path{color:#d9903d}.token.comment.output{color:white}.toolbar{height:30px}.toolbar .copy-to-clipboard-button{position:relative;top:10px;width:25px;height:25px;padding:0;border:none;background:none;cursor:pointer}.toolbar .copy-to-clipboard-button:before{content:"";display:block;width:100%;height:100%;background-image:url(/icons/duplicates.svg);background-repeat:no-repeat;background-position:50%;background-size:10px 10px}.toolbar .copy-to-clipboard-button span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.toolbar .copy-to-clipboard-button{transition:transform .1s ease,filter .1s ease}.toolbar .copy-to-clipboard-button:focus,.toolbar .copy-to-clipboard-button:hover{transform:scale(1.1);filter:brightness(1.2)}figure.code-block{border:1px solid var(--background-secondary);border-radius:4px;overflow:hidden}figure.code-block .code-toolbar pre{border-radius:0}figure.code-block figcaption.code-path{background:var(--background-secondary);color:var(--foreground);font-family:monospace;padding:.5em 1em;font-size:.9em}figure.code-block pre{margin:0;padding:1em;background:#2d2d2d}.blog-header{max-width:900px;gap:10px;margin:auto auto 50px}.blog-header-info-container{gap:10px}.blog-header-info-title{font-size:xx-large;font-weight:700;text-justify:auto;text-align:justify}.blog-header-info-date{font-style:italic;opacity:50%}.login-area-context-menu{position:absolute;left:-60px;top:100%;margin-top:8px;width:200px;background-color:var(--background-secondary);border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.1);z-index:1000}.login-area-btn{text-align:left;background:transparent}.login-area-btn,.login-btn{width:100%;padding:8px;border:none;cursor:pointer}.login-btn{color:#fff;border-radius:4px}.auth-login-button,.login-btn{background-color:#0070f3}.delete-account-btn{color:red}.dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:2000}.dialog-modal{background-color:var(--background-secondary);padding:24px;border-radius:8px;width:320px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.dialog-title{margin-top:0;margin-bottom:8px}.dialog-message{margin:0 0 16px}.dialog-buttons{text-align:right}.dialog-button{background-color:var(--background-tertiary);margin-left:8px;padding:8px 16px;border:none;border-radius:4px;cursor:pointer}.notification-container{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:3000}.notification-toast{display:flex;align-items:center;min-width:200px;max-width:360px;padding:10px;border-radius:10px;box-shadow:0 2px 6px rgba(0,0,0,.2);background:var(--background-tertiary);color:var(--foreground);position:relative;align-self:stretch}.toast-icon{margin-right:8px;font-size:1.2em}.toast-message{flex:1 1}.toast-close{background:none;border:none;font-size:1.2em;line-height:1;cursor:pointer;padding:0 4px}.toast--error{background:var(--background-tertiary)}.toast--error .toast-icon{color:#c00}.toast--ok{background:var(--background-tertiary)}.toast--ok .toast-icon{color:#080}.toast--info{background:var(--background-tertiary)}.toast--info .toast-icon{color:#008}.text-post{filter:invert(13%) sepia(30%) saturate(410%) hue-rotate(184deg) brightness(95%) contrast(88%)}@media (hover:hover) and (pointer:fine){.footer a:hover{text-decoration:underline;text-underline-offset:4px}}@media (max-width:600px){.footer{flex-wrap:wrap;margin:auto}.blog-chapters-container{display:none}.blog-card-thumbnail,.blog-card-thumbnail-container{height:90px;width:130px;object-fit:contain}}pre.diff-highlight>code .token.deleted:not(.prefix),pre>code.diff-highlight .token.deleted:not(.prefix){background-color:rgba(255,0,0,.1);color:inherit;display:block}pre.diff-highlight>code .token.inserted:not(.prefix),pre>code.diff-highlight .token.inserted:not(.prefix){background-color:rgba(0,255,128,.1);color:inherit;display:block}div.code-toolbar{position:relative}div.code-toolbar>.toolbar{position:absolute;z-index:10;top:.3em;right:.2em;transition:opacity .3s ease-in-out;opacity:0}div.code-toolbar:hover>.toolbar{opacity:1}div.code-toolbar:focus-within>.toolbar{opacity:1}div.code-toolbar>.toolbar>.toolbar-item{display:inline-block}div.code-toolbar>.toolbar>.toolbar-item>a{cursor:pointer}div.code-toolbar>.toolbar>.toolbar-item>button{background:none;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}div.code-toolbar>.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar>.toolbar-item>button,div.code-toolbar>.toolbar>.toolbar-item>span{color:#bbb;font-size:.8em;padding:0 .5em;background:#f5f2f0;background:rgba(224,224,224,.2);box-shadow:0 2px 0 0 rgba(0,0,0,.2);border-radius:.5em}div.code-toolbar>.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar>.toolbar-item>button:focus,div.code-toolbar>.toolbar>.toolbar-item>button:hover,div.code-toolbar>.toolbar>.toolbar-item>span:focus,div.code-toolbar>.toolbar>.toolbar-item>span:hover{color:inherit;text-decoration:none}code[class*=language-],pre[class*=language-]{color:#f8f8f2;background:none;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#272822}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#8292a2}.token.punctuation{color:#f8f8f2}.token.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#ae81ff}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#a6e22e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#e6db74}.token.keyword{color:#66d9ef}.token.important,.token.regex{color:#fd971f}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}