@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.8e0177b5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.b97b3418.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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(../media/caa3a2e1cccd8315-s.p.853070df.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist","Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.c1fdd6c2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.799d8ef8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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(../media/797e433ab948586e-s.p.dbea232f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
*,:before,:after{box-sizing:border-box;scroll-behavior:smooth;font-family:var(--font-geist-sans),sans-serif;margin:0;padding:0}body{background-color:var(--background);overflow-x:hidden}h1,h2,h3,h4,h5,h6,a,button{line-height:1.1}h1,h2{margin-bottom:20px}h3,h4,h5,h6{margin-bottom:15px}h1{font-size:30px}h2{font-size:22px}h3{font-size:20px}h4{font-size:18px}@media (max-width:768px){h1{font-size:26px}h2{font-size:20px}h3{font-size:18px}}p{margin-bottom:6px;line-height:1.4}p,a,div,a[href^=tel]{color:var(--text)}a{color:var(--accent);opacity:1;text-decoration:none;transition:opacity .3s}a:hover{opacity:.8;transition:opacity .3s}html.light{--text:#06080a;--alt-text:#025efd;--background:#fcfcfc;--background-secondary:#ddd;--primary:#4273c7;--secondary:#84a8e7;--accent:#1962e0;--scrollbar:#e2e2e2;--scrollthumb:#adadad;--scrollthumb-hover:#888;--filter-wrapper-background:#ebebeb;--filter-wrapper-border:#c2c2c2;--filter-checkbox-selected:#99b9f0;--filter-checkbox-not-selected:#dadada;--filter-checkbox-hover-selected:#6d8bc0;--filter-checkbox-hover-not-selected:#9e9e9e;--filter-btn:#1962e0;--filter-btn-hover:#164fb1;--filter-cancel-btn:#797979;--filter-cancel-btn-hover:#4d4d4d;--contribution-no:#d8d8d8;--contribution-low:#8eb7fd;--contribution-normal:#6b9ffa;--contribution-medium:#4285f8;--contribution-high:#1962e0;--contribution-border:rgba(25,98,224,.376);--contribution-cell-border:#06080a}html.dark{--text:#f5f7f9;--background:#060a0e;--background-secondary:#1a2027;--primary:#2c5db3;--secondary:#183d7b;--accent:#1962e0;--scrollbar:#e2e2e2;--scrollthumb:#adadad;--scrollthumb-hover:#888;--filter-wrapper-background:#0b121a;--filter-wrapper-border:#28303a;--filter-checkbox-selected:#133161;--filter-checkbox-not-selected:#12181d;--filter-checkbox-hover-selected:#091f44;--filter-checkbox-hover-not-selected:#0b0f13;--filter-btn:#1962e0;--filter-btn-hover:#164fb1;--filter-cancel-btn:#8da0b6;--filter-cancel-btn-hover:#78899c;--contribution-no:#101316;--contribution-low:#121f41;--contribution-normal:#153268;--contribution-medium:#19489e;--contribution-high:#2259ee;--contribution-border:rgba(12,71,233,.24);--contribution-cell-border:#eee}::-webkit-scrollbar{background:0 0;width:16px}::-webkit-scrollbar-track{background:var(--scrollbar)}::-webkit-scrollbar-thumb{background:var(--scrollthumb);background-clip:padding-box;border:4px solid transparent;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--scrollthumb-hover);background-clip:padding-box;border:4px solid transparent;border-radius:5px}::selection{background:rgba(55,99,174,.467)}.container{max-width:800px;margin:0 auto;padding:0 25px}.navbar{margin-bottom:25px}.navbar .container{justify-content:space-between;align-items:center;height:80px;display:flex}.navbar ul{gap:15px;height:100%;list-style:none;display:flex}@media (max-width:400px){.navbar ul{gap:8px}}.navbar ul li{align-items:center;height:100%;display:flex}.navbar ul li a{padding:5px}.navbar ul li a:first-child{padding-left:0}.toggle-theme-button{color:var(--accent);background-color:var(--background);cursor:pointer;border:none;border-radius:5px;justify-content:center;align-items:center;width:30px;height:30px;font-size:18px;transition:background-color .3s;display:flex}@media (max-width:400px){.toggle-theme-button{width:28px;height:28px;font-size:15px}}section{padding:25px 0}section.resume,section.contributions{padding-top:0}section ul{margin-left:0;padding-left:0;list-style:none}section ul li{margin-bottom:3px;padding-left:15px;position:relative}section ul li:before{content:"•";position:absolute;top:0;left:0}section ul li ul li:before{content:"◦"}@media (max-width:750px){section ul li{margin-bottom:6px}section ul li ul li{margin-bottom:3px}}section .subjects>li{margin-bottom:15px}section .subjects>li>ul{margin-top:6px}section.project-section,section.project-link{padding:20px 0}section.project-title .container{position:relative}section.project-title .project-image{aspect-ratio:16/9;border:1px solid var(--text);border-radius:5px;width:100%;margin-top:15px;position:relative;overflow:hidden}section .opacity,section.page-projects .desc,section.project-section p,section.project-section li{opacity:.5}section.project-link p{margin-bottom:3px}section.project-link p span{opacity:.5}section.project-link p .bullet{margin-right:5px}.works li{margin-bottom:15px}.works li>p{margin-top:3px}section .breadcrumb{margin-bottom:10px;font-size:14px}.contact-socials{flex-direction:column;gap:10px;margin-top:20px;display:flex}.contact-socials a{align-items:center;gap:10px;font-size:16px;font-weight:500;display:inline-flex}footer .container{opacity:.75;justify-content:space-between;align-items:center;padding:30px 25px;display:flex}footer .container .copyright{width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;font-size:14px}footer .container .socials{gap:10px;display:flex}footer .container .socials a{color:var(--text)}@media (max-width:500px){footer .container{text-align:center;flex-direction:column;gap:20px;height:-moz-fit-content;height:fit-content}footer .container .socials{order:1}footer .container .copyright{order:2}}.filter-wrapper{box-sizing:border-box;background-color:var(--filter-wrapper-background);border:1px solid var(--filter-wrapper-border);border-radius:5px;width:100%;max-height:55px;padding:15px 20px;transition:all .3s linear;overflow:hidden}.filter-wrapper.active{max-height:600px;transition:all .5s linear}.filter-header{cursor:pointer;justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.filter-header .filter-title-wrapper{gap:5px;display:flex}.filter-header .filter-title-wrapper h4{height:-moz-fit-content;height:fit-content;margin:0;font-weight:500}.filter-header .filter-title-wrapper .filter-counter{opacity:.75;font-weight:300}.filter-header .filter-arrow{height:25px}.filter-header .filter-arrow svg{stroke:var(--text);width:25px;height:25px;transition:all .3s;transform:rotate(180deg)}.active .filter-header .filter-arrow svg{stroke:var(--text);width:25px;height:25px;transition:all .3s;transform:rotate(0)}.filter-category{margin-bottom:15px}.filter-category h4{color:var(--text);opacity:.75;width:100%;margin-bottom:5px;font-size:14px;font-weight:400;display:block}.filter-category{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.filter-category label{color:var(--text);background-color:var(--filter-checkbox-not-selected);cursor:pointer;white-space:nowrap;border:1px solid rgba(129,129,129,.255);border-radius:5px;align-items:center;padding:4px 8px;font-size:12px;line-height:1;display:inline-flex}.filter-category label:hover{background-color:var(--filter-checkbox-hover-not-selected);border-color:var(--filter-checkbox-selected)}.filter-category input[type=checkbox]{opacity:0;width:0;height:0;margin-right:4px;position:absolute}.filter-category input[type=checkbox]:checked+label{background-color:var(--filter-checkbox-selected);color:var(--text)}.filter-category label:has(input[type=checkbox]:checked){background-color:var(--filter-checkbox-selected);color:var(--text)}.filter-category label:has(input[type=checkbox]:checked):hover{border-color:1px solid var(--filter-checkbox-hover-selected)}.filter-alert{color:#fa5e55;margin-top:30px;font-size:14px;display:none}.filter-btn{justify-content:flex-end;gap:8px;margin-top:30px;display:flex}.filter-notes-btn,.filter-projects-btn{background-color:var(--filter-btn);color:#f5f7f9;cursor:pointer;border:1px solid var(--filter-btn-hover);border-radius:5px;padding:6px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:none;display:inline-block}.filter-notes-btn:hover,.filter-projects-btn:hover{background-color:var(--filter-btn-hover);transition:none}.cancel-notes-btn,.cancel-projects-btn{background-color:var(--filter-cancel-btn);color:var(--background);cursor:pointer;border:1px solid var(--filter-cancel-btn-hover);border-radius:5px;padding:6px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:none;display:inline-block}.cancel-notes-btn:hover,.cancel-projects-btn:hover{background-color:var(--filter-cancel-btn-hover);transition:none}@media (max-width:480px){.filter-category label{padding:3px 6px;font-size:12px}}.contributions{position:relative}.contributions-number-wrapper{opacity:.75;margin-top:0;margin-bottom:15px;padding-bottom:0;font-size:14px;font-weight:400}.contributions.hidden,.contributions-number-wrapper.hidden{opacity:0;transform:translateY(20px)}.contributions.visible,.contributions-number-wrapper.visible{animation:.5s forwards fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.graph-wrapper{border:1px solid var(--background-secondary);box-sizing:border-box;border-radius:5px;width:100%;max-width:750px;min-height:186px;margin:0 auto;padding:16px;position:relative;overflow-x:auto;overflow-y:hidden}.right-gradient,.left-gradient{display:none}@media (max-width:800px){.graph-wrapper{width:calc(100% - 50px);max-width:750px}.right-gradient{background:linear-gradient(90deg,var(--background)0%,rgba(218,218,218,0) 100%);border-radius:5px 0 0 5px;width:20px;height:calc(100% - 52px);display:block;position:absolute;top:26px;left:26px}.left-gradient{background:linear-gradient(90deg,rgba(218,218,218,0) 0%,var(--background)100%);border-radius:0 5px 5px 0;width:20px;height:calc(100% - 52px);display:block;position:absolute;top:26px;right:26px}}#contribution-calendar{background:var(--background);width:705px;height:-moz-fit-content;height:fit-content;margin-left:10px}@media (max-width:800px){#contribution-calendar{width:715px}}.github-tag{font-size:12px;position:absolute;bottom:23px;left:55px}.contribution-border{stroke:var(--contribution-border);stroke-width:1px}.contribution-cell:hover{stroke:var(--contribution-cell-border);stroke-width:1px}.tooltip{background:var(--background);border:1px solid var(--background-secondary);pointer-events:none;z-index:1000;border-radius:6px;padding:8px 10px;font-size:12px;position:absolute;box-shadow:0 1px 3px rgba(0,0,0,.12)}.day-label,.month-label,.legend-label{fill:var(--text);font-size:12px}
