*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:system-ui,-apple-system,"SF Pro Text","Helvetica Neue",Helvetica,"Open Sans",Arial,sans-serif;line-height:1.8;color:#222;background-color:#fff;-webkit-font-smoothing:antialiased}@media (prefers-color-scheme: dark){body{background-color:#262626;color:#e0e0e0}}h1{font-size:1.5em;font-weight:700;margin-bottom:0.25em}h2{font-size:1.25em;font-weight:600;margin-bottom:0.5em}h3{font-size:1.1em;font-weight:600;margin-bottom:0.5em}p{margin-bottom:1em}a{color:inherit;text-decoration:none;border-bottom:1px dashed currentColor;padding-bottom:0.15em;transition:border-bottom-style 0.1s}a:hover{border-bottom-style:solid}ul,ol{margin-bottom:1em;padding-left:1.25em}ul li,ol li{margin-bottom:1em}img{max-width:100%;height:auto}code{font-family:"SF Mono","Cascadia Code",Consolas,monospace;font-size:0.9em;background-color:rgba(0,0,0,0.05);padding:0.15em 0.4em;border-radius:3px}@media (prefers-color-scheme: dark){code{background-color:rgba(255,255,255,0.1)}}pre{background-color:rgba(0,0,0,0.05);border-radius:4px;padding:1rem;overflow-x:auto;margin-bottom:1em}pre code{background:none;padding:0}@media (prefers-color-scheme: dark){pre{background-color:rgba(255,255,255,0.08)}}hr{border:none;border-top:1px solid rgba(0,0,0,0.1);margin:2em 0}@media (prefers-color-scheme: dark){hr{border-top-color:rgba(255,255,255,0.15)}}blockquote{border-left:2px solid currentColor;padding-left:1em;color:#555;margin-bottom:1em;font-style:italic}@media (prefers-color-scheme: dark){blockquote{color:#aaa}}.container{max-width:700px;margin:0 auto;padding:0 1.5rem}.site-content{padding:2rem 0;margin-bottom:25dvh}.profile{text-align:center;padding:3rem 0 2rem}.profile .profile-photo{width:120px;height:120px;border-radius:50%;margin-bottom:1rem}.profile h1{font-size:1.5em;margin-bottom:0.1em}.profile .subtitle{color:#555;margin-bottom:0.25rem}.profile .subtitle-detail{color:#555;font-size:0.9em;margin-bottom:1rem}.profile .contact-info{font-size:0.95em;margin-bottom:0}@media (prefers-color-scheme: dark){.profile .subtitle,.profile .subtitle-detail{color:#aaa}.profile .contact-info{color:#aaa}}.social-links{display:flex;justify-content:center;gap:1em;flex-wrap:wrap;margin-bottom:1rem}.social-links a{border-bottom:none;opacity:1;transition:opacity 80ms, transform 80ms;display:inline-flex}.social-links a svg{width:28px;height:28px}.social-links a:hover{opacity:0.8;transform:scale(1.1)}.social-links a:active{opacity:0.6;transform:scale(0.95)}.section{margin-bottom:2rem}.post-list{list-style:disc;padding-left:1.25em}.post-list li{margin-bottom:1em}.post{padding:1rem 0}.post .post-header{margin-bottom:2rem}.post .post-header h1{font-size:1.5em}.post .post-header .post-meta{color:#555;font-size:0.9em}@media (prefers-color-scheme: dark){.post .post-header .post-meta{color:#aaa}}.post .post-content{margin-bottom:2rem}.post-nav{display:flex;justify-content:space-between;gap:1rem;padding-top:1.5rem;border-top:1px solid rgba(0,0,0,0.1)}.post-nav .next{margin-left:auto}@media (prefers-color-scheme: dark){.post-nav{border-top-color:rgba(255,255,255,0.15)}}.page{padding:1rem 0}.project-list{list-style:disc;padding-left:1.25em}.project-list li{margin-bottom:1em}.project-tech{display:inline;font-size:0.85em;color:#555}@media (prefers-color-scheme: dark){.project-tech{color:#aaa}}@media (max-width: 500px){.profile{padding:2rem 0 1.5rem}}.site-header{padding:1rem 0}.site-header .container{display:flex;justify-content:space-between;align-items:center}.site-title{font-weight:700;font-size:1rem;border-bottom:none}.site-nav{display:flex;gap:1.5em}.site-nav a{font-size:0.9em;border-bottom:none;opacity:0.7;transition:opacity 80ms}.site-nav a:hover,.site-nav a.active{opacity:1}.nav-toggle{display:none}.nav-toggle-label{display:none;cursor:pointer;flex-direction:column;gap:5px}.nav-toggle-label span{display:block;width:22px;height:2px;background-color:currentColor}@media (max-width: 500px){.nav-toggle-label{display:flex}.site-nav{display:none;flex-direction:column;position:absolute;top:50px;right:1.5rem;background:#fff;padding:1rem 1.5rem;gap:0.75rem;z-index:10;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.1)}}@media (max-width: 500px) and (prefers-color-scheme: dark){.site-nav{background:#262626;box-shadow:0 2px 8px rgba(0,0,0,0.4)}}@media (max-width: 500px){.nav-toggle:checked ~ .site-nav{display:flex}}.site-footer{padding:1rem 0;text-align:center;font-size:0.85em;color:#555}@media (prefers-color-scheme: dark){.site-footer{color:#aaa}}.site-footer a{color:inherit}.post-tags{margin-top:0.5em}.post-tags .tag{font-size:0.8em;color:#555}@media (prefers-color-scheme: dark){.post-tags .tag{color:#aaa}}.post-tags .tag::before{content:"#"}.highlight{background:rgba(0,0,0,0.05);border-radius:4px;padding:1rem;margin-bottom:1em;overflow-x:auto}.highlight pre{margin:0;padding:0;background:none}.highlight .c,.highlight .cm,.highlight .c1,.highlight .cs{color:#6a737d;font-style:italic}.highlight .k,.highlight .kc,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt{color:#d73a49}.highlight .s,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .s2,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx,.highlight .s1{color:#032f62}.highlight .na{color:#005cc5}.highlight .nb{color:#005cc5}.highlight .nc{color:#6f42c1}.highlight .nf,.highlight .fm{color:#6f42c1}.highlight .no{color:#005cc5}.highlight .mi,.highlight .mf,.highlight .mh,.highlight .mo{color:#005cc5}.highlight .o,.highlight .ow{color:#d73a49}.highlight .p{color:inherit}.highlight .nn{color:#005cc5}@media (prefers-color-scheme: dark){.highlight{background:rgba(255,255,255,0.08)}.highlight .c,.highlight .cm,.highlight .c1,.highlight .cs{color:#8b949e}.highlight .k,.highlight .kc,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt{color:#ff7b72}.highlight .s,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .s2,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx,.highlight .s1{color:#a5d6ff}.highlight .na{color:#79c0ff}.highlight .nb{color:#79c0ff}.highlight .nc{color:#d2a8ff}.highlight .nf,.highlight .fm{color:#d2a8ff}.highlight .no{color:#79c0ff}.highlight .mi,.highlight .mf,.highlight .mh,.highlight .mo{color:#79c0ff}.highlight .o,.highlight .ow{color:#ff7b72}.highlight .nn{color:#79c0ff}}
