.astro-route-announcer{left:0;position:absolute;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;white-space:nowrap;width:1px}:root{--background-color:#fff;--text-color:#111;--secondary-text-color:#666;--tertiary-text-color:#555;--border-color:#eee;--border-hover-color:#111;--link-underline-color:#666;--link-hover-underline-color:#111;--card-bg-color:#f8f8f8;--card-border-color:#eee;--card-hover-bg-color:#f0f0f0;--card-hover-border-color:#ddd;--footer-border-color:#eee;--toggle-bg:#eee;--toggle-icon:#111;--toggle-shadow:rgba(0,0,0,.1);--accent-color:#06c}img{height:auto;max-width:100%}[data-theme=dark]{--background-color:#111;--text-color:#f5f5f5;--secondary-text-color:#ccc;--tertiary-text-color:#bbb;--border-color:#333;--border-hover-color:#f5f5f5;--link-underline-color:#999;--link-hover-underline-color:#f5f5f5;--card-bg-color:#222;--card-border-color:#333;--card-hover-bg-color:#2a2a2a;--card-hover-border-color:#444;--footer-border-color:#333;--toggle-bg:#333;--toggle-icon:#f5f5f5;--toggle-shadow:rgba(0,0,0,.5);--accent-color:#39f}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--background-color);color:var(--text-color);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.6;transition:background-color .3s ease,color .3s ease}@view-transition{navigation:auto}.static-elements,.static-elements *{view-transition-name:none!important}::view-transition-new(root),::view-transition-old(root){animation:none!important}::view-transition-new(.static-elements),::view-transition-old(.static-elements){animation:none!important}main#main-content{view-transition-name:main-content}::view-transition-new(main-content),::view-transition-old(main-content){animation-duration:.05s;animation-timing-function:ease-out}::view-transition-old(main-content){animation-name:fade-out}::view-transition-new(main-content){animation-name:fade-in}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}html{visibility:visible}*{transition:background-color .3s ease,color .3s ease,border-color .3s ease}@supports (-webkit-appearance:none){body,footer,header,main,nav{transition:background-color .1s ease,color .1s ease}.back-to-top,.tab,.theme-toggle{transition:background-color .05s ease,color .05s ease,border-color .05s ease}.cv-content,.cv-date,.cv-description,.cv-education,.cv-experience,.cv-item,.cv-section,.cv-skills,a,article,dd,div,dl,dt,h1,h2,h3,h4,h5,h6,li,ol,p,section,span,ul{transition:none!important}.cv-footer,.cv-header,.cv-navigation{transition:background-color .05s ease,color .05s ease}}.tab{transition:all .2s ease}.tab:hover{color:var(--text-color)}.tab:hover:after{background-color:var(--text-color);bottom:-1px;content:"";height:1px;left:0;opacity:.5;position:absolute;right:0}.tab:focus:not(:focus-visible){outline:none}.tab:focus-visible{border-radius:4px;outline:2px solid var(--accent-color);outline-offset:2px}a:focus:not(:focus-visible){outline:none}.back-to-top:focus:not(:focus-visible),.theme-toggle:focus:not(:focus-visible){outline:none}.back-to-top:focus-visible,.theme-toggle:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}#app-wrapper{margin:0 auto;max-width:680px;padding:40px 20px}main{min-height:0}.content{width:100%}.page-container{margin:0 auto;max-width:780px;padding:0 20px}.page-title{font-size:2.5rem;font-weight:700;margin-bottom:2rem}.card{background-color:var(--card-bg-color);border-radius:8px;padding:1.5rem;transition:transform .3s ease,box-shadow .3s ease}.card:hover{box-shadow:0 10px 20px #0000001a;transform:translateY(-3px)}.text-secondary{color:var(--secondary-text-color)}.text-center{text-align:center}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:2rem}.mb-4{margin-bottom:3rem}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:2rem}.mt-4{margin-top:3rem}.link-underline{border-bottom:1px solid var(--link-underline-color);color:var(--text-color);padding-bottom:1px;text-decoration:none;transition:border-color .2s}.link-underline:hover{border-color:var(--link-hover-underline-color)}.link-card{background-color:var(--card-bg-color);border-radius:4px;color:var(--text-color);display:inline-block;padding:.5rem 1rem;text-decoration:none;transition:all .2s ease}.link-card:hover{background-color:var(--accent-color);color:#fff}.profile-header{align-items:flex-start;display:flex;flex-direction:row;margin-bottom:24px}.profile-photo-wrap{margin-right:24px}.profile-photo{border-radius:50%;height:92px;overflow:hidden;width:92px}.profile-photo img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.profile-info{flex:1;min-width:0}.display-name h2{font-size:24px;font-weight:700;margin-bottom:4px}.profile-info p{color:var(--text-color);margin-bottom:4px}.badges{display:flex;flex-wrap:wrap;margin-top:4px}.link a{border-bottom:1px solid var(--link-underline-color);color:var(--text-color);padding-bottom:1px;text-decoration:none;transition:border-color .2s}.link a:hover{border-color:var(--link-hover-underline-color)}#tabs{border-bottom:1px solid var(--border-color);margin-bottom:24px;position:relative;z-index:10}.tabs{display:flex;gap:12px}.tab{display:inline-flex;margin-right:24px;padding:8px 0;position:relative;text-decoration:none}.tab span{color:var(--secondary-text-color)}.tab.selected span{color:var(--text-color)}.tab.selected:after{background-color:var(--text-color);bottom:-1px;content:"";height:1px;left:0;position:absolute;right:0}.about,.cv{margin-bottom:40px}.about p,.cv p{margin-bottom:16px;text-align:justify}#work-experience{margin-bottom:60px}h2,h3{font-size:16px;font-weight:700;letter-spacing:.5px;margin-bottom:24px;text-transform:uppercase}.experience{display:flex;margin-bottom:32px}.duration{color:var(--secondary-text-color);flex-shrink:0;font-size:14px;width:120px}.experience-content{flex:1}.title{font-weight:600;margin-bottom:4px}.title-link{color:var(--text-color);text-decoration:none}.title-link:hover{text-decoration:underline}.location{color:var(--tertiary-text-color);font-size:14px;margin-bottom:12px}.description ul{padding-left:20px}.description li{margin-bottom:8px}.details{margin-top:15px}.details-link{background-color:var(--card-bg-color);border:1px solid var(--card-border-color);border-radius:4px;color:var(--text-color);display:inline-block;font-size:14px;padding:6px 12px;text-decoration:none;transition:background-color .2s,border-color .2s}.details-link:hover{background-color:var(--card-hover-bg-color);border-color:var(--card-hover-border-color)}#projects{margin-top:10px}.project{border-bottom:1px solid var(--border-color);margin-bottom:40px;padding-bottom:30px}.project:last-of-type{border-bottom:none}h4{font-size:18px;font-weight:600;margin-bottom:16px}.project .description{margin-top:10px}.project p{margin-bottom:15px}.back-link{display:flex;justify-content:center;margin-bottom:20px;margin-top:40px}.back-link a{border-bottom:1px solid var(--link-underline-color);color:var(--text-color);padding-bottom:1px;text-decoration:none;transition:border-color .2s}.back-link a:hover{border-color:var(--link-hover-underline-color)}footer{border-top:1px solid var(--footer-border-color);margin-top:60px;padding-top:20px;text-align:center}.footer-content{margin:0 auto;max-width:680px}.contact-info h3{font-size:16px;letter-spacing:.5px;margin-bottom:15px;text-transform:uppercase}.contact-links{display:flex;gap:15px;justify-content:center;margin-bottom:20px}.contact-links a{border:1px solid var(--border-color);border-radius:30px;color:var(--text-color);font-size:15px;padding:8px 15px;text-decoration:none;transition:border-color .2s}.contact-links a:hover{border-color:var(--border-hover-color)}.copyright{color:var(--secondary-text-color);font-size:14px;margin-bottom:20px;margin-top:25px}.theme-toggle-wrapper{position:fixed;right:20px;top:20px;z-index:100}.theme-toggle{align-items:center;background-color:var(--toggle-bg);border:none;border-radius:50%;box-shadow:0 2px 8px var(--toggle-shadow);cursor:pointer;display:flex;height:44px;justify-content:center;overflow:hidden;padding:0;position:relative;transition:all .3s ease;width:44px}.theme-toggle:hover{box-shadow:0 4px 12px var(--toggle-shadow);transform:translateY(-2px)}.theme-toggle:active{transform:translateY(1px)}.theme-toggle .icon{align-items:center;display:flex;height:24px;justify-content:center;position:absolute;transition:opacity .2s ease,transform .2s ease;width:24px}.theme-toggle .icon img,.theme-toggle .icon svg{color:var(--toggle-icon);height:100%;width:100%}.theme-toggle .icon-sun{opacity:0;transform:scale(.5)}.theme-toggle .icon-moon,[data-theme=dark] .theme-toggle .icon-sun{opacity:1;transform:scale(1)}[data-theme=dark] .theme-toggle .icon-moon{opacity:0;transform:scale(.5)}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}.theme-toggle.clicked .icon{animation:pulse .3s ease-in-out}.back-to-top-wrapper{bottom:20px;opacity:0;position:fixed;right:20px;transition:opacity .3s ease,visibility .3s ease;visibility:hidden;z-index:50}.back-to-top-wrapper.show{opacity:1;visibility:visible}.back-to-top{align-items:center;background-color:var(--toggle-bg);border:none;border-radius:50%;box-shadow:0 2px 8px var(--toggle-shadow);cursor:pointer;display:flex;height:40px;justify-content:center;transition:all .3s ease;width:40px}.back-to-top:hover{background-color:var(--border-color);transform:translateY(-3px)}.back-to-top:active{transform:translateY(-1px)}.back-to-top .icon{align-items:center;color:var(--toggle-icon);display:flex;justify-content:center}.back-to-top .icon svg{height:16px;width:16px}.external-link-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none'%3E%3Cpath fill='%23111' d='M3.5 3a.5.5 0 0 0 0 1zm5 .5H9a.5.5 0 0 0-.5-.5zm-.5 5a.5.5 0 0 0 1 0zm-5.354.146a.5.5 0 1 0 .708.708zM3.5 4h5V3h-5zM8 3.5v5h1v-5zm.146-.354-5.5 5.5.708.708 5.5-5.5z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:contain;display:inline-block;height:12px;vertical-align:top;width:12px}[data-theme=dark] .external-link-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none'%3E%3Cpath fill='%23f5f5f5' d='M3.5 3a.5.5 0 0 0 0 1zm5 .5H9a.5.5 0 0 0-.5-.5zm-.5 5a.5.5 0 0 0 1 0zm-5.354.146a.5.5 0 1 0 .708.708zM3.5 4h5V3h-5zM8 3.5v5h1v-5zm.146-.354-5.5 5.5.708.708 5.5-5.5z'/%3E%3C/svg%3E")}.articles-page{margin:0 auto;max-width:780px;padding:0 20px}.articles-card{margin-bottom:2rem}.articles-card .post-title{font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.articles-card .post-title a{color:var(--text-color);text-decoration:none;transition:color .2s ease}.articles-card .post-title a:hover{color:var(--accent-color)}.articles-card .post-meta{color:var(--secondary-text-color);font-size:.9rem;margin-bottom:1rem}.articles-card .post-excerpt{margin-bottom:1rem}.articles-card .read-more{color:var(--accent-color);display:inline-block;font-weight:500;text-decoration:none;transition:color .2s ease}.articles-card .read-more:hover{text-decoration:underline}.no-posts{color:var(--secondary-text-color);padding:3rem 0;text-align:center}.pagination{margin-bottom:2rem;margin-top:3rem}.pagination-list{align-items:center;display:flex;justify-content:center;list-style:none;padding:0}.pagination-list li{margin:0 .3rem}.pagination-link{background-color:var(--card-bg-color);border-radius:4px;color:var(--text-color);display:inline-block;padding:.5rem 1rem;text-decoration:none;transition:all .2s ease}.pagination-link.current,.pagination-link:hover:not(.disabled){background-color:var(--accent-color);color:#fff}.pagination-link.disabled{cursor:not-allowed;opacity:.5}.post-header{margin-bottom:2rem}.post-cover{border-radius:8px;margin-bottom:1.5rem;overflow:hidden}.cover-image{height:auto;-o-object-fit:cover;object-fit:cover;width:100%}.post-title{font-size:2.5rem;font-weight:700;line-height:1.2;margin-bottom:1rem}.post-meta{align-items:center;color:var(--secondary-text-color);display:flex;flex-wrap:wrap;font-size:.9rem;margin-bottom:1rem}.post-meta time{margin-right:1rem}.post-tags{display:flex;flex-wrap:wrap}.tag{background-color:var(--card-bg-color);border-radius:4px;color:var(--secondary-text-color);display:inline-block;font-size:.8rem;margin:.2rem;padding:.3rem .6rem;text-decoration:none;transition:all .2s ease}.tag:hover{background-color:var(--accent-color);color:#fff}.post-content{line-height:1.8;margin-bottom:3rem}.post-content p{margin-bottom:1.5rem}.post-content h2,.post-content h3,.post-content h4{margin-bottom:1rem;margin-top:2rem}.post-content img{border-radius:8px;margin:1.5rem 0;max-width:100%}.post-content blockquote{border-left:4px solid var(--accent-color);color:var(--secondary-text-color);font-style:italic;margin-left:0;margin-right:0;padding-left:1rem}.post-content code{border-radius:4px;font-family:monospace;padding:.2rem .4rem}.post-content code,.post-content pre{background-color:var(--card-bg-color)}.post-content pre{border-radius:8px;margin:1.5rem 0;overflow:auto;padding:1rem}.post-content pre code{background-color:transparent;padding:0}.post-navigation{border-top:1px solid var(--border-color);padding-top:2rem}.post-nav-grid{display:grid;grid-template-columns:1fr auto 1fr;grid-gap:1rem;align-items:center}.next-post,.prev-post{max-width:250px}.next-post{text-align:right}.nav-label{color:var(--secondary-text-color);display:block;font-size:.8rem;margin-bottom:.5rem}.nav-link{align-items:center;color:var(--text-color);display:flex;text-decoration:none;transition:color .2s ease}.next-post .nav-link{justify-content:flex-end}.nav-link:hover{color:var(--accent-color)}.nav-thumbnail{border-radius:4px;height:60px;margin-right:.8rem;overflow:hidden;width:60px}.next-post .nav-thumbnail{margin-left:.8rem;margin-right:0;order:2}.nav-thumbnail img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.nav-title{font-weight:500}.contact-methods{gap:2rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-bottom:3rem}.contact-method h3{font-size:1.2rem;letter-spacing:normal;margin-bottom:1rem;text-transform:none}.contact-link{margin-bottom:1rem}.contact-link a{align-items:center;border-bottom:1px solid var(--link-underline-color);color:var(--text-color);display:inline-flex;font-size:1.1rem;font-weight:500;padding-bottom:2px;text-decoration:none;transition:border-color .2s}.contact-link a:hover{border-color:var(--link-hover-underline-color)}.contact-description{color:var(--secondary-text-color);font-size:.9rem}@media (max-width:768px){.contact-methods{grid-template-columns:1fr}.theme-toggle-wrapper{right:10px;top:10px}.theme-toggle{height:36px;width:36px}.theme-toggle svg{height:20px;width:20px}.back-to-top-wrapper{bottom:15px;right:15px}.back-to-top{height:36px;width:36px}}@media (max-width:640px){.profile-header{align-items:center;flex-direction:column;text-align:center}.profile-photo-wrap{margin-bottom:16px;margin-right:0}.experience{flex-direction:column}.duration{margin-bottom:8px;width:100%}}@media (max-width:480px){#app-wrapper{padding:20px 16px}}@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.back-to-top-wrapper,.footer-content,.theme-toggle-wrapper,footer{display:none!important}.break-inside{page-break-inside:avoid;-moz-column-break-inside:avoid;break-inside:avoid}section{page-break-after:auto;-moz-column-break-after:auto;break-after:auto}h3,h4{page-break-after:avoid;-moz-column-break-after:avoid;break-after:avoid}.experience,li{page-break-inside:avoid;-moz-column-break-inside:avoid;break-inside:avoid}.print-only{display:block!important}#tabs .tabs,#tabs a.tab,.tabs a{display:none!important}#tabs{border-bottom:1px solid var(--border-color)!important;display:block!important;margin-bottom:24px!important}.gdpr-notice{border-top:1px solid var(--border-color)!important;margin-top:30px!important;padding-top:20px!important;page-break-inside:avoid}.gdpr-notice p{line-height:1.4!important}.back-link{display:none!important}.no-print-border{border:none!important;box-shadow:none!important;margin-bottom:0!important;padding-bottom:0!important}@page{margin-bottom:0}#projects .project{page-break-inside:avoid}.details{display:none!important}:root,[data-theme=dark]{--background-color:#fff!important;--text-color:#111!important;--secondary-text-color:#444!important;--tertiary-text-color:#555!important;--border-color:#eee!important;--border-hover-color:#111!important;--link-underline-color:#999!important;--link-hover-underline-color:#111!important;--card-bg-color:#f8f8f8!important;--card-border-color:#eee!important;--card-hover-bg-color:#f0f0f0!important;--card-hover-border-color:#ddd!important;--footer-border-color:#eee!important}body{background-color:#fff!important;color:#000!important;font-size:12px!important}h2,h3{font-size:14px!important}.experience-content{font-size:11px!important}.description,.description li,.duration,.location{font-size:10px!important}.description li{line-height:1.3!important}.title{font-size:12px!important}.cv p{font-size:11px!important}a{color:#000!important;text-decoration:underline!important}.tab{text-decoration:none!important}.tab.selected:after{background-color:#000!important}svg{fill:#000!important;stroke:#000!important}audio{display:none!important}a{border-bottom:none!important;text-decoration:none!important}.external-link-icon{display:none!important}}.print-only{display:none}.gdpr-notice{color:#666;font-size:.8rem;margin:40px auto 0;max-width:680px}.gdpr-notice hr{border:none;border-top:1px solid var(--border-color);margin-bottom:15px}.gdpr-notice p{margin-bottom:10px}.contact-methods{align-items:stretch;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.contact-method{display:flex;flex-direction:column;justify-content:flex-start;min-height:100px;position:relative}.contact-link{align-items:center;display:flex;margin-bottom:.5rem;min-height:1.5em}[data-obfuscation]{display:inline-block;font-family:inherit;font-size:inherit;line-height:1.5;min-height:1.5em;min-width:4em;vertical-align:baseline}.contact-description{flex-shrink:0;line-height:1.6;margin-bottom:0;margin-top:.5rem;min-height:3em;position:relative;top:0;transform:translateZ(0);will-change:auto}@page{counter-increment:page;margin:.5in;@bottom-center{color:#666;content:"Page " counter(page) " of " counter(pages);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:8pt}}
