@import url(https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap);@import url(https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Roboto+Slab:wght@100..900&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Poppins,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--text-color:#2c2c2c;--text-secondary:#6b6b6b;--icon-color:#8a8a8a;--surface-color:#ffffffb3;--border-color:#0000000f;--nav-link-color:#8a8a8a;--nav-link-hover:#2c2c2c;background-color:#f9f7f4}.dark{--text-color:#fff;--text-secondary:#e5e5e5;--icon-color:#e5e5e5;--surface-color:#090909;--border-color:#262626;--nav-link-color:#e5e5e5;--nav-link-hover:#fff;background-color:#000}html{scroll-behavior:smooth}*,:after,:before{transition:background-color .4s ease,color .4s ease,border-color .4s ease}.placeholderSection{color:#2c2c2c;color:var(--text-color);font-family:Poppins,sans-serif;margin:0 auto;max-width:600px;padding:4em 1.5em}.placeholderSection p{color:#6b6b6b;color:var(--text-secondary)}@keyframes draw-outer{0%{stroke-dashoffset:69}to{stroke-dashoffset:0}}.animate-outer{stroke-dashoffset:69;stroke-dasharray:69;animation:draw-outer 1s forwards}@keyframes draw-v{0%{stroke-dashoffset:25}to{stroke-dashoffset:0}}.animate-inner{stroke-dashoffset:25;stroke-dasharray:25;animation:draw-v 1s forwards}.animate{stroke-dasharray:74.778;stroke-dashoffset:74.778;stroke-width:1;animation:draw 2s ease forwards}@keyframes draw{to{stroke-dashoffset:0}}@keyframes draw-n{0%{stroke-dashoffset:62}to{stroke-dashoffset:0}}.animate-n{stroke-dashoffset:62;stroke-dasharray:62;animation:draw-n 2s forwards}@keyframes draw-lower-i{0%{stroke-dashoffset:32}to{stroke-dashoffset:0}}.animate-lower-i{stroke-dashoffset:32;stroke-dasharray:32;animation:draw-lower-i 2s forwards}@keyframes fade-in-dot{0%{opacity:0}to{opacity:1}}.animate-upper-i{animation:fade-in-dot 1s ease-in forwards;animation-delay:2s;opacity:0}@keyframes drawmoon{0%{stroke-dashoffset:61}to{stroke-dashoffset:0}}.animatemoon{stroke-dasharray:61;stroke-dashoffset:61;animation:drawmoon 2s forwards}@keyframes circle{0%{opacity:0}to{opacity:1}}.animatecircle{animation:circle 1.5s forwards;opacity:0}@keyframes drawline{0%{stroke-dashoffset:5}to{stroke-dashoffset:0}}.animateline1{animation:drawline .25s forwards;animation-delay:1.5s}.animateline1,.animateline2{stroke-dashoffset:5;stroke-dasharray:5}.animateline2{animation:drawline .25s forwards;animation-delay:1.75s}.animateline3{animation:drawline .25s forwards;animation-delay:2s}.animateline3,.animateline4{stroke-dashoffset:5;stroke-dasharray:5}.animateline4{animation:drawline .25s forwards;animation-delay:2.25s}.animateline5{animation:drawline .25s forwards;animation-delay:2.5s}.animateline5,.animateline6{stroke-dashoffset:5;stroke-dasharray:5}.animateline6{animation:drawline .25s forwards;animation-delay:2.75s}.animateline7{animation:drawline .25s forwards;animation-delay:3s}.animateline7,.animateline8{stroke-dashoffset:5;stroke-dasharray:5}.animateline8{animation:drawline .25s forwards;animation-delay:3.25s}@keyframes spin{to{transform:rotate(1turn)}}.animatesun{animation:spin 4s linear infinite;transform-origin:center}.navBar{align-items:center;display:flex;justify-content:space-between;list-style:none;margin:1.5rem 3rem;padding:0;position:sticky;top:0;z-index:10}.navBar .navIconButton svg,.navBar a svg{stroke:var(--icon-color)}.navIconButton{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:inline-flex;font:inherit;margin:0;padding:0;transition:transform .2s ease}.navIconButton:hover{transform:translateY(-3px)}.navBarLeft{display:flex;gap:1rem}.navBarCenter{display:flex;gap:2rem}.navBarCenter a,.navBarCenter a:link,.navBarCenter a:visited{color:var(--nav-link-color);cursor:pointer;font-family:Poppins,sans-serif;font-size:.85rem;font-weight:400;letter-spacing:.04em;text-decoration:none;transition:color .2s ease}.navBarCenter a:hover{color:var(--nav-link-hover)}.navBarRight{display:flex;gap:1rem}.navBarLeft a{cursor:pointer}.navBarLeft a:hover{cursor:pointer;transform:translateY(-3px)}.navBarRight a{cursor:pointer}.navBarRight a:hover{cursor:pointer;transform:translateY(-3px)}.navBar a,.navBar a:active,.navBar a:link,.navBar a:visited{text-decoration:none}@media (max-width:768px){.navBar{margin:1rem 1.5rem}.navBarCenter{gap:1.2rem}.navBarCenter a,.navBarCenter a:link,.navBarCenter a:visited{font-size:.78rem}}@media (max-width:480px){.navBar{flex-wrap:wrap;gap:.5rem;justify-content:center;margin:.8rem 1rem}.navBarLeft{order:1}.navBarRight{order:2}.navBarCenter{gap:1rem;justify-content:center;order:3;width:100%}.navBarCenter a,.navBarCenter a:link,.navBarCenter a:visited{font-size:.75rem}}.header{margin:0 auto;max-width:600px;padding:4em 1.5em 2em}@media (max-width:480px){.header{padding:2em 1em 1.5em}}.typing-effect{align-items:flex-start;color:var(--text-color);display:flex;flex-direction:column;font-family:Roboto Slab;font-size:1.8em;gap:20px}@media (max-width:480px){.typing-effect{font-size:1.4em}}.typing-effect h1{line-height:1.1;margin:0;padding:0}.cursor{color:var(--text-color)}.blink{animation:blink-animation .75s step-end infinite}@keyframes blink-animation{0%,to{opacity:1}50%{opacity:0}}.aboutmeContainer{color:var(--text-color)}.aboutmeGreeting .typing-effect{align-items:flex-start;font-size:1.2em}.aboutmeSubtitle{color:var(--text-secondary);font-size:.75rem;font-style:italic;margin:1.5em 0 2em}.aboutmeBio{color:var(--text-secondary);font-size:.9rem;line-height:1.8;margin:0}.aboutmeLocationLine{color:var(--text-secondary);font-size:.8rem;letter-spacing:.05em;margin-top:2.5em}@media (max-width:480px){.aboutmeBio{font-size:.82rem}.aboutmeLocationLine{font-size:.72rem}}.experienceContainer{color:var(--text-color);font-family:Poppins,sans-serif;margin:0 auto;max-width:600px;padding:3em 1.5em}.experienceSubtitle{color:var(--text-secondary);font-size:.75rem;font-style:italic;margin:0 0 1.5em}.experienceToggle{border-bottom:1px solid var(--border-color);display:flex;gap:0;margin-bottom:2.5em}.experienceToggle button{background:none;border:none;border-bottom:2px solid #0000;color:var(--text-secondary);cursor:pointer;font-family:Poppins,sans-serif;font-size:.85rem;font-weight:400;margin-bottom:-1px;padding:.6em 1.2em;transition:color .2s ease,border-color .2s ease}.experienceToggle button.active{border-bottom-color:var(--text-color);color:var(--text-color)}.experienceToggle button:hover{color:var(--text-color)}.timelineMinimal{display:flex;flex-direction:column;gap:0}.timelineItem{grid-gap:0 1.2em;display:grid;gap:0 1.2em;grid-template-columns:7em 12px 1fr}.timelineItem:last-child .timelineContent{padding-bottom:0}.timelineItem.fadeIn{animation:timelineFadeIn .8s ease forwards;opacity:0;transform:translateY(16px)}@keyframes timelineFadeIn{to{opacity:1;transform:translateY(0)}}.timelineYear{color:var(--text-secondary);font-size:.75rem;padding-top:.3em;text-align:right}.timelineLine{align-items:center;display:flex;flex-direction:column}.timelineDot{background-color:var(--text-color);border-radius:50%;flex-shrink:0;height:8px;margin-top:.4em;width:8px}.timelineBar{background-color:var(--border-color);flex:1 1;width:1px}.timelineContent{flex:1 1;padding-bottom:2em}.timelineContent h3{font-size:.95rem;font-weight:500;margin:0}.timelineRole{color:var(--text-secondary);display:block;font-size:.8rem;margin-top:.2em}.timelineContent p{color:var(--text-secondary);font-size:.85rem;line-height:1.7;margin:.6em 0 0}@media (max-width:480px){.experienceContainer{padding:2em 1em}.timelineItem{gap:0 .8em;grid-template-columns:5em 12px 1fr}.timelineYear{font-size:.65rem}.timelineContent h3{font-size:.85rem}.timelineContent p{font-size:.78rem}.timelineRole{font-size:.72rem}}.projectsContainer{color:var(--text-color);font-family:Poppins,sans-serif;margin:0 auto;max-width:600px;padding:3em 1.5em;position:relative}.projectsSubtitle{color:var(--text-secondary);font-size:.75rem;font-style:italic;margin:0 0 1.5em;position:relative;z-index:1}.tetrisGrid{grid-gap:0;display:grid;gap:0;grid-template-columns:repeat(3,1fr);position:relative;z-index:1}@media (max-width:768px){.tetrisGrid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.projectsContainer{padding:2em 1em}.tetrisGrid{grid-template-columns:1fr}}.blockLink{color:inherit;display:contents;text-decoration:none}.projectBlock{animation:blockAppear .4s ease forwards;border:1px solid var(--border-color);opacity:0;padding:1em;position:relative;transition:border-color .25s ease}.projectBlock:hover{border-color:var(--text-secondary)}.span-wide{grid-column:span 2}.span-big,.span-tall{grid-row:span 2}.span-big{grid-column:span 2}@keyframes blockAppear{to{opacity:1}}.blockContent{animation:blockContentIn .6s ease forwards;opacity:0;position:relative}@keyframes blockContentIn{to{opacity:1}}.blockIcon{height:1.6em;margin-bottom:.8em;width:1.6em}.blockIcon svg{stroke:var(--text-color);stroke-width:1.5;fill:none;height:100%;width:100%}.blockIcon img{height:100%;object-fit:contain;width:100%}.projectBlock h3{color:var(--text-color);font-size:.85rem;font-weight:500;margin:0}.projectBlock p{color:var(--text-secondary);font-size:.78rem;line-height:1.6;margin:.4em 0 0}.blockTags{display:flex;flex-wrap:wrap;gap:.4em;margin-top:.8em}.blockTag{color:var(--text-secondary);font-size:.65rem;letter-spacing:.02em}.blockTag+.blockTag:before{color:var(--text-secondary);content:"/";margin-right:.4em;opacity:.6}@media (max-width:480px){.span-wide{grid-column:span 1}.span-big,.span-tall{grid-row:span 1}.span-big{grid-column:span 1}}.skillsRow{align-items:center;display:flex;flex-wrap:wrap;gap:1.5em;justify-content:center;margin-bottom:1.5em}.skillLabel{color:var(--text-secondary);cursor:pointer;font-family:Poppins,sans-serif;font-size:.75rem;font-weight:400;letter-spacing:.03em;transition:color .25s ease}.skillLabel:hover{opacity:1}.codeGhostLayer{height:100vh;inset:0;overflow:hidden;pointer-events:none;position:fixed;width:100%;z-index:0}.codeGhostSnippet{color:var(--text-secondary);font-family:Courier New,monospace;font-size:.7rem;opacity:.6;position:absolute;white-space:nowrap}.ghostCursor{animation:ghostBlink .8s step-end infinite}@keyframes ghostBlink{0%,to{opacity:1}50%{opacity:0}}.musingsContainer{font-family:Poppins,sans-serif;margin:0 auto;max-width:600px;min-height:calc(100vh - 80px);padding:3em 1.5em;position:relative}.scribbleLayer{height:100vh;inset:0;overflow:hidden;pointer-events:none;position:fixed;width:100%;z-index:0}.scribble{height:55px;opacity:.3;position:absolute;width:120px}.scribble path{fill:none;stroke:var(--text-secondary);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:500;stroke-dashoffset:500;animation:drawAndErase 18s ease infinite}@keyframes drawAndErase{0%{stroke-dashoffset:500}25%{stroke-dashoffset:0}55%{stroke-dashoffset:0}80%{stroke-dashoffset:-500}to{stroke-dashoffset:-500}}.musingsSubtitle{color:var(--text-secondary);font-size:.75rem;font-style:italic;margin:0 0 2em}.musingsEntries,.musingsSubtitle{position:relative;z-index:1}@media (max-width:768px){.scribble{height:40px;width:90px}}@media (max-width:480px){.musingsContainer{padding:2em 1em}.scribble{height:32px;opacity:.2;width:70px}}.musingCardLink{color:inherit;display:block;text-decoration:none}.musingCard{animation:musingFadeIn .6s ease forwards;opacity:0;padding:1.2em 0;position:relative;transform:translateY(10px);transition:transform .2s ease}.musingCardLink:hover .musingTitle{color:var(--text-secondary)}@keyframes musingFadeIn{to{opacity:1;transform:translateY(0)}}.musingDate{color:var(--text-secondary);display:block;font-family:Courier New,monospace;font-size:.65rem;letter-spacing:.05em;margin-bottom:.4em}.musingTitle{color:var(--text-color);font-size:.95rem;font-weight:500;margin:0 0 .3em}.musingBody,.musingTitle{font-family:Poppins,sans-serif}.musingBody{color:var(--text-secondary);font-size:.82rem;line-height:1.7;margin:0}.musingUnderline{display:block;height:6px;margin-top:1em;width:100%}.musingUnderline path{fill:none;stroke:var(--border-color);stroke-width:.8;stroke-linecap:round;stroke-dasharray:300;stroke-dashoffset:300;animation:drawUnderline .8s ease forwards}@keyframes drawUnderline{to{stroke-dashoffset:0}}.musingDetailContainer{font-family:Poppins,sans-serif;margin:0 auto;max-width:600px;min-height:calc(100vh - 80px);padding:3em 1.5em;position:relative}.musingBackLink{color:var(--text-secondary);display:inline-block;font-size:.75rem;font-style:italic;margin-bottom:2.5em;position:relative;text-decoration:none;transition:color .2s ease;z-index:1}.musingBackLink:hover{color:var(--text-color)}.musingDetailEntry{animation:musingDetailFadeIn .6s ease forwards;opacity:0;position:relative;transform:translateY(10px);z-index:1}@keyframes musingDetailFadeIn{to{opacity:1;transform:translateY(0)}}.musingDetailDate{color:var(--text-secondary);display:block;font-family:Courier New,monospace;font-size:.7rem;letter-spacing:.05em;margin-bottom:.6em}.musingDetailTitle{color:var(--text-color);font-family:Poppins,sans-serif;font-size:1.4rem;font-weight:500;margin:0 0 1.5em}.musingDetailBody{color:var(--text-secondary);font-family:Poppins,sans-serif;font-size:.9rem;line-height:1.9;margin:0 0 1.4em}.musingDetailBody:last-child{margin-bottom:0}.musingNotFound{color:var(--text-secondary);font-size:.9rem;position:relative;z-index:1}@media (max-width:480px){.musingDetailContainer{padding:2em 1em}.musingDetailTitle{font-size:1.2rem}.musingDetailBody{font-size:.82rem}}
/*# sourceMappingURL=main.52e2ffa9.css.map*/