code[class*=language-],pre[class*=language-]{color:#ccc;background:none;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;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.punctuation{color:#ccc}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.number,.token.function{color:#f08d49}.token.property,.token.class-name,.token.constant,.token.symbol{color:#f8c555}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:#cc99cd}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#7ec699}.token.operator,.token.entity,.token.url{color:#67cdcc}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}:root{--primary: #1e293b;--secondary: #334155;--text: #e2e8f0;--accent: #93c5fd;--tag-bg: var(--accent);--tag-text: var(--primary)}*{margin:0;padding:0;box-sizing:border-box}body{color:var(--text);background:var(--primary);font-family:system-ui,-apple-system,sans-serif;line-height:1.5}h1{font-size:2.25rem;font-weight:700;color:var(--accent)}h2{font-size:1.5rem;color:var(--text);opacity:.9}p{text-align:justify}a{color:var(--accent);text-decoration:underline}.container{max-width:768px;margin:1rem auto;padding:0 1rem}.min-h-screen{min-height:100vh;display:flex;flex-direction:column}.flex-grow{flex-grow:1}nav{background:var(--secondary);padding:.5rem 0;box-shadow:0 2px 4px #0000001a;position:relative;z-index:1001}nav .container{display:flex;justify-content:space-between;align-items:center}.nav-brand{color:var(--text);text-decoration:none;font-size:1.25rem;font-weight:700}.mobile-menu-button{display:none;background:none;border:none;color:var(--text);cursor:pointer;padding:.5rem}.nav-menu{display:flex;gap:2rem;list-style:none;z-index:1000}.nav-menu a{color:var(--text);text-decoration:none;font-weight:500;transition:color .2s}.nav-menu a:hover{color:var(--accent)}footer{background:var(--secondary);padding:1rem 0;margin-top:auto;box-shadow:0 -2px 4px #0000001a;box-sizing:border-box;min-height:80px}footer .container{display:flex;justify-content:center;align-items:center;gap:2rem}.social-icons,.social-icons-large{display:flex;gap:1.5rem;justify-content:center}.social-icons a,.social-icons-large a{color:var(--text);transition:color .2s}.social-icons a{font-size:1.5rem}.social-icons-large a{font-size:1.8rem}.social-icons a:hover,.social-icons-large a:hover{color:var(--accent)}.social-section{text-align:center;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--secondary)}.social-section h2{margin-bottom:1rem;font-size:1.5rem}.contact-form{max-width:600px;margin:2rem auto}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--text)}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--secondary);background:var(--primary);color:var(--text);border-radius:4px;font-size:1rem}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #3b82f633}.submit-btn{width:100%;padding:.75rem;background:var(--tag-bg);color:var(--tag-text);border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:opacity .2s}.submit-btn:hover{opacity:.9}.submit-btn:disabled{opacity:.7;cursor:not-allowed}.error-message{color:#ef4444;font-size:.875rem;margin-top:.25rem}.success-message{background:#059669;color:#fff;padding:1rem;border-radius:4px;text-align:center;max-width:600px;margin:2rem auto}.profile-section{gap:2rem;align-items:center;margin-bottom:3rem;padding:2rem;background:var(--secondary);border-radius:8px;min-height:550px}.experience-section{margin-top:2rem}.experience-section h2{margin-bottom:2rem}.experience-card{background:var(--secondary);border-radius:8px;padding:2rem;margin-bottom:2rem;overflow:hidden;max-width:100%}.company-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--primary)}.company-header h3{font-size:1.5rem;color:var(--accent)}.company-header a{color:inherit;text-decoration:none}.position{margin-bottom:1.5rem}.position-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--primary);border-radius:4px;cursor:pointer;transition:background .2s}.position-header:hover{background:#0003}.position h4{font-size:1.2rem;margin:0}.period{color:var(--text);opacity:.8}.position-content{padding:1rem;margin-top:1rem}.highlights{list-style-type:disc;padding-left:1.5rem;margin-bottom:1.5rem}.position-project{margin-top:1.5rem;background:var(--primary);border-radius:4px}.position-project-header{padding:.75rem 1rem;cursor:pointer}.position-project-details{padding:1rem;border-top:1px solid rgba(255,255,255,.1);height:auto;overflow-x:hidden;word-wrap:break-word;max-width:100%;display:flex;flex-direction:column;align-items:center;text-align:justify}.position-project-period{display:block;font-size:.9rem;color:var(--text);opacity:.8;margin-bottom:.5rem}.position-project-description{margin-bottom:1rem;width:100%;text-align:justify}.position-projects-label{font-size:1.1rem;margin:1.5rem 0 1rem;color:var(--text)}.position-project-screenshots{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%;padding:1rem 0}.position-project-screenshot{max-width:600px;width:100%;height:300px;object-fit:cover;display:block;margin:0;border-radius:8px}.certificates-section{margin-top:4rem;min-height:1100px}.cert-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem;padding:2rem 0}.cert-card{background:var(--secondary);border-radius:8px;overflow:hidden;transition:transform .2s;text-align:center}.cert-image-wrapper{aspect-ratio:278/160;width:100%;overflow:hidden;position:relative;margin-top:1rem}.cert-card:hover{transform:translateY(-4px)}.cert-image{width:100%;height:160px;object-fit:cover}.cert-content{padding:1.5rem;display:flex;flex-direction:column;align-items:center}.cert-name{font-size:1.1rem;margin-bottom:1rem;text-align:center}.cert-desc-link{color:var(--accent);text-decoration:none;font-size:.9rem;display:inline-block}.prose{margin:0 auto}.prose h1{font-size:2.2rem;margin-bottom:1rem}.prose h2{font-size:1.6rem;margin:1.5rem 0 .75rem}.prose h3{margin:1rem 0}.prose a{color:var(--accent);text-decoration:underline}.prose pre,.prose code{white-space:pre;tab-size:2}.prose ul{list-style-type:disc;padding-left:1.5rem}.prose p{margin-bottom:1rem;line-height:1.7;text-align:justify;-webkit-font-smoothing:antialiased}.img-wrapper{position:relative;width:128px;height:128px;overflow:hidden}.skeleton{background:linear-gradient(90deg,#2a374a 25%,#334155,#2a374a 75%);background-size:200% 100%;animation:shimmer 1.5s infinite linear;position:absolute;inset:0;will-change:transform}.fit-image{width:100%;height:100%;object-fit:cover}.py-10{padding:2.5rem 0}.rounded-full{border-radius:50%}.w-32{width:8rem}.h-32{height:8rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mt-6{margin-top:1.5rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.text-center{text-align:center}.justify-between{justify-content:space-between}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{transform:translate(-50%)}to{transform:translate(50%)}}.position-content,.position-project-details{animation:slideDown .3s ease-out}@media (max-width: 768px){.profile-section{flex-direction:column;text-align:left;min-height:950px}.position-header{flex-direction:column;gap:.5rem;text-align:center}.position-project-screenshots{grid-template-columns:1fr}.position-project-screenshot{height:200px}.articles-grid{grid-template-columns:1fr;min-height:3600px}.article-hero{height:300px}.related-grid{grid-template-columns:1fr}.article-navigation{flex-direction:column;gap:1rem}.prev-article,.next-article{max-width:100%;text-align:left}.share-buttons{justify-content:left}.mobile-menu-button{display:block}.nav-menu{position:fixed;top:4rem;left:0;right:0;background:var(--secondary);flex-direction:column;align-items:center;padding:2rem;gap:1.5rem;transform:translateY(-100%);opacity:0;visibility:hidden;transition:all .3s ease-in-out;z-index:1000}.nav-menu.open{transform:translateY(0);opacity:1;visibility:visible}.featured-grid{padding:1rem;grid-template-columns:1fr;min-height:250px}.github-projects{padding:1rem;min-height:350px}.github-project{padding:1rem;width:100%}.project-preview{width:100%;height:100%;object-fit:contain;display:block}.project-preview-wrapper{aspect-ratio:388/200;width:100%;overflow:hidden;position:relative;margin-bottom:1rem}.cert-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));min-height:2200px}.cert-card{width:100%;height:100%;object-fit:contain;display:block}.cert-image-wrapper{aspect-ratio:278/160;width:100%;overflow:hidden;position:relative;margin-top:1rem}.article-cover{width:100%;height:100%;object-fit:contain;display:block}.article-cover-wrapper{aspect-ratio:388/200;width:100%;overflow:hidden;position:relative;margin-bottom:2rem}.article-hero{width:100%;height:100%;object-fit:contain;border-radius:8px;margin:2rem auto;display:block}.article-hero-wrapper{aspect-ratio:768/384;width:100%;overflow:hidden;position:relative}}.featured-projects{margin-bottom:4rem}.featured-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin-top:2rem}.featured-project{display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--secondary);border-radius:8px;overflow:hidden;transition:transform .2s;height:100%}.featured-project:hover{transform:translateY(-4px)}.project-preview-wrapper{width:100%;aspect-ratio:388/200;overflow:hidden;position:relative;background-color:var(--primary);margin-bottom:1rem}.project-preview{width:100%;height:100%;object-fit:cover;display:block;margin:0 auto;padding:1rem 0}.project-info{width:100%;padding:1.5rem;display:flex;flex-direction:column;align-items:center;height:100%}.project-info h3{margin:0 0 1rem;color:var(--accent)}.project-info p{margin-bottom:auto;flex-grow:1}.project-links{width:100%;display:flex;justify-content:center;gap:1rem;margin-top:1.5rem}.view-project{background:var(--tag-bg);color:var(--tag-text);padding:.5rem 1.5rem;border-radius:4px;text-decoration:none;transition:opacity .2s}.view-project:hover{opacity:.9}.github-projects{margin-top:3rem}.github-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:2rem;margin-top:2rem}.github-project{background:var(--secondary);padding:1.5rem;border-radius:8px;transition:transform .2s;display:flex;flex-direction:column;align-items:center;text-align:center;height:100%}.github-project:hover{transform:translateY(-4px)}.github-project h3{margin-bottom:1rem;color:var(--accent)}.github-project p{margin-bottom:auto;flex-grow:1}.github-project a{color:var(--tag-text);text-decoration:none;padding:.5rem 1rem;background:var(--tag-bg);border-radius:4px;display:inline-block;transition:opacity .2s;margin-top:1.5rem}.github-project a:hover{opacity:.9}.articles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem;margin-top:2rem;min-height:2000px}.article-card{background:var(--secondary);border-radius:8px;overflow:hidden;transition:transform .2s;height:100%;display:flex;flex-direction:column}.article-card:hover{transform:translateY(-4px)}.article-cover{width:100%;height:100%;object-fit:contain;display:block}.article-cover-wrapper{aspect-ratio:388/200;width:100%;overflow:hidden;position:relative}.article-info{padding:1.5rem;display:flex;flex-direction:column;flex-grow:1}.article-info h2{margin-bottom:1rem;color:var(--accent);font-size:1.17em}.article-date,.update-date{color:var(--text);opacity:.8;font-size:.9rem;margin-bottom:1rem}.article-excerpt{margin-bottom:auto}.article-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.tag{background:var(--tag-bg);color:var(--tag-text);padding:.5rem 1rem;border-radius:999px;font-size:.875rem;opacity:.9}.read-more{display:inline-block;background:var(--tag-bg);color:var(--tag-text);padding:.5rem 1rem;border-radius:4px;text-decoration:none;text-align:center;transition:opacity .2s}.read-more:hover{opacity:.9}.article-hero{width:100%;height:100%;object-fit:contain;display:block}.article-hero-wrapper{aspect-ratio:768/384;width:100%;overflow:hidden;position:relative;border-radius:8px;margin-bottom:2rem}.article-content h1{margin-bottom:1rem;text-align:justify}.article-meta{display:flex;gap:1rem;color:var(--text);opacity:.8;margin-bottom:1rem}.markdown-content{margin-top:2rem;width:100%;padding:0 1rem;line-height:1.7;word-wrap:break-word}.markdown-content p{width:100%;text-align:justify;margin-bottom:1rem}.markdown-content img{display:block;margin:2rem auto;max-width:100%;text-align:center;height:auto}.markdown-content img+em{display:block;text-align:center;margin-top:.5rem;color:var(--text);opacity:.8;font-style:italic;font-size:.9rem}.markdown-content ul{padding-left:2.5rem;margin:1rem 0}.markdown-content a{color:var(--accent);text-decoration:underline}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{margin-top:2rem;margin-bottom:1rem;width:100%}.markdown-content h1:first-child,.markdown-content h2:first-child,.markdown-content h3:first-child,.markdown-content h4:first-child{margin-top:0}.markdown-content p+h1,.markdown-content p+h2,.markdown-content p+h3,.markdown-content p+h4{margin-top:2rem}.markdown-content p+ul{margin-top:-.5rem}.markdown-content ul ul{margin:.5rem 0;padding-left:2rem}.markdown-content ul+p{margin-top:1rem}.back-button{background:none;border:none;color:var(--accent);padding:.5rem 0;margin-bottom:2rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:1rem;transition:opacity .2s}.back-button:hover{opacity:.8}.share-buttons{display:flex;gap:2rem;margin:1.5rem 0;align-items:center;justify-content:center}.share-buttons button{background:none;border:none;color:var(--text);cursor:pointer;padding:.5rem;transition:color .2s;display:flex;align-items:center;z-index:1;position:relative}.share-buttons button:hover{color:var(--accent)}.share-label{color:var(--text);opacity:.8;margin-right:1rem}.copy-message{color:var(--accent);font-size:.9rem;margin-left:.5rem}.article-navigation{display:flex;justify-content:space-between;margin:3rem 0;padding-top:2rem;border-top:1px solid var(--secondary)}.prev-article,.next-article{color:var(--text);text-decoration:none;max-width:45%;transition:color .2s}.prev-article:hover,.next-article:hover{color:var(--accent)}.next-article{text-align:right}pre{background:var(--primary);padding:1rem;border-radius:4px;overflow-x:auto;margin:1.5rem 0}code{font-family:Fira Code,monospace;font-size:.9rem}:not(pre)>code{background:var(--primary);padding:.2rem .4rem;border-radius:4px}.breadcrumbs{display:flex;gap:.5rem;padding:1rem .5rem;margin-bottom:2rem;color:var(--text);z-index:1}.breadcrumbs a{color:var(--accent);text-decoration:none}.breadcrumbs span{opacity:.7}.not-found{text-align:center;padding:4rem 1rem}.back-home{display:inline-block;margin-top:2rem;padding:.75rem 1.5rem;background:var(--secondary);color:var(--accent);text-decoration:none;border-radius:4px}.article-footer{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--secondary)}.article-footer h2{margin-bottom:2rem}.article-footer h3{font-size:1.2rem;margin-bottom:1rem}.loading-container{display:flex;justify-content:center;align-items:center;min-height:200px}.loading-spinner{width:50px;height:50px;border:3px solid var(--secondary);border-top:3px solid var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}img{loading:"lazy";decoding:"async"}
